Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Tutos: Godot : Premier Contact -Partie (...) / Tutos: Godot : Premier Contact -Partie (...) / Making-of: Ma première game jam classée / Jeux: Oracle of Tao / Jeux: Mystic Slayer [Value+!] / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

47 connectés actuellement

11002768 visiteurs
depuis l'ouverture

660 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Hellsoft

Planète Glutko

Le Temple de Valor

Offgame

New RPG Maker

RPG Maker VX

RPG Maker Détente

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [RESOLU] [RPG Maker XP] Recupérer l'ID de l'arme equipée


zwei - posté le 16/10/2015 à 10:18:11 (17 messages postés)

❤ 0

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 (1357 messages postés)

❤ 0

en mode UPPTLJ

En principe pour avoir l'ID de l'arme équipée, on peut faire la fonction suivante

Portion de code : Tout sélectionner

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 :doute1

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 || TowerClimb cé bien || Rang M sur Tetris !


zwei - posté le 16/10/2015 à 11:55:30 (17 messages postés)

❤ 0

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)

❤ 0

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)

❤ 0

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 (1951 messages postés)

❤ 0

Portion de code : Tout sélectionner

1
$game_party.actors[X].weapon_id




zwei - posté le 19/10/2015 à 15:47:35 (17 messages postés)

❤ 0

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)

❤ 0

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)

❤ 0

Je me permet de te demander une petite explication supplémentaire ^^ ??


arttroy - posté le 23/10/2015 à 16:18:44 (2394 messages postés)

❤ 0

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 (1951 messages postés)

❤ 0

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)

❤ 0

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 (6966 messages postés)

❤ 0

Bubu

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 :

Portion de code : Tout sélectionner

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.

Femme de Karel.


arttroy - posté le 24/10/2015 à 16:00:36 (2394 messages postés)

❤ 0

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)

❤ 0

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 (6966 messages postés)

❤ 0

Bubu

Je comprends pas ce que tu essayes de faire là. Tu commences par stocker l'ID de ton arme dans une variable globale :

Portion de code : Tout sélectionner

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 :

Portion de code : Tout sélectionner

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].

Femme de Karel.


zwei - posté le 25/10/2015 à 11:25:08 (17 messages postés)

❤ 0

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. :ange2


arttroy - posté le 25/10/2015 à 11:44:15 (2394 messages postés)

❤ 0

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)

❤ 0

Merci beaucoup, j’espère vite montrer à la communauté quelques traces de mon projet.


Wano - posté le 25/10/2015 à 22:21:02 (6966 messages postés)

❤ 0

Bubu

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.

Femme de Karel.

Index du forum > Entraide > [RESOLU] [RPG Maker XP] Recupérer l'ID de l'arme equipée

repondre up

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers