- Joined
- Nov 3, 2013
- Messages
- 989
The "Great Fire" for player 1 is being misplaced. It's not appearing at 0, 0 either though. (And there's no region which has the same x and y at their center as where it appears)
PS. there's no need to mention the location leaks
-
buildSys init
-
Events
-
Time - Elapsed game time is 0.00 seconds
-
-
Conditions
-
Actions
-
Custom script: set udg_hash_buildSys = InitHashtable()
-
-------- units for handle id --------
-
Set buildSys_unit[0] = |c00FF0000Hall of Warchief|r 0025 <gen>
-
Set buildSys_unit[1] = |c00FF0000Hall of Warchief|r 0026 <gen>
-
Set buildSys_unit[2] = |c00FF0000Hall of Warchief|r 0027 <gen>
-
-------- ability raw codes --------
-
Set buildSys_abilityId[0] = Build Dummy (Barracks)
-
Set buildSys_abilityId[1] = Build Dummy (Stronghold Towers)
-
Set buildSys_abilityId[2] = Build Dummy (Great Fire)
-
-------- dummy ability raw codes --------
-
Set buildSys_abilityIdDisabled[0] = Build Dummy Disabled (Barracks)
-
Set buildSys_abilityIdDisabled[1] = Build Dummy Disabled (Stronghold Towers)
-
Set buildSys_abilityIdDisabled[2] = Build Dummy Disabled (Great Fire)
-
-------- Player 1 barracks --------
-
Set buildSys_integer[0] = 0
-
Set buildSys_uType[0] = |c00FF0000Barracks|r (Bloodbane)
-
Set buildSys_real[0] = 3726.00
-
Set buildSys_real[1] = -6572.00
-
Set buildSys_real[2] = 358.00
-
-------- Player 1 stronghold towers --------
-
Set buildSys_integer[1] = 3
-
Set buildSys_uType[1] = |c00FF0000Stronghold Tower|r
-
Set buildSys_real[3] = (X of (Center of Tower Red 1 <gen>))
-
Set buildSys_real[4] = (Y of (Center of Tower Red 1 <gen>))
-
Set buildSys_real[5] = 270.00
-
Set buildSys_real[6] = (X of (Center of Tower Red 2 <gen>))
-
Set buildSys_real[7] = (Y of (Center of Tower Red 2 <gen>))
-
Set buildSys_real[8] = 270.00
-
Set buildSys_real[9] = (X of (Center of Tower Red 3 <gen>))
-
Set buildSys_real[10] = (Y of (Center of Tower Red 3 <gen>))
-
Set buildSys_real[11] = 270.00
-
Set buildSys_real[12] = (X of (Center of Tower Red 4 <gen>))
-
Set buildSys_real[13] = (Y of (Center of Tower Red 4 <gen>))
-
Set buildSys_real[14] = 270.00
-
-------- Player 1 Great Fire --------
-
Set buildSys_integer[2] = 0
-
Set buildSys_uType[2] = |c00FF0000Great Fire|r
-
Set buildSys_real[15] = (X of (Center of Bonfire Red <gen>))
-
Set buildSys_real[16] = (Y of (Center of Bonfire Red <gen>))
-
Set buildSys_real[17] = 270.00
-
-------- run the trigger which will store all the values in the hashtable --------
-
Trigger - Run buildSys store loops Copy 2 <gen> (ignoring conditions)
-
-
JASS:
function Trig_buildSys_store_loops_Copy_2_Actions takes nothing returns nothing
local integer i = 0
local integer j
local integer a = 0
local integer b
local integer h
local integer aId
local integer n
loop
exitwhen udg_buildSys_abilityId[a] == 0
call SaveInteger(udg_hash_buildSys, udg_buildSys_abilityId[a], 0, udg_buildSys_abilityIdDisabled[a])
set a = a +1
endloop
call DisplayTextToForce( GetPlayersAll(), "a = " + (I2S(a) ) )
loop
set h = GetHandleId( udg_buildSys_unit[i] )
exitwhen h == 0
call DisplayTextToForce( GetPlayersAll(), "i = " + (I2S(i) ) )
set j = 0
loop
set aId = udg_buildSys_abilityId[j]
exitwhen aId == 0
call DisplayTextToForce( GetPlayersAll(), "j = " + ( I2S(j) ) )
set n = i * a + j
call SaveInteger(udg_hash_buildSys, h, aId, n)
call SaveInteger(udg_hash_buildSys, n, 0, udg_buildSys_integer[n])
call SaveInteger(udg_hash_buildSys, n, 1, udg_buildSys_uType[n])
set b = 0
loop
exitwhen udg_buildSys_real[b] == 0
call DisplayTextToForce( GetPlayersAll(), "b = " + ( I2S(b) ) )
call SaveReal(udg_hash_buildSys, n, 2 + b, udg_buildSys_real[b])
set b = b +1
endloop
set j = j +1
endloop
set i = i +1
endloop
endfunction
//===========================================================================
function InitTrig_buildSys_store_loops_Copy_2 takes nothing returns nothing
set gg_trg_buildSys_store_loops_Copy_2 = CreateTrigger( )
call TriggerAddAction( gg_trg_buildSys_store_loops_Copy_2, function Trig_buildSys_store_loops_Copy_2_Actions )
endfunction
JASS:
function Trig_buildSys_start_Func004C takes nothing returns boolean
if ( ( GetSpellAbilityId() == 'A02B' ) ) then
return true
endif
if ( ( GetSpellAbilityId() == 'A02C' ) ) then
return true
endif
if ( ( GetSpellAbilityId() == 'A06Z' ) ) then
return true
endif
if ( ( GetSpellAbilityId() == 'A05V' ) ) then
return true
endif
if ( ( GetSpellAbilityId() == 'A074' ) ) then
return true
endif
if ( ( GetSpellAbilityId() == 'A072' ) ) then
return true
endif
return false
endfunction
function Trig_buildSys_start_Conditions takes nothing returns boolean
if ( not Trig_buildSys_start_Func004C() ) then
return false
endif
return true
endfunction
function Trig_buildSys_start_Actions takes nothing returns nothing
local integer i = 0
local integer j
local integer a = GetSpellAbilityId()
local integer n
local integer uNum
local integer uType
local real array uXYF
set udg_u = GetTriggerUnit()
set udg_p = GetTriggerPlayer()
set udg_i = GetConvertedPlayerId(udg_p)
set n = LoadInteger( udg_hash_buildSys, GetHandleId( udg_u ), a )
call UnitRemoveAbility( udg_u, a )
call UnitAddAbility( udg_u, LoadInteger( udg_hash_buildSys, a, 0 ) )
// number of buildings to be built
set uNum = LoadInteger( udg_hash_buildSys, n, 0 )
// unit type of building(s) to be built
set uType = LoadInteger( udg_hash_buildSys, n, 1 )
loop
// i loops = number of buildings to be built
exitwhen i > uNum
set j = 0
loop
// j loops = x, y and facing angle for each building
exitwhen j > 2
set uXYF[j] = LoadReal( udg_hash_buildSys, n, i * 3 + 2 + j )
set j = j +1
endloop
call CreateUnit( udg_p, uType, uXYF[0], uXYF[1], uXYF[2] )
set i = i + 1
endloop
endfunction
//===========================================================================
function InitTrig_buildSys_start takes nothing returns nothing
set gg_trg_buildSys_start = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_buildSys_start, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_buildSys_start, Condition( function Trig_buildSys_start_Conditions ) )
call TriggerAddAction( gg_trg_buildSys_start, function Trig_buildSys_start_Actions )
endfunction
PS. there's no need to mention the location leaks
Last edited: