Posté le: 14/02/11 14:22 Sujet du message: Une variable par unité
Bonjour,
Désolée, c'est encore moi. Je me pose une question :
Par exemple, si je veux que chaque unité possède un certain nombre de pièces d'or (Or comme variable entière), je fais le déclo suivant :
Gui:
Trigger:
A unit leaves Carte <gen> Set Or = 0
Je lui donne 0 en or.
Gui:
Trigger:
A unit Utilise un objet Set Or = Or + 1
Je lui rajoute 1 d'or si elle utilise un objet (exemple bidon, je sais)
Alors, la variable Or va prendre la valeur que j'ai écrite, c'est logique. Or, sur ma carte, il y aura plusieurs unités, un nombre indéterminé puisque c'est le joueur qui les crée.
J'aimerais donc qu'elle ait une valeur différente pour chaque unité. Dans mon deuxième déco, je voudrais que la variable Or ne soit égale à Or + 1 que pour cette unité.
Je suppose qu'on gère ça par variables à déploiement, mais je ne sais pas comment m'y prendre.
Inscrit le: 23 Déc 2010 Messages: 294 Sujets: 37 Spécialité en worldedit: Avoir des idées
Posté le: 14/02/11 14:43 Sujet du message: Re: Une variable par unité
Karazu a écrit:
Alors, la variable Or va prendre la valeur que j'ai écrite, c'est logique. Or, sur ma carte, il y aura plusieurs unités, un nombre indéterminé puisque c'est le joueur qui les crée.
J'aimerais donc qu'elle ait une valeur différente pour chaque unité. Dans mon deuxième déco, je voudrais que la variable Or ne soit égale à Or + 1 que pour cette unité.
Je dirais une variable de type "type-unité" à déploiement égal au nombre d'unités différentes possibles. Après tu devras prévoir l'attribution de l'or pour chaque cas.
En admettant que l'or soit "possédable" par l'unité bien sûr. _________________
Bonjour,
C'est en effet une bonne idée, mais le problème c'est que si je prends une variable de type "type-unité", je ne pourrai pas lui attribuer l'entier "or".
Voici un exemple concret de ce que je voudrais faire :
Gui:
Trigger:
Texte flottant - Create floating text that reads (String(Or)) at SLS_Tempoint with Z offset 40.00, using font size 10.00, color (5.00%, 5.00%, 100.00%), and 10.00% transparency
L'or que possède l'unité s'affiche au dessus d'elle, mais je ne sais pas comment faire pour que chaque unité ait une valeur différente stockée dans la variable "or". _________________
Tu crée une hashtable, et pour chaque unité crée, tu lui donne une valeur avec pour référence l'ID de l'unité et par exemple 0 [Exemple : (ID, 0)]. Tu peux récupérer cette valeur en ciblant l'ID de ton unité et donc changer l'or seulement de ton unité.
Inscrit le: 11 Fév 2011 Messages: 2151 Sujets: 114 Spécialité en worldedit: Chasser le Dragon, puis l'exterminer proprement avec une petite cuillère et une poêle.
Posté le: 08/04/11 16:44 Sujet du message:
Petit necro ( 1mois et demi ) mais je pense que cela sera utile :
Dans le cas présent :
Secret:
La variable Or renommé en Or_Unit_Real
On met un déploiement très important ( prendre dans les milliers au moins alors mais tout dépend du type de map, prendre dans les millions voir les milliards de déploiement éviteront les bugs éventuels ) ou du nombre d'unités max pouvant être dans la carte dans toute le partie comptant invocations et autres.
Création de la variable Or_Unit_Number_Unit_Entier Aucun déploiement cette fois.
Troisième : Or_Unit_Number_Unit_Unit (dernier unit pour le type de la variable) Avec le même déploiement que la Or_Unit_Real
Dernière Variable : Or_Unit_Number_Unit_Entier_Deux
Quand une unité entre dans la map, on fait un set variable pour l'entier n*1, et on l'incrémente (+1). Alors, on a le déploiement de l'unité. Donc on fait un set variable pour l'Unit Set variable Unit[Entier n*1] = entering unit.
Il faut après faire le rapport que lorsqu'une unité fait quelque chose pour gagner l'argent, il faut vérifier à quel déploiement de la variable il est, faire un set variable pour le entier n*2 set Entier n*2 = le déploiement de l'unité et puis un set variable du Real : set Real[Entier n*2] = Real[Entier n*2] +1/-1 ( l'or que vous voulez )
Parcontre, n'ayant pas testé, je ne peut pas dire si cela est possible à faire ou que ça marche. _________________
sinon tu as une action "unit-" où tu peux stocker une valeur propre à l'unité, et ce pour chaque unité. Par contre je crois que ça leak à mort _________________
nan pas une user data, je n'ai pas le nom en tete, en fait tu stocke un integer à une unité spécifique.
Je l'avais fait pour tester un truc, et avec plus d'une dizaine d'unité ça commençait à ramer et ça continuait quand j'ajoutais des "custom interger" à d'autres unités _________________
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum