So, moves where used infinitely with error after each attack (ennemy side or our side)
Maybe, you try to do this.
First, in my script, delete def pbInitSprites. Next, find def pbInitSprites (in class PokeBattle_Scene), change pbChangePokemon(index,pkmn) into
Code:
if isGhostEncountersActive? # Ghost event
pbChangeGhostPokemon(index,pkmn)
else
pbChangePokemon(index,pkmn)
end
Second, in my script, delete class PokeBattle_Battle (delete all).
Next, in class PokeBattle_Battle, find def pbRun(idxBattler,duringBattle=false), above
Code:
if battler.pbHasType?(:GHOST) && NEWEST_BATTLE_MECHANICS
add
Code:
if isGhostEncountersActive?
pbDisplayPaused(_INTL("Got away safely!"))
@decision=3
return 1
end
find def pbStartBattleSendOut(sendOuts), change
Code:
if wildBattle?
foeParty = pbParty(1)
case foeParty.length
when 1
pbDisplayPaused(_INTL("Oh! A wild {1} appeared!",foeParty[0].name))
when 2
pbDisplayPaused(_INTL("Oh! A wild {1} and {2} appeared!",foeParty[0].name,
foeParty[1].name))
when 3
pbDisplayPaused(_INTL("Oh! A wild {1}, {2} and {3} appeared!",foeParty[0].name,
foeParty[1].name,foeParty[2].name))
end
into
Code:
if wildBattle?
foeParty = pbParty(1)
if isGhostEncountersActive?
pbDisplayPaused(_INTL("Ghostttt!"))
else
case foeParty.length
when 1
pbDisplayPaused(_INTL("Oh! A wild {1} appeared!",foeParty[0].name))
when 2
pbDisplayPaused(_INTL("Oh! A wild {1} and {2} appeared!",foeParty[0].name,
foeParty[1].name))
when 3
pbDisplayPaused(_INTL("Oh! A wild {1}, {2} and {3} appeared!",foeParty[0].name,
foeParty[1].name,foeParty[2].name))
end
end
find def pbFightMenu(idxBattler), change
Code:
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
into
Code:
if isGhostEncountersActive? && wildBattle?
pbDisplayPaused(_INTL("{1} is too scared to moveeee!",@battlers[idxBattler].name))
else
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
Third, in my script, delete class PokeBattle_Battler (delete all). Next, class PokeBattle_Battler, find def pbInitPokemon(pkmn,idxParty), change
into
Code:
if opposes? && [email protected]? && isGhostEncountersActive?
@name = "Ghost"
else
@name = pkmn.name
end
change
into
Code:
if opposes? && [email protected]? && isGhostEncountersActive?
@gender = 2
else
@gender = pkmn.gender
end
Fourth, in my script, delete class PokemonDataBox (delete all). Next, in class PokemonDataBox, find def refresh, change
Code:
imagePos.push(["Graphics/Pictures/Battle/icon_own",@spriteBaseX+8,36])
into
Code:
imagePos.push(["Graphics/Pictures/Battle/icon_own",@spriteBaseX+8,36]) if !isGhostEncountersActive?
#----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
You need to do this, too if in Dynamax script, there are the def in the class. Example: in Dynamax script, there are class PokeBattle_Scene, def pbFightMenu(...), you need to change like this.
If there are minor differences, you can ask me