Registrarse

[RPG - Scripting] Qué fallo tiene este pequeño script?

Estado
Cerrado para nuevas respuestas.

Morel X

Pues bueno aquí estamosxD
Buenas, tengo este script pequeñito que revisa si tengo un tipo específico en mi equipo y si lo tengo hace una cosa u otra en la excepción, por ejemplo que un npc no me deje pasar si tengo un pokémon de tipo fuego:

def hasType(type)
$Trainer.party.each {|x| # Bucle por todo el equipo, x es el Pokémon actual
if x.type1 != type && x.type2 != type # Comprueba que el tipo sea el tipo que le hemos dado
return true # Si lo es, devolvemos true
end
}
return false # Si hemos llegado hasta aquí es que ningún Pokémon es del tipo dado, devolvemos false
end

Y en un antiguo proyecto me funcionaba pero en el nuevo que estoy haciendo no se porqué pero no lo hace, si alguien ve el fallo que me lo diga por favor.

Al llamar el script lo llamo así: hasType(PBTypes::FIRE)

Pero independientemente de si tengo un Pokémon de fuego en el equipo o no sigue el evento como si el script no existiera.
 

Diego Mertens

Dartrix Joven
Intenta así:
Código:
def hasType(type)
  $Trainer.party.each {|x|
  if x.type1 != type && x.type2 != type
    return true
  else
    return false
  end
end
}
No lo he probado, pero debería funcionar.
 

Aris

Witched
Me da un error en el último end :/
La llave de cierre está debajo del end que cierra el def, por lo que da error, pon la llave de cierre encima del último end

def hasType(type)
$Trainer.party.each {|x|
if x.type1 != type && x.type2 != type
return true
else
return false
end
}
end

PD: No esta bien tabulado
 

Morel X

Pues bueno aquí estamosxD
La llave de cierre está debajo del end que cierra el def, por lo que da error, pon la llave de cierre encima del último end

def hasType(type)
$Trainer.party.each {|x|
if x.type1 != type && x.type2 != type
return true
else
return false
end
}
end

PD: No esta bien tabulado
Gracias! ahora funciona perfectamente :)
 
Estado
Cerrado para nuevas respuestas.
Arriba