Registrarse

Duda con evento

Estado
Cerrado para nuevas respuestas.
Buenas.

Tenia pensado ceñirme un poco a la descripción de Magneton en la Pokédex y para ello había pensado en quitar la evolucion de Magnemite y hacer que al tener 3 de estos en el equipo (al mismo nivel), un evento los "junte" cuando tienes X objeto y los elimine del equipo haciendo aparecer un Magneton al mismo nivel tambien, entonces para resumir necesito saber:

1. Como eliminar 3 pokemon a la vez del equipo con la condicion de que estén al mismo nivel.
2. Hacer que aparezca un Magneton en el equipo y queden dos espacios llibres correspondientes a los otros 2 Magnemite
3. Que se necesite un objeto para que se unan.
 

Jessie

What goes around, comes around
Es sencillo, pero primero tienes que definir la manera en que quieres que suceda, por ejemplo usando una piedra evolutiva u objeto similar, al llevar un objeto y subir de nivel o solamente tener el objeto en la mochila.

Primero creas un nuevo objeto en el archivo Items en la carpeta PBS por ejemplo "Piedra Magneto", puedes simplemente copiar la información de una piedra que ya exista, solo le cambias el Número de index y el nombre Interno.

En caso que uses un objeto como piedra evolutiva, vas a la sección PItem_Items en el cabezal de scripts y buscas la parte que dice def pbIsEvolutionStone?(item) y agregas tu piedra a las que ya existen, quedaría algo así

Código:
isConst?(item,PBItems,:SHINYSTONE) ||
isConst?(item,PBItems,:PIEDRAMAGNETO)
ahora te diriges a la sección de Pokemon_Evolution y buscas la parte que dice def pbMiniCheckEvolutionItem(pokemon,evonib,level,poke,item), aquí es donde pondrás el condicional para que solamente magnemite evolucione de esa manera, y debe quedar algo así.


Código:
def pbMiniCheckEvolutionItem(pokemon,evonib,level,poke,item)
  # Checks for when an item is used on the Pokémon (e.g. an evolution stone)
  case evonib
  when PBEvolution::Item
    ########AQUI AGREGAS EL CONDICONAL
    ret=-1
    if isConst?(pokemon.species,PBSpecies,:MAGNEMITE)
      for i in 0...$Trainer.party.length
        if $Trainer.party[i].species==PBSpecies::MAGNEMITE &&             
                $Trainer.party[i].level==pokemon.level
          for j in 0...$Trainer.party.length
            if $Trainer.party[j].species==PBSpecies::MAGNEMITE && i!=j  && 
                 $Trainer.party[j].level==pokemon.level
              for k in 0...$Trainer.party.length
               if $Trainer.party[k].species==PBSpecies::MAGNEMITE && k!=i 
                   && k!=j  && $Trainer.party[k].level==pokemon.level
                 return poke
                end
              end
            end
          end
        end
      end
    else
      return poke if level==item
    end
################
  when PBEvolution::ItemMale
    return poke if level==item && pokemon.isMale?
  when PBEvolution::ItemFemale
   return poke if level==item && pokemon.isFemale?
  end
  return -1
end
Ahora para eliminar a los otros dos pokémon, necesitas otro condicional, este irá en el mismo script pero en la parte de arriba.

Buscas esta parte :

Código:
    if createSpecies>0 && $Trainer.party.length<6
        newpokemon [MENTION=12671]pokemon[/MENTION].clone
        newpokemon.iv [MENTION=12671]pokemon[/MENTION].iv.clone
        newpokemon.ev [MENTION=12671]pokemon[/MENTION].ev.clone
        newpokemon.species=createSpecies
        newpokemon.name=PBSpecies.getName(createSpecies)
        newpokemon.setItem(0)
        newpokemon.clearAllRibbons
        newpokemon.markings=0
        newpokemon.ballused=0
        newpokemon.calcStats
        newpokemon.heal
        $Trainer.party.push(newpokemon)
        $Trainer.seen[createSpecies]=true
        $Trainer.owned[createSpecies]=true
        pbSeenForm(newpokemon)
        $PokemonBag.pbDeleteItem(getConst(PBItems,:POKEBALL))
      end
Y despues del end colocas un nuevo condicional, y quedaría algo así.


Código:
    if createSpecies>0 && $Trainer.party.length<6
        newpokemon [MENTION=12671]pokemon[/MENTION].clone
        newpokemon.iv [MENTION=12671]pokemon[/MENTION].iv.clone
        newpokemon.ev [MENTION=12671]pokemon[/MENTION].ev.clone
        newpokemon.species=createSpecies
        newpokemon.name=PBSpecies.getName(createSpecies)
        newpokemon.setItem(0)
        newpokemon.clearAllRibbons
        newpokemon.markings=0
        newpokemon.ballused=0
        newpokemon.calcStats
        newpokemon.heal
        $Trainer.party.push(newpokemon)
        $Trainer.seen[createSpecies]=true
        $Trainer.owned[createSpecies]=true
        pbSeenForm(newpokemon)
        $PokemonBag.pbDeleteItem(getConst(PBItems,:POKEBALL))
       end
