Foro especializado en Warcraft III y su editor
 
BuscarEntrar al ChatboxPortal del foroÍndiceSpellsRegistrarseConectarse
Eventos Actuales
¡ Bienvenido Invitado !

Editar Perfil

Tus temas
Tus Mensajes ()

Enlaces rápidos








Comparte
 

 [SNIPPET] IsGroupDestroyed

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
muzk
Peón
muzk


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 40
Reputación Reputación : 4
Monedas de oro : 188
Monedas de Platino : 0 [SNIPPET] IsGroupDestroyed Empty

Inventario :
[SNIPPET] IsGroupDestroyed Empysl10 [SNIPPET] IsGroupDestroyed Empysl10 [SNIPPET] IsGroupDestroyed Empysl10
[SNIPPET] IsGroupDestroyed Empysl10 [SNIPPET] IsGroupDestroyed Empysl10 [SNIPPET] IsGroupDestroyed Empysl10

[SNIPPET] IsGroupDestroyed Empty
Mensaje(#) Tema: [SNIPPET] IsGroupDestroyed [SNIPPET] IsGroupDestroyed Clock10Sáb Abr 11, 2015 4:23 pm

GITHUB: https://github.com/muZk/warcraft3/tree/master/IsGroupDestroyed

Pequeña librería que implementa una función para saber si un grupo está destruido o no.

Para saber si lo está, la librería le agrega una unidad dummy, y si ésta fue agregada, entonces el grupo no está destruído.

Los grupos "null" se consideran destruidos también.

Uso:
[jass]
   local group g = CreateGroup()
   call DestroyGroup(g)
   if IsGroupDestroyed(g) then
       call BJDebugMsg("Sip, lo está!")
   endif
[/jass]

Código (vjass):

[jass]
library IsGroupDestroyed

 globals
   private unit dummy
 endglobals
 
 function IsGroupDestroyed takes group g returns boolean
   if g == null then
     return true
   endif
   call GroupAddUnit(g, dummy)
   if IsUnitInGroup(dummy, g) then
     call GroupRemoveUnit(g, dummy)
     return false
   endif
   return true
 endfunction
 
 private module InitModule
   private static method onInit takes nothing returns nothing
     set dummy = CreateUnit(Player(15), 'hfoo', 0, 0, 0)
     call UnitAddAbility(dummy, 'Aloc')
   endmethod
 endmodule
 
 private struct Init
   implement InitModule
 endstruct

endlibrary
[/jass]
Volver arriba Ir abajo
Trigger.edge

Trigger.edge


Barra de Salud : Este usuario es invulnerable ¿Será que es fiel a las normas?

Mensajes Mensajes : 978
Reputación Reputación : 111
Monedas de oro : 1245
Monedas de Platino : 0 [SNIPPET] IsGroupDestroyed Empty

Inventario :
Cetro del Rey Armadura Mágica Daga Mística
[SNIPPET] IsGroupDestroyed Empysl10 [SNIPPET] IsGroupDestroyed Empysl10 [SNIPPET] IsGroupDestroyed Empysl10

[SNIPPET] IsGroupDestroyed Empty
Mensaje(#) Tema: Re: [SNIPPET] IsGroupDestroyed [SNIPPET] IsGroupDestroyed Clock10Dom Abr 12, 2015 4:05 pm

Duda: No seria mas fácil esto:

[jass]
function IsGroupDestroyed takes group g returns boolean
  return g == null
endfunction
[/jass]


[SNIPPET] IsGroupDestroyed Wc3scr10
Volver arriba Ir abajo
muzk
Peón
muzk


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 40
Reputación Reputación : 4
Monedas de oro : 188
Monedas de Platino : 0 [SNIPPET] IsGroupDestroyed Empty

Inventario :
[SNIPPET] IsGroupDestroyed Empysl10 [SNIPPET] IsGroupDestroyed Empysl10 [SNIPPET] IsGroupDestroyed Empysl10
[SNIPPET] IsGroupDestroyed Empysl10 [SNIPPET] IsGroupDestroyed Empysl10 [SNIPPET] IsGroupDestroyed Empysl10

[SNIPPET] IsGroupDestroyed Empty
Mensaje(#) Tema: Re: [SNIPPET] IsGroupDestroyed [SNIPPET] IsGroupDestroyed Clock10Dom Abr 12, 2015 4:16 pm

Mira este código, ¿qué crees que pasa?
[jass]
local group g = CreateGroup()
call DestroyGroup(g)
if g == null then
call BJDebugMsg("Nope, I will not be executed")
endif
if GetHandleId(g) == 0 then
call BJDebugMsg("Nope, I will not be executed")
endif
if IsGroupDestroyed(g) then
call BJDebugMsg("Yeah, I will be executed!")
endif
[/jass]

Solo pasa esto:
[jass]call BJDebugMsg("Yeah, I will be executed!")[/jass]

La verificación g == null no sirve, de hecho por esa razón GroupUtils falla.
Volver arriba Ir abajo
Trigger.edge

Trigger.edge


Barra de Salud : Este usuario es invulnerable ¿Será que es fiel a las normas?

Mensajes Mensajes : 978
Reputación Reputación : 111
Monedas de oro : 1245
Monedas de Platino : 0 [SNIPPET] IsGroupDestroyed Empty

Inventario :
Cetro del Rey Armadura Mágica Daga Mística
[SNIPPET] IsGroupDestroyed Empysl10 [SNIPPET] IsGroupDestroyed Empysl10 [SNIPPET] IsGroupDestroyed Empysl10

[SNIPPET] IsGroupDestroyed Empty
Mensaje(#) Tema: Re: [SNIPPET] IsGroupDestroyed [SNIPPET] IsGroupDestroyed Clock10Dom Abr 12, 2015 5:46 pm

Ya veo, se crea el grupo y se destruye, pero NO se nullea, por eso IsGroupDestroyed tiene éxito Wink


[SNIPPET] IsGroupDestroyed Wc3scr10
Volver arriba Ir abajo
Contenido patrocinado




[SNIPPET] IsGroupDestroyed Empty
Mensaje(#) Tema: Re: [SNIPPET] IsGroupDestroyed [SNIPPET] IsGroupDestroyed Clock10

Volver arriba Ir abajo
 

[SNIPPET] IsGroupDestroyed

Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.

Permisos de este foro:No puedes responder a temas en este foro.
Warcraft III - WorldEditor :: Aportes :: Librerías-