In the end all the thread served me and it works.
Thank you
I am trying to put the scrip in a Spanish edition, but I ended up having these problems.
---------------------------
Pokemon Essentials Esp v16.2
---------------------------
Excepción: NoMethodError
Mensaje: undefined method `zmove' for #<PokeBattle_Move_02E:0xc150c50>
PokeBattle_Battle:1098:in `pbPriority'
PokeBattle_Battle:1089:in `each'
PokeBattle_Battle:1089:in `pbPriority'
PokeBattle_Battle:3024:in `__clauses__pbEndOfRoundPhase'
PokeBattle_Clauses:42:in `pbEndOfRoundPhase'
PokeBattle_Battle:2658:in `pbStartBattleCore'
PokeBattle_Battle:2657:in `logonerr'
PokeBattle_Battle:2657:in `pbStartBattleCore'
PokeBattle_Battle:2639:in `loop'
PokeBattle_Battle:2662:in `pbStartBattleCore'
Esta excepción ha sido registrada en
C:\Users\Usuario\Saved Games/Pokemon Essentials Esp v16_2/errorlog.txt.
Presiona Ctrl+C para copiar este mensaje al portapapeles.
---------------------------
Aceptar
---------------------------
---------------------------
Pokemon Essentials Esp v16.2
---------------------------
Excepción: NoMethodError
Mensaje: undefined method `zmove' for #<PokeBattle_Move_02E:0xc150c50>
PokeBattle_Battle:1098:in `pbPriority'
PokeBattle_Battle:1089:in `each'
PokeBattle_Battle:1089:in `pbPriority'
PokeBattle_Battle:2852:in `pbAttackPhase'
PokeBattle_Battle:2654:in `pbStartBattleCore'
PokeBattle_Battle:2653:in `logonerr'
PokeBattle_Battle:2653:in `pbStartBattleCore'
PokeBattle_Battle:2639:in `loop'
PokeBattle_Battle:2662:in `pbStartBattleCore'
PokeBattle_Battle:2456:in `pbStartBattle'
Esta excepción ha sido registrada en
C:\Users\Usuario\Saved Games/Pokemon Essentials Esp v16_2/errorlog.txt.
Presiona Ctrl+C para copiar este mensaje al portapapeles.
---------------------------
Aceptar
---------------------------
---------------------------
Pokemon Essentials Esp v16.2
---------------------------
Excepción: NameError
Mensaje: uninitialized constant PokeBattle_Battle::NO_Z_MOVE
PokeBattle_Battle:1827:in `pbCanZMove?'
PokeBattle_AI:4019:in `pbEnemyShouldZMove?'
PokeBattle_AI:4322:in `pbDefaultChooseEnemyCommand'
PokeBattle_Scene:2784:in `pbChooseEnemyCommand'
PokeBattle_Battle:2714:in `pbCommandPhase'
PokeBattle_Battle:2709:in `each'
PokeBattle_Battle:2709:in `pbCommandPhase'
PokeBattle_Battle:2650:in `pbStartBattleCore'
PokeBattle_Battle:2649:in `logonerr'
PokeBattle_Battle:2649:in `pbStartBattleCore'
Esta excepción ha sido registrada en
C:\Users\Usuario\Saved Games/Pokemon Essentials Esp v16_2/errorlog.txt.
Presiona Ctrl+C para copiar este mensaje al portapapeles.
---------------------------
Aceptar
---------------------------
You have to replace your script file in the Data folder.
Heyo!
I tried the same as WolfPP and replaced the zmove scripts onto my script. And Z moves work pretty well, only I'm getting two problems.
1. After doing a z move once, I can do Z move again. Where do I control when the Z move can;t be repeated?
2. When doing damage against an ability like "iron barbs" there's an error message when it comes in contact with the opposite pokemon.
Spoiler:[Pokémon Essentials version 17.2]
Exception: ArgumentError
Message: wrong number of arguments(1 for 0)
PokeBattle_Battler:2011:in `isContactMove?'
PokeBattle_Battler:2011:in `pbEffectsOnDealingDamage'
PokeBattle_Battler:3730:in `pbProcessMoveAgainstTarget'
PokeBattle_Battler:3611:in `each'
PokeBattle_Battler:3611:in `pbProcessMoveAgainstTarget'
PokeBattle_ZMoves:80:in `initialize'
PokeBattle_Battle:1845:in `new'
PokeBattle_Battle:1845:in `pbUseZMove'
PokeBattle_Battler:4455:in `pbProcessTurn'
PokeBattle_Battle:2970:in `pbAttackPhase'
I tried it on a clean slate and this error message doesn't appear. So it's probably conflicting with something I have. Does this error log tell anyone where I could solve the mistake? I'm kind of new to troubleshooting so I am having some issues.
THe alternative would be to start from scratch using the Z move script and add all the other scripts I have been adding before one by one. I'd rather not have to do that, so if anyone can help me find the source of these mistakes I'd appreciate it a lot!
Does any one have a version of this script without replacing the scripts.rxdata file cause i don't want to delete all my scripts i put in my game
opponent.effects[PBEffects::Obstruct] ||
NO_MEGA_EVOLUTION = 34
NO_Z_MOVE = 34
#=============================================================================
# Display-only properties
#=============================================================================
#=============================================================================
# Z-Moves
#=============================================================================
def pbZCrystalFromType(type)
zmovecomps = pbLoadZMoveCompatibility
zmovecomps.each { |comp|
next if !comp[PBZMove::REQ_TYPE]
next if comp[PBZMove::REQ_TYPE] != type
return comp[PBZMove::HELD_ZCRYSTAL]
}
return nil
end
def hasZMove?
zmovedata = pbGetZMoveDataIfCompatible(self.pokemon, self.item)
return zmovedata != nil
end
def pbCompatibleZMoveFromMove?(move)
zmovedata = pbGetZMoveDataIfCompatible(self.pokemon, self.item, move)
return zmovedata != nil
end
def pbCompatibleZMoveFromIndex?(moveindex)
return pbCompatibleZMoveFromMove?(self.moves[moveindex])
end
def unlosableItem?(check_item)
return true if pbIsMail?(check_item)
return true if pbIsZCrystal?(item)
def pbProcessTurn(choice,tryFlee=true)
# Use the move
PBDebug.log("[Move usage] #{pbThis} started using #{choice[2].name}")
PBDebug.logonerr{
pbUseMove(choice,choice[2][email protected])
}
if choice[2].zmove
# Use Z-Moves
choice[2].zmove=false
@battle.pbUseZMove(self.index,choice[2],self.item)
else
# Use the move
PBDebug.log("[Move usage] #{pbThis} started using #{choice[2].name}")
PBDebug.logonerr{
pbUseMove(choice,choice[2][email protected])
}
end
def pbUseMoveSimple(moveID,target=-1,idxMove=-1,specialUsage=true)
pbUseMove(choice,specialUsage)
side=(@battle.opposes?(self.index)) ? 1 : 0
[email protected](self.index)
if @battle.zMove[side][owner]==self.index
crystal = pbZCrystalFromType(choice[2].type)
# zmove = PokeBattle_ZMove.new(@battle,self,choice[2],crystal)
zmove = PokeBattle_ZMove.pbFromOldMoveAndCrystal(@battle,self,choice[2],crystal)
zmove.pbUse(self, choice)
else
pbUseMove(choice,specialUsage)
end
def pbSuccessCheckAgainstTarget(move,user,target)
if move.canProtectAgainst?
if move.canProtectAgainst? && !move.is_zmove
attr_reader :name
attr_accessor :name
attr_accessor :zmove # True if the player triggered the Z-Move
attr_accessor :is_zmove # True only if the move is an actual Z-Move.
def initialize(battle,move)
@snatched = false
@zmove = false
@is_zmove = false
def initialize(scene,p1,p2,player,opponent)
@megaEvolution = [
[-1] * (@player ? @player.length : 1),
[-1] * (@opponent ? @opponent.length : 1)
]
@zMove = [
[-1] * (@player ? @player.length : 1),
[-1] * (@opponent ? @opponent.length : 1)
]
def pbOnActiveOne(battler)
# Lunar Dance
if @positions[battler.index].effects[PBEffects::LunarDance]
pbCommonAnimation("LunarDance",battler)
pbDisplay(_INTL("{1} became cloaked in mystical moonlight!",battler.pbThis))
battler.pbRecoverHP(battler.totalhp)
battler.pbCureStatus(false)
battler.eachMove { |m| m.pp = m.totalpp }
@positions[battler.index].effects[PBEffects::LunarDance] = false
end
if @positions[battler.index].effects[PBEffects::ZHeal]
pbCommonAnimation("ZHeal",battler)
pbDisplay(_INTL("The Z-Power healed {1}!",battler.pbThis))
battler.pbRecoverHP(battler.totalhp)
@positions[battler.index].effects[PBEffects::ZHeal] = false
end
def pbActivateHealingWish(battler)
# Z-Parting shot/Z-Memento
if @positions[battler.index].effects[PBEffects::ZHeal] && battler.canHeal?
pbCommonAnimation("ZHeal",battler)
pbDisplay(_INTL("The Z-Power healed {1}!",battler.pbThis))
battler.pbRecoverHP(battler.totalhp)
@positions[battler.index].effects[PBEffects::ZHeal] = false
end
def pbOnActiveOne(battler)
# Healing Wish / Lunar Dance
# Healing Wish / Lunar Dance / Z-Parting shot/Z-Memento
#=============================================================================
# Use Z-Move.
#=============================================================================
def pbCanZMove?(index)
return false if $game_switches[NO_Z_MOVE]
return false if !@battlers[index].hasZMove?
return false if !pbHasZRing(index)
side=(opposes?(index)) ? 1 : 0
owner=pbGetOwnerIndexFromBattlerIndex(index)
return false if @zMove[side][owner]!=-1
return true
end
def pbRegisterZMove(index)
side=(opposes?(index)) ? 1 : 0
owner=pbGetOwnerIndexFromBattlerIndex(index)
@zMove[side][owner]=index
end
def pbUnregisterZMove(idxBattler)
side = @battlers[idxBattler].idxOwnSide
owner = pbGetOwnerIndexFromBattlerIndex(idxBattler)
@zMove[side][owner] = -1 if @zMove[side][owner]==idxBattler
end
def pbToggleRegisteredZMove(idxBattler)
side = @battlers[idxBattler].idxOwnSide
owner = pbGetOwnerIndexFromBattlerIndex(idxBattler)
if @zMove[side][owner]==idxBattler
@zMove[side][owner] = -1
else
@zMove[side][owner] = idxBattler
end
end
def pbRegisteredZMove?(idxBattler)
side = @battlers[idxBattler].idxOwnSide
owner = pbGetOwnerIndexFromBattlerIndex(idxBattler)
return @zMove[side][owner]==idxBattler
end
def pbUseZMove(index,move,crystal)
return if !@battlers[index] || !@battlers[index].pokemon
return if !(@battlers[index].hasZMove? rescue false)
ownername=pbGetOwnerName(index)
pbDisplay(_INTL("{1} surrounded itself with its Z-Power!",@battlers[index].pbThis))
pbCommonAnimation("ZPower",@battlers[index],nil)
# pbMessage("Move: " + move.name)
zmove = PokeBattle_ZMove.pbFromOldMoveAndCrystal(self,@battlers[index],move,crystal)
zmove.pbUse(@battlers[index])
side=@battlers[index].idxOwnSide
owner=pbGetOwnerIndexFromBattlerIndex(index)
@zMove[side][owner]=-2
end
def pbHasZRing(battlerIndex)
return true if !pbOwnedByPlayer?(battlerIndex)
for i in MEGA_RINGS
next if !hasConst?(PBItems,i)
return true if $PokemonBag.pbQuantity(i)>0
end
return false
end
def zMove
return @zMove
end
def pbCancelChoice(idxBattler)
pbUnregisterMegaEvolution(idxBattler)
pbUnregisterZMove(idxBattler)
def pbFightMenu(idxBattler)
@scene.pbFightMenu(idxBattler,pbCanMegaEvolve?(idxBattler)) { |cmd|
case cmd
when -1 # Cancel
when -2 # Toggle Mega Evolution
pbToggleRegisteredMegaEvolution(idxBattler)
next false
when -3 # Shift
pbUnregisterMegaEvolution(idxBattler)
pbRegisterShift(idxBattler)
ret = true
else # Chose a move to use
next false if cmd<0 || !@battlers[idxBattler].moves[cmd] ||
@battlers[idxBattler].moves[cmd].id<=0
next false if !pbRegisterMove(idxBattler,cmd)
next false if !singleBattle? &&
!pbChooseTarget(@battlers[idxBattler],@battlers[idxBattler].moves[cmd])
ret = true
end
next true
}
canMegaEvolve = pbCanMegaEvolve?(idxBattler)
canZMove = pbCanZMove?(idxBattler)
@scene.pbFightMenu(idxBattler, canMegaEvolve, canZMove) { |cmd|
case cmd
when -1 # Cancel
when -2 # Toggle Mega Evolution / Z-Move
pbToggleRegisteredMegaEvolution(idxBattler) if canMegaEvolve
pbToggleRegisteredZMove(idxBattler) if canZMove
next false
when -3 # Shift
pbUnregisterMegaEvolution(idxBattler)
pbUnregisterZMove(idxBattler)
pbRegisterShift(idxBattler)
ret = true
else # Chose a move to use
next false if cmd<0 || !@battlers[idxBattler].moves[cmd] ||
@battlers[idxBattler].moves[cmd].id<=0
next false if !pbRegisterMove(idxBattler,cmd)
next false if !singleBattle? &&
!pbChooseTarget(@battlers[idxBattler],@battlers[idxBattler].moves[cmd])
ret = true
end
next true
}
def pbAttackPhase
PBDebug.log("")
# Calculate move order for this round
pbCalculatePriority(true)
# Prepare for Z Moves
@battlers.each_with_index do |b,i|
next if !b || b.fainted?
next if @choices[i][0]!=:UseMove
side=(opposes?(i)) ? 1 : 0
owner=pbGetOwnerIndexFromBattlerIndex(i)
@choices[i][2].zmove=(@zMove[side][owner]==i)
end
#=============================================================================
# Choose an action
#=============================================================================
def pbDefaultChooseEnemyCommand(idxBattler)
#=============================================================================
# Decide whether the opponent should use a Z-Move.
#=============================================================================
def pbEnemyShouldZMove?(index)
# If all opposing have less than half HP, then don't Z-Move.
return false if [email protected]?(index) #Conditions based on effectiveness and type handled later
@battle.battlers[index].eachOpposing { |opp|
return true if opp.hp>(opp.totalhp/2).round
}
return false
end
def pbChooseEnemyZMove(index) #Put specific cases for trainers using status Z-Moves
# Choose the move.
chosenmove=false
chosenindex=-1
attacker = @battle.battlers[index]
for i in 0..3
move=attacker.moves[i]
if attacker.pbCompatibleZMoveFromMove?(move)
if !chosenmove
chosenindex = i
chosenmove=move
else
if move.baseDamage>chosenmove.baseDamage
chosenindex=i
chosenmove=move
end
end
end
end
target_i = nil
target_eff = 0
# Choose the target
attacker.eachOpposing { |opp|
temp_eff = chosenmove.pbCalcTypeMod(chosenmove.type,attacker,opp)
if temp_eff > target_eff
target_i = opp.index
target_eff = target_eff
end
}
@battle.pbRegisterZMove(index)
@battle.pbRegisterMove(index,chosenindex,false)
@battle.pbRegisterTarget(index,target_i)
end
def pbDefaultChooseEnemyCommand(idxBattler)
@battle.pbRegisterMegaEvolution(idxBattler) if pbEnemyShouldMegaEvolve?(idxBattler)
if pbEnemyShouldZMove?(idxBattler)
pbChooseEnemyZMove(idxBattler)
return
end
class FightMenuDisplay < BattleMenuBase
attr_reader :shiftMode
attr_reader :zbutton
def initialize(viewport,z)
if USE_GRAPHICS
@zbutton = 0
# Z-Move addition: same as @mode
@megaEvoBitmap = AnimatedBitmap.new(_INTL("Graphics/Pictures/Battle/cursor_mega"))
@zmoveBitmap = AnimatedBitmap.new(_INTL("Graphics/Pictures/Battle/cursor_zmove"))
addSprite("megaButton",@megaButton)
# Create Z-Move button
@zmoveButton = SpriteWrapper.new(viewport)
@zmoveButton.bitmap = @zmoveBitmap.bitmap
@zmoveButton.x = self.x+146
@zmoveButton.y = [email protected]/2
@zmoveButton.src_rect.height = @zmoveBitmap.height/2
addSprite("zmoveButton",@zmoveButton)
def dispose
@megaEvoBitmap.dispose if @megaEvoBitmap
@zmoveBitmap.dispose if @zmoveBitmap
def refreshButtonNames
def zbutton=(value)
oldValue = @zbutton
@zbutton = value
refreshZButton if @zbutton!=oldValue
end
def refresh
def refreshZButton
return if !USE_GRAPHICS
@zmoveButton.src_rect.y = (@zbutton - 1) * @zmoveBitmap.height / 2
@zmoveButton.z = self.z - 1
@visibility["zmoveButton"] = (@zbutton > 0)
end
def refresh
refreshMegaEvolutionButton
refreshZButton
def pbFightMenu(idxBattler,megaEvoPossible=false)
def pbFightMenu(idxBattler,megaEvoPossible=false,zmovePossible=false)
cw.setIndexAndMode(moveIndex,(megaEvoPossible) ? 1 : 0)
# Z-Moves have priority over Mega-Evolutions
megaEvoPossible = false if zmovePossible
pbPlayDecisionSE
break if yield cw.index
if cw.zbutton == 2 && !battler.pbCompatibleZMoveFromIndex?(cw.index)
pbPlayCancelSE
@battle.pbDisplay(_INTL("{1} is not compatible with {2}!",PBMoves.getName(battler.moves[cw.index]),PBItems.getName(battler.item)))
break if yield -1
else
pbPlayDecisionSE
break if yield cw.index
end
elsif Input.trigger?(Input::A) # Toggle Mega Evolution
if megaEvoPossible
elsif Input.trigger?(Input::A) # Toggle Mega Evolution/Z-Moves.
if megaEvoPossible || zmovePossible
WishMaker = 8
ZHeal = 9
def pbFightMenu(idxBattler,megaEvoPossible=false)
def pbFightMenu(idxBattler,megaEvoPossible=false,zmovePossible=false)
class PokeBattle_ActivePosition
def initialize
@effects[PBEffects::WishMaker] = -1
@effects[PBEffects::ZHeal] = false
def pbIsImportantItem?(item)
def pbIsZCrystal?(item)
ret = pbGetItemData(item,ITEM_TYPE)
return ret && ret==13
end
# Despite what the name might suggest, pbIsZCrystal? refers to the items who's
# internal names are of the form 'BUGNIUMZ2', whereas pbIsZCrystal2? refers to
# those of the form 'BUGNIUMZ'. This was a lack of foresight on my part, hope
# this clears it up.
def pbIsZCrystal2?(item)
ret = pbGetItemData(item,ITEM_TYPE)
return ret && ret==14
end
def pbIsImportantItem?(item)
return true if itemData[ITEM_FIELD_USE] && itemData[ITEM_FIELD_USE]==3 && INFINITE_TMS # TM
return true if itemData[ITEM_FIELD_USE] && itemData[ITEM_FIELD_USE]==14 # Key item representing Z-Crystals.
+##################################################################################
# Z Crystals #
##################################################################################
ItemHandlers::UseOnPokemon.add(:BUGINIUMZ,proc{|item,pokemon,scene|
# Find the corresponding compatibility conditions
zcomp = pbGetZMoveDataIfCompatible(pokemon, item)
if zcomp
scene.pbDisplay(_INTL("The {1} will be given to {2} so that it can use its Z-Power!",PBItems.getName(item),pokemon.name))
if pokemon.item!=0
itemname=PBItems.getName(pokemon.item)
scene.pbDisplay(_INTL("{1} is already holding one {2}.\1",pokemon.name,itemname))
if scene.pbConfirm(_INTL("Would you like to switch the two items?"))
if !$PokemonBag.pbStoreItem(pokemon.item)
scene.pbDisplay(_INTL("The Bag is full. The Pokémon's item could not be removed."))
else
pokemon.setItem(zcomp[PBZMove::HELD_ZCRYSTAL])
scene.pbDisplay(_INTL("The {1} was taken and replaced with the {2}.",itemname,PBItems.getName(item)))
next true
end
end
else
pokemon.setItem(zcomp[PBZMove::HELD_ZCRYSTAL])
scene.pbDisplay(_INTL("{1} was given the {2} to hold.",pokemon.name,PBItems.getName(item)))
next true
end
else
scene.pbDisplay(_INTL("It had no effect."))
next false
end
})
ItemHandlers::UseOnPokemon.copy(:BUGINIUMZ, :DARKINIUMZ, :DRAGONIUMZ, :ELECTRIUMZ, :FAIRIUMZ, :FIGHTINIUMZ, :FIRIUMZ, :FLYINIUMZ, :GHOSTIUMZ, :GRASSIUMZ, :GROUNDIUMZ, :ICIUMZ, :NORMALIUMZ, :POISONIUMZ, :PSYCHIUMZ, :ROCKIUMZ, :STEELIUMZ, :WATERIUMZ, :ALORAICHIUMZ, :DECIDIUMZ, :INCINIUMZ, :PRIMARIUMZ, :EEVIUMZ, :PIKANIUMZ, :SNORLIUMZ, :MEWNIUMZ, :TAPUNIUMZ, :MARSHADIUMZ, :PIKASHUNIUMZ, :KOMMONIUMZ, :LYCANIUMZ, :MIMIKIUMZ, :LUNALIUMZ, :SOLGANIUMZ, :ULTRANECROZIUMZ)
class PokemonBag
def pbStoreItem(item,qty=1)
item = getID(PBItems,item)
if pbIsZCrystal?(item)
return true
end
MultipleForms.register(:ARCEUS,{
1 => [:FISTPLATE,:FIGHTINIUMZ],
2 => [:SKYPLATE,:FLYINIUMZ],
3 => [:TOXICPLATE,:POISONIUMZ],
4 => [:EARTHPLATE,:GROUNDIUMZ],
5 => [:STONEPLATE,:ROCKIUMZ],
6 => [:INSECTPLATE,:BUGINIUMZ],
7 => [:SPOOKYPLATE,:GHOSTIUMZ],
8 => [:IRONPLATE,:STEELIUMZ],
10 => [:FLAMEPLATE,:FIRIUMZ],
11 => [:SPLASHPLATE,:WATERIUMZ],
12 => [:MEADOWPLATE,:GRASSIUMZ],
13 => [:ZAPPLATE,:ELECTRIUMZ],
14 => [:MINDPLATE,:PSYCHIUMZ],
15 => [:ICICLEPLATE,:ICIUMZ],
16 => [:DRACOPLATE,:DRAGONIUMZ],
17 => [:DREADPLATE,:DARKINIUMZ],
18 => [:PIXIEPLATE,:FAIRIUMZ]
1 => [:FISTPLATE,:FIGHTINIUMZ2],
2 => [:SKYPLATE,:FLYINIUMZ2],
3 => [:TOXICPLATE,:POISONIUMZ2],
4 => [:EARTHPLATE,:GROUNDIUMZ2],
5 => [:STONEPLATE,:ROCKIUMZ2],
6 => [:INSECTPLATE,:BUGINIUMZ2],
7 => [:SPOOKYPLATE,:GHOSTIUMZ2],
8 => [:IRONPLATE,:STEELIUMZ2],
10 => [:FLAMEPLATE,:FIRIUMZ2],
11 => [:SPLASHPLATE,:WATERIUMZ2],
12 => [:MEADOWPLATE,:GRASSIUMZ2],
13 => [:ZAPPLATE,:ELECTRIUMZ2],
14 => [:MINDPLATE,:PSYCHIUMZ2],
15 => [:ICICLEPLATE,:ICIUMZ2],
16 => [:DRACOPLATE,:DRAGONIUMZ2],
17 => [:DREADPLATE,:DARKINIUMZ2],
18 => [:PIXIEPLATE,:FAIRIUMZ2]
def pbSaveAllData
pbSaveZMoveCompatibility; Graphics.update
def pbCompileAllData(mustCompile)
pbCompilePokemonForms
# Depends on PBSpecies, PBMoves, PBItems
yield(_INTL("Compiling Z-Moves compatibility data"))
pbCompileZMoveCompatibility
################################################################################
# SECTION 10 - Ultra Burst compatibility
#===============================================================================
# Defines empty functions for Ultra Burst.
#-------------------------------------------------------------------------------
class PokeBattle_AI
def pbEnemyShouldUltraBurst?(idxBattler)
return false
end
end
class PokeBattle_Battle
alias _ub_initialize initialize
def initialize(*args)
_ub_initialize(*args)
@ultraBurst = [
[-1] * (@player ? @player.length : 1),
[-1] * (@opponent ? @opponent.length : 1)
]
end
def pbCanUltraBurst?(idxBattler)
return false
end
def pbRegisterUltraBurst(idxBattler)
return
end
def pbUnregisterUltraBurst(idxBattler)
return
end
def pbToggleRegisteredUltraBurst(idxBattler)
return
end
def pbRegisteredUltraBurst?(idxBattler)
return false
end
def pbAttackPhaseZMoves
# Prepare for Z Moves
@battlers.each_with_index do |b,i|
next if @choices[i][0]!=:UseMove
side=(opposes?(i)) ? 1 : 0
owner=pbGetOwnerIndexFromBattlerIndex(i)
@choices[i][2].zmove=(@zMove[side][owner]==i)
end
end
def pbAttackPhaseUltraBurst
end
end
class PokeBattle_Pokemon
def makeUnUltra
end
end
class PokeBattle_Battler
def ultra?
return false
end
end
XXX,HOOHIUMZ,Ho-Ohium-Z,,8,0,"It converts Z-Power into crystals that upgrades a Sacred Fire by Ho-Oh to an exclusive Z-Move.",5,0,14
XXX,HOOHIUMZ2,Ho-Ohium-Z,,1,0,"This is a crystallized form of Z-Power. It upgrades a Sacred Fire by Ho-Oh to a Z-Move.",0,0,13
XXX,PHOENIXFIRE,Phoenix Fire,Z010,200,FIRE,Physical,0,1,100,NearOther,0,f,"Ho-Oh attacks with full power. Heals the user by half its HP."
#===============================================================================
# Heals the user. (Phoenix Fire)
# This is an example from the Z-move plugin for Essentials v18.dev
#===============================================================================
class PokeBattle_Move_Z010 < PokeBattle_ZMove # The new Z-move is a subclass of PokeBattle_ZMove
def healingMove?; return true; end
def pbHealAmount(user); return user.totalhp/2; end # Define the amount of HP to heal.
def pbAdditionalEffect(user,target) # The effect of a Z-move is generally an additional effect.
amt = pbHealAmount(user)
user.pbRecoverHP(amt)
@battle.pbDisplay(_INTL("{1}'s Z-Power restored its HP.",user.pbThis))
end
end
[Key Z-crystal],[Held Z-Crystal],[Required Type],[Required Move],[Required Species],[The Z-Move]
[New Key Z-Crystal],[New Held Z-Crystal],[Your New Type],,,[Your New Z-Move]
[New Key Z-Crystal],[New Held Z-Crystal],,[A Move],[A Pokémon],[Your New Z-Move]
[New Key Z-Crystal],[New Held Z-Crystal],[Your New Type],,[A Pokémon],[Your New Z-Move]
HOOHIUMZ, HOOHIUMZ2, , SACREDFIRE, HOOH, PHOENIXFIRE
def pbZStatus(move,attacker)
my_new_effect = [PBMoves::MyNewMove]
elsif my_new_effect.include?(move)
# Here the code of my new effect.
Very interesting. I wasn't expecting an updated Z-Move script to be released so soon. I'll have to go over this when I have the time to try and make this compatible with Dynamax.
It looks like there's a lot of moving pieces to this script though, so there's a lot to go over.
Ultra Burst wasn't in the base code given by the OP so I completely forgot it...At a glance I see that Ultranecrozium Z was added in. Is Ultra Burst now rolled into this project?