Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
Max Floodeur prématuré
Inscrit le: 13 Jan 2009 Messages: 550 Sujets: 47 Spécialité en worldedit: La partie déclencheurs sauf le GUI.
|
Posté le: 21/07/09 19:49 Sujet du message: objet supprimé mais pas handle, que reste-t-il ? |
|
|
Je viens de découvrir un bug bizarre. Voici mon déclo de test :
Jass: | function Trig_recreer_heros_Actions takes nothing returns nothing
local real x = GetUnitX(udg_hero_j[0])
local real y = GetUnitY(udg_hero_j[0])
call RemoveUnit(udg_hero_j[0])
//set udg_hero_j[0] = null
set udg_hero_j[0] = CreateUnit(Player(0), GetUnitTypeId(udg_hero_j[0]), x, y, 0.)
endfunction
//===========================================================================
function InitTrig_recreer_heros takes nothing returns nothing
set gg_trg_recreer_heros = CreateTrigger( )
call TriggerRegisterPlayerEventEndCinematic( gg_trg_recreer_heros, Player(0) )
call TriggerAddAction( gg_trg_recreer_heros, function Trig_recreer_heros_Actions )
endfunction |
Avec la ligne "set udg_hero_j[0] = null", le héros n'est pas recréé.
Sans, le héros est recréé, ce qui veut dire que malgré que l'unité soit détruite, on peut toujours récupérer son type. Etonnant ^^.
edit : faux -> Je pense que c'est le même bug que pour les structs, les données non objets sont toujours accessibles. Ici le type de l'unité serait un entier faisant partie de l'objet de type unité, et ayant une place bien précise, ce qui permettrait d'y accéder encore après sa suppression (tant qu'on a un pointeur sur son handle).
Enfin bref, c'est un bug. Je me demande si on peut l'exploiter pour ne pas avoir à stocker le type de l'unité dans une variable intermédiaire. Autrement dit, ce bug ne risque-t-il pas d'être corrigé par blizzard dans le futur ? _________________
Dernière édition par Max le 21/07/09 20:05; édité 1 fois |
|
Revenir en haut |
|
|
Troll-Brain Ri1kamoua
Inscrit le: 23 Aoû 2007 Messages: 7143 Sujets: 147 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance Médailles: 2 (En savoir plus...)
|
|
Revenir en haut |
|
|
Max Floodeur prématuré
Inscrit le: 13 Jan 2009 Messages: 550 Sujets: 47 Spécialité en worldedit: La partie déclencheurs sauf le GUI.
|
Posté le: 21/07/09 20:04 Sujet du message: |
|
|
Ah ouais j'avais pas pensé du tout à ça lol.
Pourquoi "dans la période actuelle" ? _________________
|
|
Revenir en haut |
|
|
Troll-Brain Ri1kamoua
Inscrit le: 23 Aoû 2007 Messages: 7143 Sujets: 147 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance Médailles: 2 (En savoir plus...)
|
Posté le: 21/07/09 20:41 Sujet du message: |
|
|
Max a écrit: | Pourquoi "dans la période actuelle" ? |
Parce qu'ils sortent un nouveau patch et fixent le return bug ?
De là à faire semblant de croire qu'ils en profiteront pour résoudre les bugs connus, il n'y a qu'un pas.
Et puis de manière générale s'appuyer sur un bug peut rendre la map défaillante par la suite si le bug est corrigé ultérieurement, le return bug est vraiment à part, sans lui bien des choses seraient impossibles, et le mapping sur war3 serait bien limité.
Blizzard a bien compris son utilité et propose une fonction native H2I.
Las autres bugs ont des exploitations bien mineures et ne sont pas indispensables, voir tout simplement inutiles. (comme un vrai bug quoi :p). _________________
|
|
Revenir en haut |
|
|
Max Floodeur prématuré
Inscrit le: 13 Jan 2009 Messages: 550 Sujets: 47 Spécialité en worldedit: La partie déclencheurs sauf le GUI.
|
Posté le: 21/07/09 20:45 Sujet du message: |
|
|
OK d'accord _________________
|
|
Revenir en haut |
|
|
|