- Joined
- Dec 30, 2008
- Messages
- 72
Hi, I am very new to WC3 programming, although not new to programming, and am having a little trouble understanding what leaks and what doesn't... I have read through some tutes on leaking and I think I may understand it but would appreciate it if someone can tell me whether this code is leaking in any form, and what else could I clean up.
JASS:
function Trig_Steal_Actions takes nothing returns nothing
//Local variables
local player TargetPlayer
local player ThiefPlayer
local integer Gold
local integer Lumber
local texttag PGold
local texttag PLumber
local unit TargetUnit
local location TargetUnitPos
//Set variables
set TargetPlayer = GetOwningPlayer(GetSpellTargetUnit())
set ThiefPlayer = GetOwningPlayer(GetSpellAbilityUnit())
set TargetUnit = GetSpellTargetUnit()
set TargetUnitPos = GetUnitLoc(TargetUnit)
set Lumber = ( ( GetPlayerState(TargetPlayer, PLAYER_STATE_RESOURCE_LUMBER) * 10 ) / 100 )
set Gold = ( ( GetPlayerState(TargetPlayer, PLAYER_STATE_RESOURCE_GOLD) * 10 ) / 100 )
//Begin ability: Remove casting unit and adjust gold and lumber
call RemoveUnit( GetSpellAbilityUnit() )
call AdjustPlayerStateBJ( Gold, ThiefPlayer, PLAYER_STATE_RESOURCE_GOLD )
call AdjustPlayerStateBJ( Lumber, ThiefPlayer, PLAYER_STATE_RESOURCE_LUMBER )
call AdjustPlayerStateBJ( ( Gold * -1 ), TargetPlayer, PLAYER_STATE_RESOURCE_GOLD )
call AdjustPlayerStateBJ( ( Lumber * -1 ), TargetPlayer, PLAYER_STATE_RESOURCE_LUMBER )
//Create Gold text
call CreateTextTagLocBJ( ( "Gold: -" + I2S(Gold) ), TargetUnitPos, 0, 10, 100, 0.00, 0.00, 0 )
set PGold = GetLastCreatedTextTag()
call SetTextTagPermanentBJ( PGold, false )
call SetTextTagLifespanBJ( PGold, 3.00 )
call SetTextTagFadepointBJ( PGold, 2.00 )
call SetTextTagVelocityBJ( PGold, 64, 90 )
//Create Lumber text
call CreateTextTagLocBJ( ( "Lumber: -" + I2S(Lumber) ), TargetUnitPos, -50, 10, 100, 0.00, 0.00, 0 )
set PLumber = GetLastCreatedTextTag()
call SetTextTagPermanentBJ( PLumber, false )
call SetTextTagLifespanBJ( PLumber, 3.00 )
call SetTextTagFadepointBJ( PLumber, 2.00 )
call SetTextTagVelocityBJ( PLumber, 64, 90 )
//Clean up location
call RemoveLocation(TargetUnitPos)
endfunction