Mini-modificaciones de Essentials


Autores Originales: Polectron y Kyu
Esto es una guía práctica sobre como hacer ciertas pequeñas modificaciones en Pokémon Essentials, los códigos que se presenten aquí no serán casi nunca scripts nuevos si no cambios sencillos al código ya presente en Pokémon Essentials.

Tutorial 1: introducir nombre y motes con el teclado

¿escribir con el teclado?,¿que tipo de estupidez es esta?
Bien,esto basicamente consiste en escribir cosas como el nombre del entrenador o motes de los pokémon con el teclado,es decir,usando las letras del teclado en vez de ir letra por letra con un cursor.
Esto es algo muy facil:

  1. Abrimos el editor de scripts y nos metemos en el script settings,que está arriba del todo.
  2. En Settings buscamos lo siguiente:USEKEYBOARDTEXTENTRYuna vez lo encontremos,veréis que va seguido de un =false (o true en el caso de que sepas hacerlo y estés viendo esto por curiosidad) simplemente tenemos que cambiar esto por = true


Tutorial 2: Cambiar las opciones por defecto

Como el nombre indica,esto es para cambiar las opciones por defecto,por ejemplo,que por defecto la velocidad de los textos esté en rapido en vez de en normal.
¿Como hacemos esto?,facil:
  1. Abrimos el editor de scripts y buscamos el script PScreen_Options
  2. Buscamos lo siguiente dentro del script: def initializeDebajo deberíais ver algo como esto,que es lo que habría que modificar:     @textspeed   = 2  # Velocidad del texto la velocidad varía según el numero tras el igual 0 = lento 1 = normal 2 = rapida
        @battlescene = 0   # Animaciones de combate,si hay un 0,se verán,si hay un 1,no se verán
        @battlestyle = 0   # Estilo de batalla 0 = se pueden cambiar los pokémon al debilitar a otro 1= no se permite
        @windowskin = 0 #Basicamente el marco
        @textskin    = 0   # Skin de los textos
        @font        = 0   # Font (see also $VersionStyles)(la fuente en los textos,este no es necesario tocarlo)
        @screensize  = (DEFAULTSCREENZOOM.floor).to_i # 0=half size, 1=full size, 2=double size
        @border      = 0   # Screen border (0=off, 1=on)
        @language    = 0   # Language (see also LANGUAGES in script PokemonSystem)
        @runstyle    = 0   # Run key functionality (0=hold to run, 1=toggle auto-run)
        @bgmvolume   = 100 # Volume of background music and ME
        @sevolume    = 100 # Volume of sound effects
      end
    Así de simple.

Tutorial 3: Solución a los problemas con funciones online

Me juego el cuello a que más de uno a intentado probar el script del regalo misterioso y, pese a que está todo bien, no funciona, alguno pensará que el script o los scripts están desfasados, pero no, lo que está desfasado no es el script, sino el RTP de tu rpg maker.
Seguro que a todo el que tiene este problema tiene una versión pirata de rpg maker xp,pues dificilmente tendréis en vuestra biblioteca de steam un rpg maker desfasado.
Pero tranquilo mai friend,solamente tienes que descargar esto:
xp_rtp104e
Una vez descargado,lo instalais y voila, tendréis la última versión del RTP, y con ello las funciones online deben funcionar, sino te funciona todavía.
  1. Tienes el internet desconectado.
  2. Tienes algún enlace o algo mal.

Tutorial 4: Desactivar el ciclo día/noche

Este, al igual que los anteriores,es simple, solo hay que seguir estos pasos

  1. Vamos al editor de scripts y buscamos el script settings
  2. Buscamos lo siguiente:
    ENABLESHADING seguido de esto podemos ver por defecto un = true,bien,si queréis desactivar el ciclo día noche simplemente tenemos que cambiar el true por false de tal forma que quede así
    ENABLESHADING = false En el essentials BW viene así por defecto,si lo que queréis es activarlo,simplemente poned true

Tutorial 5: Cambiar la música del mapa por la noche

¿? --------> cualquier usuario que lea esto por primera vez.
A ver como lo explico... supongamos que queremos que en un mapa por el día queremos que suene una música alegre y que por la noche suene una más relajada,pues es eso.
Es muy probable que muchos no conozcáis esta función,por eso he decidio añadirla al tutorial,para empezar pondré aquí el codigo de esto,ya viene por defecto con essentials,se encuentra en Game_Map,obviamente,si queremos hacer funcionar esto necesitamos tener activado el ciclo día/noche (como hacerlo más arriba)
def autoplayAsCue
    if @map.autoplay_bgm
      if PBDayNight.isNight? &&
            FileTest.audio_exist?("Audio/BGM/"+ @map.bgm.name+ "n")
        pbCueBGM(@map.bgm.name+"n",1.0,@map.bgm.volume,@map.bgm.pitch)
      else
        pbCueBGM(@map.bgm,1.0)
      end
    end
    if @map.autoplay_bgs
      pbBGSPlay(@map.bgs)
    end
  end
la cosa es simple,a la hora de hacer un mapa veréis que junto a las opciones de tamaño también están las de música,aquí un ejemplo


vamos a utilizar ese archivo de audio como ejemplo,este sería el que se utilizaría de día,ahora ¿como hacemos para que suene una distinta de noche?,facil,lo primero que debemos hacer es escoger la pieza que queremos que suene por la noche,una vez lo hayamos hecho,debemos renombrarla con el mismo nombre de la canción definida en el editor y añadir una n al final,en el caso de este ejemplo,la que sonaría por la noche debemos llamarla Field1n,y así en cualquier caso.
Si por ejemplo pusieramos en el editor una llamada Ruta,la de noche se tendría que llamar Rutan,así de simple.
Espero haberme explicado bien aquí. Tutorial 6: Crear eventos que solo aparezcan a ciertas horas del día
Esto es muy,muy,muy facil (extremadamente facil),solo es cuestión de aplicar un interruptor que viene con essentials,Podemos hacer que estos eventos aparezcan a cierta hora del día (por la mañana,por el día,por la tarde o por la noche) y  que esten en ciertos días de la semana,incluso ambas,obviamente.
Estos interruptores se encuentran en la primera pagina y son los siguientes,por supuesto,los pondré con su descripción correspondiente

sPBDayNight.isDay?(pbGetTimeNow) = Para que aparezca de día
sPBDayNight.isNight?(pbGetTimeNow) = Para que aparezca de noche
sPBDayNight.isMorning?(pbGetTimeNow) = Para que aparezca por la mañana
sPBDayNight.isAfternoon?(pbGetTimeNow) = Para que aparezca por la tarde
 ------DÍAS DE LA SEMANA-----
sPBIsWeekday(-1,2,4,6) = Para que aparezca lunes,miercoles,viernes y domingo
s:!pbIsWeekday(-1,2,4,6) = Para que aparezca Martes,jueves y sabado,este es muy parecido al anterior,pero lo podéis diferenciar por la exclamación,que basicamente significa lo contrario de lo puesto ahí,es decir,todo lo que no sea ni el -1,2,4 o 6

Tutorial 8: desactivar la animación de hierba alta desde el menú de opciones (Por N. 07 o Rock7JD)

Tutorial aportado por ROCK7JD
Bueno, este pequeño detalle decorativo, la animación que se produce cuando el protagonista camina a través de tiles con el tag de hierba, genera lag en Pc's de bajo rendimiento, pero igualmente abra quienes tengan buenos componentes y no tendrán problema alguno con ello, ¿así que por que remover la animación de raiz?
  1. Abrimos el editor de scripts y vamos a PScreen_Options,seguidamente dentro del script buscamos lo siguiente
    class PokemonSystem
      attr_accessor :textspeed
      attr_accessor :battlescene
      attr_accessor :battlestyle
      attr_accessor :frame
      attr_accessor :textskin
      attr_accessor :font
      attr_accessor :screensize
      attr_accessor :language
      attr_accessor :border
      attr_accessor :runstyle
      attr_accessor :bgmvolume
      attr_accessor :sevolume
    Debajo debemos pegar este
    attr_accessor :hierbaalta
  2. Ahora,en el mismo script,debemos buscar lo siguiente
     def initialize
        @textspeed   = 1   # Text speed (0=slow, 1=normal, 2=fast)
        @battlescene = 0   # Battle effects (animations) (0=on, 1=off)
        @battlestyle = 0   # Battle style (0=switch, 1=set)
        @**frame       = 0   # Default window frame (see also $TextFrames)
        @textskin    = 0   # Speech frame
        @font        = 0   # Font (see also $VersionStyles)
        @screensize  = (DEFAULTSCREENZOOM.floor).to_i # 0=half size, 1=full size, 2=double size
        @border      = 0   # Screen border (0=off, 1=on)
        @language    = 0   # Language (see also LANGUAGES in script PokemonSystem)
        @runstyle    = 0   # Run key functionality (0=hold to run, 1=toggle auto-run)
        @bgmvolume   = 100 # Volume of background music and ME
        @sevolume    = 100 # Volume of sound effects
    Debajo pegamos este
    @hierbaalta  = 0
  3. Nuevamente en PScreen_Options debemos buscar esto:
       SliderOption.new(_INTL("SE Volume"),0,100,5,
              proc { $PokemonSystem.sevolume },
              proc {|value|
                 if $PokemonSystem.sevolume!=value
                   $PokemonSystem.sevolume=value
                   if $game_system.playing_bgs != nil
                     $game_system.playing_bgs.volume=value
                     playingBGS=$game_system.getPlayingBGS
                     $game_system.bgs_pause
                     $game_system.bgs_resume(playingBGS)
                   end
                   pbPlayCursorSE()
                 end
              }
           ),
    Otra vez debemos pegar un codigo abajo:
    EnumOption.new(_INTL("ANIMACIÓN HIERBA ALTA"),[_INTL("SI"),_INTL("NO")],
              proc { $PokemonSystem.hierbaalta},
              proc {|value|  $PokemonSystem.hierbaalta=value}
              ),
  4. Ahora en el editor debemos buscar el script PField_Field y dentro del mismo lo siguiente:
    if PBTerrain.isJustGrass?(pbGetTerrainTag(event,true)) Y lo reemplazamos por esto:
    if $PokemonSystem.hierbaalta !=1 && PBTerrain.isJustGrass?(pbGetTerrainTag(event,true)) Con esto ya deberíamos tener listo todo,de esta manera podremos activar y desactivar la animación desde las opciones.

    Tutorial 9: Cambiar el nivel maximo de los pokémon (Por Sergiofr_18)


    Esto es una tontería en su opinión, pero si queréis llamar la atención de los youtubers o hacer un juego de 1.786.534 regiones, no está mal del todo.

    En Settings, id a la línea 31 y veréis:


    MAXIMUMLEVEL       = 100 Imaginemos que quieres poner el nivel 200 como el máximo. Simplemente cambia el número que está detrás del igual y listo. Tutorial 10:Veneno fuera de combate y MTs infinitas (Por Sergiofr_18) En Settings, vamos a la línea 49, y vemos esto:


    POISONINFIELD         = false
    POISONFAINTINFIELD    = false
    FISHINGAUTOHOOK       = false
    DIVINGSURFACEANYWHERE = false
    NEWBERRYPLANTS        = true
    INFINITETMS           = true


    La primera corresponde al veneno que nos quita vida al caminar. Ponlo en false y esto no pasará. El siguiente hace que el veneno debilite al Pokémon fuera de combate. Si lo pones en false, no pasará. Nota: si el anterior está en true, y este en false, parará en 1PS. Si ambos están en false nada pasará.
    La de abajo de todo hace que las MT sean infinitas o no. True es infinitas, false, finitas.

    Tutorial 11: Captura Crítica y experiencia al capturar (También por Sergiofr_18)

    Si queremos poner estas cosas en nuestro fangame, id a las líneas 92 y 93 en Settings y cambiad a true lo que haya en ella, cada uno activa una de las características mencionadas en el título, respectivamente.

    Tutorial 12: Eliminar Boost de las medallas (Relajate con los tutos Sergiofr_18, que se te va de las manos)

    Hay varias maneras de hacer esto, pero para mí esta es la más sencilla y práctica. Simplemente hay que hacer Ctrl+Shift+F en el editor de scripts, y escribir "badgesboost". Ve a PokeBattle_Battler desde ahí y verás esto:


        if @battle.internalbattle && @battle.pbOwnedByPlayer?(@index) &&
           @battle.pbPlayer.numbadges>=BADGESBOOSTSPEED
          speedmult=(speedmult*1.1).round


    Cambia el "*1.1" por 1.0 y listo. Luego haz lo mismo con los todos los que salgan en PokeBattle_Move tras hacer Ctrl+Shift+F
    Como podéis ver,son cosas muy simples,pero que no todo el mundo sabe y pueden llegar a ser útiles para algunos (en especial lo del rtp,vaya problemas me dio a mi también) PASO NUMERO 2:
    en setting buscamos lo siguiente:
    USEKEYBOARDTEXTENTRY una vez lo encontremos,veréis que va seguido de un =false (o true en el caso de que sepas hacerlo y estés viendo esto por curiosidad)
    simplemente tenemos que cambiar esto por = true de tal forma que quede así
    USEKEYBOARDTEXTENTRY = true después de hacer esto ya podremos escribir los nombres con el teclado Tutorial 2: Cambiar las opciones por defecto
    como el nombre indica,esto es para cambiar las opciones por defecto,por ejemplo,que por defecto la velocidad de los textos esté en rapido en vez de en normal
    ¿Como hacemos esto?,facil

    PASO NUMERO 1

    Abrimos el editor de scripts y buscamos el script PScreen_Options(BW_Options en caso de utilizar el BW engine)

    PASO NUMERO 2
    buscamos lo siguiente dentro del script
    def initialize debajo deberíais ver algo como esto,que es lo que habría que modificar
    @textspeed   = 2  # Velocidad del texto la velocidad varía según el numero tras el igual 0 = lento 1 = normal 2 = rapida
        @battlescene = 0   # Animaciones de combate,si hay un 0,se verán,si hay un 1,no se verán
        @battlestyle = 0   # Estilo de batalla 0 = se pueden cambiar los pokémon al debilitar a otro 1= no se permite
     Curiosamente es un usuario de wah ---->[MENTION=19010]Frame[/MENTION]       = 0   #Basicamente el marco
        @textskin    = 0   # Skin de los textos
        @font        = 0   # Font (see also $VersionStyles)(la fuente en los textos,este no es necesario tocarlo)
        @screensize  = (DEFAULTSCREENZOOM.floor).to_i # 0=half size, 1=full size, 2=double size
        @border      = 0   # Screen border (0=off, 1=on)
        @language    = 0   # Language (see also LANGUAGES in script PokemonSystem)
        @runstyle    = 0   # Run key functionality (0=hold to run, 1=toggle auto-run)
        @bgmvolume   = 100 # Volume of background music and ME
        @sevolume    = 100 # Volume of sound effects
      end
    Así de simple. Tutorial 3: Solución a los problemas con funciones online
    Me juego el cuello a que más de uno a intentado probar el script del regalo misterioso y,pese a que está todo bien,no funciona,alguno pensará que el script o los scripts están desfasados,pero no,lo que está desfasado no es el script,sino el rtp de tu rpg maker.
    Seguro que a todo el que tiene este problema tiene una versión pirata de rpg maker xp,pues dificilmente tendréis en vuestra biblioteca de steam un rpg maker desfasado.
    Pero tranquilo mai friend,solamente tienes que descargar esto:
    xp_rtp104e
    Una vez descargado,lo instalais y voila,tendréis la última versión del rtp,y con ello las funciones online deben funcionar,sino te funciona todavía
    1)Tienes el internet desconectado
    2)Tienes algún enlace o algo mal
    Creo que esto es lo más útil de este tuto
    PD:no,no se cargará vuestro proyecto

    Tutorial 4: Desactivar el ciclo día/noche
    Este,al igual que los anteriores,es simple,solo hay que seguir estos pasos
    1. Buscamos lo siguiente en settings ENABLESHADING Seguido de esto podemos ver por defecto un = true,bien,si queréis desactivar el ciclo día noche simplemente tenemos que cambiar el true por false de tal forma que quede así
      ENABLESHADING = false

    Tutorial 5: Cambiar la música del mapa por la noche

    A ver como lo explico... supongamos que queremos que en un mapa por el día queremos que suene una música alegre y que por la noche suene una más relajada, pues es eso.
    Es muy probable que muchos no conozcáis esta función, por eso he decidio añadirla al tutorial, para empezar pondré aquí el codigo de esto, ya viene por defecto con essentials, se encuentra en Game_Map, obviamente, si queremos hacer funcionar esto necesitamos tener activado el ciclo día/noche (como hacerlo más arriba)
    def autoplayAsCue
        if @map.autoplay_bgm
          if PBDayNight.isNight? &&
                FileTest.audio_exist?("Audio/BGM/"+ @map.bgm.name+ "n")
            pbCueBGM(@map.bgm.name+"n",1.0,@map.bgm.volume,@map.bgm.pitch)
          else
            pbCueBGM(@map.bgm,1.0)
          end
        end
        if @map.autoplay_bgs
          pbBGSPlay(@map.bgs)
        end
      end
    la cosa es simple,a la hora de hacer un mapa veréis que junto a las opciones de tamaño también están las de música,aquí un ejemplo


    vamos a utilizar ese archivo de audio como ejemplo,este sería el que se utilizaría de día,ahora ¿como hacemos para que suene una distinta de noche?,facil,lo primero que debemos hacer es escoger la pieza que queremos que suene por la noche,una vez lo hayamos hecho,debemos renombrarla con el mismo nombre de la canción definida en el editor y añadir una n al final,en el caso de este ejemplo,la que sonaría por la noche debemos llamarla Field1n,y así en cualquier caso.
    Si por ejemplo pusieramos en el editor una llamada Ruta,la de noche se tendría que llamar Rutan,así de simple.
    Espero haberme explicado bien aquí.

    Tutorial 6: Crear eventos que solo aparezcan a ciertas horas del día


    Esto es muy,muy,muy facil (extremadamente facil),solo es cuestión de aplicar un interruptor que viene con essentials,Podemos hacer que estos eventos aparezcan a cierta hora del día (por la mañana,por el día,por la tarde o por la noche) y  que esten en ciertos días de la semana,incluso ambas,obviamente.
    Estos interruptores se encuentran en la primera pagina y son los siguientes,por supuesto,los pondré con su descripción correspondiente

    sPBDayNight.isDay?(pbGetTimeNow) = Para que aparezca de día
    sPBDayNight.isNight?(pbGetTimeNow) = Para que aparezca de noche
    sPBDayNight.isMorning?(pbGetTimeNow) = Para que aparezca por la mañana
    sPBDayNight.isAfternoon?(pbGetTimeNow) = Para que aparezca por la tarde
     ------DÍAS DE LA SEMANA-----
    sPBIsWeekday(-1,2,4,6) = Para que aparezca lunes,miercoles,viernes y domingo
    s:!pbIsWeekday(-1,2,4,6) = Para que aparezca Martes,jueves y sabado,este es muy parecido al anterior,pero lo podéis diferenciar por la exclamación,que basicamente significa lo contrario de lo puesto ahí,es decir,todo lo que no sea ni el -1,2,4 o 6 Tutorial 7: Continuar la partida al perder un combate Este,como todos los demás,es muy facil de hacer.
    Tal y como dice el título,se trata de continuar el juego tras perder,es decir,que en vez de mandarte al centro pokémon continua con el evento,esto nos sirve,por ejemplo,para hacer combates imposibles de ganar (por raro que suene en temas de historia sirve) o para la primera batalla contra el rival,para hacerlo simplemente tendremos que cambiar una cosa en el script de batalla (Dentro del evento,no en el editor)

    PASO NUMERO 1
    pbTrainerBattle(PBTrainers::RIVAL1,"Adé",_I("¡Solamente me he dejado ganar!"),false,0,false,0) Aquí tenemos el susodicho script sin nada cambiado,lo que tenemos que editar aquí es la siguiente parte
    PASO NUMERO 2
    false,0,false,0) para hacer esto,debemos cambiar el segundo false por true y asegurarnos que en el condiciones y efectos (que es donde debe estar el script) tenemos marcada la casilla excepción,en excepción escribimos lo que queremos que pase al perder

    Si vais a hacer un combate imposible de ganar,podéis complementar este tutorial activando antes de la batalla un interruptor de essentials,el susodicho interruptor es el siguiente:

    No money lost in battle
    Se encuentra en la segunda pagina y hará que el jugador no pierda dinero al perder un combate,por supuesto,acordaos de desactivarlo tras el evento

    Tutorial 8: desactivar la animación de hierba alta desde el menú de opciones

    Bueno, este pequeño detalle decorativo, la animación que se produce cuando el protagonista camina a través de tiles con el tag de hierba, genera lag en Pc's de bajo rendimiento, pero igualmente abra quienes tengan buenos componentes y no tendrán problema alguno con ello, ¿así que por que remover la animación de raiz?
    1. Abrimos el editor de scripts y vamos a PScreen_Options,seguidamente dentro del script buscamos lo siguiente: class PokemonSystem
        attr_accessor :textspeed
        attr_accessor :battlescene
        attr_accessor :battlestyle
        attr_accessor :frame
        attr_accessor :textskin
        attr_accessor :font
        attr_accessor :screensize
        attr_accessor :language
        attr_accessor :border
        attr_accessor :runstyle
        attr_accessor :bgmvolume
        attr_accessor :sevolume
      Debajo debemos pegar esto: attr_accessor :hierbaalta
    2. PASO NUMERO 2 Ahora,en el mismo script,debemos buscar lo siguiente
       def initialize
          @textspeed   = 1   # Text speed (0=slow, 1=normal, 2=fast)
          @battlescene = 0   # Battle effects (animations) (0=on, 1=off)
          @battlestyle = 0   # Battle style (0=switch, 1=set)
          @**frame       = 0   # Default window frame (see also $TextFrames)
          @textskin    = 0   # Speech frame
          @font        = 0   # Font (see also $VersionStyles)
          @screensize  = (DEFAULTSCREENZOOM.floor).to_i # 0=half size, 1=full size, 2=double size
          @border      = 0   # Screen border (0=off, 1=on)
          @language    = 0   # Language (see also LANGUAGES in script PokemonSystem)
          @runstyle    = 0   # Run key functionality (0=hold to run, 1=toggle auto-run)
          @bgmvolume   = 100 # Volume of background music and ME
          @sevolume    = 100 # Volume of sound effects
      Debajo pegamos este: @hierbaalta  = 0
    3. Nuevamente en PScreen_Options debemos buscar esto:
         SliderOption.new(_INTL("SE Volume"),0,100,5,
                proc { $PokemonSystem.sevolume },
                proc {|value|
                   if $PokemonSystem.sevolume!=value
                     $PokemonSystem.sevolume=value
                     if $game_system.playing_bgs != nil
                       $game_system.playing_bgs.volume=value
                       playingBGS=$game_system.getPlayingBGS
                       $game_system.bgs_pause
                       $game_system.bgs_resume(playingBGS)
                     end
                     pbPlayCursorSE()
                   end
                }
             ),
      Otra vez debemos pegar un codigo abajo:
      EnumOption.new(_INTL("ANIMACIÓN HIERBA ALTA"),[_INTL("SI"),_INTL("NO")],
                proc { $PokemonSystem.hierbaalta},
                proc {|value|  $PokemonSystem.hierbaalta=value}
                ),
    4. Ahora en el editor debemos buscar el script PField_Field y dentro del mismo lo siguiente:
      if PBTerrain.isJustGrass?(pbGetTerrainTag(event,true)) Y lo reemplazamos por esto:
      if $PokemonSystem.hierbaalta !=1 && PBTerrain.isJustGrass?(pbGetTerrainTag(event,true))
    5. Con esto ya deberíamos tener listo todo,de esta manera podremos activar y desactivar la animación desde las opciones.

      Tutorial 9:Veneno fuera de combate y MTs infinitas o limitadas

      En Settings, vamos a la línea 49, y vemos esto:
      POISONINFIELD         = false
      POISONFAINTINFIELD    = false
      FISHINGAUTOHOOK       = false
      DIVINGSURFACEANYWHERE = false
      NEWBERRYPLANTS        = true
      INFINITETMS           = true
      La primera corresponde al veneno que nos quita vida al caminar. Ponlo en false y esto no pasará. El siguiente hace que el veneno debilite al Pokémon fuera de combate. Si lo pones en false, no pasará.  Nota: si el anterior está en true, y este en false, parará en 1PS. Si ambos están en false nada pasará.
      La de abajo de todo hace que las MT sean infinitas o no. True es infinitas, false, finitas.

      Tutorial 10: Captura Crítica y experiencia al capturar

      Si queremos poner estas cosas en nuestro fangame, id a las líneas 92 y 93 en Settings y cambiad a true lo que haya en ella, cada uno activa una de las características mencionadas en el título, respectivamente.

      Tutorial 11: Eliminar Boost de las medallas

      Hay varias maneras de hacer esto, pero para mí esta es la más sencilla y práctica. Simplemente hay que hacer Ctrl+Shift+F en el editor de scripts, y escribir "badgesboost". Ve a PokeBattle_Battler desde ahí y verás esto:
          if @battle.internalbattle && @battle.pbOwnedByPlayer?(@index) &&
             @battle.pbPlayer.numbadges>=BADGESBOOSTSPEED
            speedmult=(speedmult*1.1).round
      Cambia el "*1.1" por 1.0 y listo. Luego haz lo mismo con los todos los que salgan en PokeBattle_Move tras hacer Ctrl+Shift+F
      Como podéis ver,son cosas muy simples,pero que no todo el mundo sabe y pueden llegar a ser útiles para algunos (en especial lo del rtp,vaya problemas me dio a mi también)

      Tutorial 12: Bloquear la opción de guardar partida


      Para bloquear la opción de guardar partida en el menú tendremos que elegir un interruptor local, en mi caso el 61, que activaremos y desactivaremos para controlar el bloqueo. Cuando esté activo no se podrá guardar y cuando esté inactivo se podrá.

      En el script PScreen_PauseMenu buscaremos el siguiente bloque de código:


           elsif cmdSave>=0 && command==cmdSave
             @scene.pbHideMenu
             scene=PokemonSaveScene.new
             screen=PokemonSave.new(scene)
             if screen.pbSaveScreen
               @scene.pbEndScene
               endscene=false
               break
             else
               pbShowMenu
             end


      Este es el código que se ejecuta al seleccionar la opción de guardar en el menú, ahora vamos a rodearla con un if para comprobar el estado del interruptor global.

           elsif cmdSave>=0 && command==cmdSave
             if $game_switches[61]
               Kernel.pbMessage(_INTL("No se puede guardar la partida en este momento."))
             else
               @scene.pbHideMenu
               scene=PokemonSaveScene.new
               screen=PokemonSave.new(scene)
               if screen.pbSaveScreen
                 @scene.pbEndScene
                 endscene=false
                 break
               else
                 pbShowMenu
               end
             end


      Tutorial 13: Impedir la captura de Pokémon


      En el script PokeBattle_Battle buscaremos el bloque

         if @opponent && (!pbIsSnagBall?(ball) || !battler.isShadow?)
           @scene.pbThrowAndDeflect(ball,1)
           pbDisplay(_INTL("The Trainer blocked the Ball!\nDon't be a thief!"))


      Justo debajo añadiremos otro bloque que comprobará el estado de un interruptor global, en este caso el 62.

         elsif $game_switches[62]
           @scene.pbThrowAndDeflect(ball,1)
           pbDisplay(_INTL("Parece que no puedes capturar Pokémon en este momento."))


      Impedir el uso de objetos en combate
      En el script PokeBattle_Battle buscaremos el bloque

      if !@internalbattle
              if pbOwnedByPlayer?(i)
                  pbDisplay(_INTL("Items can't be used here."))
              end


      Justo debajo añadiremos otro bloque que comprobará el estado de un interruptor global, en este caso el 63 y mostrará un mensaje avisando de que no se pueden usar objetos.

      elsif $game_switches[63]
              pbDisplay(_INTL("No puedes usar objetos en este combate"))


Comentarios

  1. Es un excelente aporte! Muchas gracias!

    ResponderEliminar
  2. Un pequeño detalle, si hacéis lo de comprobar la última versión del juego tened cuidado al poner el link del pastebin, ya que si ponéis https en vez de http, la función que lo lee en el apartado de Sockets no podrá leer el pastebin (a no ser que modifiquéis la función para que también lea https como pongo debajo)

    Donde pone:
    if url[/^http:\/\/([^\/]+)(.*)$/]

    Poned
    if url[/^http:\/\/([^\/]+)(.*)$/] || url[/^https:\/\/([^\/]+)(.*)$/]

    ResponderEliminar

Publicar un comentario