Worldedit
  Worldedit
Le site sur l'éditeur de warcraft 3 !
 
  FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs   medals.php?sid=6097c8df16bc2483a715ac722aaa7b9eMédailles   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 
  FAQFAQ World Editor   UploadUploader une map ou une image    UploadAjouter sa map à l'annuaire   UploadConsulter l'annuaire

Sort Anneau de Glace

 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Les sorts
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 LightDragoon
Ptit Nouveau


Inscrit le: 01 Mai 2014
Messages: 35
Sujets: 5
Spécialité en worldedit: France


MessagePosté le: 02/05/14 17:46    Sujet du message: Sort Anneau de Glace Citer

Alors voilà (C'est encore moi) j'ai essayé de faire un sort !
Description :
"Anneau de glace
Crée de la glace autour de vous à une distance de 700 enfermant les unités et leur infligeant 0.5x intelligence de dégats pendant 10 seconde. Cooldown : 45 seconde
Temps de canalisation : 2 seconde"
Sauf que j'ai un petit soucis alors voici mes déclos :
Gui:
Trigger:
Anneau de glace
Collapse Evénements
Unité - A unit Initie l'effet d'une compétence
Collapse Conditions
(Ability being cast) Egal à  (==) Anneau de Glace
Collapse Actions
Custom script:   local unit t
Custom script:   local unit c = GetSpellAbilityUnit()
Custom script:   local real a = 360.00
Custom script:   local integer i = 0
Custom script:   local real x = GetUnitX(c)
Custom script:   local real y = GetUnitY(c)
Collapse Groupe unité - Pick every unit in (Units within 700.00 of (Point((x), (y))) matching (((Owner of (Picked unit)) Egal à  (==) Joueur 12 (Marron)) or ((Owner of (Picked unit)) Egal à  (==) Neutre Hostile))) and do (Actions)
Collapse Boucle - Actions
Groupe unité - Add (Matching unit) to Group_unit_Anneau_De_Glace
Collapse Groupe unité - Pick every unit in Group_unit_Anneau_De_Glace and do (Actions)
Collapse Boucle - Actions
Custom script:   set t = GetEnumUnit()
Custom script:   loop
Unité - Create 1 Dummy Anneau de Glace for (Triggering player) at ((Position of (Target unit of ability being cast)) offset by 700.00 towards (a) degrees) facing Orientation bâtiment par défaut (270.0) degrees
Unité - Add a 10.00 second Générique expiration timer to (Last created unit)
Custom script:   set a = a - 9
Custom script:   exitwhen a == 0
Custom script:   endloop
Custom script:   loop
Custom script:   exitwhen i > 10
Custom script:   set bj_wantDestroyGroup = true
Wait 1.00 seconds
Custom script:   call Iceprison( t, c, "m")
Custom script:   set i = i+1
Custom script:   endloop
Collapse Groupe unité - Pick every unit in (Units owned by (Owner of (c)) of type Dummy Anneau de Glace) and do (Actions)
Collapse Boucle - Actions
Unité - Remove (Picked unit) from the game

Et voici la fonction IcePrison
Jass:
function Iceprison takes unit t, unit c, string m returns nothing
     call UnitDamageTarget( c, t, (GetHeroInt( c, true ) * 0.50), true, false, ATTACK_TYPE_MAGIC, DAMAGE_TYPE_UNIVERSAL, WEAPON_TYPE_WHOKNOWS )
endfunction

Or quand je veux changer la variable t il me dit qu'elle est pas declaré alors qu'elle est belle et bien déclaré au début du déclo..[/Jass][/Gui]
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Adresse AIM
 florianlenecro
Floodeur prématuré


Inscrit le: 12 Nov 2009
Messages: 711
Sujets: 50
Spécialité en worldedit: Vétéran


MessagePosté le: 02/05/14 20:01    Sujet du message: Citer

Je peux te poser une question? Pourquoi ne pas te mettre au jass puisque les 3/4 des tes déclencheurs sont fait en jass par le biais des custom script.

D'ailleurs j'aimerai bien savoir comment tu as fait pour incruster tes variables locales dans tes fonctions GUI :/
_________________
C'est en forgeant que l'on devient forgeron
"Le feu ne peut tuer le dragon"
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Tirlititi



Inscrit le: 21 Fév 2010
Messages: 1785
Sujets: 22
Spécialité en worldedit: La modestie
Médailles: 1 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 02/05/14 20:10    Sujet du message: Citer

Les variables sont gérées comme ça dans l'éditeur :
- créer une variable globale (via l'icône verte) rajoute en fait un préfixe "udg_" (pour User-Defined Global) devant le nom de ta variable globale.
- utiliser une variable globale via une action GUI (donc pas un custom script) rajoute également ce préfixe.
- les custom scripts sont laissés tels quel dans le résultat final, donc quand tu créés tes variables "c" ou "t", il s'agit de leurs vrais noms.
Du coup, le "c" local et le "c" dans ton "Pick every unit" de la fin, c'est pas les mêmes.

D'autre part, pour 1 déclencheur GUI, il y a parfois plusieurs fonctions JASS différentes qui sont créées. Dans un "Pick every units in group", par exemple, ce qu'il y a à l'intérieur de la boucle est dans une autre fonction : il n'y a pas de variable locale "t" déclarée dans cette autre fonction.

Voilà. Pour ces raisons, c'est dangereux d'utiliser à la fois le GUI et le JASS.

Une dernière remarque, pour la route : quand tu fais "set t = GetEnumUnit()", l'unité "t" est remplacée à chaque fois (il s'agit d'une variable qui pointe sur une seule unité) et donc ton sort n'infligera des dégâts qu'à une seule unité (la dernière du groupe). Il te faut passer par une variable de type "Groupe unité" ("group" en JASS).
Idem pour les unités dummy "Anneau de glace" : utilise un groupe si tu veux faire ça proprement (comme c'est codé là, ça buggera si le sort est lancé 2 fois à moins d'une seconde d'intervalle).

Voili, voilà. Bon courage ^^
_________________
Warcraft III, c'était mieux avant. Y'avait des purs chefs-d'oeuvres du mapping !
Road Of Glory (par moi)
Casse-briques (par moi)
Temple de Glace (par moi)
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 LightDragoon
Ptit Nouveau


Inscrit le: 01 Mai 2014
Messages: 35
Sujets: 5
Spécialité en worldedit: France


MessagePosté le: 03/05/14 11:44    Sujet du message: Citer

Juste une question qu'elle est la fonction pour infliger des dégats à toutes les unités d'un groupe en Jass je l'a trouve pas..
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Adresse AIM
 Ayane
Bot administrateur


Inscrit le: 17 Sep 2007
Messages: 2009
Sujets: 49

Médailles: 2 (En savoir plus...)
Ayane (Quantité : 1) Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 03/05/14 11:46    Sujet du message: Citer

Ou plus simplement:
Gui:
Trigger:
Ice Ring
Collapse Evénements
Unité - A unit Initie l'effet d'une compétence
Conditions
Collapse Actions
Custom script:   local integer udg_TriggerId = 0
Set TriggerId = ((Execution count of (This trigger)) mod 8100)
Set IceRingTargets[TriggerId] = (Units within 700.00 of (Position of (Casting unit)) matching (((Matching unit) is alive) Egal à  TRUE))
Collapse For each (Integer IceRingIterCount[TriggerId]) from 1 to 10, do (Actions)
Collapse Boucle - Actions
Wait 1.00 game-time seconds
Set Damage = ((Real((Intelligence of (Triggering unit) (Inclure bonuses)))) x 0.50)
Collapse Groupe unité - Pick every unit in IceRingTargets[TriggerId] and do (Actions)
Collapse Boucle - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
((Picked unit) has buff Frozen (Pause)) Egal à  TRUE
Collapse Alors - Actions
Unité - Cause (Triggering unit) to damage (Picked unit), dealing Damage damage of attack type Sorts and damage type Glace
Sinon - Actions
Custom script:   call DestroyGroup(udg_IceRingTargets[udg_TriggerId])

Basé sur le sort Choc Martial.
Lancer un sort basé sur quelque chose comme choc de flamme pourrait remplacer le code sur les dégâts de zone.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 LightDragoon
Ptit Nouveau


Inscrit le: 01 Mai 2014
Messages: 35
Sujets: 5
Spécialité en worldedit: France


MessagePosté le: 03/05/14 12:42    Sujet du message: Citer

Voilà c'est niquel merci ! Smile
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Adresse AIM
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Les sorts Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1
La question posée dans ce topic a été résolue !

 
Sauter vers:  
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


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com