Ciao a tutti ragazzi!
Vi spiego il mio problema...ho scaricato l'ultima versione di pokemon essentials e, fortuna ha voluto, che implementassero l'animazione VS. (stile B/W). Il mio problema sussiste proprio nell'attivazione perchè o non mi si attiva o mi si attiva per ogni combattimento contro ogni allenatore!
Io vorrei capire come attivarlo SOLO con determinati allenatori (gym leaders, elite four, ecc...)
Qui sotto vi ho linkato la parte interessata dello script...HELP ME!!!!!!!!!!!!!
if trainerid>=0
tbargraphic=sprintf("Graphics/Transitions/vsBar",getConstantName(PBTrainers,trainerid)) rescue niltbargraphic=sprintf("Graphics/Transitions/vsBar",trainerid) if !pbResolveBitmap(tbargraphic)tgraphic=sprintf("Graphics/Transitions/vsTrainer",getConstantName(PBTrainers,trainerid)) rescue niltgraphic=sprintf("Graphics/Transitions/vsTrainer",trainerid) if !pbResolveBitmap(tgraphic)if pbResolveBitmap(tbargraphic) && pbResolveBitmap(tgraphic)outfit=$Trainer ? $Trainer.outfit : 0# Set upviewplayer=Viewport.new(0,Graphics.height/3,Graphics.width/2,128)viewplayer.z=viewport.zviewopp=Viewport.new(Graphics.width/2,Graphics.height/3,Graphics.width/2,128)viewopp.z=viewport.zviewvs=Viewport.new(0,0,Graphics.width,Graphics.height)viewvs.z=viewport.zxoffset=(Graphics.width/2)/10xoffset=xoffset.roundxoffset=xoffset*10fade=Sprite.new(viewport)fade.bitmap=BitmapCache.load_bitmap("Graphics/Transitions/vsFlash")fade.tone=Tone.new(-255,-255,-255)fade.opacity=100overlay=Sprite.new(viewport)overlay.bitmap=Bitmap.new(Graphics.width,Graphics.height)pbSetSystemFont(overlay.bitmap)bar1=Sprite.new(viewplayer)pbargraphic=sprintf("Graphics/Transitions/vsBar",getConstantName(PBTrainers,$Trainer.trainertype),outfit) rescue nilpbargraphic=sprintf("Graphics/Transitions/vsBar",$Trainer.trainertype,outfit) if !pbResolveBitmap(pbargraphic)if !pbResolveBitmap(pbargraphic)pbargraphic=sprintf("Graphics/Transitions/vsBar",getConstantName(PBTrainers,$Trainer.trainertype)) rescue nilendpbargraphic=sprintf("Graphics/Transitions/vsBar%d",$Trainer.trainertype) if !pbResolveBitmap(pbargraphic)bar1.bitmap=BitmapCache.load_bitmap(pbargraphic)bar1.x=-xoffsetbar2=Sprite.new(viewopp)bar2.bitmap=BitmapCache.load_bitmap(tbargraphic)bar2.x=xoffsetvs=Sprite.new(viewvs)vs.bitmap=BitmapCache.load_bitmap("Graphics/Transitions/vs")vs.ox=vs.bitmap.width/2vs.oy=vs.bitmap.height/2vs.x=Graphics.width/2vs.y=Graphics.height/1.5vs.visible=falseflash=Sprite.new(viewvs)flash.bitmap=BitmapCache.load_bitmap("Graphics/Transitions/vsFlash")flash.opacity=0# Animation10.times dobar1.x+=xoffset/10bar2.x-=xoffset/10pbWait(1)endpbSEPlay("Flash2")pbSEPlay("Sword2")flash.opacity=255bar1.disposebar2.disposebar1=AnimatedPlane.new(viewplayer)bar1.bitmap=BitmapCache.load_bitmap(pbargraphic)player=Sprite.new(viewplayer)pgraphic=sprintf("Graphics/Transitions/vsTrainer%s_%d",getConstantName(PBTrainers,$Trainer.trainertype),outfit) rescue nilpgraphic=sprintf("Graphics/Transitions/vsTrainer%d_%d",$Trainer.trainertype,outfit) if !pbResolveBitmap(pgraphic)if !pbResolveBitmap(pgraphic)pgraphic=sprintf("Graphics/Transitions/vsTrainer%s",getConstantName(PBTrainers,$Trainer.trainertype)) rescue nilendpgraphic=sprintf("Graphics/Transitions/vsTrainer%d",$Trainer.trainertype) if !pbResolveBitmap(pgraphic)player.bitmap=BitmapCache.load_bitmap(pgraphic)player.x=-xoffsetbar2=AnimatedPlane.new(viewopp)bar2.bitmap=BitmapCache.load_bitmap(tbargraphic)trainer=Sprite.new(viewopp)trainer.bitmap=BitmapCache.load_bitmap(tgraphic)trainer.x=xoffsettrainer.tone=Tone.new(-255,-255,-255)25.times doflash.opacity-=51 if flash.opacity>0bar1.ox-=16bar2.ox+=16pbWait(1)end11.times dobar1.ox-=16bar2.ox+=16player.x+=xoffset/10trainer.x-=xoffset/10pbWait(1)end2.times dobar1.ox-=16bar2.ox+=16player.x-=xoffset/20trainer.x+=xoffset/20pbWait(1)end10.times dobar1.ox-=16bar2.ox+=16pbWait(1)endval=2flash.opacity=255vs.visible=truetrainer.tone=Tone.new(0,0,0)textpos=[[_INTL("{1}",$Trainer.name),Graphics.width/4,(Graphics.height/1.5)+10,2,Color.new(248,248,248),Color.new(12*6,12*6,12*6)],[_INTL("{1}",trainername),(Graphics.width/4)+(Graphics.width/2),(Graphics.height/1.5)+10,2,Color.new(248,248,248),Color.new(12*6,12*6,12*6)]]pbDrawTextPositions(overlay.bitmap,textpos)pbSEPlay("Sword2")70.times dobar1.ox-=16bar2.ox+=16flash.opacity-=25.5 if flash.opacity>0vs.x+=valvs.y-=valval=2 if vs.x<=(Graphics.width/2)-2val=-2 if vs.x>=(Graphics.width/2)+2pbWait(1)end30.times dobar1.ox-=16bar2.ox+=16vs.zoom_x+=0.2vs.zoom_y+=0.2pbWait(1)endflash.tone=Tone.new(-255,-255,-255)10.times dobar1.ox-=16bar2.ox+=16flash.opacity+=25.5pbWait(1)end# Endplayer.disposetrainer.disposeflash.disposevs.disposebar1.disposebar2.disposeoverlay.disposefade.disposeviewvs.disposeviewopp.disposeviewplayer.disposeviewport.color=Color.new(0,0,0,255)handled=trueendend# End of VS. sequence scriptif !handledif Sprite.method_defined?(:wave_amp) && rand(15)==0viewport.color=Color.new(0,0,0,255)sprite = Sprite.newbitmap=Graphics.snap_to_bitmapbm=bitmap.clonesprite.z=99999sprite.bitmap = bmsprite.wave_speed=500for i in 0..25sprite.opacity-=10sprite.wave_amp+=60sprite.updatesprite.wave_speed+=302.times doGraphics.updateendendbitmap.disposebm.disposesprite.disposeelsif Bitmap.method_defined?(:radial_blur) && rand(15)==0viewport.color=Color.new(0,0,0,255)sprite = Sprite.newbitmap=Graphics.snap_to_bitmapbm=bitmap.clonesprite.z=99999sprite.bitmap = bmfor i in 0..15bm.radial_blur(i,2)sprite.opacity-=152.times doGraphics.updateendendbitmap.disposebm.disposesprite.disposeelsif rand(15)==0scroll=["ScrollDown","ScrollLeft","ScrollRight","ScrollUp"]Graphics.freezeviewport.color=Color.new(0,0,0,255)Graphics.transition(50,sprintf("Graphics/Transitions/%s",scroll[rand(4)]))elsif rand(15)==0scroll=["ScrollDownRight","ScrollDownLeft","ScrollUpRight","ScrollUpLeft"]Graphics.freezeviewport.color=Color.new(0,0,0,255)Graphics.transition(50,sprintf("Graphics/Transitions/%s",scroll[rand(4)]))elsetransitions=["021-Normal01","022-Normal02","Battle","battle1","battle2","battle3","battle4","computertr","computertrclose","hexatr","hexatrc","hexatzr","Image1","Image2","Image3","Image4","Splash","Random_stripe_v","Random_stripe_h","RotatingPieces","ShrinkingPieces","BreakingGlass","Mosaic","zoomin"]rnd=rand(transitions.length)Graphics.freezeviewport.color=Color.new(0,0,0,255)Graphics.transition(40,sprintf("Graphics/Transitions/%s",transitions[rnd]))end5.times doGraphics.updateInput.updatepbUpdateSceneMapendendpbPushFadeyield if block_given?pbPopFadeif $game_system && $game_system.is_a?(Game_System)$game_system.bgm_resume(playingBGM)$game_system.bgs_resume(playingBGS)end$PokemonGlobal.nextBattleBGM=nil$PokemonGlobal.nextBattleME=nil$PokemonGlobal.nextBattleBack=nil$PokemonEncounters.clearStepCountfor j in 0..17viewport.color=Color.new(0,0,0,(17-j)*15)Graphics.updateInput.updatepbUpdateSceneMapendviewport.disposeenddef pbPrepareBattle(battle)if $game_screen.weather_type==1 || $game_screen.weather_type==2battle.weather=PBWeather::RAINDANCEbattle.weatherduration=-1elsif $game_screen.weather_type==3battle.weather=PBWeather::HAILbattle.weatherduration=-1elsif $game_screen.weather_type==4battle.weather=PBWeather::SANDSTORMbattle.weatherduration=-1elsif $game_screen.weather_type==5battle.weather=PBWeather::SUNNYDAYbattle.weatherduration=-1endbattle.shiftStyle=($PokemonSystem.battlestyle==0)battle.battlescene=($PokemonSystem.battlescene==0)battle.environment=pbGetEnvironmentenddef pbGetEnvironmentreturn PBEnvironment::None if !$game_mapif $PokemonGlobal && $PokemonGlobal.divingreturn PBEnvironment::Underwaterelsif $PokemonEncounters && $PokemonEncounters.isCave?return PBEnvironment::Caveelsif !pbGetMetadata($game_map.map_id,MetadataOutdoor)return PBEnvironment::Noneelseterrain=$game_player.terrain_tagif terrain==PBTerrain::Grass # Normal grassreturn PBEnvironment::Grasselsif terrain==PBTerrain::TallGrass # Tall grassreturn PBEnvironment::TallGrasselsif terrain==PBTerrain::DeepWater || terrain==PBTerrain::Waterreturn PBEnvironment::MovingWaterelsif terrain==PBTerrain::StillWaterreturn PBEnvironment::StillWaterelsif terrain==PBTerrain::Rockreturn PBEnvironment::Rockelsif terrain==PBTerrain::Sandreturn PBEnvironment::Sandendreturn PBEnvironment::Noneendenddef pbGenerateWildPokemon(species,level)genwildpoke=PokeBattle_Pokemon.new(species,level,$Trainer)items=genwildpoke.wildHoldItemschances=[50,5,1]chances=[60,20,5] if !$Trainer.party[0].egg? &&isConst?($Trainer.party[0].ability,PBAbilities,:COMPOUNDEYES)itemrnd=rand(100)if itemrnd<chances[0] || (items[0]==items[1] && items[1]==items[2])genwildpoke.item=items[0]elsif itemrnd<(chances[0]+chances[1])genwildpoke.item=items[1]elsif itemrnd<(chances[0]+chances[1]+chances[2])genwildpoke.item=items[2]endif hasConst?(PBItems,:SHINYCHARM) && $PokemonBag.pbQuantity(PBItems::SHINYCHARM)>0for i in 0...2 # 3 times as likelybreak if genwildpoke.isShiny?genwildpoke.personalID=rand(65536)|(rand(65536)<<16)endendif rand(65536)<POKERUSCHANCEgenwildpoke.givePokerusendEvents.onWildPokemonCreate.trigger(nil,genwildpoke)return genwildpokeenddef pbWildBattle(species,level,variable=nil,canescape=true,canlose=false)if (Input.press?(Input::CTRL) && $DEBUG) || $Trainer.pokemonCount==0if $Trainer.pokemonCount>0Kernel.pbMessage(_INTL("SKIPPING BATTLE..."))endpbSet(variable,1)$PokemonGlobal.nextBattleBGM=nil$PokemonGlobal.nextBattleME=nil$PokemonGlobal.nextBattleBack=nilreturn trueendhandled=[nil]Events.onWildBattleOverride.trigger(nil,species,level,handled)if handled[0]!=nilreturn handled[0]endcurrentlevels=[]for i in $Trainer.partycurrentlevels.push(i.level)endgenwildpoke=pbGenerateWildPokemon(species,level)Events.onStartBattle.trigger(nil,genwildpoke)scene=pbNewBattleScenebattle=PokeBattle_Battle.new(scene,$Trainer.party,[genwildpoke],$Trainer,nil)battle.internalbattle=truebattle.cantescape=!canescapepbPrepareBattle(battle)decision=0pbBattleAnimation(pbGetWildBattleBGM(species)) {pbSceneStandby {decision=battle.pbStartBattle(canlose)}for i in $Trainer.party; (i.makeUnmega rescue nil); endif $PokemonGlobal.partnerpbHealAllfor i in $PokemonGlobal.partner[3]i.heali.makeUnmega rescue nilendendif decision==2 || decision==5 # if loss or drawif canlosefor i in $Trainer.party; i.heal; endfor i in 0...10Graphics.updateendelse$game_system.bgm_unpause$game_system.bgs_unpauseKernel.pbStartOverendendEvents.onEndBattle.trigger(nil,decision)}Input.updatepbSet(variable,decision)Events.onWildBattleEnd.trigger(nil,species,level,decision)return (decision!=2)enddef pbDoubleWildBattle(species1,level1,species2,level2,variable=nil,canescape=true,canlose=false)if (Input.press?(Input::CTRL) && $DEBUG) || $Trainer.pokemonCount==0if $Trainer.pokemonCount>0Kernel.pbMessage(_INTL("SKIPPING BATTLE..."))endpbSet(variable,1)$PokemonGlobal.nextBattleBGM=nil$PokemonGlobal.nextBattleME=nil$PokemonGlobal.nextBattleBack=nilreturn trueendcurrentlevels=[]for i in $Trainer.partycurrentlevels.push(i.level)endgenwildpoke=pbGenerateWildPokemon(species1,level1)genwildpoke2=pbGenerateWildPokemon(species2,level2)Events.onStartBattle.trigger(nil,genwildpoke)scene=pbNewBattleSceneif $PokemonGlobal.partnerothertrainer=PokeBattle_Trainer.new($PokemonGlobal.partner[1],$PokemonGlobal.partner[0])othertrainer.id=$PokemonGlobal.partner[2]othertrainer.party=$PokemonGlobal.partner[3]combinedParty=[]for i in 0...$Trainer.party.lengthcombinedParty[i]=$Trainer.party[i]endfor i in 0...othertrainer.party.lengthcombinedParty[6+i]=othertrainer.party[i]endbattle=PokeBattle_Battle.new(scene,combinedParty,[genwildpoke,genwildpoke2],[$Trainer,othertrainer],nil)battle.fullparty1=trueelsebattle=PokeBattle_Battle.new(scene,$Trainer.party,[genwildpoke,genwildpoke2],$Trainer,nil)endbattle.internalbattle=truebattle.doublebattle=battle.pbDoubleBattleAllowed?()battle.cantescape=!canescapepbPrepareBattle(battle)decision=0pbBattleAnimation(pbGetWildBattleBGM(species1)) {pbSceneStandby {decision=battle.pbStartBattle(canlose)}for i in $Trainer.party; (i.makeUnmega rescue nil); endif $PokemonGlobal.partnerpbHealAllfor i in $PokemonGlobal.partner[3]i.heali.makeUnmega rescue nilendendif decision==2 || decision==5if canlosefor i in $Trainer.party; i.heal; endfor i in 0...10Graphics.updateendelse$game_system.bgm_unpause$game_system.bgs_unpauseKernel.pbStartOverendendEvents.onEndBattle.trigger(nil,decision)}Input.updatepbSet(variable,decision)return (decision!=2 && decision!=5)enddef pbCheckAllFainted()if pbAllFaintedKernel.pbMessage(_INTL("{1} has no usable Pokémon!\1",$Trainer.name))Kernel.pbMessage(_INTL("{1} blacked out!",$Trainer.name))pbBGMFade(1.0)pbBGSFade(1.0)pbFadeOutIn(99999){Kernel.pbStartOver}endenddef pbEvolutionCheck(currentlevels)# Check conditions for evolutionfor i in 0...currentlevels.lengthpokemon=$Trainer.party[i]if pokemon && (!currentlevels[i] || pokemon.level!=currentlevels[i])newspecies=Kernel.pbCheckEvolution(pokemon)if newspecies>0# Start evolution sceneevo=PokemonEvolutionScene.newevo.pbStartScreen(pokemon,newspecies)evo.pbEvolutionevo.pbEndScreenendendendenddef pbDynamicItemList(*args)ret=[]for i in 0...args.lengthif hasConst?(PBItems,args[i])ret.push(getConst(PBItems,args[i].to_sym))endendreturn retend# Runs the Pickup event after a battle if a Pokemon has the ability Pickup.def Kernel.pbPickup(pokemon)return if !isConst?(pokemon.ability,PBAbilities,:PICKUP) || pokemon.egg?return if pokemon.item!=0return if rand(10)!=0pickupList=pbDynamicItemList(:POTION,:ANTIDOTE,:SUPERPOTION,:GREATBALL,:REPEL,:ESCAPEROPE,:FULLHEAL,:HYPERPOTION,:ULTRABALL,:REVIVE,:RARECANDY,:SUNSTONE,:MOONSTONE,:HEARTSCALE,:FULLRESTORE,:MAXREVIVE,:PPUP,:MAXELIXIR)pickupListRare=pbDynamicItemList(:HYPERPOTION,:NUGGET,:KINGSROCK,:FULLRESTORE,:ETHER,:IRONBALL,:PRISMSCALE,:ELIXIR,:PRISMSCALE,:LEFTOVERS,:PRISMSCALE)return if pickupList.length!=18return if pickupListRare.length!=11randlist=[30,10,10,10,10,10,10,4,4,1,1]items=[]plevel=[100,pokemon.level].minrnd=rand(100)itemstart=(plevel-1)/10itemstart=0 if itemstart<0for i in 0...9items.push(pickupList[i+itemstart])enditems.push(pickupListRare[itemstart])items.push(pickupListRare[itemstart+1])cumnumber=0for i in 0...11cumnumber+=randlist[i]if rnd<cumnumberpokemon.item=items[i]breakendendendclass PokemonTempattr_accessor :encounterTypeattr_accessor :evolutionLevelsenddef pbEncounter(enctype)if $PokemonGlobal.partnerencounter1=$PokemonEncounters.pbEncounteredPokemon(enctype)return false if !encounter1encounter2=$PokemonEncounters.pbEncounteredPokemon(enctype)return false if !encounter2$PokemonTemp.encounterType=enctypepbDoubleWildBattle(encounter1[0],encounter1[1],encounter2[0],encounter2[1])$PokemonTemp.encounterType=-1return trueelseencounter=$PokemonEncounters.pbEncounteredPokemon(enctype)return false if !encounter$PokemonTemp.encounterType=enctypepbWildBattle(encounter[0],encounter[1])$PokemonTemp.encounterType=-1return trueendendEvents.onStartBattle+=proc {|sender,e|$PokemonTemp.evolutionLevels=[]for i in 0...$Trainer.party.length$PokemonTemp.evolutionLevels[i]=$Trainer.party[i].levelend}Events.onEndBattle+=proc {|sender,e|decision=e[0]if decision!=2 && decision!=5 # not a loss or a drawif $PokemonTemp.evolutionLevelspbEvolutionCheck($PokemonTemp.evolutionLevels)$PokemonTemp.evolutionLevels=nilendendif decision==1for pkmn in $Trainer.partyKernel.pbPickup(pkmn)if isConst?(pkmn.ability,PBAbilities,:HONEYGATHER) && !pkmn.egg? && pkmn.item==0if hasConst?(PBItems,:HONEY)chance = 5 + ((pkmn.level-1)/10)*5pkmn.item=getConst(PBItems,:HONEY) if rand(100)<chanceendendendend}