Sujet n°10399
Posté par Giratinaprimal le 13 Sep - 23:03 (2011)
Titre : [Résolu][PSP 4G+]Problèmes de paramétrages du sac
Avis aux scripteurs perfectionnés... et aux autres (au cas où) :


J'ai essayé de modifier les scripts en lien avec le Sac de PSP4G+ de sorte à faire 8 poches (comme DP/HGSS/NB) au lieu de 5 (RSE).
Les paramétrages via la BDD sont OK. Mais en jeu, ça plante dès que je demande à passer aux poches 6, 7 ou 8 :


Log

---------- Erreur de script : Pokemon_Party ----------
----- Type
NoMethodError


----- Message
- ARGS - []
undefined method `each' for nil:NilClass


----- Position dans Pokemon_Party
Ligne 507


----- Backtrace
Script : Pokemon_Party | Ligne : 507 | Méthode : in `bag_list'
Script : Pokemon_Item_Bag | Ligne : 819 | Méthode : in `size'
Script : Pokemon_Item_Bag | Ligne : 783 | Méthode : in `refresh'
Script : Pokemon_Item_Bag | Ligne : 173 | Méthode : in `update'
Script : Pokemon_Item_Bag | Ligne : 138 | Méthode : in `main'
Script : Pokemon_Item_Bag | Ligne : 122 | Méthode : in `loop'
Script : Pokemon_Item_Bag | Ligne : 141 | Méthode : in `main'
Script : Main | Ligne : 49






Ligne 507 : for item in @bag[socket]


J'attends vos réponses.

Posté par Sphinx le 14 Sep - 02:33 (2011)
Clin d'œil foireux En fait, tu as créé tes poches sur le papier, mais dans les faits elles existent sans exister. Dans le script Pokemon_Party, tu as cette ligne, qui initialise les poches du sac :

Code:
@bag = [ 0, [], [], [], [], [] ]


Ceux dont le sens de l'observation est affuté (et ceux qui connaissent Ruby) verront rapidement que cette ligne contient 5 [] (pour 5 poches dans le sac)
^o^ Une fois tout cela dit, la logique peut prendre le relais, plus besoin de savoir scripter =')

5 [] séparés par des virgules créent les 5 emplacements de poches, alors pour créer 8 emplacements de poches, il suffit... :p (je mets ce que je crois être la résolution en Spoiler, si quelqu'un veut chercher un peu)
Solution ^o^
de mettre 8 [] séparés par des virgules Imbécile heureux

Avec cette ligne à la place de la ligne citée au dessus, par exemple
Code:
@bag = [ 0, [], [], [], [], [], [], [], [] ]

Posté par Giratinaprimal le 14 Sep - 11:33 (2011)
Ca marche !
Thanks a lot, Sphinx !