Sujet: [Résolu] Lancer un script via un objet ??? Mar 27 Mai 2008 - 12:57
Bonjours, je suis en train de m'arracher les cheveux pour un problème que je suis certain n'est pas si compliqué.
Problème dans : BaseItem (je sais pas où localiser mon problème vu que ce n'est pas dans les scripts de bases)
Description : J'ai une liste d'objet (en fait je l'ai même en double car j'essayais de deux façons différentes) soit équipables (sous Armures) soit utilisables (sous Objets). Dans les deux cas, j'ai le même genre de problème. Il s'agit en fait d'une liste de costume que le personnage peut porter pour se transformer dans le jeu, mais ne peut se changer qu'à certains endroits précis dans le jeu. Je vais séparer mon problème en deux cas distincts. Le premier (où la première ) qui me trouve une solution pour l'un ou l'autre des cas aura ma reconnaissance éternelle. Dans les deux cas, j'utilise le script qui permet de faire <CATEGORY Suits> , <EQUIP_TYPE Suits> et <EQUIP_KIND Suits> pour classer mes costumes correctement dans les menus.
1. (Costume sous Armures) 1.a) J'ai besoin que le personnage ne puisse pas changer son custume n'importe où sur la carte, mais qu'ils puisse quand même changer le reste de son équipement. 1.b) Lorsque un costume est équiper, lancer le script de modification de personnage (change_actor) et que celui-ci puisse se baser sur l'id de ce qui est équipé plutôt que de faire un paquet de IF ELSE (un script qui resterais général et réutilisable)
2. (Costume sous Objets) 2.a) Appel d'événement possible, donc gestion du droit d'utiliser ou non est géré, mais nécessite un événement distinct par objet pour appeler change_actor et même avec le parser, puisqu'on ne sait pas quel item viens d'être utilisé dans l'événement commun. 2.b) En utilisant le parser sur les notes des objets afin de donner une valeur à mes variable et d'utiliser le fait q'un objet est utilisé plutot que d'appeler un événement commun et que, le fait que ce soit un objet de catégorie costumes lance l'appel de change_actor le problème ne se poserait pas, mais je devrais quand même interdire la possibilité de pouvoir utiliser ces objet n'importe où sur la carte (ce qui ne serait plus géré puisque je ne ferais plus d'appel d'événement) et reviens finalement à mon problème 1 dans quel cas, je préfère encore un costume armure puisqu'au moins, le joueur pourra voir quel costume est uilisé.
Notez que j'ai déjà un script pour modifier l'apparence de mon personnage son appel se fait par
si les information base, number et index sont identifiée dans les notes de l'équipement. (À la script KGC) Ce script à pour effet, s'il est appeler avec ces paramètres, de donner l'apparence au héro se trouvant à l'ID 1 des Personnages (la fonction change_member est déjà prévue pour viser plutot un membre de l'équipe et s'appelle de la même manière) de manière à ce que le faceset du personnage ainsi que son spriteset devienne "Actor1" index=0.
Merci à l'avance pour votre aide. :pleaaase:
Dernière édition par MirainoHikari le Ven 30 Mai 2008 - 15:56, édité 1 fois
fabY
dYeu retraité prématurément
Age : 29 Inscrit le : 09/02/2008 Messages : 5357
Sujet: Re: [Résolu] Lancer un script via un objet ??? Mar 27 Mai 2008 - 14:41
Sachant que seul Hasu no hanna (et encore il a du mal) ne sais modifier le script... A moins qu'il passe par là tu n'aura pas la solution de ton problème...
Si j'ai bien compris, ton jeu possède des costumes ....
Citation :
Dans les deux cas, j'utilise le script qui permet de faire <CATEGORY Suits> , <EQUIP_TYPE Suits> et <EQUIP_KIND Suits> pour classer mes costumes correctement dans les menus.
Tu utilise le script donné par Louis Toba ?
Citation :
1.a) J'ai besoin que le personnage ne puisse pas changer son custume n'importe où sur la carte, mais qu'ils puisse quand même changer le reste de son équipement.
Il faudrait peut-être donner encore une autre catégorie d'équipement ... C'est à dire :
Dans ce cas, peut-être faut-t'il modifier le logiciel en lui même :/
Citation :
1.b) Lorsque un costume est équiper, lancer le script de modification de personnage (change_actor) et que celui-ci puisse se baser sur l'id de ce qui est équipé plutôt que de faire un paquet de IF ELSE (un script qui resterais général et réutilisable)
Ne peux-tu pas règler ton problème en évènement ? Par condition par exemple ... En évènement commun ?
Enfin moi j'opte pour le 1. (Costume sous Armures) ...
MirainoHikari
Ex-Admin-Script
Age : 42 Inscrit le : 26/05/2008 Messages : 2360
Sujet: Re: [Résolu] Lancer un script via un objet ??? Mar 27 Mai 2008 - 15:02
Lol. Bon d'accord, je vais donner d'autres explications.
Premièrement, je suis capable d'éditer le script KGC, ce n'est pas un problème. Mais par contre, même si ce n'est pas tout à fait ce que tu as dit, tu m'as donné une fichu de bonne idée. Je peux utiliser la system_switche du jeu que j'utilise déjà en condition dexécution. Cependant, ça ne règle toujours pas le problème du fait que je peux ou non équiper un armure (dans ce cas un costume). Mais je vais chercher (car le problème avec le script pour le moment, c'est que si j'utilise une condition pour bloquer l'équipement, ça bloque tout l'équipement pas juste les costumes). Pour la gestion d'événement, c'est justement ce que je ne veux pas faire. Lancer un événement commun unique, j'ai déjà essayé, mais sans passer par les IF (conditions) ELSE ... je veux essayer que ça reste le plus global possible. Je vais te donner un exemple.
Dison qu'on part avec les armures, casques, boucliers et accessoires puis que les costumes se retrouvent à l'id 61. Ok. Là, j'ai déjà une variable qui me dit si le personnage est une fille ou un garçon. J'ai réarranger mes faceset et charset de manière à mieux les géréer, les filles sont noter Girl# et les gars Boy# ou # est remplacer par les chiffre 1 à 3 (en tout j'ai 24 costumes pour le moment, 23 + apparence normal). Bien évidemment, les charset et faceset ont le même nom . Je réccupère cette variable et je la transforme en texte (exemple 0 = 'Girl', 1 = 'Boy') (je n'ai pas mis une switch car pour le garder plus général et ajouter exemple extraterrestre, j'aurais juste à ajouter une 3e catégorie) Ensuite, tout ce dont j'ai besoin, c'est le set et l'index à utiliser. Exemple si je veux l'apparence normal du héro, set=1, index=0. Ainsi, quand j'appelle change_actor, il reçoit 1 qu'il ajoute à 'Girl' pour obtenir 'Girl1' et prends l'image de l'index 0. Ça pour ça tout va bien.
Mon problème n'est vraiment pas au niveau des scripts mis à part p-ê le fait de pouvoir équiper un objet (dans quel cas je pourrait lancer un événement tout en connaissant l'id de l'item utiliser) C'est plus la gestion de équipe, équipe pas... car comme je dis, pouvoir gérer le "isequipable?" et le "fixequip" je ne me poserais même plus la question. Dans les notes (que je parse déjà de toute façon) je pourrais réccupérer les valeurs dans des variable... Oh, en écrivant je viens peut-être d'avoir une idée.... Je vais la tester et je reviendrai si ça marché... Merci fabY, les éclaircissement que tu m'as fait écrire m'ont permis de trouver une potentiel porte de sortie. Mais il va quand même me rester la gestion de «tu peux, tu peux pas équipper un costume présentement». Je faits mes tests et je vous reviens.
EDIT : Ah ben mozus, ça marché. Ok, ben le seul problème qu'il me reste, c'est pour empêcher d'équiper la catégorie costume sans empêcher le reste... mais avec une switch, je devrais m'en tirer... Je vous tiendrai au courrant et quand j'aurai quelque chose de fonctionnel, je l'ajouterai dans la section des scripts.
Dernière édition par MirainoHikari le Mer 28 Mai 2008 - 21:34, édité 1 fois
fabY
dYeu retraité prématurément
Age : 29 Inscrit le : 09/02/2008 Messages : 5357
Sujet: Re: [Résolu] Lancer un script via un objet ??? Mar 27 Mai 2008 - 15:46
Ah oui d'accord ! Je comprend mieux maintenant...
Tant mieux si ça marche (je viens de voir que tu avais éditer, merci la revu du sujet ) !
Espérons qu'avec un interrupteur ça marchera ... Switch = Interrupteur c'est bien ça ?
Gothor
Chevalier Lv.17
Age : 31 Inscrit le : 27/04/2008 Messages : 1835
Sujet: Re: [Résolu] Lancer un script via un objet ??? Mar 27 Mai 2008 - 15:52
Oui, switch = interrupteur = variable booléenne Bonne chance dans ta quête de la résolution du problème
MirainoHikari
Ex-Admin-Script
Age : 42 Inscrit le : 26/05/2008 Messages : 2360
Sujet: Re: [Résolu] Lancer un script via un objet ??? Mar 27 Mai 2008 - 16:43
c'est vrai, je suis tellement habitué de coder en anglais que j'ai pas pris la peine d'y penser. Merci Gothor d'avoir apporter la précision . J'y arrive tranquilement. Là j'ai un petit problème de profondeur, mais je vais arriver bientôt à mon résultat optimal (enfin ) Disons que les code de KGC sont pas facile à comprendre du premier coup, mais une fois qu'on a compris ce que ça faisait, c'est d'une simplicité à faire peur. Si jamais il y en a qui veulent savoir comment se retrouver là dedans, je peux leur donner un petit cours 101 sur «Comment se retrouver dans un code qui n'a pas été penser pour ceux qui voudrait le modifier»
Aller @+
fabY
dYeu retraité prématurément
Age : 29 Inscrit le : 09/02/2008 Messages : 5357
Sujet: Re: [Résolu] Lancer un script via un objet ??? Mar 27 Mai 2008 - 17:00
OWI ! Un cours ! C'est exactement ce que Imer, gothor et moi voulions tout à l'heure =D . En tout cas, si t'as le temps, n'hésite pas ... Place le dans tutoriel lorsque tu aura finit . Je le mettrai peut-être en post-it ^^.
MirainoHikari
Ex-Admin-Script
Age : 42 Inscrit le : 26/05/2008 Messages : 2360
Sujet: Tutoriel en cours de fabrication Mar 27 Mai 2008 - 18:00
Je suis en train de concevoir un tuto pour ceux que ça intéresse. Je l'écris et je le mettrai dans tuto aussitôt que je le termine.