Name | Type | is_array | initial_value |
Acsry1 | item | Yes | |
Acsry1_Bonus | abilcode | Yes | |
Acsry2 | item | Yes | |
Acsry2_Bonus | abilcode | Yes | |
Arclouse_Drop | itemcode | Yes | |
Awarded_Gold | integer | No | |
Baby_Garm_Drop | itemcode | Yes | |
Baphomet_Jr_Drop | itemcode | Yes | |
Bash_trigunit | unit | No | |
Bash_trigunit_str | integer | No | |
Bigfoot_Drop | itemcode | Yes | |
Bloody_Knight_Drop | itemcode | Yes | |
Bloody_Murderer_Drop | itemcode | Yes | |
Body | item | Yes | |
Body_Bonus | abilcode | Yes | |
change_triggerer | player | No | |
change_triggerers_unit | unit | No | |
change_triggerers_unit_agi | integer | No | |
change_triggerers_unit_int | integer | No | |
change_triggerers_unit_str | integer | No | |
code_Bits | integer | Yes | |
code_BitsCRC | integer | Yes | |
code_BitsEnd | integer | No | |
code_CharMap | string | No | |
code_CRCSize | integer | No | |
code_CRCStart | integer | No | |
code_CurrentPlayer | player | No | |
code_CurrentPlayerGroup | force | No | |
code_Data | integer | Yes | |
code_DataEnd | integer | No | |
code_DataSample | integer | Yes | |
code_DataSize | integer | Yes | |
code_DataSizeTotal | integer | No | |
code_DecodingError | boolean | No | |
code_ErrorMessage | string | No | |
code_Raw | integer | Yes | |
code_RawBase | integer | No | |
code_RawEnd | integer | No | |
code_RawSize | integer | No | |
code_TB_Input | integer | No | |
code_TB_Output | integer | No | |
code_Text | string | No | |
code_Unit | unit | No | |
Crab_Drop | itemcode | Yes | |
Creep_Position | location | Yes | |
cv_Ability_AGI | integer | No | |
cv_Ability_INT | integer | No | |
cv_Ability_STR | integer | No | |
cv_Bits | integer | No | |
cv_CRC | integer | No | |
cv_Data | integer | No | |
cv_Equip | integer | Yes | |
cv_GameStatus | integer | No | |
cv_HeroType | integer | No | |
cv_ItemType | integer | Yes | |
cv_Level | integer | No | |
cv_Padding | integer | No | |
cv_Raw | integer | No | |
DamageTaken | real | Yes | |
Dark_Illusion_Drop | itemcode | Yes | |
Desert_Wolf_Drop | itemcode | Yes | |
dialog2 | dialog | No | |
dialogopener | player | No | |
Die_Command_Enabled | boolean | Yes | true |
Drainliar_Drop | itemcode | Yes | |
Drops_Drop | itemcode | Yes | |
DS_trigunit | unit | No | |
DS_trigunit_agi | integer | No | |
Dying_player | player | No | |
effect | effect | Yes | |
EventGroup | group | Yes | |
Evil_Druid_Drop | itemcode | Yes | |
Feet | item | Yes | |
Feet_Bonus | abilcode | Yes | |
Flag_Unit | unit | No | |
Gargoyle_Drop | itemcode | Yes | |
Garment | item | Yes | |
Garment_Bonus | abilcode | Yes | |
Gibbet_Drop | itemcode | Yes | |
GraveyardPoints | location | Yes | |
GraveyardUnits | unitcode | Yes | |
Guindull_Emp_under_attack | boolean | No | |
GuindullOwner | player | No | Player05 |
Harpy_Drop | itemcode | Yes | |
Heater_Drop | itemcode | Yes | |
High_Orc_Drop | itemcode | Yes | |
i | integer | No | |
Isinlife_emp_under_attack | boolean | No | |
IsinlifeOwner | player | No | Player00 |
JC_Group | force | No | |
Kick_No_Votes | integer | No | |
Kick_Votes | integer | No | |
Kick_Yes_Votes | integer | No | |
Killing_Player | player | No | |
Leaderboard | multiboard | No | |
LeftHand | item | Yes | |
LeftHand_Bonus | abilcode | Yes | |
Loot_Trigunit | unit | No | |
LwrHead | item | Yes | |
LwrHead_Bonus | abilcode | Yes | |
Mam_Trigunit | unit | No | |
Mam_trigunit_str | integer | No | |
MidHead | item | Yes | |
MidHead_Bonus | abilcode | Yes | |
Monster_List | unitcode | Yes | |
MVP_Drop_Item | integer | Yes | |
NewThirdClassHero | unit | No | |
Nightmare_Drop | itemcode | Yes | |
NPC | quest | Yes | |
NPCreqs | questitem | Yes | |
Orc_Archer_Drop | itemcode | Yes | |
Orc_Skeleton_Drop | itemcode | Yes | |
Orc_Warrior_Drop | itemcode | Yes | |
Owl_Baron_Drop | itemcode | Yes | |
Player_deaths | integer | Yes | |
Player_kills | integer | Yes | |
Player_Names | string | Yes | |
PlayerStorage | rect | Yes | |
Poporing_Drop | itemcode | Yes | |
Poring_Drop | itemcode | Yes | |
Potion_List | itemcode | Yes | |
Q6SA | unit | No | |
Quest | quest | Yes | |
QuestReqs | questitem | Yes | |
RepickUnitAGI | integer | No | |
RepickUnitINT | integer | No | |
RepickUnitSTR | integer | No | |
RightHand | item | Yes | |
RightHandBonus | abilcode | Yes | |
Roda_Frog_Drop | itemcode | Yes | |
Rybio_Drop | itemcode | Yes | |
SA1_Discovered | boolean | No | |
Savage_Drop | itemcode | Yes | |
Save_Dialog | dialog | Yes | |
Save_Enabled | boolean | No | |
Save_No | button | Yes | |
Save_Yes | button | Yes | |
SB_Target | unit | No | |
Skeleton_Archer_Drop | itemcode | Yes | |
Smith_List | itemcode | Yes | |
Sound | sound | Yes | |
Steal_Player | player | No | |
Steal_Victim | player | No | |
Storage_Enterer_Location | location | Yes | |
store_AbilityCount | integer | No | |
store_AbilityTypes | abilcode | Yes | |
store_HeroTypes | unitcode | Yes | |
store_HeroTypesEnd | integer | No | |
store_ItemTypes | itemcode | Yes | |
store_ItemTypesEnd | integer | No | |
store_Location | location | No | |
Target | unit | Yes | |
Team1OwnsGuindull | boolean | No | |
Team1OwnsIsinlife | boolean | No | true |
Team2OwnsGuindull | boolean | No | true |
Team2OwnsIsinlife | boolean | No | |
tempAbility | abilcode | No | |
tempBoolean | boolean | No | |
tempItem | item | No | |
tempItemType | itemcode | No | |
tempString | string | No | |
tempUnit | unit | No | |
tempUnitGroup | group | No | |
tempUnitType | unitcode | No | |
Thara_Frog_Drop | itemcode | Yes | |
Thief_Bug_Drop | itemcode | Yes | |
ThirdClassChangeInProgress | boolean | No | |
ThirdClassChanger | player | No | |
ThirdClassChangeUnit | unit | No | |
ThirdClassOpponent | unit | No | |
ThirdClassUnitLocation | location | No | |
tmpInteger | integer | No | |
Total_No_Votes | integer | No | |
Total_Votes | integer | No | |
Total_Yes_Votes | integer | No | |
TwoHand | item | Yes | |
TwoHand_Bonus | abilcode | Yes | |
UpperHead | item | Yes | |
UpperHead_Bonus | abilcode | Yes | |
Victims_Start_Gold | integer | No | |
Vote_Player | player | No | |
Vote_Time | timer | No | |
Vote_Window | timerdialog | No | |
VoteDialog | dialog | No | |
VoteKick | button | Yes | |
Wander_Man_Drop | itemcode | Yes | |
Whisper_Drop | itemcode | Yes | |
WoE_Enabled | boolean | No | |
WoE_On | boolean | No | |
WoE_Return_No_1 | button | No | |
WoE_Return_No_2 | button | No | |
WoE_Return_Yes_1 | button | No | |
WoE_Return_Yes_2 | button | No | |
WoE_Timer | timer | No | |
WoE_Timer2 | timer | No | |
WoE_Timer_Window | timerdialog | No | |
WoE_Timer_Window2 | timerdialog | No | |
Wraith_Drop | itemcode | Yes | |
Zombie_Prisoner_Drop | itemcode | Yes |
function Trig_Combine_Items_Conditions takes nothing returns boolean
if ( not ( GetItemCharges(GetManipulatedItem()) > 0 ) ) then
return false
endif
return true
endfunction
function Trig_Combine_Items_Actions takes nothing returns nothing
local integer ITEMCOUNT
local integer ITEMLOOP
local integer CHARGES
local integer MAXIMUM
local item NEWITEM
local unit OURUNIT
set MAXIMUM = 99
set ITEMCOUNT = 0
set ITEMLOOP = 0
set CHARGES = 0
set NEWITEM = GetManipulatedItem()
set OURUNIT = GetManipulatingUnit()
loop
exitwhen ITEMLOOP > 6
if ((GetItemTypeId(NEWITEM)) == (GetItemTypeId(UnitItemInSlotBJ(OURUNIT, ITEMLOOP)))) then
if ((GetItemCharges(UnitItemInSlotBJ(OURUNIT, ITEMLOOP)) + GetItemCharges(NEWITEM)) <= MAXIMUM) then
if not ( (UnitItemInSlotBJ(OURUNIT, ITEMLOOP)) == (NEWITEM)) then
set CHARGES = (GetItemCharges(UnitItemInSlotBJ(OURUNIT, ITEMLOOP))) + GetItemCharges(NEWITEM)
call SetItemCharges( UnitItemInSlotBJ(OURUNIT, ITEMLOOP), CHARGES )
call RemoveItem( NEWITEM )
set ITEMLOOP=7
endif
endif
endif
if ( ITEMLOOP < 7 ) then
set ITEMLOOP = ITEMLOOP + 1
endif
endloop
endfunction
//===========================================================================
function InitTrig_Combine_Items takes nothing returns nothing
set gg_trg_Combine_Items = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Combine_Items, EVENT_PLAYER_UNIT_PICKUP_ITEM )
call TriggerAddCondition( gg_trg_Combine_Items, Condition( function Trig_Combine_Items_Conditions ) )
call TriggerAddAction( gg_trg_Combine_Items, function Trig_Combine_Items_Actions )
endfunction
// positive shifts left (larger number), negative shifts right (smaller number)
// this is not a complete implementation of a bit shift because sign is ignored
function BitShift takes integer x, integer shift returns integer
return R2I(x * Pow( 2, shift))
endfunction
// bits is the number of bits to keep (starting with low bits)
function BitClip takes integer x, integer bits returns integer
return ModuloInteger ( x, R2I( Pow( 2, bits )))
endfunction
// All of the functions ending in "TB" serve the purpose of array pointers.
// Translate Base can write to/from any of 3 structures, the structures it uses
// are chosen by setting udg_code_TB_Input and udg_code_TB_Output
// This is complicated, but the goal is to push the complexity out of
// the Trig_Translate_Base_Actions function.
function GetTB takes integer arrayID, integer index returns integer
if arrayID == udg_cv_Data then
return udg_code_Data[index]
elseif arrayID == udg_cv_Bits then
return udg_code_Bits[index]
elseif arrayID == udg_cv_Raw then
return udg_code_Raw[index]
endif
return 0
endfunction
function GetInputTB takes integer index returns integer
return GetTB( udg_code_TB_Input, index)
endfunction
function GetOutputTB takes integer index returns integer
return GetTB( udg_code_TB_Output, index)
endfunction
function GetSizeTB takes integer arrayID, integer index returns integer
if arrayID == udg_cv_Data then
return udg_code_DataSize[index]
elseif arrayID == udg_cv_Bits then
return 1
elseif arrayID == udg_cv_Raw then
return udg_code_RawSize
endif
return 0
endfunction
function GetInputSizeTB takes integer index returns integer
return GetSizeTB( udg_code_TB_Input, index)
endfunction
function GetOutputSizeTB takes integer index returns integer
return GetSizeTB( udg_code_TB_Output, index)
endfunction
function SetTB takes integer arrayID, integer index, integer value returns integer
if arrayID == udg_cv_Data then
set udg_code_Data[index] = value
elseif arrayID == udg_cv_Bits then
set udg_code_Bits[index] = value
elseif arrayID == udg_cv_Raw then
set udg_code_Raw[index] = value
endif
return 0
endfunction
function SetOutputTB takes integer index, integer value returns integer
return SetTB( udg_code_TB_Output, index, value)
endfunction
function GetEndTB takes integer arrayID returns integer
if arrayID == udg_cv_Data then
return udg_code_DataEnd
elseif arrayID == udg_cv_Bits then
return udg_code_BitsEnd
elseif arrayID == udg_cv_Raw then
return udg_code_RawEnd
endif
return 0
endfunction
function GetOutputEndTB takes nothing returns integer
return GetEndTB( udg_code_TB_Output)
endfunction
function GetInputEndTB takes nothing returns integer
return GetEndTB( udg_code_TB_Input)
endfunction
// ***************************************************
function Trig_Translate_Base_Actions takes nothing returns nothing
local integer entry
local integer entrySize
local integer input= -1
local integer inputBitsLeft = 0
local integer inputEnd = GetInputEndTB()
local integer output = -1
local integer outputBitsLeft = 0
local integer outputEnd = GetOutputEndTB()
loop
if inputBitsLeft == 0 then
exitwhen input == inputEnd
set input = input + 1
set inputBitsLeft = GetInputSizeTB(input)
endif
if outputBitsLeft == 0 then
exitwhen output == outputEnd
set output = output + 1
call SetOutputTB(output, 0)
set outputBitsLeft = GetOutputSizeTB(output)
endif
set entrySize = IMinBJ(inputBitsLeft, outputBitsLeft)
set entry = GetInputTB(input)
set entry = BitShift (entry, - (GetInputSizeTB(input) - inputBitsLeft))
set entry = BitClip (entry, entrySize)
set entry = BitShift (entry, GetOutputSizeTB(output) - outputBitsLeft)
// call DisplayTimedTextToForce( GetPlayersAll(), 600.00, I2S(entry))
call SetOutputTB(output, GetOutputTB(output) + entry)
set inputBitsLeft = inputBitsLeft - entrySize
set outputBitsLeft = outputBitsLeft - entrySize
endloop
endfunction
//===========================================================================
function InitTrig_Code_Translate_Base takes nothing returns nothing
set gg_trg_Code_Translate_Base = CreateTrigger( )
call TriggerAddAction( gg_trg_Code_Translate_Base, function Trig_Translate_Base_Actions )
endfunction
function Trig_Code_Text_to_Raw_Actions takes nothing returns nothing
local integer rawIndex = 0
local integer textIndex = 1
local integer charMapIndex
local string currentCharacter
local integer textLength = StringLength(udg_code_Text)
loop
exitwhen rawIndex > udg_code_RawEnd
if textIndex > textLength then
set udg_code_DecodingError = true
set udg_code_ErrorMessage = "Not enough characters in entered code, code should be " + I2S(udg_code_RawEnd + 1) + " characters long."
exitwhen true
endif
set currentCharacter = StringCase(SubStringBJ(udg_code_Text, textIndex, textIndex), true)
set charMapIndex = 1
loop
if SubStringBJ(udg_code_CharMap, charMapIndex, charMapIndex) == currentCharacter then
set udg_code_Raw[rawIndex] = charMapIndex - 1
set rawIndex = rawIndex + 1
exitwhen true
endif
set charMapIndex = charMapIndex + 1
exitwhen charMapIndex > udg_code_RawBase
endloop
set textIndex = textIndex + 1
endloop
endfunction
//===========================================================================
function InitTrig_Code_Text_to_Raw takes nothing returns nothing
set gg_trg_Code_Text_to_Raw = CreateTrigger( )
call TriggerAddAction( gg_trg_Code_Text_to_Raw, function Trig_Code_Text_to_Raw_Actions )
endfunction