Name | Type | is_array | initial_value |
A | string | No | |
a | string | No | |
B | string | No | |
b | string | No | |
C | string | No | |
c | string | No | |
Caster | unit | No | |
CasterLife | integer | No | |
CasterLoc | location | No | |
Cheater | player | No | |
CityReach | boolean | No | |
Count | integer | No | |
D | string | No | |
d | string | No | |
E | string | No | |
e | string | No | |
Eight | string | No | |
f | string | No | |
F | string | No | |
Five | string | No | |
Four | string | No | |
g | string | No | |
G | string | No | |
GetItemChance | integer | No | |
GravePoints | location | Yes | |
GravePoints_Copy | location | Yes | |
H | string | No | |
h | string | No | |
HeroPass1 | boolean | No | |
HeroPass2 | boolean | No | |
HeroPass3 | boolean | No | |
HeroPass4 | boolean | No | |
HeroPassAz | boolean | No | |
Heros | unitcode | Yes | |
HerosOwned | integer | No | |
I | string | No | |
i | string | No | |
Item | itemcode | Yes | |
j | string | No | |
J | string | No | |
k | string | No | |
K | string | No | |
l | string | No | |
L | string | No | |
LevelSave | string | No | |
LoadCode | string | No | |
m | string | No | |
M | string | No | |
n | string | No | |
N | string | No | |
Nine | string | No | |
o | string | No | |
O | string | No | |
OgreSleep | effect | No | |
One | string | No | |
OtherSaves | string | No | |
OwnerOfWarlock | player | No | |
p | string | No | |
P | string | No | |
P1Bag | unit | No | |
P1Hero | unit | No | |
P2Bag | unit | No | |
P2Hero | unit | No | |
P3Bag | unit | No | |
P3Hero | unit | No | |
P4Bag | unit | No | |
P4Hero | unit | No | |
q | string | No | |
Q | string | No | |
r | string | No | |
R | string | No | |
RandomChance | integer | No | |
RandomReset | integer | No | |
s | string | No | |
S | string | No | |
SaveCode | string | No | |
ScoutMessage1 | quest | No | |
ScoutMessage2 | quest | No | |
ScoutMessage3 | quest | No | |
ScoutMessage4 | quest | No | |
Seven | string | No | |
Six | string | No | |
SpaceSlot | integer | Yes | |
SpcVolcano1 | effect | No | |
SpcVolcano2 | effect | No | |
SpcVolcano3 | effect | No | |
SpiderHunting1 | quest | No | |
SpiderHunting2 | quest | No | |
SpiderHunting3 | quest | No | |
SpiderHunting4 | quest | No | |
SpidersKilled1 | integer | No | |
SpidersKilled2 | integer | No | |
SpidersKilled3 | integer | No | |
SpidersKilled4 | integer | No | |
T | string | No | |
t | string | No | |
TempPoint | location | No | |
TextDamage | group | No | |
Three | string | No | |
tmpInteger | integer | No | |
tmpInteger_Copy | integer | No | |
TotalHeros | integer | No | |
TotalItems | integer | No | |
TrollHunting1 | quest | No | |
TrollHunting2 | quest | No | |
TrollHunting3 | quest | No | |
TrollHunting4 | quest | No | |
TrollsKilled1 | integer | No | |
TrollsKilled2 | integer | No | |
TrollsKilled3 | integer | No | |
TrollsKilled4 | integer | No | |
Two | string | No | |
u | string | No | |
U | string | No | |
V | string | No | |
v | string | No | |
w | string | No | |
W | string | No | |
X | string | No | |
x | string | No | |
Y | string | No | |
y | string | No | |
z | string | No | |
Z | string | No | |
Zero | string | No |
// ********************************************************************
// ** Item Stacking System **
// ** Created by Mr. Zero **
// ** Last update: 05/08-2007 | Version: 1.01 **
// ********************************************************************
function ISS_Set_Charges takes nothing returns nothing
local integer i = 0
local item a = GetManipulatedItem()
local unit b = GetManipulatingUnit()
if (GetItemCharges(a)>=1) then
loop
exitwhen i>5
if (((UnitItemInSlot(b,i)!=a)and(GetItemTypeId(UnitItemInSlot(b,i))==GetItemTypeId(a)))and(GetItemCharges(UnitItemInSlot(b,i))<GetItemLevel(a))) then
if ((GetItemCharges(UnitItemInSlot(b,i))+GetItemCharges(a))<=GetItemLevel(a)) then
call SetItemCharges(UnitItemInSlot(b,i),(GetItemCharges(UnitItemInSlot(b,i))+GetItemCharges(a)))
call RemoveItem(a)
set i = 5
else
call SetItemCharges(a, ((GetItemCharges(UnitItemInSlot(b, i)) + GetItemCharges(a))) - GetItemLevel(a))
call SetItemCharges(UnitItemInSlot(b, i), GetItemLevel(a))
call UnitAddItem(b, a)
set i = 5
endif
endif
set i = i + 1
endloop
endif
set a = null
set b = null
return
endfunction
function ISS_Remove_Charges takes nothing returns nothing
local integer i
local integer b = GetIssuedOrderId()
local unit c = GetOrderedUnit()
local location d = GetUnitLoc(c)
local location e = Location(GetLocationX(d) + 80.00 * Cos(GetUnitFacing(c) * (3.14159/180.0)),GetLocationY(d) + 80.00 * Sin(GetUnitFacing(c) * (3.14159/180.0)))
local item f = GetOrderTargetItem()
local item g = UnitItemInSlot(c, (b - 852002))
if ((((b >= 852002) and (b <= 852007)) and (GetItemCharges(f) != 0) and (g != null))) then
if (f == g) then
set g = CreateItem(GetItemTypeId(f), GetLocationX(e), GetLocationY(e))
set i = GetItemCharges(g)
call RemoveItem(g)
if (GetItemCharges(f) > i) then
call SetItemCharges(f, (GetItemCharges(f) - i))
set g = CreateItem(GetItemTypeId(f), GetLocationX(e), GetLocationY(e))
call SetItemCharges(g, i)
set i = 0
loop
exitwhen i > 5
if ( UnitItemInSlot(c, i) == null) then
call DisableTrigger(gg_trg_Item_Stacking_System)
call UnitAddItem(c, g)
call EnableTrigger(gg_trg_Item_Stacking_System)
set i = 5
endif
set i = i + 1
endloop
else
call UnitRemoveItem(c, f)
call SetItemPosition(f, GetLocationX(e), GetLocationY(e))
endif
else
if (((GetItemTypeId(f) == GetItemTypeId(g)) and (f != g)) and (GetItemCharges(f) < GetItemLevel(f))) then
if ((GetItemCharges(f) + GetItemCharges(g)) <= GetItemLevel(f)) then
call SetItemCharges(f, (GetItemCharges(f) + GetItemCharges(g)))
call RemoveItem(g)
else
call SetItemCharges(g, ((GetItemCharges(f) + GetItemCharges(g))) - GetItemLevel(f))
call SetItemCharges(f, GetItemLevel(f))
endif
endif
endif
endif
set c = null
set f = null
set g = null
call RemoveLocation(d)
call RemoveLocation(e)
return
endfunction
//===========================================================================
function InitTrig_Item_Stacking_System takes nothing returns nothing
local integer i = 0
local trigger ISS_Remove_Charges_Trigger = CreateTrigger()
set gg_trg_Item_Stacking_System = CreateTrigger()
loop
exitwhen i == bj_MAX_PLAYER_SLOTS
call TriggerRegisterPlayerUnitEvent(gg_trg_Item_Stacking_System, Player(i), EVENT_PLAYER_UNIT_PICKUP_ITEM, null)
call TriggerRegisterPlayerUnitEvent(ISS_Remove_Charges_Trigger, Player(i), EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER, null)
set i = i + 1
endloop
call TriggerAddAction(gg_trg_Item_Stacking_System, function ISS_Set_Charges)
call TriggerAddAction(ISS_Remove_Charges_Trigger, function ISS_Remove_Charges)
set ISS_Remove_Charges_Trigger = null
endfunction