jass creep revival help

Ruku-Chan

New Member
Reaction score
2
why wont this trigger work?


function Revive_Creep takes nothing returns nothing
local integer i

set i = GetUnitUserData(GetTriggerUnit())
call TriggerSleepAction( 60.00 )
call CreateUnitAtLoc( Player(PLAYER_NEUTRAL_AGGRESSIVE), udg_Creep_Types, udg_Creep_Positions, bj_UNIT_FACING )
call SetUnitUserData( GetLastCreatedUnit(), i )
endfunction

//===========================================================================
function InitTrig_Creep_Revive takes nothing returns nothing
set gg_trg_Creep_Revive = CreateTrigger( )
call TriggerRegisterPlayerUnitEventSimple( gg_trg_Creep_Revive, Player(PLAYER_NEUTRAL_AGGRESSIVE), EVENT_PLAYER_UNIT_DEATH )
call TriggerAddAction( gg_trg_Creep_Revive, function Revive_Creep )
endfunction
 

Azlier

Old World Ghost
Reaction score
461
Define "doesn't work". The creep should revive once, then never again because CreateUnitAtLoc doesn't set the last created unit.
 

Azlier

Old World Ghost
Reaction score
461
Where are you setting the array variables? If those have no value, it won't work. At all.
 

Azlier

Old World Ghost
Reaction score
461
No, no. Where is the array set? Not the size, its contents.
 

Ruku-Chan

New Member
Reaction score
2
Creep_Index integer array 30 value 0
Creep_Positions Point Array 30 value 0
Creep_Types Unit type array 30 value 0
 

Azlier

Old World Ghost
Reaction score
461
No! Show us the trigger where you set the values of the arrays themselves!

/facepalm

Oh, and here's another version of your code that might actually work.
JASS:
function CR_Revive takes nothing returns nothing
    local integer i
    local integer t
    local unit u = GetTriggerUnit()
    if GetOwningPlayer(u) == Player(12) then
        set i = GetUnitUserData(u)
        set t = GetUnitTypeId(u)
        call TriggerSleepAction(60)
        call SetUnitUserData(CreateUnitAtLoc(Player(12), t, udg_Creep_Positions<i>, 270), i)
    endif
    set u = null
endfunction

function InitTrig_Creep_Revive takes nothing returns nothing
    local trigger t = CreateTrigger()
    call TriggerRegisterPlayerUnitEvent(t, Player(12), EVENT_PLAYER_UNIT_DEATH, null)
    call TriggerAddAction(t, function CR_Revive)
endfunction</i>
 

Azlier

Old World Ghost
Reaction score
461
Nothing you don't have set up already. Well, we're hoping you set them up. You still haven't showed the trigger that sets them up.
 

Azlier

Old World Ghost
Reaction score
461
Well, duh. Location and integer arrays don't magically set themselves up and the custom values of units with them.
 

Ruku-Chan

New Member
Reaction score
2
lol i didnt know i got the one i had out of a test map....that was all that was in it.....can you give me one to set them up?
 

Azlier

Old World Ghost
Reaction score
461
Perhaps you should copy the one in the test map. My telepathic receptors are acting funny right now, and I reached the sorcery limit on this site.
 

Ruku-Chan

New Member
Reaction score
2
i found this if this is it dose it have to have all of that?


Melee Initialization
Events
Map initialization
Conditions
Actions
Melee Game - Use melee time of day (for all players)
Melee Game - Run melee AI scripts (for computer players)
Game - Set the time of day to 6.00
Game - Turn the day/night cycle Off
Game - Display to (All players) for 31.00 seconds the text: Type "-restore" to ...
Game - Display to (All players) for 120.00 seconds the text: No Combat System by...
Countdown Timer - Start Weather_Timer as a One-shot timer that will expire in (Random real number between 20.00 and 40.00) seconds
Set Hero = Dark Ranger 0036 <gen>
-------- - --------
Dialog - Create a dialog button for Repick labelled Dark Ranger
Set Herotype[1] = Dark Ranger
Set RepickBut[1] = (Last created dialog Button)
Dialog - Create a dialog button for Repick labelled Alchemist
Set Herotype[2] = Alchemist
Set RepickBut[2] = (Last created dialog Button)
Dialog - Create a dialog button for Repick labelled Beastmaster
Set Herotype[3] = Beastmaster
Set RepickBut[3] = (Last created dialog Button)
Dialog - Create a dialog button for Repick labelled Tinker
Set Herotype[4] = Tinker
Set RepickBut[4] = (Last created dialog Button)
Dialog - Create a dialog button for Repick labelled Pandaren Brewmaster
Set Herotype[5] = Pandaren Brewmaster
Set RepickBut[5] = (Last created dialog Button)
Dialog - Create a dialog button for Repick labelled Cancel
Set RepickBut[6] = (Last created dialog Button)
-------- - --------
Set Random_Start_Pos = (Random point in Start Position <gen>)
Custom script: call RemoveLocation(udg_Random_Start_Pos)
Set TEMP_Group = (Units owned by Neutral Hostile)
Unit Group - Pick every unit in TEMP_Group and do (Actions)
Loop - Actions
Set DeathIndex = (DeathIndex + 1)
Set Creep_Types[DeathIndex] = (Unit-type of (Picked unit))
Set Creep_Positions[DeathIndex] = (Position of (Picked unit))
Unit - Set the custom value of (Picked unit) to DeathIndex
Custom script: call DestroyGroup (udg_TEMP_Group)
 

Azlier

Old World Ghost
Reaction score
461
Please, put those triggers in [noparse]
Trigger:
[/noparse] tags next time. Much easier. Also, note this part.

Trigger:
  • Bloogh
    • Set TEMP_Group = (Units owned by Neutral Hostile)
    • Group - Pick every unit in TEMP_Group and do (Actions)
    • Loop - Actions
      • Set DeathIndex = (DeathIndex + 1)
      • Set Creep_Types[DeathIndex] = (Unit-type of (Picked unit))
      • Set Creep_Positions[DeathIndex] = (Position of (Picked unit))
      • Unit - Set the custom value of (Picked unit) to DeathIndex
      • Custom script: call DestroyGroup (udg_TEMP_Group)

See how it's setting the variables?
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      • Ghan
        Administrator - Servers are fun

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top