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

Editar Perfil

Tus temas
Tus Mensajes ()

Enlaces rápidos








Comparte | .
 

 MUI (utilidad para GUI)

Ver el tema anterior Ver el tema siguiente Ir abajo 
Ir a la página : 1, 2  Siguiente
AutorMensaje
Ruke

avatar


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

Mensajes Mensajes : 298
Reputación Reputación : 63
Monedas de oro : 1677
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: MUI (utilidad para GUI) Sáb Sep 28, 2013 9:29 pm

Muy buenas a todos. Esta vez vengo con una utilidad única y exclusivamente para los usuarios de GUI (sorry jassers :c) que creo, les va a encantar.

Se sabe bien que hacer habilidades MUI en jass no cuesta tanto como en GUI. Cuando digo costar, me refiero a que en GUI, es un proceso engorroso y llevadero de tiempo, en el que antes de empezar verdaderamente con nuestra habilidad, tenemos que repetir los mismos tediosos pasos para que la misma sea MUI.

Algunos recurren a la técnica con arrays; otros mas aguerridos, optan por hashtable; y otros un tanto mas desesperados, usan waits con locales (wtf, seriously?). Todas estas formas funcionan bien, el problema está en que hay muchos pasos repetidos y cuando estamos en el proceso del desarrollo, cuesta mucho mantener (menos en el uso de waits, que medianamente safa, pero, cmom, ¡usa waits! >: o).

Así que, ¿qué pasaría si creamos otra forma de hacer habilidades MUI con un poco de magia negra ingenio?.

Esto es justamente lo que estoy presentando. Una nueva, ordenada, elegante y extremadamente fácil, forma de hacer habilidades GUI sin necesidad de jass new gen pack (es decir, funciona inclusive con el editor comunacho de toda la vida).

Veamos uno ejemplo. Una típica habilidad de quemado de esas que tanto me gustan c:

[gui]
Burning
   Events
       Unit - A unit Starts the effect of an ability
   Conditions
       (Ability being cast) Equal to Burning
   Actions
       Set set_unit[1] = (Triggering unit)
       Set set_unit[2] = (Target unit of ability being cast)
       Set used_units = 2
       -------- ------------------------------------------------------------------------------------------ --------
       Set set_real[1] = 5.00
       Set used_reals = 1
       -------- ------------------------------------------------------------------------------------------ --------
       Special Effect - Create a special effect attached to the chest of (Target unit of ability being cast) using Abilities\Spells\Human\FlameStrike\FlameStrikeEmbers.mdl
       Set set_effect[1] = (Last created special effect)
       Set used_effects = 1
       -------- ------------------------------------------------------------------------------------------ --------
       Set trigger = BurningPeriodic
       Set timeout = 1.00
[/gui]

Y ahora el detonador periódico (ese que "se ejecuta varias veces"):

[gui]
BurningPeriodic
   Events
   Conditions
   Actions
       -------- Paso un segundo, asi que actualizamos --------
       Set get_real[1] = (get_real[1] - 1.00)
       -------- ------------------------------------------------------------------------------------------ --------
       If (All Conditions are True) then do (Then Actions) else do (Else Actions)
           If - Conditions
               get_real[1] Greater than 0.00
           Then - Actions
               -------- Si todavia hay tiempo, actualizamos --------
               Unit - Cause get_unit[1] to damage get_unit[2], dealing 10.00 damage of attack type Spells and damage type Normal
           Else - Actions
               -------- Se acabo el tiempo, finalizar --------
               -------- Automaticamente remover leaks, like a boss --------
               Set automaticClean = True
               Set finish = True
[/gui]

Sweet, isn't?.

Sin necesidad de loops (técnica de array), sin necesidad de que tengamos que cargar desde hashtable (técnica hashtable) y sin, por supuesto, feos/pecaminosos waits cheers . Esto permite al usuario final (vos), concentrarse completamente en su habilidad Smile. Ya no deberás preocuparte de si tu habilidad es MUI, porque si usas esta utilidad, lo será Wink.

Para probarlo, simplemente descarguen el mapa de ejemplo:


Mapa de ejemplo: hiveworkshop


¿Cómo funciona?
De manera muy similar a la técnica de array y hashtable, solo que escondiendo el proceso del usuario final y haciéndolo mas amigable y fácil de trabajar.

¿Es eficiente?
Si realmente me preguntas esto, te dire: go home Invitado, you're drunk.

¿Me explicas un poco mas cómo hago para guardar cosas?
El funcionamiento es simple.

Primero, necesitamos algo para guardar. Digamos que queremos guardar un caster:

[gui]Set set_unit[1] = (Triggering unit)[/gui]

Fijate que cuando estamos guardando algo, tenemos que usar las variables set_x (donde x es el tipo de información a guardar).

Después de guardar algo, tenemos que decirle a la utilidad, cuánto espacio usamos. Así que, si guardamos una unidad, decimos:

[gui]Set used_units = 1[/gui]

Si usamos 2, decimos 2, etc..


Cuando queramos obtener la información que guardamos, usamos las variables get_x (donde x es el tipo, igual que set_x).

Si guarde esto:

[gui]Set set_unit[1] = (Triggering unit)
Set set_unit[2] = (Target unit of ability being cast)
Set used_units = 2[/gui]

Para acceder a (Triggering unit), solamente tenemos que hacer uso de get_unit[1]. Para acceder a (Target unit of ...) usamos get_unit[2], ¿se entiende?. Depende del orden en el que guardamos.

Lo mismo para las otras variables (real, integer, etc.).

¿Qué es la variable trigger?
La variable trigger es usada por esta utilidad para saber qué trigger ejecutar cuando el timer expira. Antes de que le des valor a la variable timeout, debes darle valor a la variable trigger.

¿Qué es la variable timeout?
Cuando le des valor a la variable timeout (es decir Set timeout = x) comenzará a correr un timer con el timeout en timeout (dah!). Cuando el timer expire, se ejecutará el trigger que asignaste (ver variable trigger).

Importante: Dale valor a timeout al final del trigger.

¿Qué es automaticClean?
Si no queres preocuparte de los leaks, cuando termines tu habilidad, solamente asigna true a automaticClean. Si automaticClean está en true, esta utilidad se encargará de los leaks por vos Smile.

¿Qué es finish?
Asigna true a finish (Set finish = true) cuando quieras terminar el spell.

¿Puedo usar las variables llamadas mui_x?
Por favor no, esas variables son utilizadas por esta utilidad.

Cualquier bug, por favor reportar Wink.

Saludos.


Última edición por Sauron el Vie Oct 04, 2013 10:12 pm, editado 7 veces
Volver arriba Ir abajo
ChatiSnake
Capitán
avatar


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

Mensajes Mensajes : 154
Reputación Reputación : 76
Monedas de oro : 1135
Monedas de Platino : 0

Inventario :
Espada de los muertos


Mensaje(#) Tema: Re: MUI (utilidad para GUI) Sáb Sep 28, 2013 10:50 pm

Se ve muy bueno. Es interesante al fin y al cabo es lo mismo pero mas amigable. Es decir crear una base y a traves deesa crear varios mui.

Quizas falta explicar para hacer mas funciones y explicar a alguien que no sepa nada de MUI, ya que ellos son los qe mas necesitan esto.

+REP


--- PRÓXIMAMENTE GGIV - CRY OF IMMORTALS ---


Esperemos el día en que
no se derrame más sangre
Volver arriba Ir abajo
Ruke

avatar


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

Mensajes Mensajes : 298
Reputación Reputación : 63
Monedas de oro : 1677
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: MUI (utilidad para GUI) Sáb Sep 28, 2013 11:09 pm

@ChatiSnake escribió:
Se ve muy bueno. Es interesante al fin y al cabo es lo mismo pero mas amigable.  Es decir crear una base y a traves deesa crear varios mui.

Quizas falta explicar para hacer mas funciones y explicar a alguien que no sepa nada de MUI, ya que ellos son los qe mas necesitan esto.

+REP
Pasa que acá estoy presentando la utilidad, habría que hacer un tutorial aparte.
Volver arriba Ir abajo
Adram

avatar


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

Mensajes Mensajes : 251
Reputación Reputación : 28
Monedas de oro : 518
Monedas de Platino : 0

Inventario :
Armadura de Plata
Gema de la visión verdadera

Mensaje(#) Tema: Re: MUI (utilidad para GUI) Sáb Sep 28, 2013 11:22 pm

@Sauron escribió:


¿Es eficiente?
Si realmente me preguntas esto, te dire: go home Adram, you're drunk.
 


...ja....ja........................ja. e_e
Volver arriba Ir abajo
Napo
Capitán


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

Mensajes Mensajes : 135
Reputación Reputación : 15
Monedas de oro : 444
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: MUI (utilidad para GUI) Sáb Sep 28, 2013 11:31 pm

Esta librería esta excelente cheers  

Me pondre a estudiarla y antes que nada te daré +rep por el aporte Very Happy
Volver arriba Ir abajo
XxDarkneosxX
Capitán
avatar


Barra de Salud : Su salud está al 80% - Este usuario ha recibido una infracción

Mensajes Mensajes : 160
Reputación Reputación : 19
Monedas de oro : 169
Monedas de Platino : 10

Inventario :

Vino rojo

Mensaje(#) Tema: Re: MUI (utilidad para GUI) Sáb Sep 28, 2013 11:46 pm

¿Es eficiente?
Si realmente me preguntas esto, te dire: go home XxDarkneosxX, you're drunk.


Me vengare por eso lord sauron e_e
Volver arriba Ir abajo
Ruke

avatar


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

Mensajes Mensajes : 298
Reputación Reputación : 63
Monedas de oro : 1677
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: MUI (utilidad para GUI) Sáb Sep 28, 2013 11:52 pm

everybody is drunk jum 
Volver arriba Ir abajo
ChatiSnake
Capitán
avatar


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

Mensajes Mensajes : 154
Reputación Reputación : 76
Monedas de oro : 1135
Monedas de Platino : 0

Inventario :
Espada de los muertos


Mensaje(#) Tema: Re: MUI (utilidad para GUI) Dom Sep 29, 2013 9:48 am

Jajaja usar variables de nuestros nombres es una trampa D:


--- PRÓXIMAMENTE GGIV - CRY OF IMMORTALS ---


Esperemos el día en que
no se derrame más sangre
Volver arriba Ir abajo
Marcos_M

avatar


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

Mensajes Mensajes : 3062
Reputación Reputación : 511
Monedas de oro : 9495
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: MUI (utilidad para GUI) Dom Sep 29, 2013 1:21 pm

La forma más simple y fácil de aprender a hacer MUI en GUI xD

Solo falta hacer tutorial para enseñar a usarlo mejor.

Solo queda una cosa por hacer...

SPAMEAR SPELLS HASTA SOBRECARGAR LA LIBRERIA
Volver arriba Ir abajo
Ruke

avatar


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

Mensajes Mensajes : 298
Reputación Reputación : 63
Monedas de oro : 1677
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: MUI (utilidad para GUI) Dom Sep 29, 2013 1:25 pm

Actualizado

+ Agregados puntos (locations)
+ mas ejemplos en el mapa

edit

Actualizado

+ Agregada funcionalidad para limpiar automáticamente leaks.
Volver arriba Ir abajo
Sapphiron

avatar


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

Mensajes Mensajes : 1433
Reputación Reputación : 219
Monedas de oro : 12070
Monedas de Platino : 0

Inventario :
Frostmourne Escudo lunar Armadura Lunar Avanzada
Diamante Encantado Anillo Sagrado Libro de Leyendas

Mensaje(#) Tema: Re: MUI (utilidad para GUI) Dom Sep 29, 2013 3:52 pm

Aportazo Sauron! +rep

Va a ser de mucha utilidad al foro. Wink


Lets take a moment to break the ice, so my intentions are known..


¡Hola Invitado!
Tal vez los siguientes vínculos puedan interesante:
Like a Star @ heavenReglas del foroLike a Star @ heaven
Like a Star @ heavenListado de TutorialesLike a Star @ heaven
Like a Star @ heavenConsultas del editor de mundosLike a Star @ heaven
Like a Star @ heaven Requisitos de Tutoriales y SpellsLike a Star @ heaven
Volver arriba Ir abajo
http://www.worldofeditors.net
Ruke

avatar


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

Mensajes Mensajes : 298
Reputación Reputación : 63
Monedas de oro : 1677
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: MUI (utilidad para GUI) Jue Oct 03, 2013 4:22 pm

Actualizado:

+ Ahora usa arrays en lugar de hashtable
+ Mas fácil de usar (no hay necesidad de custom scripts)
+ Agregado soporte para destructibles
+ Mejorado mapa ejemplo
+ Agregada funcionalidad para limpiar los leaks automáticamente
Volver arriba Ir abajo
Adram

avatar


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

Mensajes Mensajes : 251
Reputación Reputación : 28
Monedas de oro : 518
Monedas de Platino : 0

Inventario :
Armadura de Plata
Gema de la visión verdadera

Mensaje(#) Tema: Re: MUI (utilidad para GUI) Jue Oct 03, 2013 6:37 pm

Shocked cada vez se actualiza más y más. mmf


Volver arriba Ir abajo
Ruke

avatar


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

Mensajes Mensajes : 298
Reputación Reputación : 63
Monedas de oro : 1677
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: MUI (utilidad para GUI) Jue Oct 03, 2013 8:58 pm

@Adram escribió:
Shocked cada vez se actualiza más y más. mmf
Actualizado mmf

Agregada una división (si si, una sola). La falta de la misma estaba haciendo fallar al "sistema" entero.

Ahora la utilidad está trabajando como se espera, hasta ahora no le he visto ningún error.
Volver arriba Ir abajo
kalebcaro9
Soldado
avatar


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

Mensajes Mensajes : 84
Reputación Reputación : 3
Monedas de oro : 285
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: MUI (utilidad para GUI) Miér Dic 18, 2013 10:56 pm

@Sauron escribió:
go home kalebcaro9, you're drunk.

Es en serio? ._. yo no pinto nada aqui xd

Edit: Demoré un poco, pero ya entendi como lo hiciste
Volver arriba Ir abajo
ILoGy
Caballero
avatar


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

Mensajes Mensajes : 405
Reputación Reputación : 72
Monedas de oro : 2433
Monedas de Platino : 2

Inventario :



Mensaje(#) Tema: Re: MUI (utilidad para GUI) Jue Dic 19, 2013 2:29 pm

Shocked como no había visto esto antes, se ve demasiado simple para ser cierto, supongo que la magia esta en el JASS (o VJASS?  scratch ); como sea probare a ver si es como la pintas xD , gran aporte sauron, siempre sorprendes, por algo soy Sauronsista xD bueno te va +rep e.e
Volver arriba Ir abajo
WonderWoman
Capitán
avatar


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

Mensajes Mensajes : 129
Reputación Reputación : 27
Monedas de oro : 829
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: MUI (utilidad para GUI) Jue Dic 19, 2013 4:27 pm

Pero esto es eficiente? jajaja, esta bueno.
Recuerdo en el otro foro cuando publique ese tutorial para usar locales en gui declarandolas con el mismo nombre que las globales para aprovechar la prioridad de nombres del ámbito local. Esto es muchísimo mejor :p.


and it makes me wonder...
Volver arriba Ir abajo
Fenixjuanx
Capitán
avatar


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

Mensajes Mensajes : 171
Reputación Reputación : 10
Monedas de oro : 115
Monedas de Platino : 0

Inventario :
Hacha Simple Escudo redondo de madera


Mensaje(#) Tema: Re: MUI (utilidad para GUI) Mar Mar 18, 2014 3:04 am

Mierda....... no entendi un JOTO , yo solo queria crear "Spells" y me encuentro con esto ..... A ESTUDIAAAAAAAAAAAAAAAAAAAAR


Balanar is Coming For You
Synchros Is The Future
Pedidos de Models Del MU por MP
Post/Comentario By Fenixjuanx , Luchando por la medalla de modeler experto desde tiempo inmemorables..
Volver arriba Ir abajo
http://www.loshackersviven.es.tl
Marcos_M

avatar


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

Mensajes Mensajes : 3062
Reputación Reputación : 511
Monedas de oro : 9495
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: MUI (utilidad para GUI) Vie Mar 28, 2014 5:50 pm

Sabes qué le falta a este sistema para ser super pro??

La posibilidad de cargar los datos desde el caster o algo..(en set_unit[1])

Para poder hacer spells que reaccionen con eventos.

Esto se me ocurrió a la pasada, no revisé el código. Qué tan difícil sería? .3
Volver arriba Ir abajo
Ruke

avatar


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

Mensajes Mensajes : 298
Reputación Reputación : 63
Monedas de oro : 1677
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: MUI (utilidad para GUI) Vie Mar 28, 2014 5:59 pm

@Marcos_M escribió:
Sabes qué le falta a este sistema para ser super pro??

La posibilidad de cargar los datos desde el caster o algo..(en set_unit[1])

Para poder hacer spells que reaccionen con eventos.

Esto se me ocurrió a la pasada, no revisé el código. Qué tan difícil sería? .3

No te entendi. ¿La posibilidad de cargar los datos desde el caster?.
Volver arriba Ir abajo
Contenido patrocinado




Mensaje(#) Tema: Re: MUI (utilidad para GUI)

Volver arriba Ir abajo
 

MUI (utilidad para GUI)

Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 2.Ir a la página : 1, 2  Siguiente

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