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=89d4efe1ca44dc5cdcc6d98116140de5Mé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

Le Marché aux Bugs
Aller à la page Précédente  1, 2, 3, 4, 5, 6  Suivante
 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Autre
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7142
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: 13/11/10 17:30    Sujet du message: Citer

J'admets que ma phrase est ambigüe, mais tu remarqueras que j'ai bien aussi utilisé l'event "point pour cible".
De plus quand on pause une unité non déjà en pause/assommée, c'est bien cet event qui est déclenché, "objet pour cible" c'est quand l'unité est assommée par un widget.

Je suis d'accord avec toi pour le current order et pause, par contre c'est bien quand on pause l'unité qu'elle reçoit l'ordre spécial 851973, et le fait de donner un ordre pendant la pause de l'unit annule l'ordre qu'elle avait reçu avant, y'a pas de boucle.

Reregardes le trigger, testes le tu verras de quoi je parles.
Tu peux même t'amuser à essayer de mesurer le délai entre l'ordre donné et l'ordre reçu.
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7142
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: 08/08/11 13:51    Sujet du message: Citer

Pour en revenir au sujet, j'ai toujours oublié ou eu la flemme d'exposer cette théorie :

Les ordres sans cible ne semblent pas immédiat, du moins avec certains events. (un comble quand même "immediate order")

Je crois me rappeler par ex avoir fait un trigger avec pour event une unité reçoit un ordre sans cible -> turn off trigger / order "stop" / turn on trigger, mais à ma grande surprise la désactivation du trigger ne suffisait pas, en effet l'ordre avait un petit délai avant de déclencher à nouveau l'event, lorsqu'il se déclenchait le trigger était déjà réactivé.

Cela expliquerait pas mal de choses, je t'encourage à faire des tests poussés, mais si t'as la flemme je le ferais probablement en septembre.
Si cela s'avère être plus qu'une théorie, c'est à dire un fait établi tu pourras bien entendu revendiquer en être le découvreur sur n'importe quel site.
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Vladadamm
Floodozaurus


Inscrit le: 11 Fév 2011
Messages: 2151
Sujets: 114
Spécialité en worldedit: Chasser le Dragon, puis l'exterminer proprement avec une petite cuillère et une poêle.


MessagePosté le: 08/08/11 13:55    Sujet du message: Citer

Cela ne se passe pas que pour ça.

Gui:
Trigger:
Aura Pieuse
Collapse Evénements
Unité - A unit Est attaqué
Collapse Conditions
((Attacked unit) has an item of type Anneau du Paladin) Egal à  TRUE
Collapse Actions
Set AdP_Aura_Group = (Units within 250.00 of (Position of (Attacked unit)) matching (((Owner of (Matching unit)) is an ally of (Owner of (Attacked unit))) Egal à  TRUE))
Collapse For each (Integer A) from 1 to (Number of units in AdP_Aura_Group), do (Actions)
Collapse Boucle - Actions
Set AdP_Aura_boucle_random = (Random unit from AdP_Aura_Group)
Unité - Cause (Triggering unit) to damage AdP_Aura_boucle_random, dealing -2.00 damage of attack type Sorts and damage type Divin
Collapse Groupe unité - Remove AdP_Aura_boucle_random from AdP_Aura_Group

Bizarrement il y a un delay d'environ 0,5 secondes avant que le heal se produise.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


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

MessagePosté le: 08/08/11 14:00    Sujet du message: Citer

Mouai, je suis très très très sceptique c'est probablement l'impression que tu as.

C'est assez simple à vérifier, il suffit d'afficher la vie de l'unit juste avant et après le damage (en partant du principe que sa vie n'était pas au maximum)
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Vladadamm
Floodozaurus


Inscrit le: 11 Fév 2011
Messages: 2151
Sujets: 114
Spécialité en worldedit: Chasser le Dragon, puis l'exterminer proprement avec une petite cuillère et une poêle.


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

Bon, on a un héros avec l'item. On le nomme X.
Il va fighter un creep qui possède une attaque instantané et qu'on nomme Y.

Donc Y attaque X.
X va perdre de la vie dû aux dommages de l'attaque.
Environ 0,5secondes plus tard, X régénère 2hp grâce à cette aura.

Si tu ne me crois pas, test ma map (BotEF) et achète toi l'Anneau du Paladin (2anneaux de protection + 1 anneau de régénération), puis pars te faire attaquer par un creep.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7142
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: 08/08/11 14:08    Sujet du message: Citer

Teuh teuh teuh fait le test que je te dis, et si c'est comme je le pense alors cela reste une simple impression, cela viendrait de l'event en lui même, c'est à dire au moment où l'event "attaque" se déclenche.
Ou peut être du temps de rafraîchissement de la barre de vie de l'unit, un peu comme pour la barre d'xp.

(et contrairement à toi ce n'est pas chiant à tester, juste un display text à ajouter, puis copier/coller)
_________________
Le violet, c'est moche.
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: 08/08/11 14:28    Sujet du message: Citer

Non mais l'event de Vladadamm est "A unit est attaqué", c'est normal :
1) X est attaqué mais est full hp.
2) X subit des dommages.
3) X est attaqué une seconde fois et régénère 2 hp.

C'est normal qu'il y ait un delay entre chaque étape. Ça dépend des "attack points/backswing point/cooldown".

Je testerais le delay des ordres. Ça pourrait en effet expliquer des choses. Merci Troll-Brain.
_________________
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é
 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: 13/08/11 15:55    Sujet du message: Citer

Hum, voilà le résultat de mes tests :
jass :
Secret:

Jass:
globals
    timer theTimer
    unit theUnit
endglobals

function TestThird takes nothing returns nothing
    call BJDebugMsg("order : "+OrderId2String(GetIssuedOrderId()))
    call BJDebugMsg("time : "+R2S(TimerGetElapsed(theTimer)))
endfunction

function TestSecond takes nothing returns nothing
    call BJDebugMsg("1")
    call PauseUnit(theUnit,true)
    call IssueImmediateOrder(theUnit,"stop")
    call PauseUnit(theUnit,false)
    call BJDebugMsg("2")
    call TimerStart(theTimer,10,false,null)
endfunction

function TestFirst takes nothing returns nothing
    local trigger t=CreateTrigger()
    set theTimer=CreateTimer()
    set theUnit=CreateUnit(Player(0),'hfoo',0,0,0)
    call TimerStart(CreateTimer(),2,false,function TestSecond)
    call TriggerRegisterUnitEvent(t,theUnit,EVENT_UNIT_ISSUED_ORDER)
    call TriggerRegisterUnitEvent(t,theUnit,EVENT_UNIT_ISSUED_POINT_ORDER)
    call TriggerRegisterUnitEvent(t,theUnit,EVENT_UNIT_ISSUED_TARGET_ORDER)
    call TriggerAddAction(t,function TestThird)
endfunction



résultats :
1er test :
Secret:

1
order :
timer : 0.000
2
order : stop
timer : 0.010


En utilisant un ordre ciblé (move) :
Secret:

1
order :
timer : 0.000
2


En retirant le pause/unpause :
Secret:

1
order : stop
timer : 0.000
2


Sans mettre d'ordre :
Secret:

1
order :
timer : 0.000
2



Petites précisions :
- "order : " est sans aucun doute l'ordre de mis en pause.
- on a les mêmes résultats avec un Paladin ou un Infestation (la mouche qui a 'Aloc').
- on a les mêmes résultats avec "holdposition".

Conclusions :
Les ordres ciblés ne sont pas pris en compte lorsque l'unité est pausée par déclencheur.
Les ordres sans cible sont immédiats en temps normal.
Les ordres sans cible donnés par déclencheur à une unité pausée ne sont effectifs qu'avec un delay de 0.01 seconde après la démise en pause.

EDIT : Rajout de tests en utilisant "thunderbolt" pour mettre en pause et "UnitRemoveAbility(buff)" pour enlever la pause :
On a les mêmes résultats (delay de 0.01 seconde) mais les ordres ciblés ne sont pas ignorés cette fois (ils ont donc le même delay après avoir enlevé le buff).
L'ordre "donné" avec un delay est le dernier à avoir été "donné" pendant la pause (logique).

Il faut encore que je réfléchisse à comment ça s’imbrique dans le bug des "réponses évènements". Le pire, selon moi, c'est qu'on peut pas utiliser de "timer(0)" dans ce cas.
_________________
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é
 Troll-Brain
Ri1kamoua


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

MessagePosté le: 13/08/11 18:17    Sujet du message: Citer

J'ai moi même procédé à quelques tests, le but était de savoir si aucun type ordre n'avait de delai avec tous les type d'order event, j'ai donc conçu un test exhaustif.

Constat :

Visiblement aucun délai, je m'en suis assuré avec le turn off/on trigger qui fonctionne comme prévu pour les 9 combinaisons possibles (type d'order event / type d'ordre donné au déclenchement de l'event).
Mais l'ordre sans cible "stop" n'a aucun effet, du moins avec les ordres que j'ai essayé (holdposition,move,smart).
Pour une raison inconnue (pour le fun probablement ...) il stoppe toutefois l'ordre point "patrol" (tu peux faire l'essai en remplaçant l'ordre move par patrol dans la fonction Test), d'ailleurs je n'ai pas essayé d'afficher le current order mais dans ce cas précis aucun ordre n'est sélectionné dans l'interface de l'unité, je veux dire l'ordre stop n'est pas sélectionné.

Donc d'après ce que tu me dis ça serait plus probablement la pause et/ou la reprise qui ne serait pas instantanés plutôt que les ordres en eux mêmes.

Au fait utiliser SetUnitPosition génère un ordre stop (ou 851973 je ne sais plus), j'ai toujours cru que cela générait un ordre stop que si l'on faisait plusieurs fois dans des intervalles courts, étant donné que si l'on ne le fait qu'une fois cela ne stoppait pas forcément l'ordre en cours, mais vu ce que j'ai testé avec l'ordre stop mon erreur est compréhensible.

Toutefois je pense que la solution du Timer(0) fonctionne très bien, la valeur que tu affiches (0.01) vient plus probablement de l'imprécision du TimerGetElapsed (ou du timer en lui même, ce sujet est flou pour moi), pour t'en assurer tu peux faire comme moi utiliser un timer 0 et afficher son expiration.
Mais dans certains cas le timer(0) ne suffit pas, il faut impérativement pause l'unité, je pense notamment à si tu veux empêcher d'apprendre une compétence à une unité depuis la sélection du héros.


Jass:
ibrary Test initializer init



globals

    private unit U

    private player P

    private unit Target

    private string TestToDo

    private boolean DoTheTest = true

    private string array ORDER_EVENT

endglobals



private function TimerExpire takes nothing returns nothing

    call BJDebugMsg("timer expire")

endfunction



private function DisplayOrders takes nothing returns nothing

    local integer id = GetIssuedOrderId()

    local eventid evd = GetTriggerEventId()

   

    call BJDebugMsg(" ")

    call BJDebugMsg(ORDER_EVENT[GetHandleId(evd)])

    call BJDebugMsg("order == " + I2S(id) + " / " + OrderId2String(id) )

    if evd == EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER then

        call BJDebugMsg("target X/Y == " + R2S(GetOrderPointX()) + " / " + R2S(GetOrderPointY()) )

    endif

    call TimerStart(CreateTimer(),0,false,function TimerExpire)

   

    //call DisableTrigger(GetTriggeringTrigger())

    if DoTheTest then

        call BJDebugMsg("je vais donner l'ordre " + TestToDo + " pendant le déclenchement de cet event")

        set DoTheTest = false

       

        if TestToDo == "stop" then

            call IssueImmediateOrder(U,"stop")

        elseif TestToDo == "move" then

            call IssuePointOrder(U,"move",-1337,-1337)

        elseif TestToDo == "attack" then

            call IssueTargetOrder(U,"attack",Target)

        endif

       

    endif

    //call EnableTrigger(GetTriggeringTrigger())

endfunction



private function Test takes nothing returns nothing

    set TestToDo = GetEventPlayerChatString()

   

    if TestToDo == "clear" then

        call ClearTextMessages()

        return

    endif

   

    call SetUnitX(U,0)

    call SetUnitY(U,0)

    call IssueImmediateOrder(U,"holdposition")

    call TriggerSleepAction(10.)

    call BJDebugMsg(" ")

    call BJDebugMsg("--------------------------------------------")

    call BJDebugMsg(" ")

   

   

    call SetUnitX(U,0)

    call SetUnitY(U,0)

    set DoTheTest = true

    call IssuePointOrder(U,"move",1337,1337)

    call TriggerSleepAction(10.)

    call BJDebugMsg(" ")

    call BJDebugMsg("--------------------------------------------")

    call BJDebugMsg(" ")

   

    call SetUnitX(U,0)

    call SetUnitY(U,0)

    set DoTheTest = true

    call IssueTargetOrder(U,"smart",Target)

   

endfunction



private function init takes nothing returns nothing

    local trigger trig = CreateTrigger()

    set P = GetLocalPlayer()

    set U = CreateUnit(P,'hpea',0,0,0)

    set Target = CreateUnit(P,'Hpal',1337,1337,0)

    call TriggerRegisterAnyUnitEventBJ(trig,EVENT_PLAYER_UNIT_ISSUED_ORDER)

    call TriggerRegisterAnyUnitEventBJ(trig,EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER)

    call TriggerRegisterAnyUnitEventBJ(trig,EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER)

    call TriggerAddAction(trig,function DisplayOrders)

    set trig = CreateTrigger()

    call TriggerRegisterPlayerChatEvent(trig,P,"stop",true)

    call TriggerRegisterPlayerChatEvent(trig,P,"move",true)

    call TriggerRegisterPlayerChatEvent(trig,P,"attack",true)

    call TriggerRegisterPlayerChatEvent(trig,P,"clear",true) // effacer les messages de la chatbox

    call TriggerAddAction(trig,function Test)

    set ORDER_EVENT[GetHandleId(EVENT_PLAYER_UNIT_ISSUED_ORDER)]="EVENT_PLAYER_UNIT_ISSUED_ORDER"

    set ORDER_EVENT[GetHandleId(EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER)]="EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER"

    set ORDER_EVENT[GetHandleId(EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER)]="EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER"

    call SelectUnit(U,true)

    call PanCameraToTimed(0,0,0)

endfunction



endlibrary


HS : Je n'ai pas mis autant de saut de lignes c'est Jasshelper qui fait cela, j'ai récupéré ce code dans le imputwar3map.j du sous dossier logs du JNGP.
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7142
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: 18/08/11 22:22    Sujet du message: Citer

Je ne sais pas si tu t'intéresses aux bugs dédiés au GUI, mais en voici un dont je me suis rappelé récemment :

http://www.wc3c.net/showthread.php?t=107238

Ici il s'agit d'une erreur de logique de la part de Blizzou, il faut suivre le déroulement de l'appels des fonctions du GUI pour comprendre le bug.

Je ne sais pas si cela bug avec d'autres pick every, mais j'en ai jamais entendu parlé ni expérimenté, cela dit ça fait des années que je n'ai pas touché au GUI et ce bug est très peu connu, en effet la plupart assument que l'utilisation du booléen "bj_wantDestroyGroup" a été bien pensé (les fous ^^ :p)
_________________
Le violet, c'est moche.
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: 25/08/11 12:00    Sujet du message: Citer

Bof. Je suis pas contre mettre des bugs GUI, mais un bug GUI qui utilise des custom scripts, c'est limite. D'autant plus qu'on ne donne pas souvent cette méthode pour éviter les leaks : on préfère la solution classique (à la limite, ça aurait sa place comme remarque dans le tuto sur les leaks).

Après, pour l'autre bug, le delay est bien réel et les timers sont très précis (3ème décimale au moins). On peut vraiment pas utiliser de timer(0) dans ce genre là :
Secret:

Jass:
function RenableTrigger
    call EnableTrigger( theTrigger )
endfunction

function theTriggerFunctionWithIssuedOrderEvent
    call DisableTrigger( theTrigger )
    call PauseUnit( u, true )
    call IssueImmediateOrder(theUnit,"stop")
    call PauseUnit( u, false )
    call TimerStart( theTimer, 0, false, function RenableTrigger )
endfunction


Par contre on peut tout à fait utiliser un timer(0) pour éviter le bug comme ça (et donner un ordre effectif) :
Secret:

Jass:
function OrderStop
    call IssueImmediateOrder(theUnit,"stop")
    call EnableTrigger( theTrigger )
endfunction

function theTriggerFunctionWithIssuedOrderEvent
    call DisableTrigger( theTrigger )
    call TimerStart( theTimer, 0, false, function OrderStop )
endfunction



À propos de la précision du timer et du "GetElapsed", on peut récupérer le casting time d'une unité (3 décimales au moins, donc) avec un code de ce genre :
Secret:

Jass:
function TestSecond takes nothing returns nothing
    if check then
        call BJDebugMsg(R2S(TimerGetElapsed(theTimer)))
    else
        call TimerStart(theTimer,10,false,null)
    endif
    set check=not check
endfunction

function test takes nothing returns nothing
    local trigger t=CreateTrigger()
    local unit u=CreateUnit(Player(0),'Udea',-8300,1700,0)
    set check = false
    call TriggerRegisterUnitEvent(t,u,EVENT_UNIT_SPELL_CAST)
    call TriggerRegisterUnitEvent(t,u,EVENT_UNIT_SPELL_EFFECT)
    call TriggerAddAction(t,function TestSecond)
endfunction


Donc c'est précis pour mesurer le "temps warcraft III" (après je sais pas si c'est précis en comparant avec une montre réelle mais bon...).
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


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

MessagePosté le: 25/08/11 19:48    Sujet du message: Citer

Tirlititi a écrit:
Bof. Je suis pas contre mettre des bugs GUI, mais un bug GUI qui utilise des custom scripts, c'est limite. D'autant plus qu'on ne donne pas souvent cette méthode pour éviter les leaks : on préfère la solution classique (à la limite, ça aurait sa place comme remarque dans le tuto sur les leaks).


C'est toi qui voit, je croyais juste que tu étais plus "open" que moi ^^
Par contre détrompe toi c'est la solution privilégiée donnée pour ceux qui font la chasse aux leaks en GUI, l'alternative étant aussi d'utiliser un custom script avec DestroyGroup mais il faut en plus utiliser une variable groupe et l'utiliser correctement dans le custom script (moins friendly user).
En fait ce bug est très peu connu, probablement à cause de la relative utilité de "pick every unit of type".
Et comme plusieurs autres (la plupart ?) variables bj_, elles n'a d'utilité que pour les fonctions GUI de groupe "pick every".
Comme tu le sais les customs scripts sont monnaies courantes en GUI, les fonctions de destructions d'handle étant majoritairement indisponibles en GUI.

Pour les timers je quote plus ou moins Vexorian, l'imprécision deviendrait "significative" avec des durées de timer longue, m'enfin ...
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


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

MessagePosté le: 12/01/12 17:20    Sujet du message: Citer

Tirlititi a écrit:
SyncSelections synchronise immédiatement la sélection


M'étonnerait beaucoup que cela soit immédiat, ca devrait plutôt agir à la façon d'un wait, comme les autres fonctions natives Sync liés au gamecache, faudrait tester avec un timer.

Le temps de sélection varie, et est dépendant du type de partie (en solo ou en réseau).
Après je ne sais pas si on peut le faire varier avec des logiciels tiers appelés "réducteurs de delay", mais je suppose que oui.
_________________
Le violet, c'est moche.
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: 13/01/12 18:00    Sujet du message: Citer

En effet, y'a un temps d'attente sensiblement égal à TriggerSleepAction(0) et on ne peut pas l'utiliser autre part que dans une action de déclencheur. Moi qui pensait que c'était une bonne petite fonction...

Je m'en vais éditer ça.

EDIT : enlevé la partie nawak de mon post.
_________________
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é
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7142
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: 13/01/12 20:26    Sujet du message: Citer

En fait en y réfléchissant, je ne considérerais pas vraiment cela comme un bogue.
Qu'une sélection/dé-sélection n'est pas quelque chose instantané doit avoir une raison, ce n'est pas un bug en soi.
Maintenant le comportement de IsUnitSelected est litigieux, mais en fait ça me semble logique pour éviter de resélectionner/déselectionner une unité qui allait l'être.

Toutefois je suppose que ça vaut le coup de le garder car on m'a encore tout récemment demander de déboguer le cas de récursivité infinie avec delay, que tu illustres.
_________________
Le violet, c'est moche.
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 -> Autre Toutes les heures sont au format GMT + 1 Heure
Aller à la page Précédente  1, 2, 3, 4, 5, 6  Suivante
Page 5 sur 6

 
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