Bienvenue visiteur !
|
Désactiver la neige
Statistiques
Liste des membres
Contact
Mentions légales
466 connectés actuellement
30912743 visiteurs depuis l'ouverture
2379 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
zwei -
posté le 16/10/2015 à 10:18:11 (17 messages postés)
| | Domaine concerné: Variable
Logiciel utilisé: RMXP
Bonjour,
ça fait quelques temps que je parcours différents forum sans trouver de solution à mon problème. Je me suis donc inscrit ici afin de savoir si vous pouviez m'aider.
Voila, lors d'un appel d'événement, je cherche à récupérer L'ID de l'arme équipée afin de la stocker dans une variable. Le but est de l’empêcher de s'équiper d'une arme et de lui rééquipé le moment voulu l'arme qui était en ça possession.
Si pour mon plus grand bonheur vous savez également comment empêcher le joueur de s’équiper d'une arme je suis intéressé.
Merci beaucoup.
|
Anton_ -
posté le 16/10/2015 à 11:23:12 (1537 messages postés)
| | En principe pour avoir l'ID de l'arme équipée, on peut faire la fonction suivante
1
| Modifier variable : Héros [Alex] -> Nombre de l'arme équipé |
J'ai pas vérifié si cette option existe sur XP, mais au moins elle existe ailleurs
Par contre, ce que tu veux faire semble assez bizarre, tu veux forcer le changement d'une arme sur un héros, l'empêcher d'équiper quoi que ce soit d'autre tant qu'il utilise l'arme spéciale, puis reprendre l'équipement précédent une fois le combat fini ?
Je vois pas ça possible en évent, peut être en changeant de classe (classe spéciale qui ne peut porter que les armes spéciales) ça pourrait être une piste.
Sinon, lui donner un statut spécial qui booste des stats, ça ne convient pas ?
|
Raetribution | Megamike || tutos : 1 2 || Une bonne dose de maths pour la route |
zwei -
posté le 16/10/2015 à 11:55:30 (17 messages postés)
| | J’essaye de faire un A rpg, et je voudrais que lorsque le héros est dans la ville, son arme équipé lui soit retiré et rééquipé à sa sortie.
Et pendant sa visite de la ville lui empêcher d'équiper une arme pour ne pas tout découper ni tuer un innocent villageois.
J’espère avoir réussi a me faire mieux comprendre ? sinon hésite pas a me le dire.
Pour ta solution je ne trouve pas l'option en question, elle n'est peut être pas présente sur la version XP ???
|
arttroy -
posté le 16/10/2015 à 15:33:49 (2394 messages postés)
| Just working | Bah ça dépend de comment tu as programmé ton coup d'épée en fait mais en théorie si tu as fait ça en event tu as programmé une touche pour l'attaque, il te suffit d'ajouter une condition avec un interrupteur et d'englober ta programmation pour la touche dedans :
condition interrupteur [ville] est désactivé
condition la touche [:A] est pressée
changer le charset
fin
sinon
fin
Et tu active ton interrupteur dès que le héros rentre dans la ville comme ça plus de souci d'équipement/dés-équipement. Tu le désactive quand ton héros quitte la ville et voilà ça devrait le faire.
Ainsi ton héros ne pourra plus attaquer quand il sera en ville ^^.
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
zwei -
posté le 16/10/2015 à 15:58:39 (17 messages postés)
| | Je me sert du script XAS pour le système de combat ( bien que j'ai désactivé pas mal de chose ) donc je me vois mal aller le bidouiller je l’avoue.
Pour le fait de ne pas pouvoir équiper d'arme en ville je me sert d'un interrupteur VILLE que lorsqu'il est activé sa retire l'arme du héros. Donc même si le joueur retourne en équiper une, elle lui est retirée directement .
Je me pose la question de savoir si mon événement n'est pas trop groumant à bouclé en continue sur une map ? Pour cette raison que je cherche un moyen d’empêcher l’équipement d'arme ?
Mon autre problème c'est pour le confort du joueur, je ne préfère pas obliger le joueur à rééquiper à chaque fois son arme mais que ça le fasse automatiquement.
Pour ça faut juste que j'arrive à récupérer l'ID de l'arme équipé et lui remettre à la sortie de la ville .
|
Crystal -
posté le 18/10/2015 à 17:28:08 (2160 messages postés)
- | |
1
| $game_party.actors[X].weapon_id |
|
zwei -
posté le 19/10/2015 à 15:47:35 (17 messages postés)
| | Merci beaucoup de l'info Crystal.
Je vais voir comment je peu faire pour optimiser tout ça. Je ferais un EDIT pour dire que mon problème est résolu si c'est ok.
EDIT
Donc voila je me confronte à un problème. Lorsque je fait -->
$ID_arme_equipe = $game_party.actors[0].weapon_id
je recupère bien l'identifiant de l'arme equipé par contre a l'inverse
$game_party.actors[0].weapon_id= $ID_arme_equipe
provoque une erreur
undefined method 'weapon_id'='for#<Game_Actor:0x6a03150>
Je rappel que mon problème est de pouvoir équiper une arme à l'aide d'un identifiant stocké dans une variable.
Je vous remercie déjà d'avance sa va m'aider à me perfectionner.
|
arttroy -
posté le 21/10/2015 à 15:49:53 (2394 messages postés)
| Just working | Pour que ça fonctionne faudrait plus faire un truc du genre :
$game_party.actors[0].force_change_equip(0, $data_weapon[$ID_arme_equipe])
'fin je crois ^^.
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
zwei -
posté le 21/10/2015 à 20:34:30 (17 messages postés)
| | Je me permet de te demander une petite explication supplémentaire ^^ ??
|
arttroy -
posté le 23/10/2015 à 16:18:44 (2394 messages postés)
| Just working | Alors ça va être un peu compliqué de t'expliquer mieux, c'est ce que je ferais sous VX Ace mais c'est la seule version des scripts que je connaisse (RGSS3) Pour xp la syntaxe risque d'être un peu différente (RGSS2).
Mais en gros ça ce serait un morceau de script qui force l'équipement de l'arme (le 0 de la parenthèse représente le slot à équiper) en tenant compte de ta variable $ID_arme_equipe. En gros c'est ce dont tu vas te servir pour rééquiper ton personnage lorsqu'il sortira d'une ville.
Il te suffira de créer un event, tu utilise la commande "insérer un script" et tu met ça dedans au endroits où le personnage est censé pouvoir sortir.
Ca implique juste que tu ais enregistré quelque chose avant dans ta variable $ID_arme_equipe mais bon logiquement ce sera le cas vu qu'il faudra bien y entrer dans cette ville donc bon...
Edit :
En regardant un peu le mieux je pense c'est de faire ça, à confirmer par quelqu'un de plus calé que moi sur xp (siouplaît les gens) :
id = $ID_arme_equip
$game_party.actors[0].equip(0, id)
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
Crystal -
posté le 24/10/2015 à 08:37:13 (2160 messages postés)
- | | Le problème vient du fait que la variable n'est pas un attr_accessor mais bien un attr_reader je pense... Je n'ai pas confirmé toutefois.
|
zwei -
posté le 24/10/2015 à 10:40:16 (17 messages postés)
| | Merci arttroy je comprend un peu lieux le problème.
Ma variable $ID_arme_equipe récupère bien l'identifiant de mon arme , de ce coté la pas de problème.
Merci aussi a toi Crystal, si tu a le temps je veux bien que tu regarde si il est possible de voir si la variable est un attr_accessor ou m'aiguiller sur l'endroit ou je peu savoir car j'ai fait quelque recherche ais toujours rien pour le moment.
attr_accessor sa veux bien dire qu'on peut lire et écrire alors que attr_reader permet simplement une lecture de la variable via l'appel de script en événement ??
Encore merci à vous de m'aider.
|
Wano -
posté le 24/10/2015 à 13:10:16 (6974 messages postés)
| | Citation: attr_accessor sa veux bien dire qu'on peut lire et écrire alors que attr_reader permet simplement une lecture de la variable via l'appel de script en événement ?? |
C'est ça, mais il y a une raison pour laquelle ils ne l'ont pas mis en attr_accessor : pour que tu ne modifies pas la variable brutalement. Si tu regardes la fonction equip :
1
2
3
4
5
6
7
| case equip_type
when 1 # Weapon
if id == 0 or $game_party.weapon_number(id) > 0
$game_party.gain_weapon(@weapon_id, 1)
@weapon_id = id
$game_party.lose_weapon(id, 1)
end |
Tu vois bien qu'il n'y a pas que l'id de ton arme qui est modifiée, il y a plusieurs actions supplémentaires à faire avec la variable $game_party. Si tu avais juste modifié @weapon_id, tu aurais probablement eu quelques problèmes d'affichages.
|
arttroy -
posté le 24/10/2015 à 16:00:36 (2394 messages postés)
| Just working | C'est ça que j'ai du mal à saisir, je comprend pas bien cette fonction...
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
zwei -
posté le 24/10/2015 à 16:50:41 (17 messages postés)
| | Oki je comprend un peu mieux .
Wano possible de m'expliquer comment je doit faire pour pouvoir équiper une arme en fonction de ma variable ?? Je dirais quelque chose comme ça mais ça provoque quand même une erreur donc je ne suis pas sur de la syntaxe..
$game_party.gain_weapon(@weapon_id, 1)
@weapon_id = $id_arme_equipe
$game_party.lose_weapon($id_arme_equipe, 1)
|
Wano -
posté le 24/10/2015 à 18:05:11 (6974 messages postés)
| | Je comprends pas ce que tu essayes de faire là. Tu commences par stocker l'ID de ton arme dans une variable globale :
1
| $ID_arme_equipe = $game_party.actors[0].weapon_id |
Tu enlèves l'arme par les commandes d'event, et dès que tu veux réequiper l'arme que tu avais stocké dans ta variable, tu fais :
1
| $game_party.actors[0].equip(0, $ID_arme_equipe) |
Après, au lieu de créer une variable globale (avec un $), je pense que ça serait plu propre de stocker ça directement dans les variables de RM (c'est pas bien de créer des variables globales un peu partout). Au lieu de $ID_arme_equipe, tu mets $game_variables[choisi une id qui te plait].
|
zwei -
posté le 25/10/2015 à 11:25:08 (17 messages postés)
| | SUPER WANO j'ai bien compris et en plus ça fonctionne super.
Merci pour vos conseils et astuces, mon problème est résolu et maintenant je comprend mieux le système de variable et autre.
|
arttroy -
posté le 25/10/2015 à 11:44:15 (2394 messages postés)
| Just working | Ah bah j'y étais au début alors ^^ Content que tu ais résolu ton souci bon courage pour la suite.
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
zwei -
posté le 25/10/2015 à 14:21:33 (17 messages postés)
| | Merci beaucoup, j’espère vite montrer à la communauté quelques traces de mon projet.
|
Wano -
posté le 25/10/2015 à 22:21:02 (6974 messages postés)
| | Super, contente que ça t'ai aidé ! C'est quand même étrange qu'il n'y ai pas moyen de récupérer ça via la gestion de variables... je ne sais pas s'ils l'ont ajouté dans les VX.
|
Index du forum > Entraide > [RESOLU] [RPG Maker XP] Recupérer l'ID de l'arme equipée
|
|
|