Fonction de pêche, crash quand sa mord

9 Réponses • 1045 Vues

Salut, j'essaie de mettre en place le système pour pêcher en me basant sur ce tutoriel : https://pokemonworkshop.com/psp/9426.html

Dans le script j'ai bien modifier les 'var(54)' & 'var(55)' par leurs équivalents chez moi, mais dès qu'une prise mord à l'hameçon le jeu crash  :grrr:

J'ai pourtant bien répété le même schéma que le tuto pour l'évenement commun ( à part que j'ai configuré celui de la super-canne et non de la canne ).

Mon fichier logs est en pièce jointe. Des idées ? Merci  :)


[Fichier vieux de plus de 120 jours]
Euh il te manque un break

for i in 0..$canne.size-1
  if(peche<=var(55) and (peche+$canne[i][3])>=var(55))
    poke=i
    break
  end
  peche+=$supercanne[i][3]
end
demarrer_combat($canne[poke][0],(var(54)*($canne[poke][2]-$canne[poke][1])/100)+$canne[poke][1])
et il te manque des i
$supercanne[i][3] au lieu de$supercanne[3]

« Modifié: 28 février 2017, 07:52:02 par yyyyj »

"On ne voit bien qu'avec le coeur, l'essentiel est invisible pour les yeux",  Antoine de St-Exupéry
C'est modifié mais j'ai une autre erreurs, apparemment il ne trouve pas la méthode 'size'



[Fichier vieux de plus de 120 jours]
ça doit pas être size mais plutôt ta variable $supercanne elle a une valeur?
"On ne voit bien qu'avec le coeur, l'essentiel est invisible pour les yeux",  Antoine de St-Exupéry
ça doit pas être size mais plutôt ta variable $supercanne elle a une valeur?


Je sèche un peu, en dehors du script je vois pas trop ce que représente $supercanne exactement.
La galère pour juste pêcher ^^
la var $supercanne doit être initialisée, elle doit avoir une valeur
"On ne voit bien qu'avec le coeur, l'essentiel est invisible pour les yeux",  Antoine de St-Exupéry
la var $supercanne doit être initialisée, elle doit avoir une valeur

Effectivement, il faut la déclarer dans un script en événement parallèle sur la carte ou l'ont veut pêcher, sous cette forme : $canne=[[ID_PKM,Lvl_Min,Lvl_Max,% de chance]]
la var $supercanne doit être initialisée, elle doit avoir une valeur

Alors je sais que je detere mais , j'ai une erreur si je met + d'un pokemon pechable

L'erreur :

---------- Erreur de script : évènement ----------
----- Type
NoMethodError

----- Message
- ARGS -

(eval):8:in `command_355'undefined method `[]' for nil:NilClass

----- Position de l'évènement
MAP 148 EVENT 0
SCRIPT
peche=0
poke=0
for i in 0..$canne.size-1
  if(peche<=var(21) and (peche+$canne[3])>=var(21))
    poke=i
    break
  end
  peche+=$supercanne[3]
end
demarrer_combat($canne[poke][0],(var(20)*($canne[poke][2]-$canne[poke][1])/100)+$canne[poke][1])


----- Backtrace
Script : Interpreter Bis | Ligne : 444 | Méthode : in `command_355'
Script : Loading | Ligne : 3 | Méthode : in `each'
Script : Loading | Ligne : 3 | Méthode : in `command_355'
Script : Interpreter 2 | Ligne : 215 | Méthode : in `eval'
Script : Interpreter Bis | Ligne : 444 | Méthode : in `command_355'
Script : Interpreter 2 | Ligne : 215 | Méthode : in `execute_command'
Script : Interpreter 1 | Ligne : 199 | Méthode : in `update'
Script : Interpreter 1 | Ligne : 113 | Méthode : in `loop'
Script : Interpreter 1 | Ligne : 204 | Méthode : in `update'
Script : Scene_Map | Ligne : 48 | Méthode : in `alias_update'
Script : Scene_Map | Ligne : 46 | Méthode : in `loop'
Script : Scene_Map | Ligne : 59 | Méthode : in `alias_update'
Script : MAPPANEL | Ligne : 90 | Méthode : in `follow_me_update'
Script : pkm suit | Ligne : 81 | Méthode : in `update'
Script : Scene_Map | Ligne : 25 | Méthode : in `main'
Script : Scene_Map | Ligne : 19 | Méthode : in `loop'
Script : Scene_Map | Ligne : 30 | Méthode : in `main'
Script : Main | Ligne : 57

Et mes commandes sont :

peche=0
poke=0
for i in 0..$canne.size-1
  if(peche<=var(21) and (peche+$canne[i][3])>=var(21))
    poke=i
    break
  end
  peche+=$supercanne[i][3]
end
demarrer_combat($canne[poke][0],(var(20)*($canne[poke][2]-$canne[poke][1])/100)+$canne[poke][1])


et

$canne=[[060,10,30,5],[194,10,30,10],[602,10,30,10],[283,10,30,20],[054,10,30,10],[183,10,30,5],[370,10,30,5],[129,10,20,35]]
Je me souviens plus du tout du script mais l'erreur montre simplement que $supercanne n'est pas initialisée (elle n'existe pas)
"On ne voit bien qu'avec le coeur, l'essentiel est invisible pour les yeux",  Antoine de St-Exupéry

Aerun

Modérateur

Je verrouille ce topic car la demande initiale avait été satisfaite. Je rappelle qu'en cas d'erreur on créé un nouveau topic, ou alors on lit tout simplement ceux qui existent pour éviter les doublons.

There was an error while thanking
Thanking...