Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #-----------------------------------------------------------------------------
- # Script creado por FiaPlay para Pokémon Essentials BES. Créditos si se usa.
- # Discord de FP Systems: https://discord.gg/ds8DWB5NSW
- # Si vas reportar algún bug o preguntar algo recomiendo hacerlo en el hilo del server de PokeLiberty o en FP Systems.
- #-----------------------------------------------------------------------------
- # Demostración
- #-----------------------------------------------------------------------------
- # Modo de uso:
- # *Usa fpDownloadBattle para descargar los datos de la batalla
- # *Usa pbDownloandedBattle para iniciar la batalla
- # ****Los siguientes pasos no deben hacerse en la versión que los jugadores descargarán****
- # *Crea una copia de tu juego para generar los datos
- # *Usa el modo depurador para dejar tu equipo igual al que quieres para el entrenador.
- # *Usa OnlineBattle.new(trtype,trname,doublebattle,endspeech)
- # trtype es el ID del tipo de entrenador
- # trname es el nombre del entrenador
- # doublebattle indica si será un combate doble
- # endspeech es lo que dirá el entrenador al terminar el combate
- # Eso creará el archivo OnlineBattle.txt en la capeta del juego.
- # Sube el contenido de OnlineBattle.txt a internet (recomendable pastebin.com)
- #-----------------------------------------------------------------------------
- URRL = "https://pastebin.com/raw/yJ0TDKvw" # Enlace a el txt con los datos encriptados.
- MBD = {} # Si usas mi sistema de Diálogos de Entrenador durante la batalla configura los de este entrenador aquí.
- # Esto se debe cambiar para cada nuevo entrenador.
- BATTLE_BGM = "" # BGM usado para la batalla (si se deja en blanco se usará la música por defecto del entrenador)
- class OnlineBattle
- attr_accessor :trainer
- attr_accessor :team
- attr_accessor :mbd
- attr_accessor :doublebattle
- attr_accessor :endspeech
- def initialize(trtype,trname,doublebattle=false,endspeech="")
- @team = $Trainer.party
- @trainer = PokeBattle_Trainer.new(trname,trtype)
- @doublebattle = doublebattle
- @endspeech = endspeech
- for i in team
- if i.isTera?
- i.makeUntera
- i.tera_ace=true
- end
- end
- @mbd=MBD if defined?(MBD_Data)
- text=pbMysteryGiftEncrypt(self)
- $PokemonGlobal.downloaded_battle=text
- File.open("OnlineBattle.txt","wb"){|f|
- f.write(text)
- }
- end
- end
- def fpDownloadBattle()
- text = pbDownloadToString(URRL)
- if text.length>0
- $PokemonGlobal.downloaded_battle=text
- end
- end
- def fpLoadDownloandedBattle
- text=$PokemonGlobal.downloaded_battle
- return false if !text || text.length==0
- b=pbMysteryGiftDecrypt(text)
- return b
- end
- def fpDownloandedBattle()
- b=fpLoadDownloandedBattle()
- if !b
- Kernel.pbMessage("No se han podido cargar los datos de la batalla")
- return
- end
- fpTTS_set(b.mbd) if defined?(MBD_Data)
- trainer = b.trainer
- playerparty=$Trainer.party
- playertrainer=$Trainer
- scene=pbNewBattleScene
- battle=PokeBattle_Battle.new(scene,playerparty,b.team,playertrainer,trainer)
- battle.fullparty1=false
- battle.doublebattle=b.doublebattle ? battle.pbDoubleBattleAllowed?() : false
- battle.endspeech=b.endspeech
- battle.items=[]
- trainerbgm=pbGetTrainerBattleBGM(trainer,true)
- Events.onStartBattle.trigger(nil,nil)
- battle.internalbattle=false
- pbPrepareBattle(battle)
- restorebgm=true
- decision=0
- Audio.me_stop
- pbBattleAnimation(trainerbgm,trainer.trainertype,trainer.name) {
- pbSceneStandby {
- decision=battle.pbStartBattle(true)
- }
- for i in $Trainer.party; (i.makeUnmega rescue nil); (i.makeUnprimal rescue nil); end
- Events.onEndBattle.trigger(nil,decision,true)
- }
- Input.update
- pbSet(1,decision)
- pbHealAll
- return (decision==1)
- end
- class PokemonGlobalMetadata
- attr_accessor :downloaded_battle
- end
- def pbGetTrainerBattleBGM(trainer,online=false) # can be a PokeBattle_Trainer or an array of PokeBattle_Trainer
- return pbStringToAudioFile(BATTLE_BGM) if online && BATTLE_BGM.length>0
- if $PokemonGlobal.nextBattleBGM
- return $PokemonGlobal.nextBattleBGM.clone
- end
- music=nil
- pbRgssOpen("Data/trainertypes.dat","rb"){|f|
- trainertypes=Marshal.load(f)
- if !trainer.is_a?(Array)
- trainerarray=[trainer]
- else
- trainerarray=trainer
- end
- for i in 0...trainerarray.length
- trainertype=trainerarray[i].trainertype
- if trainertypes[trainertype]
- music=trainertypes[trainertype][4]
- end
- end
- }
- ret=nil
- if music && music!=""
- ret=pbStringToAudioFile(music)
- end
- if !ret && $game_map
- # Check map-specific metadata
- music=pbGetMetadata($game_map.map_id,MetadataMapTrainerBattleBGM)
- if music && music!=""
- ret=pbStringToAudioFile(music)
- end
- end
- if !ret
- # Check global metadata
- music=pbGetMetadata(0,MetadataTrainerBattleBGM)
- if music && music!=""
- ret=pbStringToAudioFile(music)
- end
- end
- ret=pbStringToAudioFile("005-Boss01") if !ret
- return ret
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement