Warcraft 3 »
Aide pour l´éditeur de warcraft 3
1 10 11

Forums de discussion
Warcraft 3

Un bug que je n´arrive pas a rsoudre tout seul :
Mes unités peuvent et devraient arriver au niveau 30 sans aucun problème puisque j´ai modifier les constantes.
Mais leur niveau se bloque au 5.
Aidez moi s´il vous plait
j´ai entendu dire que meme avec les constantes si tu ne tue que des unitée neutre le niveau 5 reste bloqué

Si ton problème ne vient pas de la ce que je te propose c´est de le faire toi même
Réponse 1: Si tu créer les unitées par un batiment
Réponse 2: Si tu obtient tes unitée par un déclencheur


Réponse 1: Tu créer une variable Entier (appelon la CreateUnitX)
Tu créer un déclencheur (unitcreate)

Evenement : <dison que tu créer toute les [5] sec> Every [5] secondes of game time
condition : [ta condition]
Action : Create [1] [ton unitée] for [joueur] at [positon of unit, center of region....]
Set [createUnitX] = [createUnitX+1 (arthemic)]

Tu créer un déclencheur (unitdie)

Evenement : A Unit [meurt]
Condition: Unit-type [dying unit] = [createUnit]
(Real comparaison ; conversion- convert Integer To Real) Real [createUnitX] [égal à] [50] (nombre d´unitée que tu as créer tué)
Action : Set [héros] Hero level to [le niveau souhaiter]
(il y a une option qui permet de monter le niveau du héros de +1 peut importe son level mais c´est trop long à expliquer désoler)


Réponse 2: Tu place dans ton déclencheur
(set createUnitX = Last create unit et set createUnitX = createUnitX+1)
Tu place le deuxième déclencheur (Unitdie)


Avertissement:
il faut utiliser l´action If/then/Else pour insérer une condition pour que se soit l´unité du joueur ciblé et que ce soit le type d´unitée voulu bref c´est très long.... Voila j´ai fait se que j´ai pu pour t´expliquer au plus simple :)
Le problème c´est que je ne fais pas d´unité neutre elle sont dès le début et dès qu´elles meurt elle revivent automatiquement dommage.
Sinon bonne explication.
Si je ne resolve pas le problème je pète un cable.
Sinon c´est pas grave.
Je connais un mode Guil of hippos.
Dès que tu rentres dans une région, ça crée des unitées et des qu´une meurt ça la fais revivre.
Le créateur a peut être eut le même problème.
Quoi qu´il n soit je suis euhhhhh
Mais ne perdons pas espoir merci de ta réponse.
Créer un déclencheur : une unitée est créer si elle est du type que tu ve [condition oblige] place la dans une variable type-unit

Créer un autre déclencheur : une unitée meurt
condition : si l´unitée est de type de ta variable et si le nombre d´unitée vivantes est inférieur à (5par exemple) du type de ta variable
Action : create 1 unit du type de la variable

Je vais prendre un exemple pour etre plus précis
Un héros tu tout les bandits donc plus de bandits a tués

Déclencheur unit die (bandits) ...... condition unité egal variable type-unit (donc bandits) et (nombre de bandits vivants) inférieur à 5

donc la si une unitée meurt la condition cherche si cette unitée morte fait partie du type d´unitée recherché et si le nombre d´unité de la variable vivant est inférieur à 5

Si c´est le cas Action :wait 10seconde et créer un bandits position of dying unit

C´est la meilleur méthode celon moi après chacun son avis




Citation : «Tandjah
Créer un déclencheur : une unitée est créer si elle est du type que tu ve [condition oblige] place la dans une variable type-unit

Créer un autre déclencheur : une unitée meurt
condition : si l´unitée est de type de ta variable et si le nombre d´unitée vivantes est inférieur à (5par exemple) du type de ta variable
Action : create 1 unit du type de la variable

Je vais prendre un exemple pour etre plus précis
Un héros tu tout les bandits donc plus de bandits a tués

Déclencheur unit die (bandits) ...... condition unité egal variable type-unit (donc bandits) et (nombre de bandits vivants) inférieur à 5

donc la si une unitée meurt la condition cherche si cette unitée morte fait partie du type d´unitée recherché et si le nombre d´unité de la variable vivant est inférieur à 5

Si c´est le cas Action :wait 10seconde et créer un bandits position of dying unit

C´est la meilleur méthode celon moi après chacun son avis
»

Oui mais le problème reste le même puisque celon toi sa viendrais du nombre de neutre hostile mais il y en la même nombre.
POur les créer en entrant dans une région il y a une astuce.

Evénément :
A unit <U>LEAVE</U> de ma region
Condition: Controller comparaison- Owner of leaving unit est controlllé par un unitilisateur
Action :CReate 5 [bandit ou ma variable]
Pourquoi leave et pas enter :
Quand on fais enter l´ordi créer des millions de bandits.


Mais le problème n´est pas réglé car si deux unité rentre sa va utiliser deux fois la variables.
On peut tout de même faire en sorte que l´on utlise qu´une fois.

On peut rajouter a la fin du délco
Action : Create ......
Wait 0.05
Turn of this trigger

Du coup le déclencheur ne marche plus il suffit juste de mêtre le déclo por qu´ils revive.

Il y a plusieur technique moi j´utilise celle-ci.

Evenement- a unit meurt
Condition: (Owner of (diying unit)) egal a Neutre hostile.
Booléan- (ma région contains unit (killing unit) egal a true
Action:Unité- Create 1 unit type of diying unit for neutre hstile random point in (my region)


Le posséseur de l´unité qui tue doit etre Un neuttre hostile
La région "Northrend" dois contenir le tueur
Action ça créer l´unité qui vient de mourrir


Deja j´ai remarquer rien que dans ton texte ce qui ne va pas

Citation : « Evénément :
A unit LEAVE de ma region
Condition: Controller comparaison- Owner of leaving unit est controlllé par un unitilisateur
Action :CReate 5 [bandit ou ma variable]» »

La si ton unité sort de la région et que c´est un utilisateur l´action créer 5bandits.... Peut importe si il y en a deja 5 ou 20 sur la carte sa risque d´etre difficile pour le héros
Evidement sans condition ......

Citation : « Pourquoi leave et pas enter :
Quand on fais enter l´ordi créer des millions de bandits. »
Alors soi tu as esayer de faire enter région et sans condition sa ta fait sa soit, je ne comprend plus car ton déclencheur s´active si une unitée part de ta région et la si l´ordinateur rentre il fonctionne quand meme? je pensse que tu as un déclencheur mal fait qui traine dans ton fouilli ^^

Citation : «Mais le problème n´est pas réglé car si deux unité rentre sa va utiliser deux fois la variables.
On peut tout de même faire en sorte que l´on utlise qu´une fois.
»


Toujours pas de condition si tu as mis dans ton déclencheur unit enter région sans condition nimporte qui peut faire n´importe quoi c´est sur le problème avec turn off trigger c´est qu´il faut un événement pour pouvoir turn on (rallumer)

Je m´explique avec un exemple: Je veux tué tout les mort vivant qui entre dans mon chateau

Evenement : Unit enter région
Condition : aucune
Action: kill unit

Toutes les unitées entrant dans cette région von mourir si tu met turn off cela veut dire que tu veu que plus personne ne soit tué après (parce que le déclencheur seras inactif).
Mais en aucun cas tu ne lui as indiquer qui tu voulais tuer
Citation : «
Evenement- a unit meurt
Condition: (Owner of (diying unit)) egal a Neutre hostile.
Booléan- (ma région contains unit (killing unit) egal a true
Action:Unité- Create 1 unit type of diying unit
for neutre hstile random point in (my region)


Le posséseur de l´unité qui tue doit etre Un neuttre hostile
La région "Northrend" dois contenir le tueur
Action ça créer l´unité qui vient de mourrir »

Sa c´est un déclencheur qui ne s´active que celon une condition précise, tu en est capable alors soi patient et logique tu trouveras toi meme les solution de tes ereurs






Trés bonne explication Tandjah.
Je sais pas si c´est le fait que je sois malade qui me rends comme ça mais je ne sais pas comment vous faites pour poster des explication aussi détaillé car moi j´ai vraiment la flemme.
Citation : «Je sais pas si c´est le fait que je sois malade qui me rends comme ça mais je ne sais pas comment vous faites pour poster des explication aussi détaillé car moi j´ai vraiment la flemme.
»

Tu vois ben mois je fais ça pour me rendre service.
Rendre service a ceux qui lisent ce topic
Et pour les posts (+1)



Je ne suis pas ur d´avoir compris je t´explique.
Citation : « Toujours pas de condition si tu as mis dans ton déclencheur unit enter région sans condition nimporte qui peut faire n´importe quoi c´est sur le problème avec turn off trigger c´est qu´il faut un événement pour pouvoir turn on (rallumer)
»
OUI !
Mais c´est un exemple
Si je mets pas de conditions spécifique certains pourrais croire que c´est une généralité
1-0
Citation : « La si ton unité sort de la région et que c´est un utilisateur l´action créer 5bandits.... Peut importe si il y en a deja 5 ou 20 sur la carte sa risque d´etre difficile pour le héros
Evidement sans condition ......
»
Oui mais le trun of this trigger va très bien il arreteras le déclencheur.Et puis je crée un autre declencheur qui fais réapparaitre les unitées morte :
Un heros rentre dans la région 0.05 secondes plus tard le déclencheur se desactive a moin qu´un heros speedy gonzalés soit dans la carte il sera impossible a part si le joueur a des ilusions avec lui. Et comme lautre déclencheur fais réaparaître le sunité morte dans la région.

1,5-0,5
Citation : «
Citation : «
Evenement- a unit meurt
Condition: (Owner of (diying unit)) egal a Neutre hostile.
Booléan- (ma région contains unit (killing unit) egal a true
Action:Unité- Create 1 unit type of diying unit
for neutre hstile random point in (my region)


Le posséseur de l´unité qui tue doit etre Un neuttre hostile
La région "Northrend" dois contenir le tueur
Action ça créer l´unité qui vient de mourrir »
»

Je vois pas le problème le declencheur s´active comme je veux qu´il s´active.

Attente de la confirmation de l´arbitre
Je sais pas si c´est le fait que je sois malade qui me rends comme ça mais je ne sais pas comment vous faites pour poster des explication aussi détaillé car moi j´ai vraiment la flemme.
Ta maladie est contagieuse j´ai pas envie de rectifier tout ce que j´ai fais
Salut Legendary-Shadow,

Apparement ton problème perciste...
Si j´ai bien compris tu veux qu´une unité monte jusqu´au niveau 30 mais même en utilisant les constantes personnalisées tu n´y arrive pas...
Moi je te propose de reprogrammer le système de niveaux :

On va se servir des variables suivantes :
´xp_ending´ est FALSE
´unit_curr_lvl´ vaut 1 initialement
´unit_curr_xp´ vaut 0 initialement
´xp_requirered´ vaut 10000 quelquesoit la valeur de ´unit_curr_lvl´
´xp_rate´ vaut 2500 pour ´unit_curr_lvl´=1
... 1000 pour ´unit_curr_lvl´=2
... 800 pour ´unit_curr_lvl´=3
... 700 pour ´unit_curr_lvl´=4
... 650 pour ´unit_curr_lvl´=5
... etc ...

Maintenant il va faloir determiner les fonctions :

déclencheur ´lvl01´
event>´unit_curr_lvl´=1
action>set ´xp_rate´=2500

déclencheur ´lvl02´
event>´unit_curr_lvl´=2
action>set ´xp_rate´=1000

déclencheur ´lvl03´
event>´unit_curr_lvl´=3
action>set ´xp_rate´=800

déclencheur ´lvl04´
event>´unit_curr_lvl´=4
action>set ´xp_rate´=700

déclencheur ´lvl05´
event>´unit_curr_lvl´=5
action>set ´xp_rate´=650

etc...

déclencheur ´lvl30´
event>´unit_curr_lvl´=30
action>set ´xp_rate´=0
action>set ´xp_ending´=TRUE
action>set ´xp_board´=FALSE

déclencheur ´_xp´
event>[unit] kill [unit]
action>´unit_curr_xp´+´xp_rate´x1 pour [triggering unit]
action>afficher un message contenant ´xp_rate´ au dessus de [killed unit]

déclencheur ´lvlup´
event>´unit_curr_xp´>´xp_requirered´
action>[triggering unit] level up
action>(´unit_curr_lvl´ de [triggering unit]) +1

déclencheur ´display_xp´
event>map init
condition>´xp_board´=TRUE
action> créer un panneau qui affiche ´unit_curr_lvl´ et ´unit_curr_xp´ pour [targeted unit]

Il faut attribuer ´unit_curr_xp´ pour tes unités.

Voilà tu as la structure, j´espère que ça t´aideras...
Je ne pense pas que c´est ce que tu cherches mais c´est une possibilité.

@+

Hekat
C´est une solution assez complexe si il doit s´amuser à faire sa pour chaques héros sur chaques unitées..... Jte souhaite bon courage Legendary
Salut,

Citation : « C´est une solution assez complexe si il doit s´amuser à faire sa pour chaques héros sur chaques unitées..... Jte souhaite bon courage Legendary »

Oui c´est vrai mais je sais plus comment attribuer 1 variable pour chaque unité de tel type...
D´ailleurs j´ai oublié de rajouter "action>(xp de [triggering unit])+´xp_rate´ dans le déclencheur ´_xp´. Du coup, plus besoin de ´display_xp ni de ´xp_requirered´ : Il les gèrera tout seul !

Mais je vais essayer de trouver une sollution plus basique à ton problème...

Hekat
Re je pense avoir trouvé,

Dans l´éditeur d´objet, tu as un attribut ´stat - niveau´ (je l´avais oublié) pour ton unité, il est sur 5 par défaut...
Règle-le sur 30 et reteste !

J´espère que ça marchera...
Je vais vous dire quelque chose.
J´a honte.
Hekat WAOUUUUU !!
Alors que tu me sors les trucs complexe , tu avais raison.
QUEL C**
Merci à vous.
Merci a Tandjah (t´aurais pas pu le voir quand tu as regardé ma map(je rigole))
Merci a Hekat !!
Et surtout Bienvenue !
Une seule leçon.
La solution la plus simple est toujours la meilleure.
Suppression des derniers posts qui n´apportent rien à la discussion, ou autrement dit, Legendary-Shadow dans le viseur des modos pour ses posts inutiles qui commençaient un peu trop à s´accumuler
Bonjour à tous.

Moi c´est un probleme de tp que j´ai avec l´editeur je voudras savoir comment rendre les portails actifs...


D´avance merci
Salut Jasonlegall,

Pour rendre les portail actif c´est trés simple, moi j´utilise un simple "move unit when unit enter region" donc lorsque une unité entre dans un région (juste a coté du portail) l´unité est téléporté dans une autre région.
Cette méthode je l´applique pour les portail ondulant par exemple.

Par contre si tu veux faire ca avec les portail qu´utilise les parties classique a ce moment là il suffit d´aller dans les propriété du portail et de l´activer. (tu peux meme changer sa couleur si tu veux)
Ok chui si noob que ça^^

edit:mais "where is the proprietées of portal "
Tu clique deux fois sur le portail et le tour est joué.

Ps : Ne pas savoir quelque chose ce n´est pas être nobb c´est débuter