Jass – Revivir arboles

Para hacer que en tu mapa de Warcraft III cada árbol talado sea revivido, necesitas implementar un sistema que detecte cuándo un árbol es talado y, después de cierto tiempo, lo haga reaparecer en su lugar. Puedes hacerlo utilizando JASS. Aquí tienes un ejemplo básico:
globals
real treeRespawnTime = 60.0 // Tiempo en segundos antes de que un árbol reviva
endglobals
function RespawnTree takes nothing returns nothing
local rect r = GetRectFromLoc(GetEventDamageLoc())
local real x = GetRectCenterX(r)
local real y = GetRectCenterY(r)
local destructable d
local integer respawnEffect = 'CHEF' // Efecto visual de árbol renaciendo
// Eliminar el árbol destruible talado
call RemoveDestructable(GetFilterDestructable())
// Crear un nuevo árbol en su lugar
set d = CreateDestructableZ('LTlt', x, y, 0, 0, treeRespawnTime, 0)
// Aplicar un efecto visual para mostrar que el árbol revive
call AddSpecialEffect(d, respawnEffect)
call DestroyEffect(GetLastCreatedEffect())
call RemoveRect(r)
endfunction
function InitTriggers takes nothing returns nothing
local trigger t = CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_ATTACKED)
call TriggerAddCondition(t, Condition(function GetAttackedTree))
call TriggerAddAction(t, function RespawnTree)
endfunction
function GetAttackedTree takes nothing returns boolean
return IsTreeUnit(GetAttacker()) and GetDestructableLife(GetFilterDestructable()) <= 0.0
endfunction
function CreateTriggers takes nothing returns nothing
call InitTriggers()
endfunction
//===========================================================================
function Init takes nothing returns nothing
call CreateTriggers()
endfunction
Este código crea un sistema que detecta cuando un árbol es talado por un ataque y luego, después de un tiempo (definido en treeRespawnTime
), hace reaparecer un nuevo árbol en el mismo lugar. Puedes ajustar treeRespawnTime
al valor que desees.
Asegúrate de asociar el activador que llama a CreateTriggers
al evento de inicio del mapa en el Editor de Mapas de Warcraft 3. Además, ten en cuenta que este es un ejemplo básico y que puedes personalizarlo según tus necesidades específicas, como efectos visuales o sonidos adicionales para hacer que la aparición de árboles sea más llamativa.