Wc3WoW Forum
¡Bienvenido a Wc3WoW Forum! Aquí se encontrará
con una gran variedad de mapas, modelos, iconos,
texturas, tutoriales, herramientas, y muchas cosas
más para el World Editor de Warcraft III. Regístrese
para tener acceso a todo nuestro contenido, de una
forma rápida, segura, y sin anuncios molestos.
Conectarse

Recuperar mi contraseña

Últimos temas
» Rey Anduin Wrynn by Ogathar.
Hoy a las 12:55 por Rodriel20

» (Iconos) Habilidades de Criaturas by Alesus
Hoy a las 11:52 por JC

» (Iconos) Habilidades de Jefes by Alesus
Hoy a las 11:50 por JC

» Habilidades de Criaturas de Ámbar by Alesus
Hoy a las 11:49 por JC

» (Iconos) Habilidades de Butcher by Alesus
Hoy a las 11:48 por JC

» Mole Jurapenas by JDTJ
Hoy a las 11:39 por JC

» Pa'ku by Henry
Hoy a las 11:37 por JC

» Soldado Temible Kor'kron by JDTJ
Hoy a las 11:35 por JC

» Lobos by Henry
Hoy a las 11:33 por JC

» Korm Bonegrind by JDTJ
Hoy a las 11:32 por JC

Buscar
 
 

Resultados por:
 


Rechercher Búsqueda avanzada

Chatbox

[Tutorial] Aplicando C++ al Warcraft

Página 1 de 2. 1, 2  Siguiente

Ir abajo

Tema Resuelto [Tutorial] Aplicando C++ al Warcraft

Mensaje por Naus Allien el Mar 30 Dic - 11:11

Hola a todos. Soy el programador Naus Allien. Me gustaría darles la bienvenida a mi serie de tutoriales en los que pretendo enseñaros un poco de programación C++ (lenguaje) aplicada a la sintáxis de Blizzard y su juego estrella Warcraft.
Como primera lección tendremos un ejemplo de IFTE (IF, THEN, ELSE) que significa Si, Entonces, y Además. La función que cumplen estas acciones, son establecer que en caso de que un gatille quiera acceder a una serie de acciones, primero se deben cumplir las condiciones dadas. En caso de no cumplirse, no sucede nada.

Ejemplo de un If/Then/Else con C++:
NOTA: En este IFTE se tomará como ejemplo una condición booleana:



function Trig_IFTE_Example_Func001C takes nothing returns boolean
if ( not ( udg_BooleanX == true ) ) then
return false
endif
return true
endfunction

function Trig_IFTE_Example_Actions takes nothing returns nothing
if ( Trig_IFTE_Example_Func001C() ) then
call KillUnit( udg_UnitX )
else
call DoNothing( )
endif
endfunction

//===========================================================================
function InitTrig_IFTE_Example takes nothing returns nothing
set gg_trg_IFTE_Example = CreateTrigger( )
call TriggerAddAction( gg_trg_IFTE_Example, function Trig_IFTE_Example_Actions )
endfunction



*Al principio, se inicia una función mediante el comando "function" y luego inmediatamente el nombre del detonador acoplado con guiones bajos y empezando por la palabra Trig.
* Mediante el comando "Trig_IFTE_Example_Func001C" se establece que si el detonador toma ningún valor, por lo tanto queda anulado, es por el regreso de la booleana. Luego sigue explicando que si la booleana no es igual a true "If (not (udg_BooleanX == true)" entonces regrese a false. Siempre al final de un IF como este, se pondrá "endif" y se pondrá "return true".
* Cada vez que termines una función, pondrás al mismo grado la palabra "endfunction". Cuando decimos al mismo grado, es al mismo al que se llamo la función.
* Dejando un espacio entre líneas de lo que sería la comprobación anterior, comenzamos a establecer el IFTE. Recordemos que siempre se debe poner que si las acciones toman ningún valor entonces nada suceda. Eso lo hacemos mediante el comando "takes nothing returns nothing".
* El IF debe sitar la misma función que se realizó más arriba. Luego vendrá el then que se pone en el mismo grado, o línea, que el IF, y abajo se pone el comando call (que sirve para llamar acciones), en este caso matar a la unidad X.
* Volvemos a cerrar la condición y finalmente cerramos la función. Luego colocamos una línea completa de "/====" para poder citar los valores finales del detonador.
* En la parte final es donde se coloca lo que sería el ACONTECIMIENTO. En la primera línea va una constante que debe ir en TODOS los detonadores, con el comando "Init" seguido de el nombre del detonador y las órdenes "takes nothing returns nothing". En la línea que sigue se establece que se cree una variable de detonador (por eso empieza con gg_) para ese detonador. Y finalmente en la línea siguiente se nombran las acciones mediante el comando "call".

Esto sería una explicación muy técnica y quizás difícil de entender. Lo que hay que recordar es que programar en C++ original y puro es distinto a esto, pero tiene las mismas bases. Para empezar, siempre hay que sitar todo lo que sean condiciones, incluso si estas pertenecen unicamente a una acción, y luego poner lo que serían las acciones. En la línea final se coloca el acontecimiento. Como en este ejemplo fue MAP INITIALIZATION por eso no aparece en la lista. En caso de que fuera, por ejemplo, cada dos segundos de tiempo de juego iría entre la línea en la que se crea la variable del trigger y la que se establece el llamado a las acciones:
function InitTrig_Time_Example
set gg_trg_Time_Example = CreateTrigger( )
call TriggerRegisterTimerEventPeriodic( gg_trg_Time_Example, 2 )
call TriggerAddAction( gg_trg_Time_Example, function Trig_Time_Example_Actions )
endfunction


Eso fue la clase de hoy, algunas bases de la programación C++ y la forma de crear un IFTE básico. Recuerda que es muy importante no cometer errores ortográficos en los scripts, así como respetar sangrías, interlineados, y uso de mayúsculas y minúsculas. Las sangrías son de vital importancia en programación para determinar lo que se conoce como rangos de prioridad, de lo que hablaremos en clases siguientes.

Saludos,
Naus Allien.
avatar
Naus Allien
Rango: Explorador
Rango: Explorador

Comentarios Comentarios : 50
Experiencia Experiencia : 3379
Reputación Reputación : 46
Alianza Elfo de Sangre Mago Encantamiento Masculino
Vacío

Ver perfil de usuario

Volver arriba Ir abajo

Tema Resuelto Re: [Tutorial] Aplicando C++ al Warcraft

Mensaje por Dranam - The Dark Knight el Mar 30 Dic - 14:42

D: muy bueno, esto me sirve claramente para arreglar las DB'S de WoTLK... ahora solamente me falta saber como editarlas
avatar
Dranam - The Dark Knight
Rango: Campeón
Rango: Campeón

Título : Top 19
Comentarios Comentarios : 483
Experiencia Experiencia : 2993
Reputación Reputación : 121
Alianza Humano Caballero de la Muerte Masculino
Vacío
Colaborador Destacado Mapper Destacado

Ver perfil de usuario

Volver arriba Ir abajo

Tema Resuelto Re: [Tutorial] Aplicando C++ al Warcraft

Mensaje por Naus Allien el Sáb 3 Ene - 14:19

Bueno, a pedido de la gente, sería conveniente comenzar a definir algunos parametros básicos en la programación. Hoy, solamente definiciones.

1- Guión o Script: Un conjunto de órdenes que servirán como rieles para regular el comportamiento de la información. Todo en informática está constituido por guiones. Son acciones similares, que se agrupan en un mismo entorno debido a tener un lenguaje compatible entre si. Además, solo se pueden citar variables dentro del mismo guión.
2- Variable: Dato que puede tomar un valor preestablecido, pero que al mismo tiempo puede variar dependiendo de las circunstancias u otras acciones. Así mismo, una variable se debe incluir en el guión, para que tras suceder determinados hechos, desencadenen el nombramiento de la variable.
3- Constante: Lo opuesto a una variable. Es un dato preestablecido que no puede cambiar bajo ninguna circunstancia. Por ejemplo, Pi sería una variable cuyo valor siempre es el mismo. Las constantes se establecen al principio del guión, y luego no se pueden modificar ya que su valor se mantiene.
2- Detonador o Trigger: El fragmento de un guión que está caracterizado por tener un disparador (puede ser disparado por otro detonador) y contener condiciones o acciones para ese disparador. También conocido como "Gatillo".
5- Condiciones: Son ciertos requisitos que han de cumplirse para que las acciones de un gatillo sean disparadas. En caso de no cumplirse, no se desencadenan las acciones. En caso de que el gatillo sea un bucle repetitivo (ver más abajo) y las condiciones dejen de cumplirse en un momento, el detonador se detiene abruptamente.
6- Acciones: Las conocidas acciones, son todos los sucesos que se cumplen cuando un detondor es disparado y sus condiciones se cumplen.
7- Bucles: Es un conjunto de acciones agrupadas dentro de otra. Así mismo, se puede establecer un bucle que permita que todas las acciones se desencadenen cuando una toma lugar. Un ejemplo de bucle, sería, el establecer que se recojan todos los elementos de un tipo y que en todos esos elementos se hagan una determinada acción. Lo que está sucediendo realmente, es que se están generando la acciones una y otra vez para cada uno de los elementos recogidos.
8- Lenguajes: Todo en programación está "narrado" utilizando un lenguaje en especial. Los lenguajes son métodos en los que se escribe un guión, utiizando distintas órdenes y acciones claves, para que de esa forma los programas que utilizarán el guión entienda de qué se trata. Algunso lenguajes son: Java, C++, Basic, Pascal, HTML, etc. EL lenguaje de Warcraft es una variación muy similar al C++, encriptado con el jass.
9- Encriptar: Codificar los lenguajes para que solo determinados programas o recursos puedan interpretarlos, para evitar malos usos de la programación. El ejemplo más claro de recursos encriptados son los archivos .dll, o extenciones de la aplicación, que solo sirven para ser interpretados por una aplicación específica. Hay muchos programas que pueden abrir y desencriptar recursos.
10- Bucle Repetitivo: Una variación de los bucles clásicos, que una vez completadas todas sus acciones o conjuntos de acciones, vuelven a desencadenarse infinitamente, o hasta ser detenidos. Los detonadores también pueden ser bucles repetitivos.
11- Jerarquía: Rango de importancia que en programación se le da a algunas acciones, o recursos, por sobre otros. También sirven para englobar recursos o datos dependientes de otros. Por ejemplo, se le da jerarquía a las acciones que adopta un bucle, o simplemente a una lista de condiciones que derivan de una, etc. Se representa con distintos niveles de sangrías.
12- Líneas de división: No se entiendo como símbolos para la operación matemática. Son líneas compuestas de guiones (-) que sirven para dividir partes en detonadores o guiones. Deben estar comenzadas por // para que de esa forma no afecten a la programación. Las // representan que lo que sigue a continuación es simplemente un comentario y debe ser ignorado. Se usa para casi todos los lenguajes.

Más, proximamente...
avatar
Naus Allien
Rango: Explorador
Rango: Explorador

Comentarios Comentarios : 50
Experiencia Experiencia : 3379
Reputación Reputación : 46
Alianza Elfo de Sangre Mago Encantamiento Masculino
Vacío

Ver perfil de usuario

Volver arriba Ir abajo

Tema Resuelto Re: [Tutorial] Aplicando C++ al Warcraft

Mensaje por Dranam - The Dark Knight el Sáb 3 Ene - 17:21

[Tienes que estar registrado y conectado para ver este vínculo] escribió:Bueno, a pedido de la gente, sería conveniente comenzar a definir algunos parametros básicos en la programación. Hoy, solamente definiciones.

1- Guión o Script: Un conjunto de órdenes que servirán como rieles para regular el comportamiento de la información. Todo en informática está constituido por guiones. Son acciones similares, que se agrupan en un mismo entorno debido a tener un lenguaje compatible entre si. Además, solo se pueden citar variables dentro del mismo guión.
2- Variable: Dato que puede tomar un valor preestablecido, pero que al mismo tiempo puede variar dependiendo de las circunstancias u otras acciones. Así mismo, una variable se debe incluir en el guión, para que tras suceder determinados hechos, desencadenen el nombramiento de la variable.
3- Constante: Lo opuesto a una variable. Es un dato preestablecido que no puede cambiar bajo ninguna circunstancia. Por ejemplo, Pi sería una variable cuyo valor siempre es el mismo. Las constantes se establecen al principio del guión, y luego no se pueden modificar ya que su valor se mantiene.
2- Detonador o Trigger: El fragmento de un guión que está caracterizado por tener un disparador (puede ser disparado por otro detonador) y contener condiciones o acciones para ese disparador. También conocido como "Gatillo".
5- Condiciones: Son ciertos requisitos que han de cumplirse para que las acciones de un gatillo sean disparadas. En caso de no cumplirse, no se desencadenan las acciones. En caso de que el gatillo sea un bucle repetitivo (ver más abajo) y las condiciones dejen de cumplirse en un momento, el detonador se detiene abruptamente.
6- Acciones: Las conocidas acciones, son todos los sucesos que se cumplen cuando un detondor es disparado y sus condiciones se cumplen.
7- Bucles: Es un conjunto de acciones agrupadas dentro de otra. Así mismo, se puede establecer un bucle que permita que todas las acciones se desencadenen cuando una toma lugar. Un ejemplo de bucle, sería, el establecer que se recojan todos los elementos de un tipo y que en todos esos elementos se hagan una determinada acción. Lo que está sucediendo realmente, es que se están generando la acciones una y otra vez para cada uno de los elementos recogidos.
8- Lenguajes: Todo en programación está "narrado" utilizando un lenguaje en especial. Los lenguajes son métodos en los que se escribe un guión, utiizando distintas órdenes y acciones claves, para que de esa forma los programas que utilizarán el guión entienda de qué se trata. Algunso lenguajes son: Java, C++, Basic, Pascal, HTML, etc. EL lenguaje de Warcraft es una variación muy similar al C++, encriptado con el jass.
9- Encriptar: Codificar los lenguajes para que solo determinados programas o recursos puedan interpretarlos, para evitar malos usos de la programación. El ejemplo más claro de recursos encriptados son los archivos .dll, o extenciones de la aplicación, que solo sirven para ser interpretados por una aplicación específica. Hay muchos programas que pueden abrir y desencriptar recursos.
10- Bucle Repetitivo: Una variación de los bucles clásicos, que una vez completadas todas sus acciones o conjuntos de acciones, vuelven a desencadenarse infinitamente, o hasta ser detenidos. Los detonadores también pueden ser bucles repetitivos.
11- Jerarquía: Rango de importancia que en programación se le da a algunas acciones, o recursos, por sobre otros. También sirven para englobar recursos o datos dependientes de otros. Por ejemplo, se le da jerarquía a las acciones que adopta un bucle, o simplemente a una lista de condiciones que derivan de una, etc. Se representa con distintos niveles de sangrías.
12- Líneas de división: No se entiendo como símbolos para la operación matemática. Son líneas compuestas de guiones (-) que sirven para dividir partes en detonadores o guiones. Deben estar comenzadas por // para que de esa forma no afecten a la programación. Las // representan que lo que sigue a continuación es simplemente un comentario y debe ser ignorado. Se usa para casi todos los lenguajes.

Más, proximamente...

Naus una pregunta... tu has trabajado alguna ves en alguna DB de un servidor como mangos?
avatar
Dranam - The Dark Knight
Rango: Campeón
Rango: Campeón

Título : Top 19
Comentarios Comentarios : 483
Experiencia Experiencia : 2993
Reputación Reputación : 121
Alianza Humano Caballero de la Muerte Masculino
Vacío
Colaborador Destacado Mapper Destacado

Ver perfil de usuario

Volver arriba Ir abajo

Tema Resuelto Re: [Tutorial] Aplicando C++ al Warcraft

Mensaje por Naus Allien el Lun 5 Ene - 16:23

Pronto se acerca la segunda clase, la de programación de condiciones múltiples. Mientras tanto, contesto la pregunta de El Caballero Oscuro, y es no. Yo no trabaje en ninguna base de datos de ningún servidor alternativo, pero soy programador y estoy perfectamente cualificado para hacerlo. Si necesitas ayuda, puedo brindártela. Auque no puedo dedicarme completamente al proyecto, debido a que tengo como responzabilidad esencial la universidad, que consume gran parte del tiempo.
avatar
Naus Allien
Rango: Explorador
Rango: Explorador

Comentarios Comentarios : 50
Experiencia Experiencia : 3379
Reputación Reputación : 46
Alianza Elfo de Sangre Mago Encantamiento Masculino
Vacío

Ver perfil de usuario

Volver arriba Ir abajo

Tema Resuelto Re: [Tutorial] Aplicando C++ al Warcraft

Mensaje por xZetH el Sáb 10 Ene - 0:13

Que son las DBs?

Y se llama JASS el lenguaje utilizado por W3. Deberian poner un subforo sobre JASS, y si, hacete una guia basica, explicando las funciones, variables locales y globales, la diferencia entre GUI y JASS, Ejercicios desde como poner un mensaje en la pantalla con una tecla hasta crear spells avanzados, etc..

xZetH
Nuevo

Comentarios Comentarios : 3
Experiencia Experiencia : 3381
Reputación Reputación : 0
Horda Caballero de la Muerte Vacío

Ver perfil de usuario

Volver arriba Ir abajo

Tema Resuelto Re: [Tutorial] Aplicando C++ al Warcraft

Mensaje por Nostat el Sáb 10 Ene - 11:20

[Tienes que estar registrado y conectado para ver este vínculo] escribió:Que son las DBs?
DB = Data Base = Base de datos
avatar
Nostat
Rango: Caballero
Rango: Caballero

Comentarios Comentarios : 176
Experiencia Experiencia : 2938
Reputación Reputación : 23
Alianza Draenei Cazador de Demonios Masculino
Vacío

Ver perfil de usuario

Volver arriba Ir abajo

Tema Resuelto Re: [Tutorial] Aplicando C++ al Warcraft

Mensaje por Naruto182 el Lun 19 Ene - 11:22

Que es el c++ y no sabes hacer un curso algo mas facil??
avatar
Naruto182
Rango: Peón
Rango: Peón

Comentarios Comentarios : 19
Experiencia Experiencia : 3362
Reputación Reputación : 5
Alianza Caballero de la Muerte Masculino
Vacío

Ver perfil de usuario

Volver arriba Ir abajo

Tema Resuelto Re: [Tutorial] Aplicando C++ al Warcraft

Mensaje por Naus Allien el Lun 19 Ene - 13:06

C++ es un lenguaje derivado del C, que se basa en los scripts de condiciones y sucesos (para el lenguaje coloquial, IF/THEN) y es el lenguaje que usa Blizzard para todos sus juegos, codificándolo con Jass, y modificando algunas bases, pero siendo casi puro a diferencia de otros juegos. En la actualidad, el 80% de los juegos usan C++ como lenguaje de programación.
El tutorial creo que más facil no se puede hacer, esto es para valientes, para gente que quizás no sepa programación real pero se anime a intentarlo. Los que lo quieran más sencillo, sigan usando las funciones C++ preestablecidas del editor.

Bueno, voy a enseñar a crear una condición boolena.
Al principio siempre hay que poner lo siguiente, cuando estamos utilizando como condición una única booleana: function Trig_Boolean_Conditions takes nothing returns boolean
Esta función es vital ya que lo que dice es basicamente que si las condicones no se cumplen se regrese a una comprobación de TRUE O FALSE, lo que hace que a menos que el detonador se vuelva a ejecutar, y en esa ocasión si se cumplan las condiciones, no suceda nada.
Recuerden que donde dice "Trig_" es el nombre del detonador, en este caso es boolean.
Luego de hacer esa comprobación vital, pasaremos a las condicones IF/THEN/ELSE.
Por ejemplo podría ser:

if ( not ( udg_UNITDEADBYMAGIC == true ) ) then
return false
endif
return true
endfunction

Lo que vemos en este caso es una booleana, llamada UNITDEADBYMAGIC, al tomar el valor de true, no regrese a la comprobación sino que pase a las acciones, pero luego vemos que en "endif" dice que regrese si la boolean toma valor false (por eso dice termianar si). Tambien vemos que para establecer un "igual a" debemos utilizar DOS símbolos "=" seguidos. Al establecer una variable, siempre ponemos "udg_" y seguido el nombre de la variable.
Ahora las acciones supuestas, en este caso sería matar a la unidad:

function Trig_Boolean_Actions takes nothing returns nothing
call KillUnit( GetKillingUnitBJ() )
endfunction

La línea del principio dice que si los valores son nada, nada suceda (no se regresará a la comprobación, a menos que sea un bucle o un detonador con acción continua)
Call, representa el llamado de una acción. Es bueno aclarar que TODAS las acciones ya se encuentran previamente programadas en los archivos CHEATS.J, BLIZZARD.J, y especialmente en COMMON.J, todos archivos dentro del directorio SCRIPTS de los archivos de Warcraft. Por lo tanto no podemos inventar una acción ya que el editor no saltará error. Si sabemos programacíón podemos agregarla a esos archivos correctamente y luego LLAMARLA, en este caso llamamos a KillUnti. Es por eso que dice call.
Fijense que dentro de call KillUnit aparece una condición, encabezada por GET, eso significa que solo se aplique a una unidad en especial, y por eso se sigue por BJ.
Luego finalizamos el detonador con las líneas de división: //------------------------
Y con lo que sería el setup básico del detonador con:
1- El que si no toma ningún valor, no suceda nada: function InitTrig_Boolean takes nothing returns nothing
2- Que el trigger se cree y exista en el guión del mapa: set gg_trg_Boolean = CreateTrigger( )
3- El Acontecimiento, también USANDO CALL: call TriggerRegisterAnyUnitEventBJ( gg_trg_Boolean, EVENT_PLAYER_UNIT_DEATH ).
4- Que el trigger tenga condiciones: call TriggerAddCondition( gg_trg_Boolean, Condition( function Trig_Boolean_Conditions ) )
5- Y que el trigger tenga acciones: call TriggerAddAction( gg_trg_Boolean, function Trig_Boolean_Actions )
Finalizamos SIEMPRE con endfunction

El detonador completo sería:
function Trig_Boolean_Conditions takes nothing returns boolean
if ( not ( udg_UNITDEADBYMAGIC == true ) ) then
return false
endif
return true
endfunction

function Trig_Boolean_Actions takes nothing returns nothing
call KillUnit( GetKillingUnitBJ() )
endfunction

//===========================================================================
function InitTrig_Boolean takes nothing returns nothing
set gg_trg_Boolean = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Boolean, EVENT_PLAYER_UNIT_DEATH )
call TriggerAddCondition( gg_trg_Boolean, Condition( function Trig_Boolean_Conditions ) )
call TriggerAddAction( gg_trg_Boolean, function Trig_Boolean_Actions )
endfunction

NOTA: Recuerden los espacios, que por desgrasia al publicar en este foro son eliminados. Cada call, set, if, y los returns van con cinco espacios.

Bueno esa ha sido la mini-clase de hoy, espero que les sirva para empezar a comprender un poco más las cosas, y animarse a crear y experimentar por su cuenta.
Saludos,
Naus Allien.

Bueno, hoy les traigo una nueva clase práctica. Esta clase es para repasar un poco de lo visto hasta ahora, que auque han sido solo tres post tienen muchas cosas nuevas e información, y para aprender acerca de los distintos tipos de comparaciones:
Bueno, al crear un trigger C++/Jass desde 0 (cosa que quizás les sea muy difícil), tienen que seguir una serie de pasos:

1- Establecer las condiciones return: Function Trig_X_Conditions (donde X el detonador) takes nothing return nothing/Boolean (solo en caso de que posteriormente se haya incluido una condición booleana)
2- Establecer las condiciones del detonador. Por ejemplo:

if ( not ( GetPlayers() == 6 ) ) then
return false
endif

return true
endfunction


En este caso, se establece una condición de número real en la que los jugadores deben ser 6. Luego dice then, y por lo tanto dice que el RETURN (o regreso a las comprobaciones) se desactive ya que no se requiere para poder encarar las acciones correctamente.
3- Espacio en blanco.
4- Establecer las acciones return: function Trig_X_Y (Y es un valor binario que se debe a que tiene una condición, como veremos más abajo) takes nothing returns nothing/boolean
5- Llamar a una acción, por ejemplo:

call SetPlayerColorBJ( GetEnumPlayer(), PLAYER_COLOR_RED, true )

6- Finalizar la función: "endfunction" (sin comillas).

7- REPETIR LOS PASOS 4,5,6 tantas veces como acciones se requieran. El 4 y el 6 son casi siempre iguales en todas las acciones lo único que varía es el 5, que es la llamada a la función preestablecida. Por ejemplo:

function Trig_Condit_Actions takes nothing returns nothing
call ForForce( GetPlayersAllies(Player(0)), function Trig_X_Y)
endfunction


En este caso vemos que esta era la acción-condición que disparaba la acción Trig_X_Y que se encuentra más arriba. Las acciones que son disparadas por otra acción o condición se pone arriba. Fijense que dice callForce (llamar a una acción grupo de jugador) "GetPlayerAllies(Player(0))" eso significa que las acción de más arriba, la de cambiar el color, solo será recogida para los jugadores de esa condición. Como siempre finaliza con "endfunction".

8- Una división, para que se entienda que terminan las condiciones y acciones y comienzan los acontecimientos: //==================================

9- Básicas de los ACONTECIMIENTOS:
a) Volvemos a citar el regreso a nothing o boolean: InitTrig_Condit takes nothing returns nothing
b) Creamos el detonador como tal, mediante la función: set gg_trg_X = CreateTrigger( )
c) Llamar a las condiciones y acciones:

call TriggerAddCondition( gg_trg_Condit, Condition( function Trig_X_Conditions ) )
call TriggerAddAction( gg_trg_Condit, function Trig_X_Actions )


d) Finalizar las funciones: "endfunction".

NOTA: Atención a los espacios, cada call, set, o return (que tenga su propia línea) lleva 5 espacios. Respetar los paréntesis, todos deben estar cerrados. Respetar los espacios, no agregar ni quitar espacios de más. La programación requiere de una sintáxis impecable.

Hoy les voy a dar una tarea, para los que hayan estado siguiendo las clases y quieran demostrar que están aprendiendo. Deben crear un detonador desde 0, con una acción-condición IF/THEN/ELSE, en la que deben incluir alguna función que ya hayamos visto. No deben hacer el detonador y convertirlo a texto personalizado, ya que no tiene sentido porque no podremos seguir avanzando en cosas cada vez más complejas. Los que hayan terminado el detonador, y hayan revizado la sintaxis, quiero que me lo envíen por PM así lo veo.

Saludos,
Naus Allien.
avatar
Naus Allien
Rango: Explorador
Rango: Explorador

Comentarios Comentarios : 50
Experiencia Experiencia : 3379
Reputación Reputación : 46
Alianza Elfo de Sangre Mago Encantamiento Masculino
Vacío

Ver perfil de usuario

Volver arriba Ir abajo

Tema Resuelto Re: [Tutorial] Aplicando C++ al Warcraft

Mensaje por Nekkrov el Mar 29 Mayo - 15:51

bien explicado. (mas o menos dos horas tecleando)
avatar
Nekkrov
Rango: Élite
Rango: Élite

Título : Top 1 - Elite
Comentarios Comentarios : 1318
Experiencia Experiencia : 2997
Reputación Reputación : 143
Neutral Trol Cazador Desuello Masculino
Vacío
Segundo Gran Mapper II
Colaborador Destacado

Ver perfil de usuario

Volver arriba Ir abajo

Tema Resuelto Re: [Tutorial] Aplicando C++ al Warcraft

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Página 1 de 2. 1, 2  Siguiente

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.