Advertisement
FiaPlay

MBD (BW)

Aug 19th, 2023 (edited)
1,463
1
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 20.78 KB | None | 1 0
  1. #-----------------------------------------------------------------------------
  2. # Script creado por FiaPlay para Pokémon Essentials BW. 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. #Changelog:
  6. #     PRIMER LANZAMIENTO DE LA VERSIÓN PARA ESSENTIALS BW (BASADO EN LA 2.3)
  7. #2.3  Cambio de nombre de las claves por otras más cortas y fáciles de recordar.
  8. #     Añadida la posibilidad de poner un texto cuando se acaba un turno.
  9. #     Ahora es posible definir un diáogo desde la llamada a Script.
  10. #2.2  Ahora puedes encadenar varios textos colocándolos en una Array. (Se muestran uno detrás de otro)
  11. #     Añadida la posibilidad de poner un texto cuando se unvía un Pokémon Shiny.
  12. #     Añadida la posibilidad de poner un texto cuando el último Pokémon del rival tiene pocos PS.
  13. #     Corrección de errores y refactorización.
  14. #2.1.1 Solucionado Bug de incompatibilidad con el script de Entrenadores dinámicos.
  15. #2.1: Añadida la posibilidad de poner un texto cuando el jugador saca un Pokémon oscuro.
  16. #     Añadida la posibilidad de poner un texto cuando el jugador saca su último Pokémon.
  17. #     Añadida la posibilidad de poner un texto cuando un Pokémon recibe un golpe Super-Efectivo.
  18. #     Añadida la posibilidad de poner un texto cuando un Pokémon recibe un golpe Poco-Efectivo.
  19. #     Añadida la posibilidad de poner un texto cuando un Pokémon recibe un Golpe Crítico.
  20. #     Solucionada incompatibilidad con mi script de Megaevolución de Pokémon Salvaje (Coloque este script debajo de ese).
  21. #     Compatibilidad con este sistema de Dynamax: https://www.pokecommunity.com/showthread.php?t=426770
  22. #     Corrección de errores.
  23. #2.0: Nueva forma de setear los textos (No pienso volver a cambiarla).
  24. #     Eliminada la necesidad de usar variables de evento.
  25. #     Ahora el rival puede decir algo cuando el jugador usa una de las mecánicas de batalla (Megaevolución,Ultraexplosión,etc...)
  26. #     Ahora el rival puede decir algo cuando este saca un Pokémon en específico.
  27. #     Añadida la posibilidad de reproducir un SE junto con los textos.
  28. #1.4: Eliminados los buffers de texto (Para ser sincero son innecesarios e incompatibles con los cambios de esta versión)
  29. #     Ahora si un diálogo no está definido se omite. (En anteriores versiones se mostraba un texto en blanco.)
  30. #     Ahora los textos se activan desde el mismo método que se setean. Se desactivan automáticamente al terminar la batalla.
  31. #     Compatibilidad con el script de Movimientos Z.
  32. #1.3: Añadida la posiblidad de usar buffers de texto.
  33. #     Añadido un método para revisar si hay una versión actualizada del script.
  34. #1.2: Añadida la posiblidad de usar varias músicas de último Pokémon.
  35. #     Añadida la posibilidad de poner un texto cuando el rival usa un objeto.
  36. #     Añadida la posibilidad de poner un texto cuando el rival saca un pokémon oscuro.
  37. #     Añadida la posibilidad de poner un texto cuando capturas pokémon oscuro del rival.
  38. #     Correción de errores (Incluido uno que viene por defecto en essentials).
  39. #1.1: Añadido un par de métodos para setear textos más facilmente.
  40. #1.0: Versión inicial.
  41. #-----------------------------------------------------------------------------
  42. # Demostración https://youtu.be/lHCQdq62Xh8 (2.0)
  43. #-----------------------------------------------------------------------------
  44. # Modo de uso:
  45. #Para activar los textos solo setealos usando el método fpTTS_set()
  46. #Entre paréntesis va un Symbol que es el nombre de la constante con los datos.
  47. =begin Para un ejemplo práctico pegue una de las siguientes líneas en una llamada a script
  48. fpTTS_set(:TEST_BW)
  49. fpTTS_set(:CHAMPION_BLUE)
  50. fpTTS_set(:LEADER_CHEREN)
  51. =end
  52. =begin Si lo que quiere es definirlo desde una llamada a Script (Ni idea de por qué) podría:
  53. dialogue={
  54. "mega" => "¡Voy con todo!",
  55. "super_effective_move(player)" => "Sabes lo que haces muchacho."
  56. }
  57. fpTTS_set(dialogue)
  58. =end
  59. #-----------------------------------------------------------------------------
  60. # FAQ:
  61. #*¿Para cuando videotutorial?
  62. # Para cuando tenga ganas.
  63. #
  64. #*Antes de iniciar cada batalla recibo unas alertas de que uso una versión no compatible.
  65. # Estás en una versión que no es la Essentials BW. Si estás en esta versión y recibes el error avísame por Discord.
  66. #
  67. #*¿Es compatible con combates dobles?
  68. # No deberías recibir mensajes de error, pero no prometo nada.
  69. #
  70. #*He recibido x error y me parece que es este script.
  71. # Avísame por el Discord. (Solo si de verdad crees que fue este script)
  72. #-----------------------------------------------------------------------------
  73. # Estas son las opciones cámbialas a como necesites.
  74. #-----------------------------------------------------------------------------
  75. TEXTSE = "" #SE que se reproducirá al aparecer el sprite del entrenador
  76. module MBD_Data
  77.  
  78. #-----------------------------------------------------------------------------
  79. # En la siguiente constante están configurados todos los diálogos posibles.
  80. #-----------------------------------------------------------------------------
  81. TEST_BW={
  82.   "last_bgm" => "Boss02",
  83.   "last" => ["¡Ho, no. Es mi último Pokémon!","Pero todavía puedo luchar"],
  84.   "last(player)" => "Te veo en un buen apuro.",
  85.   "end_turn" => [0,["¿Qué haces?","Esto solo está empezando"]],
  86.   "lowhp_last" => ["!No puede ser¡","¡ESTOY AL LÍMITE!"],
  87.   "shiny" => ["¿Cómo ves mi brillo?","¿Es mucho para tí?"],
  88.   "shiny(player)" => "¿De donde sacaste eso?",
  89.   "mega" => "¡Qué importa solo debo usar la poderosa energía ancestral!",
  90.   "mega(player)" => "No podía esperar menos de tí.",
  91.   "send" => [:KYOGRE,"Tan solo admira mi Leviatán",:GROUDON,"Un poderoso Reptil Ígneo."],
  92.   "item" => "No puedo dejar que esto termine tan rápido.",
  93.   "shadow" => "No es inhumano , solo es un viejo truco.",
  94.   "shadow(player)" => "Me sorprende verte usando un poder como ese.",
  95.   "caught_poke" => "¡Cómo te atreves!",
  96.   "critical_move" => "Tengo al universo de mi lado.",
  97.   "critical_move(player)" => "Necesitarás más que suerte para vencerme.",
  98.   "low_effective_move" => "Debo pensar mejor lo que hago.",
  99.   "low_effective_move(player)" => ["Creí tenías más experiencia.","No puedes ganarme cometiendo errores."],
  100.   "super_effective_move" => "Cometiste un greve error al meterte conmigo.",
  101.   "super_effective_move(player)" => "Nada mal niño."
  102. }
  103.  
  104. #-----------------------------------------------------------------------------
  105. # Esto sería para la batalla contra el campeón por defecto.
  106. #-----------------------------------------------------------------------------
  107. CHAMPION_BLUE={
  108.   "last" => "No puedo dejar que me derrotes ahora.",
  109.   "last(player)" => "Luego de tantos combtes por fin podré derotaré.",
  110.   "end_turn" => [0,["Este combate solo está empezando.", "Todavía no te confies."]],
  111.   "lowhp_last" => "Mientras tenga uno mi poder es infinito.",
  112.   "send" => [:BLASTOISE,"Espero que sepas nadar.",:CHARIZARD,"Prepárate para pasar calor."],
  113.   "item" => "Usaré todo lo que tenga a mano para vencerte.",
  114.   "shadow(player)" => ["Veo que caiste en esa tentación.","No mereces nisiquiera retarme."],
  115.   "critical_move(player)" => "Solo con eso no me ganarás.",
  116.   "low_effective_move(player)" => "¿En qué estabas pensando?",
  117.   "super_effective_move" => "Aprendí mucho con mi Pokedex."
  118. }
  119. #-----------------------------------------------------------------------------
  120. # Esto sería para la batalla contra Cheren.
  121. #-----------------------------------------------------------------------------
  122. LEADER_CHEREN={
  123.   "last_bgm" => "elite",
  124.   "last" => "Bien, pero si quieres la Medalla Base tendrás que luchar un poco más.",
  125.   "end_turn" => [0,["¿Qué haces?","Esto solo está empezando."]],
  126.   "shiny(player)" => ["Has buscado oro.","Pero su belleza no afecta su fuerza."],
  127.   "send" => [:PATRAT,"Veamos de que estás hecho... Aspirante."],
  128.   "mega(player)" => "Me parece muy temprano para que uses algo así.",
  129.   "item" => "No puedo rendirme tan rápido.",
  130.   "super_effective_move(player)" => "Jamás podrás acabar con mi determinación."
  131. }
  132. end
  133.  
  134. #--------------------------------------------------------------------------------
  135. # A patir de aquí no toques nada a no ser que sepas bien lo que estás haciendo.
  136. #--------------------------------------------------------------------------------
  137.  
  138. class PokeBattle_Battle
  139.  
  140. #--------------------------------------------------------------------------------
  141. # Método que muestra los textos
  142. #--------------------------------------------------------------------------------
  143.   def fpShowText(key="",mbu="",dtext=nil)
  144.     return if !@opponent
  145.     return if key==""
  146.     return if !$tts[key]
  147.     text = dtext ? dtext : $tts[key]
  148.     return if $mbu.include?(mbu)
  149.     @scene.pbShowOpponent(0,true)
  150.     pbSEPlay(TEXTSE) if TEXTSE && TEXTSE!=""
  151.     if text.is_a?(Array)
  152.         for i in text
  153.           pbDisplayPaused(i)
  154.         end
  155.     else
  156.       pbDisplayPaused(text)
  157.     end
  158.     @scene.pbHideOpponent
  159.     PBDebug.log("Díalogo Mostrado: #{text}")
  160.     $mbu.push(mbu) if mbu!=""
  161.   end
  162.    
  163. #--------------------------------------------------------------------------------
  164. #Para el último Pokémon , los Pokémon específicos y los Pokémon Oscuros del jugador.
  165. #--------------------------------------------------------------------------------
  166.   def pbSendOut(index,pokemon)
  167.     pbSetSeen(pokemon)
  168.     @peer.pbOnEnteringBattle(self,pokemon)
  169.     if pbIsOpposing?(index)
  170.       @scene.pbTrainerSendOut(index,pokemon)
  171.       if (pbPokemonCount(@party2)>=2 || $tts["last"] == nil) && $tts["send"]
  172.         for i in 0...$tts["send"].length/2
  173.           name=pokemon.name
  174.           if isConst?(pokemon.species,PBSpecies,$tts["send"][i*2]) && !$mbu.include?(name)
  175.             fpShowText("send","opp#{name}",$tts["send"][i*2+1])
  176.           end
  177.         end
  178.       end
  179.       pbBGMPlay($tts["last_bgm"],100,100) if $tts["last_bgm"] && pbPokemonCount(@party2)==1
  180.       fpShowText("last") if pbPokemonCount(@party2)==1
  181.     else
  182.       @scene.pbSendOut(index,pokemon)
  183.       fpShowText("last(player)") if pbPokemonCount(@party1)==1
  184.       @battle.fpShowText("shadow(player)","shadow(player)") if pokemon.isShadow?
  185.     end
  186.     @scene.pbResetMoveIndex(index)
  187.   end
  188.  
  189. #--------------------------------------------------------------------------------
  190. #Para la Megaevolución
  191. #--------------------------------------------------------------------------------
  192.   def pbMegaEvolve(index)
  193.     return if !@battlers[index] || !@battlers[index].pokemon
  194.     return if !(@battlers[index].hasMega? rescue false)
  195.     return if (@battlers[index].isMega? rescue true)
  196.     ownername=pbGetOwner(index).fullname
  197.     ownername=pbGetOwner(index).name if pbBelongsToPlayer?(index)
  198.     fpShowText("mega") if pbIsOpposing?(index)
  199.     pbDisplay(_INTL("¡La {2} de {1} está reaccionando al Mega Aro de {3}!",
  200.            @battlers[index].pbThis,PBItems.getName(@battlers[index].item),
  201.          ownername))
  202.     pbCommonAnimation("MegaEvolution",@battlers[index],nil)
  203.     @battlers[index].pokemon.makeMega
  204.     @battlers[index].form=@battlers[index].pokemon.form
  205.     @battlers[index].pbUpdate(true)
  206.     @scene.pbChangePokemon(@battlers[index],@battlers[index].pokemon)
  207.     meganame=(@battlers[index].pokemon.megaName rescue nil)
  208.     if !meganame || meganame==""
  209.       meganame=_INTL("Mega {1}",PBSpecies.getName(@battlers[index].pokemon.species))
  210.     end
  211.     pbDisplay(_INTL("¡{1} ha Mega Evolucionado en {2}!",@battlers[index].pbThis,meganame))
  212.     fpShowText("mega(player)") if pbBelongsToPlayer?(index)
  213.     PBDebug.log("[Mega Evolución] #{@battlers[index].pbThis} ha Mega Evolucionado")
  214.     side=(pbIsOpposing?(index)) ? 1 : 0
  215.     owner=pbGetOwnerIndex(index)
  216.     @megaEvolution[side][owner]=-2
  217.   end
  218.  
  219. #--------------------------------------------------------------------------------
  220. # Para los objetos
  221. #--------------------------------------------------------------------------------
  222.   def pbEnemyUseItem(item,battler)
  223.     return 0 if !@internalbattle
  224.     items=pbGetOwnerItems(battler.index)
  225.     return if !items
  226.     opponent=pbGetOwner(battler.index)
  227.     for i in 0...items.length
  228.       if items[i]==item
  229.         items.delete_at(i)
  230.         break
  231.       end
  232.     end
  233.     fpShowText("item","item")
  234.     itemname=PBItems.getName(item)
  235.     pbDisplayBrief(_INTL("{1} used the\r\n{2}!",opponent.fullname,itemname))
  236.     PBDebug.log("[Opponent used #{itemname}]")
  237.     if isConst?(item,PBItems,:POTION)
  238.       battler.pbRecoverHP(20,true)
  239.       pbDisplay(_INTL("{1}'s HP was restored.",battler.pbThis))
  240.     elsif isConst?(item,PBItems,:SUPERPOTION)
  241.       battler.pbRecoverHP(50,true)
  242.       pbDisplay(_INTL("{1}'s HP was restored.",battler.pbThis))
  243.     elsif isConst?(item,PBItems,:HYPERPOTION)
  244.       battler.pbRecoverHP(200,true)
  245.       pbDisplay(_INTL("{1}'s HP was restored.",battler.pbThis))
  246.     elsif isConst?(item,PBItems,:MAXPOTION)
  247.       battler.pbRecoverHP(battler.totalhp-battler.hp,true)
  248.       pbDisplay(_INTL("{1}'s HP was restored.",battler.pbThis))
  249.     elsif isConst?(item,PBItems,:FULLRESTORE)
  250.       fullhp=(battler.hp==battler.totalhp)
  251.       battler.pbRecoverHP(battler.totalhp-battler.hp,true)
  252.       battler.status=0; battler.statusCount=0
  253.       battler.effects[PBEffects::Confusion]=0
  254.       if fullhp
  255.         pbDisplay(_INTL("{1} became healthy!",battler.pbThis))
  256.       else
  257.         pbDisplay(_INTL("{1}'s HP was restored.",battler.pbThis))
  258.       end
  259.     elsif isConst?(item,PBItems,:FULLHEAL)
  260.       battler.status=0; battler.statusCount=0
  261.       battler.effects[PBEffects::Confusion]=0
  262.       pbDisplay(_INTL("{1} became healthy!",battler.pbThis))
  263.     elsif isConst?(item,PBItems,:XATTACK)
  264.       if battler.pbCanIncreaseStatStage?(PBStats::ATTACK)
  265.         battler.pbIncreaseStat(PBStats::ATTACK,1,true)
  266.       end
  267.     elsif isConst?(item,PBItems,:XDEFEND)
  268.       if battler.pbCanIncreaseStatStage?(PBStats::DEFENSE)
  269.         battler.pbIncreaseStat(PBStats::DEFENSE,1,true)
  270.       end
  271.     elsif isConst?(item,PBItems,:XSPEED)
  272.       if battler.pbCanIncreaseStatStage?(PBStats::SPEED)
  273.         battler.pbIncreaseStat(PBStats::SPEED,1,true)
  274.       end
  275.     elsif isConst?(item,PBItems,:XSPECIAL)
  276.       if battler.pbCanIncreaseStatStage?(PBStats::SPATK)
  277.         battler.pbIncreaseStat(PBStats::SPATK,1,true)
  278.       end
  279.     elsif isConst?(item,PBItems,:XSPDEF)
  280.       if battler.pbCanIncreaseStatStage?(PBStats::SPDEF)
  281.         battler.pbIncreaseStat(PBStats::SPDEF,1,true)
  282.       end
  283.     elsif isConst?(item,PBItems,:XACCURACY)
  284.       if battler.pbCanIncreaseStatStage?(PBStats::ACCURACY)
  285.         battler.pbIncreaseStat(PBStats::ACCURACY,1,true)
  286.       end
  287.     end
  288.   end
  289.  
  290. #--------------------------------------------------------------------------------
  291. # Para los finales de turno y pocos PS en el último Pokémon
  292. #--------------------------------------------------------------------------------
  293.   alias pbEndOfRoundPhase_fp pbEndOfRoundPhase
  294.   def pbEndOfRoundPhase
  295.       fpShowText("lowhp_last") if pbPokemonCount(@party2)==1 && @battlers[1].totalhp/2 >= @battlers[1].hp
  296.       for i in 0...$tts["end_turn"].length/2
  297.       if @turncount==$tts["end_turn"][i*2]
  298.         fpShowText("end_turn","",$tts["end_turn"][i*2+1])
  299.       end
  300.     end
  301.     pbEndOfRoundPhase_fp
  302.   end
  303. end
  304.  
  305. #--------------------------------------------------------------------------------
  306. # Para los golpes Super-Efectivos, Poco-Efectivos y Críticos
  307. #--------------------------------------------------------------------------------
  308. class PokeBattle_Move
  309.     def pbEffectMessages(attacker,opponent,ignoretype=false)
  310.     if opponent.damagestate.critical
  311.       @battle.pbDisplay(_INTL("A critical hit!"))
  312.       @battle.fpShowText("critical_move","critical_move") if @battle.pbIsOpposing?(attacker.index)
  313.       @battle.fpShowText("critical_move(player)","critical_move(player)") if @battle.pbBelongsToPlayer?(attacker.index)
  314.     end
  315.     if !pbIsMultiHit
  316.       if opponent.damagestate.typemod>4
  317.         @battle.pbDisplay(_INTL("It's super effective!"))
  318.         @battle.fpShowText("super_effective_move","super_effective_move") if @battle.pbIsOpposing?(attacker.index)
  319.         @battle.fpShowText("super_effective_move(player)","super_effective_move(player)") if @battle.pbBelongsToPlayer?(attacker.index)
  320.       elsif opponent.damagestate.typemod>=1 && opponent.damagestate.typemod<4
  321.         @battle.pbDisplay(_INTL("It's not very effective..."))
  322.         @battle.fpShowText("low_effective_move","low_effective_move") if @battle.pbIsOpposing?(attacker.index)
  323.         @battle.fpShowText("low_effective_move(player)","low_effective_move(player)") if @battle.pbBelongsToPlayer?(attacker.index)
  324.       end
  325.     end
  326.     if opponent.damagestate.endured
  327.       @battle.pbDisplay(_INTL("{1} endured the hit!",opponent.pbThis))
  328.     elsif opponent.damagestate.sturdy
  329.       @battle.pbDisplay(_INTL("{1} hung on with Sturdy!",opponent.pbThis))
  330.     elsif opponent.damagestate.focussashused
  331.       @battle.pbDisplay(_INTL("{1} hung on using its Focus Sash!",opponent.pbThis))
  332.     elsif opponent.damagestate.focusbandused
  333.       @battle.pbDisplay(_INTL("{1} hung on using its Focus Band!",opponent.pbThis))
  334.     end
  335.   end
  336. end
  337. #--------------------------------------------------------------------------------
  338. # Para los Pokémon Shiny y Oscuros
  339. #--------------------------------------------------------------------------------
  340. class PokeBattle_Scene
  341.   alias pbCommonAnimation_fp pbCommonAnimation
  342.   def pbCommonAnimation(*args)
  343.     pbCommonAnimation_fp(*args)
  344.     name=args[0]
  345.     case name
  346.     when "Shadow"
  347.       @battle.fpShowText("shadow","shadow") if @battle.pbIsOpposing?(attacker.index)
  348.     when "Shiny"
  349.       @battle.fpShowText("shiny","shiny") if @battle.pbIsOpposing?(attacker.index)
  350.       @battle.fpShowText("shiny(player)","shiny(player)") if @battle.pbBelongsToPlayer?(attacker.index)
  351.     end
  352.   end
  353. end
  354.  
  355. #--------------------------------------------------------------------------------
  356. #Para los Pokémon Oscuros capturados
  357. #--------------------------------------------------------------------------------
  358. module PokeBattle_BattleCommon
  359.   alias pbStorePokemon_fp pbStorePokemon
  360.   def pbStorePokemon(poke)
  361.     fpShowText("caught_poke","shadowcaught")
  362.     pbStorePokemon_fp(poke)
  363.   end
  364. end
  365.  
  366. #--------------------------------------------------------------------------------
  367. #Fix con las HP Bars
  368. #--------------------------------------------------------------------------------
  369. class PokeBattle_Scene
  370.     def pbShowOpponent(index,fp=false)
  371.     if @battle.opponent
  372.       if @battle.opponent.is_a?(Array)
  373.         trainerfile=pbTrainerSpriteFile(@battle.opponent[index].trainertype)
  374.       else
  375.         trainerfile=pbTrainerSpriteFile(@battle.opponent.trainertype)
  376.       end
  377.     else
  378.       trainerfile="Graphics/Characters/trfront"
  379.     end
  380.    
  381.     unless fp
  382.       @sprites["battlebox0"].visible=false if @sprites["battlebox0"]
  383.       @sprites["battlebox1"].visible=false if @sprites["battlebox1"]
  384.       @sprites["battlebox2"].visible=false if @sprites["battlebox2"]
  385.       @sprites["battlebox3"].visible=false if @sprites["battlebox3"]
  386.     end
  387.    
  388.     @sprites["opponent"]=DynamicTrainerSprite.new(false,-1,@viewport)
  389.     @sprites["opponent"].setTrainerBitmap(trainerfile)
  390.     @sprites["opponent"].toLastFrame
  391.     @sprites["opponent"].lock
  392.     @sprites["opponent"].z=16
  393.     @sprites["opponent"].x=@sprites["enemybase"].x+120
  394.     @sprites["opponent"].y=@sprites["enemybase"].y+30
  395.     @sprites["opponent"].opacity=0
  396.     20.times do
  397.       moveEntireScene(-3,-2)
  398.       @sprites["opponent"].opacity+=12.8
  399.       @sprites["opponent"].x-=4
  400.       @sprites["opponent"].y-=2
  401.       pbGraphicsUpdate
  402.       pbInputUpdate
  403.     end
  404.   end
  405. end
  406. #--------------------------------------------------------------------------------
  407. # Control de Variables
  408. #--------------------------------------------------------------------------------
  409. Events.onStartBattle+=proc {|sender,e|
  410.     $mbu=[]
  411.     $tts={} if !$tts
  412.     #Comprueba que estés en una versión compatible
  413.     unless  defined?(SCREENDUALHEIGHT)
  414.       print "Usted está utilizando el sistema de Diálogos de entrenador durante la batalla de FiaPlay (BW)."
  415.       print "En una versión que no parece ser Pokémon Essentials BW."
  416.       print "Por favor elimínelo para evitar inconvenientes."
  417.     end
  418. }
  419. Events.onEndBattle+=proc{
  420.   $tts={}; $mbu=[]
  421. }
  422.  
  423. #--------------------------------------------------------------------------------
  424. # Método que setea los textos
  425. #--------------------------------------------------------------------------------
  426. def fpTTS_set(param)
  427.     if param.is_a?(Symbol)
  428.         if hasConst?(MBD_Data,param)
  429.             $tts=getConst(MBD_Data,param)
  430.         else
  431.             raise "Constante de Diálogos no definida."
  432.         end
  433.     elsif param.is_a?(Hash)
  434.         $tts=param
  435.     else
  436.         raise "Parámetro incorrecto, se esperaba un Hash o Symbol."
  437.     end
  438. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement