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

Editar Perfil

Tus temas
Tus Mensajes ()

Enlaces rápidos








Comparte
 

 Hacer una unidad heroica

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Marcos_M

Marcos_M


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

Mensajes Mensajes : 3525
Reputación Reputación : 669
Monedas de oro : 11020
Monedas de Platino : 0 Hacer una unidad heroica Empty

Inventario :
Hacer una unidad heroica Empysl10 Hacer una unidad heroica Empysl10 Hacer una unidad heroica Empysl10
Hacer una unidad heroica Empysl10 Hacer una unidad heroica Empysl10 Hacer una unidad heroica Empysl10

Hacer una unidad heroica Empty
Mensaje(#) Tema: Hacer una unidad heroica Hacer una unidad heroica Clock10Lun Jul 11, 2016 9:21 pm

Buenos días, tardes, noches n_n

Como hace años que no subo ningún aporte al foro, al ver esto, supe que había que postearlo aquí para que cualquiera pueda usarlo. Todos los créditos van a leandrotp, el descubrió este asombroso truco.

Resumiendo el funcionamiento del sistema.

- Cuando transformas una unidad a un héroe 3 cosas suceden:
1_ Se otorgan los atributos y la unidad gana la habilidad para tener Habilidades de héroe('AHer').
2_ La unidad pierde las habilidades no permanentes y gana todas las habilidades de la nueva unidad.
3_ Se aplican las nuevas estadísticas de la unidad(vida, velocidad de movimiento).

Este sistema, intercepta la transformación en la primera etapa, y removiendo la habilidad, y "desmorfeamos" nuestra unidad, y al interrumpirla, los atributos y la habilidad 'AHer' permanecen.

Los efectos de este sistema sobre nuestra unidad son los siguientes:
- La unidad ahora tiene atributos. Por lo que puedes agregarle fuerza/agi/int, pero solo con libros
- La unidad puede subir de nivel como un héroe. Pero no absorbe experiencia
- La unidad hereda las habilidades del héroe al cual se quiso transformar
- La unidad hereda los atributos base de este héroe, y gana atributo por nivel de este héroe

Detalles importantes del sistema
- La unidad requiere tener la capacidad de usar objetos para que esto funcione
- La unidad no puede tener la habilidad Defender para que esto funcione
- En las constantes de juego, la vida por punto de fuerza, debe ser mayor a 1.
- Tengan en cuenta que todos los héroes por defecto tienen una defensa base de "-2" y por alguna razón, la defensa base de la unidad nueva será "-6" al hacerla heroica. O sea, aplica esta defensa base 3 veces sobre la unidad, antes de las bonificaciones de agilidad.


[jass]
function HeroicUnit_OnMorph takes nothing returns boolean
   local unit u = GetTriggerUnit()
   local trigger t = GetTriggeringTrigger()
   if GetTriggerEventId() == EVENT_UNIT_STATE_LIMIT then
       call DisableTrigger(t)
       call UnitRemoveAbility(u, udg_HeroicUnit_MorphID)
   elseif GetUnitTypeId(u) != udg_HeroicUnit_HeroeDummyID then
       call UnitAddAbility(u, udg_HeroicUnit_MorphID)
       call UnitAddAbility(u, udg_HeroicUnit_BonusID)
       call UnitMakeAbilityPermanent(u, true, udg_HeroicUnit_BonusID)
       call TriggerRegisterUnitStateEvent(t, u, UNIT_STATE_LIFE, GREATER_THAN, GetWidgetLife(u)+1.)
       call RemoveItem(UnitAddItemById(u, udg_HeroicUnit_ItemID))
   else
       call UnitAddAbility(u, udg_HeroicUnit_DetectorID)
   endif
   set t = null
   set u = null
   return false
endfunction

function HeroicUnit_UnitMakeHeroic takes unit u returns boolean
   local trigger t = CreateTrigger()
   local real hp = GetWidgetLife(u)
   local real mp = GetUnitState(u, UNIT_STATE_MANA)
   call SetWidgetLife(u, GetUnitState(u, UNIT_STATE_MAX_LIFE))
   call TriggerRegisterUnitEvent(t, u, EVENT_UNIT_ISSUED_ORDER)
   call TriggerAddCondition(t, Condition(function HeroicUnit_OnMorph))
   call UnitAddAbility(u, 'AInv')
   call UnitAddAbility(u, udg_HeroicUnit_DetectorID)
   call UnitAddAbility(u, udg_HeroicUnit_BonusID)
   call RemoveItem(UnitAddItemById(u, udg_HeroicUnit_ItemID))
   call UnitRemoveAbility(u, udg_HeroicUnit_BonusID)
   call SetUnitAnimation(u, "stand")
   call DestroyTrigger(t)
   set t = null
   return GetUnitAbilityLevel(u, 'AHer') > 0
endfunction[/jass]

[gui]HeroicUnit Configurables
   Acontecimientos
       Map initialization
   Condiciones
   Acciones
       Set HeroicUnit_BonusID = Objeto Bonificación estadísticas de hé️roe (Fuerza +1)
       Set HeroicUnit_DetectorID = Defender
       Set HeroicUnit_HeroeDummyID = Paladín
       Set HeroicUnit_ItemID = HeroicMorphTome
       Set HeroicUnit_MorphID = HeroicMorph
       -------- ----------- Creando variables ----------- --------
       Set HeroicUnit_Unidad = Ninguna unidad
[/gui]

[gui]MakeUnitHeroic
   Acontecimientos
   Condiciones
   Acciones
       Custom script:   call HeroicUnit_UnitMakeHeroic(udg_HeroicUnit_Unidad)
[/gui][/spoiler]

Para usarla simplemente deben configurar la variable HeroicUnit_Unidad y correr el detonador MakeUnitHeroic, de esta forma

[gui]Guia de uso
   Acontecimientos
   Condiciones
   Acciones
       Set HeroicUnit_Unidad = Ninguna unidad
       Detonador - Run MakeUnitHeroic (ignoring conditions)
[/gui]

Como toque final, también agregué una variación de la librería en la que puedes elegir la habilidad de transformación, así aprovechar una unidad con atributos base, atributos por nivel y capacidad de aprender habilidades.

[jass]function HeroicUnit_OnMorph takes nothing returns boolean
   local unit u = GetTriggerUnit()
   local trigger t = GetTriggeringTrigger()
   if GetTriggerEventId() == EVENT_UNIT_STATE_LIMIT then
       call DisableTrigger(t)
       call UnitRemoveAbility(u, udg_HeroicUnit_MorphID)
   elseif GetUnitTypeId(u) != udg_HeroicUnit_HeroeDummyID then
       call UnitAddAbility(u, udg_HeroicUnit_MorphID)
       //call UnitAddAbility(u, udg_HeroicUnit_BonusID)
       //call UnitMakeAbilityPermanent(u, true, udg_HeroicUnit_BonusID)
       call TriggerRegisterUnitStateEvent(t, u, UNIT_STATE_LIFE, GREATER_THAN, GetWidgetLife(u)+1.)
       call RemoveItem(UnitAddItemById(u, udg_HeroicUnit_ItemID))
   else
       call UnitAddAbility(u, udg_HeroicUnit_DetectorID)
   endif
   set t = null
   set u = null
   return false
endfunction

function HeroicUnit_UnitMakeHeroic takes unit u returns boolean
   local trigger t = CreateTrigger()
   local real hp = GetWidgetLife(u)
   local real mp = GetUnitState(u, UNIT_STATE_MANA)
   call SetWidgetLife(u, GetUnitState(u, UNIT_STATE_MAX_LIFE))
   call TriggerRegisterUnitEvent(t, u, EVENT_UNIT_ISSUED_ORDER)
   call TriggerAddCondition(t, Condition(function HeroicUnit_OnMorph))
   call UnitAddAbility(u, 'AInv')
   call UnitAddAbility(u, udg_HeroicUnit_DetectorID)
   call UnitAddAbility(u, udg_HeroicUnit_BonusID)
   call RemoveItem(UnitAddItemById(u, udg_HeroicUnit_ItemID))
   call UnitRemoveAbility(u, udg_HeroicUnit_BonusID)
   call SetUnitAnimation(u, "stand")
   call DestroyTrigger(t)
   set t = null
   return GetUnitAbilityLevel(u, 'AHer') > 0
endfunction[/jass]

[gui]HeroicUnit Variacion Configurables
   Acontecimientos
       Map initialization
   Condiciones
   Acciones
       Set HeroicUnit_DetectorID = Defender
       -------- ----------- Creando variables ----------- --------
       Set HeroicUnit_Unidad = Ninguna unidad
       Set HeroicUnit_MorphID = (Ability being cast)
       Set HeroicUnit_ItemID = (Item-type of (Last created item))
       Set HeroicUnit_HeroeDummyID = No unidad-tipo
[/gui]

[gui]MakeUnitHeroic Variacion
   Acontecimientos
   Condiciones
   Acciones
       Custom script:   call HeroicUnit_UnitMakeHeroic(udg_HeroicUnit_Unidad)
[/gui]

Son lo mismo prácticamente. NO USEN AMBOS AL MISMO TIEMPO, SE CRUZARAN LOS SISTEMAS.

Espero que les haya gustado, y se diviertan con esta locura .3

edit: aqui el link
http://www.epicwar.com/maps/263386/
Volver arriba Ir abajo
Sapphiron

Sapphiron


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

Mensajes Mensajes : 1450
Reputación Reputación : 231
Monedas de oro : 12098
Monedas de Platino : 0 Hacer una unidad heroica Empty

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

Hacer una unidad heroica Empty
Mensaje(#) Tema: Re: Hacer una unidad heroica Hacer una unidad heroica Clock10Mar Jul 12, 2016 12:46 am

Realmente este tipo descubrió la polvora en algún modo. Buen aporte. Podría resultar útil. (y)


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

Hacer una unidad heroica SILNVOb
⭐Reglas del foro⭐ Listado de Tutoriales⭐
⭐Consultas del editor de mundos Like a Star @ heaven Requisitos de Tutoriales y Spells⭐
Volver arriba Ir abajo
https://www.worldofeditors.net
armando368
Caballero
armando368


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

Mensajes Mensajes : 420
Reputación Reputación : 26
Monedas de oro : 409
Monedas de Platino : 0 Hacer una unidad heroica Empty

Inventario :
Frostmourne Hacer una unidad heroica Empysl10 Hacer una unidad heroica Empysl10
Hacer una unidad heroica Empysl10 Hacer una unidad heroica Empysl10 Hacer una unidad heroica Empysl10

Hacer una unidad heroica Empty
Mensaje(#) Tema: Re: Hacer una unidad heroica Hacer una unidad heroica Clock10Dom Oct 30, 2016 12:17 am

Eso es como hacer un mapa dios del Olimpo Shocked


Mis Spells

Arrow OMNISLASH: https://www.worldofeditors.net/t3778-omnislash#30794

[Sombra Solitaria:[/b] https://www.worldofeditors.net/t3985-sombra-solitaria-gui

Visita mi Canal de Youtube  Wink

Arrow https://www.youtube.com/c/TheHoodedFace

Idea Subo contenido muy Interesante Idea

Hacer una unidad heroica Portad10
Volver arriba Ir abajo
Contenido patrocinado




Hacer una unidad heroica Empty
Mensaje(#) Tema: Re: Hacer una unidad heroica Hacer una unidad heroica Clock10

Volver arriba Ir abajo
 

Hacer una unidad heroica

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

 Temas similares

-
» se va a hacer gpt madrid?
» Que hacer en caso de Ataque Nuclear
» Como hacer para que eBolivia tenga mas poblacion
» Unidad militar del estado
» Algun programa para hacer chapas?

Permisos de este foro:No puedes responder a temas en este foro.
Warcraft III - WorldEditor :: Academia :: Area GUI :: Sistemas-