function ParabolaZ takes real h, real d, real x returns real
return (4 * h / d) * (d - x) * (x / d)
endfunction
function ZFacing takes real h, real d, real x returns real
return Atan(4*h/d - 8*h*x/(d*d))*bj_RADTODEG+0.5
endfunction
Name | Type | is_array | initial_value |
Amulet_Ability_1 | abilcode | Yes | |
Amulet_Ability_2 | abilcode | Yes | |
Amulet_Ability_3 | abilcode | Yes | |
Amulet_Ability_4 | abilcode | Yes | |
Amulet_Ability_5 | abilcode | Yes | |
Amulet_Ability_6 | abilcode | Yes | |
Amulet_Agi_Bonus | integer | Yes | |
Amulet_Int_Bonus | integer | Yes | |
Amulet_IType | itemcode | Yes | |
Amulet_Str_Bonus | integer | Yes | |
AmuletEquiped | boolean | Yes | |
Armor_Ability_1 | abilcode | Yes | |
Armor_Ability_2 | abilcode | Yes | |
Armor_Ability_3 | abilcode | Yes | |
Armor_Ability_4 | abilcode | Yes | |
Armor_Agi_Bonus | integer | Yes | |
Armor_Arm_Bonus | integer | Yes | |
Armor_Int_Bonus | integer | Yes | |
Armor_IType | itemcode | Yes | |
Armor_Str_Bonus | integer | Yes | |
ArmorEquiped | boolean | Yes | |
b | boolean | No | |
Head_Ability_1 | abilcode | Yes | |
Head_Ability_2 | abilcode | Yes | |
Head_Ability_3 | abilcode | Yes | |
Head_Ability_4 | abilcode | Yes | |
Head_Agi_Bonus | integer | Yes | |
Head_Arm_Bonus | integer | Yes | |
Head_Int_Bonus | integer | Yes | |
Head_IType | itemcode | Yes | |
Head_Str_Bonus | integer | Yes | |
HeadEquiped | boolean | Yes | |
Hero | unit | Yes | |
i | integer | Yes | |
InEqMenu | boolean | Yes | |
it | itemcode | No | |
Item_Amulet | itemcode | Yes | |
Item_Armor | itemcode | Yes | |
Item_Head | itemcode | Yes | |
Item_Normal1 | itemcode | Yes | |
Item_Normal1_ChargesLeft | integer | Yes | |
Item_Normal2 | itemcode | Yes | |
Item_Normal2_ChargesLeft | integer | Yes | |
Item_Normal3 | itemcode | Yes | |
Item_Normal3_ChargesLeft | integer | Yes | |
Item_Normal4 | itemcode | Yes | |
Item_Normal4_ChargesLeft | integer | Yes | |
Item_Normal5 | itemcode | Yes | |
Item_Normal5_ChargesLeft | integer | Yes | |
Item_Normal6 | itemcode | Yes | |
Item_Normal6_ChargesLeft | integer | Yes | |
Item_Ring | itemcode | Yes | |
Item_Shield | itemcode | Yes | |
Item_Weapon | itemcode | Yes | |
playergroup | force | No | |
Ring_Ability_1 | abilcode | Yes | |
Ring_Ability_2 | abilcode | Yes | |
Ring_Ability_3 | abilcode | Yes | |
Ring_Ability_4 | abilcode | Yes | |
Ring_Ability_5 | abilcode | Yes | |
Ring_Ability_6 | abilcode | Yes | |
Ring_Agi_Bonus | integer | Yes | |
Ring_Int_Bonus | integer | Yes | |
Ring_IType | itemcode | Yes | |
Ring_Str_Bonus | integer | Yes | |
RingEquiped | boolean | Yes | |
Shield_Ability_1 | abilcode | Yes | |
Shield_Ability_2 | abilcode | Yes | |
Shield_Ability_3 | abilcode | Yes | |
Shield_Ability_4 | abilcode | Yes | |
Shield_Agi_Bonus | integer | Yes | |
Shield_Arm_Bonus | integer | Yes | |
Shield_Int_Bonus | integer | Yes | |
Shield_IType | itemcode | Yes | |
Shield_Str_Bonus | integer | Yes | |
ShieldEquiped | boolean | Yes | |
temp_point | location | Yes | |
TotalAmuletItems | integer | No | |
TotalArmorItems | integer | No | |
TotalHeadItems | integer | No | |
TotalRingItems | integer | No | |
TotalShieldItems | integer | No | |
TotalWeaponItems | integer | No | |
TwoHandedWeaponEquiped | boolean | Yes | |
Weapon_Ability_1 | abilcode | Yes | |
Weapon_Ability_2 | abilcode | Yes | |
Weapon_Ability_3 | abilcode | Yes | |
Weapon_Ability_4 | abilcode | Yes | |
Weapon_Agi_Bonus | integer | Yes | |
Weapon_Dmg_Bonus | integer | Yes | |
Weapon_Int_Bonus | integer | Yes | |
Weapon_IType | itemcode | Yes | |
Weapon_Str_Bonus | integer | Yes | |
Weapon_TwoHanded | boolean | Yes | |
WeaponEquiped | boolean | Yes |
Thank you for watching my system! (Created by: The_Flood(a.k.a. Flood))
With this system are you able to equip up to 6 items: Weapon, Shield, Head, Armor, Amulet and Ring items.
The system is very simple, even beginners with GUI may be able to use it.
---------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------
First of all, this system uses ALOT of variables, sorry for that. So, when you shall copy this system, make sure
you've enabled "Automatically create unkown variables while pasting trigger data", you can find this option at > File -> Preferences.
What do I need for this system?
1. You'll need all variables.
2. You'll need all triggers.
3. You'll need all required abilities (Armor - Armor Bonus, Head - Armor Bonus, Shield - Armor Bonus, Weapon - Damage Bonus, Inventory Spell, Equip Item)
4. You'll need all required items (Amulet, Armor, Equipment Menu, Head, Ring, Shield and Weapon)
You'll also need to import the icon I've imported into this map, if you want it.
----------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------
Well, how to use this system?
As I sad, it's very simple.
Follow these steps, and you're done:
1. Create your Item.
> [Permanent] Items types MUST be Head equiped items.
> [Charged] Items types MUST be Shield equiped items.
> [Power Up] Items types MUST be Weapon equiped items.
> [Artifact] Items types MUST be Armor equiped items.
> [Purchasable] Items types MUST be Amulet equiped items.
> [Campaign] Items types MUST be Ring equiped items.
2. Check your Items Letters and Numbers by pressing Ctrl + D while in Object Editor.
3. Select the correct trigger in the trigger editor. (If you created a helm equiped item, select the Head Initialization JASS trigger)
This is the database trigger for all head items.
4. The Initialization trigger may be looking hard, but it's simple. If you created an helm item, you copy and paste a database thing. Example:
This is the "Skeleton Helm" Item.
// --------------------------------------
set udg_i[1] = ( udg_i[1] + 1 ) (Don't edit this)
set udg_Head_IType[udg_i[1]] = 'I00N' (The Letters and numbers for this item) (Ctrl + D)
set udg_Head_Arm_Bonus[udg_i[1]] = 1 (How much armor bonus the item will give)
set udg_Head_Str_Bonus[udg_i[1]] = 0 (How much Strength bonus the item will give)
set udg_Head_Agi_Bonus[udg_i[1]] = 0 (How much Agility Bonus the item will give)
set udg_Head_Int_Bonus[udg_i[1]] = 0 (How much Inbtelligence Bonus the item will give)
set udg_Head_Ability_1[udg_i[1]] = 0 (If the item should give any bonus, attackspeed or anything, paste your abilities letters and numbers here (0 or 'null' is default = nothing))
set udg_Head_Ability_2[udg_i[1]] = 0 (If the item should give any bonus, attackspeed or anything, paste your abilities letters and numbers here (0 or 'null' is default = nothing))
5. Now you're done, you should always start your map and try the new created item, make sure it works.
Other important stuffs:
> All "EqOrUnEq" Triggers, do NOT edit those, if you don't know what you're doing.
> If you find any bugs, glitches and more, tell me!
> You don't have to copy all helms, weapons, shields, amulets, rings and armors I've created. I've just created them for examples. :)
Have fun using this system!! ^^
function InitTrig_Head_Initialization takes nothing returns nothing
set udg_i[1] = ( udg_i[1] + 1 )
set udg_Head_IType[udg_i[1]] = 'I00N'
set udg_Head_Arm_Bonus[udg_i[1]] = 1
set udg_Head_Str_Bonus[udg_i[1]] = 0
set udg_Head_Agi_Bonus[udg_i[1]] = 0
set udg_Head_Int_Bonus[udg_i[1]] = 0
set udg_Head_Ability_1[udg_i[1]] = 0
set udg_Head_Ability_2[udg_i[1]] = 0
set udg_Head_Ability_3[udg_i[1]] = 0
set udg_Head_Ability_4[udg_i[1]] = 0
// --------------------------------------
set udg_i[1] = ( udg_i[1] + 1 )
set udg_Head_IType[udg_i[1]] = 'I00O'
set udg_Head_Arm_Bonus[udg_i[1]] = 1
set udg_Head_Str_Bonus[udg_i[1]] = 1
set udg_Head_Agi_Bonus[udg_i[1]] = 0
set udg_Head_Int_Bonus[udg_i[1]] = 0
set udg_Head_Ability_1[udg_i[1]] = 0
set udg_Head_Ability_2[udg_i[1]] = 0
set udg_Head_Ability_3[udg_i[1]] = 0
set udg_Head_Ability_4[udg_i[1]] = 0
// --------------------------------------
set udg_i[1] = ( udg_i[1] + 1 )
set udg_Head_IType[udg_i[1]] = 'I00P'
set udg_Head_Arm_Bonus[udg_i[1]] = 1
set udg_Head_Str_Bonus[udg_i[1]] = 0
set udg_Head_Agi_Bonus[udg_i[1]] = 0
set udg_Head_Int_Bonus[udg_i[1]] = 1
set udg_Head_Ability_1[udg_i[1]] = 0
set udg_Head_Ability_2[udg_i[1]] = 0
set udg_Head_Ability_3[udg_i[1]] = 0
set udg_Head_Ability_4[udg_i[1]] = 0
// --------------------------------------
set udg_i[1] = ( udg_i[1] + 1 )
set udg_Head_IType[udg_i[1]] = 'I007'
set udg_Head_Arm_Bonus[udg_i[1]] = 1
set udg_Head_Str_Bonus[udg_i[1]] = 0
set udg_Head_Agi_Bonus[udg_i[1]] = 1
set udg_Head_Int_Bonus[udg_i[1]] = 0
set udg_Head_Ability_1[udg_i[1]] = 0
set udg_Head_Ability_2[udg_i[1]] = 0
set udg_Head_Ability_3[udg_i[1]] = 0
set udg_Head_Ability_4[udg_i[1]] = 0
// --------------------------------------
set udg_i[1] = ( udg_i[1] + 1 )
set udg_Head_IType[udg_i[1]] = 'I00W'
set udg_Head_Arm_Bonus[udg_i[1]] = 3
set udg_Head_Str_Bonus[udg_i[1]] = 4
set udg_Head_Agi_Bonus[udg_i[1]] = 2
set udg_Head_Int_Bonus[udg_i[1]] = 0
set udg_Head_Ability_1[udg_i[1]] = 'A00B'
set udg_Head_Ability_2[udg_i[1]] = 0
set udg_Head_Ability_3[udg_i[1]] = 0
set udg_Head_Ability_4[udg_i[1]] = 0
// --------------------------------------
set udg_TotalHeadItems = udg_i[1]
endfunction
function InitTrig_Armor_Initialization takes nothing returns nothing
set udg_i[2] = ( udg_i[2] + 1 )
set udg_Armor_IType[udg_i[2]] = 'I00T'
set udg_Armor_Arm_Bonus[udg_i[2]] = 2
set udg_Armor_Agi_Bonus[udg_i[2]] = 0
set udg_Armor_Int_Bonus[udg_i[2]] = 0
set udg_Armor_Str_Bonus[udg_i[2]] = 0
set udg_Armor_Ability_1[udg_i[2]] = 0
set udg_Armor_Ability_2[udg_i[2]] = 0
set udg_Armor_Ability_3[udg_i[2]] = 0
set udg_Armor_Ability_4[udg_i[2]] = 0
// --------------------------------------
set udg_i[2] = ( udg_i[2] + 1 )
set udg_Armor_IType[udg_i[2]] = 'I008'
set udg_Armor_Arm_Bonus[udg_i[2]] = 2
set udg_Armor_Str_Bonus[udg_i[2]] = 1
set udg_Armor_Agi_Bonus[udg_i[2]] = 0
set udg_Armor_Int_Bonus[udg_i[2]] = 0
set udg_Armor_Ability_1[udg_i[2]] = 0
set udg_Armor_Ability_2[udg_i[2]] = 0
set udg_Armor_Ability_3[udg_i[2]] = 0
set udg_Armor_Ability_4[udg_i[2]] = 0
// --------------------------------------
set udg_i[2] = ( udg_i[2] + 1 )
set udg_Armor_IType[udg_i[2]] = 'I00V'
set udg_Armor_Arm_Bonus[udg_i[2]] = 2
set udg_Armor_Str_Bonus[udg_i[2]] = 0
set udg_Armor_Agi_Bonus[udg_i[2]] = 0
set udg_Armor_Int_Bonus[udg_i[2]] = 1
set udg_Armor_Ability_1[udg_i[2]] = 0
set udg_Armor_Ability_2[udg_i[2]] = 0
set udg_Armor_Ability_3[udg_i[2]] = 0
set udg_Armor_Ability_4[udg_i[2]] = 0
// --------------------------------------
set udg_i[2] = ( udg_i[2] + 1 )
set udg_Armor_IType[udg_i[2]] = 'I00U'
set udg_Armor_Arm_Bonus[udg_i[2]] = 2
set udg_Armor_Str_Bonus[udg_i[2]] = 0
set udg_Armor_Agi_Bonus[udg_i[2]] = 1
set udg_Armor_Int_Bonus[udg_i[2]] = 0
set udg_Armor_Ability_1[udg_i[2]] = 0
set udg_Armor_Ability_2[udg_i[2]] = 0
set udg_Armor_Ability_3[udg_i[2]] = 0
set udg_Armor_Ability_4[udg_i[2]] = 0
// --------------------------------------
set udg_TotalArmorItems = udg_i[2]
endfunction
function InitTrig_Weapon_Initialization takes nothing returns nothing
set udg_i[3] = ( udg_i[3] + 1 )
set udg_Weapon_IType[udg_i[3]] = 'I00K'
set udg_Weapon_Dmg_Bonus[udg_i[3]] = 1
set udg_Weapon_Str_Bonus[udg_i[3]] = 0
set udg_Weapon_Agi_Bonus[udg_i[3]] = 0
set udg_Weapon_Int_Bonus[udg_i[3]] = 0
set udg_Weapon_Ability_1[udg_i[3]] = 0
set udg_Weapon_Ability_2[udg_i[3]] = 0
set udg_Weapon_Ability_3[udg_i[3]] = 0
set udg_Weapon_Ability_4[udg_i[3]] = 0
set udg_Weapon_TwoHanded[udg_i[3]] = true
// -----------------------------------------
set udg_i[3] = ( udg_i[3] + 1 )
set udg_Weapon_IType[udg_i[3]] = 'I00L'
set udg_Weapon_Dmg_Bonus[udg_i[3]] = 1
set udg_Weapon_Str_Bonus[udg_i[3]] = 1
set udg_Weapon_Agi_Bonus[udg_i[3]] = 0
set udg_Weapon_Int_Bonus[udg_i[3]] = 0
set udg_Weapon_Ability_1[udg_i[3]] = 0
set udg_Weapon_Ability_2[udg_i[3]] = 0
set udg_Weapon_Ability_3[udg_i[3]] = 0
set udg_Weapon_Ability_4[udg_i[3]] = 0
set udg_Weapon_TwoHanded[udg_i[3]] = false
// -----------------------------------------
set udg_i[3] = ( udg_i[3] + 1 )
set udg_Weapon_IType[udg_i[3]] = 'I00M'
set udg_Weapon_Dmg_Bonus[udg_i[3]] = 1
set udg_Weapon_Str_Bonus[udg_i[3]] = 0
set udg_Weapon_Agi_Bonus[udg_i[3]] = 0
set udg_Weapon_Int_Bonus[udg_i[3]] = 1
set udg_Weapon_Ability_1[udg_i[3]] = 0
set udg_Weapon_Ability_2[udg_i[3]] = 0
set udg_Weapon_Ability_3[udg_i[3]] = 0
set udg_Weapon_Ability_4[udg_i[3]] = 0
set udg_Weapon_TwoHanded[udg_i[3]] = false
// -----------------------------------------
set udg_i[3] = ( udg_i[3] + 1 )
set udg_Weapon_IType[udg_i[3]] = 'I00X'
set udg_Weapon_Dmg_Bonus[udg_i[3]] = 6
set udg_Weapon_Str_Bonus[udg_i[3]] = 3
set udg_Weapon_Agi_Bonus[udg_i[3]] = 0
set udg_Weapon_Int_Bonus[udg_i[3]] = 0
set udg_Weapon_Ability_1[udg_i[3]] = 'A00D'
set udg_Weapon_Ability_2[udg_i[3]] = 0
set udg_Weapon_Ability_3[udg_i[3]] = 0
set udg_Weapon_Ability_4[udg_i[3]] = 0
set udg_Weapon_TwoHanded[udg_i[3]] = false
// -----------------------------------------
set udg_TotalWeaponItems = udg_i[3]
endfunction
function InitTrig_Shield_Initialization takes nothing returns nothing
set udg_i[4] = ( udg_i[4] + 1 )
set udg_Shield_IType[udg_i[4]] = 'I00Q'
set udg_Shield_Arm_Bonus[udg_i[4]] = 2
set udg_Shield_Str_Bonus[udg_i[4]] = 0
set udg_Shield_Agi_Bonus[udg_i[4]] = 0
set udg_Shield_Int_Bonus[udg_i[4]] = 0
set udg_Shield_Ability_1[udg_i[4]] = 0
set udg_Shield_Ability_2[udg_i[4]] = 0
set udg_Shield_Ability_3[udg_i[4]] = 0
set udg_Shield_Ability_4[udg_i[4]] = 0
// ----------------------------------------
set udg_i[4] = ( udg_i[4] + 1 )
set udg_Shield_IType[udg_i[4]] = 'I00R'
set udg_Shield_Arm_Bonus[udg_i[4]] = 2
set udg_Shield_Str_Bonus[udg_i[4]] = 1
set udg_Shield_Agi_Bonus[udg_i[4]] = 0
set udg_Shield_Int_Bonus[udg_i[4]] = 0
set udg_Shield_Ability_1[udg_i[4]] = 0
set udg_Shield_Ability_2[udg_i[4]] = 0
set udg_Shield_Ability_3[udg_i[4]] = 0
set udg_Shield_Ability_4[udg_i[4]] = 0
// ----------------------------------------
set udg_i[4] = ( udg_i[4] + 1 )
set udg_Shield_IType[udg_i[4]] = 'I00S'
set udg_Shield_Arm_Bonus[udg_i[4]] = 2
set udg_Shield_Str_Bonus[udg_i[4]] = 0
set udg_Shield_Agi_Bonus[udg_i[4]] = 0
set udg_Shield_Int_Bonus[udg_i[4]] = 1
set udg_Shield_Ability_1[udg_i[4]] = 0
set udg_Shield_Ability_2[udg_i[4]] = 0
set udg_Shield_Ability_3[udg_i[4]] = 0
set udg_Shield_Ability_4[udg_i[4]] = 0
// ----------------------------------------
set udg_i[4] = ( udg_i[4] + 1 )
set udg_Shield_IType[udg_i[4]] = 'I00A'
set udg_Shield_Arm_Bonus[udg_i[4]] = 2
set udg_Shield_Str_Bonus[udg_i[4]] = 0
set udg_Shield_Agi_Bonus[udg_i[4]] = 1
set udg_Shield_Int_Bonus[udg_i[4]] = 0
set udg_Shield_Ability_1[udg_i[4]] = 0
set udg_Shield_Ability_2[udg_i[4]] = 0
set udg_Shield_Ability_3[udg_i[4]] = 0
set udg_Shield_Ability_4[udg_i[4]] = 0
// ----------------------------------------
set udg_TotalShieldItems = udg_i[4]
endfunction
function InitTrig_Amulet_Initialization takes nothing returns nothing
set udg_i[5] = ( udg_i[5] + 1 )
set udg_Amulet_IType[udg_i[5]] = 'I00Y'
set udg_Amulet_Str_Bonus[udg_i[5]] = 8
set udg_Amulet_Agi_Bonus[udg_i[5]] = 6
set udg_Amulet_Int_Bonus[udg_i[5]] = 4
set udg_Amulet_Ability_1[udg_i[5]] = 'A008'
set udg_Amulet_Ability_2[udg_i[5]] = 'A007'
set udg_Amulet_Ability_3[udg_i[5]] = 'A009'
set udg_Amulet_Ability_4[udg_i[5]] = 'A00A'
set udg_Amulet_Ability_5[udg_i[5]] = 'A00C'
set udg_Amulet_Ability_6[udg_i[5]] = 0
// ----------------------------------------
set udg_TotalAmuletItems = udg_i[5]
endfunction
function InitTrig_Ring_Initialization takes nothing returns nothing
set udg_i[6] = ( udg_i[6] + 1 )
set udg_Ring_IType[udg_i[6]] = 'I00D'
set udg_Ring_Str_Bonus[udg_i[6]] = 10
set udg_Ring_Agi_Bonus[udg_i[6]] = 3
set udg_Ring_Int_Bonus[udg_i[6]] = 5
set udg_Ring_Ability_1[udg_i[6]] = 0
set udg_Ring_Ability_2[udg_i[6]] = 0
set udg_Ring_Ability_3[udg_i[6]] = 0
set udg_Ring_Ability_4[udg_i[6]] = 0
set udg_Ring_Ability_5[udg_i[6]] = 0
set udg_Ring_Ability_6[udg_i[6]] = 0
// ----------------------------------------
set udg_TotalRingItems = udg_i[6]
endfunction