diff --git a/data-otxserver/monster/constructs/animated_snowman.lua b/data-otxserver/monster/constructs/animated_snowman.lua
index 72f7c5c9d..6fcf98830 100644
--- a/data-otxserver/monster/constructs/animated_snowman.lua
+++ b/data-otxserver/monster/constructs/animated_snowman.lua
@@ -78,7 +78,7 @@ monster.loot = {
{ name = "shiver arrow", chance = 7310 },
{ name = "ice rapier", chance = 4750 },
{ name = "glacier mask", chance = 4570 },
- { name = "snowball", chance = 4000, maxCount = 5 },
+ { id = 2992, chance = 4000, maxCount = 5 }, -- snowball
{ name = "hailstorm rod", chance = 3470 },
{ name = "glacier mask", chance = 250 },
{ name = "glacier amulet", chance = 3290 },
diff --git a/data-otxserver/monster/demons/brachiodemon.lua b/data-otxserver/monster/demons/brachiodemon.lua
index 88c09c550..930ecfe46 100644
--- a/data-otxserver/monster/demons/brachiodemon.lua
+++ b/data-otxserver/monster/demons/brachiodemon.lua
@@ -108,6 +108,7 @@ monster.attacks = {
{ name = "combat", interval = 2000, chance = 22, type = COMBAT_DEATHDAMAGE, minDamage = -900, maxDamage = -1280, radius = 4, effect = CONST_ME_EXPLOSIONHIT, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -1150, maxDamage = -1460, range = 7, effect = CONST_ANI_SUDDENDEATH, target = true },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_DEATHDAMAGE, minDamage = -950, maxDamage = -1100, range = 7, radius = 4, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_MORTAREA, target = true },
+ { name = "destroy magic walls", interval = 1000, chance = 30 },
}
monster.defenses = {
diff --git a/data-otxserver/monster/demons/many_faces.lua b/data-otxserver/monster/demons/many_faces.lua
index e557770d9..8b9724a62 100644
--- a/data-otxserver/monster/demons/many_faces.lua
+++ b/data-otxserver/monster/demons/many_faces.lua
@@ -104,6 +104,7 @@ monster.attacks = {
{ name = "combat", interval = 5000, chance = 44, type = COMBAT_ICEDAMAGE, minDamage = -1000, maxDamage = -1450, range = 7, radius = 5, shootEffect = CONST_ANI_ICE, effect = CONST_ME_ICEAREA, target = true },
{ name = "combat", interval = 9500, chance = 59, type = COMBAT_HOLYDAMAGE, minDamage = -1050, maxDamage = -1300, radius = 4, effect = CONST_ME_HOLYAREA, target = false },
{ name = "extended holy chain", interval = 10000, chance = 59, minDamage = -1150, maxDamage = -1300, range = 7 },
+ { name = "destroy magic walls", interval = 1000, chance = 30 },
}
monster.defenses = {
diff --git a/data-otxserver/monster/event_creatures/grynch_clan_goblin.lua b/data-otxserver/monster/event_creatures/grynch_clan_goblin.lua
index 3c852794a..d13e2a3d4 100644
--- a/data-otxserver/monster/event_creatures/grynch_clan_goblin.lua
+++ b/data-otxserver/monster/event_creatures/grynch_clan_goblin.lua
@@ -106,7 +106,7 @@ monster.loot = {
{ id = 2639, chance = 4000 }, -- picture
{ id = 2950, chance = 5000 }, -- lute
{ id = 2983, chance = 500 }, -- flower bowl
- { name = "snowball", chance = 7000, maxCount = 5 },
+ { id = 2992, chance = 7000, maxCount = 5 }, -- snowball
{ name = "piggy bank", chance = 1000 },
{ name = "gold coin", chance = 22500, maxCount = 22 },
{ name = "scarab coin", chance = 500, maxCount = 2 },
diff --git a/data-otxserver/monster/mammals/yeti.lua b/data-otxserver/monster/mammals/yeti.lua
index 7ef601194..890751bbc 100644
--- a/data-otxserver/monster/mammals/yeti.lua
+++ b/data-otxserver/monster/mammals/yeti.lua
@@ -76,7 +76,7 @@ monster.voices = {
}
monster.loot = {
- { name = "snowball", chance = 10000, maxCount = 22 },
+ { id = 2992, chance = 10000, maxCount = 22 }, -- snowball
{ name = "gold coin", chance = 100000, maxCount = 60 },
{ name = "gold coin", chance = 100000, maxCount = 40 },
{ name = "bunnyslippers", chance = 1333 },
diff --git a/data-otxserver/monster/plants/cloak_of_terror.lua b/data-otxserver/monster/plants/cloak_of_terror.lua
index fd9dbf2a9..184ba93fa 100644
--- a/data-otxserver/monster/plants/cloak_of_terror.lua
+++ b/data-otxserver/monster/plants/cloak_of_terror.lua
@@ -102,6 +102,7 @@ monster.attacks = {
{ name = "combat", interval = 3000, chance = 20, type = COMBAT_ENERGYDAMAGE, minDamage = -1150, maxDamage = -1300, range = 7, radius = 4, effect = CONST_ME_ENERGYHIT, target = true },
{ name = "combat", interval = 2000, chance = 14, type = COMBAT_HOLYDAMAGE, minDamage = -1000, maxDamage = -1300, range = 7, shootEffect = CONST_ANI_SPECTRALBOLT, effect = CONST_ME_HOLYDAMAGE, target = true },
{ name = "combat", interval = 2000, chance = 24, type = COMBAT_HOLYDAMAGE, minDamage = -800, maxDamage = -1200, range = 7, radius = 3, shootEffect = CONST_ANI_SMALLHOLY, effect = CONST_ME_YELLOW_ENERGY_SPARK, target = true },
+ { name = "destroy magic walls", interval = 1000, chance = 30 },
}
monster.defenses = {
diff --git a/data-otxserver/monster/quests/dangerous_depth/bosses/the_baron_from_below.lua b/data-otxserver/monster/quests/dangerous_depth/bosses/the_baron_from_below.lua
index e780ac65c..a381c3b07 100644
--- a/data-otxserver/monster/quests/dangerous_depth/bosses/the_baron_from_below.lua
+++ b/data-otxserver/monster/quests/dangerous_depth/bosses/the_baron_from_below.lua
@@ -112,6 +112,8 @@ monster.loot = {
{ name = "slimy leg", chance = 4170 },
{ name = "badger boots", chance = 4170 },
{ name = "spellbook of warding", chance = 2080 },
+ { name = "gnome sword", chance = 4170 },
+ { name = "gnome armor", chance = 3390 },
}
monster.attacks = {
diff --git a/data-otxserver/monster/quests/dangerous_depth/bosses/the_duke_of_the_depths.lua b/data-otxserver/monster/quests/dangerous_depth/bosses/the_duke_of_the_depths.lua
index 31c354f76..d654288c4 100644
--- a/data-otxserver/monster/quests/dangerous_depth/bosses/the_duke_of_the_depths.lua
+++ b/data-otxserver/monster/quests/dangerous_depth/bosses/the_duke_of_the_depths.lua
@@ -111,6 +111,7 @@ monster.loot = {
{ name = "gnome sword", chance = 4170 },
{ name = "terra mantle", chance = 2080 },
{ name = "violet gem", chance = 2080 },
+ { name = "gnome legs", chance = 3390 },
}
monster.attacks = {
diff --git a/data-otxserver/monster/quests/the_inquisition/ushuriel.lua b/data-otxserver/monster/quests/the_inquisition/ushuriel.lua
index 35c7d81b0..6d1bb8f99 100644
--- a/data-otxserver/monster/quests/the_inquisition/ushuriel.lua
+++ b/data-otxserver/monster/quests/the_inquisition/ushuriel.lua
@@ -93,7 +93,7 @@ monster.loot = {
{ name = "mysterious voodoo skull", chance = 12500 },
{ name = "skull helmet", chance = 20000 },
{ name = "iron ore", chance = 33333 },
- { name = "spirit container", chance = 4761 },
+ { id = 5884, chance = 4761 }, -- spirit container
{ name = "flask of warrior's sweat", chance = 5555 },
{ name = "enchanted chicken wing", chance = 7692 },
{ name = "huge chunk of crude iron", chance = 14285 },
diff --git a/data-otxserver/monster/reptiles/corrupt_naga.lua b/data-otxserver/monster/reptiles/corrupt_naga.lua
index bcdd68ee8..729245242 100644
--- a/data-otxserver/monster/reptiles/corrupt_naga.lua
+++ b/data-otxserver/monster/reptiles/corrupt_naga.lua
@@ -5,10 +5,10 @@ monster.description = "a corrupt naga"
monster.experience = 4380
monster.outfit = {
lookType = 1538,
- lookHead = 55,
- lookBody = 6,
- lookLegs = 0,
- lookFeet = 78,
+ lookHead = 86,
+ lookBody = 57,
+ lookLegs = 75,
+ lookFeet = 94,
lookAddons = 3,
lookMount = 0,
}
@@ -16,7 +16,7 @@ monster.outfit = {
monster.health = 5990
monster.maxHealth = 5990
monster.race = "blood"
-monster.corpse = 0
+monster.corpse = 39217
monster.speed = 182
monster.manaCost = 0
@@ -60,15 +60,14 @@ monster.voices = {
}
monster.loot = {
- { name = "Platinum Coin", chance = 75420, minCount = 1, maxCount = 8 },
- { name = "Violet Crystal Shard", chance = 24580, minCount = 1, maxCount = 2 },
- { name = "Corrupt Naga Scales", chance = 17720 },
+ { name = "corrupt naga scales", chance = 17720 },
}
monster.attacks = {
- { name = "combat", interval = 2000, chance = 100, minDamage = -300, maxDamage = -600, shootEffect = CONST_ANI_EXPLOSION, effect = CONST_ME_PURPLEENERGY, target = true },
- { name = "nagadeath", interval = 6000, chance = 39, target = false, minDamage = -1000, maxDamage = -2200 },
- { name = "nagadeathattack", interval = 3000, chance = 68, target = true, minDamage = -400, maxDamage = -600 },
+ { name = "combat", interval = 2000, chance = 100, type = COMBAT_PHYSICALDAMAGE, minDamage = -120, maxDamage = -340, target = true }, -- basic_attack
+ { name = "combat", interval = 2500, chance = 30, type = COMBAT_PHYSICALDAMAGE, minDamage = -320, maxDamage = -430, effect = CONST_ME_YELLOWSMOKE, range = 3, target = true }, -- eruption_strike
+ { name = "nagadeathattack", interval = 3000, chance = 35, minDamage = -360, maxDamage = -415, target = true }, -- death_strike
+ { name = "combat", interval = 3500, chance = 35, type = COMBAT_LIFEDRAIN, minDamage = -360, maxDamage = -386, radius = 4, effect = CONST_ME_DRAWBLOOD, target = false }, -- great_blood_ball
}
monster.defenses = {
diff --git a/data-otxserver/monster/reptiles/rogue_naga.lua b/data-otxserver/monster/reptiles/rogue_naga.lua
index 25ec8c56c..e3e7e662f 100644
--- a/data-otxserver/monster/reptiles/rogue_naga.lua
+++ b/data-otxserver/monster/reptiles/rogue_naga.lua
@@ -5,10 +5,10 @@ monster.description = "a rogue naga"
monster.experience = 4510
monster.outfit = {
lookType = 1543,
- lookHead = 55,
- lookBody = 6,
- lookLegs = 0,
- lookFeet = 78,
+ lookHead = 75,
+ lookBody = 13,
+ lookLegs = 95,
+ lookFeet = 109,
lookAddons = 3,
lookMount = 0,
}
@@ -16,7 +16,7 @@ monster.outfit = {
monster.health = 6200
monster.maxHealth = 6200
monster.race = "blood"
-monster.corpse = 0
+monster.corpse = 39221
monster.speed = 182
monster.manaCost = 0
@@ -64,15 +64,15 @@ monster.voices = {
}
monster.loot = {
- { name = "Platinum Coin", chance = 85600, minCount = 1, maxCount = 12 },
- { name = "Rogue Naga Scales", chance = 15450 },
- { name = "Green Crystal Shard", chance = 14400, minCount = 1, maxCount = 2 },
+ { name = "rogue naga scales", chance = 15450 },
}
monster.attacks = {
- { name = "combat", interval = 2000, chance = 100, minDamage = -300, maxDamage = -600, shootEffect = CONST_ANI_EXPLOSION, effect = CONST_ME_PURPLEENERGY, target = true },
- { name = "combat", interval = 2000, chance = 47, type = COMBAT_PHYSICALDAMAGE, minDamage = -350, maxDamage = -400, effect = CONST_ME_BIG_SCRATCH, target = true },
- { name = "combat", interval = 1000, chance = 10, type = COMBAT_PHYSICALDAMAGE, minDamage = -380, maxDamage = -470, length = 5, spread = 3, effect = CONST_ME_GROUNDSHAKER, target = false },
+ { name = "combat", interval = 2000, chance = 50, type = COMBAT_PHYSICALDAMAGE, minDamage = -95, maxDamage = -390, shootEffect = CONST_ANI_EXPLOSION, effect = CONST_ME_PURPLEENERGY, range = 6, target = true }, -- basic_attack
+ { name = "nagadeathattack", interval = 2500, chance = 20, minDamage = -430, maxDamage = -505, range = 6, target = true }, -- death_strike
+ { name = "nagadeath", interval = 3000, chance = 20, minDamage = -380, maxDamage = -470, target = false }, -- short_death_wave
+ { name = "death chain", interval = 3500, chance = 20, minDamage = -460, maxDamage = -520, range = 6, target = true }, -- death_chain
+ { name = "combat", interval = 4000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -85, maxDamage = -190, shootEffect = CONST_ANI_EXPLOSION, effect = CONST_ME_PURPLEENERGY, range = 6, target = true }, -- explosion_strike
}
monster.defenses = {
diff --git a/data-otxserver/monster/undeads/bony_sea_devil.lua b/data-otxserver/monster/undeads/bony_sea_devil.lua
index 5e57027cc..1199240df 100644
--- a/data-otxserver/monster/undeads/bony_sea_devil.lua
+++ b/data-otxserver/monster/undeads/bony_sea_devil.lua
@@ -107,6 +107,7 @@ monster.attacks = {
{ name = "combat", interval = 2000, chance = 25, type = COMBAT_ICEDAMAGE, minDamage = -950, maxDamage = -1100, range = 7, radius = 5, shootEffect = CONST_ANI_ICE, effect = CONST_ME_ICEAREA, target = true },
{ name = "ice chain", interval = 2000, chance = 15, minDamage = -1100, maxDamage = -1300, range = 7 },
{ name = "soulwars fear", interval = 2000, chance = 1, target = true },
+ { name = "destroy magic walls", interval = 1000, chance = 30 },
}
monster.defenses = {
diff --git a/data-otxserver/monster/undeads/souleater.lua b/data-otxserver/monster/undeads/souleater.lua
index 987e34523..dd0912cfd 100644
--- a/data-otxserver/monster/undeads/souleater.lua
+++ b/data-otxserver/monster/undeads/souleater.lua
@@ -83,7 +83,7 @@ monster.loot = {
{ name = "platinum coin", chance = 49610, maxCount = 6 },
{ name = "necrotic rod", chance = 980 },
{ name = "wand of cosmic energy", chance = 910 },
- { name = "spirit container", chance = 140 },
+ { id = 5884, chance = 140 }, -- spirit container
{ id = 6299, chance = 300 }, -- death ring
{ name = "great mana potion", chance = 8000 },
{ name = "ultimate health potion", chance = 9400 },
diff --git a/data-otxserver/monster/vermins/afflicted_strider.lua b/data-otxserver/monster/vermins/afflicted_strider.lua
index 9ffbe3884..2d0f9b0e5 100644
--- a/data-otxserver/monster/vermins/afflicted_strider.lua
+++ b/data-otxserver/monster/vermins/afflicted_strider.lua
@@ -29,7 +29,7 @@ monster.Bestiary = {
monster.health = 10000
monster.maxHealth = 10000
monster.race = "blood"
-monster.corpse = 36716
+monster.corpse = 36719
monster.speed = 135
monster.manaCost = 0
diff --git a/data-otxserver/monster/vermins/blemished_spawn.lua b/data-otxserver/monster/vermins/blemished_spawn.lua
index e99cd0a57..b646b60c2 100644
--- a/data-otxserver/monster/vermins/blemished_spawn.lua
+++ b/data-otxserver/monster/vermins/blemished_spawn.lua
@@ -29,7 +29,7 @@ monster.Bestiary = {
monster.health = 9000
monster.maxHealth = 9000
monster.race = "blood"
-monster.corpse = 36698
+monster.corpse = 36701
monster.speed = 140
monster.manaCost = 0
diff --git a/data-otxserver/scripts/actions/other/bag_you_covet.lua b/data-otxserver/scripts/actions/other/bag_you_covet.lua
index e332d9fd3..bb62da593 100644
--- a/data-otxserver/scripts/actions/other/bag_you_covet.lua
+++ b/data-otxserver/scripts/actions/other/bag_you_covet.lua
@@ -27,6 +27,13 @@ function bagyouCovet.onUse(player, item, fromPosition, target, toPosition, isHot
item:remove(1)
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You received a " .. rewardItem.name .. ".")
+
+ local text = player:getName() .. " received a " .. rewardItem.name .. " from a " .. item:getName() .. "."
+ local vocation = player:vocationAbbrev()
+ Webhook.sendMessage(":game_die: " .. player:getMarkdownLink() .. " received a **" .. rewardItem.name .. "** from a _" .. item:getName() .. "_.")
+ Broadcast(text, function(targetPlayer)
+ return targetPlayer ~= player
+ end)
return true
end
diff --git a/data-otxserver/scripts/actions/other/bag_you_desire.lua b/data-otxserver/scripts/actions/other/bag_you_desire.lua
index be25529c0..6716d58ee 100644
--- a/data-otxserver/scripts/actions/other/bag_you_desire.lua
+++ b/data-otxserver/scripts/actions/other/bag_you_desire.lua
@@ -33,6 +33,13 @@ function bagyouDesire.onUse(player, item, fromPosition, target, toPosition, isHo
item:remove(1)
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You received a " .. rewardItem.name .. ".")
+
+ local text = player:getName() .. " received a " .. rewardItem.name .. " from a " .. item:getName() .. "."
+ local vocation = player:vocationAbbrev()
+ Webhook.sendMessage(":game_die: " .. player:getMarkdownLink() .. " received a **" .. rewardItem.name .. "** from a _" .. item:getName() .. "_.")
+ Broadcast(text, function(targetPlayer)
+ return targetPlayer ~= player
+ end)
return true
end
diff --git a/data-otxserver/scripts/actions/other/magic_gold_converter.lua b/data-otxserver/scripts/actions/other/magic_gold_converter.lua
index f64ab905e..d5b9b9d93 100644
--- a/data-otxserver/scripts/actions/other/magic_gold_converter.lua
+++ b/data-otxserver/scripts/actions/other/magic_gold_converter.lua
@@ -12,7 +12,7 @@ local data = {
local function finditem(self, cylinder, conv)
if cylinder == 0 then
cylinder = self:getSlotItem(CONST_SLOT_BACKPACK)
- finditem(self, self:getSlotItem(CONST_SLOT_STORE_INBOX), conv)
+ finditem(self, self:getStoreInbox(), conv)
end
if cylinder and cylinder:isContainer() then
diff --git a/data-otxserver/scripts/actions/other/primal_bag.lua b/data-otxserver/scripts/actions/other/primal_bag.lua
index 5837caa08..ab9f44cdb 100644
--- a/data-otxserver/scripts/actions/other/primal_bag.lua
+++ b/data-otxserver/scripts/actions/other/primal_bag.lua
@@ -26,7 +26,13 @@ function primalBag.onUse(player, item, fromPosition, target, toPosition, isHotke
player:addItem(rewardItem.id, 1)
item:remove(1)
- player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You received one " .. rewardItem.name .. ".")
+ player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You received a " .. rewardItem.name .. ".")
+ local text = player:getName() .. " received a " .. rewardItem.name .. " from a " .. item:getName() .. "."
+ local vocation = player:vocationAbbrev()
+ Webhook.sendMessage(":game_die: " .. player:getMarkdownLink() .. " received a **" .. rewardItem.name .. "** from a _" .. item:getName() .. "_.")
+ Broadcast(text, function(targetPlayer)
+ return targetPlayer ~= player
+ end)
return true
end
diff --git a/data-otxserver/scripts/actions/tibiadrome/concoctions.lua b/data-otxserver/scripts/actions/tibiadrome/concoctions.lua
index 8e7a23d85..fe17dfef0 100644
--- a/data-otxserver/scripts/actions/tibiadrome/concoctions.lua
+++ b/data-otxserver/scripts/actions/tibiadrome/concoctions.lua
@@ -17,7 +17,7 @@ local configs = {
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Your spells are no longer on cooldown.")
end,
},
- [Concoction.Ids.StrikeEnhancement] = { condition = { CONDITION_PARAM_SKILL_CRITICAL_HIT_CHANCE, 5 } },
+ [Concoction.Ids.StrikeEnhancement] = { condition = { CONDITION_PARAM_SKILL_CRITICAL_HIT_CHANCE, 500 } },
[Concoction.Ids.CharmUpgrade] = { condition = { CONDITION_PARAM_CHARM_CHANCE_MODIFIER, 5 } },
[Concoction.Ids.WealthDuplex] = { rate = 100 },
[Concoction.Ids.BestiaryBetterment] = { multiplier = 2.0 },
diff --git a/data-otxserver/scripts/item_classification/item_tiers.lua b/data-otxserver/scripts/item_classification/item_tiers.lua
index 8551624c9..c199f81a3 100644
--- a/data-otxserver/scripts/item_classification/item_tiers.lua
+++ b/data-otxserver/scripts/item_classification/item_tiers.lua
@@ -2,33 +2,115 @@ local itemTierClassifications = {
-- Upgrade classification 1
[1] = {
-- Update tier 0
- [1] = { price = 25000, core = 1 },
+ [1] = {
+ regular = 25000,
+ core = 1,
+ },
+ [2] = {
+ regular = 50000,
+ core = 1,
+ },
+ [3] = {
+ regular = 100000,
+ core = 1,
+ },
},
-- Upgrade classification 2
[2] = {
-- Update tier 0
- [1] = { price = 750000, core = 1 },
+ [1] = {
+ regular = 50000,
+ core = 1,
+ },
-- Update tier 1
- [2] = { price = 5000000, core = 1 },
+ [2] = {
+ regular = 100000,
+ core = 1,
+ },
+ [3] = {
+ regular = 200000,
+ core = 2,
+ },
+ [4] = {
+ regular = 400000,
+ core = 2,
+ },
},
-- Upgrade classification 3
[3] = {
- [1] = { price = 4000000, core = 1 },
- [2] = { price = 10000000, core = 1 },
- [3] = { price = 20000000, core = 2 },
+ [1] = {
+ regular = 200000,
+ core = 1,
+ },
+ [2] = {
+ regular = 400000,
+ core = 2,
+ },
+ [3] = {
+ regular = 800000,
+ core = 3,
+ },
+ [4] = {
+ regular = 1600000,
+ core = 4,
+ },
+ [5] = {
+ regular = 3200000,
+ core = 5,
+ },
},
-- Upgrade classification 4
[4] = {
- [1] = { price = 8000000, core = 1 },
- [2] = { price = 20000000, core = 1 },
- [3] = { price = 40000000, core = 2 },
- [4] = { price = 65000000, core = 5 },
- [5] = { price = 100000000, core = 10 },
- [6] = { price = 250000000, core = 15 },
- [7] = { price = 750000000, core = 25 },
- [8] = { price = 2500000000, core = 35 },
- [9] = { price = 8000000000, core = 50 },
- [10] = { price = 15000000000, core = 65 },
+ [1] = {
+ regular = 1500000,
+ core = 1,
+ convergence = { fusion = { price = 6000000 }, transfer = { price = 12000000 } },
+ },
+ [2] = {
+ regular = 3000000,
+ core = 2,
+ convergence = { fusion = { price = 12000000 }, transfer = { price = 24000000 } },
+ },
+ [3] = {
+ regular = 6000000,
+ core = 5,
+ convergence = { fusion = { price = 24000000 }, transfer = { price = 48000000 } },
+ },
+ [4] = {
+ regular = 15000000,
+ core = 10,
+ convergence = { fusion = { price = 48000000 }, transfer = { price = 100000000 } },
+ },
+ [5] = {
+ regular = 30000000,
+ core = 15,
+ convergence = { fusion = { price = 100000000 }, transfer = { price = 200000000 } },
+ },
+ [6] = {
+ regular = 80000000,
+ core = 25,
+ convergence = { fusion = { price = 200000000 }, transfer = { price = 400000000 } },
+ },
+ [7] = {
+ regular = 200000000,
+ core = 35,
+ convergence = { fusion = { price = 400000000 }, transfer = { price = 800000000 } },
+ },
+ [8] = {
+ regular = 400000000,
+ core = 50,
+ convergence = { fusion = { price = 800000000 }, transfer = { price = 1600000000 } },
+ },
+ [9] = {
+ regular = 800000000,
+ core = 60,
+ convergence = { fusion = { price = 1600000000 }, transfer = { price = 3200000000 } },
+ },
+ [10] = {
+ regular = 1600000000,
+ core = 85,
+ convergence = { fusion = { price = 3200000000 }, transfer = { price = 6400000000 } },
+ },
},
}
@@ -40,9 +122,13 @@ for classificationId, classificationTable in ipairs(itemTierClassifications) do
-- Registers table for register_item_tier.lua interface
classification.Upgrades = {}
for tierId, tierTable in ipairs(classificationTable) do
- if tierId and tierTable.price and tierTable.core ~= nil then
- table.insert(classification.Upgrades, { TierId = tierId - 1, Price = tierTable.price, Core = tierTable.core })
- end
+ table.insert(classification.Upgrades, {
+ TierId = tierId,
+ Core = tierTable.core,
+ RegularPrice = tierTable.regular,
+ ConvergenceFustionPrice = tierTable.convergence and tierTable.convergence.fusion.price or 0,
+ ConvergenceTransferPrice = tierTable.convergence and tierTable.convergence.transfer.price or 0,
+ })
end
-- Create item classification and register classification table
itemClassification:register(classification)
diff --git a/data-otxserver/scripts/lib/register_item_tier.lua b/data-otxserver/scripts/lib/register_item_tier.lua
index 51ad62ccc..b869dd229 100644
--- a/data-otxserver/scripts/lib/register_item_tier.lua
+++ b/data-otxserver/scripts/lib/register_item_tier.lua
@@ -14,8 +14,9 @@ end
registerItemClassification.Upgrades = function(itemClassification, mask)
if mask.Upgrades then
for _, value in ipairs(mask.Upgrades) do
- if value.TierId and value.Price then
- itemClassification:addTier(value.TierId, value.Price, value.Core)
+ if value.TierId then
+ logger.debug("Registering tier {}, core {}, regular price {}, fusion price {}, transfer price {}", value.TierId, value.Core, value.RegularPrice, value.ConvergenceFustionPrice, value.ConvergenceTransferPrice)
+ itemClassification:addTier(value.TierId, value.Core, value.RegularPrice, value.ConvergenceFustionPrice, value.ConvergenceTransferPrice)
else
logger.warn("[registerItemClassification.Upgrades] - Item classification failed on adquire TierID or Price attribute.")
end
diff --git a/data-otxserver/scripts/lib/shops.lua b/data-otxserver/scripts/lib/shops.lua
index 849028994..af19fd803 100644
--- a/data-otxserver/scripts/lib/shops.lua
+++ b/data-otxserver/scripts/lib/shops.lua
@@ -1334,17 +1334,28 @@ LootShopConfigTable = {
{ itemName = "golden skull", clientId = 35580, sell = 9000 },
{ itemName = "golden sun coin", clientId = 43734, sell = 11000 },
{ itemName = "golden tiger coin", clientId = 43735, sell = 11000 },
+ { itemName = "greater guardian gem", clientId = 44604, sell = 10000 },
+ { itemName = "greater marksman gem", clientId = 44607, sell = 10000 },
+ { itemName = "greater mystic gem", clientId = 44613, sell = 10000 },
+ { itemName = "greater sage gem", clientId = 44610, sell = 10000 },
{ itemName = "green crystal fragment", clientId = 16127, sell = 800 },
{ itemName = "green crystal shard", clientId = 16121, sell = 1500 },
{ itemName = "green crystal splinter", clientId = 16122, sell = 400 },
{ itemName = "green gem", clientId = 3038, sell = 5000 },
{ itemName = "green giant shimmering pearl", clientId = 281, sell = 3000 },
+ { itemName = "guardian gem", clientId = 44603, sell = 5000 },
{ itemName = "hexagonal ruby", clientId = 30180, sell = 30000 },
+ { itemName = "lesser guardian gem", clientId = 44602, sell = 1000 },
+ { itemName = "lesser marksman gem", clientId = 44605, sell = 1000 },
+ { itemName = "lesser mystic gem", clientId = 44611, sell = 1000 },
+ { itemName = "lesser sage gem", clientId = 44608, sell = 1000 },
{ itemName = "life crystal", clientId = 3061, sell = 85 },
{ itemName = "magic light wand", clientId = 3046, sell = 35 },
+ { itemName = "marksman gem", clientId = 44606, sell = 5000 },
{ itemName = "medal of valiance", clientId = 31591, sell = 410000 },
{ itemName = "mind stone", clientId = 3062, sell = 100 },
{ itemName = "moonstone", clientId = 32771, sell = 13000 },
+ { itemName = "mystic gem", clientId = 44612, sell = 5000 },
{ itemName = "onyx chip", clientId = 22193, sell = 500 },
{ itemName = "opal", clientId = 22194, sell = 500 },
{ itemName = "orb", clientId = 3060, sell = 750 },
@@ -1358,6 +1369,7 @@ LootShopConfigTable = {
{ itemName = "red gem", clientId = 3039, sell = 1000 },
{ itemName = "red tome", clientId = 2852, sell = 2000 },
{ itemName = "royal almandine", clientId = 39038, sell = 460000 },
+ { itemName = "sage gem", clientId = 44609, sell = 5000 },
{ itemName = "scarab coin", clientId = 3042, sell = 100 },
{ itemName = "sea horse figurine", clientId = 31323, sell = 42000 },
{ itemName = "seacrest pearl", clientId = 21747, sell = 400 },
diff --git a/data-otxserver/scripts/weapons/unscripted_weapons.lua b/data-otxserver/scripts/weapons/unscripted_weapons.lua
index 667e242af..5e6232836 100644
--- a/data-otxserver/scripts/weapons/unscripted_weapons.lua
+++ b/data-otxserver/scripts/weapons/unscripted_weapons.lua
@@ -233,7 +233,7 @@ local weapons = {
},
{
-- broken macuahuitl
- itemid = 40530,
+ itemId = 40530,
type = WEAPON_SWORD,
},
{
@@ -705,7 +705,7 @@ local weapons = {
},
{
-- phantasmal axe
- itemid = 32616,
+ itemId = 32616,
type = WEAPON_AXE,
level = 180,
unproperly = true,
@@ -716,12 +716,12 @@ local weapons = {
},
{
-- meat hammer
- itemid = 32093,
+ itemId = 32093,
type = WEAPON_CLUB,
},
{
-- tagralt blade
- itemid = 31614,
+ itemId = 31614,
type = WEAPON_SWORD,
level = 250,
unproperly = true,
@@ -732,7 +732,7 @@ local weapons = {
},
{
-- bow of cataclysm
- itemid = 31581,
+ itemId = 31581,
type = WEAPON_DISTANCE,
level = 250,
unproperly = true,
@@ -743,7 +743,7 @@ local weapons = {
},
{
-- mortal mace
- itemid = 31580,
+ itemId = 31580,
type = WEAPON_CLUB,
level = 220,
unproperly = true,
@@ -754,7 +754,7 @@ local weapons = {
},
{
-- cobra rod
- itemid = 30400,
+ itemId = 30400,
type = WEAPON_WAND,
wandType = "earth",
level = 220,
@@ -767,7 +767,7 @@ local weapons = {
},
{
-- cobra wand
- itemid = 30399,
+ itemId = 30399,
type = WEAPON_WAND,
wandType = "energy",
level = 270,
@@ -780,7 +780,7 @@ local weapons = {
},
{
-- cobra sword
- itemid = 30398,
+ itemId = 30398,
type = WEAPON_SWORD,
level = 220,
unproperly = true,
@@ -791,7 +791,7 @@ local weapons = {
},
{
-- cobra axe
- itemid = 30396,
+ itemId = 30396,
type = WEAPON_AXE,
level = 220,
unproperly = true,
@@ -802,7 +802,7 @@ local weapons = {
},
{
-- cobra club
- itemid = 30395,
+ itemId = 30395,
type = WEAPON_CLUB,
level = 220,
unproperly = true,
@@ -813,7 +813,7 @@ local weapons = {
},
{
-- cobra crossbow
- itemid = 30393,
+ itemId = 30393,
type = WEAPON_DISTANCE,
level = 220,
unproperly = true,
@@ -824,12 +824,12 @@ local weapons = {
},
{
-- ice hatchet
- itemid = 30283,
+ itemId = 30283,
type = WEAPON_AXE,
},
{
-- energized limb
- itemid = 29425,
+ itemId = 29425,
type = WEAPON_WAND,
wandType = "fire",
level = 180,
@@ -844,7 +844,7 @@ local weapons = {
},
{
-- winterblade
- itemid = 29422,
+ itemId = 29422,
type = WEAPON_SWORD,
level = 200,
unproperly = true,
@@ -855,7 +855,7 @@ local weapons = {
},
{
-- summerblade
- itemid = 29421,
+ itemId = 29421,
type = WEAPON_SWORD,
level = 200,
unproperly = true,
@@ -866,7 +866,7 @@ local weapons = {
},
{
-- resizer
- itemid = 29419,
+ itemId = 29419,
type = WEAPON_CLUB,
level = 230,
unproperly = true,
@@ -877,7 +877,7 @@ local weapons = {
},
{
-- living vine bow
- itemid = 29417,
+ itemId = 29417,
type = WEAPON_DISTANCE,
level = 220,
unproperly = true,
@@ -888,65 +888,65 @@ local weapons = {
},
{
-- golden axe
- itemid = 29286,
+ itemId = 29286,
type = WEAPON_AXE,
},
{
-- wand of destruction test
- itemid = 28479,
+ itemId = 28479,
type = WEAPON_WAND,
},
{
-- umbral master bow test
- itemid = 28478,
+ itemId = 28478,
type = WEAPON_DISTANCE,
},
{
-- sorcerer test weapon
- itemid = 28466,
+ itemId = 28466,
type = WEAPON_WAND,
},
{
-- bow of destruction test
- itemid = 28465,
+ itemId = 28465,
type = WEAPON_DISTANCE,
},
{
-- test weapon for knights
- itemid = 28464,
+ itemId = 28464,
type = WEAPON_SWORD,
},
{
-- sulphurous demonbone
- itemid = 28832,
+ itemId = 28832,
type = WEAPON_CLUB,
level = 80,
unproperly = true,
},
{
-- unliving demonbone
- itemid = 28831,
+ itemId = 28831,
type = WEAPON_CLUB,
level = 80,
unproperly = true,
},
{
-- energized demonbone
- itemid = 28830,
+ itemId = 28830,
type = WEAPON_CLUB,
level = 80,
unproperly = true,
},
{
-- rotten demonbone
- itemid = 28829,
+ itemId = 28829,
type = WEAPON_CLUB,
level = 80,
unproperly = true,
},
{
-- deepling fork
- itemid = 28826,
+ itemId = 28826,
type = WEAPON_WAND,
wandType = "ice",
level = 230,
@@ -961,7 +961,7 @@ local weapons = {
},
{
-- deepling ceremonial dagger
- itemid = 28825,
+ itemId = 28825,
type = WEAPON_WAND,
wandType = "ice",
level = 180,
@@ -976,7 +976,7 @@ local weapons = {
},
{
-- falcon mace
- itemid = 28725,
+ itemId = 28725,
type = WEAPON_CLUB,
level = 300,
unproperly = true,
@@ -987,7 +987,7 @@ local weapons = {
},
{
-- falcon battleaxe
- itemid = 28724,
+ itemId = 28724,
type = WEAPON_AXE,
level = 300,
unproperly = true,
@@ -998,7 +998,7 @@ local weapons = {
},
{
-- falcon longsword
- itemid = 28723,
+ itemId = 28723,
type = WEAPON_SWORD,
level = 300,
unproperly = true,
@@ -1009,7 +1009,7 @@ local weapons = {
},
{
-- falcon bow
- itemid = 28718,
+ itemId = 28718,
type = WEAPON_DISTANCE,
level = 300,
unproperly = true,
@@ -1020,7 +1020,7 @@ local weapons = {
},
{
-- falcon wand
- itemid = 28717,
+ itemId = 28717,
type = WEAPON_WAND,
wandType = "energy",
level = 300,
@@ -1033,7 +1033,7 @@ local weapons = {
},
{
-- falcon rod
- itemid = 28716,
+ itemId = 28716,
type = WEAPON_WAND,
wandType = "earth",
level = 300,
@@ -1046,7 +1046,7 @@ local weapons = {
},
{
-- gnome sword
- itemid = 27651,
+ itemId = 27651,
type = WEAPON_SWORD,
level = 250,
unproperly = true,
@@ -1057,17 +1057,17 @@ local weapons = {
},
{
-- mallet handle
- itemid = 27525,
+ itemId = 27525,
type = WEAPON_CLUB,
},
{
-- strange mallet
- itemid = 27523,
+ itemId = 27523,
type = WEAPON_CLUB,
},
{
-- rod of destruction
- itemid = 27458,
+ itemId = 27458,
type = WEAPON_WAND,
wandType = "ice",
level = 200,
@@ -1080,7 +1080,7 @@ local weapons = {
},
{
-- wand of destruction
- itemid = 27457,
+ itemId = 27457,
type = WEAPON_WAND,
wandType = "energy",
level = 200,
@@ -1093,7 +1093,7 @@ local weapons = {
},
{
-- crossbow of destruction
- itemid = 27456,
+ itemId = 27456,
type = WEAPON_DISTANCE,
level = 200,
unproperly = true,
@@ -1104,7 +1104,7 @@ local weapons = {
},
{
-- bow of destruction
- itemid = 27455,
+ itemId = 27455,
type = WEAPON_DISTANCE,
level = 200,
unproperly = true,
@@ -1115,7 +1115,7 @@ local weapons = {
},
{
-- hammer of destruction
- itemid = 27454,
+ itemId = 27454,
type = WEAPON_CLUB,
level = 200,
unproperly = true,
@@ -1126,7 +1126,7 @@ local weapons = {
},
{
-- mace of destruction
- itemid = 27453,
+ itemId = 27453,
type = WEAPON_CLUB,
level = 200,
unproperly = true,
@@ -1137,7 +1137,7 @@ local weapons = {
},
{
-- chopper of destruction
- itemid = 27452,
+ itemId = 27452,
type = WEAPON_AXE,
level = 200,
unproperly = true,
@@ -1148,7 +1148,7 @@ local weapons = {
},
{
-- axe of destruction
- itemid = 27451,
+ itemId = 27451,
type = WEAPON_AXE,
level = 200,
unproperly = true,
@@ -1159,7 +1159,7 @@ local weapons = {
},
{
-- slayer of destruction
- itemid = 27450,
+ itemId = 27450,
type = WEAPON_SWORD,
level = 200,
unproperly = true,
@@ -1170,7 +1170,7 @@ local weapons = {
},
{
-- blade of destruction
- itemid = 27449,
+ itemId = 27449,
type = WEAPON_SWORD,
level = 200,
unproperly = true,
@@ -1181,577 +1181,577 @@ local weapons = {
},
{
-- ornate carving hammer
- itemid = 26061,
+ itemId = 26061,
type = WEAPON_CLUB,
},
{
-- valuable carving hammer
- itemid = 26060,
+ itemId = 26060,
type = WEAPON_CLUB,
},
{
-- plain carving hammer
- itemid = 26059,
+ itemId = 26059,
type = WEAPON_CLUB,
},
{
-- ornate carving mace
- itemid = 26058,
+ itemId = 26058,
type = WEAPON_CLUB,
},
{
-- valuable carving mace
- itemid = 26057,
+ itemId = 26057,
type = WEAPON_CLUB,
},
{
-- plain carving mace
- itemid = 26056,
+ itemId = 26056,
type = WEAPON_CLUB,
},
{
-- ornate carving chopper
- itemid = 26055,
+ itemId = 26055,
type = WEAPON_AXE,
},
{
-- valuable carving chopper
- itemid = 26054,
+ itemId = 26054,
type = WEAPON_AXE,
},
{
-- plain carving chopper
- itemid = 26053,
+ itemId = 26053,
type = WEAPON_AXE,
},
{
-- ornate carving axe
- itemid = 26052,
+ itemId = 26052,
type = WEAPON_AXE,
},
{
-- valuable carving axe
- itemid = 26051,
+ itemId = 26051,
type = WEAPON_AXE,
},
{
-- plain carving axe
- itemid = 26050,
+ itemId = 26050,
type = WEAPON_AXE,
},
{
-- ornate carving slayer
- itemid = 26049,
+ itemId = 26049,
type = WEAPON_SWORD,
},
{
-- valuable carving slayer
- itemid = 26048,
+ itemId = 26048,
type = WEAPON_SWORD,
},
{
-- plain carving slayer
- itemid = 26047,
+ itemId = 26047,
type = WEAPON_SWORD,
},
{
-- ornate carving blade
- itemid = 26046,
+ itemId = 26046,
type = WEAPON_SWORD,
},
{
-- valuable carving blade
- itemid = 26045,
+ itemId = 26045,
type = WEAPON_SWORD,
},
{
-- plain carving blade
- itemid = 26044,
+ itemId = 26044,
type = WEAPON_SWORD,
},
{
-- ornate remedy hammer
- itemid = 26031,
+ itemId = 26031,
type = WEAPON_CLUB,
},
{
-- valuable remedy hammer
- itemid = 26030,
+ itemId = 26030,
type = WEAPON_CLUB,
},
{
-- plain remedy hammer
- itemid = 26029,
+ itemId = 26029,
type = WEAPON_CLUB,
},
{
-- ornate remedy mace
- itemid = 26028,
+ itemId = 26028,
type = WEAPON_CLUB,
},
{
-- valuable remedy mace
- itemid = 26027,
+ itemId = 26027,
type = WEAPON_CLUB,
},
{
-- plain remedy mace
- itemid = 26026,
+ itemId = 26026,
type = WEAPON_CLUB,
},
{
-- ornate remedy chopper
- itemid = 26025,
+ itemId = 26025,
type = WEAPON_AXE,
},
{
-- valuable remedy chopper
- itemid = 26024,
+ itemId = 26024,
type = WEAPON_AXE,
},
{
-- plain remedy chopper
- itemid = 26023,
+ itemId = 26023,
type = WEAPON_AXE,
},
{
-- ornate remedy axe
- itemid = 26022,
+ itemId = 26022,
type = WEAPON_AXE,
},
{
-- valuable remedy axe
- itemid = 26021,
+ itemId = 26021,
type = WEAPON_AXE,
},
{
-- plain remedy axe
- itemid = 26020,
+ itemId = 26020,
type = WEAPON_AXE,
},
{
-- ornate remedy slayer
- itemid = 26019,
+ itemId = 26019,
type = WEAPON_SWORD,
},
{
-- valuable remedy slayer
- itemid = 26018,
+ itemId = 26018,
type = WEAPON_SWORD,
},
{
-- plain remedy slayer
- itemid = 26017,
+ itemId = 26017,
type = WEAPON_SWORD,
},
{
-- ornate remedy blade
- itemid = 26016,
+ itemId = 26016,
type = WEAPON_SWORD,
},
{
-- valuable remedy blade
- itemid = 26015,
+ itemId = 26015,
type = WEAPON_SWORD,
},
{
-- plain remedy blade
- itemid = 26014,
+ itemId = 26014,
type = WEAPON_SWORD,
},
{
-- ornate mayhem hammer
- itemid = 26000,
+ itemId = 26000,
type = WEAPON_CLUB,
},
{
-- valuable mayhem hammer
- itemid = 25999,
+ itemId = 25999,
type = WEAPON_CLUB,
},
{
-- plain mayhem hammer
- itemid = 25998,
+ itemId = 25998,
type = WEAPON_CLUB,
},
{
-- ornate mayhem mace
- itemid = 25997,
+ itemId = 25997,
type = WEAPON_CLUB,
},
{
-- valuable mayhem mace
- itemid = 25996,
+ itemId = 25996,
type = WEAPON_CLUB,
},
{
-- plain mayhem mace
- itemid = 25995,
+ itemId = 25995,
type = WEAPON_CLUB,
},
{
-- ornate mayhem chopper
- itemid = 25994,
+ itemId = 25994,
type = WEAPON_AXE,
},
{
-- valuable mayhem chopper
- itemid = 25993,
+ itemId = 25993,
type = WEAPON_AXE,
},
{
-- plain mayhem chopper
- itemid = 25992,
+ itemId = 25992,
type = WEAPON_AXE,
},
{
-- ornate mayhem axe
- itemid = 25991,
+ itemId = 25991,
type = WEAPON_AXE,
},
{
-- valuable mayhem axe
- itemid = 25990,
+ itemId = 25990,
type = WEAPON_AXE,
},
{
-- plain mayhem axe
- itemid = 25989,
+ itemId = 25989,
type = WEAPON_AXE,
},
{
-- ornate mayhem slayer
- itemid = 25988,
+ itemId = 25988,
type = WEAPON_SWORD,
},
{
-- valuable mayhem slayer
- itemid = 25987,
+ itemId = 25987,
type = WEAPON_SWORD,
},
{
-- plain mayhem slayer
- itemid = 25986,
+ itemId = 25986,
type = WEAPON_SWORD,
},
{
-- ornate mayhem blade
- itemid = 25985,
+ itemId = 25985,
type = WEAPON_SWORD,
},
{
-- valuable mayhem blade
- itemid = 25984,
+ itemId = 25984,
type = WEAPON_SWORD,
},
{
-- plain mayhem blade
- itemid = 25983,
+ itemId = 25983,
type = WEAPON_SWORD,
},
{
-- energy war hammer replica
- itemid = 25974,
+ itemId = 25974,
type = WEAPON_CLUB,
},
{
-- energy orcish maul replica
- itemid = 25973,
+ itemId = 25973,
type = WEAPON_CLUB,
},
{
-- energy basher replica
- itemid = 25972,
+ itemId = 25972,
type = WEAPON_CLUB,
},
{
-- energy crystal mace replica
- itemid = 25971,
+ itemId = 25971,
type = WEAPON_CLUB,
},
{
-- energy clerical mace replica
- itemid = 25970,
+ itemId = 25970,
type = WEAPON_CLUB,
},
{
-- energy war axe replica
- itemid = 25969,
+ itemId = 25969,
type = WEAPON_AXE,
},
{
-- energy headchopper replica
- itemid = 25968,
+ itemId = 25968,
type = WEAPON_AXE,
},
{
-- energy heroic axe replica
- itemid = 25967,
+ itemId = 25967,
type = WEAPON_AXE,
},
{
-- energy knight axe replica
- itemid = 25966,
+ itemId = 25966,
type = WEAPON_AXE,
},
{
-- energy barbarian axe replica
- itemid = 25965,
+ itemId = 25965,
type = WEAPON_AXE,
},
{
-- energy dragon slayer replica
- itemid = 25964,
+ itemId = 25964,
type = WEAPON_SWORD,
},
{
-- energy blacksteel replica
- itemid = 25963,
+ itemId = 25963,
type = WEAPON_SWORD,
},
{
-- energy mystic blade replica
- itemid = 25962,
+ itemId = 25962,
type = WEAPON_SWORD,
},
{
-- energy relic sword replica
- itemid = 25961,
+ itemId = 25961,
type = WEAPON_SWORD,
},
{
-- energy spike sword replica
- itemid = 25960,
+ itemId = 25960,
type = WEAPON_SWORD,
},
{
-- earth war hammer replica
- itemid = 25959,
+ itemId = 25959,
type = WEAPON_CLUB,
},
{
-- earth orcish maul replica
- itemid = 25958,
+ itemId = 25958,
type = WEAPON_CLUB,
},
{
-- earth basher replica
- itemid = 25957,
+ itemId = 25957,
type = WEAPON_CLUB,
},
{
-- earth crystal mace replica
- itemid = 25956,
+ itemId = 25956,
type = WEAPON_CLUB,
},
{
-- earth clerical mace replica
- itemid = 25955,
+ itemId = 25955,
type = WEAPON_CLUB,
},
{
-- earth war axe replica
- itemid = 25954,
+ itemId = 25954,
type = WEAPON_AXE,
},
{
-- earth headchopper replica
- itemid = 25953,
+ itemId = 25953,
type = WEAPON_AXE,
},
{
-- earth heroic axe replica
- itemid = 25952,
+ itemId = 25952,
type = WEAPON_AXE,
},
{
-- earth knight axe replica
- itemid = 25951,
+ itemId = 25951,
type = WEAPON_AXE,
},
{
-- earth barbarian axe replica
- itemid = 25950,
+ itemId = 25950,
type = WEAPON_AXE,
},
{
-- earth dragon slayer replica
- itemid = 25949,
+ itemId = 25949,
type = WEAPON_SWORD,
},
{
-- earth blacksteel replica
- itemid = 25948,
+ itemId = 25948,
type = WEAPON_SWORD,
},
{
-- earth mystic blade replica
- itemid = 25947,
+ itemId = 25947,
type = WEAPON_SWORD,
},
{
-- earth relic sword replica
- itemid = 25946,
+ itemId = 25946,
type = WEAPON_SWORD,
},
{
-- earth spike sword replica
- itemid = 25945,
+ itemId = 25945,
type = WEAPON_SWORD,
},
{
-- icy war hammer replica
- itemid = 25944,
+ itemId = 25944,
type = WEAPON_CLUB,
},
{
-- icy orcish maul replica
- itemid = 25943,
+ itemId = 25943,
type = WEAPON_CLUB,
},
{
-- icy basher replica
- itemid = 25942,
+ itemId = 25942,
type = WEAPON_CLUB,
},
{
-- icy crystal mace replica
- itemid = 25941,
+ itemId = 25941,
type = WEAPON_CLUB,
},
{
-- icy clerical mace replica
- itemid = 25940,
+ itemId = 25940,
type = WEAPON_CLUB,
},
{
-- icy war axe replica
- itemid = 25939,
+ itemId = 25939,
type = WEAPON_AXE,
},
{
-- icy headchopper replica
- itemid = 25938,
+ itemId = 25938,
type = WEAPON_AXE,
},
{
-- icy heroic axe replica
- itemid = 25937,
+ itemId = 25937,
type = WEAPON_AXE,
},
{
-- icy knight axe replica
- itemid = 25936,
+ itemId = 25936,
type = WEAPON_AXE,
},
{
-- icy barbarian axe replica
- itemid = 25935,
+ itemId = 25935,
type = WEAPON_AXE,
},
{
-- icy dragon slayer replica
- itemid = 25934,
+ itemId = 25934,
type = WEAPON_SWORD,
},
{
-- icy blacksteel replica
- itemid = 25933,
+ itemId = 25933,
type = WEAPON_SWORD,
},
{
-- icy mystic blade replica
- itemid = 25932,
+ itemId = 25932,
type = WEAPON_SWORD,
},
{
-- icy relic sword replica
- itemid = 25931,
+ itemId = 25931,
type = WEAPON_SWORD,
},
{
-- icy spike sword replica
- itemid = 25930,
+ itemId = 25930,
type = WEAPON_SWORD,
},
{
-- fiery war hammer replica
- itemid = 25929,
+ itemId = 25929,
type = WEAPON_CLUB,
},
{
-- fiery orcish maul replica
- itemid = 25928,
+ itemId = 25928,
type = WEAPON_CLUB,
},
{
-- fiery basher replica
- itemid = 25927,
+ itemId = 25927,
type = WEAPON_CLUB,
},
{
-- fiery crystal mace replica
- itemid = 25926,
+ itemId = 25926,
type = WEAPON_CLUB,
},
{
-- fiery clerical mace replica
- itemid = 25925,
+ itemId = 25925,
type = WEAPON_CLUB,
},
{
-- fiery war axe replica
- itemid = 25924,
+ itemId = 25924,
type = WEAPON_AXE,
},
{
-- fiery headchopper replica
- itemid = 25923,
+ itemId = 25923,
type = WEAPON_AXE,
},
{
-- fiery heroic axe replica
- itemid = 25922,
+ itemId = 25922,
type = WEAPON_AXE,
},
{
-- fiery knight axe replica
- itemid = 25921,
+ itemId = 25921,
type = WEAPON_AXE,
},
{
-- fiery barbarian axe replica
- itemid = 25920,
+ itemId = 25920,
type = WEAPON_AXE,
},
{
-- fiery dragon slayer replica
- itemid = 25919,
+ itemId = 25919,
type = WEAPON_SWORD,
},
{
-- fiery blacksteel replica
- itemid = 25918,
+ itemId = 25918,
type = WEAPON_SWORD,
},
{
-- fiery mystic blade replica
- itemid = 25917,
+ itemId = 25917,
type = WEAPON_SWORD,
},
{
-- fiery relic sword replica
- itemid = 25916,
+ itemId = 25916,
type = WEAPON_SWORD,
},
{
-- fiery spike sword replica
- itemid = 25915,
+ itemId = 25915,
type = WEAPON_SWORD,
},
{
-- wand of darkness
- itemid = 25760,
+ itemId = 25760,
type = WEAPON_WAND,
wandType = "death",
level = 41,
@@ -1772,7 +1772,7 @@ local weapons = {
},
{
-- spectral bolt
- itemid = 25758,
+ itemId = 25758,
type = WEAPON_AMMO,
level = 150,
unproperly = true,
@@ -1788,7 +1788,7 @@ local weapons = {
},
{
-- dream blossom staff
- itemid = 25700,
+ itemId = 25700,
type = WEAPON_WAND,
wandType = "energy",
level = 80,
@@ -1803,7 +1803,7 @@ local weapons = {
},
{
-- rod of carving
- itemid = 23339,
+ itemId = 23339,
type = WEAPON_WAND,
wandType = "ice",
level = 100,
@@ -1816,7 +1816,7 @@ local weapons = {
},
{
-- wand of carving
- itemid = 23335,
+ itemId = 23335,
type = WEAPON_WAND,
wandType = "energy",
level = 100,
@@ -1829,7 +1829,7 @@ local weapons = {
},
{
-- crossbow of carving
- itemid = 23331,
+ itemId = 23331,
type = WEAPON_DISTANCE,
level = 100,
unproperly = true,
@@ -1840,7 +1840,7 @@ local weapons = {
},
{
-- bow of carving
- itemid = 23327,
+ itemId = 23327,
type = WEAPON_DISTANCE,
level = 100,
unproperly = true,
@@ -1851,7 +1851,7 @@ local weapons = {
},
{
-- hammer of carving
- itemid = 23323,
+ itemId = 23323,
type = WEAPON_CLUB,
level = 100,
unproperly = true,
@@ -1862,7 +1862,7 @@ local weapons = {
},
{
-- mace of carving
- itemid = 23319,
+ itemId = 23319,
type = WEAPON_CLUB,
level = 100,
unproperly = true,
@@ -1873,7 +1873,7 @@ local weapons = {
},
{
-- chopper of carving
- itemid = 23315,
+ itemId = 23315,
type = WEAPON_AXE,
level = 100,
unproperly = true,
@@ -1884,7 +1884,7 @@ local weapons = {
},
{
-- axe of carving
- itemid = 23311,
+ itemId = 23311,
type = WEAPON_AXE,
level = 100,
unproperly = true,
@@ -1895,7 +1895,7 @@ local weapons = {
},
{
-- slayer of carving
- itemid = 23307,
+ itemId = 23307,
type = WEAPON_SWORD,
level = 100,
unproperly = true,
@@ -1906,7 +1906,7 @@ local weapons = {
},
{
-- blade of carving
- itemid = 23303,
+ itemId = 23303,
type = WEAPON_SWORD,
level = 100,
unproperly = true,
@@ -1917,7 +1917,7 @@ local weapons = {
},
{
-- rod of remedy
- itemid = 23299,
+ itemId = 23299,
type = WEAPON_WAND,
wandType = "ice",
level = 100,
@@ -1930,7 +1930,7 @@ local weapons = {
},
{
-- wand of remedy
- itemid = 23295,
+ itemId = 23295,
type = WEAPON_WAND,
wandType = "energy",
level = 100,
@@ -1943,7 +1943,7 @@ local weapons = {
},
{
-- crossbow of remedy
- itemid = 23291,
+ itemId = 23291,
type = WEAPON_DISTANCE,
level = 100,
unproperly = true,
@@ -1954,7 +1954,7 @@ local weapons = {
},
{
-- bow of remedy
- itemid = 23287,
+ itemId = 23287,
type = WEAPON_DISTANCE,
level = 100,
unproperly = true,
@@ -1965,7 +1965,7 @@ local weapons = {
},
{
-- hammer of remedy
- itemid = 23283,
+ itemId = 23283,
type = WEAPON_CLUB,
level = 100,
unproperly = true,
@@ -1976,7 +1976,7 @@ local weapons = {
},
{
-- mace of remedy
- itemid = 23279,
+ itemId = 23279,
type = WEAPON_CLUB,
level = 100,
unproperly = true,
@@ -1987,7 +1987,7 @@ local weapons = {
},
{
-- chopper of remedy
- itemid = 23275,
+ itemId = 23275,
type = WEAPON_AXE,
level = 100,
unproperly = true,
@@ -1998,7 +1998,7 @@ local weapons = {
},
{
-- axe of remedy
- itemid = 23271,
+ itemId = 23271,
type = WEAPON_AXE,
level = 100,
unproperly = true,
@@ -2009,7 +2009,7 @@ local weapons = {
},
{
-- slayer of remedy
- itemid = 23267,
+ itemId = 23267,
type = WEAPON_SWORD,
level = 100,
unproperly = true,
@@ -2020,7 +2020,7 @@ local weapons = {
},
{
-- blade of remedy
- itemid = 23263,
+ itemId = 23263,
type = WEAPON_SWORD,
level = 100,
unproperly = true,
@@ -2031,7 +2031,7 @@ local weapons = {
},
{
-- rod of mayhem
- itemid = 23232,
+ itemId = 23232,
type = WEAPON_WAND,
wandType = "ice",
level = 100,
@@ -2044,7 +2044,7 @@ local weapons = {
},
{
-- wand of mayhem
- itemid = 23231,
+ itemId = 23231,
type = WEAPON_WAND,
wandType = "energy",
level = 100,
@@ -2057,7 +2057,7 @@ local weapons = {
},
{
-- crossbow of mayhem
- itemid = 23230,
+ itemId = 23230,
type = WEAPON_DISTANCE,
level = 100,
unproperly = true,
@@ -2068,7 +2068,7 @@ local weapons = {
},
{
-- bow of mayhem
- itemid = 23229,
+ itemId = 23229,
type = WEAPON_DISTANCE,
level = 100,
unproperly = true,
@@ -2079,7 +2079,7 @@ local weapons = {
},
{
-- hammer of mayhem
- itemid = 23228,
+ itemId = 23228,
type = WEAPON_CLUB,
level = 100,
unproperly = true,
@@ -2090,7 +2090,7 @@ local weapons = {
},
{
-- mace of mayhem
- itemid = 23227,
+ itemId = 23227,
type = WEAPON_CLUB,
level = 100,
unproperly = true,
@@ -2101,7 +2101,7 @@ local weapons = {
},
{
-- chopper of mayhem
- itemid = 23226,
+ itemId = 23226,
type = WEAPON_AXE,
level = 100,
unproperly = true,
@@ -2112,7 +2112,7 @@ local weapons = {
},
{
-- axe of mayhem
- itemid = 23225,
+ itemId = 23225,
type = WEAPON_AXE,
level = 100,
unproperly = true,
@@ -2123,7 +2123,7 @@ local weapons = {
},
{
-- slayer of mayhem
- itemid = 23224,
+ itemId = 23224,
type = WEAPON_SWORD,
level = 100,
unproperly = true,
@@ -2134,7 +2134,7 @@ local weapons = {
},
{
-- blade of mayhem
- itemid = 23223,
+ itemId = 23223,
type = WEAPON_SWORD,
level = 100,
unproperly = true,
@@ -2145,7 +2145,7 @@ local weapons = {
},
{
-- rift crossbow
- itemid = 22867,
+ itemId = 22867,
type = WEAPON_DISTANCE,
level = 120,
unproperly = true,
@@ -2156,7 +2156,7 @@ local weapons = {
},
{
-- rift bow
- itemid = 22866,
+ itemId = 22866,
type = WEAPON_DISTANCE,
level = 120,
unproperly = true,
@@ -2167,7 +2167,7 @@ local weapons = {
},
{
-- ferumbras' staff (enchanted)
- itemid = 22766,
+ itemId = 22766,
type = WEAPON_WAND,
wandType = "energy",
level = 100,
@@ -2180,7 +2180,7 @@ local weapons = {
},
{
-- ferumbras' staff (failed)
- itemid = 22765,
+ itemId = 22765,
type = WEAPON_WAND,
wandType = "energy",
level = 65,
@@ -2193,42 +2193,42 @@ local weapons = {
},
{
-- Ferumbras' staff
- itemid = 22764,
+ itemId = 22764,
type = WEAPON_CLUB,
level = 100,
unproperly = true,
},
{
-- maimer
- itemid = 22762,
+ itemId = 22762,
type = WEAPON_CLUB,
level = 150,
unproperly = true,
},
{
-- Impaler of the igniter
- itemid = 22760,
+ itemId = 22760,
type = WEAPON_SWORD,
level = 150,
unproperly = true,
},
{
-- plague bite
- itemid = 22759,
+ itemId = 22759,
type = WEAPON_AXE,
level = 150,
unproperly = true,
},
{
-- rift lance
- itemid = 22727,
+ itemId = 22727,
type = WEAPON_AXE,
level = 70,
unproperly = true,
},
{
-- ogre sceptra
- itemid = 22183,
+ itemId = 22183,
type = WEAPON_WAND,
wandType = "earth",
level = 37,
@@ -2241,27 +2241,27 @@ local weapons = {
},
{
-- ogre choppa
- itemid = 22172,
+ itemId = 22172,
type = WEAPON_AXE,
level = 25,
unproperly = true,
},
{
-- ogre klubba
- itemid = 22171,
+ itemId = 22171,
type = WEAPON_AXE,
level = 50,
unproperly = true,
},
{
-- simple arrow
- itemid = 21470,
+ itemId = 21470,
type = WEAPON_AMMO,
action = "removecount",
},
{
-- the chiller
- itemid = 21350,
+ itemId = 21350,
type = WEAPON_WAND,
wandType = "ice",
level = 1,
@@ -2274,7 +2274,7 @@ local weapons = {
},
{
-- the scorcher
- itemid = 21348,
+ itemId = 21348,
type = WEAPON_WAND,
wandType = "fire",
level = 1,
@@ -2287,14 +2287,14 @@ local weapons = {
},
{
-- one hit wonder
- itemid = 21219,
+ itemId = 21219,
type = WEAPON_CLUB,
level = 70,
unproperly = true,
},
{
-- glooth axe
- itemid = 21180,
+ itemId = 21180,
type = WEAPON_AXE,
level = 75,
unproperly = true,
@@ -2306,7 +2306,7 @@ local weapons = {
},
{
-- glooth blade
- itemid = 21179,
+ itemId = 21179,
type = WEAPON_SWORD,
level = 75,
unproperly = true,
@@ -2318,7 +2318,7 @@ local weapons = {
},
{
-- glooth club
- itemid = 21178,
+ itemId = 21178,
type = WEAPON_CLUB,
level = 75,
unproperly = true,
@@ -2330,42 +2330,42 @@ local weapons = {
},
{
-- cowtana
- itemid = 21177,
+ itemId = 21177,
type = WEAPON_SWORD,
level = 25,
unproperly = true,
},
{
-- execowtioner axe
- itemid = 21176,
+ itemId = 21176,
type = WEAPON_AXE,
level = 55,
unproperly = true,
},
{
-- mino lance
- itemid = 21174,
+ itemId = 21174,
type = WEAPON_AXE,
level = 45,
unproperly = true,
},
{
-- moohtant cudgel
- itemid = 21173,
+ itemId = 21173,
type = WEAPON_CLUB,
level = 60,
unproperly = true,
},
{
-- glooth whip
- itemid = 21172,
+ itemId = 21172,
type = WEAPON_CLUB,
level = 25,
unproperly = true,
},
{
-- metal bat
- itemid = 21171,
+ itemId = 21171,
type = WEAPON_CLUB,
level = 55,
unproperly = true,
@@ -2380,7 +2380,7 @@ local weapons = {
},
{
-- umbral master crossbow
- itemid = 20087,
+ itemId = 20087,
type = WEAPON_DISTANCE,
level = 250,
unproperly = true,
@@ -2391,7 +2391,7 @@ local weapons = {
},
{
-- umbral crossbow
- itemid = 20086,
+ itemId = 20086,
type = WEAPON_DISTANCE,
level = 120,
unproperly = true,
@@ -2402,7 +2402,7 @@ local weapons = {
},
{
-- crude umbral crossbow
- itemid = 20085,
+ itemId = 20085,
type = WEAPON_DISTANCE,
level = 75,
unproperly = true,
@@ -2413,7 +2413,7 @@ local weapons = {
},
{
-- umbral master bow
- itemid = 20084,
+ itemId = 20084,
type = WEAPON_DISTANCE,
level = 250,
unproperly = true,
@@ -2424,7 +2424,7 @@ local weapons = {
},
{
-- umbral bow
- itemid = 20083,
+ itemId = 20083,
type = WEAPON_DISTANCE,
level = 120,
unproperly = true,
@@ -2435,7 +2435,7 @@ local weapons = {
},
{
-- crude umbral bow
- itemid = 20082,
+ itemId = 20082,
type = WEAPON_DISTANCE,
level = 75,
unproperly = true,
@@ -2446,7 +2446,7 @@ local weapons = {
},
{
-- umbral master hammer
- itemid = 20081,
+ itemId = 20081,
type = WEAPON_CLUB,
level = 250,
unproperly = true,
@@ -2457,7 +2457,7 @@ local weapons = {
},
{
-- umbral hammer
- itemid = 20080,
+ itemId = 20080,
type = WEAPON_CLUB,
level = 120,
unproperly = true,
@@ -2468,7 +2468,7 @@ local weapons = {
},
{
-- crude umbral hammer
- itemid = 20079,
+ itemId = 20079,
type = WEAPON_CLUB,
level = 75,
unproperly = true,
@@ -2479,7 +2479,7 @@ local weapons = {
},
{
-- umbral master mace
- itemid = 20078,
+ itemId = 20078,
type = WEAPON_CLUB,
level = 250,
unproperly = true,
@@ -2490,7 +2490,7 @@ local weapons = {
},
{
-- umbral mace
- itemid = 20077,
+ itemId = 20077,
type = WEAPON_CLUB,
level = 120,
unproperly = true,
@@ -2501,7 +2501,7 @@ local weapons = {
},
{
-- crude umbral mace
- itemid = 20076,
+ itemId = 20076,
type = WEAPON_CLUB,
level = 75,
unproperly = true,
@@ -2512,7 +2512,7 @@ local weapons = {
},
{
-- umbral master chopper
- itemid = 20075,
+ itemId = 20075,
type = WEAPON_AXE,
level = 250,
unproperly = true,
@@ -2523,7 +2523,7 @@ local weapons = {
},
{
-- umbral chopper
- itemid = 20074,
+ itemId = 20074,
type = WEAPON_AXE,
level = 120,
unproperly = true,
@@ -2534,7 +2534,7 @@ local weapons = {
},
{
-- crude umbral chopper
- itemid = 20073,
+ itemId = 20073,
type = WEAPON_AXE,
level = 75,
unproperly = true,
@@ -2545,7 +2545,7 @@ local weapons = {
},
{
-- umbral master axe
- itemid = 20072,
+ itemId = 20072,
type = WEAPON_AXE,
level = 250,
unproperly = true,
@@ -2556,7 +2556,7 @@ local weapons = {
},
{
-- umbral axe
- itemid = 20071,
+ itemId = 20071,
type = WEAPON_AXE,
level = 120,
unproperly = true,
@@ -2567,7 +2567,7 @@ local weapons = {
},
{
-- crude umbral axe
- itemid = 20070,
+ itemId = 20070,
type = WEAPON_AXE,
level = 75,
unproperly = true,
@@ -2578,7 +2578,7 @@ local weapons = {
},
{
-- umbral master slayer
- itemid = 20069,
+ itemId = 20069,
type = WEAPON_SWORD,
level = 250,
unproperly = true,
@@ -2589,7 +2589,7 @@ local weapons = {
},
{
-- umbral slayer
- itemid = 20068,
+ itemId = 20068,
type = WEAPON_SWORD,
level = 120,
unproperly = true,
@@ -2600,7 +2600,7 @@ local weapons = {
},
{
-- crude umbral slayer
- itemid = 20067,
+ itemId = 20067,
type = WEAPON_SWORD,
level = 75,
unproperly = true,
@@ -2611,7 +2611,7 @@ local weapons = {
},
{
-- umbral masterblade
- itemid = 20066,
+ itemId = 20066,
type = WEAPON_SWORD,
level = 250,
unproperly = true,
@@ -2622,7 +2622,7 @@ local weapons = {
},
{
-- umbral blade
- itemid = 20065,
+ itemId = 20065,
type = WEAPON_SWORD,
level = 120,
unproperly = true,
@@ -2633,7 +2633,7 @@ local weapons = {
},
{
-- crude umbral blade
- itemid = 20064,
+ itemId = 20064,
type = WEAPON_SWORD,
level = 75,
unproperly = true,
@@ -2644,13 +2644,13 @@ local weapons = {
},
{
-- icicle bow
- itemid = 19362,
+ itemId = 19362,
type = WEAPON_DISTANCE,
unproperly = true,
},
{
-- triple bolt crossbow
- itemid = 19356,
+ itemId = 19356,
type = WEAPON_DISTANCE,
level = 70,
unproperly = true,
@@ -2661,14 +2661,14 @@ local weapons = {
},
{
-- spiky club
- itemid = 17859,
+ itemId = 17859,
type = WEAPON_CLUB,
level = 20,
unproperly = true,
},
{
-- pair of iron fists
- itemid = 17828,
+ itemId = 17828,
type = WEAPON_CLUB,
level = 50,
unproperly = true,
@@ -2679,26 +2679,26 @@ local weapons = {
},
{
-- swampling club
- itemid = 17824,
+ itemId = 17824,
type = WEAPON_CLUB,
},
{
-- life preserver
- itemid = 17813,
+ itemId = 17813,
type = WEAPON_CLUB,
level = 15,
unproperly = true,
},
{
-- ratana
- itemid = 17812,
+ itemId = 17812,
type = WEAPON_SWORD,
level = 15,
unproperly = true,
},
{
-- sorc and druid staff
- itemid = 17111,
+ itemId = 17111,
type = WEAPON_WAND,
wandType = "energy",
level = 1,
@@ -2719,7 +2719,7 @@ local weapons = {
},
{
-- mean knight sword
- itemid = 17109,
+ itemId = 17109,
type = WEAPON_SWORD,
unproperly = true,
vocation = {
@@ -2728,14 +2728,14 @@ local weapons = {
},
{
-- shiny blade
- itemid = 16175,
+ itemId = 16175,
type = WEAPON_SWORD,
level = 120,
unproperly = true,
},
{
-- mycological bow
- itemid = 16164,
+ itemId = 16164,
type = WEAPON_DISTANCE,
level = 105,
unproperly = true,
@@ -2746,7 +2746,7 @@ local weapons = {
},
{
-- crystal crossbow
- itemid = 16163,
+ itemId = 16163,
type = WEAPON_DISTANCE,
level = 90,
unproperly = true,
@@ -2757,21 +2757,21 @@ local weapons = {
},
{
-- mycological mace
- itemid = 16162,
+ itemId = 16162,
type = WEAPON_CLUB,
level = 120,
unproperly = true,
},
{
-- crystalline axe
- itemid = 16161,
+ itemId = 16161,
type = WEAPON_AXE,
level = 120,
unproperly = true,
},
{
-- crystalline sword
- itemid = 16160,
+ itemId = 16160,
type = WEAPON_SWORD,
level = 62,
unproperly = true,
@@ -2786,7 +2786,7 @@ local weapons = {
},
{
-- drill bolt
- itemid = 16142,
+ itemId = 16142,
type = WEAPON_AMMO,
level = 70,
unproperly = true,
@@ -2794,7 +2794,7 @@ local weapons = {
},
{
-- prismatic bolt
- itemid = 16141,
+ itemId = 16141,
type = WEAPON_AMMO,
level = 90,
unproperly = true,
@@ -2802,7 +2802,7 @@ local weapons = {
},
{
-- glacial rod
- itemid = 16118,
+ itemId = 16118,
type = WEAPON_WAND,
wandType = "ice",
level = 65,
@@ -2815,7 +2815,7 @@ local weapons = {
},
{
-- muck rod
- itemid = 16117,
+ itemId = 16117,
type = WEAPON_WAND,
wandType = "earth",
level = 65,
@@ -2828,7 +2828,7 @@ local weapons = {
},
{
-- wand of everblazing
- itemid = 16115,
+ itemId = 16115,
type = WEAPON_WAND,
wandType = "fire",
level = 65,
@@ -2841,7 +2841,7 @@ local weapons = {
},
{
-- wand of defiance
- itemid = 16096,
+ itemId = 16096,
type = WEAPON_WAND,
wandType = "energy",
level = 65,
@@ -2862,13 +2862,13 @@ local weapons = {
},
{
-- crystal bolt
- itemid = 15792,
+ itemId = 15792,
type = WEAPON_AMMO,
action = "removecount",
},
{
-- thorn spitter
- itemid = 14768,
+ itemId = 14768,
type = WEAPON_DISTANCE,
level = 150,
unproperly = true,
@@ -2879,7 +2879,7 @@ local weapons = {
},
{
-- vortex bolt
- itemid = 14252,
+ itemId = 14252,
type = WEAPON_AMMO,
level = 40,
unproperly = true,
@@ -2895,14 +2895,14 @@ local weapons = {
},
{
-- deepling squelcher
- itemid = 14250,
+ itemId = 14250,
type = WEAPON_CLUB,
level = 48,
unproperly = true,
},
{
-- ornate crossbow
- itemid = 14247,
+ itemId = 14247,
type = WEAPON_DISTANCE,
level = 50,
unproperly = true,
@@ -2913,7 +2913,7 @@ local weapons = {
},
{
-- hive bow
- itemid = 14246,
+ itemId = 14246,
type = WEAPON_DISTANCE,
level = 85,
unproperly = true,
@@ -2924,49 +2924,49 @@ local weapons = {
},
{
-- hive scythe
- itemid = 14089,
+ itemId = 14089,
type = WEAPON_AXE,
level = 70,
unproperly = true,
},
{
-- guardian axe
- itemid = 14043,
+ itemId = 14043,
type = WEAPON_AXE,
level = 50,
unproperly = true,
},
{
-- warrior's axe
- itemid = 14040,
+ itemId = 14040,
type = WEAPON_AXE,
level = 40,
unproperly = true,
},
{
-- ornate mace
- itemid = 14001,
+ itemId = 14001,
type = WEAPON_CLUB,
level = 90,
unproperly = true,
},
{
-- deepling axe
- itemid = 13991,
+ itemId = 13991,
type = WEAPON_AXE,
level = 80,
unproperly = true,
},
{
-- deepling staff
- itemid = 13987,
+ itemId = 13987,
type = WEAPON_CLUB,
level = 38,
unproperly = true,
},
{
-- shimmer wand
- itemid = 12741,
+ itemId = 12741,
type = WEAPON_WAND,
wandType = "energy",
level = 40,
@@ -2979,7 +2979,7 @@ local weapons = {
},
{
-- shimmer bow
- itemid = 12733,
+ itemId = 12733,
type = WEAPON_DISTANCE,
level = 40,
unproperly = true,
@@ -2990,7 +2990,7 @@ local weapons = {
},
{
-- shimmer rod
- itemid = 12732,
+ itemId = 12732,
type = WEAPON_WAND,
wandType = "ice",
level = 40,
@@ -3003,26 +3003,26 @@ local weapons = {
},
{
-- shimmer sword
- itemid = 12731,
+ itemId = 12731,
type = WEAPON_SWORD,
level = 40,
unproperly = true,
},
{
-- heavy trident
- itemid = 12683,
+ itemId = 12683,
type = WEAPON_AXE,
level = 25,
unproperly = true,
},
{
-- wooden sword
- itemid = 12673,
+ itemId = 12673,
type = WEAPON_SWORD,
},
{
-- wand of dimensions
- itemid = 12603,
+ itemId = 12603,
type = WEAPON_WAND,
wandType = "death",
level = 37,
@@ -3035,21 +3035,21 @@ local weapons = {
},
{
-- blade of corruption
- itemid = 11693,
+ itemId = 11693,
type = WEAPON_SWORD,
level = 82,
unproperly = true,
},
{
-- snake god's sceptre
- itemid = 11692,
+ itemId = 11692,
type = WEAPON_CLUB,
level = 82,
unproperly = true,
},
{
-- twiceslicer
- itemid = 11657,
+ itemId = 11657,
type = WEAPON_SWORD,
level = 58,
unproperly = true,
@@ -3060,14 +3060,14 @@ local weapons = {
},
{
-- Zaoan halberd
- itemid = 10406,
+ itemId = 10406,
type = WEAPON_AXE,
level = 25,
unproperly = true,
},
{
-- twin hooks
- itemid = 10392,
+ itemId = 10392,
type = WEAPON_SWORD,
level = 20,
unproperly = true,
@@ -3078,7 +3078,7 @@ local weapons = {
},
{
-- drachaku
- itemid = 10391,
+ itemId = 10391,
type = WEAPON_CLUB,
level = 55,
unproperly = true,
@@ -3089,14 +3089,14 @@ local weapons = {
},
{
-- Zaoan sword
- itemid = 10390,
+ itemId = 10390,
type = WEAPON_SWORD,
level = 55,
unproperly = true,
},
{
-- sai
- itemid = 10389,
+ itemId = 10389,
type = WEAPON_SWORD,
level = 50,
unproperly = true,
@@ -3107,59 +3107,59 @@ local weapons = {
},
{
-- drakinata
- itemid = 10388,
+ itemId = 10388,
type = WEAPON_AXE,
level = 60,
unproperly = true,
},
{
-- incredible mumpiz slayer
- itemid = 9396,
+ itemId = 9396,
type = WEAPON_SWORD,
},
{
-- poet's fencing quill
- itemid = 9387,
+ itemId = 9387,
type = WEAPON_SWORD,
},
{
-- farmer's avenger
- itemid = 9386,
+ itemId = 9386,
type = WEAPON_AXE,
},
{
-- club of the fury
- itemid = 9385,
+ itemId = 9385,
type = WEAPON_CLUB,
},
{
-- scythe of the reaper
- itemid = 9384,
+ itemId = 9384,
type = WEAPON_AXE,
},
{
-- musician's bow
- itemid = 9378,
+ itemId = 9378,
type = WEAPON_DISTANCE,
},
{
-- stale bread of ancientness
- itemid = 9376,
+ itemId = 9376,
type = WEAPON_CLUB,
},
{
-- pointed rabbitslayer
- itemid = 9375,
+ itemId = 9375,
type = WEAPON_SWORD,
},
{
-- glutton's mace
- itemid = 9373,
+ itemId = 9373,
type = WEAPON_CLUB,
},
{
-- the calamity
- itemid = 8104,
+ itemId = 8104,
type = WEAPON_SWORD,
level = 100,
unproperly = true,
@@ -3170,21 +3170,21 @@ local weapons = {
},
{
-- the epiphany
- itemid = 8103,
+ itemId = 8103,
type = WEAPON_SWORD,
level = 120,
unproperly = true,
},
{
-- emerald sword
- itemid = 8102,
+ itemId = 8102,
type = WEAPON_SWORD,
level = 100,
unproperly = true,
},
{
-- the stomper
- itemid = 8101,
+ itemId = 8101,
type = WEAPON_CLUB,
level = 100,
unproperly = true,
@@ -3195,21 +3195,21 @@ local weapons = {
},
{
-- obsidian truncheon
- itemid = 8100,
+ itemId = 8100,
type = WEAPON_CLUB,
level = 100,
unproperly = true,
},
{
-- dark trinity mace
- itemid = 8099,
+ itemId = 8099,
type = WEAPON_CLUB,
level = 120,
unproperly = true,
},
{
-- demonwing axe
- itemid = 8098,
+ itemId = 8098,
type = WEAPON_AXE,
level = 120,
unproperly = true,
@@ -3220,21 +3220,21 @@ local weapons = {
},
{
-- solar axe
- itemid = 8097,
+ itemId = 8097,
type = WEAPON_AXE,
level = 130,
unproperly = true,
},
{
-- hellforged axe
- itemid = 8096,
+ itemId = 8096,
type = WEAPON_AXE,
level = 110,
unproperly = true,
},
{
-- wand of voodoo
- itemid = 8094,
+ itemId = 8094,
type = WEAPON_WAND,
wandType = "death",
level = 42,
@@ -3247,7 +3247,7 @@ local weapons = {
},
{
-- wand of draconia
- itemid = 8093,
+ itemId = 8093,
type = WEAPON_WAND,
wandType = "fire",
level = 22,
@@ -3260,7 +3260,7 @@ local weapons = {
},
{
-- wand of starmstorm
- itemid = 8092,
+ itemId = 8092,
type = WEAPON_WAND,
wandType = "energy",
level = 37,
@@ -3273,7 +3273,7 @@ local weapons = {
},
{
-- springsprout rod
- itemid = 8084,
+ itemId = 8084,
type = WEAPON_WAND,
wandType = "earth",
level = 37,
@@ -3286,7 +3286,7 @@ local weapons = {
},
{
-- northwind rod
- itemid = 8083,
+ itemId = 8083,
type = WEAPON_WAND,
wandType = "ice",
level = 22,
@@ -3299,7 +3299,7 @@ local weapons = {
},
{
-- underworld rod
- itemid = 8082,
+ itemId = 8082,
type = WEAPON_WAND,
wandType = "death",
level = 42,
@@ -3312,7 +3312,7 @@ local weapons = {
},
{
-- elethriel's elemental bow
- itemid = 8030,
+ itemId = 8030,
type = WEAPON_DISTANCE,
level = 70,
unproperly = true,
@@ -3323,7 +3323,7 @@ local weapons = {
},
{
-- silkweaver bow
- itemid = 8029,
+ itemId = 8029,
type = WEAPON_DISTANCE,
level = 40,
unproperly = true,
@@ -3334,7 +3334,7 @@ local weapons = {
},
{
-- yol's bow
- itemid = 8028,
+ itemId = 8028,
type = WEAPON_DISTANCE,
level = 60,
unproperly = true,
@@ -3345,7 +3345,7 @@ local weapons = {
},
{
-- composite hornbow
- itemid = 8027,
+ itemId = 8027,
type = WEAPON_DISTANCE,
level = 50,
unproperly = true,
@@ -3356,7 +3356,7 @@ local weapons = {
},
{
-- warsinger bow
- itemid = 8026,
+ itemId = 8026,
type = WEAPON_DISTANCE,
level = 80,
unproperly = true,
@@ -3367,7 +3367,7 @@ local weapons = {
},
{
-- ironworker
- itemid = 8025,
+ itemId = 8025,
type = WEAPON_DISTANCE,
level = 80,
unproperly = true,
@@ -3378,7 +3378,7 @@ local weapons = {
},
{
-- devileye
- itemid = 8024,
+ itemId = 8024,
type = WEAPON_DISTANCE,
level = 100,
unproperly = true,
@@ -3389,7 +3389,7 @@ local weapons = {
},
{
-- royal crossbow
- itemid = 8023,
+ itemId = 8023,
type = WEAPON_DISTANCE,
level = 130,
unproperly = true,
@@ -3400,7 +3400,7 @@ local weapons = {
},
{
-- chain bolter
- itemid = 8022,
+ itemId = 8022,
type = WEAPON_DISTANCE,
level = 60,
unproperly = true,
@@ -3411,7 +3411,7 @@ local weapons = {
},
{
-- modified crossbow
- itemid = 8021,
+ itemId = 8021,
type = WEAPON_DISTANCE,
level = 45,
unproperly = true,
@@ -3422,22 +3422,22 @@ local weapons = {
},
{
-- jagged sword
- itemid = 7774,
+ itemId = 7774,
type = WEAPON_SWORD,
},
{
-- steel axe
- itemid = 7773,
+ itemId = 7773,
type = WEAPON_AXE,
},
{
-- crimson sword
- itemid = 860,
+ itemId = 860,
type = WEAPON_SWORD,
},
{
-- energy war hammer
- itemid = 810,
+ itemId = 810,
type = WEAPON_CLUB,
level = 50,
unproperly = true,
@@ -3449,7 +3449,7 @@ local weapons = {
},
{
-- energy orcish maul
- itemid = 809,
+ itemId = 809,
type = WEAPON_CLUB,
level = 35,
unproperly = true,
@@ -3457,7 +3457,7 @@ local weapons = {
},
{
-- energy cranial basher
- itemid = 808,
+ itemId = 808,
type = WEAPON_CLUB,
level = 60,
unproperly = true,
@@ -3465,7 +3465,7 @@ local weapons = {
},
{
-- energy crystal mace
- itemid = 807,
+ itemId = 807,
type = WEAPON_CLUB,
level = 35,
unproperly = true,
@@ -3473,7 +3473,7 @@ local weapons = {
},
{
-- energy clerical mace
- itemid = 806,
+ itemId = 806,
type = WEAPON_CLUB,
level = 20,
unproperly = true,
@@ -3481,7 +3481,7 @@ local weapons = {
},
{
-- energy war axe
- itemid = 805,
+ itemId = 805,
type = WEAPON_AXE,
level = 65,
unproperly = true,
@@ -3493,7 +3493,7 @@ local weapons = {
},
{
-- energy headchopper
- itemid = 804,
+ itemId = 804,
type = WEAPON_AXE,
level = 35,
unproperly = true,
@@ -3505,7 +3505,7 @@ local weapons = {
},
{
-- energy heroic axe
- itemid = 803,
+ itemId = 803,
type = WEAPON_AXE,
level = 60,
unproperly = true,
@@ -3513,7 +3513,7 @@ local weapons = {
},
{
-- energy knight axe
- itemid = 802,
+ itemId = 802,
type = WEAPON_AXE,
level = 25,
unproperly = true,
@@ -3521,7 +3521,7 @@ local weapons = {
},
{
-- energy barbarian axe
- itemid = 801,
+ itemId = 801,
type = WEAPON_AXE,
level = 20,
unproperly = true,
@@ -3529,7 +3529,7 @@ local weapons = {
},
{
-- energy dragon slayer
- itemid = 798,
+ itemId = 798,
type = WEAPON_SWORD,
level = 45,
unproperly = true,
@@ -3541,7 +3541,7 @@ local weapons = {
},
{
-- energy blacksteel sword
- itemid = 797,
+ itemId = 797,
type = WEAPON_SWORD,
level = 35,
unproperly = true,
@@ -3553,7 +3553,7 @@ local weapons = {
},
{
-- energy mystic blade
- itemid = 796,
+ itemId = 796,
type = WEAPON_SWORD,
level = 60,
unproperly = true,
@@ -3561,7 +3561,7 @@ local weapons = {
},
{
-- energy relic sword
- itemid = 795,
+ itemId = 795,
type = WEAPON_SWORD,
level = 50,
unproperly = true,
@@ -3569,13 +3569,13 @@ local weapons = {
},
{
-- energy spike sword
- itemid = 794,
+ itemId = 794,
type = WEAPON_SWORD,
action = "removecharge",
},
{
-- earth war hammer
- itemid = 793,
+ itemId = 793,
type = WEAPON_CLUB,
level = 50,
unproperly = true,
@@ -3587,7 +3587,7 @@ local weapons = {
},
{
-- earth orcish maul
- itemid = 792,
+ itemId = 792,
type = WEAPON_CLUB,
level = 35,
unproperly = true,
@@ -3595,7 +3595,7 @@ local weapons = {
},
{
-- earth cranial basher
- itemid = 791,
+ itemId = 791,
type = WEAPON_CLUB,
level = 60,
unproperly = true,
@@ -3603,7 +3603,7 @@ local weapons = {
},
{
-- earth crystal mace
- itemid = 790,
+ itemId = 790,
type = WEAPON_CLUB,
level = 35,
unproperly = true,
@@ -3611,7 +3611,7 @@ local weapons = {
},
{
-- earth clerical mace
- itemid = 789,
+ itemId = 789,
type = WEAPON_CLUB,
level = 20,
unproperly = true,
@@ -3619,7 +3619,7 @@ local weapons = {
},
{
-- earth war axe
- itemid = 788,
+ itemId = 788,
type = WEAPON_AXE,
level = 65,
unproperly = true,
@@ -3631,7 +3631,7 @@ local weapons = {
},
{
-- earth headchopper
- itemid = 787,
+ itemId = 787,
type = WEAPON_AXE,
level = 35,
unproperly = true,
@@ -3643,7 +3643,7 @@ local weapons = {
},
{
-- earth heroic axe
- itemid = 786,
+ itemId = 786,
type = WEAPON_AXE,
level = 60,
unproperly = true,
@@ -3651,7 +3651,7 @@ local weapons = {
},
{
-- earth knight axe
- itemid = 785,
+ itemId = 785,
type = WEAPON_AXE,
level = 25,
unproperly = true,
@@ -3659,7 +3659,7 @@ local weapons = {
},
{
-- earth barbarian axe
- itemid = 784,
+ itemId = 784,
type = WEAPON_AXE,
level = 20,
unproperly = true,
@@ -3667,7 +3667,7 @@ local weapons = {
},
{
-- earth dragon slayer
- itemid = 783,
+ itemId = 783,
type = WEAPON_SWORD,
level = 45,
unproperly = true,
@@ -3679,7 +3679,7 @@ local weapons = {
},
{
-- earth blacksteel sword
- itemid = 782,
+ itemId = 782,
type = WEAPON_SWORD,
level = 35,
unproperly = true,
@@ -3691,7 +3691,7 @@ local weapons = {
},
{
-- earth mystic blade
- itemid = 781,
+ itemId = 781,
type = WEAPON_SWORD,
level = 60,
unproperly = true,
@@ -3699,7 +3699,7 @@ local weapons = {
},
{
-- earth relic sword
- itemid = 780,
+ itemId = 780,
type = WEAPON_SWORD,
level = 50,
unproperly = true,
@@ -3707,7 +3707,7 @@ local weapons = {
},
{
-- earth spike sword
- itemid = 779,
+ itemId = 779,
type = WEAPON_SWORD,
action = "removecharge",
},
@@ -3745,7 +3745,7 @@ local weapons = {
},
{
-- icy war hammer
- itemid = 693,
+ itemId = 693,
type = WEAPON_CLUB,
level = 50,
unproperly = true,
@@ -3757,7 +3757,7 @@ local weapons = {
},
{
-- icy orcish maul
- itemid = 692,
+ itemId = 692,
type = WEAPON_CLUB,
level = 35,
unproperly = true,
@@ -3765,7 +3765,7 @@ local weapons = {
},
{
-- icy cranial basher
- itemid = 691,
+ itemId = 691,
type = WEAPON_CLUB,
level = 60,
unproperly = true,
@@ -3773,7 +3773,7 @@ local weapons = {
},
{
-- icy crystal mace
- itemid = 690,
+ itemId = 690,
type = WEAPON_CLUB,
level = 35,
unproperly = true,
@@ -3781,7 +3781,7 @@ local weapons = {
},
{
-- icy clerical mace
- itemid = 689,
+ itemId = 689,
type = WEAPON_CLUB,
level = 20,
unproperly = true,
@@ -3789,7 +3789,7 @@ local weapons = {
},
{
-- icy war axe
- itemid = 688,
+ itemId = 688,
type = WEAPON_AXE,
level = 65,
unproperly = true,
@@ -3801,7 +3801,7 @@ local weapons = {
},
{
-- icy headchopper
- itemid = 687,
+ itemId = 687,
type = WEAPON_AXE,
level = 35,
unproperly = true,
@@ -3813,7 +3813,7 @@ local weapons = {
},
{
-- icy heroic axe
- itemid = 686,
+ itemId = 686,
type = WEAPON_AXE,
level = 60,
unproperly = true,
@@ -3821,7 +3821,7 @@ local weapons = {
},
{
-- icy knight axe
- itemid = 685,
+ itemId = 685,
type = WEAPON_AXE,
level = 25,
unproperly = true,
@@ -3829,7 +3829,7 @@ local weapons = {
},
{
-- icy barbarian axe
- itemid = 684,
+ itemId = 684,
type = WEAPON_AXE,
level = 20,
unproperly = true,
@@ -3837,7 +3837,7 @@ local weapons = {
},
{
-- icy dragon slayer
- itemid = 683,
+ itemId = 683,
type = WEAPON_SWORD,
level = 45,
unproperly = true,
@@ -3849,7 +3849,7 @@ local weapons = {
},
{
-- icy blacksteel sword
- itemid = 682,
+ itemId = 682,
type = WEAPON_SWORD,
level = 35,
unproperly = true,
@@ -3861,7 +3861,7 @@ local weapons = {
},
{
-- icy mystic blade
- itemid = 681,
+ itemId = 681,
type = WEAPON_SWORD,
level = 60,
unproperly = true,
@@ -3869,7 +3869,7 @@ local weapons = {
},
{
-- icy relic sword
- itemid = 680,
+ itemId = 680,
type = WEAPON_SWORD,
level = 50,
unproperly = true,
@@ -3877,13 +3877,13 @@ local weapons = {
},
{
-- icy spike sword
- itemid = 679,
+ itemId = 679,
type = WEAPON_SWORD,
action = "removecharge",
},
{
-- fiery war hammer
- itemid = 674,
+ itemId = 674,
type = WEAPON_CLUB,
level = 50,
unproperly = true,
@@ -3895,7 +3895,7 @@ local weapons = {
},
{
-- fiery orcish maul
- itemid = 673,
+ itemId = 673,
type = WEAPON_CLUB,
level = 35,
unproperly = true,
@@ -3903,7 +3903,7 @@ local weapons = {
},
{
-- fiery cranial basher
- itemid = 672,
+ itemId = 672,
type = WEAPON_CLUB,
level = 60,
unproperly = true,
@@ -3911,7 +3911,7 @@ local weapons = {
},
{
-- fiery crystal mace
- itemid = 671,
+ itemId = 671,
type = WEAPON_CLUB,
level = 35,
unproperly = true,
@@ -3919,7 +3919,7 @@ local weapons = {
},
{
-- fiery clerical mace
- itemid = 670,
+ itemId = 670,
type = WEAPON_CLUB,
level = 20,
unproperly = true,
@@ -3927,7 +3927,7 @@ local weapons = {
},
{
-- fiery war axe
- itemid = 669,
+ itemId = 669,
type = WEAPON_AXE,
level = 65,
unproperly = true,
@@ -3939,7 +3939,7 @@ local weapons = {
},
{
-- fiery headchopper
- itemid = 668,
+ itemId = 668,
type = WEAPON_AXE,
level = 35,
unproperly = true,
@@ -3951,7 +3951,7 @@ local weapons = {
},
{
-- fiery heroic axe
- itemid = 667,
+ itemId = 667,
type = WEAPON_AXE,
level = 60,
unproperly = true,
@@ -3959,7 +3959,7 @@ local weapons = {
},
{
-- fiery knight axe
- itemid = 666,
+ itemId = 666,
type = WEAPON_AXE,
level = 25,
unproperly = true,
@@ -3967,7 +3967,7 @@ local weapons = {
},
{
-- fiery barbarian axe
- itemid = 665,
+ itemId = 665,
type = WEAPON_AXE,
level = 20,
unproperly = true,
@@ -3975,7 +3975,7 @@ local weapons = {
},
{
-- fiery dragon slayer
- itemid = 664,
+ itemId = 664,
type = WEAPON_SWORD,
level = 45,
unproperly = true,
@@ -3987,7 +3987,7 @@ local weapons = {
},
{
-- fiery blacksteel sword
- itemid = 663,
+ itemId = 663,
type = WEAPON_SWORD,
level = 35,
unproperly = true,
@@ -3999,7 +3999,7 @@ local weapons = {
},
{
-- fiery mystic blade
- itemid = 662,
+ itemId = 662,
type = WEAPON_SWORD,
level = 60,
unproperly = true,
@@ -4007,7 +4007,7 @@ local weapons = {
},
{
-- fiery relic sword
- itemid = 661,
+ itemId = 661,
type = WEAPON_SWORD,
level = 50,
unproperly = true,
@@ -4015,27 +4015,27 @@ local weapons = {
},
{
-- fiery spike sword
- itemid = 660,
+ itemId = 660,
type = WEAPON_SWORD,
action = "removecharge",
},
{
-- noble axe
- itemid = 7456,
+ itemId = 7456,
type = WEAPON_AXE,
level = 35,
unproperly = true,
},
{
-- mythril axe
- itemid = 7455,
+ itemId = 7455,
type = WEAPON_AXE,
level = 80,
unproperly = true,
},
{
-- glorious axe
- itemid = 7454,
+ itemId = 7454,
type = WEAPON_AXE,
level = 30,
unproperly = true,
@@ -4046,7 +4046,7 @@ local weapons = {
},
{
-- executioner
- itemid = 7453,
+ itemId = 7453,
type = WEAPON_AXE,
level = 85,
unproperly = true,
@@ -4057,7 +4057,7 @@ local weapons = {
},
{
-- spiked squelcher
- itemid = 7452,
+ itemId = 7452,
type = WEAPON_CLUB,
level = 30,
unproperly = true,
@@ -4068,14 +4068,14 @@ local weapons = {
},
{
-- shadow sceptre
- itemid = 7451,
+ itemId = 7451,
type = WEAPON_CLUB,
level = 35,
unproperly = true,
},
{
-- hammer of prophecy
- itemid = 7450,
+ itemId = 7450,
type = WEAPON_CLUB,
level = 120,
unproperly = true,
@@ -4086,7 +4086,7 @@ local weapons = {
},
{
-- crystal sword
- itemid = 7449,
+ itemId = 7449,
type = WEAPON_SWORD,
level = 25,
unproperly = true,
@@ -4097,19 +4097,19 @@ local weapons = {
},
{
-- elvish bow
- itemid = 7438,
+ itemId = 7438,
type = WEAPON_DISTANCE,
},
{
-- sapphire hammer
- itemid = 7437,
+ itemId = 7437,
type = WEAPON_CLUB,
level = 30,
unproperly = true,
},
{
-- angelic axe
- itemid = 7436,
+ itemId = 7436,
type = WEAPON_AXE,
level = 45,
unproperly = true,
@@ -4120,56 +4120,56 @@ local weapons = {
},
{
-- impaler
- itemid = 7435,
+ itemId = 7435,
type = WEAPON_AXE,
level = 85,
unproperly = true,
},
{
-- royal axe
- itemid = 7434,
+ itemId = 7434,
type = WEAPON_AXE,
level = 75,
unproperly = true,
},
{
-- ravenwing
- itemid = 7433,
+ itemId = 7433,
type = WEAPON_AXE,
level = 65,
unproperly = true,
},
{
-- furry club
- itemid = 7432,
+ itemId = 7432,
type = WEAPON_CLUB,
level = 20,
unproperly = true,
},
{
-- demonbone
- itemid = 7431,
+ itemId = 7431,
type = WEAPON_CLUB,
level = 80,
unproperly = true,
},
{
-- dragonbone staff
- itemid = 7430,
+ itemId = 7430,
type = WEAPON_CLUB,
level = 30,
unproperly = true,
},
{
-- blessed sceptre
- itemid = 7429,
+ itemId = 7429,
type = WEAPON_CLUB,
level = 75,
unproperly = true,
},
{
-- bonebreaker
- itemid = 7428,
+ itemId = 7428,
type = WEAPON_CLUB,
level = 55,
unproperly = true,
@@ -4180,35 +4180,35 @@ local weapons = {
},
{
-- chaos mace
- itemid = 7427,
+ itemId = 7427,
type = WEAPON_CLUB,
level = 45,
unproperly = true,
},
{
-- amber staff
- itemid = 7426,
+ itemId = 7426,
type = WEAPON_CLUB,
level = 40,
unproperly = true,
},
{
-- taurus mace
- itemid = 7425,
+ itemId = 7425,
type = WEAPON_CLUB,
level = 20,
unproperly = true,
},
{
-- lunar staff
- itemid = 7424,
+ itemId = 7424,
type = WEAPON_CLUB,
level = 30,
unproperly = true,
},
{
-- skullcrusher
- itemid = 7423,
+ itemId = 7423,
type = WEAPON_CLUB,
level = 85,
unproperly = true,
@@ -4219,63 +4219,63 @@ local weapons = {
},
{
-- jade hammer
- itemid = 7422,
+ itemId = 7422,
type = WEAPON_CLUB,
level = 70,
unproperly = true,
},
{
-- onyx flail
- itemid = 7421,
+ itemId = 7421,
type = WEAPON_CLUB,
level = 65,
unproperly = true,
},
{
-- reaper's axe
- itemid = 7420,
+ itemId = 7420,
type = WEAPON_AXE,
level = 70,
unproperly = true,
},
{
-- dreaded cleaver
- itemid = 7419,
+ itemId = 7419,
type = WEAPON_AXE,
level = 40,
unproperly = true,
},
{
-- nightmare blade
- itemid = 7418,
+ itemId = 7418,
type = WEAPON_SWORD,
level = 70,
unproperly = true,
},
{
-- runed sword
- itemid = 7417,
+ itemId = 7417,
type = WEAPON_SWORD,
level = 65,
unproperly = true,
},
{
-- bloody edge
- itemid = 7416,
+ itemId = 7416,
type = WEAPON_SWORD,
level = 55,
unproperly = true,
},
{
-- cranial basher
- itemid = 7415,
+ itemId = 7415,
type = WEAPON_CLUB,
level = 60,
unproperly = true,
},
{
-- abyss hammer
- itemid = 7414,
+ itemId = 7414,
type = WEAPON_CLUB,
level = 60,
unproperly = true,
@@ -4286,7 +4286,7 @@ local weapons = {
},
{
-- titan axe
- itemid = 7413,
+ itemId = 7413,
type = WEAPON_AXE,
level = 40,
unproperly = true,
@@ -4297,42 +4297,42 @@ local weapons = {
},
{
-- butcher's axe
- itemid = 7412,
+ itemId = 7412,
type = WEAPON_AXE,
level = 45,
unproperly = true,
},
{
-- ornamented axe
- itemid = 7411,
+ itemId = 7411,
type = WEAPON_AXE,
level = 50,
unproperly = true,
},
{
-- queen's sceptre
- itemid = 7410,
+ itemId = 7410,
type = WEAPON_CLUB,
level = 55,
unproperly = true,
},
{
-- northern star
- itemid = 7409,
+ itemId = 7409,
type = WEAPON_CLUB,
level = 50,
unproperly = true,
},
{
-- wyvern fang
- itemid = 7408,
+ itemId = 7408,
type = WEAPON_SWORD,
level = 25,
unproperly = true,
},
{
-- haunted blade
- itemid = 7407,
+ itemId = 7407,
type = WEAPON_SWORD,
level = 30,
unproperly = true,
@@ -4343,7 +4343,7 @@ local weapons = {
},
{
-- blacksteel sword
- itemid = 7406,
+ itemId = 7406,
type = WEAPON_SWORD,
level = 35,
unproperly = true,
@@ -4354,7 +4354,7 @@ local weapons = {
},
{
-- havoc blade
- itemid = 7405,
+ itemId = 7405,
type = WEAPON_SWORD,
level = 70,
unproperly = true,
@@ -4365,14 +4365,14 @@ local weapons = {
},
{
-- assassin dagger
- itemid = 7404,
+ itemId = 7404,
type = WEAPON_SWORD,
level = 40,
unproperly = true,
},
{
-- berserker
- itemid = 7403,
+ itemId = 7403,
type = WEAPON_SWORD,
level = 65,
unproperly = true,
@@ -4383,7 +4383,7 @@ local weapons = {
},
{
-- dragon slayer
- itemid = 7402,
+ itemId = 7402,
type = WEAPON_SWORD,
level = 45,
unproperly = true,
@@ -4394,14 +4394,14 @@ local weapons = {
},
{
-- orcish maul
- itemid = 7392,
+ itemId = 7392,
type = WEAPON_CLUB,
level = 35,
unproperly = true,
},
{
-- thaian sword
- itemid = 7391,
+ itemId = 7391,
type = WEAPON_SWORD,
level = 50,
unproperly = true,
@@ -4412,35 +4412,35 @@ local weapons = {
},
{
-- the justice seeker
- itemid = 7390,
+ itemId = 7390,
type = WEAPON_SWORD,
level = 75,
unproperly = true,
},
{
-- heroic axe
- itemid = 7389,
+ itemId = 7389,
type = WEAPON_AXE,
level = 60,
unproperly = true,
},
{
-- vile axe
- itemid = 7388,
+ itemId = 7388,
type = WEAPON_AXE,
level = 55,
unproperly = true,
},
{
-- diamond sceptre
- itemid = 7387,
+ itemId = 7387,
type = WEAPON_CLUB,
level = 25,
unproperly = true,
},
{
-- mercenary sword
- itemid = 7386,
+ itemId = 7386,
type = WEAPON_SWORD,
level = 40,
unproperly = true,
@@ -4451,28 +4451,28 @@ local weapons = {
},
{
-- crimson sword
- itemid = 7385,
+ itemId = 7385,
type = WEAPON_SWORD,
level = 20,
unproperly = true,
},
{
-- mystic blade
- itemid = 7384,
+ itemId = 7384,
type = WEAPON_SWORD,
level = 60,
unproperly = true,
},
{
-- relic sword
- itemid = 7383,
+ itemId = 7383,
type = WEAPON_SWORD,
level = 50,
unproperly = true,
},
{
-- demonrage sword
- itemid = 7382,
+ itemId = 7382,
type = WEAPON_SWORD,
level = 60,
unproperly = true,
@@ -4483,14 +4483,14 @@ local weapons = {
},
{
-- mammoth whopper
- itemid = 7381,
+ itemId = 7381,
type = WEAPON_CLUB,
level = 20,
unproperly = true,
},
{
-- headchopper
- itemid = 7380,
+ itemId = 7380,
type = WEAPON_AXE,
level = 35,
unproperly = true,
@@ -4501,7 +4501,7 @@ local weapons = {
},
{
-- brutetamer's staff
- itemid = 7379,
+ itemId = 7379,
type = WEAPON_CLUB,
level = 25,
unproperly = true,
@@ -4548,7 +4548,7 @@ local weapons = {
},
{
-- piercing bolt
- itemid = 7363,
+ itemId = 7363,
type = WEAPON_AMMO,
level = 30,
unproperly = true,
@@ -4556,7 +4556,7 @@ local weapons = {
},
{
-- ruthless axe
- itemid = 6553,
+ itemId = 6553,
type = WEAPON_AXE,
level = 75,
unproperly = true,
@@ -4567,7 +4567,7 @@ local weapons = {
},
{
-- infernal bolt
- itemid = 6528,
+ itemId = 6528,
type = WEAPON_AMMO,
level = 110,
unproperly = true,
@@ -4575,7 +4575,7 @@ local weapons = {
},
{
-- the avenger
- itemid = 6527,
+ itemId = 6527,
type = WEAPON_SWORD,
level = 75,
unproperly = true,
@@ -4586,12 +4586,12 @@ local weapons = {
},
{
-- Ron the Ripper's sabre
- itemid = 6101,
+ itemId = 6101,
type = WEAPON_SWORD,
},
{
-- arbalest
- itemid = 5803,
+ itemId = 5803,
type = WEAPON_DISTANCE,
level = 75,
unproperly = true,
@@ -4602,12 +4602,12 @@ local weapons = {
},
{
-- banana staff
- itemid = 3348,
+ itemId = 3348,
type = WEAPON_CLUB,
},
{
-- hunting spear
- itemid = 3347,
+ itemId = 3347,
type = WEAPON_MISSILE,
level = 20,
unproperly = true,
@@ -4615,36 +4615,36 @@ local weapons = {
},
{
-- ripper lance
- itemid = 3346,
+ itemId = 3346,
type = WEAPON_AXE,
},
{
-- templar scytheblade
- itemid = 3345,
+ itemId = 3345,
type = WEAPON_SWORD,
},
{
-- beastslayer axe
- itemid = 3344,
+ itemId = 3344,
type = WEAPON_AXE,
level = 30,
unproperly = true,
},
{
-- lich staff
- itemid = 3343,
+ itemId = 3343,
type = WEAPON_CLUB,
level = 40,
unproperly = true,
},
{
-- scythe
- itemid = 3453,
+ itemId = 3453,
type = WEAPON_CLUB,
},
{
-- power bolt
- itemid = 3450,
+ itemId = 3450,
type = WEAPON_AMMO,
level = 55,
unproperly = true,
@@ -4652,29 +4652,29 @@ local weapons = {
},
{
-- arrow
- itemid = 3447,
+ itemId = 3447,
type = WEAPON_AMMO,
action = "removecount",
},
{
-- bolt
- itemid = 3446,
+ itemId = 3446,
type = WEAPON_AMMO,
action = "removecount",
},
{
-- bow
- itemid = 3350,
+ itemId = 3350,
type = WEAPON_DISTANCE,
},
{
-- crossbow
- itemid = 3349,
+ itemId = 3349,
type = WEAPON_DISTANCE,
},
{
-- war axe
- itemid = 3342,
+ itemId = 3342,
type = WEAPON_AXE,
level = 65,
unproperly = true,
@@ -4685,43 +4685,43 @@ local weapons = {
},
{
-- arcane staff
- itemid = 3341,
+ itemId = 3341,
type = WEAPON_CLUB,
level = 75,
unproperly = true,
},
{
-- heavy mace
- itemid = 3340,
+ itemId = 3340,
type = WEAPON_CLUB,
level = 70,
unproperly = true,
},
{
-- djinn blade
- itemid = 3339,
+ itemId = 3339,
type = WEAPON_SWORD,
level = 35,
unproperly = true,
},
{
-- bone sword
- itemid = 3338,
+ itemId = 3338,
type = WEAPON_SWORD,
},
{
-- bone club
- itemid = 3337,
+ itemId = 3337,
type = WEAPON_CLUB,
},
{
-- studded club
- itemid = 3336,
+ itemId = 3336,
type = WEAPON_CLUB,
},
{
-- twin axe
- itemid = 3335,
+ itemId = 3335,
type = WEAPON_AXE,
level = 50,
unproperly = true,
@@ -4732,21 +4732,21 @@ local weapons = {
},
{
-- pharaoh sword
- itemid = 3334,
+ itemId = 3334,
type = WEAPON_SWORD,
level = 45,
unproperly = true,
},
{
-- crystal mace
- itemid = 3333,
+ itemId = 3333,
type = WEAPON_CLUB,
level = 35,
unproperly = true,
},
{
-- hammer of wrath
- itemid = 3332,
+ itemId = 3332,
type = WEAPON_CLUB,
level = 65,
unproperly = true,
@@ -4757,24 +4757,24 @@ local weapons = {
},
{
-- ravager's axe
- itemid = 3331,
+ itemId = 3331,
type = WEAPON_AXE,
level = 70,
unproperly = true,
},
{
-- heavy machete
- itemid = 3330,
+ itemId = 3330,
type = WEAPON_SWORD,
},
{
-- daramian axe
- itemid = 3329,
+ itemId = 3329,
type = WEAPON_AXE,
},
{
-- daramian waraxe
- itemid = 3328,
+ itemId = 3328,
type = WEAPON_AXE,
level = 25,
unproperly = true,
@@ -4785,155 +4785,155 @@ local weapons = {
},
{
-- daramian mace
- itemid = 3327,
+ itemId = 3327,
type = WEAPON_CLUB,
},
{
-- epee
- itemid = 3326,
+ itemId = 3326,
type = WEAPON_SWORD,
level = 30,
unproperly = true,
},
{
-- light mace
- itemid = 3325,
+ itemId = 3325,
type = WEAPON_CLUB,
},
{
-- skull staff
- itemid = 3324,
+ itemId = 3324,
type = WEAPON_CLUB,
level = 30,
unproperly = true,
},
{
-- dwarven axe
- itemid = 3323,
+ itemId = 3323,
type = WEAPON_AXE,
level = 20,
unproperly = true,
},
{
-- dragon hammer
- itemid = 3322,
+ itemId = 3322,
type = WEAPON_CLUB,
level = 25,
unproperly = true,
},
{
-- enchanted staff
- itemid = 3321,
+ itemId = 3321,
type = WEAPON_CLUB,
},
{
-- fire axe
- itemid = 3320,
+ itemId = 3320,
type = WEAPON_AXE,
level = 35,
unproperly = true,
},
{
-- stonecutter axe
- itemid = 3319,
+ itemId = 3319,
type = WEAPON_AXE,
level = 90,
unproperly = true,
},
{
-- knight axe
- itemid = 3318,
+ itemId = 3318,
type = WEAPON_AXE,
level = 25,
unproperly = true,
},
{
-- barbarian axe
- itemid = 3317,
+ itemId = 3317,
type = WEAPON_AXE,
level = 20,
unproperly = true,
},
{
-- orcish axe
- itemid = 3316,
+ itemId = 3316,
type = WEAPON_AXE,
},
{
-- guardian halberd
- itemid = 3315,
+ itemId = 3315,
type = WEAPON_AXE,
level = 55,
unproperly = true,
},
{
-- naginata
- itemid = 3314,
+ itemId = 3314,
type = WEAPON_AXE,
level = 25,
unproperly = true,
},
{
-- obsidian lance
- itemid = 3313,
+ itemId = 3313,
type = WEAPON_AXE,
level = 20,
unproperly = true,
},
{
-- silver mace
- itemid = 3312,
+ itemId = 3312,
type = WEAPON_CLUB,
level = 45,
unproperly = true,
},
{
-- clerical mace
- itemid = 3311,
+ itemId = 3311,
type = WEAPON_CLUB,
level = 20,
unproperly = true,
},
{
-- iron hammer
- itemid = 3310,
+ itemId = 3310,
type = WEAPON_CLUB,
},
{
-- thunder hammer
- itemid = 3309,
+ itemId = 3309,
type = WEAPON_CLUB,
level = 85,
unproperly = true,
},
{
-- machete
- itemid = 3308,
+ itemId = 3308,
type = WEAPON_SWORD,
},
{
-- scimitar
- itemid = 3307,
+ itemId = 3307,
type = WEAPON_SWORD,
},
{
-- golden sickle
- itemid = 3306,
+ itemId = 3306,
type = WEAPON_AXE,
},
{
-- battle hammer
- itemid = 3305,
+ itemId = 3305,
type = WEAPON_CLUB,
},
{
-- crowbar
- itemid = 3304,
+ itemId = 3304,
type = WEAPON_CLUB,
},
{
-- great axe
- itemid = 3303,
+ itemId = 3303,
type = WEAPON_AXE,
level = 95,
unproperly = true,
@@ -4944,14 +4944,14 @@ local weapons = {
},
{
-- dragon lance
- itemid = 3302,
+ itemId = 3302,
type = WEAPON_AXE,
level = 60,
unproperly = true,
},
{
-- broadsword
- itemid = 3301,
+ itemId = 3301,
type = WEAPON_SWORD,
vocation = {
{ "Knight", true },
@@ -4960,7 +4960,7 @@ local weapons = {
},
{
-- katana
- itemid = 3300,
+ itemId = 3300,
type = WEAPON_SWORD,
},
{
@@ -4976,12 +4976,12 @@ local weapons = {
},
{
-- serpent sword
- itemid = 3297,
+ itemId = 3297,
type = WEAPON_SWORD,
},
{
-- warlord sword
- itemid = 3296,
+ itemId = 3296,
type = WEAPON_SWORD,
level = 120,
unproperly = true,
@@ -4992,83 +4992,81 @@ local weapons = {
},
{
-- bright sword
- itemid = 3295,
+ itemId = 3295,
type = WEAPON_SWORD,
- level = 30,
- unproperly = true,
},
{
-- short sword
- itemid = 3294,
+ itemId = 3294,
type = WEAPON_SWORD,
},
{
-- sickle
- itemid = 3293,
+ itemId = 3293,
type = WEAPON_AXE,
},
{
-- combat knife
- itemid = 3292,
+ itemId = 3292,
type = WEAPON_SWORD,
},
{
-- knife
- itemid = 3291,
+ itemId = 3291,
type = WEAPON_SWORD,
},
{
-- silver dagger
- itemid = 3290,
+ itemId = 3290,
type = WEAPON_SWORD,
},
{
-- staff
- itemid = 3289,
+ itemId = 3289,
type = WEAPON_CLUB,
},
{
-- magic sword
- itemid = 3288,
+ itemId = 3288,
type = WEAPON_SWORD,
level = 80,
unproperly = true,
},
{
-- throwing star
- itemid = 3287,
+ itemId = 3287,
type = WEAPON_MISSILE,
breakchance = 10,
},
{
-- mace
- itemid = 3286,
+ itemId = 3286,
type = WEAPON_CLUB,
},
{
-- longsword
- itemid = 3285,
+ itemId = 3285,
type = WEAPON_SWORD,
},
{
-- ice rapier
- itemid = 3284,
+ itemId = 3284,
type = WEAPON_SWORD,
action = "removecharge",
},
{
-- carlin sword
- itemid = 3283,
+ itemId = 3283,
type = WEAPON_SWORD,
},
{
-- morning star
- itemid = 3282,
+ itemId = 3282,
type = WEAPON_CLUB,
},
{
-- giant sword
- itemid = 3281,
+ itemId = 3281,
type = WEAPON_SWORD,
level = 55,
unproperly = true,
@@ -5079,14 +5077,14 @@ local weapons = {
},
{
-- fire sword
- itemid = 3280,
+ itemId = 3280,
type = WEAPON_SWORD,
level = 30,
unproperly = true,
},
{
-- war hammer
- itemid = 3279,
+ itemId = 3279,
type = WEAPON_CLUB,
level = 50,
unproperly = true,
@@ -5097,7 +5095,7 @@ local weapons = {
},
{
-- magic longsword
- itemid = 3278,
+ itemId = 3278,
type = WEAPON_SWORD,
level = 140,
unproperly = true,
@@ -5108,18 +5106,18 @@ local weapons = {
},
{
-- spear
- itemid = 3277,
+ itemId = 3277,
type = WEAPON_MISSILE,
breakchance = 3,
},
{
-- hatchet
- itemid = 3276,
+ itemId = 3276,
type = WEAPON_AXE,
},
{
-- double axe
- itemid = 3275,
+ itemId = 3275,
type = WEAPON_AXE,
level = 25,
unproperly = true,
@@ -5130,49 +5128,49 @@ local weapons = {
},
{
-- axe
- itemid = 3274,
+ itemId = 3274,
type = WEAPON_AXE,
},
{
-- sabre
- itemid = 3273,
+ itemId = 3273,
type = WEAPON_SWORD,
},
{
-- rapier
- itemid = 3272,
+ itemId = 3272,
type = WEAPON_SWORD,
},
{
-- spike sword
- itemid = 3271,
+ itemId = 3271,
type = WEAPON_SWORD,
},
{
-- club
- itemid = 3270,
+ itemId = 3270,
type = WEAPON_CLUB,
},
{
-- halberd
- itemid = 3269,
+ itemId = 3269,
type = WEAPON_AXE,
level = 25,
unproperly = true,
},
{
-- hand axe
- itemid = 3268,
+ itemId = 3268,
type = WEAPON_AXE,
},
{
-- dagger
- itemid = 3267,
+ itemId = 3267,
type = WEAPON_SWORD,
},
{
-- battle axe
- itemid = 3266,
+ itemId = 3266,
type = WEAPON_AXE,
unproperly = true,
vocation = {
@@ -5182,7 +5180,7 @@ local weapons = {
},
{
-- two handed sword
- itemid = 3265,
+ itemId = 3265,
type = WEAPON_SWORD,
level = 20,
unproperly = true,
@@ -5193,17 +5191,17 @@ local weapons = {
},
{
-- sword
- itemid = 3264,
+ itemId = 3264,
type = WEAPON_SWORD,
},
{
-- giant smithhammer
- itemid = 3208,
+ itemId = 3208,
type = WEAPON_CLUB,
},
{
-- wand of dragonbreath
- itemid = 3075,
+ itemId = 3075,
type = WEAPON_WAND,
wandType = "fire",
level = 13,
@@ -5216,7 +5214,7 @@ local weapons = {
},
{
-- wand of vortex
- itemid = 3074,
+ itemId = 3074,
type = WEAPON_WAND,
wandType = "energy",
level = 6,
@@ -5229,7 +5227,7 @@ local weapons = {
},
{
-- wand of cosmic energy
- itemid = 3073,
+ itemId = 3073,
type = WEAPON_WAND,
wandType = "energy",
level = 26,
@@ -5242,7 +5240,7 @@ local weapons = {
},
{
-- wand of decay
- itemid = 3072,
+ itemId = 3072,
type = WEAPON_WAND,
wandType = "death",
level = 19,
@@ -5255,7 +5253,7 @@ local weapons = {
},
{
-- wand of inferno
- itemid = 3071,
+ itemId = 3071,
type = WEAPON_WAND,
wandType = "fire",
level = 33,
@@ -5268,7 +5266,7 @@ local weapons = {
},
{
-- moonlight rod
- itemid = 3070,
+ itemId = 3070,
type = WEAPON_WAND,
wandType = "ice",
level = 13,
@@ -5281,7 +5279,7 @@ local weapons = {
},
{
-- necrotic rod
- itemid = 3069,
+ itemId = 3069,
type = WEAPON_WAND,
wandType = "death",
level = 19,
@@ -5294,7 +5292,7 @@ local weapons = {
},
{
-- hailstorm rod
- itemid = 3067,
+ itemId = 3067,
type = WEAPON_WAND,
wandType = "ice",
level = 33,
@@ -5307,7 +5305,7 @@ local weapons = {
},
{
-- snakebit rod
- itemid = 3066,
+ itemId = 3066,
type = WEAPON_WAND,
wandType = "earth",
level = 6,
@@ -5320,7 +5318,7 @@ local weapons = {
},
{
-- terra rod
- itemid = 3065,
+ itemId = 3065,
type = WEAPON_WAND,
wandType = "earth",
level = 26,
diff --git a/data/XML/imbuements.xml b/data/XML/imbuements.xml
index 867bab66f..74a06dbd9 100644
--- a/data/XML/imbuements.xml
+++ b/data/XML/imbuements.xml
@@ -155,18 +155,18 @@
-
+
-
+
-
+
diff --git a/data/XML/vocations.xml b/data/XML/vocations.xml
index fd5ae77a3..8cbf8e4ec 100644
--- a/data/XML/vocations.xml
+++ b/data/XML/vocations.xml
@@ -12,7 +12,7 @@
-
+
@@ -24,7 +24,7 @@
-
+
@@ -36,7 +36,7 @@
-
+
@@ -48,7 +48,7 @@
-
+
@@ -60,7 +60,7 @@
-
+
@@ -71,8 +71,11 @@
+
+
+
-
+
@@ -83,8 +86,11 @@
+
+
+
-
+
@@ -95,8 +101,11 @@
+
+
+
-
+
@@ -107,5 +116,8 @@
+
+
+
diff --git a/data/global.lua b/data/global.lua
index 3d67a1fb4..a497b9983 100644
--- a/data/global.lua
+++ b/data/global.lua
@@ -194,7 +194,7 @@ function addStamina(playerId, ...)
local regen = configManager.getNumber(configKeys.STAMINA_PZ_GAIN)
player:setStamina(player:getStamina() + regen)
- player:sendTextMessage(MESSAGE_STATUS, string.format("%i minute%s of stamina has been refilled.", regen, regen == 1 and "" or "s"))
+ player:sendTextMessage(MESSAGE_FAILURE, string.format("%i minute%s of stamina has been refilled.", regen, regen == 1 and "" or "s"))
staminaBonus.eventsPz[localPlayerId] = addEvent(addStamina, delay, nil, localPlayerId, delay)
return true
end
diff --git a/data/items/appearances.dat b/data/items/appearances.dat
index 9f0de0ece..0c609c42b 100644
Binary files a/data/items/appearances.dat and b/data/items/appearances.dat differ
diff --git a/data/items/items.xml b/data/items/items.xml
index abbe27c06..c57bafaf7 100644
--- a/data/items/items.xml
+++ b/data/items/items.xml
@@ -12136,21 +12136,18 @@
-
-
-
-
-
-
@@ -12158,7 +12155,6 @@
-
-
@@ -12166,7 +12162,6 @@
-
-
@@ -12215,7 +12210,6 @@
-
-
@@ -15581,8 +15575,8 @@
-
-
-
+
+
-
@@ -21338,22 +21332,22 @@
-
-
+
-
-
+
-
-
+
-
-
+
-
@@ -24998,7 +24992,10 @@
-
-
+ -
+
+
+
-
@@ -36642,8 +36639,8 @@
-
- -
+
+ -
-
@@ -37181,10 +37178,10 @@
-
- -
+
-
- -
+
-
-
@@ -37360,18 +37357,18 @@
- -
+
-
- -
+
-
-
- -
+
+ -
-
- -
+
+ -
@@ -37425,18 +37422,18 @@
- -
+
-
- -
+
-
-
- -
+
+ -
-
- -
+
+ -
@@ -38282,7 +38279,6 @@
-
-
@@ -38735,19 +38731,19 @@
-
- -
+
-
- -
+
-
- -
+
-
- -
+
-
@@ -38802,7 +38798,7 @@
-
-
+
-
@@ -40182,7 +40178,7 @@
- -
+
-
-
@@ -40633,7 +40629,7 @@
-
- -
+
-
@@ -41020,7 +41016,7 @@
-
- -
+
-
-
@@ -44514,8 +44510,8 @@
-
-
+
+
@@ -49514,8 +49510,8 @@
-
-
+
+
@@ -51966,8 +51962,8 @@
-
-
+
+
@@ -55309,8 +55305,8 @@
-
-
+
+
@@ -55351,7 +55347,7 @@
-
+
@@ -58332,8 +58328,8 @@
-
-
+
+
@@ -58370,8 +58366,8 @@
-
-
+
+
@@ -58408,8 +58404,8 @@
-
-
+
+
@@ -58427,8 +58423,8 @@
-
-
+
+
@@ -58449,8 +58445,8 @@
-
-
+
+
@@ -58469,8 +58465,8 @@
-
-
+
+
@@ -58818,8 +58814,8 @@
-
-
+
+
@@ -60214,7 +60210,7 @@
-
-
+
-
@@ -61664,7 +61660,7 @@
-
-
+
@@ -61683,7 +61679,7 @@
-
-
+
@@ -65139,6 +65135,9 @@
+ -
+
+
-
@@ -65333,7 +65332,7 @@
-
-
+
@@ -65366,7 +65365,7 @@
-
-
+
@@ -67594,6 +67593,11 @@
+ -
+
+
+
+
-
@@ -68532,6 +68536,73 @@
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
-
@@ -68544,6 +68615,173 @@
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -68645,8 +68883,8 @@
-
-
+
+
@@ -68663,8 +68901,8 @@
-
-
+
+
@@ -68681,8 +68919,8 @@
-
-
+
+
@@ -68699,8 +68937,8 @@
-
-
+
+
@@ -68717,8 +68955,8 @@
-
-
+
+
@@ -68735,8 +68973,8 @@
-
-
+
+
@@ -68762,8 +69000,8 @@
-
-
+
+
@@ -68783,8 +69021,8 @@
-
-
+
+
@@ -68804,8 +69042,8 @@
-
-
+
+
@@ -68825,8 +69063,8 @@
-
-
+
+
@@ -68859,8 +69097,8 @@
-
-
+
+
@@ -68876,8 +69114,8 @@
-
-
+
+
@@ -68906,8 +69144,8 @@
-
-
+
+
@@ -68923,8 +69161,8 @@
-
-
+
+
@@ -68949,6 +69187,44 @@
+ -
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
-
@@ -68973,4 +69249,76 @@
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
diff --git a/data/libs/features_lib.lua b/data/libs/features_lib.lua
new file mode 100644
index 000000000..3b8f283e8
--- /dev/null
+++ b/data/libs/features_lib.lua
@@ -0,0 +1,36 @@
+Features = {
+ AutoLoot = "autoloot",
+}
+
+local function validateFeature(feature)
+ local found = false
+ for _, v in pairs(Features) do
+ if v == feature then
+ found = true
+ end
+ end
+ if not found then
+ error("Invalid feature: " .. feature)
+ end
+end
+
+function Player:hasFeature(feature)
+ validateFeature(feature)
+ local kv = self:kv():scoped("features")
+ if kv:get(feature) then
+ return true
+ end
+ return false
+end
+
+function Player:getFeature(feature)
+ validateFeature(feature)
+ local kv = self:kv():scoped("features")
+ return kv:get(feature)
+end
+
+function Player:setFeature(feature, value)
+ validateFeature(feature)
+ local kv = self:kv():scoped("features")
+ kv:set(feature, value)
+end
diff --git a/data/libs/forge_lib.lua b/data/libs/forge_lib.lua
index e232c60fe..986d9bf4a 100644
--- a/data/libs/forge_lib.lua
+++ b/data/libs/forge_lib.lua
@@ -45,7 +45,7 @@ function ForgeMonster:onDeath(creature, corpse, killer, mostDamageKiller, unjust
return true
end
- local forgeAmountMultiplier = (configManager.getNumber(configKeys.FORGE_AMOUNT_MULTIPLIER) or 3)
+ local forgeAmountMultiplier = (configManager.getFloat(configKeys.FORGE_AMOUNT_MULTIPLIER) or 3)
local stack = creature:getForgeStack()
if stack > 0 then
diff --git a/data/libs/functions/gematelier.lua b/data/libs/functions/gematelier.lua
new file mode 100644
index 000000000..23b3f8b8f
--- /dev/null
+++ b/data/libs/functions/gematelier.lua
@@ -0,0 +1,91 @@
+local config = {
+ lesser = {
+ names = {
+ "lesser guardian gem",
+ "lesser marksman gem",
+ "lesser sage gem",
+ "lesser mystic gem",
+ },
+ chance = {
+ influenced = 9000,
+ fiendish = 3000,
+ archfoe = 0,
+ },
+ maxCount = 2,
+ },
+ regular = {
+ names = {
+ "guardian gem",
+ "marksman gem",
+ "sage gem",
+ "mystic gem",
+ },
+ chance = {
+ influenced = 0,
+ fiendish = 3000,
+ archfoe = 9000,
+ },
+ maxCount = 2,
+ },
+ greater = {
+ names = {
+ "greater guardian gem",
+ "greater marksman gem",
+ "greater sage gem",
+ "greater mystic gem",
+ },
+ chance = {
+ influenced = 0,
+ fiendish = 9000,
+ archfoe = 3000,
+ },
+ maxCount = 1,
+ },
+}
+
+function Monster:generateGemAtelierLoot()
+ local mType = self:getType()
+ if not mType then
+ return {}
+ end
+ local category = "none"
+ local forgeClassification = self:getMonsterForgeClassification()
+ if forgeClassification == FORGE_INFLUENCED_MONSTER then
+ category = "influenced"
+ elseif forgeClassification == FORGE_FIENDISH_MONSTER then
+ category = "fiendish"
+ elseif (mType:bossRace() or ""):lower() == "archfoe" then
+ category = "archfoe"
+ end
+ if category == "none" then
+ return {}
+ end
+
+ local loot = {}
+ for _, gemConfig in pairs(config) do
+ local chance = gemConfig.chance[category] or 0
+ local names = gemConfig.names
+ local maxCount = gemConfig.maxCount
+ if chance > 0 then
+ for i = 1, maxCount do
+ local roll = math.random(1, 100000)
+ if roll > chance then
+ goto continue
+ end
+
+ local name = names[math.random(1, #names)]
+ local itemType = ItemType(name)
+ if not itemType then
+ goto continue
+ end
+ if loot[itemType:getId()] then
+ loot[itemType:getId()].count = loot[itemType:getId()].count + 1
+ else
+ loot[itemType:getId()] = { count = 1 }
+ end
+ end
+ end
+ ::continue::
+ end
+ return loot
+end
diff --git a/data/libs/functions/load.lua b/data/libs/functions/load.lua
index bedbbe84f..ef939a35f 100644
--- a/data/libs/functions/load.lua
+++ b/data/libs/functions/load.lua
@@ -5,6 +5,7 @@ dofile(CORE_DIRECTORY .. "/libs/functions/constants.lua")
dofile(CORE_DIRECTORY .. "/libs/functions/container.lua")
dofile(CORE_DIRECTORY .. "/libs/functions/creature.lua")
dofile(CORE_DIRECTORY .. "/libs/functions/functions.lua")
+dofile(CORE_DIRECTORY .. "/libs/functions/gematelier.lua")
dofile(CORE_DIRECTORY .. "/libs/functions/fs.lua")
dofile(CORE_DIRECTORY .. "/libs/functions/game.lua")
dofile(CORE_DIRECTORY .. "/libs/functions/item.lua")
diff --git a/data/libs/functions/player.lua b/data/libs/functions/player.lua
index afd31ea01..7519af13d 100644
--- a/data/libs/functions/player.lua
+++ b/data/libs/functions/player.lua
@@ -1,10 +1,6 @@
-- Functions from The Forgotten Server
local foodCondition = Condition(CONDITION_REGENERATION, CONDITIONID_DEFAULT)
-local function firstToUpper(str)
- return (str:gsub("^%l", string.upper))
-end
-
function Player.feed(self, food)
local condition = self:getCondition(CONDITION_REGENERATION, CONDITIONID_DEFAULT)
if condition then
@@ -254,7 +250,7 @@ function Player.getMarriageDescription(thing)
if self == thing then
descr = descr .. " You are "
else
- descr = descr .. " " .. firstToUpper(thing:getSubjectPronoun()) .. " " .. thing:getSubjectVerb() .. " "
+ descr = descr .. " " .. thing:getSubjectPronoun():titleCase() .. " " .. thing:getSubjectVerb() .. " "
end
descr = descr .. "married to " .. getPlayerNameById(playerSpouse) .. "."
end
@@ -453,7 +449,7 @@ function Player.getSubjectVerb(self, past)
end
function Player.findItemInInbox(self, itemId)
- local inbox = self:getSlotItem(CONST_SLOT_STORE_INBOX)
+ local inbox = self:getStoreInbox()
local items = inbox:getItems()
for _, item in pairs(items) do
if item:getId() == itemId then
@@ -470,25 +466,23 @@ function Player.updateHazard(self)
return true
end
+ self:setHazardSystemPoints(0)
for _, zone in pairs(zones) do
local hazard = Hazard.getByName(zone:getName())
- if not hazard then
- self:setHazardSystemPoints(0)
+ if hazard then
+ if self:getParty() then
+ self:getParty():refreshHazard()
+ else
+ self:setHazardSystemPoints(hazard:getPlayerCurrentLevel(self))
+ end
return true
end
-
- if self:getParty() then
- self:getParty():refreshHazard()
- else
- self:setHazardSystemPoints(hazard:getPlayerCurrentLevel(self))
- end
- return true
end
return true
end
function Player:addItemStoreInboxEx(item, movable, setOwner)
- local inbox = self:getSlotItem(CONST_SLOT_STORE_INBOX)
+ local inbox = self:getStoreInbox()
if not movable then
item:setOwner(self)
item:setAttribute(ITEM_ATTRIBUTE_STORE, systemTime())
@@ -595,7 +589,7 @@ function Player:setFiendish()
end
function Player:findItemInInbox(itemId, name)
- local inbox = self:getSlotItem(CONST_SLOT_STORE_INBOX)
+ local inbox = self:getStoreInbox()
local items = inbox:getItems()
for _, item in pairs(items) do
if item:getId() == itemId and (not name or item:getName() == name) then
diff --git a/data/libs/functions/tables.lua b/data/libs/functions/tables.lua
index 1c798ecb2..13fdb3e27 100644
--- a/data/libs/functions/tables.lua
+++ b/data/libs/functions/tables.lua
@@ -102,6 +102,14 @@ function table.unserialize(str)
return loadstring("return " .. str)()
end
+function table.shallowCopy(oldTable)
+ local newTable = {}
+ for k, v in pairs(oldTable) do
+ newTable[k] = v
+ end
+ return newTable
+end
+
function pairsByKeys(t, f)
local a = {}
for n in pairs(t) do
diff --git a/data/libs/hazard_lib.lua b/data/libs/hazard_lib.lua
index f9338299e..a1501b2d1 100644
--- a/data/libs/hazard_lib.lua
+++ b/data/libs/hazard_lib.lua
@@ -100,16 +100,7 @@ function Hazard:setPlayerCurrentLevel(player, level)
if not zones then
return true
end
- for _, zone in ipairs(zones) do
- local hazard = Hazard.getByName(zone:getName())
- if hazard then
- if hazard == self then
- player:setHazardSystemPoints(level)
- else
- player:setHazardSystemPoints(0)
- end
- end
- end
+ player:updateHazard()
return true
end
diff --git a/data/libs/hireling_lib.lua b/data/libs/hireling_lib.lua
index 528a903da..42390a2cc 100644
--- a/data/libs/hireling_lib.lua
+++ b/data/libs/hireling_lib.lua
@@ -92,7 +92,7 @@ local function checkHouseAccess(hireling)
-- Player is not invited anymore, return to lamp
logger.debug("Returning Hireling: {} to owner '{}' Inbox", hireling:getName(), player:getName())
- local inbox = player:getSlotItem(CONST_SLOT_STORE_INBOX)
+ local inbox = player:getStoreInbox()
if not inbox then
return false
end
@@ -359,8 +359,9 @@ function Hireling:returnToLamp(player_id)
return owner:sendTextMessage(MESSAGE_FAILURE, "You do not have enough capacity.")
end
- local inbox = owner:getSlotItem(CONST_SLOT_STORE_INBOX)
- if not inbox then
+ local inbox = owner:getStoreInbox()
+ local inboxItems = inbox:getItems()
+ if not inbox or #inboxItems > inbox:getMaxCapacity() then
owner:getPosition():sendMagicEffect(CONST_ME_POFF)
return owner:sendTextMessage(MESSAGE_FAILURE, "You don't have enough room in your inbox.")
end
@@ -537,8 +538,9 @@ function Player:addNewHireling(name, sex)
return false
end
- local inbox = self:getSlotItem(CONST_SLOT_STORE_INBOX)
- if not inbox then
+ local inbox = self:getStoreInbox()
+ local inboxItems = inbox:getItems()
+ if not inbox or #inboxItems > inbox:getMaxCapacity() then
self:getPosition():sendMagicEffect(CONST_ME_POFF)
self:sendTextMessage(MESSAGE_FAILURE, "You don't have enough room in your inbox.")
return false
@@ -628,7 +630,7 @@ function Player:hasHirelings()
end
function Player:findHirelingLamp(hirelingId)
- local inbox = self:getSlotItem(CONST_SLOT_STORE_INBOX)
+ local inbox = self:getStoreInbox()
if not inbox then
return nil
end
diff --git a/data/libs/libs.lua b/data/libs/libs.lua
index bd6164111..a3f9a3933 100644
--- a/data/libs/libs.lua
+++ b/data/libs/libs.lua
@@ -33,3 +33,4 @@ dofile(CORE_DIRECTORY .. "/libs/encounters_lib.lua")
dofile(CORE_DIRECTORY .. "/libs/raids_lib.lua")
dofile(CORE_DIRECTORY .. "/libs/concoctions_lib.lua")
dofile(CORE_DIRECTORY .. "/libs/kill_lib.lua")
+dofile(CORE_DIRECTORY .. "/libs/features_lib.lua")
diff --git a/data/modules/scripts/blessings/blessings.lua b/data/modules/scripts/blessings/blessings.lua
index 5a8e5e56c..adfa364e7 100644
--- a/data/modules/scripts/blessings/blessings.lua
+++ b/data/modules/scripts/blessings/blessings.lua
@@ -299,7 +299,7 @@ Blessings.DropLoot = function(player, corpse, chance, skulled)
end
end
if skulled and Blessings.Config.SkulledDeathLoseStoreItem then
- local inbox = player:getSlotItem(CONST_SLOT_STORE_INBOX)
+ local inbox = player:getStoreInbox()
local toBeDeleted = {}
if inbox and inbox:getSize() > 0 then
for i = 0, inbox:getSize() do
diff --git a/data/modules/scripts/daily_reward/daily_reward.lua b/data/modules/scripts/daily_reward/daily_reward.lua
index 177b23cc9..815a7e261 100644
--- a/data/modules/scripts/daily_reward/daily_reward.lua
+++ b/data/modules/scripts/daily_reward/daily_reward.lua
@@ -452,8 +452,9 @@ function Player.selectDailyReward(self, msg)
end
-- Adding items to store inbox
- local inbox = self:getSlotItem(CONST_SLOT_STORE_INBOX)
- if not inbox then
+ local inbox = self:getStoreInbox()
+ local inboxItems = inbox:getItems()
+ if not inbox or #inboxItems > inbox:getMaxCapacity() then
self:sendError("You do not have enough space in your store inbox.")
return false
end
diff --git a/data/modules/scripts/gamestore/init.lua b/data/modules/scripts/gamestore/init.lua
index f3959c3a1..439822a3f 100644
--- a/data/modules/scripts/gamestore/init.lua
+++ b/data/modules/scripts/gamestore/init.lua
@@ -1573,8 +1573,9 @@ function GameStore.processStackablePurchase(player, offerId, offerCount, offerNa
return error({ code = 0, message = "Please make sure you have free capacity to hold this item." })
end
- local inbox = player:getSlotItem(CONST_SLOT_STORE_INBOX)
- if inbox then
+ local inbox = player:getStoreInbox()
+ local inboxItems = inbox:getItems()
+ if inbox and #inboxItems <= inbox:getMaxCapacity() then
if (isKeg and offerCount > 500) or offerCount > 100 then
local parcel = inbox:addItem(PARCEL_ID, 1)
parcel:setAttribute(ITEM_ATTRIBUTE_STORE, systemTime())
@@ -1624,12 +1625,14 @@ function GameStore.processHouseRelatedPurchase(player, offer)
return (itemId >= ITEM_HEALTH_CASK_START and itemId <= ITEM_HEALTH_CASK_END) or (itemId >= ITEM_MANA_CASK_START and itemId <= ITEM_MANA_CASK_END) or (itemId >= ITEM_SPIRIT_CASK_START and itemId <= ITEM_SPIRIT_CASK_END)
end
- local inbox = player:getSlotItem(CONST_SLOT_STORE_INBOX)
local itemIds = offer.itemtype
if type(itemIds) ~= "table" then
itemIds = { itemIds }
end
- if inbox then
+
+ local inbox = player:getStoreInbox()
+ local inboxItems = inbox:getItems()
+ if inbox and #inboxItems <= inbox:getMaxCapacity() then
for _, itemId in ipairs(itemIds) do
local decoKit = inbox:addItem(ITEM_DECORATION_KIT, 1)
if decoKit then
diff --git a/data/scripts/discord_webhook/discord_webhook.lua b/data/scripts/discord_webhook/discord_webhook.lua
index 0aed824b2..f763ed90d 100644
--- a/data/scripts/discord_webhook/discord_webhook.lua
+++ b/data/scripts/discord_webhook/discord_webhook.lua
@@ -2,11 +2,15 @@
-- The URL layout is https://discord.com/api/webhooks/:id/:token
-- Leave empty if you wish to disable.
-announcementChannels = {
- ["serverAnnouncements"] = "", -- Used for an announcement channel on your discord
- ["raids"] = "", -- Used to isolate raids on your discord
- ["player-kills"] = "", -- Self-explaining
-}
+if not announcementChannels then
+ announcementChannels = {
+ ["serverAnnouncements"] = "", -- Used for an announcement channel on your discord
+ ["raids"] = "", -- Used to isolate raids on your discord
+ ["player-kills"] = "", -- Self-explaining
+ ["player-levels"] = "", -- Self-explaining
+ ["reports"] = "",
+ }
+end
--[[
Example of notification (After you do the config):
diff --git a/data/scripts/talkactions/gm/broadcast.lua b/data/scripts/talkactions/gm/broadcast.lua
index ca8171e36..021f218eb 100644
--- a/data/scripts/talkactions/gm/broadcast.lua
+++ b/data/scripts/talkactions/gm/broadcast.lua
@@ -1,5 +1,15 @@
local broadcast = TalkAction("/b")
+function Broadcast(text, filter)
+ for _, targetPlayer in ipairs(Game.getPlayers()) do
+ if filter and not filter(targetPlayer) then
+ goto continue
+ end
+ targetPlayer:sendTextMessage(MESSAGE_ADMINISTRADOR, text)
+ ::continue::
+ end
+end
+
function broadcast.onSay(player, words, param)
-- create log
logCommand(player, words, param)
@@ -11,10 +21,7 @@ function broadcast.onSay(player, words, param)
local text = player:getName() .. " broadcasted: " .. param
logger.info(text)
- Webhook.sendMessage("Broadcast", text, WEBHOOK_COLOR_WARNING, announcementChannels["serverAnnouncements"])
- for _, targetPlayer in ipairs(Game.getPlayers()) do
- targetPlayer:sendPrivateMessage(player, param, TALKTYPE_BROADCAST)
- end
+ Broadcast(param)
return true
end
diff --git a/data/scripts/talkactions/god/forge_functions.lua b/data/scripts/talkactions/god/forge_functions.lua
index b41943802..5ed33b41d 100644
--- a/data/scripts/talkactions/god/forge_functions.lua
+++ b/data/scripts/talkactions/god/forge_functions.lua
@@ -267,3 +267,54 @@ end
forge:groupType("god")
forge:register()
+
+---------------- // ----------------
+-- Add dust level
+local addDustLevel = TalkAction("/adddustlevel")
+
+function addDustLevel.onSay(player, words, param)
+ -- create log
+ logCommand(player, words, param)
+
+ -- Check the first param (player name) exists
+ if param == "" then
+ player:sendCancelMessage("Player name param required.")
+ -- Distro log
+ logger.error("[addDustLevel.onSay] - Player name param not found.")
+ return true
+ end
+
+ local split = param:split(",")
+ local name = split[1]
+
+ -- Check if player is online
+ local targetPlayer = Player(name)
+ if not targetPlayer then
+ player:sendCancelMessage("Player " .. string.titleCase(name) .. " is not online.")
+ -- Distro log
+ logger.error("[addDustLevel.onSay] - Player {} is not online.", string.titleCase(name))
+ return true
+ end
+
+ local dustLevel = nil
+ if split[2] then
+ dustLevel = tonumber(split[2])
+ end
+
+ -- Check if the dustAmount is valid
+ if dustLevel <= 0 or dustLevel == nil then
+ player:sendCancelMessage("Invalid dust level.")
+ return true
+ end
+
+ targetPlayer:addForgeDustLevel(dustLevel)
+ player:sendTextMessage(MESSAGE_EVENT_ADVANCE, string.format("Successful added %d dust level for the %s player.", dustLevel, targetPlayer:getName()))
+ targetPlayer:sendTextMessage(MESSAGE_EVENT_ADVANCE, string.format("%s adds %d dust level to your character.", player:getName(), dustLevel))
+ -- Distro log
+ logger.info("{} added {} dust level to {} player.", player:getName(), dustLevel, targetPlayer:getName())
+ return true
+end
+
+addDustLevel:separator(" ")
+addDustLevel:groupType("god")
+addDustLevel:register()
diff --git a/data/scripts/talkactions/god/inbox_command.lua b/data/scripts/talkactions/god/inbox_command.lua
index bfc902b13..a080a2370 100644
--- a/data/scripts/talkactions/god/inbox_command.lua
+++ b/data/scripts/talkactions/god/inbox_command.lua
@@ -5,7 +5,7 @@ function inboxCommand.onSay(player, words, param)
player:getPosition():sendMagicEffect(CONST_ME_TUTORIALSQUARE)
local target = Creature(param[1])
if target then
- local inbox = target:getSlotItem(CONST_SLOT_STORE_INBOX)
+ local inbox = target:getStoreInbox()
local inboxSize = inbox:getSize()
if inbox and inboxSize > 0 then
if param[2] == "remove" then
diff --git a/data/scripts/talkactions/god/test_send_message.lua b/data/scripts/talkactions/god/test_send_message.lua
new file mode 100644
index 000000000..2db0ebcf3
--- /dev/null
+++ b/data/scripts/talkactions/god/test_send_message.lua
@@ -0,0 +1,25 @@
+local sendMessage = TalkAction("/testmessage")
+
+function sendMessage.onSay(player, words, param)
+ -- create log
+ logCommand(player, words, param)
+
+ if param == "" or param == nil then
+ player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Message type is missing, please enter a message type.")
+ return
+ end
+
+ local split = param:split(",")
+ local messageType = tonumber(split[1])
+ local textCollor = TEXTCOLOR_WHITE_EXP
+ if split[2] then
+ textCollor = tonumber(split[2])
+ end
+
+ player:sendTextMessage(messageType, "Testing message type.", player:getPosition(), 500, textCollor)
+ return true
+end
+
+sendMessage:separator(" ")
+sendMessage:groupType("god")
+sendMessage:register()
diff --git a/data/scripts/talkactions/player/auto_loot.lua b/data/scripts/talkactions/player/auto_loot.lua
index a5541d514..927a5b100 100644
--- a/data/scripts/talkactions/player/auto_loot.lua
+++ b/data/scripts/talkactions/player/auto_loot.lua
@@ -1,6 +1,12 @@
-local autoLoot = TalkAction("!autoloot")
+local feature = TalkAction("!autoloot")
-function autoLoot.onSay(player, words, param)
+local validValues = {
+ -- "all",
+ "on",
+ "off",
+}
+
+function feature.onSay(player, words, param)
if not configManager.getBoolean(configKeys.AUTOLOOT) then
return true
end
@@ -8,20 +14,25 @@ function autoLoot.onSay(player, words, param)
player:sendCancelMessage("You need to be VIP to use this command!")
return true
end
- if param == "" then
- player:sendCancelMessage("You need to specify on/off param.")
+ if not table.contains(validValues, param) then
+ local validValuesStr = table.concat(validValues, "/")
+ player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Invalid param specified. Usage: !feature [" .. validValuesStr .. "]")
return true
end
- if param == "on" then
- player:setStorageValue(STORAGEVALUE_AUTO_LOOT, 1)
- player:sendTextMessage(MESSAGE_LOOK, "You have successfully enabled your automatic looting!")
+
+ if param == "all" then
+ player:setFeature(Features.AutoLoot, 2)
+ player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "AutoLoot is now enabled for all kills (including bosses).")
+ elseif param == "on" then
+ player:setFeature(Features.AutoLoot, 1)
+ player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "AutoLoot is now enabled for all regular kills (no bosses).")
elseif param == "off" then
- player:setStorageValue(STORAGEVALUE_AUTO_LOOT, -1)
- player:sendTextMessage(MESSAGE_LOOK, "You have successfully disabled your automatic looting!")
+ player:setFeature(Features.AutoLoot, 0)
+ player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "AutoLoot is now disabled.")
end
return true
end
-autoLoot:separator(" ")
-autoLoot:groupType("normal")
-autoLoot:register()
+feature:separator(" ")
+feature:groupType("normal")
+feature:register()
diff --git a/data/scripts/talkactions/player/reward.lua b/data/scripts/talkactions/player/reward.lua
index 37255e71f..d198f60ef 100644
--- a/data/scripts/talkactions/player/reward.lua
+++ b/data/scripts/talkactions/player/reward.lua
@@ -24,8 +24,9 @@ local function sendExerciseRewardModal(player)
return true
end
- local inbox = player:getSlotItem(CONST_SLOT_STORE_INBOX)
- if inbox and inbox:getEmptySlots() > 0 and player:getFreeCapacity() >= iType:getWeight() then
+ local inbox = player:getStoreInbox()
+ local inboxItems = inbox:getItems()
+ if inbox and #inboxItems <= inbox:getMaxCapacity() and player:getFreeCapacity() >= iType:getWeight() then
local item = inbox:addItem(it.id, it.charges)
if item then
item:setActionId(IMMOVABLE_ACTION_ID)