######AQUÍ COLOCAS NUEVO CONDICIONAL
     if [MENTION=12671]pokemon[/MENTION].species==PBSpecies::MAGNETON
        a=0
        for i in 0...$Trainer.party.length
          if $Trainer.party[i].species==PBSpecies::MAGNEMITE
            for j in 0...$Trainer.party.length
              if $Trainer.party[j].species==PBSpecies::MAGNEMITE && i!=j
                a=1
                b=i
                c=j
              end
            end
          end
        end
        if a==1
        pbRemovePokemonAt(b)
        pbRemovePokemonAt(c)
        end
      end
Con esto debe funcionar, solo agregas en el PBS pokemon.txt el metodo evolutivo de magnemite Evolutions=MAGNETON,Item,PIEDRAMAGNETO

Espero que te sirva, saludos.
 
Bueno, eso de sencillo... Jajajj
Intentare seguirlo paso a paso a ver que sale ^^

Una duda, cuando pones AGREGAS CONDICIONAL como tengo que ponerlo? Es que de script no tengo ni idea :s
 

MetalKaktus

A la luz del quinto día, mira al este
Miembro insignia
Si no tienes ni idea, te recomiendo que empieces desde cero. Es mucho mejor y rápidamente podrás hacer lo que has preguntado. Vete a tutoriales sobre scripting y aprende todo lo que puedas.
 
Y no se puede hacer con un evento en plan:

Condicion 1: tengo X objeto
Condicion 2: tengo 3 magnemite en el equipo
Quita 3 magnemites del equipo
Pone un magneton a nivel X en el equipo
 

Jessie

What goes around, comes around
Solamente tenias que copiar y remplazar los comandos.
Si, tambien puedes hacerlo como evento.

Seleccionas "Condiciones y Efectos" en la pagina 4 hasta abajo seleccionas la opción que dice "script" y en el espacio en blanco junto al nombre "script" escribes esto :

$PokemonBag.pbQuantity:)THUNDERSTONE)>=1

"THUNDERSTONE" es el nombre interno del objeto que usarás, por ejemplo "TINYMUSHTOOM" "WATERSTONE" "ESCAPEROPE" o el nombre del objeto que has creado, suponiendo que lo hiciste.

Le quitas la marca a "Añadir excepción al no cumplirse las condiciones" y presionas aceptar, luego dentro del condicional (de color azul) necesitarás crear varios cuadros de scripts, son los que dicen "Llamar Script" y están en la tercera pagina de los comandos de eventos.

En el primer cuadro de script, escribes esto
pbSet(5,0)
pbSet(1,0)
pbSet(2,0)
eq=$Trainer.party
for i in 0...eq.length
if eq.species==PBSpecies::MAGNEMITE
pbSet(1,1)
pbSet(2,i)
pbSet(5,eq.level)
end
end

Creas un segundo cuadro y escribes esto

pbSet(3,0)
if pbGet(1)==1
eq=$Trainer.party
for i in 0...eq.party.length
if eq.species==PBSpecies::MAGNEMITE
&& pbGet(2)!=i
pbSet(1,2)
pbSet(3,i)
pbSet(5,pbGet(5)+eq.level)
end
end
end

Y creas un tercer cuadro y escribes esto

pbSet(4,0)
if pbGet(1)==2
eq=$Trainer.party
for i in 0...eq.party.length
if eq.species==PBSpecies::MAGNEMITE &&
pbGet(2)!=i && pbGet(3)!=j
pbSet(1,3)
pbSet(4,i)
pbSet(5,pbGet(5)+eq.level)
end
end
end

EDITO :
Ahora agregas otro "Condiciones y efectos" debajo del último cuadro de script; en la pagina 1 seleccionas "variable" y eliges la variable número "001" y debe tener la opción "igual" a un lado y marcada casilla de "Constante" y donde te aparece un número cero "0" escribes un número uno "3", y seleccionas aceptar

Ahora dentro de esté nuevo condicional (en azul) creas otro cuadro de script y escribes esto :

pbRemovePokemonAt(pbGet(2))
pbRemovePokemonAt(pbGet(4))
pbRemovePokemonAt(pbGet(6))
level=pbGet(5)/3
pbAddPokemon(PBSpecies::MAGNETON,level)
$PokemonBag.pbDeleteItem(PBItems::THUNDERSTONE,1)

Esto te eliminará los tres magnemite y luego te creará un magneton de nivel igual al promedio de los tres eliminados, al final está el comando que te eliminará el objeto que "usaste".
Ahora, si quieres puedes agregar un texto debajo de esté último cuadro de script que diga "Tus Magnemites se han unido para formar un Magneton" o algo similar.

Ahora en la parte de la excepción de este último condicional, colocarás lo que pasará en caso de que no se cumplan ninguna de las condiciones, un mensaje como "No tienes suficientes magnemite" o "La piedra no tiene efecto en magnemite".
 
Última edición:
Estado
Cerrado para nuevas respuestas.
Arriba