DJ-JB Membre actif
Inscrit le: 29 Oct 2007 Messages: 147 Sujets: 23
|
Posté le: 31/10/07 17:21 Sujet du message: Probléme de code (JASS) |
|
|
Bonjour à tous,
Voilà je me suis mis au JASS il y a peu de temps(1 jour où j'écris se message) et j'ai commençé a faire un petit sort.
Le sort est simple, l'unité doit tout simplement tourner sur lui même mais voilà, mon probléme est que le hero tourne beaucoup trop lentement qu'a la normal.
Voiçi mon code.
Jass: | function Trig_SRANGER_01_Epee_tournoyant_Actions takes nothing returns nothing
local real angle
local real i
set i = 0
set angle = GetUnitFacing(GetTriggerUnit())
loop
exitwhen(i == 360)
set i= i + 1.00
call SetUnitFacing(GetTriggerUnit(), angle + i)
call TriggerSleepAction(0.01)
endloop
call DisplayTextToForce( GetPlayersAll(), R2S(i))
endfunction
function Trig_ConditionSort_Conditions takes nothing returns boolean
if(GetSpellAbilityId() == 'A000') then
return true
endif
return false
endfunction
///////////////////////////////////////////////////////////////////////////////////
function InitTrig_SRANGER_01_Epee_tournoyant takes nothing returns nothing
set gg_trg_SRANGER_01_Epee_tournoyant = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_SRANGER_01_Epee_tournoyant, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddCondition( gg_trg_SRANGER_01_Epee_tournoyant, Condition(function Trig_ConditionSort_Conditions))
call TriggerAddAction( gg_trg_SRANGER_01_Epee_tournoyant, function Trig_SRANGER_01_Epee_tournoyant_Actions )
endfunction
|
Je lui est dit t'attendre 0.01 seconde par pulsion de boucle, au lieu de ça il attend beaucoup trop lentement.
Pourquoi il fait ça et comment réglé le probléme ?
Merçi d'avance _________________
|
|
Brissou de Mourièssou Créateur de sorts, depuis 1936.
Inscrit le: 30 Aoû 2007 Messages: 1510 Sujets: 26 Spécialité en worldedit: Développer des jeux vidéos pour le fun, donc world edit c'est comme faire une addition. Médailles: 2 (En savoir plus...)
|
Posté le: 31/10/07 17:55 Sujet du message: |
|
|
C'est parce que le TriggerSleepAction est très imprécis et sa valeur vaut au minium dans les 0.1 secondes (peut varier)
Pour obtenir quelque chose de très précis (<0.1) il faut utiliser les timer.
Tout d'abord il te faudra connaître cette technique:
Rustinage au game cache
Et voilà un exemple d'application de la méthode précédente:
Sort de poison en Jass avec GameCache
Si t'as compris l'exemple d'application tu pourras facilement créer le sort que tu souhaites réaliser. _________________
|
|