Advertisement
FiaPlay

Online Trainer

May 9th, 2024 (edited)
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.00 KB | None | 0 0
  1. #-----------------------------------------------------------------------------
  2. # Script creado por FiaPlay para Pokémon Essentials BES. Créditos si se usa.
  3. # Discord de FP Systems: https://discord.gg/ds8DWB5NSW
  4. # Si vas reportar algún bug o preguntar algo recomiendo hacerlo en el hilo del server de PokeLiberty o en FP Systems.
  5. #-----------------------------------------------------------------------------
  6. # Demostración
  7. #-----------------------------------------------------------------------------
  8. # Modo de uso:
  9. # *Usa fpDownloadBattle para descargar los datos de la batalla
  10. # *Usa pbDownloandedBattle para iniciar la batalla
  11. # ****Los siguientes pasos no deben hacerse en la versión que los jugadores descargarán****
  12. # *Crea una copia de tu juego para generar los datos
  13. # *Usa el modo depurador para dejar tu equipo igual al que quieres para el entrenador.
  14. # *Usa OnlineBattle.new(trtype,trname,doublebattle,endspeech)
  15. # trtype es el ID del tipo de entrenador
  16. # trname es el nombre del entrenador
  17. # doublebattle indica si será un combate doble
  18. # endspeech es lo que dirá el entrenador al terminar el combate
  19. # Eso creará el archivo OnlineBattle.txt en la capeta del juego.
  20. # Sube el contenido de OnlineBattle.txt a internet (recomendable pastebin.com)
  21. #-----------------------------------------------------------------------------
  22. URRL = "https://pastebin.com/raw/yJ0TDKvw" # Enlace a el txt con los datos encriptados.
  23. MBD = {} # Si usas mi sistema de Diálogos de Entrenador durante la batalla configura los de este entrenador aquí.
  24. # Esto se debe cambiar para cada nuevo entrenador.
  25. BATTLE_BGM = "" # BGM usado para la batalla (si se deja en blanco se usará la música por defecto del entrenador)
  26. class OnlineBattle
  27. attr_accessor :trainer
  28. attr_accessor :team
  29. attr_accessor :mbd
  30. attr_accessor :doublebattle
  31. attr_accessor :endspeech
  32.  
  33. def initialize(trtype,trname,doublebattle=false,endspeech="")
  34. @team = $Trainer.party
  35. @trainer = PokeBattle_Trainer.new(trname,trtype)
  36. @doublebattle = doublebattle
  37. @endspeech = endspeech
  38. for i in team
  39. if i.isTera?
  40. i.makeUntera
  41. i.tera_ace=true
  42. end
  43. end
  44. @mbd=MBD if defined?(MBD_Data)
  45. text=pbMysteryGiftEncrypt(self)
  46. $PokemonGlobal.downloaded_battle=text
  47. File.open("OnlineBattle.txt","wb"){|f|
  48. f.write(text)
  49. }
  50. end
  51. end
  52.  
  53. def fpDownloadBattle()
  54. text = pbDownloadToString(URRL)
  55. if text.length>0
  56. $PokemonGlobal.downloaded_battle=text
  57. end
  58. end
  59.  
  60. def fpLoadDownloandedBattle
  61. text=$PokemonGlobal.downloaded_battle
  62. return false if !text || text.length==0
  63. b=pbMysteryGiftDecrypt(text)
  64. return b
  65. end
  66.  
  67. def fpDownloandedBattle()
  68. b=fpLoadDownloandedBattle()
  69. if !b
  70. Kernel.pbMessage("No se han podido cargar los datos de la batalla")
  71. return
  72. end
  73. fpTTS_set(b.mbd) if defined?(MBD_Data)
  74. trainer = b.trainer
  75. playerparty=$Trainer.party
  76. playertrainer=$Trainer
  77. scene=pbNewBattleScene
  78. battle=PokeBattle_Battle.new(scene,playerparty,b.team,playertrainer,trainer)
  79. battle.fullparty1=false
  80. battle.doublebattle=b.doublebattle ? battle.pbDoubleBattleAllowed?() : false
  81. battle.endspeech=b.endspeech
  82. battle.items=[]
  83. trainerbgm=pbGetTrainerBattleBGM(trainer,true)
  84. Events.onStartBattle.trigger(nil,nil)
  85. battle.internalbattle=false
  86. pbPrepareBattle(battle)
  87. restorebgm=true
  88. decision=0
  89. Audio.me_stop
  90. pbBattleAnimation(trainerbgm,trainer.trainertype,trainer.name) {
  91. pbSceneStandby {
  92. decision=battle.pbStartBattle(true)
  93. }
  94. for i in $Trainer.party; (i.makeUnmega rescue nil); (i.makeUnprimal rescue nil); end
  95. Events.onEndBattle.trigger(nil,decision,true)
  96. }
  97. Input.update
  98. pbSet(1,decision)
  99. pbHealAll
  100. return (decision==1)
  101. end
  102.  
  103. class PokemonGlobalMetadata
  104. attr_accessor :downloaded_battle
  105. end
  106.  
  107. def pbGetTrainerBattleBGM(trainer,online=false) # can be a PokeBattle_Trainer or an array of PokeBattle_Trainer
  108. return pbStringToAudioFile(BATTLE_BGM) if online && BATTLE_BGM.length>0
  109. if $PokemonGlobal.nextBattleBGM
  110. return $PokemonGlobal.nextBattleBGM.clone
  111. end
  112. music=nil
  113. pbRgssOpen("Data/trainertypes.dat","rb"){|f|
  114. trainertypes=Marshal.load(f)
  115. if !trainer.is_a?(Array)
  116. trainerarray=[trainer]
  117. else
  118. trainerarray=trainer
  119. end
  120. for i in 0...trainerarray.length
  121. trainertype=trainerarray[i].trainertype
  122. if trainertypes[trainertype]
  123. music=trainertypes[trainertype][4]
  124. end
  125. end
  126. }
  127. ret=nil
  128. if music && music!=""
  129. ret=pbStringToAudioFile(music)
  130. end
  131. if !ret && $game_map
  132. # Check map-specific metadata
  133. music=pbGetMetadata($game_map.map_id,MetadataMapTrainerBattleBGM)
  134. if music && music!=""
  135. ret=pbStringToAudioFile(music)
  136. end
  137. end
  138. if !ret
  139. # Check global metadata
  140. music=pbGetMetadata(0,MetadataTrainerBattleBGM)
  141. if music && music!=""
  142. ret=pbStringToAudioFile(music)
  143. end
  144. end
  145. ret=pbStringToAudioFile("005-Boss01") if !ret
  146. return ret
  147. end
  148.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement