Registrarse

[Essentials] Entrenadores que lucharán si cumples unas condiciones

Sulphur Alchemist

Usuario de platino
En los scripts, justo encima de 'Main' abrimos un script nuevo (con el nombre que queráis) y ponemos lo siguiente:

Código:
def pbHasSpeciesBattle?(species,form,level)
  $Trainer.party.each {|poke|  
    if poke.species && poke.form == form && poke.level >= level $Trainer.party.length==1 
      return true 
    end
  }
  return false 
end
En este script le estamos diciendo al juego que, si la especie es la que hemos dicho en el script del personaje y el equipo tan sólo tiene un Pokémon, que continúe con el proceso.

Seguidamente, en el script del personaje (en este caso un entrenador) hacemos lo siguiente.

Yo le he quitado el nombre y le he dejado sólo 'Trainer' para que no haga el efecto de que te ve, además he puesto como 'detonante de inicio': 'pulsar aceptar'.

Nos vamos a los comandos del evento y le damos a 'Condiciones y Efectos' y añadimos el script que hemos definido antes, en mi caso es un entrenador con un Magmar y quedaría así: pbHasSpeciesBattle?:)MAGMAR,0,30). Y añadimos la excepción también.

Dentro de este efecto metemos los scripts y comandos de un entrenador normal y corriente y en la excepción, yo he optado por poner un texto: 'No eres digno de luchar contra mi Magmar'.

De esta manera sólo podremos luchar contra el entrenador si llevamos a un sólo Pokémon en el equipo y este Pokémon es Magmar en su forma original y, además su nivel es 30 o mayor a éste, de otra forma no sería posible.

Si lo que queremos es poner que el nivel debe ser 30 o menor, lo único que habría que hacer es cambiar el script de la siguiente forma:

Código:
def pbHasSpeciesBattle?(species,form,level)
  $Trainer.party.each {|poke|  
    if poke.species && poke.form == form && poke.level [COLOR="Red"]<[/COLOR]= level $Trainer.party.length==1 
      return true 
    end
  }
  return false 
end
Cambiamos el signo de color rojo y ya está, o si lo queremos que sólo sea el nivel 30, ni mayor ni menor, lo dejaíamos así:

Código:
def pbHasSpeciesBattle?(species,form,level)
  $Trainer.party.each {|poke|  
    if poke.species && poke.form == form && poke.level [COLOR="Red"]=[/COLOR]= level $Trainer.party.length==1 
      return true 
    end
  }
  return false 
end
A partir de aquí podemos añadir todas las condiciones que queramos, como los tipos e incluso la cantidad de Pokémon en el equipo tan sólo cambiando el número de argumentos (palabras que hay entre paréntesis en la primera línea) y los scripts que hay tras el 'if'.
 

Jessie

What goes around, comes around
Essentials trae esta función pbHasSpecies?(species).
Lo que este tutorial intentaba explicar era la manera de extender las condiciones a verificar, en este caso el nivel y la forma de la especie.

He creado una función similar que explica la manera de verificar cada elemento en los argumentos y hacerlo de manera opcional.

Código:
def JssEspecie?(esp=nil,nv=0,frm=-1)
  # No continua si la especie no se define o el jugador no tiene pokes
  return false if esp==nil or $Trainer.party.size==0
  if esp.is_a?(String) || esp.is_a?(Symbol)
    esp=getID(PBSpecies,esp)
  end
  r = false
  # Verificar a cada miembro del equipo
  for poke in $Trainer.party
    next if r == true || poke.isEgg?
    # Si en el equipo tienes la especie correcta
    if poke.species == esp
      r = true
      # Si la especie es correcta, se verifica el nivel
      if nv>0 and r == true
        r = (poke.level == nv)
      end
      # Si la especie/nivel son correctos, verifica la forma
      if frm>(-1) && r==true
        r = (poke.form == frm)
      end
    end
  end
 return r
end
Al usar la función JssEspecie? como condición puedes obtener el valor true/false si el jugador tiene en su equipo la especie con las características elegidas.

Aquí te dejo unos ejemplo al usar la función como condicional :



Siguiendo el mismo orden, se puede editar para agregar como condición el valor que desees, ya sea stats, iv, objeto que lleve o cualquier otra característica que se quiera verificar.
 
Arriba