Worldedit
  Worldedit
Le site sur l'éditeur de warcraft 3 !
 
  FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs   medals.phpMé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

Aidez moi à simplifier ce code

 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Aide sur les déclencheurs
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 Ashtabatakete
Ptit Nouveau


Inscrit le: 04 Nov 2011
Messages: 25
Sujets: 2



MessagePosté le: 22/12/11 16:54    Sujet du message: Aidez moi à simplifier ce code Citer

Voila tout j'ai créé un sort mais je trouve que le codage a trop de boucle donc je voulais savoir si quelqu'un serait capable de me faire un code plus lisible...

Secret:

La partie action du trigger effectuant les effets du sort :
Secret:

Jass:
function Trig_Rituel_Demoniaque_Actions takes nothing returns nothing
    local unit c = GetTriggerUnit()
    local real x = GetUnitX(c)
    local real y = GetUnitY(c)
    local real f = GetUnitFacing(c)
    local integer a = 0
    local unit array dummy
    local unit array dummy2
    local location p
    local integer b
    local integer t = 0
    call PolledWait(0.25)
    call SetUnitAnimation( c, "Spell" )
    call PolledWait(1.5)
    loop
        exitwhen a == 5
        set dummy[a] = CreateUnit(Player(GetPlayerId(GetOwningPlayer(c))), 'u002', x + 80*CosBJ( f+(72*a) ), y + 80*SinBJ( f+(72*a) ), f+(72*a))
        call DestroyEffectBJ(AddSpecialEffect( "Abilities\\Spells\\Undead\\RaiseSkeletonWarrior\\RaiseSkeleton.mdl", x + 80*CosBJ( f+(72*a) ), y + 80*SinBJ( f+(72*a) )))
        call SetUnitAnimation( dummy[a], "Stand Work Gold" )
        set a = a + 1
    endloop
    call PolledWait(1.5)
    set a = 0
    loop
        exitwhen a == 5
        call SetUnitAnimation( dummy[a], "Attack" )
        set a = a+1
    endloop
    set a = 0
    loop
        exitwhen a == 5
        set b = 0 + a*5
        loop
            exitwhen b == 5 + a*5
            set dummy2[b] = CreateUnit(Player(GetPlayerId(GetOwningPlayer(c))), 'u001', (x + 80*CosBJ( f+(72*a) ))+15*CosBJ( f+(72*a)-45+(22.5*(b-5*a)) ), y + 80*SinBJ( f+(72*a) )+15*CosBJ( f+(72*a)-45+(22.5*(b-5*a)) ), f+(72*a)-45+(22.5*(b-5*a)))
            call GroupAddUnitSimple( dummy2[b], udg_Groupe[1] )
            set b = b+1           
        endloop
        set a = a+1
    endloop
    loop
        exitwhen t == 9
        set t = t + 1
        call PolledWait(0.01)
    endloop
    set b = 0
    loop
        exitwhen b == 25
        call SetUnitAnimation( dummy2[b], "Death" )
        set b = b+1
    endloop
    call PolledWait(1.0)
    set b = 0
    loop
        exitwhen b == 25
        call GroupRemoveUnitSimple( dummy2[b], udg_Groupe[1] )
        call RemoveUnit(dummy2[b])
        set dummy2[b] = null
        set b = b+1
    endloop
    set a = 0
    loop
        exitwhen a == 5
        call DestroyEffectBJ(AddSpecialEffect( "Abilities\\Spells\\Undead\\RaiseSkeletonWarrior\\RaiseSkeleton.mdl", x + 80*CosBJ( f+(72*a) ), y + 80*SinBJ( f+(72*a) )))
        set a = a+1
    endloop
    call PolledWait(0.25)
    set a = 0
    loop
        exitwhen a == 5
        call RemoveUnit(dummy[a])
        set dummy[a] = null
        set a = a+1
    endloop
    set c = null
endfunction



Et la partie faisant bouger les flammes :
Secret:

Jass:
function Trig_RituelDummyFlamme_Func002A takes nothing returns nothing
    local unit u
    set u = GetEnumUnit()
    call SetUnitUserData( u, GetUnitUserData(u)+5)
    call SetUnitX(u, GetUnitX(u)+ 10*CosBJ(GetUnitFacing(u)))
    call SetUnitY(u, GetUnitY(u)+ 10*SinBJ(GetUnitFacing(u)))
    call SetUnitScalePercent( u, 100+GetUnitUserData(u), 100+GetUnitUserData(u), 100+GetUnitUserData(u) )
    set u = null
endfunction

function Trig_RituelDummyFlamme_Actions takes nothing returns nothing
    call ForGroupBJ( udg_Groupe[1], function Trig_RituelDummyFlamme_Func002A )
endfunction

//===========================================================================
function InitTrig_RituelDummyFlamme takes nothing returns nothing
    set gg_trg_RituelDummyFlamme = CreateTrigger(  )
    call TriggerRegisterTimerEventPeriodic( gg_trg_RituelDummyFlamme, 0.05 )
    call TriggerAddAction( gg_trg_RituelDummyFlamme, function Trig_RituelDummyFlamme_Actions )
endfunction



Les variables udg que j'utilise :
- udg_Groupe[array] (variable groupe unités)

Le lien pour télécharger ma map :
Rituel Démoniaque



Merci D'avance Smile
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 kungfu-sheep
Anomalie floodiforme


Inscrit le: 14 Avr 2011
Messages: 1846
Sujets: 119
Spécialité en worldedit: fonctions paramétriques, équation de mouvement.


MessagePosté le: 22/12/11 19:29    Sujet du message: Citer

tb avait dit que cette section n'était pas réservée à ça.
_________________
22:27:43<Seiraw> Bah y a deux genre de personnes
22:27:57<Seiraw> les soumis et les soumises
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
 Rommstein60
MODÉRATEUR À LA RETRAITE


Inscrit le: 23 Aoû 2007
Messages: 4767
Sujets: 136
Spécialité en worldedit: Keskesapeutfout'
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 23/12/11 01:27    Sujet du message: Citer

Déplacé.
Berk du Jass. En fait j'ai pas vraiment pu analyser ton code vu que je suis sur mon smartphone, mais l'utilisation de boucles me semble être un peu la seule manière d'arriver à tes fins. Je pense pas que tu aies beaucoup de choses à changer, faut voir si d'autres ont leur avis a donner.
_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 23/12/11 18:51    Sujet du message: Citer

@ Rominou : C'est pas avec une action de modération par an que tu garderas ton statut de modérateur huhu.

Regard vraiment à l'arrache, pourquoi le wait dans une boucle alors que la seule action c'est le wait ?!

Pi les PolledWait/TriggerSleepAction saylemal, faut utiliser des timers plutôt (mais la flemme d'expliquer).

Je ne fais pas comme le bon vin, mais la motivation se réduit comme peau de chagrin :/
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Rommstein60
MODÉRATEUR À LA RETRAITE


Inscrit le: 23 Aoû 2007
Messages: 4767
Sujets: 136
Spécialité en worldedit: Keskesapeutfout'
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 23/12/11 22:04    Sujet du message: Citer

Nan mais jore le Troll qui vient tuer tous mes propos juste pour que je revienne dans la communauté !
Ceci dit tu ferais mieux de passer au vJass, j'avoue que ton code serait bien plus propre. Very Happy

_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Ashtabatakete
Ptit Nouveau


Inscrit le: 04 Nov 2011
Messages: 25
Sujets: 2



MessagePosté le: 24/12/11 12:43    Sujet du message: Citer

Ouaip mais justement j'ai pas trouver de tutos sur le vJass et j'ai pas été cherché sur le forum.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Aide sur les déclencheurs Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
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