Posté le: 22/12/11 16:54 Sujet du message: Aidez moi à simplifier ce code
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)
Inscrit le: 23 Aoû 2007 Messages: 4767 Sujets: 136 Spécialité en worldedit: Keskesapeutfout' Médailles: 1 (En savoir plus...)
Posté le: 23/12/11 01:27 Sujet du message:
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 »
Inscrit le: 23 Aoû 2007 Messages: 4767 Sujets: 136 Spécialité en worldedit: Keskesapeutfout' Médailles: 1 (En savoir plus...)
Posté le: 23/12/11 22:04 Sujet du message:
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. _________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
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