function HasItemtype takes unit whichUnit, item this returns item
local integer i = 0
local item whichItem = null
local integer itemType = GetItemTypeId(this)
if whichUnit != null then
loop
exitwhen i > 6
set whichItem = UnitItemInSlot(whichUnit, i)
if GetItemTypeId(whichItem) == itemType and whichItem != this then
return whichItem
endif
set i = i + 1
endloop
endif
return null
endfunction
function StackItem takes unit whichHero, item whichItem returns nothing
local item stack = HasItemtype(whichHero,whichItem)
local integer itemCharges = GetItemCharges(stack)
if stack != null and stack != whichItem and itemCharges > 0 then
call SetItemCharges( stack, itemCharges+ GetItemCharges(whichItem))
call RemoveItem( whichItem)
endif
endfunction
function UnitGuardUnitAI takes unit summon, unit master returns nothing
local location target
local real angle
local real dist
loop
exitwhen IsUnitDeadBJ(summon)
if (DistanceBetweenPoints(GetUnitLoc(summon), GetUnitLoc(master)) > 1000.00 ) then
set target = GetUnitLoc(master)
call IssuePointOrderLocBJ(summon, "move", target)
call RemoveLocation(target)
else
set target = GetUnitLoc(master)
set angle = GetRandomDirectionDeg()
set dist = GetRandomReal(100.00, 500.00)
call MoveLocation(target, GetLocationX(target) + dist * Cos(angle * bj_DEGTORAD), GetLocationY(target) + dist * Sin(angle * bj_DEGTORAD))
call IssuePointOrderLocBJ(summon, "attack", target)
call RemoveLocation(target)
endif
call TriggerSleepAction( 1.0+GetRandomReal(0.0,1.5))
endloop
set target = null
endfunction
Name | Type | is_array | initial_value |
ButtonClassic | button | No | |
ButtonDemon | button | No | |
ButtonEasy | button | No | |
ButtonHard | button | No | |
ButtonHuman | button | No | |
ButtonNaga | button | No | |
ButtonNightElf | button | No | |
ButtonNormal | button | No | |
ButtonOrc | button | No | |
ButtonShuffle | button | No | |
ButtonUndead | button | No | |
CodeString | string | No | |
Difficulty | dialog | No | |
GameType | dialog | No | |
GuardianTowers | integer | No | 4 |
Hero | group | Yes | |
HeroLevelBase | integer | No | 1 |
Kills | integer | Yes | |
NumOfAbomination | integer | No | |
NumOfArcher | integer | No | |
NumOfBanshee | integer | No | |
NumOfCouatl | integer | No | |
NumOfCryptFiend | integer | No | |
NumOfDoomGuard | integer | No | |
NumOfDragonhawkRider | integer | No | |
NumOfDruidOfTheClaw | integer | No | |
NumOfDruidOfTheTalon | integer | No | |
NumOfDryad | integer | No | |
NumOfFelBeast | integer | No | |
NumOfFellguard | integer | No | |
NumOfFootman | integer | No | |
NumOfFrostWyrm | integer | No | |
NumOfGhoul | integer | No | |
NumOfGrunt | integer | No | |
NumOfGryphonRider | integer | No | |
NumOfHuntress | integer | No | |
NumOfInfernal | integer | No | |
NumOfInfernalContraption | integer | No | |
NumOfInfernalJuggernaut | integer | No | |
NumOfKnight | integer | No | |
NumOfKodoBeast | integer | No | |
NumOfMeatWagon | integer | No | |
NumOfMountainGiant | integer | No | |
NumOfMurgulReaver | integer | No | |
NumOfNagaMyrmidon | integer | No | |
NumOfNagaRoyalGuard | integer | No | |
NumOfNagaSiren | integer | No | |
NumOfNecromancer | integer | No | |
NumOfPriest | integer | No | |
NumOfRaider | integer | No | |
NumOfRifleman | integer | No | |
NumOfShade | integer | No | |
NumOfShaman | integer | No | |
NumOfSiegeEngine | integer | No | |
NumOfSnapDragon | integer | No | |
NumOfSorceress | integer | No | |
NumOfSpellBreaker | integer | No | |
NumOfSpiritWalker | integer | No | |
NumOfSuccubus | integer | No | |
NumOfTauren | integer | No | |
NumOfTrollHeadhunter | integer | No | |
NumOfTrollWitchDocter | integer | No | |
Race | integer | Yes | |
UniversalTimer | integer | No | 45 |
WaveSpawn | integer | Yes | |
X | integer | No | 0 |
Y | integer | No | |
Z | integer | No |