diff --git a/data-otservbr-global/lib/compat/compat.lua b/data-otservbr-global/lib/compat/compat.lua
index 1de91b5ab8a..5691dacdb75 100644
--- a/data-otservbr-global/lib/compat/compat.lua
+++ b/data-otservbr-global/lib/compat/compat.lua
@@ -788,18 +788,6 @@ function doSendAnimatedText()
return true
end
-function doPlayerAddExp(cid, exp, useMult, ...)
- local player = Player(cid)
- if player == nil then
- return false
- end
-
- if useMult then
- exp = exp * getRateFromTable(experienceStages, player:getLevel(), configManager.getNumber(configKeys.RATE_EXPERIENCE))
- end
- return player:addExperience(exp, ...)
-end
-
function doPlayerAddManaSpent(cid, mana)
local p = Player(cid)
return p and p:addManaSpent(mana) or false
diff --git a/data-otservbr-global/lib/core/storages.lua b/data-otservbr-global/lib/core/storages.lua
index 34928957379..12a7cdd33d1 100644
--- a/data-otservbr-global/lib/core/storages.lua
+++ b/data-otservbr-global/lib/core/storages.lua
@@ -2957,6 +2957,7 @@ GlobalStorage = {
ZamuloshSummon = 60030,
FerumbrasEssence = 60031,
DesperateSoul = 60032,
+ FlowerPuzzleTimer = 60033,
Crystals = {
Crystal1 = 60040,
Crystal2 = 60041,
diff --git a/data-otservbr-global/lib/quests/the_primal_ordeal.lua b/data-otservbr-global/lib/quests/the_primal_ordeal.lua
index 4b1dfdae2e3..de708ee4de2 100644
--- a/data-otservbr-global/lib/quests/the_primal_ordeal.lua
+++ b/data-otservbr-global/lib/quests/the_primal_ordeal.lua
@@ -7,8 +7,11 @@ function RegisterPrimalPackBeast(template)
primalMonster.name = "Primal Pack Beast"
primalMonster.description = "a primal pack beast"
+ primalMonster.health = primalMonster.health
+ primalMonster.maxHealth = primalMonster.maxHealth
primalMonster.raceId = nil
primalMonster.Bestiary = nil
+ primalMonster.corpse = 0
primal:register(primalMonster)
end
diff --git a/data-otservbr-global/monster/aquatics/deathling_spellsinger.lua b/data-otservbr-global/monster/aquatics/deathling_spellsinger.lua
index d28ad9e1d5f..4324562c839 100644
--- a/data-otservbr-global/monster/aquatics/deathling_spellsinger.lua
+++ b/data-otservbr-global/monster/aquatics/deathling_spellsinger.lua
@@ -102,7 +102,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -300, effect = CONST_ME_DRAWBLOOD },
{ name = "combat", interval = 4000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = -200, maxDamage = -400, range = 5, shootEffect = CONST_ANI_HUNTINGSPEAR, target = false },
{ name = "combat", interval = 4000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = -150, maxDamage = -300, range = 5, shootEffect = CONST_ANI_LARGEROCK, target = false },
- { name = "combat", interval = 2000, chance = 14, type = COMBAT_HOLYDAMAGE, minDamage = -400, maxDamage = -700, length = 8, spread = 3, effect = CONST_ME_BLOCKHIT, target = false },
+ { name = "combat", interval = 2000, chance = 14, type = COMBAT_HOLYDAMAGE, minDamage = -400, maxDamage = -700, length = 8, spread = 1, effect = CONST_ME_HOLYAREA, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/aquatics/manta_ray.lua b/data-otservbr-global/monster/aquatics/manta_ray.lua
index 9dace51e40a..91254f37483 100644
--- a/data-otservbr-global/monster/aquatics/manta_ray.lua
+++ b/data-otservbr-global/monster/aquatics/manta_ray.lua
@@ -80,7 +80,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -110, effect = CONST_ME_DRAWBLOOD, condition = { type = CONDITION_POISON, totalDamage = 120, interval = 4000 } },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -75, maxDamage = -90, range = 7, shootEffect = CONST_ANI_ENERGY, effect = CONST_ME_ENERGYHIT, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -50, maxDamage = -110, length = 4, spread = 3, effect = CONST_ME_ENERGYHIT, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -50, maxDamage = -110, length = 4, spread = 1, effect = CONST_ME_ENERGYHIT, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/aquatics/quara_hydromancer.lua b/data-otservbr-global/monster/aquatics/quara_hydromancer.lua
index 83d0b76ca8e..bcfff1bb973 100644
--- a/data-otservbr-global/monster/aquatics/quara_hydromancer.lua
+++ b/data-otservbr-global/monster/aquatics/quara_hydromancer.lua
@@ -95,9 +95,9 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -80, effect = CONST_ME_DRAWBLOOD, condition = { type = CONDITION_POISON, totalDamage = 100, interval = 4000 } },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_ICEDAMAGE, minDamage = -100, maxDamage = -180, length = 8, spread = 3, effect = CONST_ME_BUBBLES, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_ICEDAMAGE, minDamage = -100, maxDamage = -180, length = 8, spread = 1, effect = CONST_ME_BUBBLES, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_ICEDAMAGE, minDamage = -90, maxDamage = -150, radius = 3, effect = CONST_ME_BUBBLES, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -170, maxDamage = -240, length = 8, spread = 3, effect = CONST_ME_HITBYPOISON, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -170, maxDamage = -240, length = 8, spread = 1, effect = CONST_ME_HITBYPOISON, target = false },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_LIFEDRAIN, minDamage = 0, maxDamage = -170, range = 7, effect = CONST_ME_MAGIC_RED, target = true },
{ name = "speed", interval = 2000, chance = 15, speedChange = -600, range = 7, effect = CONST_ME_MAGIC_RED, target = false, duration = 15000 },
}
diff --git a/data-otservbr-global/monster/aquatics/quara_hydromancer_scout.lua b/data-otservbr-global/monster/aquatics/quara_hydromancer_scout.lua
index 7e67e0bab45..b3ced121354 100644
--- a/data-otservbr-global/monster/aquatics/quara_hydromancer_scout.lua
+++ b/data-otservbr-global/monster/aquatics/quara_hydromancer_scout.lua
@@ -96,9 +96,9 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -80, effect = CONST_ME_DRAWBLOOD, condition = { type = CONDITION_POISON, totalDamage = 100, interval = 4000 } },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_ICEDAMAGE, minDamage = -100, maxDamage = -180, length = 8, spread = 3, effect = CONST_ME_HITBYPOISON, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_ICEDAMAGE, minDamage = -100, maxDamage = -180, length = 8, spread = 1, effect = CONST_ME_HITBYPOISON, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_ICEDAMAGE, minDamage = -90, maxDamage = -150, radius = 3, effect = CONST_ME_BUBBLES, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -170, maxDamage = -240, length = 8, spread = 3, effect = CONST_ME_BUBBLES, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -170, maxDamage = -240, length = 8, spread = 1, effect = CONST_ME_BUBBLES, target = false },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_LIFEDRAIN, minDamage = 0, maxDamage = -170, range = 7, effect = CONST_ME_MAGIC_RED, target = true },
{ name = "speed", interval = 2000, chance = 15, speedChange = -600, range = 7, effect = CONST_ME_MAGIC_RED, target = false, duration = 15000 },
}
diff --git a/data-otservbr-global/monster/birds/demon_parrot.lua b/data-otservbr-global/monster/birds/demon_parrot.lua
index a606e4efe18..16490049cb8 100644
--- a/data-otservbr-global/monster/birds/demon_parrot.lua
+++ b/data-otservbr-global/monster/birds/demon_parrot.lua
@@ -83,7 +83,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 1200, chance = 100, minDamage = 0, maxDamage = -100 },
- { name = "drunk", interval = 1000, chance = 30, length = 5, spread = 3, effect = CONST_ME_SOUND_RED, target = false },
+ { name = "drunk", interval = 1000, chance = 30, length = 5, spread = 1, effect = CONST_ME_SOUND_RED, target = false },
{ name = "combat", interval = 1000, chance = 30, type = COMBAT_LIFEDRAIN, minDamage = -25, maxDamage = -45, range = 5, shootEffect = CONST_ANI_SUDDENDEATH, target = false },
{ name = "combat", interval = 1000, chance = 30, type = COMBAT_LIFEDRAIN, minDamage = -15, maxDamage = -45, range = 1, target = false },
}
diff --git a/data-otservbr-global/monster/bosses/apocalypse.lua b/data-otservbr-global/monster/bosses/apocalypse.lua
index 77ad2d660c4..dd126524c83 100644
--- a/data-otservbr-global/monster/bosses/apocalypse.lua
+++ b/data-otservbr-global/monster/bosses/apocalypse.lua
@@ -110,7 +110,7 @@ monster.attacks = {
{ name = "strength", interval = 1000, chance = 10, minDamage = -600, maxDamage = -1450, radius = 5, effect = CONST_ME_HITAREA, target = false },
{ name = "combat", interval = 3000, chance = 13, type = COMBAT_FIREDAMAGE, minDamage = -300, maxDamage = -800, range = 7, radius = 7, shootEffect = CONST_ANI_FIRE, effect = CONST_ME_FIREAREA, target = true },
{ name = "combat", interval = 3000, chance = 8, type = COMBAT_MANADRAIN, minDamage = -600, maxDamage = -700, radius = 10, effect = CONST_ME_ENERGYAREA, target = false },
- { name = "combat", interval = 2000, chance = 9, type = COMBAT_ENERGYDAMAGE, minDamage = -400, maxDamage = -800, length = 8, spread = 3, effect = CONST_ME_MAGIC_RED, target = false },
+ { name = "combat", interval = 2000, chance = 9, type = COMBAT_ENERGYDAMAGE, minDamage = -400, maxDamage = -800, length = 8, spread = 1, effect = CONST_ME_MAGIC_RED, target = false },
-- poison
{ name = "condition", type = CONDITION_POISON, interval = 5000, chance = 18, minDamage = -800, maxDamage = -1000, effect = CONST_ME_HITBYPOISON, target = false },
{ name = "combat", interval = 2000, chance = 6, type = COMBAT_LIFEDRAIN, minDamage = -600, maxDamage = -1200, radius = 14, effect = CONST_ME_MAGIC_GREEN, target = false },
diff --git a/data-otservbr-global/monster/bosses/bazir.lua b/data-otservbr-global/monster/bosses/bazir.lua
index 5fc46367c42..dc0f8a4d326 100644
--- a/data-otservbr-global/monster/bosses/bazir.lua
+++ b/data-otservbr-global/monster/bosses/bazir.lua
@@ -145,7 +145,7 @@ monster.attacks = {
{ name = "outfit", interval = 1000, chance = 2, radius = 8, effect = CONST_ME_LOSEENERGY, target = false, duration = 5000, outfitMonster = "demon" },
{ name = "outfit", interval = 1000, chance = 2, radius = 8, effect = CONST_ME_LOSEENERGY, target = false, duration = 5000, outfitItem = 3058 },
{ name = "combat", interval = 1000, chance = 34, type = COMBAT_FIREDAMAGE, minDamage = -100, maxDamage = -900, range = 7, radius = 7, shootEffect = CONST_ANI_FIRE, effect = CONST_ME_FIREAREA, target = true },
- { name = "combat", interval = 1000, chance = 15, type = COMBAT_LIFEDRAIN, minDamage = -500, maxDamage = -850, length = 8, spread = 3, effect = CONST_ME_MAGIC_RED, target = false },
+ { name = "combat", interval = 1000, chance = 15, type = COMBAT_LIFEDRAIN, minDamage = -500, maxDamage = -850, length = 8, spread = 1, effect = CONST_ME_MAGIC_RED, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/bosses/brain_head.lua b/data-otservbr-global/monster/bosses/brain_head.lua
new file mode 100644
index 00000000000..b070aba7140
--- /dev/null
+++ b/data-otservbr-global/monster/bosses/brain_head.lua
@@ -0,0 +1,119 @@
+local mType = Game.createMonsterType("Brain Head")
+local monster = {}
+
+monster.description = "Brain Head"
+monster.experience = 0
+monster.outfit = {
+ lookTypeEx = 32418,
+}
+
+monster.health = 75000
+monster.maxHealth = monster.health
+monster.race = "undead"
+monster.corpse = 32272
+monster.speed = 0
+
+monster.changeTarget = {
+ interval = 4000,
+ chance = 10,
+}
+
+monster.bosstiary = {
+ bossRaceId = 1862,
+ bossRace = RARITY_ARCHFOE,
+}
+
+monster.flags = {
+ summonable = false,
+ attackable = true,
+ hostile = true,
+ convinceable = false,
+ pushable = false,
+ rewardBoss = true,
+ illusionable = false,
+ canPushItems = true,
+ canPushCreatures = true,
+ staticAttackChance = 90,
+ targetDistance = 1,
+ runHealth = 0,
+ healthHidden = false,
+ canWalkOnEnergy = true,
+ canWalkOnFire = true,
+ canWalkOnPoison = true,
+}
+
+monster.loot = {
+ { name = "crystal coin", chance = 96300, maxCount = 3 },
+ { name = "diamond", chance = 55560, maxCount = 2 },
+ { name = "ultimate mana potion", chance = 51850, maxCount = 6 },
+ { name = "white gem", chance = 51850, maxCount = 2 },
+ { name = "supreme health potion", chance = 29630 },
+ { name = "mastermind potion", chance = 22220 },
+ { name = "cursed bone", chance = 22220 },
+ { name = "berserk potion", chance = 18520 },
+ { name = "death toll", chance = 18520, maxCount = 2 },
+ { name = "ivory comb", chance = 18520 },
+ { name = "bullseye potion", chance = 14810, maxCount = 10 },
+ { name = "ultimate spirit potion", chance = 14810, maxCount = 6 },
+ { name = "moonstone", chance = 14810 },
+ { name = "spooky hood", chance = 8520 },
+ { name = "silver hand mirror", chance = 7410 },
+ { name = "amber with a dragonfly", chance = 7410 },
+ { name = "phantasmal axe", chance = 3700 },
+ { name = "ghost claw", chance = 3700 },
+ { name = "giant amethyst", chance = 3700 },
+ { id = 32621, chance = 3200 }, -- ring of souls
+}
+
+monster.attacks = {
+ { name = "combat", type = COMBAT_DEATHDAMAGE, interval = 2000, chance = 80, minDamage = -700, maxDamage = -1200, effect = CONST_ME_MORTAREA, shootEffect = CONST_ANI_SUDDENDEATH, target = true, range = 7 },
+ { name = "combat", type = COMBAT_LIFEDRAIN, interval = 2000, chance = 20, length = 8, spread = 1, minDamage = -900, maxDamage = -1300, effect = CONST_ME_ELECTRICALSPARK },
+}
+
+monster.defenses = {
+ defense = 78,
+ armor = 78,
+ mitigation = 3.27,
+}
+
+monster.elements = {
+ { type = COMBAT_PHYSICALDAMAGE, percent = 0 },
+ { type = COMBAT_ENERGYDAMAGE, percent = 0 },
+ { type = COMBAT_EARTHDAMAGE, percent = 0 },
+ { type = COMBAT_FIREDAMAGE, percent = 0 },
+ { type = COMBAT_LIFEDRAIN, percent = 0 },
+ { type = COMBAT_MANADRAIN, percent = 0 },
+ { type = COMBAT_DROWNDAMAGE, percent = 0 },
+ { type = COMBAT_ICEDAMAGE, percent = -30 },
+ { type = COMBAT_HOLYDAMAGE, percent = 0 },
+ { type = COMBAT_DEATHDAMAGE, percent = 0 },
+}
+
+monster.immunities = {
+ { type = "paralyze", condition = true },
+ { type = "invisible", condition = true },
+}
+
+monster.voices = {
+ interval = 5000,
+ chance = 10,
+ { text = "Feel the power of death unleashed!", yell = false },
+ { text = "I will rule again and my realm of death will span the world!", yell = false },
+ { text = "My lich-knights will conquer this world for me!", yell = false },
+}
+
+mType.onThink = function(monster, interval) end
+
+mType.onAppear = function(monster, creature)
+ if monster:getType():isRewardBoss() then
+ monster:setReward(true)
+ end
+end
+
+mType.onDisappear = function(monster, creature) end
+
+mType.onMove = function(monster, creature, fromPosition, toPosition) end
+
+mType.onSay = function(monster, creature, type, message) end
+
+mType:register(monster)
diff --git a/data-otservbr-global/monster/bosses/gaffir.lua b/data-otservbr-global/monster/bosses/gaffir.lua
index 3370cb9b08b..9eab5e3466c 100644
--- a/data-otservbr-global/monster/bosses/gaffir.lua
+++ b/data-otservbr-global/monster/bosses/gaffir.lua
@@ -109,7 +109,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -550 },
{ name = "combat", interval = 2000, chance = 8, type = COMBAT_PHYSICALDAMAGE, minDamage = -450, maxDamage = -650, radius = 3, effect = CONST_ME_GROUNDSHAKER, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -400, maxDamage = -580, length = 5, spread = 3, effect = CONST_ME_EXPLOSIONHIT, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -400, maxDamage = -580, length = 5, spread = 1, effect = CONST_ME_EXPLOSIONHIT, target = false },
{ name = "combat", interval = 3000, chance = 14, type = COMBAT_FIREDAMAGE, minDamage = -500, maxDamage = -750, shootEffect = CONST_ANI_FIRE, target = true },
{ name = "combat", interval = 2000, chance = 16, type = COMBAT_EARTHDAMAGE, minDamage = -500, maxDamage = -620, radius = 4, shootEffect = CONST_ANI_EARTH, effect = CONST_ME_GREEN_RINGS, target = true },
{ name = "combat", interval = 3000, chance = 12, type = COMBAT_EARTHDAMAGE, minDamage = -320, maxDamage = -500, radius = 2, effect = CONST_ME_GREEN_RINGS, target = false },
diff --git a/data-otservbr-global/monster/bosses/gravelord_oshuran.lua b/data-otservbr-global/monster/bosses/gravelord_oshuran.lua
index fd5abe25a3f..a03db9c4b1b 100644
--- a/data-otservbr-global/monster/bosses/gravelord_oshuran.lua
+++ b/data-otservbr-global/monster/bosses/gravelord_oshuran.lua
@@ -90,8 +90,8 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -250 },
{ name = "speed", interval = 2000, chance = 25, speedChange = -300, range = 7, effect = CONST_ME_MAGIC_RED, target = false, duration = 30000 },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -180, maxDamage = -300, length = 7, spread = 3, effect = CONST_ME_MAGIC_RED, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -100, maxDamage = -350, length = 7, spread = 3, effect = CONST_ME_HITBYPOISON, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -180, maxDamage = -300, length = 7, spread = 1, effect = CONST_ME_MAGIC_RED, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -100, maxDamage = -350, length = 7, spread = 1, effect = CONST_ME_HITBYPOISON, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -200, maxDamage = -245, range = 1, effect = CONST_ME_MAGIC_RED, target = true },
}
diff --git a/data-otservbr-global/monster/bosses/guard_captain_quaid.lua b/data-otservbr-global/monster/bosses/guard_captain_quaid.lua
index e712117a732..e9a4dd322da 100644
--- a/data-otservbr-global/monster/bosses/guard_captain_quaid.lua
+++ b/data-otservbr-global/monster/bosses/guard_captain_quaid.lua
@@ -94,9 +94,9 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -580 },
{ name = "combat", interval = 2000, chance = 18, type = COMBAT_EARTHDAMAGE, minDamage = -500, maxDamage = -620, radius = 4, shootEffect = CONST_ANI_EARTH, effect = CONST_ME_GREEN_RINGS, target = true },
{ name = "combat", interval = 2000, chance = 22, type = COMBAT_PHYSICALDAMAGE, minDamage = -450, maxDamage = -700, shootEffect = CONST_ANI_THROWINGKNIFE, target = true },
- { name = "combat", interval = 2000, chance = 14, type = COMBAT_PHYSICALDAMAGE, minDamage = -350, maxDamage = -550, length = 5, spread = 3, effect = CONST_ME_EXPLOSIONHIT, target = false },
+ { name = "combat", interval = 2000, chance = 14, type = COMBAT_PHYSICALDAMAGE, minDamage = -350, maxDamage = -550, length = 5, spread = 1, effect = CONST_ME_EXPLOSIONHIT, target = false },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -400, maxDamage = -550, radius = 1, shootEffect = CONST_ANI_BURSTARROW, effect = CONST_ME_FIREAREA, target = true },
- { name = "combat", interval = 2000, chance = 12, type = COMBAT_EARTHDAMAGE, minDamage = -300, maxDamage = -480, length = 5, spread = 3, effect = CONST_ME_EXPLOSIONHIT, target = false },
+ { name = "combat", interval = 2000, chance = 12, type = COMBAT_EARTHDAMAGE, minDamage = -300, maxDamage = -480, length = 5, spread = 1, effect = CONST_ME_EXPLOSIONHIT, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -300, maxDamage = -450, radius = 3, effect = CONST_ME_GREEN_RINGS, target = false },
}
diff --git a/data-otservbr-global/monster/bosses/koshei_the_deathless.lua b/data-otservbr-global/monster/bosses/koshei_the_deathless.lua
index 5ad88a01c71..660a10942da 100644
--- a/data-otservbr-global/monster/bosses/koshei_the_deathless.lua
+++ b/data-otservbr-global/monster/bosses/koshei_the_deathless.lua
@@ -83,7 +83,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -170, condition = { type = CONDITION_POISON, totalDamage = 300, interval = 4000 } },
{ name = "combat", interval = 3000, chance = 9, type = COMBAT_LIFEDRAIN, minDamage = -60, maxDamage = -250, range = 1, effect = CONST_ME_MAGIC_BLUE, target = false },
{ name = "combat", interval = 1000, chance = 11, type = COMBAT_LIFEDRAIN, minDamage = -70, maxDamage = -135, radius = 3, effect = CONST_ME_MAGIC_RED, target = false },
- { name = "combat", interval = 2000, chance = 9, type = COMBAT_DEATHDAMAGE, minDamage = -50, maxDamage = -140, length = 8, spread = 3, effect = CONST_ME_MORTAREA, target = false },
+ { name = "combat", interval = 2000, chance = 9, type = COMBAT_DEATHDAMAGE, minDamage = -50, maxDamage = -140, length = 8, spread = 1, effect = CONST_ME_MORTAREA, target = false },
-- curse
{ name = "condition", type = CONDITION_CURSED, interval = 3000, chance = 15, minDamage = -54, maxDamage = -54, range = 1, target = false },
{ name = "speed", interval = 2000, chance = 15, speedChange = -900, range = 7, effect = CONST_ME_MAGIC_RED, target = false, duration = 30000 },
diff --git a/data-otservbr-global/monster/bosses/kroazur.lua b/data-otservbr-global/monster/bosses/kroazur.lua
index 14740f8f522..478bc61bc8d 100644
--- a/data-otservbr-global/monster/bosses/kroazur.lua
+++ b/data-otservbr-global/monster/bosses/kroazur.lua
@@ -95,7 +95,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 200, chance = 20, minDamage = 0, maxDamage = -650 },
{ name = "combat", interval = 200, chance = 20, type = COMBAT_DEATHDAMAGE, minDamage = -300, maxDamage = -500, target = false },
- { name = "combat", interval = 500, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -200, maxDamage = -300, length = 8, spread = 3, effect = CONST_ME_MORTAREA, target = true },
+ { name = "combat", interval = 500, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -200, maxDamage = -300, length = 8, spread = 1, effect = CONST_ME_MORTAREA, target = true },
{ name = "combat", interval = 500, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -250, maxDamage = -300, radius = 8, effect = CONST_ME_MORTAREA, target = false },
}
diff --git a/data-otservbr-global/monster/bosses/morshabaal.lua b/data-otservbr-global/monster/bosses/morshabaal.lua
index b177e932c65..c3e2da38cf8 100644
--- a/data-otservbr-global/monster/bosses/morshabaal.lua
+++ b/data-otservbr-global/monster/bosses/morshabaal.lua
@@ -97,7 +97,7 @@ monster.loot = {
}
monster.attacks = {
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -5500, length = 8, spread = 0, effect = CONST_ME_GREYCHAIN },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -5500, length = 8, spread = 1, effect = CONST_ME_GREYCHAIN },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_ICEDAMAGE, minDamage = -4000, maxDamage = -30000, effect = CONST_ME_ICEATTACK },
{ name = "melee", interval = 2000, chance = 100, skill = 200, attack = 250 },
{ name = "combat", interval = 1000, chance = 7, type = COMBAT_MANADRAIN, minDamage = -100, maxDamage = -1000, range = 7, shootEffect = CONST_ANI_ENERGY, effect = CONST_ME_POFF, target = false },
@@ -110,7 +110,7 @@ monster.attacks = {
{ name = "outfit", interval = 1000, chance = 2, radius = 8, effect = CONST_ME_LOSEENERGY, target = false, duration = 5000, outfitMonster = "demon" },
{ name = "outfit", interval = 1000, chance = 2, radius = 8, effect = CONST_ME_LOSEENERGY, target = false, duration = 5000, outfitItem = 3058 },
{ name = "combat", interval = 1000, chance = 34, type = COMBAT_FIREDAMAGE, minDamage = -100, maxDamage = -900, range = 7, radius = 7, shootEffect = CONST_ANI_FIRE, effect = CONST_ME_FIREAREA, target = true },
- { name = "combat", interval = 1000, chance = 15, type = COMBAT_LIFEDRAIN, minDamage = -500, maxDamage = -850, length = 8, spread = 3, effect = CONST_ME_MAGIC_RED, target = false },
+ { name = "combat", interval = 1000, chance = 15, type = COMBAT_LIFEDRAIN, minDamage = -500, maxDamage = -850, length = 8, spread = 1, effect = CONST_ME_MAGIC_RED, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/bosses/splasher.lua b/data-otservbr-global/monster/bosses/splasher.lua
index b579d921327..570575b09f1 100644
--- a/data-otservbr-global/monster/bosses/splasher.lua
+++ b/data-otservbr-global/monster/bosses/splasher.lua
@@ -77,8 +77,8 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -109, condition = { type = CONDITION_POISON, totalDamage = 5, interval = 4000 } },
{ name = "combat", interval = 2000, chance = 8, type = COMBAT_LIFEDRAIN, minDamage = -106, maxDamage = -169, range = 7, effect = CONST_ME_MAGIC_RED, target = true },
- { name = "combat", interval = 2000, chance = 7, type = COMBAT_LIFEDRAIN, minDamage = -162, maxDamage = -228, length = 8, spread = 3, effect = CONST_ME_HITBYPOISON, target = false },
- { name = "combat", interval = 2000, chance = 9, type = COMBAT_ICEDAMAGE, minDamage = -134, maxDamage = -148, length = 8, spread = 3, effect = CONST_ME_BUBBLES, target = false },
+ { name = "combat", interval = 2000, chance = 7, type = COMBAT_LIFEDRAIN, minDamage = -162, maxDamage = -228, length = 8, spread = 1, effect = CONST_ME_HITBYPOISON, target = false },
+ { name = "combat", interval = 2000, chance = 9, type = COMBAT_ICEDAMAGE, minDamage = -134, maxDamage = -148, length = 8, spread = 1, effect = CONST_ME_BUBBLES, target = false },
{ name = "combat", interval = 2000, chance = 12, type = COMBAT_ICEDAMAGE, minDamage = -101, maxDamage = -149, radius = 3, effect = CONST_ME_BUBBLES, target = false },
{ name = "speed", interval = 2000, chance = 20, speedChange = -300, range = 1, effect = CONST_ME_MAGIC_RED, target = false, duration = 3000 },
}
diff --git a/data-otservbr-global/monster/bosses/the_abomination.lua b/data-otservbr-global/monster/bosses/the_abomination.lua
index 54df2943528..1195b6ba10e 100644
--- a/data-otservbr-global/monster/bosses/the_abomination.lua
+++ b/data-otservbr-global/monster/bosses/the_abomination.lua
@@ -95,7 +95,7 @@ monster.attacks = {
{ name = "speed", interval = 1000, chance = 12, speedChange = -800, radius = 6, effect = CONST_ME_POISONAREA, target = false, duration = 10000 },
{ name = "combat", interval = 1000, chance = 9, type = COMBAT_EARTHDAMAGE, minDamage = -200, maxDamage = -650, radius = 4, effect = CONST_ME_POISONAREA, target = false },
{ name = "combat", interval = 1000, chance = 11, type = COMBAT_LIFEDRAIN, minDamage = -400, maxDamage = -900, radius = 4, shootEffect = CONST_ANI_POISON, effect = CONST_ME_SOUND_GREEN, target = true },
- { name = "combat", interval = 2000, chance = 19, type = COMBAT_PHYSICALDAMAGE, minDamage = -350, maxDamage = -850, length = 7, spread = 3, shootEffect = CONST_ANI_POISON, target = false },
+ { name = "combat", interval = 2000, chance = 19, type = COMBAT_PHYSICALDAMAGE, minDamage = -350, maxDamage = -850, length = 7, spread = 1, shootEffect = CONST_ANI_POISON, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/bosses/the_astral_source.lua b/data-otservbr-global/monster/bosses/the_astral_source.lua
index 6be4ef6fba7..8a8e02dcac9 100644
--- a/data-otservbr-global/monster/bosses/the_astral_source.lua
+++ b/data-otservbr-global/monster/bosses/the_astral_source.lua
@@ -66,7 +66,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -330 },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -500, range = 7, radius = 6, shootEffect = CONST_ANI_ENERGYBALL, effect = CONST_ME_PURPLEENERGY, target = true },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -500, range = 7, radius = 6, shootEffect = CONST_ANI_ENERGY, effect = CONST_ME_ENERGYHIT, target = true },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -400, length = 5, spread = 3, effect = CONST_ME_ENERGYHIT, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -400, length = 5, spread = 1, effect = CONST_ME_ENERGYHIT, target = false },
{ name = "combat", interval = 2000, chance = 25, type = COMBAT_MANADRAIN, minDamage = -200, maxDamage = -400, radius = 5, effect = CONST_ME_MAGIC_BLUE, target = false },
}
diff --git a/data-otservbr-global/monster/bosses/the_book_of_death.lua b/data-otservbr-global/monster/bosses/the_book_of_death.lua
index c6445b9f45c..8b65e1d0a48 100644
--- a/data-otservbr-global/monster/bosses/the_book_of_death.lua
+++ b/data-otservbr-global/monster/bosses/the_book_of_death.lua
@@ -67,7 +67,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/bosses/the_brainstealer.lua b/data-otservbr-global/monster/bosses/the_brainstealer.lua
index 57a4beba537..2010de7b5c5 100644
--- a/data-otservbr-global/monster/bosses/the_brainstealer.lua
+++ b/data-otservbr-global/monster/bosses/the_brainstealer.lua
@@ -93,7 +93,7 @@ monster.attacks = {
{ name = "melee", type = COMBAT_PHYSICALDAMAGE, interval = 2000, minDamage = 0, maxDamage = -900 },
{ name = "combat", type = COMBAT_DEATHDAMAGE, interval = 2000, chance = 20, radius = 4, minDamage = -1200, maxDamage = -1900, effect = CONST_ME_MORTAREA, shootEffect = CONST_ANI_SUDDENDEATH, target = true, range = 7 },
{ name = "combat", type = COMBAT_LIFEDRAIN, interval = 2000, chance = 20, radius = 4, minDamage = -700, maxDamage = -1000, effect = CONST_ME_DRAWBLOOD },
- { name = "combat", type = COMBAT_LIFEDRAIN, interval = 2000, chance = 10, length = 8, spread = 0, minDamage = -1200, maxDamage = -1600, effect = CONST_ME_ELECTRICALSPARK },
+ { name = "combat", type = COMBAT_LIFEDRAIN, interval = 2000, chance = 10, length = 8, spread = 1, minDamage = -1200, maxDamage = -1600, effect = CONST_ME_ELECTRICALSPARK },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/bosses/the_collector.lua b/data-otservbr-global/monster/bosses/the_collector.lua
index 3dd239b3ed0..8b506a4ce68 100644
--- a/data-otservbr-global/monster/bosses/the_collector.lua
+++ b/data-otservbr-global/monster/bosses/the_collector.lua
@@ -67,7 +67,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 100, attack = 40 },
- { name = "speed", interval = 1000, chance = 13, speedChange = -800, length = 8, spread = 3, effect = CONST_ME_ENERGYHIT, target = false, duration = 20000 },
+ { name = "speed", interval = 1000, chance = 13, speedChange = -800, length = 8, spread = 1, effect = CONST_ME_ENERGYHIT, target = false, duration = 20000 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -85, range = 7, shootEffect = CONST_ANI_LARGEROCK, target = false },
{ name = "melee", interval = 2000, chance = 15, minDamage = -10, maxDamage = -80 },
}
diff --git a/data-otservbr-global/monster/bosses/visco.lua b/data-otservbr-global/monster/bosses/visco.lua
index 6b4d0adb1a0..3eb61243d45 100644
--- a/data-otservbr-global/monster/bosses/visco.lua
+++ b/data-otservbr-global/monster/bosses/visco.lua
@@ -92,7 +92,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 200, attack = 200 },
- { name = "combat", interval = 2000, chance = 40, type = COMBAT_PHYSICALDAMAGE, minDamage = -500, maxDamage = -1500, length = 8, spread = 3, effect = CONST_ME_MORTAREA, target = false },
+ { name = "combat", interval = 2000, chance = 40, type = COMBAT_PHYSICALDAMAGE, minDamage = -500, maxDamage = -1500, length = 8, spread = 1, effect = CONST_ME_MORTAREA, target = false },
{ name = "combat", interval = 2000, chance = 30, type = COMBAT_EARTHDAMAGE, minDamage = -300, maxDamage = -1300, radius = 3, effect = CONST_ME_POISONAREA, target = false },
{ name = "combat", interval = 2000, chance = 25, type = COMBAT_MANADRAIN, minDamage = -50, maxDamage = -130, range = 7, effect = CONST_ME_MAGIC_GREEN, target = true },
{ name = "speed", interval = 2000, chance = 20, speedChange = -500, range = 7, effect = CONST_ME_MAGIC_RED, target = false, duration = 20000 },
diff --git a/data-otservbr-global/monster/bosses/weakened_shlorg.lua b/data-otservbr-global/monster/bosses/weakened_shlorg.lua
index af96e3d5389..986ab7b836f 100644
--- a/data-otservbr-global/monster/bosses/weakened_shlorg.lua
+++ b/data-otservbr-global/monster/bosses/weakened_shlorg.lua
@@ -89,7 +89,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 150, attack = 50, condition = { type = CONDITION_POISON, totalDamage = 180, interval = 4000 } },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -90, maxDamage = -180, length = 4, spread = 3, effect = CONST_ME_MAGIC_GREEN, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -90, maxDamage = -180, length = 4, spread = 1, effect = CONST_ME_MAGIC_GREEN, target = false },
{ name = "combat", interval = 2000, chance = 14, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -150, radius = 5, effect = CONST_ME_GREEN_RINGS, target = false },
-- poison
{ name = "condition", type = CONDITION_POISON, interval = 2000, chance = 13, minDamage = -360, maxDamage = -440, radius = 5, effect = CONST_ME_GREEN_RINGS, target = false },
diff --git a/data-otservbr-global/monster/bosses/zarabustor.lua b/data-otservbr-global/monster/bosses/zarabustor.lua
index a9e7f9b3fc8..e0019ad46e0 100644
--- a/data-otservbr-global/monster/bosses/zarabustor.lua
+++ b/data-otservbr-global/monster/bosses/zarabustor.lua
@@ -95,7 +95,7 @@ monster.attacks = {
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_FIREDAMAGE, minDamage = 0, maxDamage = -250, range = 7, radius = 3, shootEffect = CONST_ANI_BURSTARROW, effect = CONST_ME_FIREAREA, target = true },
{ name = "firefield", interval = 2000, chance = 10, range = 7, radius = 2, shootEffect = CONST_ANI_FIRE, target = true },
{ name = "combat", interval = 2000, chance = 25, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -250, range = 7, shootEffect = CONST_ANI_ENERGY, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -130, maxDamage = -350, length = 8, spread = 3, effect = CONST_ME_BIGCLOUDS, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -130, maxDamage = -350, length = 8, spread = 1, effect = CONST_ME_BIGCLOUDS, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = 0, maxDamage = -250, range = 7, target = false },
{ name = "speed", interval = 2000, chance = 15, speedChange = -330, range = 7, effect = CONST_ME_MAGIC_RED, target = false, duration = 20000 },
{ name = "warlock skill reducer", interval = 2000, chance = 5, range = 5, target = false },
diff --git a/data-otservbr-global/monster/bosses/zushuka.lua b/data-otservbr-global/monster/bosses/zushuka.lua
index 968e0c3c2dc..8e37a23f312 100644
--- a/data-otservbr-global/monster/bosses/zushuka.lua
+++ b/data-otservbr-global/monster/bosses/zushuka.lua
@@ -110,9 +110,9 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -560 },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_ICEDAMAGE, minDamage = 0, maxDamage = -100, length = 8, spread = 3, effect = CONST_ME_ICEATTACK, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_ICEDAMAGE, minDamage = 0, maxDamage = -100, length = 8, spread = 1, effect = CONST_ME_ICEATTACK, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_ICEDAMAGE, minDamage = 0, maxDamage = -110, range = 7, shootEffect = CONST_ANI_SNOWBALL, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_ICEDAMAGE, minDamage = -300, maxDamage = -750, length = 8, spread = 3, effect = CONST_ME_ICEAREA, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_ICEDAMAGE, minDamage = -300, maxDamage = -750, length = 8, spread = 1, effect = CONST_ME_ICEAREA, target = false },
{ name = "outfit", interval = 2000, chance = 10, range = 7, effect = CONST_ME_MAGIC_BLUE, target = false, duration = 4000, outfitItem = 7172 },
{ name = "speed", interval = 2000, chance = 15, speedChange = -330, range = 7, effect = CONST_ME_ICETORNADO, target = false, duration = 20000 },
}
diff --git a/data-otservbr-global/monster/constructs/ice_golem.lua b/data-otservbr-global/monster/constructs/ice_golem.lua
index 7e7d42d0643..2f3a9d654ff 100644
--- a/data-otservbr-global/monster/constructs/ice_golem.lua
+++ b/data-otservbr-global/monster/constructs/ice_golem.lua
@@ -94,7 +94,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -220 },
- { name = "speed", interval = 1000, chance = 13, speedChange = -800, length = 8, spread = 3, effect = CONST_ME_ENERGYHIT, target = false, duration = 20000 },
+ { name = "speed", interval = 1000, chance = 13, speedChange = -800, length = 8, spread = 1, effect = CONST_ME_ENERGYHIT, target = false, duration = 20000 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_ICEDAMAGE, minDamage = -50, maxDamage = -85, range = 7, shootEffect = CONST_ANI_SMALLICE, effect = CONST_ME_ICEATTACK, target = false },
{ name = "ice golem skill reducer", interval = 2000, chance = 10, target = false },
}
diff --git a/data-otservbr-global/monster/constructs/lava_golem.lua b/data-otservbr-global/monster/constructs/lava_golem.lua
index 0aa0548574e..ec449392669 100644
--- a/data-otservbr-global/monster/constructs/lava_golem.lua
+++ b/data-otservbr-global/monster/constructs/lava_golem.lua
@@ -108,7 +108,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -400 },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -350, maxDamage = -700, length = 8, spread = 3, effect = CONST_ME_FIREATTACK, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -350, maxDamage = -700, length = 8, spread = 1, effect = CONST_ME_FIREATTACK, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -600, maxDamage = -1300, length = 8, spread = 3, effect = CONST_ME_MORTAREA, target = false },
{ name = "lava golem soulfire", interval = 2000, chance = 15, target = false },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -220, maxDamage = -350, radius = 4, effect = CONST_ME_FIREAREA, target = true },
diff --git a/data-otservbr-global/monster/constructs/magma_crawler.lua b/data-otservbr-global/monster/constructs/magma_crawler.lua
index d9c5c44080b..c15ff702315 100644
--- a/data-otservbr-global/monster/constructs/magma_crawler.lua
+++ b/data-otservbr-global/monster/constructs/magma_crawler.lua
@@ -106,7 +106,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -203 },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -300, maxDamage = -1100, length = 8, spread = 3, effect = CONST_ME_MORTAREA, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -300, maxDamage = -1100, length = 8, spread = 1, effect = CONST_ME_MORTAREA, target = false },
{ name = "magma crawler wave", interval = 2000, chance = 15, minDamage = -290, maxDamage = -800, target = false },
{ name = "magma crawler soulfire", interval = 2000, chance = 20, target = false },
{ name = "soulfire rune", interval = 2000, chance = 10, target = false },
diff --git a/data-otservbr-global/monster/constructs/metal_gargoyle.lua b/data-otservbr-global/monster/constructs/metal_gargoyle.lua
index 206346bf4f2..6629b83bf4a 100644
--- a/data-otservbr-global/monster/constructs/metal_gargoyle.lua
+++ b/data-otservbr-global/monster/constructs/metal_gargoyle.lua
@@ -97,7 +97,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 84, attack = 50 },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -125, maxDamage = -230, length = 8, spread = 3, effect = CONST_ME_YELLOWENERGY, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -125, maxDamage = -230, length = 8, spread = 1, effect = CONST_ME_YELLOWENERGY, target = false },
{ name = "combat", interval = 2000, chance = 9, type = COMBAT_LIFEDRAIN, minDamage = -85, maxDamage = -150, range = 7, radius = 3, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_MORTAREA, target = true },
{ name = "metal gargoyle curse", interval = 2000, chance = 13, target = false },
}
diff --git a/data-otservbr-global/monster/constructs/stone_devourer.lua b/data-otservbr-global/monster/constructs/stone_devourer.lua
index 4af345b23d7..8746e73f612 100644
--- a/data-otservbr-global/monster/constructs/stone_devourer.lua
+++ b/data-otservbr-global/monster/constructs/stone_devourer.lua
@@ -105,7 +105,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -990 },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -230, maxDamage = -460, range = 7, shootEffect = CONST_ANI_SMALLEARTH, effect = CONST_ME_STONES, target = true },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -650, range = 7, shootEffect = CONST_ANI_LARGEROCK, target = true },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_LIFEDRAIN, minDamage = -150, maxDamage = -260, length = 5, spread = 3, effect = CONST_ME_STONES, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_LIFEDRAIN, minDamage = -150, maxDamage = -260, length = 5, spread = 1, effect = CONST_ME_STONES, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/constructs/walker.lua b/data-otservbr-global/monster/constructs/walker.lua
index 3ebcd2cc468..77cdf37192a 100644
--- a/data-otservbr-global/monster/constructs/walker.lua
+++ b/data-otservbr-global/monster/constructs/walker.lua
@@ -94,7 +94,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 70, attack = 50 },
{ name = "walker skill reducer", interval = 2000, chance = 21, target = false },
- { name = "combat", interval = 2000, chance = 17, type = COMBAT_FIREDAMAGE, minDamage = -125, maxDamage = -245, length = 8, spread = 3, effect = CONST_ME_EXPLOSIONHIT, target = false },
+ { name = "combat", interval = 2000, chance = 17, type = COMBAT_FIREDAMAGE, minDamage = -125, maxDamage = -245, length = 8, spread = 1, effect = CONST_ME_EXPLOSIONHIT, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/constructs/weeper.lua b/data-otservbr-global/monster/constructs/weeper.lua
index 29633af26e2..cb09e9c5862 100644
--- a/data-otservbr-global/monster/constructs/weeper.lua
+++ b/data-otservbr-global/monster/constructs/weeper.lua
@@ -99,9 +99,9 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -450 },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -400, maxDamage = -1000, length = 8, spread = 3, effect = CONST_ME_FIREATTACK, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -400, maxDamage = -1000, length = 8, spread = 1, effect = CONST_ME_FIREATTACK, target = false },
{ name = "combat", interval = 3000, chance = 100, type = COMBAT_FIREDAMAGE, minDamage = -80, maxDamage = -250, radius = 3, effect = CONST_ME_HITBYFIRE, target = false },
- { name = "speed", interval = 2000, chance = 10, speedChange = -800, length = 5, spread = 3, effect = CONST_ME_BLOCKHIT, target = false, duration = 30000 },
+ { name = "speed", interval = 2000, chance = 10, speedChange = -800, length = 5, spread = 1, effect = CONST_ME_BLOCKHIT, target = false, duration = 30000 },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/demons/askarak_demon.lua b/data-otservbr-global/monster/demons/askarak_demon.lua
index 4802c5306ad..c9f9148febb 100644
--- a/data-otservbr-global/monster/demons/askarak_demon.lua
+++ b/data-otservbr-global/monster/demons/askarak_demon.lua
@@ -101,7 +101,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -143 },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_EARTHDAMAGE, minDamage = -20, maxDamage = -60, range = 7, radius = 6, shootEffect = CONST_ANI_POISON, effect = CONST_ME_GREEN_RINGS, target = false },
{ name = "askarak wave", interval = 2000, chance = 15, minDamage = -75, maxDamage = -140, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -130, maxDamage = -170, length = 4, spread = 0, effect = CONST_ME_GREEN_RINGS, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -130, maxDamage = -170, length = 4, spread = 1, effect = CONST_ME_GREEN_RINGS, target = false },
{ name = "speed", interval = 2000, chance = 10, speedChange = -600, radius = 1, effect = CONST_ME_MAGIC_RED, target = true, duration = 15000 },
}
diff --git a/data-otservbr-global/monster/demons/askarak_lord.lua b/data-otservbr-global/monster/demons/askarak_lord.lua
index c16d893f0f9..407b90269a3 100644
--- a/data-otservbr-global/monster/demons/askarak_lord.lua
+++ b/data-otservbr-global/monster/demons/askarak_lord.lua
@@ -101,7 +101,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -186 },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_EARTHDAMAGE, minDamage = -40, maxDamage = -80, range = 7, radius = 6, shootEffect = CONST_ANI_POISON, effect = CONST_ME_GREEN_RINGS, target = false },
{ name = "askarak wave", interval = 2000, chance = 15, minDamage = -95, maxDamage = -180, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -130, maxDamage = -180, length = 4, spread = 0, effect = CONST_ME_GREEN_RINGS, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -130, maxDamage = -180, length = 4, spread = 1, effect = CONST_ME_GREEN_RINGS, target = false },
{ name = "speed", interval = 2000, chance = 15, speedChange = -650, radius = 1, effect = CONST_ME_MAGIC_RED, target = true, duration = 15000 },
}
diff --git a/data-otservbr-global/monster/demons/askarak_prince.lua b/data-otservbr-global/monster/demons/askarak_prince.lua
index 227ac9542ee..b679df698fb 100644
--- a/data-otservbr-global/monster/demons/askarak_prince.lua
+++ b/data-otservbr-global/monster/demons/askarak_prince.lua
@@ -101,7 +101,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -353 },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_EARTHDAMAGE, minDamage = -70, maxDamage = -250, range = 7, radius = 6, shootEffect = CONST_ANI_POISON, effect = CONST_ME_GREEN_RINGS, target = false },
{ name = "askarak wave", interval = 2000, chance = 15, minDamage = -100, maxDamage = -200, target = false },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -100, maxDamage = -200, length = 4, spread = 0, effect = CONST_ME_GREEN_RINGS, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -100, maxDamage = -200, length = 4, spread = 1, effect = CONST_ME_GREEN_RINGS, target = false },
{ name = "speed", interval = 2000, chance = 15, speedChange = -700, radius = 1, effect = CONST_ME_MAGIC_RED, target = true, duration = 15000 },
}
diff --git a/data-otservbr-global/monster/demons/dawnfire_asura.lua b/data-otservbr-global/monster/demons/dawnfire_asura.lua
index 30fa645b924..2b58deba78d 100644
--- a/data-otservbr-global/monster/demons/dawnfire_asura.lua
+++ b/data-otservbr-global/monster/demons/dawnfire_asura.lua
@@ -107,11 +107,10 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -269 },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = 0, maxDamage = -70, range = 7, target = false },
- { name = "firefield", interval = 2000, chance = 10, range = 7, radius = 1, shootEffect = CONST_ANI_FIRE, target = true },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -50, maxDamage = -200, length = 8, spread = 3, effect = CONST_ME_PURPLEENERGY, target = false },
- { name = "energy strike", interval = 2000, chance = 10, minDamage = -10, maxDamage = -100, range = 1, target = false },
- { name = "speed", interval = 2000, chance = 15, speedChange = -100, radius = 1, effect = CONST_ME_MAGIC_RED, target = true, duration = 30000 },
+ { name = "combat", interval = 3700, chance = 17, type = COMBAT_LIFEDRAIN, minDamage = -100, maxDamage = -300, length = 8, spread = 1, effect = CONST_ME_PURPLEENERGY, target = false },
+ { name = "combat", interval = 3200, chance = 25, type = COMBAT_DEATHDAMAGE, minDamage = -100, maxDamage = -350, radius = 4, range = 5, target = true, effect = CONST_ME_MORTAREA },
+ { name = "combat", interval = 2700, chance = 20, type = COMBAT_FIREDAMAGE, minDamage = -95, maxDamage = -180, range = 3, shootEffect = CONST_ANI_FIRE, target = true },
+ { name = "speed", interval = 2000, chance = 20, speedChange = -800, radius = 1, shootEffect = CONST_ANI_EXPLOSION, effect = CONST_ME_SLEEP, target = true, duration = 15000 },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/demons/demon.lua b/data-otservbr-global/monster/demons/demon.lua
index 3a1208c210b..db0e6362102 100644
--- a/data-otservbr-global/monster/demons/demon.lua
+++ b/data-otservbr-global/monster/demons/demon.lua
@@ -132,7 +132,7 @@ monster.attacks = {
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = 0, maxDamage = -120, range = 7, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_FIREDAMAGE, minDamage = -150, maxDamage = -250, range = 7, radius = 7, shootEffect = CONST_ANI_FIRE, effect = CONST_ME_FIREAREA, target = true },
{ name = "firefield", interval = 2000, chance = 10, range = 7, radius = 1, shootEffect = CONST_ANI_FIRE, target = true },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -300, maxDamage = -490, length = 8, spread = 0, effect = CONST_ME_PURPLEENERGY, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -300, maxDamage = -490, length = 8, spread = 1, effect = CONST_ME_PURPLEENERGY, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -210, maxDamage = -300, range = 1, shootEffect = CONST_ANI_ENERGY, target = true },
{ name = "speed", interval = 2000, chance = 15, speedChange = -700, radius = 1, effect = CONST_ME_MAGIC_RED, target = true, duration = 30000 },
}
diff --git a/data-otservbr-global/monster/demons/demon_outcast.lua b/data-otservbr-global/monster/demons/demon_outcast.lua
index 10827c7d5a4..18ddfc4c268 100644
--- a/data-otservbr-global/monster/demons/demon_outcast.lua
+++ b/data-otservbr-global/monster/demons/demon_outcast.lua
@@ -115,8 +115,8 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -400 },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -250, maxDamage = -450, length = 6, spread = 3, effect = CONST_ME_PURPLEENERGY, target = true },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -350, maxDamage = -550, length = 8, spread = 3, effect = CONST_ME_YELLOWENERGY, target = true },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -250, maxDamage = -450, length = 6, spread = 1, effect = CONST_ME_PURPLEENERGY, target = true },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -350, maxDamage = -550, length = 8, spread = 1, effect = CONST_ME_YELLOWENERGY, target = true },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_ENERGYDAMAGE, minDamage = -100, maxDamage = -250, radius = 3, effect = CONST_ME_ENERGYHIT, target = true },
{ name = "demon outcast skill reducer", interval = 2000, chance = 10, range = 5, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -80, maxDamage = -150, radius = 4, effect = CONST_ME_MAGIC_GREEN, target = false },
diff --git a/data-otservbr-global/monster/demons/duskbringer.lua b/data-otservbr-global/monster/demons/duskbringer.lua
index 91a8230c84c..476ca99beeb 100644
--- a/data-otservbr-global/monster/demons/duskbringer.lua
+++ b/data-otservbr-global/monster/demons/duskbringer.lua
@@ -82,8 +82,8 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -350 },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -165, range = 7, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_MORTAREA, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -350, maxDamage = -720, length = 8, spread = 3, target = false },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -300, length = 7, spread = 3, effect = CONST_ME_EXPLOSIONAREA, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -350, maxDamage = -720, length = 8, spread = 1, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -300, length = 7, spread = 1, effect = CONST_ME_EXPLOSIONAREA, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -225, maxDamage = -275, radius = 4, target = false },
}
diff --git a/data-otservbr-global/monster/demons/floating_savant.lua b/data-otservbr-global/monster/demons/floating_savant.lua
index 0e63eb84602..facdb6cbd12 100644
--- a/data-otservbr-global/monster/demons/floating_savant.lua
+++ b/data-otservbr-global/monster/demons/floating_savant.lua
@@ -97,7 +97,7 @@ monster.attacks = {
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -390, maxDamage = -480, range = 7, shootEffect = CONST_ANI_FIRE, target = false },
{ name = "combat", interval = 2000, chance = 14, type = COMBAT_ENERGYDAMAGE, minDamage = -390, maxDamage = -480, range = 7, shootEffect = CONST_ANI_ENERGY, target = false },
{ name = "combat", interval = 2000, chance = 12, type = COMBAT_FIREDAMAGE, minDamage = -300, maxDamage = -400, radius = 3, effect = CONST_ME_EXPLOSIONAREA, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -490, maxDamage = -630, length = 4, spread = 3, effect = CONST_ME_HITBYFIRE, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -490, maxDamage = -630, length = 4, spread = 1, effect = CONST_ME_HITBYFIRE, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/demons/frost_flower_asura.lua b/data-otservbr-global/monster/demons/frost_flower_asura.lua
index 6013179e970..55a65961372 100644
--- a/data-otservbr-global/monster/demons/frost_flower_asura.lua
+++ b/data-otservbr-global/monster/demons/frost_flower_asura.lua
@@ -107,7 +107,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -110, maxDamage = -400 },
- { name = "combat", interval = 1300, chance = 14, type = COMBAT_HOLYDAMAGE, minDamage = -185, maxDamage = -210, length = 8, spread = 3, effect = CONST_ME_ICETORNADO, target = false },
+ { name = "combat", interval = 1300, chance = 14, type = COMBAT_HOLYDAMAGE, minDamage = -185, maxDamage = -210, length = 8, spread = 1, effect = CONST_ME_ICETORNADO, target = false },
{ name = "combat", interval = 1000, chance = 9, type = COMBAT_ICEDAMAGE, minDamage = -120, maxDamage = -200, range = 7, shootEffect = CONST_ANI_SMALLICE, effect = CONST_ME_ICEATTACK, target = true },
}
diff --git a/data-otservbr-global/monster/demons/fury.lua b/data-otservbr-global/monster/demons/fury.lua
index 7c990c16b5e..cdaad15cf8f 100644
--- a/data-otservbr-global/monster/demons/fury.lua
+++ b/data-otservbr-global/monster/demons/fury.lua
@@ -102,8 +102,8 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -510 },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -200, maxDamage = -300, length = 8, spread = 3, effect = CONST_ME_EXPLOSIONAREA, target = false },
- { name = "combat", interval = 2000, chance = 5, type = COMBAT_DEATHDAMAGE, minDamage = -120, maxDamage = -700, length = 8, spread = 3, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -120, maxDamage = -300, radius = 4, target = false },
+ { name = "combat", interval = 2000, chance = 5, type = COMBAT_DEATHDAMAGE, minDamage = -120, maxDamage = -700, length = 8, spread = 3, effect = CONST_ME_DRAWBLOOD, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -120, maxDamage = -300, radius = 4, effect = CONST_ME_DRAWBLOOD, target = false },
{ name = "fury skill reducer", interval = 2000, chance = 5, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -120, maxDamage = -300, radius = 3, effect = CONST_ME_HITAREA, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -125, maxDamage = -250, range = 7, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_SMALLCLOUDS, target = false },
diff --git a/data-otservbr-global/monster/demons/grimeleech.lua b/data-otservbr-global/monster/demons/grimeleech.lua
index 8ef43ffadcc..e4754df99ff 100644
--- a/data-otservbr-global/monster/demons/grimeleech.lua
+++ b/data-otservbr-global/monster/demons/grimeleech.lua
@@ -113,10 +113,10 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 70, attack = 80 },
{ name = "melee", interval = 2000, chance = 2, skill = 153, attack = 100 },
- { name = "combat", interval = 2000, chance = 14, type = COMBAT_PHYSICALDAMAGE, minDamage = 100, maxDamage = -565, range = 7, shootEffect = CONST_ANI_DEATH, effect = CONST_ME_MORTAREA, target = true },
- { name = "combat", interval = 2000, chance = 12, type = COMBAT_DEATHDAMAGE, minDamage = -150, maxDamage = -220, length = 8, spread = 3, target = false },
- { name = "combat", interval = 2000, chance = 13, type = COMBAT_DEATHDAMAGE, minDamage = -225, maxDamage = -375, radius = 4, target = false },
- { name = "combat", interval = 2000, chance = 9, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -300, length = 8, spread = 3, effect = CONST_ME_EXPLOSIONAREA, target = false },
+ { name = "combat", interval = 2000, chance = 14, type = COMBAT_LIFEDRAINDAMAGE, minDamage = 100, maxDamage = -565, range = 7, shootEffect = CONST_ANI_DEATH, effect = CONST_ME_MORTAREA, target = true },
+ { name = "combat", interval = 2000, chance = 12, type = COMBAT_LIFEDRAINDAMAGE, minDamage = -150, maxDamage = -220, length = 8, spread = 1, effect = CONST_ME_MAGIC_GREEN, target = false },
+ { name = "combat", interval = 2000, chance = 13, type = COMBAT_DEATHDAMAGE, minDamage = -225, maxDamage = -375, radius = 4, effect = CONST_ME_MORTAREA, target = false },
+ { name = "combat", interval = 2000, chance = 9, type = COMBAT_MANADRAINDAMAGE, minDamage = 0, maxDamage = -300, length = 8, spread = 3, effect = CONST_ME_MAGIC_RED, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/demons/hellfire_fighter.lua b/data-otservbr-global/monster/demons/hellfire_fighter.lua
index 1d6610844b5..00edc695381 100644
--- a/data-otservbr-global/monster/demons/hellfire_fighter.lua
+++ b/data-otservbr-global/monster/demons/hellfire_fighter.lua
@@ -98,7 +98,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -520 },
{ name = "firefield", interval = 2000, chance = 10, range = 7, radius = 3, shootEffect = CONST_ANI_FIRE, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -392, maxDamage = -1500, length = 8, spread = 3, effect = CONST_ME_FIREATTACK, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -392, maxDamage = -1500, length = 8, spread = 1, effect = CONST_ME_FIREATTACK, target = false },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -60, maxDamage = -330, range = 7, radius = 3, effect = CONST_ME_HITBYFIRE, target = false },
{ name = "hellfire fighter soulfire", interval = 2000, chance = 15, target = false },
}
diff --git a/data-otservbr-global/monster/demons/hellflayer.lua b/data-otservbr-global/monster/demons/hellflayer.lua
index f0b8b29df5c..54e2877f77b 100644
--- a/data-otservbr-global/monster/demons/hellflayer.lua
+++ b/data-otservbr-global/monster/demons/hellflayer.lua
@@ -114,7 +114,7 @@ monster.attacks = {
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -170, maxDamage = -300, range = 7, shootEffect = CONST_ANI_POISON, target = false },
{ name = "choking fear drown", interval = 2000, chance = 20, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_DEATHDAMAGE, minDamage = -250, maxDamage = -500, radius = 4, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_MORTAREA, target = true },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -50, maxDamage = -200, length = 8, spread = 3, effect = CONST_ME_PURPLEENERGY, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -50, maxDamage = -200, length = 8, spread = 1, effect = CONST_ME_PURPLEENERGY, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -300, maxDamage = -550, radius = 1, shootEffect = CONST_ANI_FIRE, effect = CONST_ME_FIREATTACK, target = true },
{ name = "warlock skill reducer", interval = 2000, chance = 5, range = 5, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_PHYSICALDAMAGE, minDamage = 300, maxDamage = -500, radius = 1, shootEffect = CONST_ANI_EXPLOSION, effect = CONST_ME_SLEEP, target = true },
diff --git a/data-otservbr-global/monster/demons/midnight_asura.lua b/data-otservbr-global/monster/demons/midnight_asura.lua
index 6eb53ae84a1..d852da98af3 100644
--- a/data-otservbr-global/monster/demons/midnight_asura.lua
+++ b/data-otservbr-global/monster/demons/midnight_asura.lua
@@ -112,12 +112,13 @@ monster.loot = {
}
monster.attacks = {
- { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -269 },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = 0, maxDamage = -70, range = 7, target = false },
- { name = "firefield", interval = 2000, chance = 10, range = 7, radius = 1, shootEffect = CONST_ANI_FIRE, target = true },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -50, maxDamage = -200, length = 8, spread = 3, effect = CONST_ME_PURPLEENERGY, target = false },
- { name = "energy strike", interval = 2000, chance = 10, minDamage = -10, maxDamage = -100, range = 1, target = false },
- { name = "speed", interval = 2000, chance = 15, speedChange = -100, radius = 1, effect = CONST_ME_MAGIC_RED, target = true, duration = 30000 },
+ { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -387 },
+ { name = "combat", interval = 3300, chance = 10, type = COMBAT_MANADRAIN, minDamage = 0, maxDamage = -70, range = 7, target = true },
+ { name = "combat", interval = 3700, chance = 17, type = COMBAT_ENERGYDAMAGE, minDamage = -150, maxDamage = -200, length = 5, spread = 1, effect = CONST_ME_PURPLEENERGY, target = false },
+ { name = "combat", interval = 4100, chance = 27, type = COMBAT_DEATHDAMAGE, minDamage = -150, maxDamage = -300, length = 8, spread = 1, effect = CONST_ME_MORTAREA, target = false },
+ { name = "combat", interval = 2700, chance = 15, type = COMBAT_DEATHDAMAGE, minDamage = -50, maxDamage = -200, range = 5, shootEffect = CONST_ANI_SUDDENDEATH, target = true },
+ { name = "combat", interval = 3100, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = -50, maxDamage = -100, range = 1, shootEffect = CONST_ANI_ENERGY, target = true },
+ { name = "speed", interval = 2000, chance = 20, speedChange = -800, radius = 1, shootEffect = CONST_ANI_EXPLOSION, effect = CONST_ME_SLEEP, target = true, duration = 15000 },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/demons/shaburak_demon.lua b/data-otservbr-global/monster/demons/shaburak_demon.lua
index 043fd39641b..ffa616ce2a8 100644
--- a/data-otservbr-global/monster/demons/shaburak_demon.lua
+++ b/data-otservbr-global/monster/demons/shaburak_demon.lua
@@ -100,7 +100,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -113 },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_FIREDAMAGE, minDamage = -20, maxDamage = -60, range = 7, radius = 6, shootEffect = CONST_ANI_FIRE, effect = CONST_ME_FIREATTACK, target = false },
{ name = "shaburak wave", interval = 2000, chance = 15, minDamage = -70, maxDamage = -140, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -130, maxDamage = -170, length = 4, spread = 0, effect = CONST_ME_FIREATTACK, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -130, maxDamage = -170, length = 4, spread = 1, effect = CONST_ME_FIREATTACK, target = false },
{ name = "speed", interval = 2000, chance = 10, speedChange = -600, radius = 1, effect = CONST_ME_MAGIC_RED, target = true, duration = 15000 },
}
diff --git a/data-otservbr-global/monster/demons/shaburak_lord.lua b/data-otservbr-global/monster/demons/shaburak_lord.lua
index 3da72894836..7c07b202a96 100644
--- a/data-otservbr-global/monster/demons/shaburak_lord.lua
+++ b/data-otservbr-global/monster/demons/shaburak_lord.lua
@@ -100,7 +100,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -251 },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_FIREDAMAGE, minDamage = -30, maxDamage = -75, range = 7, radius = 6, shootEffect = CONST_ANI_FIRE, effect = CONST_ME_FIREATTACK, target = false },
{ name = "shaburak wave", interval = 2000, chance = 15, minDamage = -80, maxDamage = -170, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -140, maxDamage = -200, length = 4, spread = 0, effect = CONST_ME_FIREATTACK, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -140, maxDamage = -200, length = 4, spread = 1, effect = CONST_ME_FIREATTACK, target = false },
{ name = "speed", interval = 2000, chance = 10, speedChange = -650, radius = 1, effect = CONST_ME_MAGIC_RED, target = true, duration = 15000 },
}
diff --git a/data-otservbr-global/monster/demons/shaburak_prince.lua b/data-otservbr-global/monster/demons/shaburak_prince.lua
index 7885b5b086f..3044648a469 100644
--- a/data-otservbr-global/monster/demons/shaburak_prince.lua
+++ b/data-otservbr-global/monster/demons/shaburak_prince.lua
@@ -102,7 +102,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -319 },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_FIREDAMAGE, minDamage = -40, maxDamage = -90, range = 7, radius = 6, shootEffect = CONST_ANI_FIRE, effect = CONST_ME_FIREATTACK, target = false },
{ name = "shaburak wave", interval = 2000, chance = 15, minDamage = -100, maxDamage = -200, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -150, maxDamage = -250, length = 4, spread = 0, effect = CONST_ME_HITBYFIRE, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -150, maxDamage = -250, length = 4, spread = 1, effect = CONST_ME_HITBYFIRE, target = false },
{ name = "speed", interval = 2000, chance = 15, speedChange = -700, radius = 1, effect = CONST_ME_MAGIC_RED, target = true, duration = 15000 },
}
diff --git a/data-otservbr-global/monster/demons/true_dawnfire_asura.lua b/data-otservbr-global/monster/demons/true_dawnfire_asura.lua
index b434eb8be72..20dba37c7e2 100644
--- a/data-otservbr-global/monster/demons/true_dawnfire_asura.lua
+++ b/data-otservbr-global/monster/demons/true_dawnfire_asura.lua
@@ -105,7 +105,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -700, condition = { type = CONDITION_FIRE, totalDamage = 500, interval = 4000 } },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -50, maxDamage = -300, range = 7, target = false }, -- mana drain beam
- { name = "combat", interval = 1000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -450, maxDamage = -830, length = 1, spread = 0, effect = CONST_ME_HITBYFIRE, target = false }, -- fire missile
+ { name = "combat", interval = 1000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -450, maxDamage = -830, length = 1, spread = 1, effect = CONST_ME_HITBYFIRE, target = false }, -- fire missile
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_DEATHDAMAGE, minDamage = -550, maxDamage = -750, radius = 4, effect = CONST_ME_BLACKSMOKE, target = false }, -- death ball
{ name = "speed", interval = 2000, chance = 15, speedChange = -200, radius = 1, effect = CONST_ME_MAGIC_RED, target = true, duration = 30000 }, -- smoke berserk
}
diff --git a/data-otservbr-global/monster/demons/true_frost_flower_asura.lua b/data-otservbr-global/monster/demons/true_frost_flower_asura.lua
index 7a5a6998cf1..19a231c7168 100644
--- a/data-otservbr-global/monster/demons/true_frost_flower_asura.lua
+++ b/data-otservbr-global/monster/demons/true_frost_flower_asura.lua
@@ -110,8 +110,8 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -500, condition = { type = CONDITION_FREEZING, totalDamage = 400, interval = 4000 } },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = 0, maxDamage = -250, range = 7, target = false },
- { name = "combat", interval = 1000, chance = 10, type = COMBAT_ICEDAMAGE, minDamage = -550, maxDamage = -780, length = 8, spread = 3, effect = CONST_ME_ICETORNADO, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -100, maxDamage = -300, length = 8, spread = 3, effect = CONST_ME_PURPLEENERGY, target = false },
+ { name = "combat", interval = 1000, chance = 10, type = COMBAT_ICEDAMAGE, minDamage = -550, maxDamage = -780, length = 8, spread = 1, effect = CONST_ME_ICETORNADO, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -100, maxDamage = -300, length = 8, spread = 1, effect = CONST_ME_PURPLEENERGY, target = false },
{ name = "speed", interval = 2000, chance = 15, speedChange = -100, radius = 1, effect = CONST_ME_MAGIC_RED, target = true, duration = 30000 },
}
diff --git a/data-otservbr-global/monster/demons/true_midnight_asura.lua b/data-otservbr-global/monster/demons/true_midnight_asura.lua
index 1327b384f97..48b05183a19 100644
--- a/data-otservbr-global/monster/demons/true_midnight_asura.lua
+++ b/data-otservbr-global/monster/demons/true_midnight_asura.lua
@@ -112,8 +112,8 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -450 },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_DEATHDAMAGE, minDamage = -500, maxDamage = -650, range = 5, effect = CONST_ME_MORTAREA, target = true }, --Death Missile
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -50, maxDamage = -280, range = 7, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -100, maxDamage = -240, length = 8, spread = 3, effect = CONST_ME_PURPLEENERGY, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -500, maxDamage = -700, length = 8, spread = 3, effect = CONST_ME_BLACKSMOKE, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -100, maxDamage = -240, length = 8, spread = 1, effect = CONST_ME_PURPLEENERGY, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -500, maxDamage = -700, length = 8, spread = 1, effect = CONST_ME_BLACKSMOKE, target = false },
{ name = "speed", interval = 2000, chance = 15, speedChange = -100, radius = 1, effect = CONST_ME_MAGIC_RED, target = true, duration = 30000 },
}
diff --git a/data-otservbr-global/monster/demons/vexclaw.lua b/data-otservbr-global/monster/demons/vexclaw.lua
index d13f5a5087d..fa940a06bd1 100644
--- a/data-otservbr-global/monster/demons/vexclaw.lua
+++ b/data-otservbr-global/monster/demons/vexclaw.lua
@@ -121,9 +121,9 @@ monster.attacks = {
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_FIREDAMAGE, minDamage = -150, maxDamage = -250, range = 7, radius = 7, shootEffect = CONST_ANI_FIRE, effect = CONST_ME_FIREAREA, target = true },
{ name = "choking fear drown", interval = 2000, chance = 20, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_DEATHDAMAGE, minDamage = -150, maxDamage = -400, radius = 4, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_MORTAREA, target = true },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -50, maxDamage = -200, length = 8, spread = 3, effect = CONST_ME_PURPLEENERGY, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -50, maxDamage = -200, length = 8, spread = 1, effect = CONST_ME_PURPLEENERGY, target = false },
{ name = "firefield", interval = 2000, chance = 10, range = 7, radius = 1, shootEffect = CONST_ANI_FIRE, target = true },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -300, maxDamage = -490, length = 8, spread = 3, effect = CONST_ME_PURPLEENERGY, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -300, maxDamage = -490, length = 8, spread = 1, effect = CONST_ME_PURPLEENERGY, target = false },
{ name = "energy strike", interval = 2000, chance = 10, minDamage = -210, maxDamage = -300, range = 1, target = false },
{ name = "speed", interval = 2000, chance = 15, speedChange = -300, radius = 1, effect = CONST_ME_MAGIC_RED, target = true, duration = 30000 },
}
diff --git a/data-otservbr-global/monster/dragons/frost_dragon.lua b/data-otservbr-global/monster/dragons/frost_dragon.lua
index 34814c4f569..0456307325a 100644
--- a/data-otservbr-global/monster/dragons/frost_dragon.lua
+++ b/data-otservbr-global/monster/dragons/frost_dragon.lua
@@ -107,7 +107,7 @@ monster.attacks = {
{ name = "speed", interval = 2000, chance = 15, speedChange = -850, length = 7, spread = 3, effect = CONST_ME_ICEATTACK, target = false, duration = 18000 },
{ name = "combat", interval = 2000, chance = 5, type = COMBAT_ICEDAMAGE, minDamage = -60, maxDamage = -120, radius = 3, effect = CONST_ME_ICETORNADO, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_ICEDAMAGE, minDamage = -100, maxDamage = -240, radius = 4, effect = CONST_ME_ICEAREA, target = true },
- { name = "combat", interval = 2000, chance = 5, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -220, length = 1, spread = 0, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 2000, chance = 5, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -220, length = 1, spread = 3, effect = CONST_ME_POFF, target = false },
{ name = "speed", interval = 2000, chance = 20, speedChange = -600, radius = 4, effect = CONST_ME_ICEAREA, target = true, duration = 12000 },
}
diff --git a/data-otservbr-global/monster/elementals/cliff_strider.lua b/data-otservbr-global/monster/elementals/cliff_strider.lua
index b03a7f25932..ffd9d0771fb 100644
--- a/data-otservbr-global/monster/elementals/cliff_strider.lua
+++ b/data-otservbr-global/monster/elementals/cliff_strider.lua
@@ -118,7 +118,7 @@ monster.attacks = {
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -800, radius = 4, shootEffect = CONST_ANI_LARGEROCK, effect = CONST_ME_STONES, target = true },
{ name = "cliff strider skill reducer", interval = 2000, chance = 10, target = false },
{ name = "cliff strider electrify", interval = 2000, chance = 15, range = 1, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -1000, length = 6, spread = 3, effect = CONST_ME_GROUNDSHAKER, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -1000, length = 6, spread = 1, effect = CONST_ME_GROUNDSHAKER, target = false },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_MANADRAIN, minDamage = -100, maxDamage = -300, radius = 4, effect = CONST_ME_YELLOWENERGY, target = false },
}
diff --git a/data-otservbr-global/monster/elementals/earth_elemental.lua b/data-otservbr-global/monster/elementals/earth_elemental.lua
index 84ab9418e29..618618b5344 100644
--- a/data-otservbr-global/monster/elementals/earth_elemental.lua
+++ b/data-otservbr-global/monster/elementals/earth_elemental.lua
@@ -96,7 +96,7 @@ monster.attacks = {
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -72, maxDamage = -105, range = 7, shootEffect = CONST_ANI_SMALLEARTH, effect = CONST_ME_GREEN_RINGS, target = true },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -100, range = 7, radius = 2, shootEffect = CONST_ANI_LARGEROCK, effect = CONST_ME_POFF, target = true },
-- poison
- { name = "condition", type = CONDITION_POISON, interval = 2000, chance = 20, minDamage = -200, maxDamage = -260, length = 6, spread = 3, effect = CONST_ME_BIGPLANTS, target = false },
+ { name = "condition", type = CONDITION_POISON, interval = 2000, chance = 20, minDamage = -200, maxDamage = -260, length = 6, spread = 1, effect = CONST_ME_BIGPLANTS, target = false },
-- poison
{ name = "condition", type = CONDITION_POISON, interval = 2000, chance = 10, minDamage = -100, maxDamage = -140, radius = 5, shootEffect = CONST_ANI_POISON, effect = CONST_ME_POISONAREA, target = false },
{ name = "speed", interval = 2000, chance = 10, speedChange = -330, range = 5, effect = CONST_ME_SMALLPLANTS, target = true, duration = 5000 },
diff --git a/data-otservbr-global/monster/elementals/foam_stalker.lua b/data-otservbr-global/monster/elementals/foam_stalker.lua
index 5668eb0e29d..1c98af0c129 100644
--- a/data-otservbr-global/monster/elementals/foam_stalker.lua
+++ b/data-otservbr-global/monster/elementals/foam_stalker.lua
@@ -93,7 +93,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -100, maxDamage = -300 },
{ name = "foamsplash", interval = 5000, chance = 50, minDamage = -100, maxDamage = -300 },
- { name = "combat", interval = 2500, chance = 35, type = COMBAT_ICEDAMAGE, minDamage = -100, maxDamage = -300, length = 6, spread = 0, effect = CONST_ME_LOSEENERGY },
+ { name = "combat", interval = 2500, chance = 35, type = COMBAT_ICEDAMAGE, minDamage = -100, maxDamage = -300, length = 6, spread = 1, effect = CONST_ME_LOSEENERGY },
{ name = "combat", interval = 2000, chance = 45, type = COMBAT_ICEDAMAGE, minDamage = -100, maxDamage = -300, range = 4, radius = 1, target = true, effect = CONST_ME_ICEATTACK, shootEffect = CONST_ANI_ICE },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_ICEDAMAGE, minDamage = -100, maxDamage = -300, radius = 4, target = false, effect = CONST_ME_ICEAREA },
}
diff --git a/data-otservbr-global/monster/elementals/ironblight.lua b/data-otservbr-global/monster/elementals/ironblight.lua
index f6391182c10..4a1e81c1f66 100644
--- a/data-otservbr-global/monster/elementals/ironblight.lua
+++ b/data-otservbr-global/monster/elementals/ironblight.lua
@@ -108,9 +108,9 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -300 },
-- poison
{ name = "condition", type = CONDITION_POISON, interval = 2000, chance = 10, minDamage = -460, maxDamage = -480, radius = 6, shootEffect = CONST_ANI_POISON, effect = CONST_ME_POISONAREA, target = false },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_ICEDAMAGE, minDamage = -260, maxDamage = -350, length = 7, spread = 3, shootEffect = CONST_ANI_ICE, effect = CONST_ME_ICEATTACK, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_ICEDAMAGE, minDamage = -260, maxDamage = -350, length = 7, spread = 1, shootEffect = CONST_ANI_ICE, effect = CONST_ME_ICEATTACK, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_EARTHDAMAGE, minDamage = -180, maxDamage = -250, radius = 2, shootEffect = CONST_ANI_GREENSTAR, effect = CONST_ME_BIGPLANTS, target = true },
- { name = "speed", interval = 2000, chance = 10, speedChange = -800, length = 5, spread = 3, effect = CONST_ME_BLOCKHIT, target = false, duration = 30000 },
+ { name = "speed", interval = 2000, chance = 10, speedChange = -800, length = 5, spread = 1, effect = CONST_ME_BLOCKHIT, target = false, duration = 30000 },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/elementals/lava_lurker.lua b/data-otservbr-global/monster/elementals/lava_lurker.lua
index 675d807fa9e..ff9125a958d 100644
--- a/data-otservbr-global/monster/elementals/lava_lurker.lua
+++ b/data-otservbr-global/monster/elementals/lava_lurker.lua
@@ -81,8 +81,8 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
- { name = "combat", interval = 1000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -70, maxDamage = -300, range = 7, length = 3, spread = 3, effect = CONST_ME_HITBYFIRE, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_FIREDAMAGE, minDamage = 0, maxDamage = -100, range = 7, length = 6, spread = 3, effect = CONST_ME_HITBYFIRE, target = false },
+ { name = "combat", interval = 1000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -70, maxDamage = -300, range = 7, length = 3, spread = 1, effect = CONST_ME_HITBYFIRE, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_FIREDAMAGE, minDamage = 0, maxDamage = -100, range = 7, length = 6, spread = 1, effect = CONST_ME_HITBYFIRE, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/elementals/massive_earth_elemental.lua b/data-otservbr-global/monster/elementals/massive_earth_elemental.lua
index 674a26d553e..f698324ba27 100644
--- a/data-otservbr-global/monster/elementals/massive_earth_elemental.lua
+++ b/data-otservbr-global/monster/elementals/massive_earth_elemental.lua
@@ -98,7 +98,7 @@ monster.attacks = {
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -99, maxDamage = -145, range = 7, shootEffect = CONST_ANI_SMALLEARTH, effect = CONST_ME_GREEN_RINGS, target = true },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_PHYSICALDAMAGE, minDamage = -95, maxDamage = -169, range = 7, radius = 2, shootEffect = CONST_ANI_LARGEROCK, effect = CONST_ME_POFF, target = true },
-- poison
- { name = "condition", type = CONDITION_POISON, interval = 2000, chance = 15, minDamage = -300, maxDamage = -320, length = 6, spread = 3, effect = CONST_ME_BIGPLANTS, target = false },
+ { name = "condition", type = CONDITION_POISON, interval = 2000, chance = 15, minDamage = -300, maxDamage = -320, length = 6, spread = 1, effect = CONST_ME_BIGPLANTS, target = false },
-- poison
{ name = "condition", type = CONDITION_POISON, interval = 2000, chance = 10, minDamage = -200, maxDamage = -220, radius = 5, shootEffect = CONST_ANI_POISON, effect = CONST_ME_POISONAREA, target = false },
{ name = "speed", interval = 2000, chance = 20, speedChange = -330, range = 5, effect = CONST_ME_SMALLPLANTS, target = true, duration = 5000 },
diff --git a/data-otservbr-global/monster/elementals/massive_fire_elemental.lua b/data-otservbr-global/monster/elementals/massive_fire_elemental.lua
index ab29c321263..f12696a35f8 100644
--- a/data-otservbr-global/monster/elementals/massive_fire_elemental.lua
+++ b/data-otservbr-global/monster/elementals/massive_fire_elemental.lua
@@ -90,7 +90,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -300 },
{ name = "firefield", interval = 2000, chance = 10, range = 7, radius = 3, shootEffect = CONST_ANI_FIRE, target = false },
{ name = "firefield", interval = 2000, chance = 10, range = 7, radius = 3, shootEffect = CONST_ANI_FIRE, target = true },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -200, maxDamage = -700, length = 7, spread = 3, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -200, maxDamage = -700, length = 7, spread = 1, target = false },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -60, maxDamage = -250, radius = 3, effect = CONST_ME_EXPLOSIONHIT, target = false },
{ name = "massive fire elemental soulfire", interval = 2000, chance = 15, target = false },
}
diff --git a/data-otservbr-global/monster/elementals/raging_fire.lua b/data-otservbr-global/monster/elementals/raging_fire.lua
index a5da1da9fe1..87e8f37de82 100644
--- a/data-otservbr-global/monster/elementals/raging_fire.lua
+++ b/data-otservbr-global/monster/elementals/raging_fire.lua
@@ -77,7 +77,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 60, attack = 100 },
- { name = "combat", interval = 2000, chance = 9, type = COMBAT_FIREDAMAGE, minDamage = -65, maxDamage = -605, length = 7, spread = 3, target = false },
+ { name = "combat", interval = 2000, chance = 9, type = COMBAT_FIREDAMAGE, minDamage = -65, maxDamage = -605, length = 7, spread = 1, target = false },
{ name = "massive fire elemental soulfire", interval = 2000, chance = 12, target = false },
{ name = "firefield", interval = 2000, chance = 11, range = 7, radius = 3, shootEffect = CONST_ANI_FIRE, effect = CONST_ME_EXPLOSIONHIT, target = true },
{ name = "firefield", interval = 2000, chance = 11, radius = 3, effect = CONST_ME_HITBYFIRE, target = false },
diff --git a/data-otservbr-global/monster/event_creatures/memory_creatures/memory_of_a_frazzlemaw.lua b/data-otservbr-global/monster/event_creatures/memory_creatures/memory_of_a_frazzlemaw.lua
index c8181abc4e0..aed8ef34d48 100644
--- a/data-otservbr-global/monster/event_creatures/memory_creatures/memory_of_a_frazzlemaw.lua
+++ b/data-otservbr-global/monster/event_creatures/memory_creatures/memory_of_a_frazzlemaw.lua
@@ -80,7 +80,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -100 },
-- bleed
{ name = "condition", type = CONDITION_BLEEDING, interval = 2000, chance = 10, minDamage = -50, maxDamage = -120, radius = 3, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -110, length = 5, spread = 3, effect = CONST_ME_EXPLOSIONAREA, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -110, length = 5, spread = 1, effect = CONST_ME_EXPLOSIONAREA, target = false },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -100, radius = 2, shootEffect = CONST_ANI_LARGEROCK, effect = CONST_ME_STONES, target = true },
{ name = "speed", interval = 2000, chance = 15, speedChange = -600, radius = 5, effect = CONST_ME_MAGIC_RED, target = false, duration = 15000 },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -80, maxDamage = -150, radius = 4, effect = CONST_ME_MAGIC_RED, target = false },
diff --git a/data-otservbr-global/monster/event_creatures/memory_creatures/memory_of_a_fungus.lua b/data-otservbr-global/monster/event_creatures/memory_creatures/memory_of_a_fungus.lua
index 781372f05bc..951a19a9196 100644
--- a/data-otservbr-global/monster/event_creatures/memory_creatures/memory_of_a_fungus.lua
+++ b/data-otservbr-global/monster/event_creatures/memory_creatures/memory_of_a_fungus.lua
@@ -77,8 +77,8 @@ monster.attacks = {
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -50, maxDamage = -150, range = 7, shootEffect = CONST_ANI_SMALLEARTH, effect = CONST_ME_SMALLPLANTS, target = false },
{ name = "poisonfield", interval = 2000, chance = 20, radius = 4, target = false },
-- poison
- { name = "condition", type = CONDITION_POISON, interval = 2000, chance = 10, minDamage = -30, maxDamage = -150, length = 8, spread = 3, effect = CONST_ME_GREEN_RINGS, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -80, maxDamage = -130, length = 5, spread = 3, effect = CONST_ME_MAGIC_RED, target = false },
+ { name = "condition", type = CONDITION_POISON, interval = 2000, chance = 10, minDamage = -30, maxDamage = -150, length = 8, spread = 1, effect = CONST_ME_GREEN_RINGS, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -80, maxDamage = -130, length = 5, spread = 1, effect = CONST_ME_MAGIC_RED, target = false },
-- poison
{ name = "condition", type = CONDITION_POISON, interval = 2000, chance = 10, minDamage = -50, maxDamage = -180, range = 7, radius = 3, effect = CONST_ME_HITBYPOISON, target = false },
}
diff --git a/data-otservbr-global/monster/event_creatures/memory_creatures/memory_of_a_manticore.lua b/data-otservbr-global/monster/event_creatures/memory_creatures/memory_of_a_manticore.lua
index 83811f94d61..24f0cfdd8ab 100644
--- a/data-otservbr-global/monster/event_creatures/memory_creatures/memory_of_a_manticore.lua
+++ b/data-otservbr-global/monster/event_creatures/memory_creatures/memory_of_a_manticore.lua
@@ -70,7 +70,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -100 },
- { name = "combat", interval = 2000, chance = 13, type = COMBAT_FIREDAMAGE, minDamage = -50, maxDamage = -150, length = 8, spread = 3, effect = CONST_ME_HITBYFIRE, target = false },
+ { name = "combat", interval = 2000, chance = 13, type = COMBAT_FIREDAMAGE, minDamage = -50, maxDamage = -150, length = 8, spread = 1, effect = CONST_ME_HITBYFIRE, target = false },
{ name = "combat", interval = 4000, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -50, maxDamage = -150, radius = 3, shootEffect = CONST_ANI_ENVENOMEDARROW, effect = CONST_ME_GREEN_RINGS, target = true },
{ name = "combat", interval = 2000, chance = 22, type = COMBAT_FIREDAMAGE, minDamage = -10, maxDamage = -100, range = 4, shootEffect = CONST_ANI_BURSTARROW, target = true },
}
diff --git a/data-otservbr-global/monster/event_creatures/memory_creatures/memory_of_a_shaper.lua b/data-otservbr-global/monster/event_creatures/memory_creatures/memory_of_a_shaper.lua
index ba877ecbfe6..b6dbeb3e46d 100644
--- a/data-otservbr-global/monster/event_creatures/memory_creatures/memory_of_a_shaper.lua
+++ b/data-otservbr-global/monster/event_creatures/memory_creatures/memory_of_a_shaper.lua
@@ -76,7 +76,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_PHYSICALDAMAGE, minDamage = -50, maxDamage = -100, range = 7, shootEffect = CONST_ANI_ENERGY, effect = CONST_ME_ENERGYHIT, target = true },
- { name = "combat", interval = 2000, chance = 35, type = COMBAT_LIFEDRAIN, minDamage = 0, maxDamage = -100, length = 5, spread = 3, effect = CONST_ME_MAGIC_RED, target = false },
+ { name = "combat", interval = 2000, chance = 35, type = COMBAT_LIFEDRAIN, minDamage = 0, maxDamage = -100, length = 5, spread = 1, effect = CONST_ME_MAGIC_RED, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -50, maxDamage = -100, radius = 7, effect = CONST_ME_MAGIC_BLUE, target = false },
{ name = "speed", interval = 2000, chance = 9, speedChange = -440, effect = CONST_ME_GIANTICE, target = true, duration = 7000 },
}
diff --git a/data-otservbr-global/monster/extra_dimensional/instable_sparkion.lua b/data-otservbr-global/monster/extra_dimensional/instable_sparkion.lua
index 9ad49260b0d..3844eda9275 100644
--- a/data-otservbr-global/monster/extra_dimensional/instable_sparkion.lua
+++ b/data-otservbr-global/monster/extra_dimensional/instable_sparkion.lua
@@ -95,7 +95,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -250 },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -250, maxDamage = -350, length = 6, spread = 3, effect = CONST_ME_GROUNDSHAKER, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -250, maxDamage = -350, length = 6, spread = 1, effect = CONST_ME_GROUNDSHAKER, target = false },
{ name = "combat", interval = 2000, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -150, maxDamage = -200, range = 5, shootEffect = CONST_ANI_ENERGYBALL, effect = CONST_ME_ENERGYHIT, target = true },
-- energy damage
{ name = "condition", type = CONDITION_ENERGY, interval = 2000, chance = 20, minDamage = -300, maxDamage = -600, range = 6, radius = 4, shootEffect = CONST_ANI_ENERGY, effect = CONST_ME_PURPLEENERGY, target = true },
diff --git a/data-otservbr-global/monster/extra_dimensional/sparkion.lua b/data-otservbr-global/monster/extra_dimensional/sparkion.lua
index f11b76bce6b..df175e251d9 100644
--- a/data-otservbr-global/monster/extra_dimensional/sparkion.lua
+++ b/data-otservbr-global/monster/extra_dimensional/sparkion.lua
@@ -105,7 +105,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -400 },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -250, maxDamage = -400, length = 6, spread = 3, effect = CONST_ME_GROUNDSHAKER, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -250, maxDamage = -400, length = 6, spread = 1, effect = CONST_ME_GROUNDSHAKER, target = false },
{ name = "combat", interval = 2000, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -200, maxDamage = -400, range = 5, shootEffect = CONST_ANI_ENERGYBALL, effect = CONST_ME_ENERGYHIT, target = true },
-- energy damage
{ name = "condition", type = CONDITION_ENERGY, interval = 2000, chance = 20, minDamage = -300, maxDamage = -600, range = 6, radius = 4, shootEffect = CONST_ANI_ENERGY, effect = CONST_ME_PURPLEENERGY, target = true },
diff --git a/data-otservbr-global/monster/extra_dimensional/yielothax.lua b/data-otservbr-global/monster/extra_dimensional/yielothax.lua
index 487a8d5c30d..0896666ebe3 100644
--- a/data-otservbr-global/monster/extra_dimensional/yielothax.lua
+++ b/data-otservbr-global/monster/extra_dimensional/yielothax.lua
@@ -104,10 +104,10 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 1000, chance = 100, minDamage = 0, maxDamage = -203 },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -100, maxDamage = -130, length = 4, spread = 3, effect = CONST_ME_ENERGYAREA, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -100, maxDamage = -130, length = 4, spread = 1, effect = CONST_ME_ENERGYAREA, target = false },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -150, maxDamage = -250, radius = 3, effect = CONST_ME_HITBYPOISON, target = false },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -70, maxDamage = -120, radius = 3, effect = CONST_ME_HITBYPOISON, target = true },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -50, maxDamage = -150, length = 4, spread = 3, effect = CONST_ME_MAGIC_RED, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -50, maxDamage = -150, length = 4, spread = 1, effect = CONST_ME_MAGIC_RED, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/familiars/druid_familiar.lua b/data-otservbr-global/monster/familiars/druid_familiar.lua
index 4e3861b5ba8..3531af0921b 100644
--- a/data-otservbr-global/monster/familiars/druid_familiar.lua
+++ b/data-otservbr-global/monster/familiars/druid_familiar.lua
@@ -68,7 +68,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -300 },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_EARTHDAMAGE, minDamage = -230, maxDamage = -260, range = 5, shootEffect = CONST_ANI_EARTH, effect = CONST_ME_STONES, target = true },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_EARTHDAMAGE, minDamage = -90, maxDamage = -150, length = 2, spread = 0, effect = CONST_ME_GROUNDSHAKER, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_EARTHDAMAGE, minDamage = -90, maxDamage = -150, length = 2, spread = 1, effect = CONST_ME_GROUNDSHAKER, target = false },
{ name = "summon challenge", interval = 2000, chance = 40, target = false },
}
diff --git a/data-otservbr-global/monster/familiars/sorcerer_familiar.lua b/data-otservbr-global/monster/familiars/sorcerer_familiar.lua
index b4685c8763c..5c0463674f8 100644
--- a/data-otservbr-global/monster/familiars/sorcerer_familiar.lua
+++ b/data-otservbr-global/monster/familiars/sorcerer_familiar.lua
@@ -67,8 +67,8 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -280 },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_LIFEDRAIN, minDamage = -90, maxDamage = -150, length = 2, spread = 0, target = false },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -190, maxDamage = -210, length = 2, spread = 0, effect = CONST_ME_ENERGYHIT, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_LIFEDRAIN, minDamage = -90, maxDamage = -150, length = 2, spread = 1, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -190, maxDamage = -210, length = 2, spread = 1, effect = CONST_ME_ENERGYHIT, target = false },
{ name = "summon challenge", interval = 2000, chance = 40, target = false },
}
diff --git a/data-otservbr-global/monster/fey/arctic_faun.lua b/data-otservbr-global/monster/fey/arctic_faun.lua
index 89eb567738c..28970675211 100644
--- a/data-otservbr-global/monster/fey/arctic_faun.lua
+++ b/data-otservbr-global/monster/fey/arctic_faun.lua
@@ -101,7 +101,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/giants/ogre_shaman.lua b/data-otservbr-global/monster/giants/ogre_shaman.lua
index 332230e478f..6e185f36aae 100644
--- a/data-otservbr-global/monster/giants/ogre_shaman.lua
+++ b/data-otservbr-global/monster/giants/ogre_shaman.lua
@@ -114,7 +114,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -269, condition = { type = CONDITION_FIRE, totalDamage = 6, interval = 9000 } },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -70, maxDamage = -180, range = 7, shootEffect = CONST_ANI_POISON, target = false },
{ name = "outfit", interval = 2000, chance = 8, range = 7, effect = CONST_ME_MAGIC_BLUE, target = false, duration = 4000, outfitMonster = "chicken" },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_EARTHDAMAGE, minDamage = -15, maxDamage = -120, length = 8, spread = 3, effect = CONST_ME_CARNIPHILA, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_EARTHDAMAGE, minDamage = -15, maxDamage = -120, length = 8, spread = 1, effect = CONST_ME_CARNIPHILA, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/humanoids/broken_shaper.lua b/data-otservbr-global/monster/humanoids/broken_shaper.lua
index a829ba02969..cefb789bb57 100644
--- a/data-otservbr-global/monster/humanoids/broken_shaper.lua
+++ b/data-otservbr-global/monster/humanoids/broken_shaper.lua
@@ -105,7 +105,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 2000, chance = 35, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -150, range = 7, shootEffect = CONST_ANI_SMALLSTONE, target = true },
- { name = "combat", interval = 2000, chance = 35, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -100, length = 5, spread = 3, effect = CONST_ME_SOUND_RED, target = false },
+ { name = "combat", interval = 2000, chance = 35, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -100, length = 5, spread = 1, effect = CONST_ME_SOUND_RED, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/humanoids/crazed_summer_vanguard.lua b/data-otservbr-global/monster/humanoids/crazed_summer_vanguard.lua
index 8c9e3f361fc..e3e334fc775 100644
--- a/data-otservbr-global/monster/humanoids/crazed_summer_vanguard.lua
+++ b/data-otservbr-global/monster/humanoids/crazed_summer_vanguard.lua
@@ -96,11 +96,12 @@ monster.loot = {
}
monster.attacks = {
- { name = "melee", interval = 2000, chance = 100, minDamage = -160, maxDamage = -530 },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -270, maxDamage = -710, length = 3, spread = 0, effect = CONST_ME_FIREAREA, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -250, maxDamage = -300, range = 7, shootEffect = CONST_ANI_FIRE, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -350, maxDamage = -380, radius = 5, effect = CONST_ME_EXPLOSIONHIT, target = true },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -200, maxDamage = -350, radius = 5, effect = CONST_ME_EXPLOSIONAREA, target = true },
+ { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -450 },
+ { name = "combat", interval = 2500, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -100, maxDamage = -300, length = 3, spread = 1, effect = CONST_ME_FIREAREA, target = false },
+ { name = "combat", interval = 3000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -100, maxDamage = -300, radius = 1, effect = CONST_ME_FIREAREA, target = false },
+ { name = "combat", interval = 3500, chance = 20, type = COMBAT_FIREDAMAGE, minDamage = -250, maxDamage = -300, range = 7, shootEffect = CONST_ANI_FIRE, target = false },
+ { name = "combat", interval = 4000, chance = 20, type = COMBAT_LIFEDRAIN, minDamage = -100, maxDamage = -300, radius = 3, effect = CONST_ME_EXPLOSIONHIT, target = true },
+ { name = "sparks chain", interval = 4500, chance = 20, minDamage = -100, maxDamage = -250, range = 3, target = true },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/humanoids/crazed_winter_rearguard.lua b/data-otservbr-global/monster/humanoids/crazed_winter_rearguard.lua
index 17fce82c98e..696c3535b01 100644
--- a/data-otservbr-global/monster/humanoids/crazed_winter_rearguard.lua
+++ b/data-otservbr-global/monster/humanoids/crazed_winter_rearguard.lua
@@ -99,9 +99,10 @@ monster.loot = {
}
monster.attacks = {
- { name = "melee", interval = 2000, chance = 100, minDamage = -110, maxDamage = -400 },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_ICEDAMAGE, minDamage = -200, maxDamage = -300, radius = 3, effect = CONST_ME_ICEAREA, target = true },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_ICEDAMAGE, minDamage = -250, maxDamage = -300, range = 7, shootEffect = CONST_ANI_ICE, target = false },
+ { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -400 },
+ { name = "combat", interval = 2500, chance = 20, type = COMBAT_ICEDAMAGE, minDamage = -100, maxDamage = -300, range = 5, radius = 1, effect = CONST_ME_ICEAREA, target = true },
+ { name = "combat", interval = 3000, chance = 25, type = COMBAT_ICEDAMAGE, minDamage = -100, maxDamage = -300, length = 4, spread = 1, effect = CONST_ME_GIANTICE, target = false },
+ { name = "combat", interval = 3500, chance = 25, type = COMBAT_ICEDAMAGE, minDamage = -250, maxDamage = -300, radius = 3, effect = CONST_ME_ICEAREA, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/humanoids/crazed_winter_vanguard.lua b/data-otservbr-global/monster/humanoids/crazed_winter_vanguard.lua
index b324bd32223..be072031382 100644
--- a/data-otservbr-global/monster/humanoids/crazed_winter_vanguard.lua
+++ b/data-otservbr-global/monster/humanoids/crazed_winter_vanguard.lua
@@ -95,10 +95,10 @@ monster.loot = {
}
monster.attacks = {
- { name = "melee", interval = 2000, chance = 100, minDamage = -150, maxDamage = -400 },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_ICEDAMAGE, minDamage = -200, maxDamage = -300, radius = 5, effect = CONST_ME_ICEAREA, target = true },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_ICEDAMAGE, minDamage = -240, maxDamage = -300, length = 4, spread = 3, effect = CONST_ME_GIANTICE, target = false },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_ICEDAMAGE, minDamage = -250, maxDamage = -300, range = 7, shootEffect = CONST_ANI_ICE, target = false },
+ { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -400 },
+ { name = "combat", interval = 2500, chance = 30, type = COMBAT_ICEDAMAGE, minDamage = -100, maxDamage = -300, range = 5, radius = 1, effect = CONST_ME_ICEAREA, target = true },
+ { name = "combat", interval = 3000, chance = 20, type = COMBAT_ICEDAMAGE, minDamage = -100, maxDamage = -300, length = 4, spread = 1, effect = CONST_ME_GIANTICE, target = false },
+ { name = "combat", interval = 3500, chance = 20, type = COMBAT_ICEDAMAGE, minDamage = -250, maxDamage = -300, radius = 3, effect = CONST_ME_ICEAREA, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/humanoids/insane_siren.lua b/data-otservbr-global/monster/humanoids/insane_siren.lua
index 1ded28143d0..3df81ea68f4 100644
--- a/data-otservbr-global/monster/humanoids/insane_siren.lua
+++ b/data-otservbr-global/monster/humanoids/insane_siren.lua
@@ -94,11 +94,14 @@ monster.loot = {
}
monster.attacks = {
- { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -530 },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_FIREDAMAGE, minDamage = -270, maxDamage = -710, length = 3, spread = 0, effect = CONST_ME_FIREAREA, target = false },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -250, maxDamage = -300, range = 7, shootEffect = CONST_ANI_FIRE, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -350, maxDamage = -380, radius = 5, effect = CONST_ME_EXPLOSIONHIT, target = true },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -200, maxDamage = -350, radius = 5, effect = CONST_ME_EXPLOSIONAREA, target = true },
+ { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -450 },
+ { name = "combat", interval = 2300, chance = 17, type = COMBAT_FIREDAMAGE, minDamage = -100, maxDamage = -300, length = 3, spread = 1, effect = CONST_ME_FIREAREA, target = false },
+ { name = "combat", interval = 2600, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -100, maxDamage = -300, radius = 1, effect = CONST_ME_FIREAREA, target = false },
+ { name = "combat", interval = 2900, chance = 17, type = COMBAT_FIREDAMAGE, minDamage = -250, maxDamage = -300, range = 7, shootEffect = CONST_ANI_FIRE, target = false },
+ { name = "combat", interval = 3200, chance = 15, type = COMBAT_LIFEDRAIN, minDamage = -100, maxDamage = -300, radius = 3, effect = CONST_ME_EXPLOSIONHIT, target = true },
+ { name = "combat", interval = 3500, chance = 17, type = COMBAT_FIREDAMAGE, minDamage = -150, maxDamage = -300, range = 6, effect = CONST_ME_FIREATTACK, target = true },
+ { name = "combat", interval = 3800, chance = 17, type = COMBAT_FIREDAMAGE, minDamage = -100, maxDamage = -300, range = 6, radius = 2, effect = CONST_ME_FIREAREA, target = true },
+ { name = "sparks chain", interval = 4100, chance = 17, minDamage = -100, maxDamage = -200, range = 3, target = true },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/humanoids/lost_exile.lua b/data-otservbr-global/monster/humanoids/lost_exile.lua
index d1bb52aaa09..d1eeeea20ae 100644
--- a/data-otservbr-global/monster/humanoids/lost_exile.lua
+++ b/data-otservbr-global/monster/humanoids/lost_exile.lua
@@ -114,7 +114,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -120 },
- { name = "sudden death rune", interval = 2000, chance = 15, minDamage = -150, maxDamage = -350, range = 3, length = 6, spread = 3, effect = CONST_ME_MORTAREA, target = false },
+ { name = "sudden death rune", interval = 2000, chance = 15, minDamage = -150, maxDamage = -350, range = 3, length = 6, spread = 1, effect = CONST_ME_MORTAREA, target = false },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_MANADRAIN, minDamage = -150, maxDamage = -250, range = 3, length = 5, spread = 5, effect = CONST_ME_SMOKE, target = false },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_LIFEDRAIN, minDamage = -150, maxDamage = -290, range = 3, length = 5, spread = 5, shootEffect = CONST_ANI_LARGEROCK, effect = CONST_ME_POISONAREA, target = false },
{ name = "sudden death rune", interval = 2000, chance = 15, minDamage = -70, maxDamage = -250, range = 7, target = false },
diff --git a/data-otservbr-global/monster/humanoids/lost_husher.lua b/data-otservbr-global/monster/humanoids/lost_husher.lua
index 6961a18cde7..e62611fff84 100644
--- a/data-otservbr-global/monster/humanoids/lost_husher.lua
+++ b/data-otservbr-global/monster/humanoids/lost_husher.lua
@@ -102,7 +102,7 @@ monster.loot = {
}
monster.attacks = {
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -150, maxDamage = -300, length = 6, spread = 3, effect = CONST_ME_BLACKSMOKE, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -150, maxDamage = -300, length = 6, spread = 1, effect = CONST_ME_BLACKSMOKE, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -150, maxDamage = -250, radius = 5, effect = CONST_ME_BLACKSMOKE, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -150, maxDamage = -200, range = 7, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_MORTAREA, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -150, maxDamage = -250, range = 7, radius = 2, shootEffect = CONST_ANI_SMALLEARTH, effect = CONST_ME_MAGIC_GREEN, target = true },
diff --git a/data-otservbr-global/monster/humanoids/minotaur_amazon.lua b/data-otservbr-global/monster/humanoids/minotaur_amazon.lua
index 2eb8043163f..5fae57a6df1 100644
--- a/data-otservbr-global/monster/humanoids/minotaur_amazon.lua
+++ b/data-otservbr-global/monster/humanoids/minotaur_amazon.lua
@@ -104,7 +104,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 50, attack = 50 },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -50, maxDamage = -305, length = 8, spread = 3, effect = CONST_ME_MAGIC_RED, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -50, maxDamage = -305, length = 8, spread = 1, effect = CONST_ME_MAGIC_RED, target = false },
{ name = "combat", interval = 2000, chance = 16, type = COMBAT_LIFEDRAIN, minDamage = -50, maxDamage = -150, radius = 4, effect = CONST_ME_MAGIC_RED, target = false },
{ name = "combat", interval = 2000, chance = 22, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -150, range = 7, shootEffect = CONST_ANI_HUNTINGSPEAR, effect = CONST_ME_EXPLOSIONAREA, target = false },
-- bleed
diff --git a/data-otservbr-global/monster/humanoids/mooh'tah_warrior.lua b/data-otservbr-global/monster/humanoids/mooh'tah_warrior.lua
index ada61e26268..6efa23ca5dc 100644
--- a/data-otservbr-global/monster/humanoids/mooh'tah_warrior.lua
+++ b/data-otservbr-global/monster/humanoids/mooh'tah_warrior.lua
@@ -99,7 +99,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 45, attack = 80 },
- { name = "combat", interval = 2000, chance = 14, type = COMBAT_ENERGYDAMAGE, minDamage = -150, maxDamage = -200, length = 4, spread = 3, effect = CONST_ME_YELLOWENERGY, target = false },
+ { name = "combat", interval = 2000, chance = 14, type = COMBAT_ENERGYDAMAGE, minDamage = -150, maxDamage = -200, length = 4, spread = 1, effect = CONST_ME_YELLOWENERGY, target = false },
{ name = "combat", interval = 2000, chance = 11, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -135, range = 7, shootEffect = CONST_ANI_LARGEROCK, effect = CONST_ME_EXPLOSIONAREA, target = false },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_LIFEDRAIN, minDamage = -50, maxDamage = -150, radius = 3, effect = CONST_ME_HITAREA, target = false },
{ name = "mooh'tah master skill reducer", interval = 2000, chance = 19, range = 7, target = false },
diff --git a/data-otservbr-global/monster/humanoids/moohtant.lua b/data-otservbr-global/monster/humanoids/moohtant.lua
index dc730c4f488..f871a077ed8 100644
--- a/data-otservbr-global/monster/humanoids/moohtant.lua
+++ b/data-otservbr-global/monster/humanoids/moohtant.lua
@@ -96,7 +96,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 110, attack = 50 },
- { name = "combat", interval = 2000, chance = 13, type = COMBAT_PHYSICALDAMAGE, minDamage = -100, maxDamage = -230, length = 3, spread = 0, effect = CONST_ME_GROUNDSHAKER, target = false },
+ { name = "combat", interval = 2000, chance = 13, type = COMBAT_PHYSICALDAMAGE, minDamage = -100, maxDamage = -230, length = 3, spread = 1, effect = CONST_ME_GROUNDSHAKER, target = false },
{ name = "combat", interval = 2000, chance = 12, type = COMBAT_PHYSICALDAMAGE, minDamage = -100, maxDamage = -200, radius = 3, effect = CONST_ME_GROUNDSHAKER, target = false },
{ name = "combat", interval = 2000, chance = 19, type = COMBAT_LIFEDRAIN, minDamage = -50, maxDamage = -225, radius = 5, effect = CONST_ME_MAGIC_RED, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -150, maxDamage = -235, range = 7, radius = 4, shootEffect = CONST_ANI_LARGEROCK, effect = CONST_ME_EXPLOSIONAREA, target = true },
diff --git a/data-otservbr-global/monster/humanoids/soul-broken_harbinger.lua b/data-otservbr-global/monster/humanoids/soul-broken_harbinger.lua
index d07eae7ff16..845a3419548 100644
--- a/data-otservbr-global/monster/humanoids/soul-broken_harbinger.lua
+++ b/data-otservbr-global/monster/humanoids/soul-broken_harbinger.lua
@@ -93,8 +93,10 @@ monster.loot = {
}
monster.attacks = {
- { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -240 },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -120, range = 7, shootEffect = CONST_ANI_ARROW, target = false },
+ { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -400 },
+ { name = "combat", interval = 2100, chance = 40, type = COMBAT_ICEDAMAGE, minDamage = -100, maxDamage = -300, range = 5, radius = 1, effect = CONST_ME_ICEAREA, target = true },
+ { name = "combat", interval = 2600, chance = 30, type = COMBAT_ICEDAMAGE, minDamage = -100, maxDamage = -300, length = 4, spread = 1, effect = CONST_ME_GIANTICE, target = false },
+ { name = "combat", interval = 3100, chance = 20, type = COMBAT_ICEDAMAGE, minDamage = -250, maxDamage = -300, radius = 3, effect = CONST_ME_ICEAREA, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/humanoids/twisted_shaper.lua b/data-otservbr-global/monster/humanoids/twisted_shaper.lua
index 63540262085..c5f6f7fecb9 100644
--- a/data-otservbr-global/monster/humanoids/twisted_shaper.lua
+++ b/data-otservbr-global/monster/humanoids/twisted_shaper.lua
@@ -98,7 +98,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_PHYSICALDAMAGE, minDamage = -50, maxDamage = -100, range = 7, shootEffect = CONST_ANI_ENERGY, effect = CONST_ME_ENERGYHIT, target = true },
- { name = "combat", interval = 2000, chance = 35, type = COMBAT_LIFEDRAIN, minDamage = 0, maxDamage = -100, length = 5, spread = 3, effect = CONST_ME_MAGIC_RED, target = false },
+ { name = "combat", interval = 2000, chance = 35, type = COMBAT_LIFEDRAIN, minDamage = 0, maxDamage = -100, length = 5, spread = 1, effect = CONST_ME_MAGIC_RED, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -50, maxDamage = -100, radius = 7, effect = CONST_ME_MAGIC_BLUE, target = false },
{ name = "speed", interval = 2000, chance = 9, speedChange = -440, effect = CONST_ME_GIANTICE, target = true, duration = 7000 },
}
diff --git a/data-otservbr-global/monster/humans/blood_priest.lua b/data-otservbr-global/monster/humans/blood_priest.lua
index 26aec7facee..822d15b06e1 100644
--- a/data-otservbr-global/monster/humans/blood_priest.lua
+++ b/data-otservbr-global/monster/humans/blood_priest.lua
@@ -100,7 +100,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -80, condition = { type = CONDITION_POISON, totalDamage = 100, interval = 4000 } },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_DEATHDAMAGE, minDamage = -60, maxDamage = -100, range = 7, shootEffect = CONST_ANI_DEATH, effect = CONST_ME_SMALLCLOUDS, target = true },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_LIFEDRAIN, minDamage = -40, maxDamage = -60, radius = 4, effect = CONST_ME_MAGIC_RED, target = false },
- { name = "combat", interval = 3000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -80, maxDamage = -130, range = 1, length = 7, spread = 3, effect = CONST_ME_HITAREA, target = true },
+ { name = "combat", interval = 3000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -80, maxDamage = -130, range = 1, length = 7, spread = 1, effect = CONST_ME_HITAREA, target = true },
-- bleed
{ name = "condition", type = CONDITION_BLEEDING, interval = 2000, chance = 5, minDamage = -160, maxDamage = -290, range = 1, radius = 1, target = true },
}
diff --git a/data-otservbr-global/monster/humans/burning_gladiator.lua b/data-otservbr-global/monster/humans/burning_gladiator.lua
index 8923d0928cb..a14d8061470 100644
--- a/data-otservbr-global/monster/humans/burning_gladiator.lua
+++ b/data-otservbr-global/monster/humans/burning_gladiator.lua
@@ -108,7 +108,7 @@ monster.attacks = {
{ name = "firering", interval = 2000, chance = 10, minDamage = -300, maxDamage = -500, target = false },
{ name = "firex", interval = 2000, chance = 15, minDamage = -300, maxDamage = -500, target = false },
{ name = "combat", interval = 2000, chance = 17, type = COMBAT_FIREDAMAGE, minDamage = -300, maxDamage = -500, radius = 2, effect = CONST_ME_FIREATTACK, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -300, maxDamage = -500, length = 3, spread = 0, effect = CONST_ME_ENERGYHIT, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -300, maxDamage = -500, length = 3, spread = 1, effect = CONST_ME_ENERGYHIT, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/humans/cobra_assassin.lua b/data-otservbr-global/monster/humans/cobra_assassin.lua
index d5616e5e0b0..a2206a77ad5 100644
--- a/data-otservbr-global/monster/humans/cobra_assassin.lua
+++ b/data-otservbr-global/monster/humans/cobra_assassin.lua
@@ -91,8 +91,8 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -450 },
{ name = "wave t", interval = 2000, chance = 10, minDamage = -300, maxDamage = -380, target = false },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = -280, maxDamage = -400, radius = 4, effect = CONST_ME_EXPLOSIONHIT, target = false },
- { name = "combat", interval = 2000, chance = 12, type = COMBAT_PHYSICALDAMAGE, minDamage = -250, maxDamage = -400, length = 5, spread = 3, effect = CONST_ME_BLOCKHIT, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = -300, maxDamage = -500, radius = 4, effect = CONST_ME_EXPLOSIONHIT, target = false },
+ { name = "combat", interval = 2000, chance = 12, type = COMBAT_PHYSICALDAMAGE, minDamage = -300, maxDamage = -500, length = 5, spread = 0, effect = CONST_ME_BLOCKHIT, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/humans/cobra_vizier.lua b/data-otservbr-global/monster/humans/cobra_vizier.lua
index c510c4f4385..c6052ab7829 100644
--- a/data-otservbr-global/monster/humans/cobra_vizier.lua
+++ b/data-otservbr-global/monster/humans/cobra_vizier.lua
@@ -99,6 +99,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -480 },
{ name = "explosion wave", interval = 2000, chance = 15, minDamage = -280, maxDamage = -400, target = false },
{ name = "combat", interval = 2000, chance = 12, type = COMBAT_EARTHDAMAGE, minDamage = -350, maxDamage = -520, radius = 4, shootEffect = CONST_ANI_SMALLEARTH, effect = CONST_ME_GREEN_RINGS, target = true },
+ { name = "death chain", interval = 4000, chance = 30, minDamage = -550, maxDamage = -800, range = 3, target = true },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/humans/hardened_usurper_knight.lua b/data-otservbr-global/monster/humans/hardened_usurper_knight.lua
index 341b85f2de2..3bb4fb98b6d 100644
--- a/data-otservbr-global/monster/humans/hardened_usurper_knight.lua
+++ b/data-otservbr-global/monster/humans/hardened_usurper_knight.lua
@@ -67,7 +67,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -500, effect = CONST_ME_DRAWBLOOD },
{ name = "combat", interval = 6000, chance = 9, type = COMBAT_DEATHDAMAGE, minDamage = -150, maxDamage = -300, radius = 3, effect = CONST_ME_MORTAREA, target = false },
- { name = "combat", interval = 6000, chance = 13, type = COMBAT_ICEDAMAGE, minDamage = -150, maxDamage = -400, length = 4, spread = 0, effect = CONST_ME_ICEATTACK, target = false },
+ { name = "combat", interval = 6000, chance = 13, type = COMBAT_ICEDAMAGE, minDamage = -150, maxDamage = -400, length = 4, spread = 1, effect = CONST_ME_ICEATTACK, target = false },
{ name = "singlecloudchain", interval = 8000, chance = 12, minDamage = -200, maxDamage = -450, range = 4, effect = CONST_ME_ENERGYHIT, target = true },
}
diff --git a/data-otservbr-global/monster/humans/hulking_carnisylvan.lua b/data-otservbr-global/monster/humans/hulking_carnisylvan.lua
index 46cd198afc0..27585b39b85 100644
--- a/data-otservbr-global/monster/humans/hulking_carnisylvan.lua
+++ b/data-otservbr-global/monster/humans/hulking_carnisylvan.lua
@@ -93,7 +93,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -300 },
{ name = "combat", interval = 2000, chance = 60, type = COMBAT_EARTHDAMAGE, minDamage = -350, maxDamage = -450, range = 5, shootEffect = CONST_ANI_SMALLEARTH, effect = CONST_ME_POISONAREA, target = true },
{ name = "combat", interval = 2000, chance = 40, type = COMBAT_PHYSICALDAMAGE, minDamage = -600, maxDamage = -800, radius = 4, effect = CONST_ME_EXPLOSIONHIT, target = false },
- { name = "combat", interval = 2000, chance = 30, type = COMBAT_PHYSICALDAMAGE, minDamage = -350, maxDamage = -400, length = 4, spread = 0, effect = CONST_ME_EXPLOSIONHIT, target = false },
+ { name = "combat", interval = 2000, chance = 30, type = COMBAT_PHYSICALDAMAGE, minDamage = -350, maxDamage = -400, length = 4, spread = 1, effect = CONST_ME_EXPLOSIONHIT, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/humans/infernalist.lua b/data-otservbr-global/monster/humans/infernalist.lua
index d662f5fa270..c1df6e1d267 100644
--- a/data-otservbr-global/monster/humans/infernalist.lua
+++ b/data-otservbr-global/monster/humans/infernalist.lua
@@ -110,7 +110,7 @@ monster.attacks = {
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_FIREDAMAGE, minDamage = -90, maxDamage = -180, range = 7, radius = 3, shootEffect = CONST_ANI_FIRE, effect = CONST_ME_FIREAREA, target = true },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_MANADRAIN, minDamage = -53, maxDamage = -120, range = 7, radius = 3, shootEffect = CONST_ANI_ENERGYBALL, effect = CONST_ME_TELEPORT, target = true },
{ name = "firefield", interval = 2000, chance = 15, range = 7, radius = 3, shootEffect = CONST_ANI_FIRE, target = true },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -150, maxDamage = -250, length = 8, spread = 3, effect = CONST_ME_FIREATTACK, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -150, maxDamage = -250, length = 8, spread = 1, effect = CONST_ME_FIREATTACK, target = false },
{ name = "combat", interval = 2000, chance = 5, type = COMBAT_PHYSICALDAMAGE, minDamage = -100, maxDamage = -150, radius = 2, effect = CONST_ME_EXPLOSIONAREA, target = false },
}
diff --git a/data-otservbr-global/monster/humans/usurper_knight.lua b/data-otservbr-global/monster/humans/usurper_knight.lua
index 7116b67fbfa..52f737e675a 100644
--- a/data-otservbr-global/monster/humans/usurper_knight.lua
+++ b/data-otservbr-global/monster/humans/usurper_knight.lua
@@ -96,7 +96,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -500, effect = CONST_ME_DRAWBLOOD },
{ name = "combat", interval = 6000, chance = 14, type = COMBAT_DEATHDAMAGE, minDamage = -150, maxDamage = -300, radius = 3, effect = CONST_ME_MORTAREA, target = false },
- { name = "combat", interval = 6000, chance = 20, type = COMBAT_ICEDAMAGE, minDamage = -150, maxDamage = -400, length = 4, spread = 0, effect = CONST_ME_ICEATTACK, target = false },
+ { name = "combat", interval = 6000, chance = 20, type = COMBAT_ICEDAMAGE, minDamage = -150, maxDamage = -400, length = 4, spread = 1, effect = CONST_ME_ICEATTACK, target = false },
{ name = "singlecloudchain", interval = 8000, chance = 17, minDamage = -200, maxDamage = -450, range = 4, effect = CONST_ME_ENERGYHIT, target = true },
}
diff --git a/data-otservbr-global/monster/humans/warlock.lua b/data-otservbr-global/monster/humans/warlock.lua
index 6e09184297b..2f3def2a200 100644
--- a/data-otservbr-global/monster/humans/warlock.lua
+++ b/data-otservbr-global/monster/humans/warlock.lua
@@ -118,7 +118,7 @@ monster.attacks = {
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = 0, maxDamage = -120, range = 7, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_FIREDAMAGE, minDamage = -50, maxDamage = -180, range = 7, radius = 3, shootEffect = CONST_ANI_BURSTARROW, effect = CONST_ME_FIREAREA, target = true },
{ name = "firefield", interval = 2000, chance = 10, range = 7, radius = 2, shootEffect = CONST_ANI_FIRE, target = true },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -150, maxDamage = -230, length = 8, spread = 3, effect = CONST_ME_BIGCLOUDS, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -150, maxDamage = -230, length = 8, spread = 1, effect = CONST_ME_BIGCLOUDS, target = false },
{ name = "speed", interval = 2000, chance = 15, speedChange = -600, range = 7, effect = CONST_ME_MAGIC_RED, target = false, duration = 20000 },
}
diff --git a/data-otservbr-global/monster/lycanthropes/werebadger.lua b/data-otservbr-global/monster/lycanthropes/werebadger.lua
index 1f8243b9520..1e052aed9e9 100644
--- a/data-otservbr-global/monster/lycanthropes/werebadger.lua
+++ b/data-otservbr-global/monster/lycanthropes/werebadger.lua
@@ -101,7 +101,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 50, attack = 60, condition = { type = CONDITION_POISON, totalDamage = 140, interval = 4000 } },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_LIFEDRAIN, minDamage = -21, maxDamage = -150, range = 7, shootEffect = CONST_ANI_EARTH, effect = CONST_ME_CARNIPHILA, target = true },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -10, maxDamage = -100, length = 8, spread = 3, effect = CONST_ME_CARNIPHILA, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -10, maxDamage = -100, length = 8, spread = 1, effect = CONST_ME_CARNIPHILA, target = false },
{ name = "speed", interval = 4000, chance = 20, radius = 7, effect = CONST_ME_POFF, target = true },
}
diff --git a/data-otservbr-global/monster/lycanthropes/werefox.lua b/data-otservbr-global/monster/lycanthropes/werefox.lua
index 81905188e30..fff16330124 100644
--- a/data-otservbr-global/monster/lycanthropes/werefox.lua
+++ b/data-otservbr-global/monster/lycanthropes/werefox.lua
@@ -107,7 +107,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -290 },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = -100, maxDamage = -200, shootEffect = CONST_ANI_GREENSTAR, target = false },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_LIFEDRAIN, minDamage = -100, maxDamage = -225, range = 7, radius = 4, effect = CONST_ME_MAGIC_RED, target = true },
- { name = "combat", interval = 2000, chance = 14, type = COMBAT_DEATHDAMAGE, minDamage = -100, maxDamage = -700, length = 5, spread = 3, effect = CONST_ME_MORTAREA, target = false },
+ { name = "combat", interval = 2000, chance = 14, type = COMBAT_DEATHDAMAGE, minDamage = -100, maxDamage = -700, length = 5, spread = 1, effect = CONST_ME_MORTAREA, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/lycanthropes/werehyaena.lua b/data-otservbr-global/monster/lycanthropes/werehyaena.lua
index 62a890f771f..e55cf22d9a5 100644
--- a/data-otservbr-global/monster/lycanthropes/werehyaena.lua
+++ b/data-otservbr-global/monster/lycanthropes/werehyaena.lua
@@ -97,7 +97,7 @@ monster.attacks = {
{ name = "melee", type = COMBAT_PHYSICALDAMAGE, interval = 2 * 1000, minDamage = 0, maxDamage = -300 },
{ name = "combat", type = COMBAT_EARTHDAMAGE, interval = 2 * 1000, chance = 17, minDamage = -175, maxDamage = -255, radius = 3, effect = CONST_ME_HITBYPOISON },
{ name = "combat", type = COMBAT_DEATHDAMAGE, interval = 2 * 1000, chance = 15, minDamage = -330, maxDamage = -370, target = true, range = 5, radius = 1, shootEffect = CONST_ANI_LARGEROCK, effect = CONST_ME_MORTAREA },
- { name = "combat", type = COMBAT_DEATHDAMAGE, interval = 2 * 1000, chance = 13, minDamage = -225, maxDamage = -275, length = 3, spread = 0, effect = CONST_ME_MORTAREA },
+ { name = "combat", type = COMBAT_DEATHDAMAGE, interval = 2 * 1000, chance = 13, minDamage = -225, maxDamage = -275, length = 3, spread = 1, effect = CONST_ME_MORTAREA },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/lycanthropes/werehyaena_shaman.lua b/data-otservbr-global/monster/lycanthropes/werehyaena_shaman.lua
index 184a4c56e05..6cb0c872167 100644
--- a/data-otservbr-global/monster/lycanthropes/werehyaena_shaman.lua
+++ b/data-otservbr-global/monster/lycanthropes/werehyaena_shaman.lua
@@ -96,7 +96,7 @@ monster.attacks = {
{ name = "combat", type = COMBAT_DEATHDAMAGE, interval = 2 * 1000, chance = 10, minDamage = -280, maxDamage = -325, radius = 3, effect = CONST_ME_HITBYPOISON },
{ name = "combat", type = COMBAT_EARTHDAMAGE, interval = 2 * 1000, chance = 17, minDamage = -280, maxDamage = -315, range = 5, radius = 4, target = true, shootEffect = CONST_ANI_EARTH, effect = CONST_ME_GREEN_RINGS },
{ name = "combat", type = COMBAT_DEATHDAMAGE, interval = 2 * 1000, chance = 15, minDamage = -370, maxDamage = -430, range = 5, radius = 1, target = true, shootEffect = CONST_ANI_DEATH, effect = CONST_ME_MORTAREA },
- { name = "combat", type = COMBAT_DEATHDAMAGE, interval = 2 * 1000, chance = 13, minDamage = -280, maxDamage = -325, length = 3, spread = 0, effect = CONST_ME_MORTAREA },
+ { name = "combat", type = COMBAT_DEATHDAMAGE, interval = 2 * 1000, chance = 13, minDamage = -280, maxDamage = -325, length = 3, spread = 1, effect = CONST_ME_MORTAREA },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/magicals/bashmu.lua b/data-otservbr-global/monster/magicals/bashmu.lua
index 31be5b2a61d..04c27209288 100644
--- a/data-otservbr-global/monster/magicals/bashmu.lua
+++ b/data-otservbr-global/monster/magicals/bashmu.lua
@@ -97,7 +97,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -600 },
- { name = "combat", interval = 2000, chance = 50, type = COMBAT_ENERGYDAMAGE, minDamage = -400, maxDamage = -800, length = 4, spread = 0, effect = CONST_ME_ENERGYAREA, target = false },
+ { name = "combat", interval = 2000, chance = 50, type = COMBAT_ENERGYDAMAGE, minDamage = -400, maxDamage = -800, length = 4, spread = 1, effect = CONST_ME_ENERGYAREA, target = false },
{ name = "combat", interval = 2000, chance = 40, type = COMBAT_ENERGYDAMAGE, minDamage = -400, maxDamage = -500, range = 3, radius = 3, effect = CONST_ME_ENERGYHIT, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_EARTHDAMAGE, minDamage = -400, maxDamage = -800, range = 7, shootEffect = CONST_ANI_EARTHARROW, target = true },
}
diff --git a/data-otservbr-global/monster/magicals/burning_book.lua b/data-otservbr-global/monster/magicals/burning_book.lua
index ce7ceac08f7..2edca67ee46 100644
--- a/data-otservbr-global/monster/magicals/burning_book.lua
+++ b/data-otservbr-global/monster/magicals/burning_book.lua
@@ -94,7 +94,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -200, maxDamage = -700 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -500, maxDamage = -780, range = 7, shootEffect = CONST_ANI_FLAMMINGARROW, effect = CONST_ME_HITBYFIRE, target = false },
{ name = "combat", interval = 1500, chance = 12, type = COMBAT_PHYSICALDAMAGE, minDamage = -500, maxDamage = -900, radius = 3, effect = CONST_ME_EXPLOSIONAREA, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -400, maxDamage = -850, length = 5, spread = 3, effect = CONST_ME_MAGIC_RED, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -400, maxDamage = -850, length = 5, spread = 1, effect = CONST_ME_MAGIC_RED, target = false },
{ name = "combat", interval = 2000, chance = 12, type = COMBAT_FIREDAMAGE, minDamage = -400, maxDamage = -775, radius = 3, effect = CONST_ME_HITBYFIRE, target = false },
}
diff --git a/data-otservbr-global/monster/magicals/choking_fear.lua b/data-otservbr-global/monster/magicals/choking_fear.lua
index 4cfa9bb0b37..9b0ddc1f49b 100644
--- a/data-otservbr-global/monster/magicals/choking_fear.lua
+++ b/data-otservbr-global/monster/magicals/choking_fear.lua
@@ -107,7 +107,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -499, condition = { type = CONDITION_POISON, totalDamage = 600, interval = 4000 } },
-- poison
- { name = "condition", type = CONDITION_POISON, interval = 2000, chance = 10, minDamage = -700, maxDamage = -900, length = 5, spread = 3, effect = CONST_ME_HITBYPOISON, target = false },
+ { name = "condition", type = CONDITION_POISON, interval = 2000, chance = 10, minDamage = -700, maxDamage = -900, length = 5, spread = 1, effect = CONST_ME_HITBYPOISON, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -300, radius = 1, shootEffect = CONST_ANI_EXPLOSION, effect = CONST_ME_SLEEP, target = true },
{ name = "speed", interval = 2000, chance = 20, speedChange = -800, radius = 1, shootEffect = CONST_ANI_EXPLOSION, effect = CONST_ME_SLEEP, target = true, duration = 15000 },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -130, maxDamage = -300, radius = 4, effect = CONST_ME_SOUND_RED, target = false },
diff --git a/data-otservbr-global/monster/magicals/crypt_warden.lua b/data-otservbr-global/monster/magicals/crypt_warden.lua
index 1b5fd2a9adb..b5b319728ab 100644
--- a/data-otservbr-global/monster/magicals/crypt_warden.lua
+++ b/data-otservbr-global/monster/magicals/crypt_warden.lua
@@ -95,7 +95,7 @@ monster.attacks = {
{ name = "warden x", interval = 2000, chance = 15, minDamage = -250, maxDamage = -430, target = false },
{ name = "warden ring", interval = 2000, chance = 8, minDamage = -250, maxDamage = -380, target = false },
{ name = "combat", interval = 2000, chance = 12, type = COMBAT_EARTHDAMAGE, minDamage = -200, maxDamage = -480, radius = 2, effect = CONST_ME_GROUNDSHAKER, target = false },
- { name = "combat", interval = 2000, chance = 13, type = COMBAT_HOLYDAMAGE, minDamage = -300, maxDamage = -450, length = 5, spread = 3, effect = CONST_ME_HOLYAREA, target = false },
+ { name = "combat", interval = 2000, chance = 13, type = COMBAT_HOLYDAMAGE, minDamage = -300, maxDamage = -450, length = 5, spread = 1, effect = CONST_ME_HOLYAREA, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/magicals/cursed_book.lua b/data-otservbr-global/monster/magicals/cursed_book.lua
index 3066f09a9d6..f9a517b03a2 100644
--- a/data-otservbr-global/monster/magicals/cursed_book.lua
+++ b/data-otservbr-global/monster/magicals/cursed_book.lua
@@ -95,7 +95,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -100, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = -400, maxDamage = -680, range = 7, shootEffect = CONST_ANI_EARTHARROW, target = false },
- { name = "combat", interval = 1000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -400, maxDamage = -575, length = 5, spread = 3, effect = CONST_ME_POISONAREA, target = false },
+ { name = "combat", interval = 1000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -400, maxDamage = -575, length = 5, spread = 1, effect = CONST_ME_POISONAREA, target = false },
{ name = "combat", interval = 1000, chance = 12, type = COMBAT_PHYSICALDAMAGE, minDamage = -230, maxDamage = -880, range = 7, radius = 3, effect = CONST_ME_GROUNDSHAKER, target = false },
}
diff --git a/data-otservbr-global/monster/magicals/energetic_book.lua b/data-otservbr-global/monster/magicals/energetic_book.lua
index 1412e998bd2..782bb395081 100644
--- a/data-otservbr-global/monster/magicals/energetic_book.lua
+++ b/data-otservbr-global/monster/magicals/energetic_book.lua
@@ -96,7 +96,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -100, maxDamage = -200 },
{ name = "combat", interval = 2000, chance = 14, type = COMBAT_ENERGYDAMAGE, minDamage = -200, maxDamage = -680, range = 7, shootEffect = CONST_ANI_ENERGY, target = false },
{ name = "combat", interval = 2000, chance = 40, type = COMBAT_ENERGYDAMAGE, minDamage = -200, maxDamage = -505, radius = 3, effect = CONST_ME_ENERGYAREA, target = false },
- { name = "combat", interval = 1500, chance = 30, type = COMBAT_PHYSICALDAMAGE, minDamage = -200, maxDamage = -700, length = 8, spread = 3, effect = CONST_ME_STUN, target = false },
+ { name = "combat", interval = 1500, chance = 30, type = COMBAT_PHYSICALDAMAGE, minDamage = -200, maxDamage = -700, length = 8, spread = 1, effect = CONST_ME_STUN, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/magicals/feral_sphinx.lua b/data-otservbr-global/monster/magicals/feral_sphinx.lua
index bbcafcf1d9c..8f64bea4816 100644
--- a/data-otservbr-global/monster/magicals/feral_sphinx.lua
+++ b/data-otservbr-global/monster/magicals/feral_sphinx.lua
@@ -89,10 +89,10 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -450 },
- { name = "fire wave", interval = 2000, chance = 15, minDamage = -350, maxDamage = -500, length = 1, spread = 0, target = true },
- { name = "combat", interval = 2000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = -300, maxDamage = -500, radius = 4, effect = CONST_ME_ENERGYAREA, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -350, maxDamage = -550, range = 1, shootEffect = CONST_ANI_FIRE, target = false },
- { name = "combat", interval = 2000, chance = 8, type = COMBAT_HOLYDAMAGE, minDamage = -400, maxDamage = -580, length = 6, spread = 3, effect = CONST_ME_HOLYAREA, target = false },
+ { name = "fire wave", interval = 2000, chance = 15, minDamage = -350, maxDamage = -500, length = 1, spread = 1, target = true },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -300, maxDamage = -500, radius = 4, effect = CONST_ME_ENERGYAREA, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_FIREDAMAGE, minDamage = -350, maxDamage = -550, range = 1, shootEffect = CONST_ANI_FIRE, target = false },
+ { name = "combat", interval = 2000, chance = 18, type = COMBAT_HOLYDAMAGE, minDamage = -400, maxDamage = -580, length = 6, spread = 3, effect = CONST_ME_HOLYAREA, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/magicals/feversleep.lua b/data-otservbr-global/monster/magicals/feversleep.lua
index c99daf92382..4da09ad0943 100644
--- a/data-otservbr-global/monster/magicals/feversleep.lua
+++ b/data-otservbr-global/monster/magicals/feversleep.lua
@@ -97,7 +97,7 @@ monster.attacks = {
{ name = "condition", type = CONDITION_POISON, interval = 2000, chance = 20, minDamage = -800, maxDamage = -1000, radius = 7, effect = CONST_ME_YELLOW_RINGS, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -70, maxDamage = -100, radius = 5, effect = CONST_ME_MAGIC_RED, target = false },
{ name = "feversleep skill reducer", interval = 2000, chance = 10, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -250, maxDamage = -300, length = 6, spread = 3, effect = CONST_ME_YELLOWENERGY, target = true },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -250, maxDamage = -300, length = 6, spread = 1, effect = CONST_ME_YELLOWENERGY, target = true },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_DEATHDAMAGE, minDamage = -150, maxDamage = -300, radius = 1, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_MORTAREA, target = true },
}
diff --git a/data-otservbr-global/monster/magicals/frazzlemaw.lua b/data-otservbr-global/monster/magicals/frazzlemaw.lua
index 32a053b1dcc..d2a4334a0fb 100644
--- a/data-otservbr-global/monster/magicals/frazzlemaw.lua
+++ b/data-otservbr-global/monster/magicals/frazzlemaw.lua
@@ -119,7 +119,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -400 },
-- bleed
{ name = "condition", type = CONDITION_BLEEDING, interval = 2000, chance = 10, minDamage = -300, maxDamage = -400, radius = 3, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -700, length = 5, spread = 3, effect = CONST_ME_EXPLOSIONAREA, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = 0, maxDamage = -700, length = 5, spread = 1, effect = CONST_ME_EXPLOSIONAREA, target = false },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -400, radius = 2, shootEffect = CONST_ANI_LARGEROCK, effect = CONST_ME_STONES, target = true },
{ name = "speed", interval = 2000, chance = 15, speedChange = -600, radius = 5, effect = CONST_ME_MAGIC_RED, target = false, duration = 15000 },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -80, maxDamage = -150, radius = 4, effect = CONST_ME_MAGIC_RED, target = false },
diff --git a/data-otservbr-global/monster/magicals/gryphon.lua b/data-otservbr-global/monster/magicals/gryphon.lua
index 39e919e600f..77830131175 100644
--- a/data-otservbr-global/monster/magicals/gryphon.lua
+++ b/data-otservbr-global/monster/magicals/gryphon.lua
@@ -77,7 +77,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = 350 },
{ name = "combat", interval = 2000, chance = 13, type = COMBAT_HOLYDAMAGE, minDamage = -250, maxDamage = -450, radius = 3, effect = CONST_ME_HOLYAREA, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -200, maxDamage = -300, length = 3, spread = 0, effect = CONST_ME_HITBYFIRE, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -200, maxDamage = -300, length = 3, spread = 1, effect = CONST_ME_HITBYFIRE, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/magicals/guardian_of_tales.lua b/data-otservbr-global/monster/magicals/guardian_of_tales.lua
index e34153ea79e..25c8556a77e 100644
--- a/data-otservbr-global/monster/magicals/guardian_of_tales.lua
+++ b/data-otservbr-global/monster/magicals/guardian_of_tales.lua
@@ -92,7 +92,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -200, maxDamage = -550 },
{ name = "combat", interval = 2000, chance = 13, type = COMBAT_ENERGYDAMAGE, minDamage = -200, maxDamage = -605, radius = 3, effect = CONST_ME_ENERGYAREA, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -375, maxDamage = -500, length = 5, spread = 3, effect = CONST_ME_MAGIC_RED, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -375, maxDamage = -500, length = 5, spread = 1, effect = CONST_ME_MAGIC_RED, target = false },
{ name = "combat", interval = 2000, chance = 12, type = COMBAT_FIREDAMAGE, minDamage = -400, maxDamage = -775, radius = 3, effect = CONST_ME_HITBYFIRE, target = false },
}
diff --git a/data-otservbr-global/monster/magicals/guzzlemaw.lua b/data-otservbr-global/monster/magicals/guzzlemaw.lua
index 5f5aad15c41..9941e56d161 100644
--- a/data-otservbr-global/monster/magicals/guzzlemaw.lua
+++ b/data-otservbr-global/monster/magicals/guzzlemaw.lua
@@ -111,10 +111,10 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -499 },
-- bleed
{ name = "condition", type = CONDITION_BLEEDING, interval = 2000, chance = 10, minDamage = -500, maxDamage = -1000, radius = 3, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -900, length = 8, spread = 3, effect = CONST_ME_EXPLOSIONAREA, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = 0, maxDamage = -900, length = 8, spread = 1, effect = CONST_ME_EXPLOSIONAREA, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -500, radius = 2, shootEffect = CONST_ANI_LARGEROCK, effect = CONST_ME_STONES, target = true },
{ name = "speed", interval = 2000, chance = 15, speedChange = -800, radius = 6, effect = CONST_ME_MAGIC_RED, target = false, duration = 15000 },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = 0, maxDamage = -800, length = 8, spread = 3, effect = CONST_ME_MAGIC_RED, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = 0, maxDamage = -800, length = 8, spread = 1, effect = CONST_ME_MAGIC_RED, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/magicals/icecold_book.lua b/data-otservbr-global/monster/magicals/icecold_book.lua
index 789cc58b3c2..e3acf422ef6 100644
--- a/data-otservbr-global/monster/magicals/icecold_book.lua
+++ b/data-otservbr-global/monster/magicals/icecold_book.lua
@@ -100,7 +100,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -100, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 10, type = COMBAT_ICEDAMAGE, minDamage = -700, maxDamage = -850, range = 7, shootEffect = CONST_ANI_SMALLICE, effect = CONST_ME_ICEATTACK, target = false },
{ name = "combat", interval = 1000, chance = 10, type = COMBAT_ICEDAMAGE, minDamage = -100, maxDamage = -380, range = 7, shootEffect = CONST_ANI_SMALLICE, effect = CONST_ME_ICEATTACK, target = false },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_ICEDAMAGE, minDamage = -350, maxDamage = -980, length = 5, spread = 3, shootEffect = CONST_ANI_SMALLICE, effect = CONST_ME_ICEATTACK, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_ICEDAMAGE, minDamage = -350, maxDamage = -980, length = 5, spread = 1, shootEffect = CONST_ANI_SMALLICE, effect = CONST_ME_ICEATTACK, target = false },
{ name = "combat", interval = 1000, chance = 12, type = COMBAT_ICEDAMAGE, minDamage = -230, maxDamage = -880, range = 7, radius = 3, shootEffect = CONST_ANI_SMALLICE, effect = CONST_ME_ICETORNADO, target = false },
}
diff --git a/data-otservbr-global/monster/magicals/juvenile_bashmu.lua b/data-otservbr-global/monster/magicals/juvenile_bashmu.lua
index fe7bb499bb0..fa1e7f881f4 100644
--- a/data-otservbr-global/monster/magicals/juvenile_bashmu.lua
+++ b/data-otservbr-global/monster/magicals/juvenile_bashmu.lua
@@ -99,7 +99,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -400 },
- { name = "combat", interval = 2000, chance = 50, type = COMBAT_ENERGYDAMAGE, minDamage = -300, maxDamage = -400, length = 4, spread = 0, effect = CONST_ME_ENERGYAREA, target = false },
+ { name = "combat", interval = 2000, chance = 50, type = COMBAT_ENERGYDAMAGE, minDamage = -300, maxDamage = -400, length = 4, spread = 1, effect = CONST_ME_ENERGYAREA, target = false },
{ name = "combat", interval = 2000, chance = 40, type = COMBAT_ENERGYDAMAGE, minDamage = -400, maxDamage = -500, range = 3, radius = 3, effect = CONST_ME_ENERGYHIT, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_EARTHDAMAGE, minDamage = -400, maxDamage = -500, range = 7, shootEffect = CONST_ANI_EARTHARROW, target = true },
}
diff --git a/data-otservbr-global/monster/magicals/manticore.lua b/data-otservbr-global/monster/magicals/manticore.lua
index 97eba9ff118..fba35b6318d 100644
--- a/data-otservbr-global/monster/magicals/manticore.lua
+++ b/data-otservbr-global/monster/magicals/manticore.lua
@@ -75,17 +75,22 @@ monster.voices = {
monster.loot = {
{ name = "platinum coin", chance = 100000, maxCount = 3 },
- { name = "flaming arrow", chance = 4090, maxCount = 11 },
- { name = "royal star", chance = 1120, maxCount = 4 },
- { name = "manticore tail", chance = 8550 },
- { name = "manticore ear", chance = 6690 },
- { name = "magma legs", chance = 740 },
- { name = "magma monocle", chance = 1860 },
- { name = "magma boots", chance = 370 },
- { name = "magma coat", chance = 2970 },
- { name = "wand of everblazing", chance = 1120 },
- { name = "wand of dragonbreath", chance = 740 },
- { name = "wand of draconia", chance = 370 },
+ { name = "manticore tail", chance = 10250 },
+ { name = "manticore ear", chance = 7390 },
+ { name = "small emerald", chance = 5880 },
+ { name = "green crystal fragment", chance = 5710 },
+ { name = "flaming arrow", chance = 4870, maxCount = 9 },
+ { name = "prismatic quartz", chance = 4370 },
+ { name = "rainbow quartz", chance = 3700, maxCount = 3 },
+ { name = "magma coat", chance = 3190 },
+ { name = "violet gem", chance = 3030 },
+ { name = "magma boots", chance = 2860 },
+ { name = "magma monocle", chance = 2020 },
+ { name = "wand of dragonbreath", chance = 1680 },
+ { name = "wand of draconia", chance = 1180 },
+ { name = "royal star", chance = 1010, maxCount = 3 },
+ { name = "wand of everblazing", chance = 1010 },
+ { name = "magma legs", chance = 340 },
}
monster.attacks = {
diff --git a/data-otservbr-global/monster/magicals/medusa.lua b/data-otservbr-global/monster/magicals/medusa.lua
index a828ace46eb..de4bf5139d2 100644
--- a/data-otservbr-global/monster/magicals/medusa.lua
+++ b/data-otservbr-global/monster/magicals/medusa.lua
@@ -99,7 +99,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -450, condition = { type = CONDITION_POISON, totalDamage = 840, interval = 4000 } },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_LIFEDRAIN, minDamage = -21, maxDamage = -350, range = 7, shootEffect = CONST_ANI_EARTH, effect = CONST_ME_CARNIPHILA, target = true },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -250, maxDamage = -500, length = 8, spread = 3, effect = CONST_ME_CARNIPHILA, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -250, maxDamage = -500, length = 8, spread = 1, effect = CONST_ME_CARNIPHILA, target = false },
{ name = "speed", interval = 2000, chance = 25, radius = 7, effect = CONST_ME_POFF, target = true },
{ name = "outfit", interval = 2000, chance = 1, range = 7, target = true, duration = 3000, outfitMonster = "clay guardian" },
}
diff --git a/data-otservbr-global/monster/magicals/menacing_carnivor.lua b/data-otservbr-global/monster/magicals/menacing_carnivor.lua
index 91a1772c42a..6ff42fe9202 100644
--- a/data-otservbr-global/monster/magicals/menacing_carnivor.lua
+++ b/data-otservbr-global/monster/magicals/menacing_carnivor.lua
@@ -102,8 +102,8 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -300, maxDamage = -450 },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_LIFEDRAIN, minDamage = -100, maxDamage = -180, length = 4, spread = 3, effect = CONST_ME_SMOKE, target = false },
- { name = "combat", interval = 2000, chance = 14, type = COMBAT_LIFEDRAIN, minDamage = -100, maxDamage = -200, length = 4, spread = 3, effect = CONST_ME_POISONAREA, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_LIFEDRAIN, minDamage = -100, maxDamage = -180, length = 4, spread = 1, effect = CONST_ME_SMOKE, target = false },
+ { name = "combat", interval = 2000, chance = 14, type = COMBAT_LIFEDRAIN, minDamage = -100, maxDamage = -200, length = 4, spread = 1, effect = CONST_ME_POISONAREA, target = false },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = -150, maxDamage = -330, radius = 4, effect = CONST_ME_GROUNDSHAKER, target = false },
}
diff --git a/data-otservbr-global/monster/magicals/rage_squid.lua b/data-otservbr-global/monster/magicals/rage_squid.lua
index 8fcba91d567..ae28f557d1e 100644
--- a/data-otservbr-global/monster/magicals/rage_squid.lua
+++ b/data-otservbr-global/monster/magicals/rage_squid.lua
@@ -107,7 +107,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -500 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -200, maxDamage = -280, range = 7, shootEffect = CONST_ANI_FLAMMINGARROW, effect = CONST_ME_HITBYFIRE, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -200, maxDamage = -380, range = 7, shootEffect = CONST_ANI_FIRE, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -175, maxDamage = -200, length = 5, spread = 3, effect = CONST_ME_MAGIC_RED, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -175, maxDamage = -200, length = 5, spread = 1, effect = CONST_ME_MAGIC_RED, target = false },
{ name = "combat", interval = 2000, chance = 12, type = COMBAT_FIREDAMAGE, minDamage = -200, maxDamage = -475, radius = 3, effect = CONST_ME_HITBYFIRE, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -200, maxDamage = -475, radius = 2, effect = CONST_ME_FIREAREA, target = false },
}
diff --git a/data-otservbr-global/monster/magicals/retching_horror.lua b/data-otservbr-global/monster/magicals/retching_horror.lua
index 7646ddfa8a3..696c7cfa8b9 100644
--- a/data-otservbr-global/monster/magicals/retching_horror.lua
+++ b/data-otservbr-global/monster/magicals/retching_horror.lua
@@ -99,7 +99,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -400 },
- { name = "drunk", interval = 2000, chance = 10, length = 4, spread = 3, effect = CONST_ME_MAGIC_GREEN, target = true, duration = 5000 },
+ { name = "drunk", interval = 2000, chance = 10, length = 4, spread = 1, effect = CONST_ME_MAGIC_GREEN, target = true, duration = 5000 },
{ name = "speed", interval = 2000, chance = 15, speedChange = -700, radius = 4, shootEffect = CONST_ANI_WHIRLWINDCLUB, effect = CONST_ME_STUN, target = true, duration = 15000 },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -110, radius = 4, effect = CONST_ME_HITAREA, target = false },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -200, radius = 1, shootEffect = CONST_ANI_SNIPERARROW, target = true },
diff --git a/data-otservbr-global/monster/magicals/shiversleep.lua b/data-otservbr-global/monster/magicals/shiversleep.lua
index dbfb4942830..da35f00b265 100644
--- a/data-otservbr-global/monster/magicals/shiversleep.lua
+++ b/data-otservbr-global/monster/magicals/shiversleep.lua
@@ -66,7 +66,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -450 },
- { name = "combat", interval = 1800, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -300, maxDamage = -685, length = 7, spread = 3, effect = CONST_ME_STONES, target = false },
+ { name = "combat", interval = 1800, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -300, maxDamage = -685, length = 7, spread = 1, effect = CONST_ME_STONES, target = false },
{ name = "combat", interval = 2000, chance = 9, type = COMBAT_EARTHDAMAGE, minDamage = -250, maxDamage = -590, radius = 6, effect = CONST_ME_BIGPLANTS, target = false },
}
diff --git a/data-otservbr-global/monster/magicals/shock_head.lua b/data-otservbr-global/monster/magicals/shock_head.lua
index 8b621dd6f4f..b211f9fb9b9 100644
--- a/data-otservbr-global/monster/magicals/shock_head.lua
+++ b/data-otservbr-global/monster/magicals/shock_head.lua
@@ -86,7 +86,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -798 },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_DEATHDAMAGE, minDamage = -200, maxDamage = -300, length = 5, spread = 2, effect = CONST_ME_BLACKSMOKE, target = false },
- { name = "speed", interval = 2000, chance = 15, speedChange = -800, length = 8, spread = 3, effect = CONST_ME_PURPLEENERGY, target = false, duration = 7500 },
+ { name = "speed", interval = 2000, chance = 15, speedChange = -800, length = 8, spread = 1, effect = CONST_ME_PURPLEENERGY, target = false, duration = 7500 },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -350, radius = 4, shootEffect = CONST_ANI_EARTH, effect = CONST_ME_STONES, target = true },
{ name = "shock head skill reducer 1", interval = 2000, chance = 5, range = 5, target = false },
{ name = "shock head skill reducer 2", interval = 2000, chance = 5, target = false },
diff --git a/data-otservbr-global/monster/magicals/sight_of_surrender.lua b/data-otservbr-global/monster/magicals/sight_of_surrender.lua
index 2db33a6e802..f225c132200 100644
--- a/data-otservbr-global/monster/magicals/sight_of_surrender.lua
+++ b/data-otservbr-global/monster/magicals/sight_of_surrender.lua
@@ -110,7 +110,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1100 },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = -500, maxDamage = -800, length = 8, spread = 3, effect = CONST_ME_YELLOWENERGY, target = true },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = -500, maxDamage = -800, length = 8, spread = 1, effect = CONST_ME_YELLOWENERGY, target = true },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -500, radius = 1, shootEffect = CONST_ANI_LARGEROCK, target = true },
}
diff --git a/data-otservbr-global/monster/magicals/sphinx.lua b/data-otservbr-global/monster/magicals/sphinx.lua
index f6d42943ee7..3e65180f75a 100644
--- a/data-otservbr-global/monster/magicals/sphinx.lua
+++ b/data-otservbr-global/monster/magicals/sphinx.lua
@@ -91,9 +91,9 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -400 },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -200, maxDamage = -500, length = 6, spread = 3, effect = CONST_ME_FIREAREA, target = false },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_HOLYDAMAGE, minDamage = -100, maxDamage = -350, range = 5, radius = 3, shootEffect = CONST_ANI_SMALLHOLY, effect = CONST_ME_HOLYAREA, target = true },
- { name = "combat", interval = 2000, chance = 18, type = COMBAT_ENERGYDAMAGE, minDamage = -200, maxDamage = -400, radius = 3, effect = CONST_ME_ENERGYAREA, target = false },
+ { name = "combat", interval = 2000, chance = 30, type = COMBAT_FIREDAMAGE, minDamage = -200, maxDamage = -500, length = 6, spread = 1, effect = CONST_ME_FIREAREA, target = false },
+ { name = "combat", interval = 2000, chance = 35, type = COMBAT_HOLYDAMAGE, minDamage = -100, maxDamage = -350, range = 5, radius = 3, shootEffect = CONST_ANI_SMALLHOLY, effect = CONST_ME_HOLYAREA, target = true },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -200, maxDamage = -400, radius = 3, effect = CONST_ME_ENERGYAREA, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/magicals/terrorsleep.lua b/data-otservbr-global/monster/magicals/terrorsleep.lua
index f4bca2b0395..0fef7bc832e 100644
--- a/data-otservbr-global/monster/magicals/terrorsleep.lua
+++ b/data-otservbr-global/monster/magicals/terrorsleep.lua
@@ -106,7 +106,7 @@ monster.attacks = {
{ name = "condition", type = CONDITION_POISON, interval = 2000, chance = 20, minDamage = -1000, maxDamage = -1500, radius = 7, effect = CONST_ME_YELLOW_RINGS, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -100, maxDamage = -300, radius = 5, effect = CONST_ME_MAGIC_RED, target = false },
{ name = "feversleep skill reducer", interval = 2000, chance = 10, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -350, maxDamage = -500, length = 6, spread = 3, effect = CONST_ME_YELLOWENERGY, target = true },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -350, maxDamage = -500, length = 6, spread = 1, effect = CONST_ME_YELLOWENERGY, target = true },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_DEATHDAMAGE, minDamage = -200, maxDamage = -450, radius = 1, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_MORTAREA, target = true },
}
diff --git a/data-otservbr-global/monster/magicals/thanatursus.lua b/data-otservbr-global/monster/magicals/thanatursus.lua
index cda3e1ed7e7..80d21c1c2cc 100644
--- a/data-otservbr-global/monster/magicals/thanatursus.lua
+++ b/data-otservbr-global/monster/magicals/thanatursus.lua
@@ -103,7 +103,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -200, maxDamage = -450 },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_HOLYDAMAGE, minDamage = -250, maxDamage = -400, radius = 3, effect = CONST_ME_HOLYAREA, target = true },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_ENERGYDAMAGE, minDamage = -280, maxDamage = -450, length = 4, spread = 3, effect = CONST_ME_ENERGYAREA, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_ENERGYDAMAGE, minDamage = -280, maxDamage = -450, length = 4, spread = 1, effect = CONST_ME_ENERGYAREA, target = false },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = -250, maxDamage = -400, radius = 6, effect = CONST_ME_BLOCKHIT, target = true },
}
diff --git a/data-otservbr-global/monster/magicals/venerable_girtablilu.lua b/data-otservbr-global/monster/magicals/venerable_girtablilu.lua
index 558aaffee4a..0b50c26edb9 100644
--- a/data-otservbr-global/monster/magicals/venerable_girtablilu.lua
+++ b/data-otservbr-global/monster/magicals/venerable_girtablilu.lua
@@ -103,7 +103,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -550, effect = CONST_ME_DRAWBLOOD },
{ name = "combat", interval = 2750, chance = 30, type = COMBAT_DEATHDAMAGE, minDamage = -200, maxDamage = -500, range = 7, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_MORTAREA, target = true },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_EARTHDAMAGE, minDamage = -200, maxDamage = -400, length = 4, spread = 3, effect = CONST_ME_HITBYPOISON, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_EARTHDAMAGE, minDamage = -200, maxDamage = -400, length = 4, spread = 1, effect = CONST_ME_HITBYPOISON, target = false },
{ name = "combat", interval = 2000, chance = 40, type = COMBAT_EARTHDAMAGE, minDamage = -200, maxDamage = -400, radius = 3, effect = CONST_ME_HITBYPOISON, target = false },
{ name = "girtablilu poison wave", interval = 2000, chance = 30, minDamage = -200, maxDamage = -400 },
}
diff --git a/data-otservbr-global/monster/magicals/weakened_frazzlemaw.lua b/data-otservbr-global/monster/magicals/weakened_frazzlemaw.lua
index d7e8eba093f..4cdeb53b528 100644
--- a/data-otservbr-global/monster/magicals/weakened_frazzlemaw.lua
+++ b/data-otservbr-global/monster/magicals/weakened_frazzlemaw.lua
@@ -108,7 +108,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 90, attack = 80 },
-- bleed
{ name = "condition", type = CONDITION_BLEEDING, interval = 2000, chance = 10, minDamage = -80, maxDamage = -200, radius = 3, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -200, length = 5, spread = 3, effect = CONST_ME_EXPLOSIONAREA, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -200, length = 5, spread = 1, effect = CONST_ME_EXPLOSIONAREA, target = false },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -100, radius = 2, shootEffect = CONST_ANI_LARGEROCK, effect = CONST_ME_STONES, target = true },
{ name = "speed", interval = 2000, chance = 15, speedChange = -600, radius = 5, effect = CONST_ME_MAGIC_RED, target = false, duration = 15000 },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -80, maxDamage = -50, radius = 4, effect = CONST_ME_MAGIC_RED, target = false },
diff --git a/data-otservbr-global/monster/mammals/doom_deer.lua b/data-otservbr-global/monster/mammals/doom_deer.lua
index 02dfda0bcd8..7ba33d128c6 100644
--- a/data-otservbr-global/monster/mammals/doom_deer.lua
+++ b/data-otservbr-global/monster/mammals/doom_deer.lua
@@ -79,7 +79,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -100 },
- { name = "combat", interval = 4000, chance = 30, type = COMBAT_ENERGYDAMAGE, minDamage = -35, maxDamage = -55, length = 5, spread = 3, effect = CONST_ME_BIGCLOUDS, target = false },
+ { name = "combat", interval = 4000, chance = 30, type = COMBAT_ENERGYDAMAGE, minDamage = -35, maxDamage = -55, length = 5, spread = 1, effect = CONST_ME_BIGCLOUDS, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/mammals/gore_horn.lua b/data-otservbr-global/monster/mammals/gore_horn.lua
index 37ca6c70b2b..708f327934f 100644
--- a/data-otservbr-global/monster/mammals/gore_horn.lua
+++ b/data-otservbr-global/monster/mammals/gore_horn.lua
@@ -87,7 +87,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1000 },
- { name = "combat", interval = 3500, chance = 20, type = COMBAT_ENERGYDAMAGE, minDamage = -450, maxDamage = -750, length = 7, spread = 0, effect = CONST_ME_ENERGYAREA, target = false },
+ { name = "combat", interval = 3500, chance = 20, type = COMBAT_ENERGYDAMAGE, minDamage = -450, maxDamage = -750, length = 7, spread = 1, effect = CONST_ME_ENERGYAREA, target = false },
{ name = "combat", interval = 4100, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = -500, maxDamage = -900, radius = 7, effect = CONST_ME_EXPLOSIONAREA, target = false },
{ name = "combat", interval = 2700, chance = 35, type = COMBAT_ENERGYDAMAGE, minDamage = -500, maxDamage = -850, range = 1, shootEffect = CONST_ANI_ENERGY, target = true },
{ name = "root", interval = 2000, chance = 1, target = true },
diff --git a/data-otservbr-global/monster/mammals/vulcongra.lua b/data-otservbr-global/monster/mammals/vulcongra.lua
index 04218b3e464..90674dbef96 100644
--- a/data-otservbr-global/monster/mammals/vulcongra.lua
+++ b/data-otservbr-global/monster/mammals/vulcongra.lua
@@ -100,7 +100,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -235 },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -195, maxDamage = -340, length = 8, spread = 3, effect = CONST_ME_EXPLOSIONHIT, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -195, maxDamage = -340, length = 8, spread = 1, effect = CONST_ME_EXPLOSIONHIT, target = false },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -100, maxDamage = -200, range = 7, shootEffect = CONST_ANI_FIRE, target = true },
{ name = "vulcongra soulfire", interval = 3000, chance = 100, target = false },
}
diff --git a/data-otservbr-global/monster/mammals/yeti.lua b/data-otservbr-global/monster/mammals/yeti.lua
index 33447765d34..853dfa5a140 100644
--- a/data-otservbr-global/monster/mammals/yeti.lua
+++ b/data-otservbr-global/monster/mammals/yeti.lua
@@ -87,7 +87,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/plants/haunted_treeling.lua b/data-otservbr-global/monster/plants/haunted_treeling.lua
index 15bf394b1b0..b419db0400c 100644
--- a/data-otservbr-global/monster/plants/haunted_treeling.lua
+++ b/data-otservbr-global/monster/plants/haunted_treeling.lua
@@ -96,7 +96,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -150 },
{ name = "combat", interval = 2000, chance = 5, type = COMBAT_MANADRAIN, minDamage = -30, maxDamage = -100, radius = 4, effect = CONST_ME_GREEN_RINGS, target = false },
- { name = "speed", interval = 2000, chance = 15, speedChange = -700, length = 5, spread = 3, effect = CONST_ME_SMALLPLANTS, target = false, duration = 15000 },
+ { name = "speed", interval = 2000, chance = 15, speedChange = -700, length = 5, spread = 1, effect = CONST_ME_SMALLPLANTS, target = false, duration = 15000 },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -100, range = 7, radius = 1, shootEffect = CONST_ANI_SMALLEARTH, effect = CONST_ME_CARNIPHILA, target = true },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -55, maxDamage = -100, radius = 4, effect = CONST_ME_HITBYPOISON, target = true },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_EARTHDAMAGE, radius = 1, effect = CONST_ME_POISONAREA, target = false },
diff --git a/data-otservbr-global/monster/plants/hideous_fungus.lua b/data-otservbr-global/monster/plants/hideous_fungus.lua
index a4938bcf765..5fdb550063c 100644
--- a/data-otservbr-global/monster/plants/hideous_fungus.lua
+++ b/data-otservbr-global/monster/plants/hideous_fungus.lua
@@ -109,7 +109,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -450 },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -250, maxDamage = -430, range = 7, shootEffect = CONST_ANI_SMALLEARTH, effect = CONST_ME_SMALLPLANTS, target = false },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_ICEDAMAGE, minDamage = -250, maxDamage = -550, length = 8, spread = 3, shootEffect = CONST_ANI_SNOWBALL, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_ICEDAMAGE, minDamage = -250, maxDamage = -550, length = 8, spread = 1, shootEffect = CONST_ANI_SNOWBALL, target = false },
{ name = "speed", interval = 2000, chance = 10, speedChange = -600, radius = 1, effect = CONST_ME_MAGIC_RED, target = true, duration = 60000 },
{ name = "drunk", interval = 2000, chance = 10, range = 7, radius = 5, shootEffect = CONST_ANI_SMALLSTONE, effect = CONST_ME_STUN, target = true, duration = 4000 },
-- poison
diff --git a/data-otservbr-global/monster/plants/humongous_fungus.lua b/data-otservbr-global/monster/plants/humongous_fungus.lua
index e80d2c162e6..ab29138715f 100644
--- a/data-otservbr-global/monster/plants/humongous_fungus.lua
+++ b/data-otservbr-global/monster/plants/humongous_fungus.lua
@@ -106,8 +106,8 @@ monster.attacks = {
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -180, maxDamage = -350, range = 7, shootEffect = CONST_ANI_SMALLEARTH, effect = CONST_ME_SMALLPLANTS, target = false },
{ name = "poisonfield", interval = 2000, chance = 20, radius = 4, target = false },
-- poison
- { name = "condition", type = CONDITION_POISON, interval = 2000, chance = 10, minDamage = -500, maxDamage = -1000, length = 8, spread = 3, effect = CONST_ME_GREEN_RINGS, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -130, maxDamage = -260, length = 5, spread = 3, effect = CONST_ME_MAGIC_RED, target = false },
+ { name = "condition", type = CONDITION_POISON, interval = 2000, chance = 10, minDamage = -500, maxDamage = -1000, length = 8, spread = 1, effect = CONST_ME_GREEN_RINGS, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -130, maxDamage = -260, length = 5, spread = 1, effect = CONST_ME_MAGIC_RED, target = false },
-- poison
{ name = "condition", type = CONDITION_POISON, interval = 2000, chance = 10, minDamage = -400, maxDamage = -640, range = 7, radius = 3, effect = CONST_ME_HITBYPOISON, target = false },
}
diff --git a/data-otservbr-global/monster/plants/omnivora.lua b/data-otservbr-global/monster/plants/omnivora.lua
index 7bd18d7d981..26ac8ea4d9d 100644
--- a/data-otservbr-global/monster/plants/omnivora.lua
+++ b/data-otservbr-global/monster/plants/omnivora.lua
@@ -96,7 +96,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -150 },
{ name = "speed", interval = 4000, chance = 20, speedChange = -350, range = 7, shootEffect = CONST_ANI_POISON, target = true, duration = 12000 },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_EARTHDAMAGE, minDamage = -80, maxDamage = -100, range = 7, shootEffect = CONST_ANI_POISON, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -50, maxDamage = -100, length = 8, spread = 3, effect = CONST_ME_POISONAREA, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -50, maxDamage = -100, length = 8, spread = 1, effect = CONST_ME_POISONAREA, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/a_pirates_tail_quest/ratmiral_blackwhiskers.lua b/data-otservbr-global/monster/quests/a_pirates_tail_quest/ratmiral_blackwhiskers.lua
index d399413ed93..98e510bb9b4 100644
--- a/data-otservbr-global/monster/quests/a_pirates_tail_quest/ratmiral_blackwhiskers.lua
+++ b/data-otservbr-global/monster/quests/a_pirates_tail_quest/ratmiral_blackwhiskers.lua
@@ -113,7 +113,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -270, maxDamage = -500 },
{ name = "combat", interval = 2000, chance = 40, type = COMBAT_PHYSICALDAMAGE, minDamage = -300, maxDamage = -600, range = 7, shootEffect = CONST_ANI_WHIRLWINDCLUB, target = true },
{ name = "combat", interval = 2000, chance = 40, type = COMBAT_LIFEDRAIN, minDamage = -300, maxDamage = -600, radius = 4, effect = CONST_ME_MAGIC_RED, target = false },
- { name = "combat", interval = 2000, chance = 30, type = COMBAT_LIFEDRAIN, minDamage = -600, maxDamage = -1000, length = 4, spread = 0, effect = CONST_ME_SOUND_PURPLE, target = false },
+ { name = "combat", interval = 2000, chance = 30, type = COMBAT_LIFEDRAIN, minDamage = -600, maxDamage = -1000, length = 4, spread = 1, effect = CONST_ME_SOUND_PURPLE, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/annihilator/angry_demon.lua b/data-otservbr-global/monster/quests/annihilator/angry_demon.lua
index 3d9d9a4fe80..970638924ea 100644
--- a/data-otservbr-global/monster/quests/annihilator/angry_demon.lua
+++ b/data-otservbr-global/monster/quests/annihilator/angry_demon.lua
@@ -108,12 +108,19 @@ monster.loot = {
}
monster.attacks = {
- { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -520 },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = 0, maxDamage = -120, range = 7, target = false },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_FIREDAMAGE, minDamage = -150, maxDamage = -250, range = 7, radius = 7, shootEffect = CONST_ANI_FIRE, effect = CONST_ME_FIREAREA, target = true },
+ -- {name ="melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -520},
+ -- {name ="combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = 0, maxDamage = -120, range = 7, target = false},
+ -- {name ="combat", interval = 2000, chance = 20, type = COMBAT_FIREDAMAGE, minDamage = -150, maxDamage = -250, range = 7, radius = 7, shootEffect = CONST_ANI_FIRE, effect = CONST_ME_FIREAREA, target = true},
+ -- {name ="firefield", interval = 2000, chance = 10, range = 7, radius = 1, shootEffect = CONST_ANI_FIRE, target = true},
+ -- {name ="combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -300, maxDamage = -490, length = 8,spread = 13, effect = CONST_ME_PURPLEENERGY, target = false},
+ -- {name ="combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -210, maxDamage = -300, range = 1, shootEffect = CONST_ANI_ENERGY, target = false},
+ -- {name ="speed", interval = 2000, chance = 15, speedChange = -700, radius = 1, effect = CONST_ME_MAGIC_RED, target = true, duration = 30000}
+ { name = "melee", interval = 2000, chance = 500, minDamage = 0, maxDamage = -1940 },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = 0, maxDamage = -150, range = 7, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_FIREDAMAGE, minDamage = -650, maxDamage = -900, range = 7, radius = 7, shootEffect = CONST_ANI_FIRE, effect = CONST_ME_FIREAREA, target = true },
{ name = "firefield", interval = 2000, chance = 10, range = 7, radius = 1, shootEffect = CONST_ANI_FIRE, target = true },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -300, maxDamage = -490, length = 8, spread = 3, effect = CONST_ME_PURPLEENERGY, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -210, maxDamage = -300, range = 1, shootEffect = CONST_ANI_ENERGY, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_LIFEDRAIN, minDamage = -300, maxDamage = -800, length = 8, spread = 1, effect = CONST_ME_PURPLEENERGY, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -1050, maxDamage = -1500, range = 1, shootEffect = CONST_ANI_ENERGY, target = true },
{ name = "speed", interval = 2000, chance = 15, speedChange = -700, radius = 1, effect = CONST_ME_MAGIC_RED, target = true, duration = 30000 },
}
diff --git a/data-otservbr-global/monster/quests/bigfoots_burden/minion_of_versperoth.lua b/data-otservbr-global/monster/quests/bigfoots_burden/minion_of_versperoth.lua
index 380939429e9..b047898ea09 100644
--- a/data-otservbr-global/monster/quests/bigfoots_burden/minion_of_versperoth.lua
+++ b/data-otservbr-global/monster/quests/bigfoots_burden/minion_of_versperoth.lua
@@ -65,8 +65,8 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -390 },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -350, maxDamage = -700, length = 8, spread = 3, effect = CONST_ME_FIREATTACK, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -600, maxDamage = -1300, length = 8, spread = 3, effect = CONST_ME_MORTAREA, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -350, maxDamage = -700, length = 8, spread = 1, effect = CONST_ME_FIREATTACK, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -600, maxDamage = -1300, length = 8, spread = 1, effect = CONST_ME_MORTAREA, target = false },
{ name = "lava golem soulfire", interval = 2000, chance = 15, target = false },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -220, maxDamage = -350, radius = 4, effect = CONST_ME_FIREAREA, target = true },
{ name = "speed", interval = 2000, chance = 10, speedChange = -300, length = 5, spread = 3, effect = CONST_ME_BLOCKHIT, target = false, duration = 10000 },
diff --git a/data-otservbr-global/monster/quests/cults_of_tibia/animated_guzzlemaw.lua b/data-otservbr-global/monster/quests/cults_of_tibia/animated_guzzlemaw.lua
index 66088ce9f07..c781b4ba290 100644
--- a/data-otservbr-global/monster/quests/cults_of_tibia/animated_guzzlemaw.lua
+++ b/data-otservbr-global/monster/quests/cults_of_tibia/animated_guzzlemaw.lua
@@ -97,10 +97,10 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -499 },
-- bleed
{ name = "condition", type = CONDITION_BLEEDING, interval = 2000, chance = 10, minDamage = -500, maxDamage = -1000, radius = 3, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -900, length = 8, spread = 3, effect = CONST_ME_EXPLOSIONAREA, target = true },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -900, length = 8, spread = 1, effect = CONST_ME_EXPLOSIONAREA, target = true },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -500, radius = 2, shootEffect = CONST_ANI_LARGEROCK, effect = CONST_ME_STONES, target = true },
{ name = "speed", interval = 2000, chance = 15, speedChange = -800, radius = 6, effect = CONST_ME_MAGIC_RED, target = false, duration = 15000 },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = 0, maxDamage = -800, length = 8, spread = 3, effect = CONST_ME_MAGIC_RED, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = 0, maxDamage = -800, length = 8, spread = 1, effect = CONST_ME_MAGIC_RED, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/cults_of_tibia/animated_moohtant.lua b/data-otservbr-global/monster/quests/cults_of_tibia/animated_moohtant.lua
index 6823e0afed9..334fd68d2ea 100644
--- a/data-otservbr-global/monster/quests/cults_of_tibia/animated_moohtant.lua
+++ b/data-otservbr-global/monster/quests/cults_of_tibia/animated_moohtant.lua
@@ -85,7 +85,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 110, attack = 50 },
- { name = "combat", interval = 2000, chance = 13, type = COMBAT_PHYSICALDAMAGE, minDamage = -100, maxDamage = -230, length = 3, spread = 0, effect = CONST_ME_GROUNDSHAKER, target = false },
+ { name = "combat", interval = 2000, chance = 13, type = COMBAT_PHYSICALDAMAGE, minDamage = -100, maxDamage = -230, length = 3, spread = 1, effect = CONST_ME_GROUNDSHAKER, target = false },
{ name = "combat", interval = 2000, chance = 12, type = COMBAT_PHYSICALDAMAGE, minDamage = -100, maxDamage = -200, radius = 3, effect = CONST_ME_GROUNDSHAKER, target = false },
{ name = "combat", interval = 2000, chance = 19, type = COMBAT_LIFEDRAIN, minDamage = -50, maxDamage = -225, radius = 5, effect = CONST_ME_MAGIC_RED, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -150, maxDamage = -235, range = 7, radius = 4, shootEffect = CONST_ANI_LARGEROCK, effect = CONST_ME_EXPLOSIONAREA, target = true },
diff --git a/data-otservbr-global/monster/quests/cults_of_tibia/bosses/essence_of_malice.lua b/data-otservbr-global/monster/quests/cults_of_tibia/bosses/essence_of_malice.lua
index ef49131374d..5b6a669022d 100644
--- a/data-otservbr-global/monster/quests/cults_of_tibia/bosses/essence_of_malice.lua
+++ b/data-otservbr-global/monster/quests/cults_of_tibia/bosses/essence_of_malice.lua
@@ -99,7 +99,7 @@ monster.attacks = {
-- poison
{ name = "condition", type = CONDITION_POISON, interval = 2000, chance = 10, minDamage = -520, maxDamage = -780, range = 5, effect = CONST_ME_SMALLCLOUDS, target = true },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_LIFEDRAIN, minDamage = -80, maxDamage = -230, range = 7, effect = CONST_ME_MAGIC_RED, target = true },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -120, maxDamage = -250, length = 8, spread = 3, effect = CONST_ME_LOSEENERGY, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -120, maxDamage = -250, length = 8, spread = 1, effect = CONST_ME_LOSEENERGY, target = false },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_DEATHDAMAGE, minDamage = -110, maxDamage = -180, radius = 4, effect = CONST_ME_MORTAREA, target = false },
{ name = "speed", interval = 2000, chance = 20, speedChange = -800, range = 7, effect = CONST_ME_SMALLCLOUDS, target = true, duration = 30000 },
}
diff --git a/data-otservbr-global/monster/quests/cults_of_tibia/bosses/the_corruptor_of_souls.lua b/data-otservbr-global/monster/quests/cults_of_tibia/bosses/the_corruptor_of_souls.lua
index adc1b89d393..a2a2510e381 100644
--- a/data-otservbr-global/monster/quests/cults_of_tibia/bosses/the_corruptor_of_souls.lua
+++ b/data-otservbr-global/monster/quests/cults_of_tibia/bosses/the_corruptor_of_souls.lua
@@ -73,8 +73,8 @@ monster.attacks = {
{ name = "combat", interval = 2000, chance = 25, type = COMBAT_DEATHDAMAGE, minDamage = 0, maxDamage = -500, length = 9, spread = 7, effect = CONST_ME_SMALLCLOUDS, target = false },
{ name = "remorseless wave", interval = 2000, chance = 25, target = false },
{ name = "combat", interval = 2000, chance = 25, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -500, radius = 7, effect = CONST_ME_HITAREA, target = false },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -500, length = 9, spread = 3, effect = CONST_ME_STUN, target = false },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_DEATHDAMAGE, minDamage = 0, maxDamage = -500, length = 9, spread = 3, effect = CONST_ME_MORTAREA, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -500, length = 9, spread = 1, effect = CONST_ME_STUN, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_DEATHDAMAGE, minDamage = 0, maxDamage = -500, length = 9, spread = 1, effect = CONST_ME_MORTAREA, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/cults_of_tibia/bosses/the_remorseless_corruptor.lua b/data-otservbr-global/monster/quests/cults_of_tibia/bosses/the_remorseless_corruptor.lua
index ed10d546780..c9595cecc14 100644
--- a/data-otservbr-global/monster/quests/cults_of_tibia/bosses/the_remorseless_corruptor.lua
+++ b/data-otservbr-global/monster/quests/cults_of_tibia/bosses/the_remorseless_corruptor.lua
@@ -66,11 +66,11 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -150, maxDamage = -500 },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -500, length = 9, spread = 3, effect = CONST_ME_LOSEENERGY, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -500, length = 9, spread = 1, effect = CONST_ME_LOSEENERGY, target = false },
{ name = "remorseless wave", interval = 2000, chance = 25, target = false },
{ name = "combat", interval = 2000, chance = 25, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -500, radius = 7, effect = CONST_ME_HITAREA, target = false },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -500, length = 9, spread = 3, effect = CONST_ME_STUN, target = false },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_DEATHDAMAGE, minDamage = 0, maxDamage = -500, length = 9, spread = 3, effect = CONST_ME_MORTAREA, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -500, length = 9, spread = 1, effect = CONST_ME_STUN, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_DEATHDAMAGE, minDamage = 0, maxDamage = -500, length = 9, spread = 1, effect = CONST_ME_MORTAREA, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/cults_of_tibia/bosses/the_souldespoiler.lua b/data-otservbr-global/monster/quests/cults_of_tibia/bosses/the_souldespoiler.lua
index 35878eae9bf..fe775bbd1cb 100644
--- a/data-otservbr-global/monster/quests/cults_of_tibia/bosses/the_souldespoiler.lua
+++ b/data-otservbr-global/monster/quests/cults_of_tibia/bosses/the_souldespoiler.lua
@@ -125,7 +125,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -783 },
{ name = "combat", interval = 2000, chance = 60, type = COMBAT_DEATHDAMAGE, minDamage = -30, maxDamage = -181, range = 7, radius = 3, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_SMALLCLOUDS, target = true },
{ name = "combat", interval = 2000, chance = 50, type = COMBAT_ENERGYDAMAGE, minDamage = -210, maxDamage = -538, length = 7, spread = 2, effect = CONST_ME_PURPLEENERGY, target = false },
- { name = "combat", interval = 3000, chance = 30, type = COMBAT_DROWNDAMAGE, minDamage = -125, maxDamage = -640, length = 9, spread = 3, effect = CONST_ME_LOSEENERGY, target = false },
+ { name = "combat", interval = 3000, chance = 30, type = COMBAT_DROWNDAMAGE, minDamage = -125, maxDamage = -640, length = 9, spread = 1, effect = CONST_ME_LOSEENERGY, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/dangerous_depth/aggressive_matter.lua b/data-otservbr-global/monster/quests/dangerous_depth/aggressive_matter.lua
index 2ac350a7e0d..8678370837d 100644
--- a/data-otservbr-global/monster/quests/dangerous_depth/aggressive_matter.lua
+++ b/data-otservbr-global/monster/quests/dangerous_depth/aggressive_matter.lua
@@ -67,7 +67,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 58, attack = 50, condition = { type = CONDITION_POISON, totalDamage = 280, interval = 4000 } },
{ name = "combat", interval = 2000, chance = 13, type = COMBAT_EARTHDAMAGE, minDamage = -150, maxDamage = -250, range = 7, radius = 3, shootEffect = CONST_ANI_GLOOTHSPEAR, effect = CONST_ME_POISONAREA, target = true },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -150, maxDamage = -230, length = 6, spread = 3, effect = CONST_ME_POISONAREA, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -150, maxDamage = -230, length = 6, spread = 1, effect = CONST_ME_POISONAREA, target = false },
-- poison
{ name = "condition", type = CONDITION_POISON, interval = 2000, chance = 10, minDamage = -200, maxDamage = -300, range = 7, shootEffect = CONST_ANI_POISON, effect = CONST_ME_POISONAREA, target = true },
{ name = "rot elemental paralyze", interval = 2000, chance = 11, target = false },
diff --git a/data-otservbr-global/monster/quests/dangerous_depth/bosses/the_count_of_the_core.lua b/data-otservbr-global/monster/quests/dangerous_depth/bosses/the_count_of_the_core.lua
index 80878aaa360..9f477eb7a71 100644
--- a/data-otservbr-global/monster/quests/dangerous_depth/bosses/the_count_of_the_core.lua
+++ b/data-otservbr-global/monster/quests/dangerous_depth/bosses/the_count_of_the_core.lua
@@ -119,11 +119,11 @@ monster.loot = {
}
monster.attacks = {
- { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1500 },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_DEATHDAMAGE, minDamage = 0, maxDamage = -1500, range = 3, length = 9, spread = 3, effect = CONST_ME_MORTAREA, target = false },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_DEATHDAMAGE, minDamage = 0, maxDamage = -1500, range = 3, length = 9, spread = 4, effect = CONST_ME_SMALLCLOUDS, target = false },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -1500, radius = 8, effect = CONST_ME_HITAREA, target = false },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_DEATHDAMAGE, minDamage = 0, maxDamage = -1500, radius = 8, effect = CONST_ME_BLACKSMOKE, target = false },
+ { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -900 },
+ { name = "combat", interval = 6000, chance = 20, type = COMBAT_DEATHDAMAGE, minDamage = 0, maxDamage = -1500, range = 3, length = 9, spread = 1, effect = CONST_ME_MORTAREA, target = false },
+ { name = "combat", interval = 4000, chance = 20, type = COMBAT_DEATHDAMAGE, minDamage = 0, maxDamage = -1500, range = 3, length = 9, spread = 4, effect = CONST_ME_SMALLCLOUDS, target = false },
+ { name = "combat", interval = 4000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -1500, radius = 8, effect = CONST_ME_HITAREA, target = false },
+ { name = "combat", interval = 4000, chance = 15, type = COMBAT_DEATHDAMAGE, minDamage = 0, maxDamage = -1500, radius = 8, effect = CONST_ME_BLACKSMOKE, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/feaster_of_souls/irgix_the_flimsy.lua b/data-otservbr-global/monster/quests/feaster_of_souls/irgix_the_flimsy.lua
index ff5de342507..db4a3c7ce3c 100644
--- a/data-otservbr-global/monster/quests/feaster_of_souls/irgix_the_flimsy.lua
+++ b/data-otservbr-global/monster/quests/feaster_of_souls/irgix_the_flimsy.lua
@@ -83,7 +83,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -100, maxDamage = -500 },
{ name = "combat", interval = 1500, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -300, maxDamage = -500, radius = 3, shootEffect = CONST_ANI_ENVENOMEDARROW, target = true },
- { name = "combat", interval = 1500, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -300, maxDamage = -650, length = 4, spread = 3, effect = CONST_ME_ENERGYHIT, target = false },
+ { name = "combat", interval = 1500, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -300, maxDamage = -650, length = 4, spread = 1, effect = CONST_ME_ENERGYHIT, target = false },
{ name = "combat", interval = 1500, chance = 35, type = COMBAT_DEATHDAMAGE, minDamage = -300, maxDamage = -650, radius = 4, effect = CONST_ME_MORTAREA, target = false },
{ name = "combat", interval = 1500, chance = 20, type = COMBAT_ENERGYDAMAGE, minDamage = -300, maxDamage = -650, radius = 4, effect = CONST_ME_ENERGYAREA, target = false },
}
diff --git a/data-otservbr-global/monster/quests/feaster_of_souls/unaz_the_mean.lua b/data-otservbr-global/monster/quests/feaster_of_souls/unaz_the_mean.lua
index 3788bd28778..b58d4d4c9d6 100644
--- a/data-otservbr-global/monster/quests/feaster_of_souls/unaz_the_mean.lua
+++ b/data-otservbr-global/monster/quests/feaster_of_souls/unaz_the_mean.lua
@@ -82,7 +82,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -100, maxDamage = -500 },
{ name = "combat", interval = 1500, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -300, maxDamage = -500, radius = 3, shootEffect = CONST_ANI_ENVENOMEDARROW, target = true },
- { name = "combat", interval = 1500, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -300, maxDamage = -650, length = 4, spread = 3, effect = CONST_ME_ENERGYHIT, target = false },
+ { name = "combat", interval = 1500, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -300, maxDamage = -650, length = 4, spread = 1, effect = CONST_ME_ENERGYHIT, target = false },
{ name = "combat", interval = 1500, chance = 35, type = COMBAT_DEATHDAMAGE, minDamage = -300, maxDamage = -650, radius = 4, effect = CONST_ME_MORTAREA, target = false },
{ name = "combat", interval = 1500, chance = 20, type = COMBAT_ENERGYDAMAGE, minDamage = -300, maxDamage = -650, radius = 4, effect = CONST_ME_ENERGYAREA, target = false },
}
diff --git a/data-otservbr-global/monster/quests/feaster_of_souls/vok_the_freakish.lua b/data-otservbr-global/monster/quests/feaster_of_souls/vok_the_freakish.lua
index b6790c3f47a..68157a12226 100644
--- a/data-otservbr-global/monster/quests/feaster_of_souls/vok_the_freakish.lua
+++ b/data-otservbr-global/monster/quests/feaster_of_souls/vok_the_freakish.lua
@@ -80,7 +80,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -100, maxDamage = -500 },
{ name = "combat", interval = 1500, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -300, maxDamage = -500, radius = 3, shootEffect = CONST_ANI_ENVENOMEDARROW, target = true },
- { name = "combat", interval = 1500, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -300, maxDamage = -650, length = 4, spread = 3, effect = CONST_ME_ENERGYHIT, target = false },
+ { name = "combat", interval = 1500, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -300, maxDamage = -650, length = 4, spread = 1, effect = CONST_ME_ENERGYHIT, target = false },
{ name = "combat", interval = 1500, chance = 35, type = COMBAT_DEATHDAMAGE, minDamage = -300, maxDamage = -650, radius = 4, effect = CONST_ME_MORTAREA, target = true },
{ name = "combat", interval = 1500, chance = 20, type = COMBAT_EARTHDAMAGE, minDamage = -300, maxDamage = -650, radius = 4, effect = CONST_ME_GREEN_RINGS, target = true },
}
diff --git a/data-otservbr-global/monster/quests/ferumbras_ascendant/bosses/destabilized_ferumbras.lua b/data-otservbr-global/monster/quests/ferumbras_ascendant/bosses/destabilized_ferumbras.lua
index 83b60ad84fb..3d3917d00f6 100644
--- a/data-otservbr-global/monster/quests/ferumbras_ascendant/bosses/destabilized_ferumbras.lua
+++ b/data-otservbr-global/monster/quests/ferumbras_ascendant/bosses/destabilized_ferumbras.lua
@@ -83,7 +83,7 @@ monster.attacks = {
{ name = "combat", interval = 2000, chance = 16, type = COMBAT_MANADRAIN, minDamage = -225, maxDamage = -410, radius = 6, effect = CONST_ME_MAGIC_RED, target = false },
{ name = "combat", interval = 2000, chance = 21, type = COMBAT_LIFEDRAIN, minDamage = -200, maxDamage = -450, radius = 6, effect = CONST_ME_POFF, target = false },
{ name = "ferumbras soulfire", interval = 2000, chance = 20, range = 7, target = false },
- { name = "combat", interval = 2000, chance = 17, type = COMBAT_LIFEDRAIN, minDamage = -590, maxDamage = -1050, length = 8, spread = 3, effect = CONST_ME_HITBYPOISON, target = false },
+ { name = "combat", interval = 2000, chance = 17, type = COMBAT_LIFEDRAIN, minDamage = -590, maxDamage = -1050, length = 8, spread = 1, effect = CONST_ME_HITBYPOISON, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/ferumbras_ascendant/bosses/ferumbras_mortal_shell.lua b/data-otservbr-global/monster/quests/ferumbras_ascendant/bosses/ferumbras_mortal_shell.lua
index 27160109571..1c2944caabc 100644
--- a/data-otservbr-global/monster/quests/ferumbras_ascendant/bosses/ferumbras_mortal_shell.lua
+++ b/data-otservbr-global/monster/quests/ferumbras_ascendant/bosses/ferumbras_mortal_shell.lua
@@ -153,7 +153,7 @@ monster.attacks = {
{ name = "combat", interval = 2000, chance = 21, type = COMBAT_ENERGYDAMAGE, minDamage = -400, maxDamage = -650, radius = 9, effect = CONST_ME_ENERGYHIT, target = false },
{ name = "combat", interval = 2000, chance = 21, type = COMBAT_LIFEDRAIN, minDamage = -200, maxDamage = -450, radius = 6, effect = CONST_ME_POFF, target = false },
{ name = "ferumbras soulfire", interval = 2000, chance = 20, range = 7, target = false },
- { name = "combat", interval = 2000, chance = 17, type = COMBAT_LIFEDRAIN, minDamage = -590, maxDamage = -1050, length = 8, spread = 3, effect = CONST_ME_HITBYPOISON, target = false },
+ { name = "combat", interval = 2000, chance = 17, type = COMBAT_LIFEDRAIN, minDamage = -590, maxDamage = -1050, length = 8, spread = 1, effect = CONST_ME_HITBYPOISON, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/ferumbras_ascendant/bosses/ferumbras_soul_splinter.lua b/data-otservbr-global/monster/quests/ferumbras_ascendant/bosses/ferumbras_soul_splinter.lua
index 91b329140a0..c973c1a1020 100644
--- a/data-otservbr-global/monster/quests/ferumbras_ascendant/bosses/ferumbras_soul_splinter.lua
+++ b/data-otservbr-global/monster/quests/ferumbras_ascendant/bosses/ferumbras_soul_splinter.lua
@@ -83,7 +83,7 @@ monster.attacks = {
{ name = "combat", interval = 2000, chance = 16, type = COMBAT_MANADRAIN, minDamage = -225, maxDamage = -410, radius = 6, effect = CONST_ME_MAGIC_RED, target = false },
{ name = "combat", interval = 2000, chance = 21, type = COMBAT_LIFEDRAIN, minDamage = -200, maxDamage = -450, radius = 6, effect = CONST_ME_POFF, target = false },
{ name = "ferumbras soulfire", interval = 2000, chance = 20, range = 7, target = false },
- { name = "combat", interval = 2000, chance = 17, type = COMBAT_LIFEDRAIN, minDamage = -590, maxDamage = -1050, length = 8, spread = 3, effect = CONST_ME_HITBYPOISON, target = false },
+ { name = "combat", interval = 2000, chance = 17, type = COMBAT_LIFEDRAIN, minDamage = -590, maxDamage = -1050, length = 8, spread = 1, effect = CONST_ME_HITBYPOISON, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/ferumbras_ascendant/disgusting_ooze.lua b/data-otservbr-global/monster/quests/ferumbras_ascendant/disgusting_ooze.lua
index cd72c70e9fb..7760d93ed53 100644
--- a/data-otservbr-global/monster/quests/ferumbras_ascendant/disgusting_ooze.lua
+++ b/data-otservbr-global/monster/quests/ferumbras_ascendant/disgusting_ooze.lua
@@ -93,7 +93,7 @@ monster.attacks = {
-- poison
{ name = "condition", type = CONDITION_POISON, interval = 2000, chance = 10, minDamage = -300, maxDamage = -500, radius = 8, effect = CONST_ME_HITBYPOISON, target = false },
-- poison
- { name = "condition", type = CONDITION_POISON, interval = 2000, chance = 10, minDamage = -400, maxDamage = -725, length = 8, spread = 3, effect = CONST_ME_SMALLPLANTS, target = false },
+ { name = "condition", type = CONDITION_POISON, interval = 2000, chance = 10, minDamage = -400, maxDamage = -725, length = 8, spread = 1, effect = CONST_ME_SMALLPLANTS, target = false },
{ name = "combat", interval = 2000, chance = 14, type = COMBAT_EARTHDAMAGE, minDamage = -120, maxDamage = -170, radius = 3, effect = CONST_ME_POISONAREA, target = false },
}
diff --git a/data-otservbr-global/monster/quests/ferumbras_ascendant/lovely/lovely_frazzlemaw.lua b/data-otservbr-global/monster/quests/ferumbras_ascendant/lovely/lovely_frazzlemaw.lua
index 769b0695956..ab81f63766f 100644
--- a/data-otservbr-global/monster/quests/ferumbras_ascendant/lovely/lovely_frazzlemaw.lua
+++ b/data-otservbr-global/monster/quests/ferumbras_ascendant/lovely/lovely_frazzlemaw.lua
@@ -101,7 +101,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 90, attack = 80 },
{ name = "combat", interval = 2000, chance = 12, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -400, radius = 3, target = false },
- { name = "combat", interval = 2000, chance = 13, type = COMBAT_LIFEDRAIN, minDamage = -100, maxDamage = -700, length = 5, spread = 3, effect = CONST_ME_EXPLOSIONAREA, target = true },
+ { name = "combat", interval = 2000, chance = 13, type = COMBAT_LIFEDRAIN, minDamage = -100, maxDamage = -700, length = 5, spread = 1, effect = CONST_ME_EXPLOSIONAREA, target = true },
-- bleed
{ name = "condition", type = CONDITION_BLEEDING, interval = 2000, chance = 16, minDamage = -400, maxDamage = -600, radius = 2, shootEffect = CONST_ANI_LARGEROCK, effect = CONST_ME_STONES, target = true },
{ name = "frazzlemaw paralyze", interval = 2000, chance = 15, target = false },
diff --git a/data-otservbr-global/monster/quests/ferumbras_ascendant/lovely/lovely_yielothax.lua b/data-otservbr-global/monster/quests/ferumbras_ascendant/lovely/lovely_yielothax.lua
index 7e3b599fb98..7e1c7517be1 100644
--- a/data-otservbr-global/monster/quests/ferumbras_ascendant/lovely/lovely_yielothax.lua
+++ b/data-otservbr-global/monster/quests/ferumbras_ascendant/lovely/lovely_yielothax.lua
@@ -86,8 +86,8 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 70, attack = 50 },
- { name = "combat", interval = 2000, chance = 18, type = COMBAT_LIFEDRAIN, minDamage = -70, maxDamage = -130, length = 4, spread = 3, effect = CONST_ME_ENERGYAREA, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -50, maxDamage = -150, length = 5, spread = 3, effect = CONST_ME_MAGIC_RED, target = false },
+ { name = "combat", interval = 2000, chance = 18, type = COMBAT_LIFEDRAIN, minDamage = -70, maxDamage = -130, length = 4, spread = 1, effect = CONST_ME_ENERGYAREA, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -50, maxDamage = -150, length = 5, spread = 1, effect = CONST_ME_MAGIC_RED, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -75, maxDamage = -120, radius = 3, shootEffect = CONST_ANI_EARTH, effect = CONST_ME_HITBYPOISON, target = true },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -120, maxDamage = -215, radius = 3, effect = CONST_ME_HITBYPOISON, target = false },
-- poison
diff --git a/data-otservbr-global/monster/quests/ferumbras_ascendant/summons/enthralled_demon.lua b/data-otservbr-global/monster/quests/ferumbras_ascendant/summons/enthralled_demon.lua
index e170b7f0b0d..c77762c1013 100644
--- a/data-otservbr-global/monster/quests/ferumbras_ascendant/summons/enthralled_demon.lua
+++ b/data-otservbr-global/monster/quests/ferumbras_ascendant/summons/enthralled_demon.lua
@@ -72,7 +72,7 @@ monster.attacks = {
{ name = "combat", interval = 2000, chance = 7, type = COMBAT_ENERGYDAMAGE, minDamage = -210, maxDamage = -300, range = 1, radius = 1, shootEffect = CONST_ANI_ENERGY, effect = CONST_ME_ENERGYHIT, target = true },
{ name = "firefield", interval = 2000, chance = 14, range = 7, radius = 1, shootEffect = CONST_ANI_FIRE, target = true },
{ name = "demon paralyze", interval = 2000, chance = 10, range = 7, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -300, maxDamage = -480, length = 8, spread = 3, effect = CONST_ME_PURPLEENERGY, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -300, maxDamage = -480, length = 8, spread = 1, effect = CONST_ME_PURPLEENERGY, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/forgotten_knowledge/animated_sword.lua b/data-otservbr-global/monster/quests/forgotten_knowledge/animated_sword.lua
index 60c60ee20e8..23f2877b6c1 100644
--- a/data-otservbr-global/monster/quests/forgotten_knowledge/animated_sword.lua
+++ b/data-otservbr-global/monster/quests/forgotten_knowledge/animated_sword.lua
@@ -62,7 +62,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 50, attack = 50 },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_MANADRAIN, minDamage = -40, maxDamage = -160, radius = 6, effect = CONST_ME_MAGIC_BLUE, target = false },
{ name = "berserk", interval = 2000, chance = 15, minDamage = -40, maxDamage = -160, target = false },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = -40, maxDamage = -100, length = 4, spread = 3, effect = CONST_ME_ENERGYHIT, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = -40, maxDamage = -100, length = 4, spread = 1, effect = CONST_ME_ENERGYHIT, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/lady_tenebris.lua b/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/lady_tenebris.lua
index c7087a421ba..b75511b2dc8 100644
--- a/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/lady_tenebris.lua
+++ b/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/lady_tenebris.lua
@@ -115,7 +115,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -800, maxDamage = -1800 },
- { name = "combat", interval = 6000, chance = 13, type = COMBAT_DEATHDAMAGE, minDamage = -1200, maxDamage = -1500, length = 8, spread = 3, effect = CONST_ME_MORTAREA, target = false },
+ { name = "combat", interval = 6000, chance = 13, type = COMBAT_DEATHDAMAGE, minDamage = -1200, maxDamage = -1500, length = 8, spread = 1, effect = CONST_ME_MORTAREA, target = false },
{ name = "combat", interval = 2000, chance = 13, type = COMBAT_DEATHDAMAGE, minDamage = -400, maxDamage = -600, radius = 4, shootEffect = CONST_ANI_DEATH, effect = CONST_ME_SMALLCLOUDS, target = true },
{ name = "tenebris summon", interval = 2000, chance = 14, target = false },
{ name = "tenebris ultimate", interval = 15000, chance = 30, target = false },
diff --git a/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/lloyd.lua b/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/lloyd.lua
index 2cd9bdcd5b0..8abf24b5ef8 100644
--- a/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/lloyd.lua
+++ b/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/lloyd.lua
@@ -113,7 +113,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -200, maxDamage = -1400 },
- { name = "combat", interval = 2000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = -330, maxDamage = -660, length = 6, spread = 3, effect = CONST_ME_PURPLEENERGY, target = false },
+ { name = "combat", interval = 2000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = -330, maxDamage = -660, length = 6, spread = 1, effect = CONST_ME_PURPLEENERGY, target = false },
{ name = "lloyd wave", interval = 2000, chance = 12, minDamage = -430, maxDamage = -560, target = false },
{ name = "lloyd wave2", interval = 2000, chance = 12, minDamage = -230, maxDamage = -460, target = false },
{ name = "lloyd wave3", interval = 2000, chance = 12, minDamage = -430, maxDamage = -660, target = false },
diff --git a/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/mounted_thorn_knight.lua b/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/mounted_thorn_knight.lua
index f46efa303a8..d9e18471318 100644
--- a/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/mounted_thorn_knight.lua
+++ b/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/mounted_thorn_knight.lua
@@ -72,9 +72,9 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -600, maxDamage = -1000 },
- { name = "combat", interval = 2000, chance = 12, type = COMBAT_LIFEDRAIN, minDamage = -400, maxDamage = -700, length = 4, spread = 3, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 2000, chance = 12, type = COMBAT_MANADRAIN, minDamage = -1400, maxDamage = -1700, length = 9, spread = 3, effect = CONST_ME_CARNIPHILA, target = false },
- { name = "combat", interval = 2000, chance = 12, type = COMBAT_DEATHDAMAGE, minDamage = -400, maxDamage = -700, length = 9, spread = 3, effect = CONST_ME_MORTAREA, target = false },
+ { name = "combat", interval = 2000, chance = 12, type = COMBAT_LIFEDRAIN, minDamage = -400, maxDamage = -700, length = 4, spread = 1, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 2000, chance = 12, type = COMBAT_MANADRAIN, minDamage = -1400, maxDamage = -1700, length = 9, spread = 1, effect = CONST_ME_CARNIPHILA, target = false },
+ { name = "combat", interval = 2000, chance = 12, type = COMBAT_DEATHDAMAGE, minDamage = -400, maxDamage = -700, length = 9, spread = 1, effect = CONST_ME_MORTAREA, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -200, maxDamage = -250, radius = 10, effect = CONST_ME_BLOCKHIT, target = false },
}
diff --git a/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/the_blazing_time_guardian.lua b/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/the_blazing_time_guardian.lua
index dd4144c4aad..d81dfdc2e9a 100644
--- a/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/the_blazing_time_guardian.lua
+++ b/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/the_blazing_time_guardian.lua
@@ -92,12 +92,12 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 190, attack = 300 },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_DEATHDAMAGE, minDamage = -600, maxDamage = -780, range = 7, radius = 4, shootEffect = CONST_ANI_ENERGY, effect = CONST_ME_ENERGYHIT, target = true },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = -600, maxDamage = -780, length = 9, spread = 3, effect = CONST_ME_ENERGYHIT, target = false },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = -600, maxDamage = -780, length = 9, spread = 3, effect = CONST_ME_ENERGYAREA, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = -600, maxDamage = -780, length = 9, spread = 1, effect = CONST_ME_ENERGYHIT, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = -600, maxDamage = -780, length = 9, spread = 1, effect = CONST_ME_ENERGYAREA, target = false },
-- energy damage
{ name = "condition", type = CONDITION_ENERGY, interval = 2000, chance = 20, minDamage = -2000, maxDamage = -2000, radius = 7, effect = CONST_ME_BLOCKHIT, target = false },
-- bleed
- { name = "condition", type = CONDITION_BLEEDING, interval = 2000, chance = 20, minDamage = -2000, maxDamage = -2000, length = 9, spread = 3, effect = CONST_ME_BLOCKHIT, target = false },
+ { name = "condition", type = CONDITION_BLEEDING, interval = 2000, chance = 20, minDamage = -2000, maxDamage = -2000, length = 9, spread = 1, effect = CONST_ME_BLOCKHIT, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/the_enraged_thorn_knight.lua b/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/the_enraged_thorn_knight.lua
index 38d27e009af..3ced147e4a0 100644
--- a/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/the_enraged_thorn_knight.lua
+++ b/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/the_enraged_thorn_knight.lua
@@ -114,9 +114,9 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -600, maxDamage = -1000 },
- { name = "combat", interval = 2000, chance = 12, type = COMBAT_LIFEDRAIN, minDamage = -400, maxDamage = -700, length = 4, spread = 3, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 2000, chance = 12, type = COMBAT_MANADRAIN, minDamage = -1400, maxDamage = -1700, length = 9, spread = 3, effect = CONST_ME_CARNIPHILA, target = false },
- { name = "combat", interval = 2000, chance = 12, type = COMBAT_DEATHDAMAGE, minDamage = -400, maxDamage = -700, length = 9, spread = 3, effect = CONST_ME_MORTAREA, target = false },
+ { name = "combat", interval = 2000, chance = 12, type = COMBAT_LIFEDRAIN, minDamage = -400, maxDamage = -700, length = 4, spread = 1, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 2000, chance = 12, type = COMBAT_MANADRAIN, minDamage = -1400, maxDamage = -1700, length = 9, spread = 1, effect = CONST_ME_CARNIPHILA, target = false },
+ { name = "combat", interval = 2000, chance = 12, type = COMBAT_DEATHDAMAGE, minDamage = -400, maxDamage = -700, length = 9, spread = 1, effect = CONST_ME_MORTAREA, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -200, maxDamage = -250, radius = 10, effect = CONST_ME_BLOCKHIT, target = false },
}
diff --git a/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/the_freezing_time_guardian.lua b/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/the_freezing_time_guardian.lua
index ec4aac0f9fa..4c9cba80266 100644
--- a/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/the_freezing_time_guardian.lua
+++ b/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/the_freezing_time_guardian.lua
@@ -93,12 +93,12 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 190, attack = 300 },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_DEATHDAMAGE, minDamage = -600, maxDamage = -780, range = 7, radius = 4, shootEffect = CONST_ANI_ENERGY, effect = CONST_ME_ENERGYHIT, target = true },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = -600, maxDamage = -780, length = 9, spread = 3, effect = CONST_ME_ENERGYHIT, target = false },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = -600, maxDamage = -780, length = 9, spread = 3, effect = CONST_ME_ENERGYAREA, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = -600, maxDamage = -780, length = 9, spread = 1, effect = CONST_ME_ENERGYHIT, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = -600, maxDamage = -780, length = 9, spread = 1, effect = CONST_ME_ENERGYAREA, target = false },
-- energy damage
{ name = "condition", type = CONDITION_ENERGY, interval = 2000, chance = 20, minDamage = -2000, maxDamage = -2000, radius = 7, effect = CONST_ME_BLOCKHIT, target = false },
-- bleed
- { name = "condition", type = CONDITION_BLEEDING, interval = 2000, chance = 20, minDamage = -2000, maxDamage = -2000, length = 9, spread = 3, effect = CONST_ME_BLOCKHIT, target = false },
+ { name = "condition", type = CONDITION_BLEEDING, interval = 2000, chance = 20, minDamage = -2000, maxDamage = -2000, length = 9, spread = 1, effect = CONST_ME_BLOCKHIT, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/the_last_lore_keeper.lua b/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/the_last_lore_keeper.lua
index a875379d558..dac92740cf2 100644
--- a/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/the_last_lore_keeper.lua
+++ b/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/the_last_lore_keeper.lua
@@ -130,10 +130,10 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 140, attack = 80 },
- { name = "combat", interval = 2000, chance = 7, type = COMBAT_PHYSICALDAMAGE, minDamage = -650, maxDamage = -900, length = 8, spread = 3, effect = CONST_ME_EXPLOSIONAREA, target = false },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_LIFEDRAIN, minDamage = -850, maxDamage = -2260, length = 10, spread = 3, effect = CONST_ME_MAGIC_RED, target = false },
+ { name = "combat", interval = 2000, chance = 7, type = COMBAT_PHYSICALDAMAGE, minDamage = -650, maxDamage = -900, length = 8, spread = 1, effect = CONST_ME_EXPLOSIONAREA, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_LIFEDRAIN, minDamage = -850, maxDamage = -2260, length = 10, spread = 1, effect = CONST_ME_MAGIC_RED, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_LIFEDRAIN, minDamage = -640, maxDamage = -800, radius = 5, effect = CONST_ME_SMALLCLOUDS, target = false },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_ENERGYDAMAGE, minDamage = -420, maxDamage = -954, length = 8, spread = 3, effect = CONST_ME_PURPLEENERGY, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_ENERGYDAMAGE, minDamage = -420, maxDamage = -954, length = 8, spread = 1, effect = CONST_ME_PURPLEENERGY, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_EARTHDAMAGE, minDamage = -640, maxDamage = -800, radius = 5, effect = CONST_ME_STONES, target = true },
{ name = "medusa paralyze", interval = 2000, chance = 20, target = false },
}
diff --git a/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/the_shielded_thorn_knight.lua b/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/the_shielded_thorn_knight.lua
index f3539476809..d9e1c1c93ab 100644
--- a/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/the_shielded_thorn_knight.lua
+++ b/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/the_shielded_thorn_knight.lua
@@ -73,9 +73,9 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -600, maxDamage = -1000 },
- { name = "combat", interval = 2000, chance = 12, type = COMBAT_LIFEDRAIN, minDamage = -400, maxDamage = -700, length = 4, spread = 3, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 2000, chance = 12, type = COMBAT_MANADRAIN, minDamage = -1400, maxDamage = -1700, length = 9, spread = 3, effect = CONST_ME_CARNIPHILA, target = false },
- { name = "combat", interval = 2000, chance = 12, type = COMBAT_DEATHDAMAGE, minDamage = -400, maxDamage = -700, length = 9, spread = 3, effect = CONST_ME_MORTAREA, target = false },
+ { name = "combat", interval = 2000, chance = 12, type = COMBAT_LIFEDRAIN, minDamage = -400, maxDamage = -700, length = 4, spread = 1, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 2000, chance = 12, type = COMBAT_MANADRAIN, minDamage = -1400, maxDamage = -1700, length = 9, spread = 1, effect = CONST_ME_CARNIPHILA, target = false },
+ { name = "combat", interval = 2000, chance = 12, type = COMBAT_DEATHDAMAGE, minDamage = -400, maxDamage = -700, length = 9, spread = 1, effect = CONST_ME_MORTAREA, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -200, maxDamage = -250, radius = 10, effect = CONST_ME_BLOCKHIT, target = false },
}
diff --git a/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/the_time_guardian.lua b/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/the_time_guardian.lua
index 53d7eee517a..11abce175ea 100644
--- a/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/the_time_guardian.lua
+++ b/data-otservbr-global/monster/quests/forgotten_knowledge/bosses/the_time_guardian.lua
@@ -114,12 +114,12 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 190, attack = 300 },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_DEATHDAMAGE, minDamage = -600, maxDamage = -780, range = 7, radius = 4, shootEffect = CONST_ANI_ENERGY, effect = CONST_ME_ENERGYHIT, target = true },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = -600, maxDamage = -780, length = 9, spread = 3, effect = CONST_ME_ENERGYHIT, target = false },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = -600, maxDamage = -780, length = 9, spread = 3, effect = CONST_ME_ENERGYAREA, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = -600, maxDamage = -780, length = 9, spread = 1, effect = CONST_ME_ENERGYHIT, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = -600, maxDamage = -780, length = 9, spread = 1, effect = CONST_ME_ENERGYAREA, target = false },
-- energy damage
{ name = "condition", type = CONDITION_ENERGY, interval = 2000, chance = 20, minDamage = -2000, maxDamage = -2000, radius = 7, effect = CONST_ME_BLOCKHIT, target = false },
-- bleed
- { name = "condition", type = CONDITION_BLEEDING, interval = 2000, chance = 20, minDamage = -2000, maxDamage = -2000, length = 9, spread = 3, effect = CONST_ME_BLOCKHIT, target = false },
+ { name = "condition", type = CONDITION_BLEEDING, interval = 2000, chance = 20, minDamage = -2000, maxDamage = -2000, length = 9, spread = 1, effect = CONST_ME_BLOCKHIT, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/forgotten_knowledge/sword_of_vengeance.lua b/data-otservbr-global/monster/quests/forgotten_knowledge/sword_of_vengeance.lua
index 4bcd71b8769..80c25dc971b 100644
--- a/data-otservbr-global/monster/quests/forgotten_knowledge/sword_of_vengeance.lua
+++ b/data-otservbr-global/monster/quests/forgotten_knowledge/sword_of_vengeance.lua
@@ -62,7 +62,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -0, maxDamage = -242 },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_MANADRAIN, minDamage = -40, maxDamage = -160, radius = 6, effect = CONST_ME_MAGIC_BLUE, target = false },
{ name = "berserk", interval = 2000, chance = 15, minDamage = -40, maxDamage = -160, target = false },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = -40, maxDamage = -100, length = 4, spread = 3, effect = CONST_ME_ENERGYHIT, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = -40, maxDamage = -100, length = 4, spread = 1, effect = CONST_ME_ENERGYHIT, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/forgotten_knowledge/the_distorted_astral_source.lua b/data-otservbr-global/monster/quests/forgotten_knowledge/the_distorted_astral_source.lua
index bf4cd796088..b07416e40b9 100644
--- a/data-otservbr-global/monster/quests/forgotten_knowledge/the_distorted_astral_source.lua
+++ b/data-otservbr-global/monster/quests/forgotten_knowledge/the_distorted_astral_source.lua
@@ -66,7 +66,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -330 },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -500, range = 7, radius = 6, shootEffect = CONST_ANI_ENERGYBALL, effect = CONST_ME_PURPLEENERGY, target = true },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -500, range = 7, radius = 6, shootEffect = CONST_ANI_ENERGY, effect = CONST_ME_ENERGYHIT, target = true },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -400, length = 5, spread = 3, effect = CONST_ME_ENERGYHIT, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -400, length = 5, spread = 1, effect = CONST_ME_ENERGYHIT, target = false },
{ name = "combat", interval = 2000, chance = 25, type = COMBAT_MANADRAIN, minDamage = -200, maxDamage = -400, radius = 5, effect = CONST_ME_MAGIC_BLUE, target = false },
}
diff --git a/data-otservbr-global/monster/quests/forgotten_knowledge/thorn_minion.lua b/data-otservbr-global/monster/quests/forgotten_knowledge/thorn_minion.lua
index 84c22d0cea8..55b09d59220 100644
--- a/data-otservbr-global/monster/quests/forgotten_knowledge/thorn_minion.lua
+++ b/data-otservbr-global/monster/quests/forgotten_knowledge/thorn_minion.lua
@@ -69,7 +69,7 @@ monster.attacks = {
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -100, maxDamage = -195, range = 7, shootEffect = CONST_ANI_POISON, effect = CONST_ME_GREEN_RINGS, target = false },
{ name = "speed", interval = 2000, chance = 15, speedChange = -800, range = 7, shootEffect = CONST_ANI_POISON, effect = CONST_ME_GREEN_RINGS, target = false, duration = 30000 },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -200, maxDamage = -280, radius = 4, effect = CONST_ME_GROUNDSHAKER, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -200, maxDamage = -400, length = 4, spread = 3, effect = CONST_ME_CARNIPHILA, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -200, maxDamage = -400, length = 4, spread = 1, effect = CONST_ME_CARNIPHILA, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/forgotten_knowledge/unbound_demon.lua b/data-otservbr-global/monster/quests/forgotten_knowledge/unbound_demon.lua
index e9c8e24197d..3a5936460f8 100644
--- a/data-otservbr-global/monster/quests/forgotten_knowledge/unbound_demon.lua
+++ b/data-otservbr-global/monster/quests/forgotten_knowledge/unbound_demon.lua
@@ -66,7 +66,7 @@ monster.attacks = {
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = 0, maxDamage = -120, range = 7, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_FIREDAMAGE, minDamage = -150, maxDamage = -250, range = 7, radius = 7, shootEffect = CONST_ANI_FIRE, effect = CONST_ME_FIREAREA, target = true },
{ name = "firefield", interval = 2000, chance = 10, range = 7, radius = 1, shootEffect = CONST_ANI_FIRE, target = true },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -300, maxDamage = -490, length = 8, spread = 0, effect = CONST_ME_PURPLEENERGY, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -300, maxDamage = -490, length = 8, spread = 1, effect = CONST_ME_PURPLEENERGY, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -210, maxDamage = -300, range = 1, shootEffect = CONST_ANI_ENERGY, target = false },
{ name = "speed", interval = 2000, chance = 15, speedChange = -700, radius = 1, effect = CONST_ME_MAGIC_RED, target = true, duration = 30000 },
}
diff --git a/data-otservbr-global/monster/quests/forgotten_knowledge/unbound_demon_outcast.lua b/data-otservbr-global/monster/quests/forgotten_knowledge/unbound_demon_outcast.lua
index 3bd48a8d070..f6d7940fbb6 100644
--- a/data-otservbr-global/monster/quests/forgotten_knowledge/unbound_demon_outcast.lua
+++ b/data-otservbr-global/monster/quests/forgotten_knowledge/unbound_demon_outcast.lua
@@ -70,8 +70,8 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -400 },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -250, maxDamage = -450, length = 6, spread = 3, effect = CONST_ME_PURPLEENERGY, target = true },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -350, maxDamage = -550, length = 8, spread = 3, effect = CONST_ME_YELLOWENERGY, target = true },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -250, maxDamage = -450, length = 6, spread = 1, effect = CONST_ME_PURPLEENERGY, target = true },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -350, maxDamage = -550, length = 8, spread = 1, effect = CONST_ME_YELLOWENERGY, target = true },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_ENERGYDAMAGE, minDamage = -100, maxDamage = -250, radius = 3, effect = CONST_ME_ENERGYHIT, target = true },
{ name = "demon outcast skill reducer", interval = 2000, chance = 10, range = 5, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -80, maxDamage = -150, radius = 4, effect = CONST_ME_MAGIC_GREEN, target = false },
diff --git a/data-otservbr-global/monster/quests/grave_danger/bosses/count_vlarkorth.lua b/data-otservbr-global/monster/quests/grave_danger/bosses/count_vlarkorth.lua
index ebe04c8ec92..c8d0a2b6596 100644
--- a/data-otservbr-global/monster/quests/grave_danger/bosses/count_vlarkorth.lua
+++ b/data-otservbr-global/monster/quests/grave_danger/bosses/count_vlarkorth.lua
@@ -111,8 +111,8 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -800, effect = CONST_ME_DRAWBLOOD },
{ name = "combat", interval = 2300, chance = 20, type = COMBAT_LIFEDRAIN, minDamage = -250, maxDamage = -350, range = 1, effect = CONST_ME_MAGIC_RED, target = true },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_MANADRAIN, minDamage = -1, maxDamage = -250, length = 7, spread = 3, effect = CONST_ME_SMALLCLOUDS, target = false },
- { name = "combat", interval = 2500, chance = 20, type = COMBAT_FIREDAMAGE, minDamage = -500, maxDamage = -1500, length = 7, spread = 0, effect = CONST_ME_HITBYFIRE, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_MANADRAIN, minDamage = -1, maxDamage = -250, length = 7, spread = 1, effect = CONST_ME_SMALLCLOUDS, target = false },
+ { name = "combat", interval = 2500, chance = 20, type = COMBAT_FIREDAMAGE, minDamage = -500, maxDamage = -1500, length = 7, spread = 1, effect = CONST_ME_HITBYFIRE, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/grave_danger/bosses/duke_krule.lua b/data-otservbr-global/monster/quests/grave_danger/bosses/duke_krule.lua
index 0760491d1bc..6955a82c433 100644
--- a/data-otservbr-global/monster/quests/grave_danger/bosses/duke_krule.lua
+++ b/data-otservbr-global/monster/quests/grave_danger/bosses/duke_krule.lua
@@ -103,8 +103,8 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -900 },
- { name = "combat", interval = 3500, chance = 37, type = COMBAT_PHYSICALDAMAGE, minDamage = -700, maxDamage = -1200, length = 7, spread = 3, effect = CONST_ME_BLOCKHIT, target = false },
- { name = "combat", interval = 2500, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -400, maxDamage = -1000, length = 7, spread = 0, effect = CONST_ME_BLOCKHIT, target = false },
+ { name = "combat", interval = 3500, chance = 37, type = COMBAT_PHYSICALDAMAGE, minDamage = -700, maxDamage = -1200, length = 7, spread = 1, effect = CONST_ME_BLOCKHIT, target = false },
+ { name = "combat", interval = 2500, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -400, maxDamage = -1000, length = 7, spread = 1, effect = CONST_ME_BLOCKHIT, target = false },
{ name = "combat", interval = 4200, chance = 40, type = COMBAT_FIREDAMAGE, minDamage = -300, maxDamage = -500, radius = 9, effect = CONST_ME_HITBYFIRE, target = false },
}
diff --git a/data-otservbr-global/monster/quests/grave_danger/bosses/earl_osam.lua b/data-otservbr-global/monster/quests/grave_danger/bosses/earl_osam.lua
index c996116a336..250f5d8547a 100644
--- a/data-otservbr-global/monster/quests/grave_danger/bosses/earl_osam.lua
+++ b/data-otservbr-global/monster/quests/grave_danger/bosses/earl_osam.lua
@@ -106,7 +106,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1000, effect = CONST_ME_DRAWBLOOD },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_ICEDAMAGE, minDamage = -400, maxDamage = -1000, length = 7, spread = 0, effect = CONST_ME_ICEATTACK, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_ICEDAMAGE, minDamage = -400, maxDamage = -1000, length = 7, spread = 1, effect = CONST_ME_ICEATTACK, target = false },
{ name = "ice chain", interval = 2500, chance = 25, minDamage = -260, maxDamage = -360, range = 3, target = true },
{ name = "combat", interval = 3500, chance = 37, type = COMBAT_EARTHDAMAGE, minDamage = -400, maxDamage = -1000, length = 7, spread = 2, effect = CONST_ME_POISONAREA, target = false },
}
diff --git a/data-otservbr-global/monster/quests/grave_danger/bosses/king_zelos.lua b/data-otservbr-global/monster/quests/grave_danger/bosses/king_zelos.lua
index 0201e821448..3d2a50ff36f 100644
--- a/data-otservbr-global/monster/quests/grave_danger/bosses/king_zelos.lua
+++ b/data-otservbr-global/monster/quests/grave_danger/bosses/king_zelos.lua
@@ -84,8 +84,8 @@ monster.loot = {
monster.attacks = {
{ name = "melee", type = COMBAT_PHYSICALDAMAGE, interval = 2000, minDamage = -900, maxDamage = -2700 },
- { name = "combat", type = COMBAT_FIREDAMAGE, interval = 2000, chance = 15, length = 8, spread = 0, minDamage = -1200, maxDamage = -3200, effect = CONST_ME_HITBYFIRE },
- { name = "combat", type = COMBAT_LIFEDRAIN, interval = 2000, chance = 10, length = 8, spread = 3, minDamage = -600, maxDamage = -1600, effect = CONST_ME_SMALLCLOUDS },
+ { name = "combat", type = COMBAT_FIREDAMAGE, interval = 2000, chance = 15, length = 8, spread = 1, minDamage = -1200, maxDamage = -3200, effect = CONST_ME_HITBYFIRE },
+ { name = "combat", type = COMBAT_LIFEDRAIN, interval = 2000, chance = 10, length = 8, spread = 1, minDamage = -600, maxDamage = -1600, effect = CONST_ME_SMALLCLOUDS },
{ name = "combat", type = COMBAT_DEATHDAMAGE, interval = 2000, chance = 30, radius = 6, minDamage = -1200, maxDamage = -1500, effect = CONST_ME_MORTAREA, target = false },
{ name = "combat", type = COMBAT_DEATHDAMAGE, interval = 2000, chance = 20, length = 8, minDamage = -1700, maxDamage = -2000, effect = CONST_ME_MORTAREA, target = false },
}
diff --git a/data-otservbr-global/monster/quests/grave_danger/bosses/lord_azaram.lua b/data-otservbr-global/monster/quests/grave_danger/bosses/lord_azaram.lua
index 701a0b6f92b..6b40f5348c8 100644
--- a/data-otservbr-global/monster/quests/grave_danger/bosses/lord_azaram.lua
+++ b/data-otservbr-global/monster/quests/grave_danger/bosses/lord_azaram.lua
@@ -109,7 +109,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1000, effect = CONST_ME_DRAWBLOOD },
{ name = "lord azaram wave", interval = 3500, chance = 50, minDamage = -360, maxDamage = -900 },
- { name = "combat", interval = 2700, chance = 20, type = COMBAT_EARTHDAMAGE, minDamage = -500, maxDamage = -1200, length = 7, spread = 0, effect = CONST_ME_STONES, target = false },
+ { name = "combat", interval = 2700, chance = 20, type = COMBAT_EARTHDAMAGE, minDamage = -500, maxDamage = -1200, length = 7, spread = 1, effect = CONST_ME_STONES, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/grave_danger/bosses/sir_baeloc.lua b/data-otservbr-global/monster/quests/grave_danger/bosses/sir_baeloc.lua
index 042ce32e981..cedfea01aee 100644
--- a/data-otservbr-global/monster/quests/grave_danger/bosses/sir_baeloc.lua
+++ b/data-otservbr-global/monster/quests/grave_danger/bosses/sir_baeloc.lua
@@ -104,7 +104,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -900, effect = CONST_ME_DRAWBLOOD },
- { name = "combat", interval = 3100, chance = 37, type = COMBAT_PHYSICALDAMAGE, minDamage = -400, maxDamage = -1000, length = 7, spread = 0, effect = CONST_ME_DRAWBLOOD, target = false },
+ { name = "combat", interval = 3100, chance = 37, type = COMBAT_PHYSICALDAMAGE, minDamage = -400, maxDamage = -1000, length = 7, spread = 1, effect = CONST_ME_DRAWBLOOD, target = false },
{ name = "combat", interval = 2500, chance = 35, type = COMBAT_PHYSICALDAMAGE, minDamage = -350, maxDamage = -625, range = 5, shootEffect = CONST_ANI_WHIRLWINDAXE, effect = CONST_ME_DRAWBLOOD, target = true },
{ name = "combat", interval = 2700, chance = 30, type = COMBAT_DEATHDAMAGE, minDamage = -180, maxDamage = -250, range = 1, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_MORTAREA, target = true },
}
diff --git a/data-otservbr-global/monster/quests/grave_danger/bosses/sir_nictros.lua b/data-otservbr-global/monster/quests/grave_danger/bosses/sir_nictros.lua
index 8637363a949..fcb5c8599aa 100644
--- a/data-otservbr-global/monster/quests/grave_danger/bosses/sir_nictros.lua
+++ b/data-otservbr-global/monster/quests/grave_danger/bosses/sir_nictros.lua
@@ -90,7 +90,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -900, effect = CONST_ME_DRAWBLOOD },
- { name = "combat", interval = 3100, chance = 37, type = COMBAT_PHYSICALDAMAGE, minDamage = -400, maxDamage = -1000, length = 7, spread = 0, effect = CONST_ME_DRAWBLOOD, target = false },
+ { name = "combat", interval = 3100, chance = 37, type = COMBAT_PHYSICALDAMAGE, minDamage = -400, maxDamage = -1000, length = 7, spread = 1, effect = CONST_ME_DRAWBLOOD, target = false },
{ name = "combat", interval = 2500, chance = 35, type = COMBAT_PHYSICALDAMAGE, minDamage = -350, maxDamage = -625, range = 5, shootEffect = CONST_ANI_WHIRLWINDAXE, effect = CONST_ME_DRAWBLOOD, target = true },
{ name = "combat", interval = 2700, chance = 30, type = COMBAT_DEATHDAMAGE, minDamage = -180, maxDamage = -250, range = 1, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_MORTAREA, target = true },
}
diff --git a/data-otservbr-global/monster/quests/grave_danger/shard_of_magnor.lua b/data-otservbr-global/monster/quests/grave_danger/shard_of_magnor.lua
index fb284fb52d1..84897a75ae3 100644
--- a/data-otservbr-global/monster/quests/grave_danger/shard_of_magnor.lua
+++ b/data-otservbr-global/monster/quests/grave_danger/shard_of_magnor.lua
@@ -63,8 +63,8 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -200, maxDamage = -600 },
- { name = "combat", interval = 2000, chance = 50, type = COMBAT_MANADRAIN, minDamage = -400, maxDamage = -1000, length = 7, spread = 3, effect = CONST_ME_STONES, target = false },
- { name = "combat", interval = 2000, chance = 70, type = COMBAT_PHYSICALDAMAGE, minDamage = -400, maxDamage = -1000, length = 7, spread = 3, effect = CONST_ME_POISONAREA, target = false },
+ { name = "combat", interval = 2000, chance = 50, type = COMBAT_MANADRAIN, minDamage = -400, maxDamage = -1000, length = 7, spread = 1, effect = CONST_ME_STONES, target = false },
+ { name = "combat", interval = 2000, chance = 70, type = COMBAT_PHYSICALDAMAGE, minDamage = -400, maxDamage = -1000, length = 7, spread = 1, effect = CONST_ME_POISONAREA, target = false },
{ name = "combat", interval = 2000, chance = 0, type = COMBAT_ENERGYDAMAGE, minDamage = -400, maxDamage = -650, radius = 3, effect = CONST_ME_GREEN_ENERGY_SPARK, target = true },
}
diff --git a/data-otservbr-global/monster/quests/grave_danger/vampiric_blood.lua b/data-otservbr-global/monster/quests/grave_danger/vampiric_blood.lua
index 72c91a71ce4..fec9c98c304 100644
--- a/data-otservbr-global/monster/quests/grave_danger/vampiric_blood.lua
+++ b/data-otservbr-global/monster/quests/grave_danger/vampiric_blood.lua
@@ -63,8 +63,8 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
- { name = "combat", interval = 1000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -250, maxDamage = -300, range = 7, length = 3, spread = 3, effect = CONST_ME_HITBYFIRE, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_FIREDAMAGE, minDamage = 0, maxDamage = -100, range = 7, length = 6, spread = 3, effect = CONST_ME_HITBYFIRE, target = false },
+ { name = "combat", interval = 1000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -250, maxDamage = -300, range = 7, length = 3, spread = 1, effect = CONST_ME_HITBYFIRE, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_FIREDAMAGE, minDamage = 0, maxDamage = -100, range = 7, length = 6, spread = 1, effect = CONST_ME_HITBYFIRE, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/heart_of_destruction/aftershock.lua b/data-otservbr-global/monster/quests/heart_of_destruction/aftershock.lua
index 2a23f77dc87..936e8dad57b 100644
--- a/data-otservbr-global/monster/quests/heart_of_destruction/aftershock.lua
+++ b/data-otservbr-global/monster/quests/heart_of_destruction/aftershock.lua
@@ -70,7 +70,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -800 },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_ENERGYDAMAGE, minDamage = -350, maxDamage = -900, length = 10, spread = 3, effect = CONST_ME_BIGCLOUDS, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_ENERGYDAMAGE, minDamage = -350, maxDamage = -900, length = 10, spread = 1, effect = CONST_ME_BIGCLOUDS, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_DEATHDAMAGE, minDamage = -250, maxDamage = -500, radius = 4, effect = CONST_ME_SMALLCLOUDS, target = true },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -250, maxDamage = -750, radius = 8, effect = CONST_ME_BLOCKHIT, target = false },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_LIFEDRAIN, minDamage = -150, maxDamage = -400, radius = 5, effect = CONST_ME_MAGIC_BLUE, target = true },
diff --git a/data-otservbr-global/monster/quests/heart_of_destruction/anomaly.lua b/data-otservbr-global/monster/quests/heart_of_destruction/anomaly.lua
index 0eb67d63fe6..cfc30506c50 100644
--- a/data-otservbr-global/monster/quests/heart_of_destruction/anomaly.lua
+++ b/data-otservbr-global/monster/quests/heart_of_destruction/anomaly.lua
@@ -113,8 +113,8 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -300, maxDamage = -1400 },
{ name = "combat", interval = 2000, chance = 25, type = COMBAT_DEATHDAMAGE, minDamage = -300, maxDamage = -600, radius = 4, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_MORTAREA, target = true },
{ name = "anomaly wave", interval = 2000, chance = 25, minDamage = -500, maxDamage = -900, target = false },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_PHYSICALDAMAGE, minDamage = -600, maxDamage = -1000, length = 9, spread = 3, effect = CONST_ME_EXPLOSIONHIT, target = false },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_LIFEDRAIN, minDamage = -300, maxDamage = -600, length = 9, spread = 3, effect = CONST_ME_MAGIC_RED, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_PHYSICALDAMAGE, minDamage = -600, maxDamage = -1000, length = 9, spread = 1, effect = CONST_ME_EXPLOSIONHIT, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_LIFEDRAIN, minDamage = -300, maxDamage = -600, length = 9, spread = 1, effect = CONST_ME_MAGIC_RED, target = false },
{ name = "anomaly break", interval = 2000, chance = 40, target = false },
}
diff --git a/data-otservbr-global/monster/quests/heart_of_destruction/charged_anomaly.lua b/data-otservbr-global/monster/quests/heart_of_destruction/charged_anomaly.lua
index 7b36447eb3a..b7606ff39af 100644
--- a/data-otservbr-global/monster/quests/heart_of_destruction/charged_anomaly.lua
+++ b/data-otservbr-global/monster/quests/heart_of_destruction/charged_anomaly.lua
@@ -70,8 +70,8 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -900, maxDamage = -2100 },
{ name = "combat", interval = 2000, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -500, maxDamage = -900, radius = 3, effect = CONST_ME_BIGCLOUDS, target = false },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -350, maxDamage = -700, length = 7, spread = 3, effect = CONST_ME_ENERGYAREA, target = false },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -500, maxDamage = -800, length = 7, spread = 3, effect = CONST_ME_YELLOWENERGY, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -350, maxDamage = -700, length = 7, spread = 1, effect = CONST_ME_ENERGYAREA, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -500, maxDamage = -800, length = 7, spread = 1, effect = CONST_ME_YELLOWENERGY, target = false },
{ name = "anomaly break", interval = 2000, chance = 40, target = false },
{ name = "charge vortex", interval = 9000, chance = 100, target = false },
}
diff --git a/data-otservbr-global/monster/quests/heart_of_destruction/charging_outburst.lua b/data-otservbr-global/monster/quests/heart_of_destruction/charging_outburst.lua
index f003c75459a..bb1ae1d2e9e 100644
--- a/data-otservbr-global/monster/quests/heart_of_destruction/charging_outburst.lua
+++ b/data-otservbr-global/monster/quests/heart_of_destruction/charging_outburst.lua
@@ -72,7 +72,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -300, maxDamage = -1800 },
{ name = "combat", interval = 2000, chance = 25, type = COMBAT_DEATHDAMAGE, minDamage = -300, maxDamage = -500, radius = 3, effect = CONST_ME_ENERGYHIT, target = false },
{ name = "combat", interval = 2000, chance = 25, type = COMBAT_PHYSICALDAMAGE, minDamage = -450, maxDamage = -900, radius = 8, effect = CONST_ME_BLOCKHIT, target = false },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_PHYSICALDAMAGE, minDamage = -600, maxDamage = -1000, length = 8, spread = 3, effect = CONST_ME_BLOCKHIT, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_PHYSICALDAMAGE, minDamage = -600, maxDamage = -1000, length = 8, spread = 1, effect = CONST_ME_BLOCKHIT, target = false },
{ name = "anomaly break", interval = 2000, chance = 40, target = false },
{ name = "outburst explode", interval = 10000, chance = 100, minDamage = -1500, maxDamage = -2000, target = false },
}
diff --git a/data-otservbr-global/monster/quests/heart_of_destruction/depolarized_crackler.lua b/data-otservbr-global/monster/quests/heart_of_destruction/depolarized_crackler.lua
index 2387233e8b7..478feac779f 100644
--- a/data-otservbr-global/monster/quests/heart_of_destruction/depolarized_crackler.lua
+++ b/data-otservbr-global/monster/quests/heart_of_destruction/depolarized_crackler.lua
@@ -72,7 +72,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -100, maxDamage = -400 },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -180, maxDamage = -500, radius = 6, shootEffect = CONST_ANI_ENERGYBALL, effect = CONST_ME_LOSEENERGY, target = true },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = -300, maxDamage = -700, length = 10, spread = 3, effect = CONST_ME_TELEPORT, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = -300, maxDamage = -700, length = 10, spread = 1, effect = CONST_ME_TELEPORT, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -180, maxDamage = -350, radius = 8, effect = CONST_ME_POFF, target = false },
}
diff --git a/data-otservbr-global/monster/quests/heart_of_destruction/eradicator.lua b/data-otservbr-global/monster/quests/heart_of_destruction/eradicator.lua
index e6d203eac47..caaff64e705 100644
--- a/data-otservbr-global/monster/quests/heart_of_destruction/eradicator.lua
+++ b/data-otservbr-global/monster/quests/heart_of_destruction/eradicator.lua
@@ -103,8 +103,8 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -300, maxDamage = -1800 },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -600, maxDamage = -1000, length = 8, spread = 3, effect = CONST_ME_BLOCKHIT, target = false },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -600, maxDamage = -1000, length = 8, spread = 3, effect = CONST_ME_ENERGYHIT, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -600, maxDamage = -1000, length = 8, spread = 1, effect = CONST_ME_BLOCKHIT, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -600, maxDamage = -1000, length = 8, spread = 1, effect = CONST_ME_ENERGYHIT, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -450, maxDamage = -900, radius = 8, effect = CONST_ME_BLOCKHIT, target = false },
{ name = "big energy wave", interval = 2000, chance = 20, minDamage = -700, maxDamage = -1000, target = false },
{ name = "combat", interval = 2000, chance = 25, type = COMBAT_DEATHDAMAGE, minDamage = -300, maxDamage = -600, radius = 4, effect = CONST_ME_ENERGYHIT, target = true },
diff --git a/data-otservbr-global/monster/quests/heart_of_destruction/eradicator2.lua b/data-otservbr-global/monster/quests/heart_of_destruction/eradicator2.lua
index ed8e9279e68..218b861b665 100644
--- a/data-otservbr-global/monster/quests/heart_of_destruction/eradicator2.lua
+++ b/data-otservbr-global/monster/quests/heart_of_destruction/eradicator2.lua
@@ -103,7 +103,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -300, maxDamage = -1800 },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -600, maxDamage = -1000, length = 8, spread = 3, effect = CONST_ME_BLOCKHIT, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -600, maxDamage = -1000, length = 8, spread = 1, effect = CONST_ME_BLOCKHIT, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -450, maxDamage = -900, radius = 8, effect = CONST_ME_BLOCKHIT, target = false },
{ name = "combat", interval = 2000, chance = 25, type = COMBAT_HOLYDAMAGE, minDamage = -300, maxDamage = -600, radius = 4, shootEffect = CONST_ANI_SMALLHOLY, effect = CONST_ME_HOLYDAMAGE, target = true },
{ name = "big lifedrain wave", interval = 2000, chance = 20, minDamage = -700, maxDamage = -1000, target = false },
diff --git a/data-otservbr-global/monster/quests/heart_of_destruction/foreshock.lua b/data-otservbr-global/monster/quests/heart_of_destruction/foreshock.lua
index 65283626c77..6ed245a3a67 100644
--- a/data-otservbr-global/monster/quests/heart_of_destruction/foreshock.lua
+++ b/data-otservbr-global/monster/quests/heart_of_destruction/foreshock.lua
@@ -71,11 +71,11 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -400, maxDamage = -1000 },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -350, maxDamage = -800, length = 10, spread = 3, effect = CONST_ME_LOSEENERGY, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -350, maxDamage = -800, length = 10, spread = 1, effect = CONST_ME_LOSEENERGY, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -400, maxDamage = -1000, radius = 8, effect = CONST_ME_HITAREA, target = false },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_PHYSICALDAMAGE, minDamage = -350, maxDamage = -600, length = 10, spread = 3, effect = CONST_ME_BLOCKHIT, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_PHYSICALDAMAGE, minDamage = -350, maxDamage = -600, length = 10, spread = 1, effect = CONST_ME_BLOCKHIT, target = false },
{ name = "combat", interval = 2000, chance = 25, type = COMBAT_HOLYDAMAGE, minDamage = -350, maxDamage = -800, radius = 4, effect = CONST_ME_HOLYDAMAGE, target = true },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_PHYSICALDAMAGE, minDamage = -150, maxDamage = -300, length = 2, spread = 0, effect = CONST_ME_HITAREA, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_PHYSICALDAMAGE, minDamage = -150, maxDamage = -300, length = 2, spread = 1, effect = CONST_ME_HITAREA, target = false },
{ name = "anomaly break", interval = 2000, chance = 40, target = false },
}
diff --git a/data-otservbr-global/monster/quests/heart_of_destruction/greed.lua b/data-otservbr-global/monster/quests/heart_of_destruction/greed.lua
index 5dce33bf083..4803ecd25fa 100644
--- a/data-otservbr-global/monster/quests/heart_of_destruction/greed.lua
+++ b/data-otservbr-global/monster/quests/heart_of_destruction/greed.lua
@@ -67,7 +67,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -940 },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = -200, maxDamage = -600, radius = 6, shootEffect = CONST_ANI_ENERGYBALL, effect = CONST_ME_LOSEENERGY, target = true },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -300, maxDamage = -700, length = 9, spread = 3, effect = CONST_ME_TELEPORT, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -300, maxDamage = -700, length = 9, spread = 1, effect = CONST_ME_TELEPORT, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, radius = 7, effect = CONST_ME_POFF, target = false },
{ name = "anomaly break", interval = 2000, chance = 40, target = false },
}
diff --git a/data-otservbr-global/monster/quests/heart_of_destruction/outburst.lua b/data-otservbr-global/monster/quests/heart_of_destruction/outburst.lua
index 936f58ad1c9..ee0e51bed30 100644
--- a/data-otservbr-global/monster/quests/heart_of_destruction/outburst.lua
+++ b/data-otservbr-global/monster/quests/heart_of_destruction/outburst.lua
@@ -96,8 +96,8 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -300, maxDamage = -1800 },
{ name = "big energy purple wave", interval = 2000, chance = 25, minDamage = -700, maxDamage = -1300, target = false },
{ name = "combat", interval = 2000, chance = 25, type = COMBAT_DEATHDAMAGE, minDamage = -300, maxDamage = -600, radius = 4, shootEffect = CONST_ANI_ENERGY, effect = CONST_ME_ENERGYAREA, target = true },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_PHYSICALDAMAGE, minDamage = -800, maxDamage = -1300, length = 8, spread = 3, effect = CONST_ME_HITAREA, target = false },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_LIFEDRAIN, minDamage = -600, maxDamage = -900, length = 8, spread = 3, effect = CONST_ME_MAGIC_BLUE, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_PHYSICALDAMAGE, minDamage = -800, maxDamage = -1300, length = 8, spread = 1, effect = CONST_ME_HITAREA, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_LIFEDRAIN, minDamage = -600, maxDamage = -900, length = 8, spread = 1, effect = CONST_ME_MAGIC_BLUE, target = false },
{ name = "big skill reducer", interval = 2000, chance = 25, target = false },
{ name = "anomaly break", interval = 2000, chance = 40, target = false },
}
diff --git a/data-otservbr-global/monster/quests/heart_of_destruction/overcharge.lua b/data-otservbr-global/monster/quests/heart_of_destruction/overcharge.lua
index dc29e89451b..63b060a73f4 100644
--- a/data-otservbr-global/monster/quests/heart_of_destruction/overcharge.lua
+++ b/data-otservbr-global/monster/quests/heart_of_destruction/overcharge.lua
@@ -72,7 +72,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -100, maxDamage = -500 },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = -200, maxDamage = -500, radius = 5, shootEffect = CONST_ANI_ENERGYBALL, effect = CONST_ME_LOSEENERGY, target = true },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -200, maxDamage = -400, radius = 7, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -300, maxDamage = -670, length = 9, spread = 3, effect = CONST_ME_TELEPORT, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -300, maxDamage = -670, length = 9, spread = 1, effect = CONST_ME_TELEPORT, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/heart_of_destruction/realityquake.lua b/data-otservbr-global/monster/quests/heart_of_destruction/realityquake.lua
index afd0226424d..8b10d2c21c0 100644
--- a/data-otservbr-global/monster/quests/heart_of_destruction/realityquake.lua
+++ b/data-otservbr-global/monster/quests/heart_of_destruction/realityquake.lua
@@ -91,8 +91,8 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -400, maxDamage = -1000 },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -350, maxDamage = -800, length = 10, spread = 3, effect = CONST_ME_ENERGYAREA, target = false },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_PHYSICALDAMAGE, minDamage = -350, maxDamage = -800, length = 10, spread = 3, effect = CONST_ME_BLOCKHIT, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -350, maxDamage = -800, length = 10, spread = 1, effect = CONST_ME_ENERGYAREA, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_PHYSICALDAMAGE, minDamage = -350, maxDamage = -800, length = 10, spread = 1, effect = CONST_ME_BLOCKHIT, target = false },
{ name = "combat", interval = 2000, chance = 25, type = COMBAT_PHYSICALDAMAGE, minDamage = -240, maxDamage = -600, radius = 5, effect = CONST_ME_POFF, target = true },
{ name = "combat", interval = 2000, chance = 25, type = COMBAT_HOLYDAMAGE, minDamage = -240, maxDamage = -600, radius = 5, shootEffect = CONST_ANI_HOLY, effect = CONST_ME_HOLYDAMAGE, target = true },
{ name = "combat", interval = 2000, chance = 25, type = COMBAT_EARTHDAMAGE, minDamage = -200, maxDamage = -450, length = 4, spread = 2, effect = CONST_ME_MAGIC_RED, target = false },
diff --git a/data-otservbr-global/monster/quests/heart_of_destruction/rupture.lua b/data-otservbr-global/monster/quests/heart_of_destruction/rupture.lua
index c49d49d5d30..d3bb594dfa0 100644
--- a/data-otservbr-global/monster/quests/heart_of_destruction/rupture.lua
+++ b/data-otservbr-global/monster/quests/heart_of_destruction/rupture.lua
@@ -97,10 +97,10 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -250, maxDamage = -1000 },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -350, maxDamage = -800, length = 10, spread = 3, effect = CONST_ME_LOSEENERGY, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -350, maxDamage = -800, length = 10, spread = 1, effect = CONST_ME_LOSEENERGY, target = false },
{ name = "combat", interval = 2000, chance = 25, type = COMBAT_DEATHDAMAGE, minDamage = -150, maxDamage = -300, radius = 4, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_SMALLCLOUDS, target = true },
{ name = "rupture wave", interval = 2000, chance = 20, minDamage = -700, maxDamage = -1100, target = false },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_LIFEDRAIN, minDamage = -300, maxDamage = -600, length = 9, spread = 3, effect = CONST_ME_MAGIC_RED, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_LIFEDRAIN, minDamage = -300, maxDamage = -600, length = 9, spread = 1, effect = CONST_ME_MAGIC_RED, target = false },
{ name = "anomaly break", interval = 2000, chance = 40, target = false },
}
diff --git a/data-otservbr-global/monster/quests/heart_of_destruction/the_destruction.lua b/data-otservbr-global/monster/quests/heart_of_destruction/the_destruction.lua
index 9695be76048..7d4b7aa87d8 100644
--- a/data-otservbr-global/monster/quests/heart_of_destruction/the_destruction.lua
+++ b/data-otservbr-global/monster/quests/heart_of_destruction/the_destruction.lua
@@ -72,10 +72,10 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1393 },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_ENERGYDAMAGE, minDamage = -300, maxDamage = -600, radius = 4, shootEffect = CONST_ANI_ENERGY, effect = CONST_ME_YELLOWENERGY, target = true },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -400, maxDamage = -800, radius = 4, shootEffect = CONST_ANI_ENERGYBALL, effect = CONST_ME_EXPLOSIONAREA, target = true },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_LIFEDRAIN, minDamage = -200, maxDamage = -400, length = 10, spread = 3, effect = CONST_ME_MAGIC_RED, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_LIFEDRAIN, minDamage = -200, maxDamage = -400, length = 10, spread = 1, effect = CONST_ME_MAGIC_RED, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_LIFEDRAIN, radius = 8, effect = CONST_ME_MAGIC_RED, target = false },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -500, maxDamage = -900, length = 10, spread = 3, effect = CONST_ME_BLOCKHIT, target = false },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -500, maxDamage = -900, length = 10, spread = 3, effect = CONST_ME_EXPLOSIONHIT, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -500, maxDamage = -900, length = 10, spread = 1, effect = CONST_ME_BLOCKHIT, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -500, maxDamage = -900, length = 10, spread = 1, effect = CONST_ME_EXPLOSIONHIT, target = false },
{ name = "anomaly break", interval = 2000, chance = 40, target = false },
{ name = "destruction summon", interval = 2000, chance = 20, target = false },
}
diff --git a/data-otservbr-global/monster/quests/heart_of_destruction/the_hunger.lua b/data-otservbr-global/monster/quests/heart_of_destruction/the_hunger.lua
index 2a8db03fc42..7155aee3dc4 100644
--- a/data-otservbr-global/monster/quests/heart_of_destruction/the_hunger.lua
+++ b/data-otservbr-global/monster/quests/heart_of_destruction/the_hunger.lua
@@ -72,8 +72,8 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -962 },
{ name = "practise fire wave", interval = 2000, chance = 20, minDamage = -600, maxDamage = -900, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_LIFEDRAIN, radius = 8, effect = CONST_ME_MAGIC_RED, target = false },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -700, maxDamage = -1100, length = 10, spread = 3, effect = CONST_ME_EXPLOSIONHIT, target = false },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_LIFEDRAIN, minDamage = -200, maxDamage = -400, length = 10, spread = 3, effect = CONST_ME_MAGIC_RED, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -700, maxDamage = -1100, length = 10, spread = 1, effect = CONST_ME_EXPLOSIONHIT, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_LIFEDRAIN, minDamage = -200, maxDamage = -400, length = 10, spread = 1, effect = CONST_ME_MAGIC_RED, target = false },
{ name = "anomaly break", interval = 2000, chance = 40, target = false },
{ name = "hunger summon", interval = 2000, chance = 20, target = false },
}
diff --git a/data-otservbr-global/monster/quests/heart_of_destruction/the_rage.lua b/data-otservbr-global/monster/quests/heart_of_destruction/the_rage.lua
index f648df139f4..855b599c64c 100644
--- a/data-otservbr-global/monster/quests/heart_of_destruction/the_rage.lua
+++ b/data-otservbr-global/monster/quests/heart_of_destruction/the_rage.lua
@@ -71,11 +71,11 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -740 },
{ name = "big death wave", interval = 2000, chance = 20, minDamage = -600, maxDamage = -900, target = false },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_LIFEDRAIN, minDamage = -200, maxDamage = -400, length = 10, spread = 3, effect = CONST_ME_MAGIC_RED, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_LIFEDRAIN, minDamage = -200, maxDamage = -400, length = 10, spread = 1, effect = CONST_ME_MAGIC_RED, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_DEATHDAMAGE, minDamage = -300, maxDamage = -600, radius = 4, effect = CONST_ME_SMALLCLOUDS, target = true },
{ name = "big explosion wave", interval = 2000, chance = 20, minDamage = -600, maxDamage = -900, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_LIFEDRAIN, radius = 8, effect = CONST_ME_MAGIC_RED, target = false },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -200, maxDamage = -600, length = 10, spread = 3, effect = CONST_ME_YELLOW_RINGS, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -200, maxDamage = -600, length = 10, spread = 1, effect = CONST_ME_YELLOW_RINGS, target = false },
{ name = "anomaly break", interval = 2000, chance = 40, target = false },
{ name = "rage summon", interval = 2000, chance = 20, target = false },
}
diff --git a/data-otservbr-global/monster/quests/heart_of_destruction/unstable_spark.lua b/data-otservbr-global/monster/quests/heart_of_destruction/unstable_spark.lua
index bbfb1938a3c..7c42a741242 100644
--- a/data-otservbr-global/monster/quests/heart_of_destruction/unstable_spark.lua
+++ b/data-otservbr-global/monster/quests/heart_of_destruction/unstable_spark.lua
@@ -71,7 +71,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -100, maxDamage = -500 },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -180, maxDamage = -500, radius = 6, shootEffect = CONST_ANI_ENERGYBALL, effect = CONST_ME_LOSEENERGY, target = true },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = -300, maxDamage = -700, length = 10, spread = 3, effect = CONST_ME_TELEPORT, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = -300, maxDamage = -700, length = 10, spread = 1, effect = CONST_ME_TELEPORT, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -180, maxDamage = -350, radius = 8, effect = CONST_ME_POFF, target = false },
}
diff --git a/data-otservbr-global/monster/quests/heart_of_destruction/world_devourer.lua b/data-otservbr-global/monster/quests/heart_of_destruction/world_devourer.lua
index 5718a22de83..d40bddcc6e2 100644
--- a/data-otservbr-global/monster/quests/heart_of_destruction/world_devourer.lua
+++ b/data-otservbr-global/monster/quests/heart_of_destruction/world_devourer.lua
@@ -100,10 +100,10 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1600 },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_LIFEDRAIN, minDamage = -400, maxDamage = -800, length = 10, spread = 3, effect = CONST_ME_MAGIC_RED, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_LIFEDRAIN, minDamage = -400, maxDamage = -800, length = 10, spread = 1, effect = CONST_ME_MAGIC_RED, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_DEATHDAMAGE, minDamage = -400, maxDamage = -800, radius = 4, effect = CONST_ME_SMALLCLOUDS, target = true },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_ENERGYDAMAGE, minDamage = -400, maxDamage = -800, radius = 4, shootEffect = CONST_ANI_ENERGY, effect = CONST_ME_YELLOWENERGY, target = true },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_ENERGYDAMAGE, minDamage = -600, maxDamage = -1200, length = 10, spread = 3, effect = CONST_ME_LOSEENERGY, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_ENERGYDAMAGE, minDamage = -600, maxDamage = -1200, length = 10, spread = 1, effect = CONST_ME_LOSEENERGY, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_LIFEDRAIN, radius = 8, effect = CONST_ME_MAGIC_RED, target = false },
{ name = "anomaly break", interval = 2000, chance = 40, target = false },
{ name = "devourer summon", interval = 2000, chance = 25, target = false },
diff --git a/data-otservbr-global/monster/quests/hero_of_rathleton/deep_terror.lua b/data-otservbr-global/monster/quests/hero_of_rathleton/deep_terror.lua
index 534175a881a..401864b9341 100644
--- a/data-otservbr-global/monster/quests/hero_of_rathleton/deep_terror.lua
+++ b/data-otservbr-global/monster/quests/hero_of_rathleton/deep_terror.lua
@@ -79,7 +79,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 130, attack = 100 },
{ name = "combat", interval = 2000, chance = 32, type = COMBAT_PHYSICALDAMAGE, minDamage = -200, maxDamage = -400, radius = 8, effect = CONST_ME_CARNIPHILA, target = false },
{ name = "combat", interval = 2000, chance = 19, type = COMBAT_EARTHDAMAGE, minDamage = -300, maxDamage = -700, range = 7, radius = 3, shootEffect = CONST_ANI_POISON, effect = CONST_ME_CARNIPHILA, target = true },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_PHYSICALDAMAGE, minDamage = -500, maxDamage = -1000, length = 7, spread = 3, effect = CONST_ME_GROUNDSHAKER, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_PHYSICALDAMAGE, minDamage = -500, maxDamage = -1000, length = 7, spread = 1, effect = CONST_ME_GROUNDSHAKER, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/hero_of_rathleton/glooth_horror.lua b/data-otservbr-global/monster/quests/hero_of_rathleton/glooth_horror.lua
index eec6132974e..65ea9463d10 100644
--- a/data-otservbr-global/monster/quests/hero_of_rathleton/glooth_horror.lua
+++ b/data-otservbr-global/monster/quests/hero_of_rathleton/glooth_horror.lua
@@ -70,7 +70,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 110, attack = 100 },
- { name = "combat", interval = 2000, chance = 9, type = COMBAT_DEATHDAMAGE, minDamage = -300, maxDamage = -700, length = 8, spread = 3, target = false },
+ { name = "combat", interval = 2000, chance = 9, type = COMBAT_DEATHDAMAGE, minDamage = -300, maxDamage = -700, length = 8, spread = 1, target = false },
{ name = "drunk", interval = 2000, chance = 8, radius = 8, effect = CONST_ME_HITBYPOISON, target = false, duration = 15000 },
}
diff --git a/data-otservbr-global/monster/quests/hero_of_rathleton/professor_maxxen.lua b/data-otservbr-global/monster/quests/hero_of_rathleton/professor_maxxen.lua
index 8a1ec35e913..8418c33451b 100644
--- a/data-otservbr-global/monster/quests/hero_of_rathleton/professor_maxxen.lua
+++ b/data-otservbr-global/monster/quests/hero_of_rathleton/professor_maxxen.lua
@@ -89,8 +89,8 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 180, attack = 200 },
{ name = "combat", interval = 2000, chance = 11, type = COMBAT_ENERGYDAMAGE, minDamage = -250, maxDamage = -500, radius = 8, effect = CONST_ME_ENERGYHIT, target = false },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_MANADRAIN, minDamage = -450, maxDamage = -1500, length = 8, spread = 3, effect = CONST_ME_TELEPORT, target = false },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_FIREDAMAGE, minDamage = -450, maxDamage = -500, length = 8, spread = 3, effect = CONST_ME_FIREATTACK, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_MANADRAIN, minDamage = -450, maxDamage = -1500, length = 8, spread = 1, effect = CONST_ME_TELEPORT, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_FIREDAMAGE, minDamage = -450, maxDamage = -500, length = 8, spread = 1, effect = CONST_ME_FIREATTACK, target = false },
{ name = "war golem skill reducer", interval = 2000, chance = 22, target = false },
{ name = "war golem electrify", interval = 2000, chance = 16, range = 2, target = false },
{ name = "glooth fairy skill reducer", interval = 2000, chance = 20, target = false },
diff --git a/data-otservbr-global/monster/quests/hero_of_rathleton/weakened_glooth_horror.lua b/data-otservbr-global/monster/quests/hero_of_rathleton/weakened_glooth_horror.lua
index b3df6a5785d..20d5c0824ae 100644
--- a/data-otservbr-global/monster/quests/hero_of_rathleton/weakened_glooth_horror.lua
+++ b/data-otservbr-global/monster/quests/hero_of_rathleton/weakened_glooth_horror.lua
@@ -70,7 +70,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 90, attack = 100 },
- { name = "combat", interval = 2000, chance = 17, type = COMBAT_DEATHDAMAGE, minDamage = -300, maxDamage = -600, length = 8, spread = 3, effect = CONST_ME_MORTAREA, target = false },
+ { name = "combat", interval = 2000, chance = 17, type = COMBAT_DEATHDAMAGE, minDamage = -300, maxDamage = -600, length = 8, spread = 1, effect = CONST_ME_MORTAREA, target = false },
{ name = "combat", interval = 2000, chance = 11, type = COMBAT_DEATHDAMAGE, minDamage = -200, maxDamage = -400, range = 1, shootEffect = CONST_ANI_POISON, target = true },
}
diff --git a/data-otservbr-global/monster/quests/in_service_of_yalahar/azerus.lua b/data-otservbr-global/monster/quests/in_service_of_yalahar/azerus.lua
index 87329f07738..e54b6f8e6a8 100644
--- a/data-otservbr-global/monster/quests/in_service_of_yalahar/azerus.lua
+++ b/data-otservbr-global/monster/quests/in_service_of_yalahar/azerus.lua
@@ -97,7 +97,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -900 },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_MANADRAIN, minDamage = 0, maxDamage = -3800, range = 7, radius = 4, shootEffect = CONST_ANI_FIRE, effect = CONST_ME_BIGCLOUDS, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_DEATHDAMAGE, minDamage = 0, maxDamage = -524, range = 7, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_MORTAREA, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -300, maxDamage = -1050, length = 8, spread = 3, effect = CONST_ME_FIREATTACK, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -300, maxDamage = -1050, length = 8, spread = 1, effect = CONST_ME_FIREATTACK, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/in_service_of_yalahar/azerus2.lua b/data-otservbr-global/monster/quests/in_service_of_yalahar/azerus2.lua
index 19f074c17eb..c41f6312909 100644
--- a/data-otservbr-global/monster/quests/in_service_of_yalahar/azerus2.lua
+++ b/data-otservbr-global/monster/quests/in_service_of_yalahar/azerus2.lua
@@ -93,7 +93,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -900 },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_MANADRAIN, minDamage = 0, maxDamage = -3800, range = 7, radius = 4, shootEffect = CONST_ANI_FIRE, effect = CONST_ME_BIGCLOUDS, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_DEATHDAMAGE, minDamage = 0, maxDamage = -524, range = 7, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_MORTAREA, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -300, maxDamage = -1050, length = 8, spread = 3, effect = CONST_ME_FIREATTACK, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -300, maxDamage = -1050, length = 8, spread = 1, effect = CONST_ME_FIREATTACK, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/in_service_of_yalahar/rift_scythe.lua b/data-otservbr-global/monster/quests/in_service_of_yalahar/rift_scythe.lua
index 25246da0ef3..7e9d4806dd6 100644
--- a/data-otservbr-global/monster/quests/in_service_of_yalahar/rift_scythe.lua
+++ b/data-otservbr-global/monster/quests/in_service_of_yalahar/rift_scythe.lua
@@ -67,9 +67,9 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -979 },
{ name = "combat", interval = 2000, chance = 60, type = COMBAT_DEATHDAMAGE, minDamage = 0, maxDamage = -200, range = 7, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_MORTAREA, target = true },
- { name = "combat", interval = 2000, chance = 50, type = COMBAT_LIFEDRAIN, minDamage = 0, maxDamage = -600, length = 7, spread = 3, target = false },
+ { name = "combat", interval = 2000, chance = 50, type = COMBAT_LIFEDRAIN, minDamage = 0, maxDamage = -600, length = 7, spread = 1, target = false },
{ name = "combat", interval = 2000, chance = 40, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -395, radius = 4, target = false },
- { name = "combat", interval = 3000, chance = 60, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -300, length = 7, spread = 3, effect = CONST_ME_EXPLOSIONAREA, target = false },
+ { name = "combat", interval = 3000, chance = 60, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -300, length = 7, spread = 1, effect = CONST_ME_EXPLOSIONAREA, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/killing_in_the_name_of/bruise_payne.lua b/data-otservbr-global/monster/quests/killing_in_the_name_of/bruise_payne.lua
index b86b5a75873..e81ca7aaa65 100644
--- a/data-otservbr-global/monster/quests/killing_in_the_name_of/bruise_payne.lua
+++ b/data-otservbr-global/monster/quests/killing_in_the_name_of/bruise_payne.lua
@@ -81,7 +81,7 @@ monster.attacks = {
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_DROWNDAMAGE, minDamage = -130, maxDamage = -237, radius = 6, effect = CONST_ME_SOUND_WHITE, target = false },
{ name = "mutated bat curse", interval = 2000, chance = 10, target = false },
-- poison
- { name = "condition", type = CONDITION_POISON, interval = 2000, chance = 15, minDamage = -12, maxDamage = -12, length = 4, spread = 3, effect = CONST_ME_POISONAREA, target = false },
+ { name = "condition", type = CONDITION_POISON, interval = 2000, chance = 15, minDamage = -12, maxDamage = -12, length = 4, spread = 1, effect = CONST_ME_POISONAREA, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/kilmaresh/amenef_the_burning.lua b/data-otservbr-global/monster/quests/kilmaresh/amenef_the_burning.lua
index c73dd05ae33..7326b1373cc 100644
--- a/data-otservbr-global/monster/quests/kilmaresh/amenef_the_burning.lua
+++ b/data-otservbr-global/monster/quests/kilmaresh/amenef_the_burning.lua
@@ -101,7 +101,7 @@ monster.attacks = {
{ name = "firering", interval = 2000, chance = 10, minDamage = -300, maxDamage = -600, target = false },
{ name = "firex", interval = 2000, chance = 15, minDamage = -450, maxDamage = -750, target = false },
{ name = "combat", interval = 2000, chance = 17, type = COMBAT_FIREDAMAGE, minDamage = -300, maxDamage = -600, radius = 2, effect = CONST_ME_FIREATTACK, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -500, maxDamage = -750, length = 3, spread = 0, effect = CONST_ME_ENERGYHIT, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -500, maxDamage = -750, length = 3, spread = 1, effect = CONST_ME_ENERGYHIT, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/mysterious_ornate_chest/reflection_of_mawhawk.lua b/data-otservbr-global/monster/quests/mysterious_ornate_chest/reflection_of_mawhawk.lua
index a2806343a65..4a0f39e2506 100644
--- a/data-otservbr-global/monster/quests/mysterious_ornate_chest/reflection_of_mawhawk.lua
+++ b/data-otservbr-global/monster/quests/mysterious_ornate_chest/reflection_of_mawhawk.lua
@@ -88,7 +88,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 90, attack = 80 },
{ name = "combat", interval = 2000, chance = 8, type = COMBAT_LIFEDRAIN, minDamage = -135, maxDamage = -280, range = 7, radius = 5, shootEffect = CONST_ANI_WHIRLWINDAXE, target = true },
{ name = "combat", interval = 2000, chance = 8, type = COMBAT_PHYSICALDAMAGE, minDamage = -90, maxDamage = -500, range = 7, shootEffect = CONST_ANI_WHIRLWINDAXE, effect = CONST_ME_EXPLOSIONAREA, target = true },
- { name = "combat", interval = 1800, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -300, maxDamage = -685, length = 7, spread = 3, effect = CONST_ME_STONES, target = false },
+ { name = "combat", interval = 1800, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -300, maxDamage = -685, length = 7, spread = 1, effect = CONST_ME_STONES, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/primal_ordeal_quest/the_end_of_days.lua b/data-otservbr-global/monster/quests/primal_ordeal_quest/the_end_of_days.lua
index 8674c4e2bac..e30d4ddcb8e 100644
--- a/data-otservbr-global/monster/quests/primal_ordeal_quest/the_end_of_days.lua
+++ b/data-otservbr-global/monster/quests/primal_ordeal_quest/the_end_of_days.lua
@@ -67,7 +67,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -750, maxDamage = -1750 },
{ name = "combat", interval = 2700, chance = 37, type = COMBAT_FIREDAMAGE, minDamage = -950, maxDamage = -2000, length = 8, spread = 3, effect = CONST_ME_HITBYFIRE, target = false },
- { name = "combat", interval = 3300, chance = 37, type = COMBAT_PHYSICALDAMAGE, minDamage = -1100, maxDamage = -1600, length = 8, spread = 0, effect = CONST_ME_EXPLOSIONHIT, target = false },
+ { name = "combat", interval = 3300, chance = 37, type = COMBAT_PHYSICALDAMAGE, minDamage = -1100, maxDamage = -1600, length = 8, spread = 1, effect = CONST_ME_EXPLOSIONHIT, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/roshamuul/horadron.lua b/data-otservbr-global/monster/quests/roshamuul/horadron.lua
index 17f6a3652bb..6e9a8931a77 100644
--- a/data-otservbr-global/monster/quests/roshamuul/horadron.lua
+++ b/data-otservbr-global/monster/quests/roshamuul/horadron.lua
@@ -108,8 +108,8 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 110, attack = 100 },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_EARTHDAMAGE, minDamage = -600, maxDamage = -1000, length = 8, spread = 3, effect = CONST_ME_HITBYPOISON, target = false },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_EARTHDAMAGE, minDamage = -600, maxDamage = -1000, length = 8, spread = 3, effect = CONST_ME_HITBYPOISON, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_EARTHDAMAGE, minDamage = -600, maxDamage = -1000, length = 8, spread = 1, effect = CONST_ME_HITBYPOISON, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_EARTHDAMAGE, minDamage = -600, maxDamage = -1000, length = 8, spread = 1, effect = CONST_ME_HITBYPOISON, target = false },
{ name = "combat", interval = 2000, chance = 30, type = COMBAT_EARTHDAMAGE, minDamage = -100, maxDamage = -235, range = 7, shootEffect = CONST_ANI_POISON, effect = CONST_ME_HITBYPOISON, target = true },
{ name = "combat", interval = 2000, chance = 25, type = COMBAT_EARTHDAMAGE, minDamage = -100, maxDamage = -250, radius = 3, effect = CONST_ME_POISONAREA, target = false },
-- poison
diff --git a/data-otservbr-global/monster/quests/roshamuul/terofar.lua b/data-otservbr-global/monster/quests/roshamuul/terofar.lua
index 0f26e7697f2..a06c7dadba5 100644
--- a/data-otservbr-global/monster/quests/roshamuul/terofar.lua
+++ b/data-otservbr-global/monster/quests/roshamuul/terofar.lua
@@ -104,7 +104,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 180, attack = 100 },
- { name = "combat", interval = 2000, chance = 30, type = COMBAT_DEATHDAMAGE, minDamage = -700, maxDamage = -1500, length = 8, spread = 3, effect = CONST_ME_SMALLCLOUDS, target = false },
+ { name = "combat", interval = 2000, chance = 30, type = COMBAT_DEATHDAMAGE, minDamage = -700, maxDamage = -1500, length = 8, spread = 1, effect = CONST_ME_SMALLCLOUDS, target = false },
{ name = "combat", interval = 2000, chance = 18, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -750, range = 7, radius = 1, shootEffect = CONST_ANI_WHIRLWINDAXE, target = true },
}
diff --git a/data-otservbr-global/monster/quests/soul_war/aspect_of_power.lua b/data-otservbr-global/monster/quests/soul_war/aspect_of_power.lua
index dfc6049e3f1..d3b40f599e8 100644
--- a/data-otservbr-global/monster/quests/soul_war/aspect_of_power.lua
+++ b/data-otservbr-global/monster/quests/soul_war/aspect_of_power.lua
@@ -62,7 +62,7 @@ monster.voices = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -100, maxDamage = -800 },
{ name = "combat", interval = 1700, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -400, maxDamage = -950, radius = 3, shootEffect = CONST_ANI_ENVENOMEDARROW, target = true },
- { name = "combat", interval = 1700, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -300, maxDamage = -850, length = 4, spread = 3, effect = CONST_ME_ENERGYHIT, target = false },
+ { name = "combat", interval = 1700, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -300, maxDamage = -850, length = 4, spread = 1, effect = CONST_ME_ENERGYHIT, target = false },
{ name = "combat", interval = 1700, chance = 35, type = COMBAT_DEATHDAMAGE, minDamage = -700, maxDamage = -1550, radius = 3, effect = CONST_ME_MORTAREA, target = false },
{ name = "outfit", interval = 1000, chance = 5, radius = 8, effect = CONST_ME_LOSEENERGY, target = false, duration = 5000, outfitMonster = "goshnar's hatred" },
{ name = "outfit", interval = 1000, chance = 5, radius = 8, effect = CONST_ME_LOSEENERGY, target = false, duration = 5000, outfitMonster = "goshnar's greed" },
diff --git a/data-otservbr-global/monster/quests/soul_war/dreadful_harvester.lua b/data-otservbr-global/monster/quests/soul_war/dreadful_harvester.lua
index 6a6108cf535..3e21b97a41e 100644
--- a/data-otservbr-global/monster/quests/soul_war/dreadful_harvester.lua
+++ b/data-otservbr-global/monster/quests/soul_war/dreadful_harvester.lua
@@ -67,8 +67,8 @@ monster.voices = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -320 },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -165, range = 7, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_MORTAREA, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -350, maxDamage = -720, length = 8, spread = 3, target = false },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -300, length = 7, spread = 3, effect = CONST_ME_EXPLOSIONAREA, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -350, maxDamage = -720, length = 8, spread = 1, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -300, length = 7, spread = 1, effect = CONST_ME_EXPLOSIONAREA, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -225, maxDamage = -275, radius = 4, target = false },
}
diff --git a/data-otservbr-global/monster/quests/soul_war/goshnars_cruelty.lua b/data-otservbr-global/monster/quests/soul_war/goshnars_cruelty.lua
index 40957e0bde4..0a837abd59b 100644
--- a/data-otservbr-global/monster/quests/soul_war/goshnars_cruelty.lua
+++ b/data-otservbr-global/monster/quests/soul_war/goshnars_cruelty.lua
@@ -108,7 +108,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -5000 },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -1400, maxDamage = -1800, length = 8, spread = 0, effect = CONST_ME_EXPLOSIONAREA, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -1400, maxDamage = -1800, length = 8, spread = 1, effect = CONST_ME_EXPLOSIONAREA, target = false },
{ name = "singlecloudchain", interval = 6000, chance = 40, minDamage = -1700, maxDamage = -2500, range = 6, effect = CONST_ME_ENERGYHIT, target = true },
{ name = "combat", interval = 2000, chance = 30, type = COMBAT_PHYSICALDAMAGE, minDamage = -1000, maxDamage = -2500, range = 7, radius = 4, shootEffect = CONST_ANI_EXPLOSION, effect = CONST_ME_DRAWBLOOD, target = true },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_DEATHDAMAGE, minDamage = -1500, maxDamage = -3000, radius = 3, effect = CONST_ME_GROUNDSHAKER, target = false },
diff --git a/data-otservbr-global/monster/quests/soul_war/goshnars_hatred.lua b/data-otservbr-global/monster/quests/soul_war/goshnars_hatred.lua
index 2dcfed2e9ec..d7bc44dda3c 100644
--- a/data-otservbr-global/monster/quests/soul_war/goshnars_hatred.lua
+++ b/data-otservbr-global/monster/quests/soul_war/goshnars_hatred.lua
@@ -109,7 +109,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -5000 },
{ name = "combat", interval = 2000, chance = 30, type = COMBAT_DEATHDAMAGE, minDamage = -1350, maxDamage = -1700, range = 7, radius = 5, shootEffect = CONST_ANI_DEATH, effect = CONST_ME_GROUNDSHAKER, target = true },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -1400, maxDamage = -2200, length = 8, spread = 3, effect = CONST_ME_GROUNDSHAKER, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -1400, maxDamage = -2200, length = 8, spread = 1, effect = CONST_ME_GROUNDSHAKER, target = false },
{ name = "singlecloudchain", interval = 6000, chance = 40, minDamage = -1700, maxDamage = -2500, range = 6, effect = CONST_ME_ENERGYHIT, target = true },
}
diff --git a/data-otservbr-global/monster/quests/soul_war/goshnars_megalomania.lua b/data-otservbr-global/monster/quests/soul_war/goshnars_megalomania.lua
index 18cfdeacd90..2949d1b42c3 100644
--- a/data-otservbr-global/monster/quests/soul_war/goshnars_megalomania.lua
+++ b/data-otservbr-global/monster/quests/soul_war/goshnars_megalomania.lua
@@ -112,9 +112,9 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -8000 },
{ name = "combat", interval = 2000, chance = 30, type = COMBAT_PHYSICALDAMAGE, minDamage = -2950, maxDamage = -4400, range = 7, radius = 3, shootEffect = CONST_ANI_DEATH, effect = CONST_ME_MORTAREA, target = true },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -3000, maxDamage = -5500, length = 8, spread = 3, effect = CONST_ME_INSECTS, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -3000, maxDamage = -5500, length = 8, spread = 1, effect = CONST_ME_INSECTS, target = false },
{ name = "singlecloudchain", interval = 6000, chance = 40, minDamage = -3300, maxDamage = -5500, range = 6, effect = CONST_ME_ENERGYHIT, target = true },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -3300, maxDamage = -5200, length = 10, spread = 0, effect = CONST_ME_BLUE_GHOST, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -3300, maxDamage = -5200, length = 10, spread = 1, effect = CONST_ME_BLUE_GHOST, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/soul_war/goshnars_spite.lua b/data-otservbr-global/monster/quests/soul_war/goshnars_spite.lua
index cf46b89a76d..77f44a12b8b 100644
--- a/data-otservbr-global/monster/quests/soul_war/goshnars_spite.lua
+++ b/data-otservbr-global/monster/quests/soul_war/goshnars_spite.lua
@@ -107,10 +107,10 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -5000 },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -1400, maxDamage = -2200, length = 8, spread = 3, effect = CONST_ME_GREEN_RINGS, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -1400, maxDamage = -2200, length = 8, spread = 1, effect = CONST_ME_GREEN_RINGS, target = false },
{ name = "singlecloudchain", interval = 6000, chance = 40, minDamage = -1700, maxDamage = -1900, range = 6, effect = CONST_ME_ENERGYHIT, target = true },
{ name = "combat", interval = 2000, chance = 30, type = COMBAT_EARTHDAMAGE, minDamage = -1200, maxDamage = -3500, range = 7, radius = 4, shootEffect = CONST_ANI_POISON, effect = CONST_ME_GREEN_RINGS, target = true },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -1400, maxDamage = -2200, length = 8, spread = 0, effect = CONST_ME_GREEN_RINGS, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -1400, maxDamage = -2200, length = 8, spread = 1, effect = CONST_ME_GREEN_RINGS, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/soul_war/hateful_soul.lua b/data-otservbr-global/monster/quests/soul_war/hateful_soul.lua
index 08ea90eece7..b3d4c74ef61 100644
--- a/data-otservbr-global/monster/quests/soul_war/hateful_soul.lua
+++ b/data-otservbr-global/monster/quests/soul_war/hateful_soul.lua
@@ -62,7 +62,7 @@ monster.voices = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -100, maxDamage = -800 },
{ name = "combat", interval = 1700, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -400, maxDamage = -950, radius = 3, shootEffect = CONST_ANI_ENVENOMEDARROW, target = true },
- { name = "combat", interval = 1700, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -300, maxDamage = -850, length = 4, spread = 3, effect = CONST_ME_ENERGYHIT, target = false },
+ { name = "combat", interval = 1700, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -300, maxDamage = -850, length = 4, spread = 1, effect = CONST_ME_ENERGYHIT, target = false },
{ name = "combat", interval = 1700, chance = 35, type = COMBAT_DEATHDAMAGE, minDamage = -700, maxDamage = -1550, radius = 3, effect = CONST_ME_MORTAREA, target = false },
}
diff --git a/data-otservbr-global/monster/quests/soul_war/malicious_soul.lua b/data-otservbr-global/monster/quests/soul_war/malicious_soul.lua
index c540bb4b0e3..1eeccc77000 100644
--- a/data-otservbr-global/monster/quests/soul_war/malicious_soul.lua
+++ b/data-otservbr-global/monster/quests/soul_war/malicious_soul.lua
@@ -62,7 +62,7 @@ monster.voices = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -100, maxDamage = -500 },
{ name = "combat", interval = 1700, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -150, maxDamage = -550, radius = 3, shootEffect = CONST_ANI_ENVENOMEDARROW, target = true },
- { name = "combat", interval = 1700, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -150, maxDamage = -550, length = 4, spread = 3, effect = CONST_ME_ENERGYHIT, target = false },
+ { name = "combat", interval = 1700, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -150, maxDamage = -550, length = 4, spread = 1, effect = CONST_ME_ENERGYHIT, target = false },
{ name = "combat", interval = 1700, chance = 35, type = COMBAT_DEATHDAMAGE, minDamage = -150, maxDamage = -550, radius = 3, effect = CONST_ME_MORTAREA, target = false },
}
diff --git a/data-otservbr-global/monster/quests/svargrond_arena/warlord/fallen_mooh'tah_master_ghar.lua b/data-otservbr-global/monster/quests/svargrond_arena/warlord/fallen_mooh'tah_master_ghar.lua
index 676dda2eab9..cc2272f4346 100644
--- a/data-otservbr-global/monster/quests/svargrond_arena/warlord/fallen_mooh'tah_master_ghar.lua
+++ b/data-otservbr-global/monster/quests/svargrond_arena/warlord/fallen_mooh'tah_master_ghar.lua
@@ -69,12 +69,12 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -525, condition = { type = CONDITION_POISON, totalDamage = 18, interval = 4000 } },
- { name = "combat", interval = 6000, chance = 30, type = COMBAT_FIREDAMAGE, minDamage = -80, maxDamage = -300, length = 8, spread = 3, effect = CONST_ME_FIREAREA, target = false },
+ { name = "combat", interval = 6000, chance = 30, type = COMBAT_FIREDAMAGE, minDamage = -80, maxDamage = -300, length = 8, spread = 1, effect = CONST_ME_FIREAREA, target = false },
{ name = "combat", interval = 3000, chance = 45, type = COMBAT_FIREDAMAGE, minDamage = -80, maxDamage = -400, radius = 5, shootEffect = CONST_ANI_FIRE, target = true },
{ name = "combat", interval = 4000, chance = 30, type = COMBAT_DEATHDAMAGE, minDamage = -80, maxDamage = -270, shootEffect = CONST_ANI_DEATH, effect = CONST_ME_MORTAREA, target = false },
-- poison
{ name = "condition", type = CONDITION_POISON, interval = 4500, chance = 40, minDamage = -10, maxDamage = -200, range = 10, shootEffect = CONST_ANI_POISON, target = false },
- { name = "combat", interval = 5000, chance = 30, type = COMBAT_EARTHDAMAGE, minDamage = -60, maxDamage = -300, length = 8, spread = 3, effect = CONST_ME_POISONAREA, target = false },
+ { name = "combat", interval = 5000, chance = 30, type = COMBAT_EARTHDAMAGE, minDamage = -60, maxDamage = -300, length = 8, spread = 1, effect = CONST_ME_POISONAREA, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/svargrond_arena/warlord/the_obliverator.lua b/data-otservbr-global/monster/quests/svargrond_arena/warlord/the_obliverator.lua
index ad6f8fa8db0..d0c51748c4c 100644
--- a/data-otservbr-global/monster/quests/svargrond_arena/warlord/the_obliverator.lua
+++ b/data-otservbr-global/monster/quests/svargrond_arena/warlord/the_obliverator.lua
@@ -76,7 +76,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -700 },
{ name = "combat", interval = 1000, chance = 20, type = COMBAT_FIREDAMAGE, minDamage = -100, maxDamage = -250, range = 5, radius = 7, shootEffect = CONST_ANI_FIRE, effect = CONST_ME_FIREAREA, target = true },
- { name = "combat", interval = 3000, chance = 30, type = COMBAT_ENERGYDAMAGE, minDamage = -200, maxDamage = -500, length = 8, spread = 3, effect = CONST_ME_ENERGYHIT, target = false },
+ { name = "combat", interval = 3000, chance = 30, type = COMBAT_ENERGYDAMAGE, minDamage = -200, maxDamage = -500, length = 8, spread = 1, effect = CONST_ME_ENERGYHIT, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_curse_spreads/black_vixen.lua b/data-otservbr-global/monster/quests/the_curse_spreads/black_vixen.lua
index 3f676c6e9a5..aba13dc1391 100644
--- a/data-otservbr-global/monster/quests/the_curse_spreads/black_vixen.lua
+++ b/data-otservbr-global/monster/quests/the_curse_spreads/black_vixen.lua
@@ -107,7 +107,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -290 },
{ name = "combat", interval = 1000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = 100, maxDamage = 720, range = 7, shootEffect = CONST_ANI_THROWINGSTAR, target = false },
{ name = "speed", interval = 2000, chance = 15, speedChange = -600, range = 7, effect = CONST_ME_MAGIC_RED, target = false, duration = 20000 },
- { name = "combat", interval = 1000, chance = 14, type = COMBAT_DEATHDAMAGE, minDamage = -100, maxDamage = -700, length = 5, spread = 3, effect = CONST_ME_MORTAREA, target = false },
+ { name = "combat", interval = 1000, chance = 14, type = COMBAT_DEATHDAMAGE, minDamage = -100, maxDamage = -700, length = 5, spread = 1, effect = CONST_ME_MORTAREA, target = false },
{ name = "outfit", interval = 1000, chance = 1, radius = 1, target = true, duration = 2000, outfitMonster = "werewolf" },
}
diff --git a/data-otservbr-global/monster/quests/the_curse_spreads/bloodback.lua b/data-otservbr-global/monster/quests/the_curse_spreads/bloodback.lua
index 7f8c4a86cf3..09cb8f45706 100644
--- a/data-otservbr-global/monster/quests/the_curse_spreads/bloodback.lua
+++ b/data-otservbr-global/monster/quests/the_curse_spreads/bloodback.lua
@@ -101,7 +101,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -290 },
{ name = "combat", interval = 1000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -100, maxDamage = -420, range = 7, target = false },
{ name = "speed", interval = 2000, chance = 15, speedChange = -600, range = 7, effect = CONST_ME_MAGIC_RED, target = false, duration = 20000 },
- { name = "combat", interval = 1000, chance = 14, type = COMBAT_DEATHDAMAGE, minDamage = -100, maxDamage = -200, length = 5, spread = 3, target = false },
+ { name = "combat", interval = 1000, chance = 14, type = COMBAT_DEATHDAMAGE, minDamage = -100, maxDamage = -200, length = 5, spread = 1, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_curse_spreads/sharpclaw.lua b/data-otservbr-global/monster/quests/the_curse_spreads/sharpclaw.lua
index 570f501efd1..e55f8abc39a 100644
--- a/data-otservbr-global/monster/quests/the_curse_spreads/sharpclaw.lua
+++ b/data-otservbr-global/monster/quests/the_curse_spreads/sharpclaw.lua
@@ -100,7 +100,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -290 },
{ name = "combat", interval = 1000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = 100, maxDamage = 720, range = 7, shootEffect = CONST_ANI_SUDDENDEATH, target = false },
{ name = "speed", interval = 2000, chance = 15, speedChange = -600, range = 7, effect = CONST_ME_MAGIC_RED, target = false, duration = 20000 },
- { name = "combat", interval = 1000, chance = 14, type = COMBAT_DEATHDAMAGE, minDamage = -100, maxDamage = -700, length = 5, spread = 3, effect = CONST_ME_MORTAREA, target = false },
+ { name = "combat", interval = 1000, chance = 14, type = COMBAT_DEATHDAMAGE, minDamage = -100, maxDamage = -700, length = 5, spread = 1, effect = CONST_ME_MORTAREA, target = false },
{ name = "outfit", interval = 1000, chance = 1, radius = 1, target = true, duration = 2000, outfitMonster = "Werebadger" },
{ name = "ghastly dragon curse", interval = 2000, chance = 5, range = 1, target = false },
}
diff --git a/data-otservbr-global/monster/quests/the_dream_courts/bosses/alptramun.lua b/data-otservbr-global/monster/quests/the_dream_courts/bosses/alptramun.lua
index 76275c2cd0f..a691c396fb1 100644
--- a/data-otservbr-global/monster/quests/the_dream_courts/bosses/alptramun.lua
+++ b/data-otservbr-global/monster/quests/the_dream_courts/bosses/alptramun.lua
@@ -118,9 +118,9 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -200, maxDamage = -1000 },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_DEATHDAMAGE, minDamage = -700, maxDamage = -2000, range = 7, length = 6, spread = 3, shootEffect = CONST_ANI_POISON, target = false },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_DEATHDAMAGE, minDamage = -400, maxDamage = -700, range = 3, length = 6, spread = 3, effect = CONST_ME_MORTAREA, target = false },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -200, maxDamage = -500, range = 3, length = 6, spread = 3, effect = CONST_ME_HITBYFIRE, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_DEATHDAMAGE, minDamage = -700, maxDamage = -2000, range = 7, length = 6, spread = 1, shootEffect = CONST_ANI_POISON, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_DEATHDAMAGE, minDamage = -400, maxDamage = -700, range = 3, length = 6, spread = 1, effect = CONST_ME_MORTAREA, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -200, maxDamage = -500, range = 3, length = 6, spread = 1, effect = CONST_ME_HITBYFIRE, target = false },
{ name = "stone shower rune", interval = 2000, chance = 10, minDamage = -230, maxDamage = -450, range = 7, target = false },
}
diff --git a/data-otservbr-global/monster/quests/the_dream_courts/bosses/izcandar_the_banished.lua b/data-otservbr-global/monster/quests/the_dream_courts/bosses/izcandar_the_banished.lua
index 9c693024899..bef4c76b5e7 100644
--- a/data-otservbr-global/monster/quests/the_dream_courts/bosses/izcandar_the_banished.lua
+++ b/data-otservbr-global/monster/quests/the_dream_courts/bosses/izcandar_the_banished.lua
@@ -120,9 +120,9 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1000 },
{ name = "combat", interval = 3600, chance = 17, type = COMBAT_FIREDAMAGE, minDamage = -500, maxDamage = -1500, length = 5, spread = 2, effect = CONST_ME_FIREAREA, target = false },
- { name = "combat", interval = 4100, chance = 20, type = COMBAT_FIREDAMAGE, minDamage = -500, maxDamage = -2000, length = 8, spread = 0, effect = CONST_ME_FIREAREA, target = false },
+ { name = "combat", interval = 4100, chance = 20, type = COMBAT_FIREDAMAGE, minDamage = -500, maxDamage = -2000, length = 8, spread = 1, effect = CONST_ME_FIREAREA, target = false },
{ name = "combat", interval = 4700, chance = 17, type = COMBAT_ICEDAMAGE, minDamage = -500, maxDamage = -1500, length = 5, spread = 2, effect = CONST_ME_ICEATTACK, target = false },
- { name = "combat", interval = 3100, chance = 20, type = COMBAT_ICEDAMAGE, minDamage = -500, maxDamage = -2000, length = 8, spread = 0, effect = CONST_ME_ICETORNADO, target = false },
+ { name = "combat", interval = 3100, chance = 20, type = COMBAT_ICEDAMAGE, minDamage = -500, maxDamage = -2000, length = 8, spread = 1, effect = CONST_ME_ICETORNADO, target = false },
{ name = "speed", interval = 2000, chance = 15, speedChange = -700, radius = 1, effect = CONST_ME_MAGIC_RED, target = true, duration = 30000 },
}
diff --git a/data-otservbr-global/monster/quests/the_dream_courts/bosses/plagueroot.lua b/data-otservbr-global/monster/quests/the_dream_courts/bosses/plagueroot.lua
index 3d436e2b83d..2ee7c11ca54 100644
--- a/data-otservbr-global/monster/quests/the_dream_courts/bosses/plagueroot.lua
+++ b/data-otservbr-global/monster/quests/the_dream_courts/bosses/plagueroot.lua
@@ -141,8 +141,8 @@ monster.attacks = {
{ name = "combat", interval = 1000, chance = 50, type = COMBAT_FIREDAMAGE, minDamage = -20, maxDamage = -100, radius = 5, effect = CONST_ME_BLOCKHIT, target = false },
{ name = "firefield", interval = 1000, chance = 4, radius = 8, effect = CONST_ME_EXPLOSIONHIT, target = false },
{ name = "combat", interval = 1000, chance = 34, type = COMBAT_FIREDAMAGE, minDamage = -350, maxDamage = -650, range = 7, radius = 7, shootEffect = CONST_ANI_FIRE, effect = CONST_ME_FIREAREA, target = true },
- { name = "combat", interval = 1000, chance = 13, type = COMBAT_FIREDAMAGE, minDamage = -250, maxDamage = -600, length = 8, spread = 3, effect = CONST_ME_EXPLOSIONHIT, target = false },
- { name = "combat", interval = 1000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -350, maxDamage = -600, length = 8, spread = 3, effect = CONST_ME_FIREAREA, target = false },
+ { name = "combat", interval = 1000, chance = 13, type = COMBAT_FIREDAMAGE, minDamage = -250, maxDamage = -600, length = 8, spread = 1, effect = CONST_ME_EXPLOSIONHIT, target = false },
+ { name = "combat", interval = 1000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -350, maxDamage = -600, length = 8, spread = 1, effect = CONST_ME_FIREAREA, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_dream_courts/mind-wrecking_dream.lua b/data-otservbr-global/monster/quests/the_dream_courts/mind-wrecking_dream.lua
index 4554534149b..d5a71ea1058 100644
--- a/data-otservbr-global/monster/quests/the_dream_courts/mind-wrecking_dream.lua
+++ b/data-otservbr-global/monster/quests/the_dream_courts/mind-wrecking_dream.lua
@@ -67,8 +67,8 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -320 },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -165, range = 7, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_MORTAREA, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -350, maxDamage = -720, length = 8, spread = 3, target = false },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -300, length = 7, spread = 3, effect = CONST_ME_EXPLOSIONAREA, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -350, maxDamage = -720, length = 8, spread = 1, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -300, length = 7, spread = 1, effect = CONST_ME_EXPLOSIONAREA, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -225, maxDamage = -275, radius = 4, target = false },
}
diff --git a/data-otservbr-global/monster/quests/the_dream_courts/plant_abomination.lua b/data-otservbr-global/monster/quests/the_dream_courts/plant_abomination.lua
index 41517061f49..d8d14878c4d 100644
--- a/data-otservbr-global/monster/quests/the_dream_courts/plant_abomination.lua
+++ b/data-otservbr-global/monster/quests/the_dream_courts/plant_abomination.lua
@@ -67,7 +67,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -150 },
{ name = "combat", interval = 2000, chance = 5, type = COMBAT_MANADRAIN, minDamage = -30, maxDamage = -100, radius = 4, effect = CONST_ME_GREEN_RINGS, target = false },
- { name = "speed", interval = 2000, chance = 15, speedChange = -700, length = 5, spread = 3, effect = CONST_ME_SMALLPLANTS, target = false, duration = 15000 },
+ { name = "speed", interval = 2000, chance = 15, speedChange = -700, length = 5, spread = 1, effect = CONST_ME_SMALLPLANTS, target = false, duration = 15000 },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -100, range = 7, radius = 1, shootEffect = CONST_ANI_SMALLEARTH, effect = CONST_ME_CARNIPHILA, target = true },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -55, maxDamage = -100, radius = 4, effect = CONST_ME_HITBYPOISON, target = true },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_EARTHDAMAGE, radius = 1, effect = CONST_ME_POISONAREA, target = false },
diff --git a/data-otservbr-global/monster/quests/the_elemental_spheres/blistering_fire_elemental.lua b/data-otservbr-global/monster/quests/the_elemental_spheres/blistering_fire_elemental.lua
index 3991aa6ae98..b6109507f38 100644
--- a/data-otservbr-global/monster/quests/the_elemental_spheres/blistering_fire_elemental.lua
+++ b/data-otservbr-global/monster/quests/the_elemental_spheres/blistering_fire_elemental.lua
@@ -71,7 +71,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -350 },
- { name = "combat", interval = 1000, chance = 11, type = COMBAT_FIREDAMAGE, minDamage = -65, maxDamage = -510, length = 7, spread = 3, target = false },
+ { name = "combat", interval = 1000, chance = 11, type = COMBAT_FIREDAMAGE, minDamage = -65, maxDamage = -510, length = 7, spread = 1, target = false },
-- fire
{ name = "condition", type = CONDITION_FIRE, interval = 1000, chance = 12, minDamage = -50, maxDamage = -200, radius = 6, effect = CONST_ME_FIREAREA, target = false },
{ name = "firefield", interval = 1000, chance = 15, range = 7, radius = 3, shootEffect = CONST_ANI_FIRE, target = true },
diff --git a/data-otservbr-global/monster/quests/the_elemental_spheres/earth_overlord.lua b/data-otservbr-global/monster/quests/the_elemental_spheres/earth_overlord.lua
index 33251b292d5..214113740eb 100644
--- a/data-otservbr-global/monster/quests/the_elemental_spheres/earth_overlord.lua
+++ b/data-otservbr-global/monster/quests/the_elemental_spheres/earth_overlord.lua
@@ -79,7 +79,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -400 },
- { name = "combat", interval = 1000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = 0, maxDamage = -800, length = 7, spread = 3, effect = CONST_ME_STONES, target = false },
+ { name = "combat", interval = 1000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = 0, maxDamage = -800, length = 7, spread = 1, effect = CONST_ME_STONES, target = false },
{ name = "combat", interval = 1000, chance = 9, type = COMBAT_EARTHDAMAGE, minDamage = 0, maxDamage = -490, radius = 6, effect = CONST_ME_BIGPLANTS, target = false },
{ name = "speed", interval = 2000, chance = 20, speedChange = -750, range = 7, effect = CONST_ME_MAGIC_RED, target = false, duration = 4000 },
}
diff --git a/data-otservbr-global/monster/quests/the_elemental_spheres/energy_overlord.lua b/data-otservbr-global/monster/quests/the_elemental_spheres/energy_overlord.lua
index 844a6504d33..e813f247f6d 100644
--- a/data-otservbr-global/monster/quests/the_elemental_spheres/energy_overlord.lua
+++ b/data-otservbr-global/monster/quests/the_elemental_spheres/energy_overlord.lua
@@ -74,7 +74,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -800, length = 7, spread = 3, effect = CONST_ME_PURPLEENERGY, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -800, length = 7, spread = 1, effect = CONST_ME_PURPLEENERGY, target = false },
{ name = "combat", interval = 1000, chance = 11, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -200, range = 3, effect = CONST_ME_PURPLEENERGY, target = true },
{ name = "combat", interval = 1000, chance = 9, type = COMBAT_EARTHDAMAGE, minDamage = -50, maxDamage = -200, radius = 5, effect = CONST_ME_BIGPLANTS, target = false },
}
diff --git a/data-otservbr-global/monster/quests/the_elemental_spheres/fire_overlord.lua b/data-otservbr-global/monster/quests/the_elemental_spheres/fire_overlord.lua
index 7364324263d..37bbfdea968 100644
--- a/data-otservbr-global/monster/quests/the_elemental_spheres/fire_overlord.lua
+++ b/data-otservbr-global/monster/quests/the_elemental_spheres/fire_overlord.lua
@@ -77,7 +77,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -450, condition = { type = CONDITION_FIRE, totalDamage = 650, interval = 9000 } },
{ name = "firefield", interval = 2000, chance = 15, range = 7, radius = 4, shootEffect = CONST_ANI_FIRE, target = true },
- { name = "combat", interval = 1000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -300, maxDamage = -900, length = 1, spread = 0, effect = CONST_ME_FIREATTACK, target = false },
+ { name = "combat", interval = 1000, chance = 15, type = COMBAT_FIREDAMAGE, minDamage = -300, maxDamage = -900, length = 1, spread = 1, effect = CONST_ME_FIREATTACK, target = false },
{ name = "combat", interval = 1000, chance = 13, type = COMBAT_FIREDAMAGE, minDamage = -200, maxDamage = -350, radius = 4, effect = CONST_ME_FIREAREA, target = true },
}
diff --git a/data-otservbr-global/monster/quests/the_elemental_spheres/jagged_earth_elemental.lua b/data-otservbr-global/monster/quests/the_elemental_spheres/jagged_earth_elemental.lua
index 15cd6582e71..6fb06f71e46 100644
--- a/data-otservbr-global/monster/quests/the_elemental_spheres/jagged_earth_elemental.lua
+++ b/data-otservbr-global/monster/quests/the_elemental_spheres/jagged_earth_elemental.lua
@@ -76,7 +76,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -300 },
- { name = "combat", interval = 1000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -100, maxDamage = -250, length = 6, spread = 3, effect = CONST_ME_STONES, target = false },
+ { name = "combat", interval = 1000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -100, maxDamage = -250, length = 6, spread = 1, effect = CONST_ME_STONES, target = false },
{ name = "combat", interval = 1000, chance = 11, type = COMBAT_EARTHDAMAGE, minDamage = 0, maxDamage = -200, range = 7, radius = 6, shootEffect = CONST_ANI_SMALLEARTH, effect = CONST_ME_POISONAREA, target = true },
}
diff --git a/data-otservbr-global/monster/quests/the_elemental_spheres/muddy_earth_elemental.lua b/data-otservbr-global/monster/quests/the_elemental_spheres/muddy_earth_elemental.lua
index 8970e739266..0713cdf0705 100644
--- a/data-otservbr-global/monster/quests/the_elemental_spheres/muddy_earth_elemental.lua
+++ b/data-otservbr-global/monster/quests/the_elemental_spheres/muddy_earth_elemental.lua
@@ -74,7 +74,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -160 },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -25, maxDamage = -155, range = 7, radius = 2, effect = CONST_ME_STONES, target = true },
-- poison
- { name = "condition", type = CONDITION_POISON, interval = 1000, chance = 10, minDamage = 0, maxDamage = -26, length = 6, spread = 3, effect = CONST_ME_GROUNDSHAKER, target = false },
+ { name = "condition", type = CONDITION_POISON, interval = 1000, chance = 10, minDamage = 0, maxDamage = -26, length = 6, spread = 1, effect = CONST_ME_GROUNDSHAKER, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_inquisition/ungreez.lua b/data-otservbr-global/monster/quests/the_inquisition/ungreez.lua
index c19b2199920..2c6f5688324 100644
--- a/data-otservbr-global/monster/quests/the_inquisition/ungreez.lua
+++ b/data-otservbr-global/monster/quests/the_inquisition/ungreez.lua
@@ -80,7 +80,7 @@ monster.attacks = {
{ name = "combat", interval = 2000, chance = 13, type = COMBAT_MANADRAIN, minDamage = 0, maxDamage = -110, range = 7, shootEffect = CONST_ANI_SUDDENDEATH, target = false },
{ name = "combat", interval = 1000, chance = 14, type = COMBAT_FIREDAMAGE, minDamage = -150, maxDamage = -250, range = 7, radius = 7, shootEffect = CONST_ANI_FIRE, effect = CONST_ME_FIREAREA, target = true },
{ name = "combat", interval = 2000, chance = 18, type = COMBAT_ENERGYDAMAGE, minDamage = -200, maxDamage = -400, shootEffect = CONST_ANI_ENERGY, effect = CONST_ME_PURPLEENERGY, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = -300, maxDamage = -380, length = 8, spread = 3, effect = CONST_ME_PURPLEENERGY, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = -300, maxDamage = -380, length = 8, spread = 1, effect = CONST_ME_PURPLEENERGY, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_order_of_lion/bosses/ancient_lion_knight.lua b/data-otservbr-global/monster/quests/the_order_of_lion/bosses/ancient_lion_knight.lua
index 9118397f72b..715dc63169b 100644
--- a/data-otservbr-global/monster/quests/the_order_of_lion/bosses/ancient_lion_knight.lua
+++ b/data-otservbr-global/monster/quests/the_order_of_lion/bosses/ancient_lion_knight.lua
@@ -97,10 +97,10 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -750, effect = CONST_ME_DRAWBLOOD },
- { name = "combat", interval = 6000, chance = 30, type = COMBAT_HOLYDAMAGE, minDamage = -450, maxDamage = -750, length = 8, spread = 3, effect = CONST_ME_HOLYAREA, target = false },
+ { name = "combat", interval = 6000, chance = 30, type = COMBAT_HOLYDAMAGE, minDamage = -450, maxDamage = -750, length = 8, spread = 1, effect = CONST_ME_HOLYAREA, target = false },
{ name = "combat", interval = 2750, chance = 20, type = COMBAT_DEATHDAMAGE, minDamage = -400, maxDamage = -800, range = 7, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_MORTAREA, target = false },
{ name = "combat", interval = 2500, chance = 22, type = COMBAT_DEATHDAMAGE, minDamage = -400, maxDamage = -500, radius = 3, effect = CONST_ME_MORTAREA, target = false },
- { name = "combat", interval = 3300, chance = 24, type = COMBAT_ICEDAMAGE, minDamage = -250, maxDamage = -350, length = 4, spread = 0, effect = CONST_ME_ICEATTACK, target = false },
+ { name = "combat", interval = 3300, chance = 24, type = COMBAT_ICEDAMAGE, minDamage = -250, maxDamage = -350, length = 4, spread = 1, effect = CONST_ME_ICEATTACK, target = false },
{ name = "combat", interval = 3000, chance = 20, type = COMBAT_ENERGYDAMAGE, minDamage = -200, maxDamage = -500, radius = 4, effect = CONST_ME_BIGCLOUDS, target = false },
}
diff --git a/data-otservbr-global/monster/quests/the_order_of_lion/bosses/drume.lua b/data-otservbr-global/monster/quests/the_order_of_lion/bosses/drume.lua
index 646a665c4b4..76076de957d 100644
--- a/data-otservbr-global/monster/quests/the_order_of_lion/bosses/drume.lua
+++ b/data-otservbr-global/monster/quests/the_order_of_lion/bosses/drume.lua
@@ -127,11 +127,11 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -1100, effect = CONST_ME_DRAWBLOOD },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_HOLYDAMAGE, minDamage = -850, maxDamage = -1150, length = 8, spread = 3, effect = CONST_ME_HOLYAREA, target = false },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_DEATHDAMAGE, minDamage = -800, maxDamage = -1200, range = 7, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_MORTAREA, target = false },
- { name = "combat", interval = 2000, chance = 22, type = COMBAT_DEATHDAMAGE, minDamage = -800, maxDamage = -1000, radius = 3, effect = CONST_ME_MORTAREA, target = false },
- { name = "combat", interval = 2000, chance = 24, type = COMBAT_ICEDAMAGE, minDamage = -700, maxDamage = -900, length = 4, spread = 0, effect = CONST_ME_ICEATTACK, target = false },
- { name = "singlecloudchain", interval = 2000, chance = 34, minDamage = -600, maxDamage = -1100, range = 4, effect = CONST_ME_ENERGYHIT, target = true },
+ { name = "combat", interval = 2700, chance = 25, type = COMBAT_HOLYDAMAGE, minDamage = -850, maxDamage = -1150, length = 8, spread = 1, effect = CONST_ME_HOLYAREA, target = false },
+ { name = "combat", interval = 3100, chance = 20, type = COMBAT_DEATHDAMAGE, minDamage = -800, maxDamage = -1200, range = 7, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_MORTAREA, target = false },
+ { name = "combat", interval = 3300, chance = 22, type = COMBAT_DEATHDAMAGE, minDamage = -800, maxDamage = -1000, radius = 3, effect = CONST_ME_MORTAREA, target = false },
+ { name = "combat", interval = 3700, chance = 24, type = COMBAT_ICEDAMAGE, minDamage = -700, maxDamage = -900, length = 4, spread = 1, effect = CONST_ME_ICEATTACK, target = false },
+ { name = "singlecloudchain", interval = 2100, chance = 34, minDamage = -600, maxDamage = -1100, range = 4, effect = CONST_ME_ENERGYHIT, target = true },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_order_of_lion/bosses/kesar.lua b/data-otservbr-global/monster/quests/the_order_of_lion/bosses/kesar.lua
index a3db694f72c..fcd5ca8dbff 100644
--- a/data-otservbr-global/monster/quests/the_order_of_lion/bosses/kesar.lua
+++ b/data-otservbr-global/monster/quests/the_order_of_lion/bosses/kesar.lua
@@ -70,11 +70,11 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -750, effect = CONST_ME_DRAWBLOOD },
- { name = "combat", interval = 4000, chance = 15, type = COMBAT_HOLYDAMAGE, minDamage = -450, maxDamage = -750, length = 8, spread = 3, effect = CONST_ME_HOLYAREA, target = false },
+ { name = "combat", interval = 4000, chance = 15, type = COMBAT_HOLYDAMAGE, minDamage = -450, maxDamage = -750, length = 8, spread = 1, effect = CONST_ME_HOLYAREA, target = false },
{ name = "combat", interval = 2750, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -400, maxDamage = -800, range = 7, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_MORTAREA, target = false },
{ name = "singledeathchain", interval = 4000, chance = 15, minDamage = -250, maxDamage = -530, range = 5, effect = CONST_ME_MORTAREA, target = true },
{ name = "singleicechain", interval = 4000, chance = 18, minDamage = -150, maxDamage = -450, range = 5, effect = CONST_ME_ICEATTACK, target = true },
- { name = "combat", interval = 3300, chance = 12, type = COMBAT_ICEDAMAGE, minDamage = -250, maxDamage = -350, length = 4, spread = 0, effect = CONST_ME_ICEATTACK, target = false },
+ { name = "combat", interval = 3300, chance = 12, type = COMBAT_ICEDAMAGE, minDamage = -250, maxDamage = -350, length = 4, spread = 1, effect = CONST_ME_ICEATTACK, target = false },
{ name = "singlecloudchain", interval = 6000, chance = 17, minDamage = -200, maxDamage = -450, range = 4, effect = CONST_ME_ENERGYHIT, target = true },
}
diff --git a/data-otservbr-global/monster/quests/the_order_of_lion/usurper_commander.lua b/data-otservbr-global/monster/quests/the_order_of_lion/usurper_commander.lua
index fd31fa62806..3f5e67a915f 100644
--- a/data-otservbr-global/monster/quests/the_order_of_lion/usurper_commander.lua
+++ b/data-otservbr-global/monster/quests/the_order_of_lion/usurper_commander.lua
@@ -81,7 +81,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -500, effect = CONST_ME_DRAWBLOOD },
{ name = "combat", interval = 4000, chance = 14, type = COMBAT_DEATHDAMAGE, minDamage = -150, maxDamage = -300, radius = 3, effect = CONST_ME_MORTAREA, target = false },
- { name = "combat", interval = 4000, chance = 20, type = COMBAT_ICEDAMAGE, minDamage = -150, maxDamage = -400, length = 4, spread = 0, effect = CONST_ME_ICEATTACK, target = false },
+ { name = "combat", interval = 4000, chance = 20, type = COMBAT_ICEDAMAGE, minDamage = -150, maxDamage = -400, length = 4, spread = 1, effect = CONST_ME_ICEATTACK, target = false },
{ name = "singlecloudchain", interval = 6000, chance = 17, minDamage = -200, maxDamage = -450, range = 4, effect = CONST_ME_ENERGYHIT, target = true },
{ name = "singledeathchain", interval = 6000, chance = 15, minDamage = -250, maxDamage = -530, range = 5, effect = CONST_ME_MORTAREA, target = true },
}
diff --git a/data-otservbr-global/monster/quests/the_percht_queens_island/bonny_bunny.lua b/data-otservbr-global/monster/quests/the_percht_queens_island/bonny_bunny.lua
index 31f0973a229..b8d9081ec38 100644
--- a/data-otservbr-global/monster/quests/the_percht_queens_island/bonny_bunny.lua
+++ b/data-otservbr-global/monster/quests/the_percht_queens_island/bonny_bunny.lua
@@ -63,7 +63,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -100, maxDamage = -200 },
- { name = "combat", interval = 2000, chance = 50, type = COMBAT_FIREDAMAGE, minDamage = -90, maxDamage = -150, length = 4, spread = 3, effect = CONST_ME_HEARTS, target = false },
+ { name = "combat", interval = 2000, chance = 50, type = COMBAT_FIREDAMAGE, minDamage = -90, maxDamage = -150, length = 4, spread = 1, effect = CONST_ME_HEARTS, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_percht_queens_island/percht.lua b/data-otservbr-global/monster/quests/the_percht_queens_island/percht.lua
index 0a13a064493..6689c086cb8 100644
--- a/data-otservbr-global/monster/quests/the_percht_queens_island/percht.lua
+++ b/data-otservbr-global/monster/quests/the_percht_queens_island/percht.lua
@@ -89,10 +89,10 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -100, maxDamage = -200 },
{ name = "combat", interval = 2000, chance = 70, type = COMBAT_ICEDAMAGE, minDamage = -100, maxDamage = -125, range = 7, shootEffect = CONST_ANI_SNOWBALL, target = false },
- { name = "combat", interval = 2000, chance = 50, type = COMBAT_ICEDAMAGE, minDamage = -90, maxDamage = -250, length = 3, spread = 0, effect = CONST_ME_GIANTICE, target = false },
+ { name = "combat", interval = 2000, chance = 50, type = COMBAT_ICEDAMAGE, minDamage = -90, maxDamage = -250, length = 3, spread = 1, effect = CONST_ME_GIANTICE, target = false },
{ name = "combat", interval = 2000, chance = 50, type = COMBAT_FIREDAMAGE, minDamage = -100, maxDamage = -250, radius = 3, effect = CONST_ME_FIREAREA, target = true },
{ name = "combat", interval = 2000, chance = 50, type = COMBAT_FIREDAMAGE, minDamage = -100, maxDamage = -250, radius = 4, effect = CONST_ME_EXPLOSIONHIT, target = false },
- { name = "combat", interval = 2000, chance = 50, type = COMBAT_FIREDAMAGE, minDamage = -100, maxDamage = -250, length = 3, spread = 0, effect = CONST_ME_FIREATTACK, target = false },
+ { name = "combat", interval = 2000, chance = 50, type = COMBAT_FIREDAMAGE, minDamage = -100, maxDamage = -250, length = 3, spread = 1, effect = CONST_ME_FIREATTACK, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_percht_queens_island/schiach.lua b/data-otservbr-global/monster/quests/the_percht_queens_island/schiach.lua
index 747e9604bb3..fe714dc1e88 100644
--- a/data-otservbr-global/monster/quests/the_percht_queens_island/schiach.lua
+++ b/data-otservbr-global/monster/quests/the_percht_queens_island/schiach.lua
@@ -86,10 +86,10 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -100, maxDamage = -200 },
{ name = "combat", interval = 2000, chance = 70, type = COMBAT_ICEDAMAGE, minDamage = -100, maxDamage = -125, range = 7, shootEffect = CONST_ANI_SNOWBALL, target = false },
- { name = "combat", interval = 2000, chance = 50, type = COMBAT_ICEDAMAGE, minDamage = -90, maxDamage = -250, length = 3, spread = 0, effect = CONST_ME_GIANTICE, target = false },
+ { name = "combat", interval = 2000, chance = 50, type = COMBAT_ICEDAMAGE, minDamage = -90, maxDamage = -250, length = 3, spread = 1, effect = CONST_ME_GIANTICE, target = false },
{ name = "combat", interval = 2000, chance = 50, type = COMBAT_FIREDAMAGE, minDamage = -100, maxDamage = -250, radius = 3, effect = CONST_ME_FIREAREA, target = true },
{ name = "combat", interval = 2000, chance = 50, type = COMBAT_FIREDAMAGE, minDamage = -100, maxDamage = -250, radius = 4, effect = CONST_ME_EXPLOSIONHIT, target = false },
- { name = "combat", interval = 2000, chance = 50, type = COMBAT_FIREDAMAGE, minDamage = -100, maxDamage = -250, length = 3, spread = 0, effect = CONST_ME_FIREATTACK, target = false },
+ { name = "combat", interval = 2000, chance = 50, type = COMBAT_FIREDAMAGE, minDamage = -100, maxDamage = -250, length = 3, spread = 1, effect = CONST_ME_FIREATTACK, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/biting_cold.lua b/data-otservbr-global/monster/quests/the_secret_library/biting_cold.lua
index 188854deca0..7d5b3a34ce7 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/biting_cold.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/biting_cold.lua
@@ -64,7 +64,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -450 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/bone_jaw.lua b/data-otservbr-global/monster/quests/the_secret_library/bone_jaw.lua
index 9d4d97cd3e8..d1e2f4cf56f 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/bone_jaw.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/bone_jaw.lua
@@ -64,7 +64,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/bosses/ghulosh.lua b/data-otservbr-global/monster/quests/the_secret_library/bosses/ghulosh.lua
index 4324a573ec4..c11a622fa3b 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/bosses/ghulosh.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/bosses/ghulosh.lua
@@ -105,8 +105,8 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 1000, chance = 100, skill = 150, attack = 280 },
- { name = "combat", interval = 2000, chance = 12, type = COMBAT_DEATHDAMAGE, minDamage = -900, maxDamage = -1500, length = 8, spread = 3, effect = CONST_ME_MORTAREA, target = false },
- { name = "combat", interval = 2000, chance = 12, type = COMBAT_DEATHDAMAGE, minDamage = -210, maxDamage = -600, length = 8, spread = 3, effect = CONST_ME_MORTAREA, target = false },
+ { name = "combat", interval = 2000, chance = 12, type = COMBAT_DEATHDAMAGE, minDamage = -900, maxDamage = -1500, length = 8, spread = 1, effect = CONST_ME_MORTAREA, target = false },
+ { name = "combat", interval = 2000, chance = 12, type = COMBAT_DEATHDAMAGE, minDamage = -210, maxDamage = -600, length = 8, spread = 1, effect = CONST_ME_MORTAREA, target = false },
{ name = "combat", interval = 2000, chance = 12, type = COMBAT_DEATHDAMAGE, minDamage = -210, maxDamage = -600, range = 7, radius = 3, effect = CONST_ME_MORTAREA, target = false },
{ name = "melee", interval = 2000, chance = 100, skill = 90, attack = 250 },
{ name = "combat", interval = 2000, chance = 12, type = COMBAT_LIFEDRAIN, minDamage = -1500, maxDamage = -2000, range = 7, radius = 3, target = false },
diff --git a/data-otservbr-global/monster/quests/the_secret_library/bosses/grand_canon_dominus.lua b/data-otservbr-global/monster/quests/the_secret_library/bosses/grand_canon_dominus.lua
index 324701dac3b..d0ed39a7e6e 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/bosses/grand_canon_dominus.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/bosses/grand_canon_dominus.lua
@@ -86,7 +86,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -150, maxDamage = -700 },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -100, maxDamage = -720, range = 7, shootEffect = CONST_ANI_ETHEREALSPEAR, target = false },
- { name = "combat", interval = 2000, chance = 14, type = COMBAT_HOLYDAMAGE, minDamage = -100, maxDamage = -1000, length = 8, spread = 3, effect = CONST_ME_ENERGYHIT, target = false },
+ { name = "combat", interval = 2000, chance = 14, type = COMBAT_HOLYDAMAGE, minDamage = -100, maxDamage = -1000, length = 8, spread = 1, effect = CONST_ME_ENERGYHIT, target = false },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_LIFEDRAIN, minDamage = -200, maxDamage = -700, range = 5, radius = 3, effect = CONST_ME_HOLYAREA, target = false },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_LIFEDRAIN, minDamage = -200, maxDamage = -700, range = 5, radius = 3, effect = CONST_ME_SMALLCLOUDS, target = false },
}
diff --git a/data-otservbr-global/monster/quests/the_secret_library/bosses/grand_chaplain_gaunder.lua b/data-otservbr-global/monster/quests/the_secret_library/bosses/grand_chaplain_gaunder.lua
index bd22561f584..9240bdab188 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/bosses/grand_chaplain_gaunder.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/bosses/grand_chaplain_gaunder.lua
@@ -94,7 +94,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -150, maxDamage = -850 },
{ name = "combat", interval = 1500, chance = 15, type = COMBAT_LIFEDRAIN, minDamage = -380, maxDamage = -890, range = 4, radius = 4, effect = CONST_ME_HITBYPOISON, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -290, maxDamage = -720, range = 7, shootEffect = CONST_ANI_ETHEREALSPEAR, target = false },
- { name = "combat", interval = 1500, chance = 14, type = COMBAT_HOLYDAMAGE, minDamage = -300, maxDamage = -1000, length = 8, spread = 3, effect = CONST_ME_BLOCKHIT, target = false },
+ { name = "combat", interval = 1500, chance = 14, type = COMBAT_HOLYDAMAGE, minDamage = -300, maxDamage = -1000, length = 8, spread = 1, effect = CONST_ME_BLOCKHIT, target = false },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_LIFEDRAIN, minDamage = -200, maxDamage = -700, range = 5, radius = 3, effect = CONST_ME_SMALLCLOUDS, target = false },
}
diff --git a/data-otservbr-global/monster/quests/the_secret_library/bosses/grand_commander_soeren.lua b/data-otservbr-global/monster/quests/the_secret_library/bosses/grand_commander_soeren.lua
index 9e8a232f9df..3396fe9a092 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/bosses/grand_commander_soeren.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/bosses/grand_commander_soeren.lua
@@ -88,7 +88,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -150, maxDamage = -700 },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -200, maxDamage = -720, range = 7, shootEffect = CONST_ANI_ROYALSPEAR, target = false },
- { name = "combat", interval = 1000, chance = 14, type = COMBAT_HOLYDAMAGE, minDamage = -500, maxDamage = -1000, length = 8, spread = 3, effect = CONST_ME_BLOCKHIT, target = false },
+ { name = "combat", interval = 1000, chance = 14, type = COMBAT_HOLYDAMAGE, minDamage = -500, maxDamage = -1000, length = 8, spread = 1, effect = CONST_ME_BLOCKHIT, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/bosses/thawing_dragon_lord.lua b/data-otservbr-global/monster/quests/the_secret_library/bosses/thawing_dragon_lord.lua
index 032b61dba4a..8344d3debb6 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/bosses/thawing_dragon_lord.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/bosses/thawing_dragon_lord.lua
@@ -74,7 +74,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -300 },
{ name = "ice crystal bomb", interval = 2000, chance = 30, minDamage = -600, maxDamage = -700, target = true },
- { name = "fire wave", interval = 2000, chance = 30, minDamage = -800, maxDamage = -1200, length = 1, spread = 0, target = true },
+ { name = "fire wave", interval = 2000, chance = 30, minDamage = -800, maxDamage = -1200, length = 1, spread = 1, target = true },
{ name = "speed", interval = 1000, chance = 12, speedChange = -250, radius = 6, effect = CONST_ME_HITBYFIRE, target = false, duration = 60000 },
{ name = "firefield", interval = 1000, chance = 10, range = 7, radius = 4, shootEffect = CONST_ANI_FIRE, target = true },
}
diff --git a/data-otservbr-global/monster/quests/the_secret_library/bosses/the_scourge_of_oblivion.lua b/data-otservbr-global/monster/quests/the_secret_library/bosses/the_scourge_of_oblivion.lua
index 5965afef0a3..507026f3be1 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/bosses/the_scourge_of_oblivion.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/bosses/the_scourge_of_oblivion.lua
@@ -130,14 +130,14 @@ monster.attacks = {
{ name = "combat", interval = 2000, chance = 8, type = COMBAT_FIREDAMAGE, minDamage = -1550, maxDamage = -2550, range = 7, radius = 7, shootEffect = CONST_ANI_FIRE, effect = CONST_ME_FIREAREA, target = true },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = -1075, maxDamage = -2405, range = 7, shootEffect = CONST_ANI_ENERGYBALL, effect = CONST_ME_ENERGYHIT, target = true },
{ name = "combat", interval = 1000, chance = 20, type = COMBAT_LIFEDRAIN, minDamage = -600, maxDamage = -1500, radius = 8, effect = CONST_ME_LOSEENERGY, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -750, maxDamage = -1200, length = 8, spread = 3, effect = CONST_ME_PURPLEENERGY, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -750, maxDamage = -1200, length = 8, spread = 1, effect = CONST_ME_PURPLEENERGY, target = false },
{ name = "choking fear drown", interval = 2000, chance = 20, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_DEATHDAMAGE, minDamage = -450, maxDamage = -1400, radius = 4, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_MORTAREA, target = true },
{ name = "combat", interval = 1000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -800, maxDamage = -2300, radius = 8, effect = CONST_ME_MAGIC_GREEN, target = false },
{ name = "speed", interval = 1000, chance = 12, speedChange = -800, radius = 6, effect = CONST_ME_POISONAREA, target = false, duration = 60000 },
{ name = "strength", interval = 1000, chance = 8, radius = 5, effect = CONST_ME_HITAREA, target = false },
{ name = "combat", interval = 1000, chance = 34, type = COMBAT_FIREDAMAGE, minDamage = -100, maxDamage = -700, range = 7, radius = 7, shootEffect = CONST_ANI_FIRE, effect = CONST_ME_FIREAREA, target = true },
- { name = "combat", interval = 1000, chance = 15, type = COMBAT_LIFEDRAIN, minDamage = -300, maxDamage = -950, length = 8, spread = 3, effect = CONST_ME_MAGIC_RED, target = false },
+ { name = "combat", interval = 1000, chance = 15, type = COMBAT_LIFEDRAIN, minDamage = -300, maxDamage = -950, length = 8, spread = 1, effect = CONST_ME_MAGIC_RED, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/brother_chill.lua b/data-otservbr-global/monster/quests/the_secret_library/brother_chill.lua
index 12400ddc549..9d3c3b21ce0 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/brother_chill.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/brother_chill.lua
@@ -64,7 +64,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/brother_freeze.lua b/data-otservbr-global/monster/quests/the_secret_library/brother_freeze.lua
index c940834f45d..b910cf65969 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/brother_freeze.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/brother_freeze.lua
@@ -64,7 +64,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/concentrated_death.lua b/data-otservbr-global/monster/quests/the_secret_library/concentrated_death.lua
index 35f46d2eaaf..6c78194b72b 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/concentrated_death.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/concentrated_death.lua
@@ -67,7 +67,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/dazed_leaf_golem.lua b/data-otservbr-global/monster/quests/the_secret_library/dazed_leaf_golem.lua
index c42fe94b9a6..0151194b9a4 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/dazed_leaf_golem.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/dazed_leaf_golem.lua
@@ -78,7 +78,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/demon_blood.lua b/data-otservbr-global/monster/quests/the_secret_library/demon_blood.lua
index 88b762e2c71..4dc9c881ede 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/demon_blood.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/demon_blood.lua
@@ -64,7 +64,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/demon_slave.lua b/data-otservbr-global/monster/quests/the_secret_library/demon_slave.lua
index dc40725c264..168d813ff1e 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/demon_slave.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/demon_slave.lua
@@ -64,7 +64,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/furious_scorpion.lua b/data-otservbr-global/monster/quests/the_secret_library/furious_scorpion.lua
index 5afc7f32c6f..8f58c549c32 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/furious_scorpion.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/furious_scorpion.lua
@@ -66,7 +66,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/imp_intruder.lua b/data-otservbr-global/monster/quests/the_secret_library/imp_intruder.lua
index 15b824d749f..cb44fb2dd8e 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/imp_intruder.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/imp_intruder.lua
@@ -64,7 +64,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/invading_demon.lua b/data-otservbr-global/monster/quests/the_secret_library/invading_demon.lua
index b14dea67f69..068559329bd 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/invading_demon.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/invading_demon.lua
@@ -64,7 +64,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/jailer.lua b/data-otservbr-global/monster/quests/the_secret_library/jailer.lua
index c3dc4a60450..f95c2f1cbd6 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/jailer.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/jailer.lua
@@ -72,7 +72,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/librarian.lua b/data-otservbr-global/monster/quests/the_secret_library/librarian.lua
index fe87ae2ff34..5fbc1c8b1a5 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/librarian.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/librarian.lua
@@ -64,7 +64,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/malicious_minion.lua b/data-otservbr-global/monster/quests/the_secret_library/malicious_minion.lua
index ad77095f69b..852d72ed4fa 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/malicious_minion.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/malicious_minion.lua
@@ -64,7 +64,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/mazzinor.lua b/data-otservbr-global/monster/quests/the_secret_library/mazzinor.lua
index a9be1bc3221..1d028d9cc05 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/mazzinor.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/mazzinor.lua
@@ -98,8 +98,8 @@ monster.attacks = {
{ name = "divine missile", interval = 2000, chance = 10, minDamage = -135, maxDamage = -700, target = true },
{ name = "berserk", interval = 2000, chance = 20, minDamage = -90, maxDamage = -500, range = 7, target = true },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -135, maxDamage = -280, range = 7, radius = 5, effect = CONST_ME_MAGIC_BLUE, target = true },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -210, maxDamage = -600, length = 8, spread = 3, effect = CONST_ME_ENERGYAREA, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_HOLYDAMAGE, minDamage = -210, maxDamage = -700, length = 8, spread = 3, effect = CONST_ME_HOLYAREA, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -210, maxDamage = -600, length = 8, spread = 1, effect = CONST_ME_ENERGYAREA, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_HOLYDAMAGE, minDamage = -210, maxDamage = -700, length = 8, spread = 1, effect = CONST_ME_HOLYAREA, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/mean_minion.lua b/data-otservbr-global/monster/quests/the_secret_library/mean_minion.lua
index 711ba72ec50..1483e7f53d5 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/mean_minion.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/mean_minion.lua
@@ -64,7 +64,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/ravenous_beyondling.lua b/data-otservbr-global/monster/quests/the_secret_library/ravenous_beyondling.lua
index 56491de9962..e59af78ba82 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/ravenous_beyondling.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/ravenous_beyondling.lua
@@ -64,7 +64,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/rift_breacher.lua b/data-otservbr-global/monster/quests/the_secret_library/rift_breacher.lua
index 24cf9b26ff5..cdf59257afe 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/rift_breacher.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/rift_breacher.lua
@@ -64,7 +64,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/rift_minion.lua b/data-otservbr-global/monster/quests/the_secret_library/rift_minion.lua
index ae1dbfbb604..fd124af8a30 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/rift_minion.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/rift_minion.lua
@@ -64,7 +64,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/rift_spawn.lua b/data-otservbr-global/monster/quests/the_secret_library/rift_spawn.lua
index 69256a4a719..19a68dfffcf 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/rift_spawn.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/rift_spawn.lua
@@ -64,7 +64,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/spawn_of_havoc.lua b/data-otservbr-global/monster/quests/the_secret_library/spawn_of_havoc.lua
index f53a3c675a0..efdcc226a13 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/spawn_of_havoc.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/spawn_of_havoc.lua
@@ -64,7 +64,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/stolen_knowledge_of_armor.lua b/data-otservbr-global/monster/quests/the_secret_library/stolen_knowledge_of_armor.lua
index 0191f7d3dec..8fbdbb061de 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/stolen_knowledge_of_armor.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/stolen_knowledge_of_armor.lua
@@ -64,7 +64,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/stolen_knowledge_of_healing.lua b/data-otservbr-global/monster/quests/the_secret_library/stolen_knowledge_of_healing.lua
index 17491a7b4c3..398f973baed 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/stolen_knowledge_of_healing.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/stolen_knowledge_of_healing.lua
@@ -64,7 +64,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/stolen_knowledge_of_lifesteal.lua b/data-otservbr-global/monster/quests/the_secret_library/stolen_knowledge_of_lifesteal.lua
index 3ff2ce5207a..f5f62182ed5 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/stolen_knowledge_of_lifesteal.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/stolen_knowledge_of_lifesteal.lua
@@ -64,7 +64,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/stolen_knowledge_of_spells.lua b/data-otservbr-global/monster/quests/the_secret_library/stolen_knowledge_of_spells.lua
index 1e319b2a5b3..7d4fef27f52 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/stolen_knowledge_of_spells.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/stolen_knowledge_of_spells.lua
@@ -64,7 +64,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/stolen_knowledge_of_summoning.lua b/data-otservbr-global/monster/quests/the_secret_library/stolen_knowledge_of_summoning.lua
index c591e74ca97..d0e4994e20c 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/stolen_knowledge_of_summoning.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/stolen_knowledge_of_summoning.lua
@@ -64,7 +64,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/the_blazing_rose.lua b/data-otservbr-global/monster/quests/the_secret_library/the_blazing_rose.lua
index 1eca0b0b507..3853e83f8e8 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/the_blazing_rose.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/the_blazing_rose.lua
@@ -69,7 +69,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/the_book_of_secrets.lua b/data-otservbr-global/monster/quests/the_secret_library/the_book_of_secrets.lua
index 8872dfba1ea..a0810a6cb90 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/the_book_of_secrets.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/the_book_of_secrets.lua
@@ -58,7 +58,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/the_devourer_of_secrets.lua b/data-otservbr-global/monster/quests/the_secret_library/the_devourer_of_secrets.lua
index c49ef79f6ca..54827e65cca 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/the_devourer_of_secrets.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/the_devourer_of_secrets.lua
@@ -64,7 +64,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/the_diamond_blossom.lua b/data-otservbr-global/monster/quests/the_secret_library/the_diamond_blossom.lua
index be4d55a6d76..ccdba1ba153 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/the_diamond_blossom.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/the_diamond_blossom.lua
@@ -69,7 +69,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/the_lily_of_night.lua b/data-otservbr-global/monster/quests/the_secret_library/the_lily_of_night.lua
index 457aeaa6f93..42ece8c4842 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/the_lily_of_night.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/the_lily_of_night.lua
@@ -69,7 +69,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/the_scion_of_havoc.lua b/data-otservbr-global/monster/quests/the_secret_library/the_scion_of_havoc.lua
index 23267a626d6..717bacb2fd3 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/the_scion_of_havoc.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/the_scion_of_havoc.lua
@@ -64,7 +64,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/the_spellstealer.lua b/data-otservbr-global/monster/quests/the_secret_library/the_spellstealer.lua
index 810ab9ebd72..446b69e2333 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/the_spellstealer.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/the_spellstealer.lua
@@ -64,7 +64,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/war_servant.lua b/data-otservbr-global/monster/quests/the_secret_library/war_servant.lua
index 8bbf980fe62..124723fdcb3 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/war_servant.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/war_servant.lua
@@ -64,7 +64,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/quests/the_secret_library/yalahari_despoiler.lua b/data-otservbr-global/monster/quests/the_secret_library/yalahari_despoiler.lua
index 892e0d12ac1..608430cabd6 100644
--- a/data-otservbr-global/monster/quests/the_secret_library/yalahari_despoiler.lua
+++ b/data-otservbr-global/monster/quests/the_secret_library/yalahari_despoiler.lua
@@ -64,7 +64,7 @@ monster.loot = {}
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -200 },
{ name = "combat", interval = 1000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -180, range = 7, shootEffect = CONST_ANI_SNOWBALL, effect = CONST_ME_POFF, target = false },
- { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 3, effect = CONST_ME_POFF, target = false },
+ { name = "combat", interval = 1000, chance = 12, type = COMBAT_ENERGYDAMAGE, minDamage = 0, maxDamage = -175, length = 3, spread = 1, effect = CONST_ME_POFF, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/raids/ferumbras.lua b/data-otservbr-global/monster/raids/ferumbras.lua
index 40df72b86a9..f9d3c5c2021 100644
--- a/data-otservbr-global/monster/raids/ferumbras.lua
+++ b/data-otservbr-global/monster/raids/ferumbras.lua
@@ -129,7 +129,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -350 },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_MANADRAIN, minDamage = -500, maxDamage = -700, range = 7, effect = CONST_ME_MAGIC_RED, target = false },
- { name = "combat", interval = 2000, chance = 25, type = COMBAT_LIFEDRAIN, minDamage = -300, maxDamage = -450, length = 8, spread = 3, effect = CONST_ME_HITBYPOISON, target = false },
+ { name = "combat", interval = 2000, chance = 25, type = COMBAT_LIFEDRAIN, minDamage = -300, maxDamage = -450, length = 8, spread = 1, effect = CONST_ME_HITBYPOISON, target = false },
{ name = "combat", interval = 2000, chance = 21, type = COMBAT_LIFEDRAIN, minDamage = -450, maxDamage = -500, radius = 6, effect = CONST_ME_POFF, target = false },
-- poison
{ name = "condition", type = CONDITION_POISON, interval = 2000, chance = 15, minDamage = -20, maxDamage = -40, range = 7, shootEffect = CONST_ANI_POISON, target = false },
diff --git a/data-otservbr-global/monster/raids/furyosa.lua b/data-otservbr-global/monster/raids/furyosa.lua
index 3d5ddc6df47..f230e96e5e7 100644
--- a/data-otservbr-global/monster/raids/furyosa.lua
+++ b/data-otservbr-global/monster/raids/furyosa.lua
@@ -99,9 +99,9 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -625 },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_DEATHDAMAGE, minDamage = -260, maxDamage = -310, radius = 6, effect = CONST_ME_MORTAREA, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -50, maxDamage = -210, length = 8, spread = 3, effect = CONST_ME_BLOCKHIT, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -200, maxDamage = -300, length = 8, spread = 3, effect = CONST_ME_EXPLOSIONAREA, target = false },
- { name = "combat", interval = 2000, chance = 5, type = COMBAT_DEATHDAMAGE, minDamage = -300, maxDamage = -800, length = 8, spread = 3, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_MANADRAIN, minDamage = -50, maxDamage = -210, length = 8, spread = 1, effect = CONST_ME_BLOCKHIT, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_FIREDAMAGE, minDamage = -200, maxDamage = -300, length = 8, spread = 1, effect = CONST_ME_EXPLOSIONAREA, target = false },
+ { name = "combat", interval = 2000, chance = 5, type = COMBAT_DEATHDAMAGE, minDamage = -300, maxDamage = -800, length = 8, spread = 1, target = false },
{ name = "combat", interval = 3000, chance = 18, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -150, radius = 5, effect = CONST_ME_GROUNDSHAKER, target = true },
{ name = "fury skill reducer", interval = 2000, chance = 5, target = false },
}
diff --git a/data-otservbr-global/monster/raids/ghazbaran.lua b/data-otservbr-global/monster/raids/ghazbaran.lua
index da656d181fc..074395a82f5 100644
--- a/data-otservbr-global/monster/raids/ghazbaran.lua
+++ b/data-otservbr-global/monster/raids/ghazbaran.lua
@@ -129,7 +129,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -2191 },
{ name = "combat", interval = 2000, chance = 40, type = COMBAT_PHYSICALDAMAGE, minDamage = -250, maxDamage = -500, range = 7, radius = 6, effect = CONST_ME_HITAREA, target = false },
{ name = "combat", interval = 3000, chance = 34, type = COMBAT_PHYSICALDAMAGE, minDamage = -120, maxDamage = -500, range = 7, radius = 1, shootEffect = CONST_ANI_WHIRLWINDSWORD, target = true },
- { name = "combat", interval = 4000, chance = 30, type = COMBAT_ENERGYDAMAGE, minDamage = -100, maxDamage = -800, length = 8, spread = 3, effect = CONST_ME_MORTAREA, target = false },
+ { name = "combat", interval = 4000, chance = 30, type = COMBAT_ENERGYDAMAGE, minDamage = -100, maxDamage = -800, length = 8, spread = 1, effect = CONST_ME_MORTAREA, target = false },
{ name = "combat", interval = 3000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -200, maxDamage = -480, range = 14, radius = 5, effect = CONST_ME_POFF, target = false },
{ name = "combat", interval = 4000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = -100, maxDamage = -650, range = 7, radius = 13, effect = CONST_ME_BLOCKHIT, target = false },
{ name = "combat", interval = 4000, chance = 18, type = COMBAT_PHYSICALDAMAGE, minDamage = -200, maxDamage = -600, radius = 14, effect = CONST_ME_LOSEENERGY, target = false },
diff --git a/data-otservbr-global/monster/raids/glooth_bomb.lua b/data-otservbr-global/monster/raids/glooth_bomb.lua
index b1973e7b8ec..071f1aeafea 100644
--- a/data-otservbr-global/monster/raids/glooth_bomb.lua
+++ b/data-otservbr-global/monster/raids/glooth_bomb.lua
@@ -81,7 +81,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 110, attack = 50 },
- { name = "combat", interval = 2000, chance = 13, type = COMBAT_PHYSICALDAMAGE, minDamage = -100, maxDamage = -230, length = 3, spread = 0, effect = CONST_ME_GROUNDSHAKER, target = false },
+ { name = "combat", interval = 2000, chance = 13, type = COMBAT_PHYSICALDAMAGE, minDamage = -100, maxDamage = -230, length = 3, spread = 1, effect = CONST_ME_GROUNDSHAKER, target = false },
{ name = "combat", interval = 2000, chance = 12, type = COMBAT_PHYSICALDAMAGE, minDamage = -100, maxDamage = -200, radius = 3, effect = CONST_ME_GROUNDSHAKER, target = false },
{ name = "combat", interval = 2000, chance = 19, type = COMBAT_LIFEDRAIN, minDamage = -50, maxDamage = -225, radius = 5, effect = CONST_ME_MAGIC_RED, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -150, maxDamage = -235, range = 7, radius = 4, shootEffect = CONST_ANI_LARGEROCK, effect = CONST_ME_EXPLOSIONAREA, target = true },
diff --git a/data-otservbr-global/monster/raids/mawhawk.lua b/data-otservbr-global/monster/raids/mawhawk.lua
index 9e879512cfa..b2b8901e5ed 100644
--- a/data-otservbr-global/monster/raids/mawhawk.lua
+++ b/data-otservbr-global/monster/raids/mawhawk.lua
@@ -91,7 +91,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 90, attack = 90 },
- { name = "combat", interval = 1800, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -300, maxDamage = -685, length = 7, spread = 3, effect = CONST_ME_STONES, target = false },
+ { name = "combat", interval = 1800, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -300, maxDamage = -685, length = 7, spread = 1, effect = CONST_ME_STONES, target = false },
{ name = "combat", interval = 2000, chance = 9, type = COMBAT_EARTHDAMAGE, minDamage = -250, maxDamage = -590, radius = 6, effect = CONST_ME_BIGPLANTS, target = false },
}
diff --git a/data-otservbr-global/monster/reptiles/carnivostrich.lua b/data-otservbr-global/monster/reptiles/carnivostrich.lua
index e5fa7948d13..64429106100 100644
--- a/data-otservbr-global/monster/reptiles/carnivostrich.lua
+++ b/data-otservbr-global/monster/reptiles/carnivostrich.lua
@@ -91,12 +91,12 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -500, condition = { type = CONDITION_POISON, totalDamage = 480, interval = 4000 } },
- { name = "combat", interval = 2000, chance = 40, type = COMBAT_PHYSICALDAMAGE, minDamage = -386, maxDamage = -480, range = 7, shootEffect = CONST_ANI_LARGEROCK, target = true },
- { name = "combat", interval = 2000, chance = 40, type = COMBAT_PHYSICALDAMAGE, minDamage = -100, maxDamage = -135, range = 7, shootEffect = CONST_ANI_SMALLSTONE, target = true },
- { name = "combat", interval = 2000, chance = 30, type = COMBAT_DEATHDAMAGE, minDamage = -350, maxDamage = -495, length = 7, spread = 0, effect = CONST_ME_BLACKSMOKE, target = false },
- { name = "combat", interval = 2000, chance = 30, type = COMBAT_ENERGYDAMAGE, minDamage = -280, maxDamage = -320, length = 7, spread = 0, effect = CONST_ME_ENERGYHIT, target = false },
- { name = "energy chain", interval = 2000, chance = 20, minDamage = -302, maxDamage = -309, range = 3, target = true },
- { name = "thunderstorm ring", interval = 2000, chance = 20, minDamage = -325, maxDamage = -415 },
+ { name = "combat", interval = 2500, chance = 40, type = COMBAT_PHYSICALDAMAGE, minDamage = -386, maxDamage = -480, range = 7, shootEffect = CONST_ANI_LARGEROCK, target = true },
+ { name = "combat", interval = 3000, chance = 40, type = COMBAT_PHYSICALDAMAGE, minDamage = -100, maxDamage = -135, range = 7, shootEffect = CONST_ANI_SMALLSTONE, target = true },
+ { name = "combat", interval = 3500, chance = 30, type = COMBAT_DEATHDAMAGE, minDamage = -350, maxDamage = -495, length = 7, spread = 1, effect = CONST_ME_BLACKSMOKE, target = false },
+ { name = "combat", interval = 4000, chance = 30, type = COMBAT_ENERGYDAMAGE, minDamage = -280, maxDamage = -320, length = 7, spread = 1, effect = CONST_ME_ENERGYHIT, target = false },
+ { name = "energy chain", interval = 4500, chance = 20, minDamage = -302, maxDamage = -309, range = 3, target = true },
+ { name = "thunderstorm ring", interval = 5000, chance = 20, minDamage = -325, maxDamage = -415 },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/reptiles/young_goanna.lua b/data-otservbr-global/monster/reptiles/young_goanna.lua
index 891251d226b..d0da931f485 100644
--- a/data-otservbr-global/monster/reptiles/young_goanna.lua
+++ b/data-otservbr-global/monster/reptiles/young_goanna.lua
@@ -94,8 +94,10 @@ monster.loot = {
}
monster.attacks = {
- { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -230, condition = { type = CONDITION_POISON, totalDamage = 15, interval = 4000 } },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -300, maxDamage = -490, range = 3, radius = 1, shootEffect = CONST_ANI_EARTH, effect = CONST_ME_EXPLOSIONHIT, target = true },
+ { name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -500, condition = { type = CONDITION_POISON, totalDamage = 200, interval = 4000 } },
+ { name = "combat", interval = 2500, chance = 30, type = COMBAT_EARTHDAMAGE, minDamage = -300, maxDamage = -490, range = 3, shootEffect = CONST_ANI_EARTH, effect = CONST_ME_HITBYPOISON, target = true },
+ { name = "combat", interval = 3000, chance = 30, type = COMBAT_EARTHDAMAGE, minDamage = -300, maxDamage = -500, radius = 1, effect = CONST_ME_GROUNDSHAKER, target = false },
+ { name = "combat", interval = 3500, chance = 30, type = COMBAT_EARTHDAMAGE, minDamage = -300, maxDamage = -490, lenght = 8, spread = 1, effect = CONST_ME_GREEN_RINGS, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/slimes/devourer.lua b/data-otservbr-global/monster/slimes/devourer.lua
index dace9504b1c..f14ad28a233 100644
--- a/data-otservbr-global/monster/slimes/devourer.lua
+++ b/data-otservbr-global/monster/slimes/devourer.lua
@@ -108,7 +108,7 @@ monster.attacks = {
{ name = "combat", interval = 2000, chance = 8, type = COMBAT_EARTHDAMAGE, minDamage = -50, maxDamage = -160, range = 7, shootEffect = CONST_ANI_POISON, effect = CONST_ME_GREEN_RINGS, target = true },
{ name = "devourer wave", interval = 2000, chance = 5, minDamage = -50, maxDamage = -150, target = false },
{ name = "devourer paralyze", interval = 2000, chance = 9, target = false },
- { name = "combat", interval = 2000, chance = 11, type = COMBAT_EARTHDAMAGE, minDamage = -50, maxDamage = -150, length = 1, spread = 0, effect = CONST_ME_SMOKE, target = false },
+ { name = "combat", interval = 2000, chance = 11, type = COMBAT_EARTHDAMAGE, minDamage = -50, maxDamage = -150, length = 1, spread = 1, effect = CONST_ME_SMOKE, target = false },
{ name = "combat", interval = 2000, chance = 7, type = COMBAT_EARTHDAMAGE, minDamage = -120, maxDamage = -135, radius = 4, effect = CONST_ME_GREEN_RINGS, target = false },
}
diff --git a/data-otservbr-global/monster/undeads/ahau.lua b/data-otservbr-global/monster/undeads/ahau.lua
index 0e86a1d2c98..6d5b70e2ea5 100644
--- a/data-otservbr-global/monster/undeads/ahau.lua
+++ b/data-otservbr-global/monster/undeads/ahau.lua
@@ -100,7 +100,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 1700, chance = 100, minDamage = 0, maxDamage = -456, effect = 244 },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_EARTHDAMAGE, minDamage = -350, maxDamage = -422, range = 1, radius = 0, effect = CONST_ME_GREENSMOKE, target = true },
- { name = "combat", interval = 2000, chance = 40, type = COMBAT_FIREDAMAGE, minDamage = -400, maxDamage = -500, length = 5, spread = 0, effect = 216, target = false },
+ { name = "combat", interval = 2000, chance = 40, type = COMBAT_FIREDAMAGE, minDamage = -400, maxDamage = -500, length = 5, spread = 1, effect = 216, target = false },
{ name = "combat", interval = 2000, chance = 30, type = COMBAT_EARTHDAMAGE, minDamage = -415, maxDamage = -570, radius = 2, effect = CONST_ME_STONE_STORM, target = false },
{ name = "boulder ring", interval = 2000, chance = 20, minDamage = -460, maxDamage = -500 },
}
diff --git a/data-otservbr-global/monster/undeads/bonebeast.lua b/data-otservbr-global/monster/undeads/bonebeast.lua
index 1ac169d5f83..eb8ab13ae9c 100644
--- a/data-otservbr-global/monster/undeads/bonebeast.lua
+++ b/data-otservbr-global/monster/undeads/bonebeast.lua
@@ -96,7 +96,7 @@ monster.attacks = {
-- poison
{ name = "condition", type = CONDITION_POISON, interval = 2000, chance = 10, minDamage = -50, maxDamage = -60, radius = 3, effect = CONST_ME_POISONAREA, target = false },
-- poison
- { name = "condition", type = CONDITION_POISON, interval = 2000, chance = 10, minDamage = -70, maxDamage = -80, length = 6, spread = 3, effect = CONST_ME_POISONAREA, target = false },
+ { name = "condition", type = CONDITION_POISON, interval = 2000, chance = 10, minDamage = -70, maxDamage = -80, length = 6, spread = 1, effect = CONST_ME_POISONAREA, target = false },
{ name = "speed", interval = 2000, chance = 15, speedChange = -600, target = true, duration = 13000 },
}
diff --git a/data-otservbr-global/monster/undeads/cursed_prospector.lua b/data-otservbr-global/monster/undeads/cursed_prospector.lua
index b8e184b222c..5bbe7650949 100644
--- a/data-otservbr-global/monster/undeads/cursed_prospector.lua
+++ b/data-otservbr-global/monster/undeads/cursed_prospector.lua
@@ -90,7 +90,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -100, maxDamage = -200 },
{ name = "combat", interval = 1700, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -300, maxDamage = -550, radius = 3, shootEffect = CONST_ANI_ENVENOMEDARROW, target = true },
- { name = "combat", interval = 1700, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -150, maxDamage = -550, length = 4, spread = 3, effect = CONST_ME_ENERGYHIT, target = false },
+ { name = "combat", interval = 1700, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -150, maxDamage = -550, length = 4, spread = 1, effect = CONST_ME_ENERGYHIT, target = false },
{ name = "combat", interval = 1700, chance = 35, type = COMBAT_DEATHDAMAGE, minDamage = -150, maxDamage = -550, radius = 3, effect = CONST_ME_MORTAREA, target = false },
{ name = "combat", interval = 1700, chance = 35, type = COMBAT_HOLYDAMAGE, minDamage = -250, maxDamage = -550, radius = 3, effect = CONST_ME_HOLYAREA, target = false },
{ name = "combat", interval = 2000, chance = 13, type = COMBAT_ENERGYDAMAGE, minDamage = -400, maxDamage = -550, range = 4, radius = 4, effect = CONST_ME_ENERGYAREA, target = true },
diff --git a/data-otservbr-global/monster/undeads/evil_prospector.lua b/data-otservbr-global/monster/undeads/evil_prospector.lua
index 6691a119f9f..1b5845f316a 100644
--- a/data-otservbr-global/monster/undeads/evil_prospector.lua
+++ b/data-otservbr-global/monster/undeads/evil_prospector.lua
@@ -86,7 +86,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -100, maxDamage = -500 },
{ name = "combat", interval = 1700, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -250, maxDamage = -550, radius = 3, shootEffect = CONST_ANI_ENVENOMEDARROW, target = true },
- { name = "combat", interval = 1700, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -250, maxDamage = -550, length = 4, spread = 3, effect = CONST_ME_ENERGYHIT, target = false },
+ { name = "combat", interval = 1700, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -250, maxDamage = -550, length = 4, spread = 1, effect = CONST_ME_ENERGYHIT, target = false },
{ name = "combat", interval = 1700, chance = 35, type = COMBAT_DEATHDAMAGE, minDamage = -250, maxDamage = -550, radius = 3, effect = CONST_ME_MORTAREA, target = false },
{ name = "combat", interval = 1700, chance = 35, type = COMBAT_HOLYDAMAGE, minDamage = -250, maxDamage = -400, radius = 3, effect = CONST_ME_HOLYAREA, target = false },
{ name = "combat", interval = 1700, chance = 13, type = COMBAT_ENERGYDAMAGE, minDamage = -400, maxDamage = -450, range = 4, radius = 4, effect = CONST_ME_ENERGYAREA, target = true },
diff --git a/data-otservbr-global/monster/undeads/falcon_knight.lua b/data-otservbr-global/monster/undeads/falcon_knight.lua
index 1f2fb03b157..99cc168f114 100644
--- a/data-otservbr-global/monster/undeads/falcon_knight.lua
+++ b/data-otservbr-global/monster/undeads/falcon_knight.lua
@@ -105,7 +105,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -400 },
{ name = "combat", interval = 2000, chance = 18, type = COMBAT_EARTHDAMAGE, minDamage = -400, maxDamage = -500, radius = 2, effect = CONST_ME_GROUNDSHAKER, target = false },
- { name = "combat", interval = 2000, chance = 14, type = COMBAT_HOLYDAMAGE, minDamage = -290, maxDamage = -360, length = 5, spread = 3, effect = CONST_ME_BLOCKHIT, target = false },
+ { name = "combat", interval = 2000, chance = 14, type = COMBAT_HOLYDAMAGE, minDamage = -290, maxDamage = -360, length = 5, spread = 1, effect = CONST_ME_BLOCKHIT, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/undeads/falcon_paladin.lua b/data-otservbr-global/monster/undeads/falcon_paladin.lua
index d9002a289e5..dc9eac4d7b6 100644
--- a/data-otservbr-global/monster/undeads/falcon_paladin.lua
+++ b/data-otservbr-global/monster/undeads/falcon_paladin.lua
@@ -98,7 +98,7 @@ monster.attacks = {
{ name = "combat", interval = 2000, chance = 50, type = COMBAT_PHYSICALDAMAGE, minDamage = -400, maxDamage = -550, range = 5, shootEffect = CONST_ANI_ROYALSPEAR, target = true },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = -200, maxDamage = 500, range = 5, shootEffect = CONST_ANI_BOLT, target = true },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_ENERGYDAMAGE, minDamage = -350, maxDamage = -450, range = 7, radius = 2, shootEffect = CONST_ANI_POWERBOLT, effect = CONST_ME_ENERGYHIT, target = true },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -250, maxDamage = -350, length = 5, spread = 3, effect = CONST_ME_PURPLEENERGY, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_ENERGYDAMAGE, minDamage = -250, maxDamage = -350, length = 5, spread = 1, effect = CONST_ME_PURPLEENERGY, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/undeads/flimsy_lost_soul.lua b/data-otservbr-global/monster/undeads/flimsy_lost_soul.lua
index 5336042dee1..9391f776ed3 100644
--- a/data-otservbr-global/monster/undeads/flimsy_lost_soul.lua
+++ b/data-otservbr-global/monster/undeads/flimsy_lost_soul.lua
@@ -91,7 +91,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -100, maxDamage = -500 },
{ name = "combat", interval = 1700, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -150, maxDamage = -550, radius = 3, shootEffect = CONST_ANI_ENVENOMEDARROW, target = true },
- { name = "combat", interval = 1700, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -150, maxDamage = -550, length = 4, spread = 3, effect = CONST_ME_ENERGYHIT, target = false },
+ { name = "combat", interval = 1700, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -150, maxDamage = -550, length = 4, spread = 1, effect = CONST_ME_ENERGYHIT, target = false },
{ name = "combat", interval = 1700, chance = 35, type = COMBAT_DEATHDAMAGE, minDamage = -150, maxDamage = -550, radius = 3, effect = CONST_ME_MORTAREA, target = false },
}
diff --git a/data-otservbr-global/monster/undeads/freakish_lost_soul.lua b/data-otservbr-global/monster/undeads/freakish_lost_soul.lua
index 6f00c3eb7fe..a7776bec5c6 100644
--- a/data-otservbr-global/monster/undeads/freakish_lost_soul.lua
+++ b/data-otservbr-global/monster/undeads/freakish_lost_soul.lua
@@ -88,7 +88,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -100, maxDamage = -500 },
{ name = "combat", interval = 1700, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -300, maxDamage = -550, radius = 3, shootEffect = CONST_ANI_ENVENOMEDARROW, target = true },
- { name = "combat", interval = 1700, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -150, maxDamage = -550, length = 4, spread = 3, effect = CONST_ME_ENERGYHIT, target = false },
+ { name = "combat", interval = 1700, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -150, maxDamage = -550, length = 4, spread = 1, effect = CONST_ME_ENERGYHIT, target = false },
{ name = "combat", interval = 1700, chance = 35, type = COMBAT_DEATHDAMAGE, minDamage = -150, maxDamage = -550, radius = 4, effect = CONST_ME_MORTAREA, target = false },
{ name = "combat", interval = 1700, chance = 20, type = COMBAT_ENERGYDAMAGE, minDamage = -150, maxDamage = -550, radius = 4, effect = CONST_ME_ENERGYAREA, target = false },
}
diff --git a/data-otservbr-global/monster/undeads/grim_reaper.lua b/data-otservbr-global/monster/undeads/grim_reaper.lua
index 107a0ece576..f27fbd561a8 100644
--- a/data-otservbr-global/monster/undeads/grim_reaper.lua
+++ b/data-otservbr-global/monster/undeads/grim_reaper.lua
@@ -102,8 +102,8 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -320 },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -165, range = 7, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_MORTAREA, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -350, maxDamage = -720, length = 8, spread = 3, target = false },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -300, length = 7, spread = 3, effect = CONST_ME_EXPLOSIONAREA, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -350, maxDamage = -720, length = 8, spread = 1, effect = CONST_ME_MORTAREA, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = 0, maxDamage = -300, length = 7, spread = 1, effect = CONST_ME_EXPLOSIONAREA, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -225, maxDamage = -275, radius = 4, target = false },
}
diff --git a/data-otservbr-global/monster/undeads/iks_aucar.lua b/data-otservbr-global/monster/undeads/iks_aucar.lua
index 26bfc867d9b..36f76461f52 100644
--- a/data-otservbr-global/monster/undeads/iks_aucar.lua
+++ b/data-otservbr-global/monster/undeads/iks_aucar.lua
@@ -96,7 +96,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -250, effect = CONST_ME_PURPLEENERGY },
- { name = "combat", interval = 2000, chance = 40, type = COMBAT_PHYSICALDAMAGE, minDamage = -75, maxDamage = -100, length = 7, spread = 0, effect = 216, target = false },
+ { name = "combat", interval = 2000, chance = 40, type = COMBAT_PHYSICALDAMAGE, minDamage = -75, maxDamage = -100, length = 7, spread = 1, effect = 216, target = false },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = -100, maxDamage = -160, range = 1, radius = 0, effect = CONST_ME_EXPLOSIONHIT, target = true },
}
diff --git a/data-otservbr-global/monster/undeads/iks_churrascan.lua b/data-otservbr-global/monster/undeads/iks_churrascan.lua
index 704e40a53fa..53b01ede306 100644
--- a/data-otservbr-global/monster/undeads/iks_churrascan.lua
+++ b/data-otservbr-global/monster/undeads/iks_churrascan.lua
@@ -86,7 +86,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -250, effect = CONST_ME_PURPLEENERGY },
- { name = "combat", interval = 2000, chance = 40, type = COMBAT_PHYSICALDAMAGE, minDamage = -75, maxDamage = -100, length = 7, spread = 0, effect = 216, target = false },
+ { name = "combat", interval = 2000, chance = 40, type = COMBAT_PHYSICALDAMAGE, minDamage = -75, maxDamage = -100, length = 7, spread = 1, effect = 216, target = false },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_PHYSICALDAMAGE, minDamage = -100, maxDamage = -160, range = 1, radius = 0, effect = CONST_ME_EXPLOSIONHIT, target = true },
}
diff --git a/data-otservbr-global/monster/undeads/iks_pututu.lua b/data-otservbr-global/monster/undeads/iks_pututu.lua
index 460aa7eb511..83dc533cb55 100644
--- a/data-otservbr-global/monster/undeads/iks_pututu.lua
+++ b/data-otservbr-global/monster/undeads/iks_pututu.lua
@@ -89,7 +89,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -150 },
{ name = "combat", interval = 2000, chance = 30, type = COMBAT_FIREDAMAGE, minDamage = -80, maxDamage = -90, radius = 2, effect = CONST_ME_FIREAREA, target = false },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -75, maxDamage = -95, length = 8, spread = 0, effect = CONST_ME_STONE_STORM, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_EARTHDAMAGE, minDamage = -75, maxDamage = -95, length = 8, spread = 1, effect = CONST_ME_STONE_STORM, target = false },
{ name = "combat", interval = 2000, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -98, maxDamage = -114, range = 7, radius = 1, shootEffect = CONST_ANI_POISON, effect = CONST_ME_POISONAREA, target = true },
}
diff --git a/data-otservbr-global/monster/undeads/lich.lua b/data-otservbr-global/monster/undeads/lich.lua
index 811ee43d144..3e04e6d3b9c 100644
--- a/data-otservbr-global/monster/undeads/lich.lua
+++ b/data-otservbr-global/monster/undeads/lich.lua
@@ -114,8 +114,8 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -75 },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -140, maxDamage = -190, length = 7, spread = 3, effect = CONST_ME_MAGIC_RED, target = false }, -- poison
- { name = "condition", type = CONDITION_POISON, interval = 2000, chance = 10, minDamage = -300, maxDamage = -400, length = 7, spread = 3, effect = CONST_ME_HITBYPOISON, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -140, maxDamage = -190, length = 7, spread = 1, effect = CONST_ME_MAGIC_RED, target = false }, -- poison
+ { name = "condition", type = CONDITION_POISON, interval = 2000, chance = 10, minDamage = -300, maxDamage = -400, length = 7, spread = 1, effect = CONST_ME_HITBYPOISON, target = false },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -200, maxDamage = -245, range = 1, effect = CONST_ME_MAGIC_RED, target = true },
{ name = "speed", interval = 2000, chance = 15, speedChange = -300, range = 7, effect = CONST_ME_MAGIC_RED, target = false, duration = 30000 },
{ name = "combat", interval = 2000, chance = 10, type = COMBAT_LIFEDRAIN, minDamage = -130, maxDamage = -195, radius = 3, effect = CONST_ME_MAGIC_RED, target = false },
diff --git a/data-otservbr-global/monster/undeads/lost_soul.lua b/data-otservbr-global/monster/undeads/lost_soul.lua
index d00e9eb9d18..3da38eb4149 100644
--- a/data-otservbr-global/monster/undeads/lost_soul.lua
+++ b/data-otservbr-global/monster/undeads/lost_soul.lua
@@ -102,7 +102,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -420 },
- { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -40, maxDamage = -210, length = 3, spread = 0, effect = CONST_ME_MAGIC_RED, target = false },
+ { name = "combat", interval = 2000, chance = 10, type = COMBAT_DEATHDAMAGE, minDamage = -40, maxDamage = -210, length = 3, spread = 1, effect = CONST_ME_MAGIC_RED, target = false },
{ name = "speed", interval = 2000, chance = 20, speedChange = -800, radius = 6, effect = CONST_ME_SMALLCLOUDS, target = false, duration = 4000 },
}
diff --git a/data-otservbr-global/monster/undeads/mean_lost_soul.lua b/data-otservbr-global/monster/undeads/mean_lost_soul.lua
index aa4ded25b2a..e49a3aa6668 100644
--- a/data-otservbr-global/monster/undeads/mean_lost_soul.lua
+++ b/data-otservbr-global/monster/undeads/mean_lost_soul.lua
@@ -90,7 +90,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = -100, maxDamage = -500 },
{ name = "combat", interval = 1700, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -300, maxDamage = -550, radius = 3, shootEffect = CONST_ANI_ENVENOMEDARROW, target = true },
- { name = "combat", interval = 1700, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -300, maxDamage = -550, length = 4, spread = 3, effect = CONST_ME_ENERGYHIT, target = false },
+ { name = "combat", interval = 1700, chance = 25, type = COMBAT_ENERGYDAMAGE, minDamage = -300, maxDamage = -550, length = 4, spread = 1, effect = CONST_ME_ENERGYHIT, target = false },
{ name = "combat", interval = 1700, chance = 35, type = COMBAT_DEATHDAMAGE, minDamage = -300, maxDamage = -550, radius = 3, effect = CONST_ME_MORTAREA, target = false },
}
diff --git a/data-otservbr-global/monster/undeads/rot_elemental.lua b/data-otservbr-global/monster/undeads/rot_elemental.lua
index ba79449343f..db6da4d727a 100644
--- a/data-otservbr-global/monster/undeads/rot_elemental.lua
+++ b/data-otservbr-global/monster/undeads/rot_elemental.lua
@@ -96,7 +96,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, skill = 58, attack = 50, condition = { type = CONDITION_POISON, totalDamage = 280, interval = 4000 } },
{ name = "combat", interval = 2000, chance = 13, type = COMBAT_EARTHDAMAGE, minDamage = -150, maxDamage = -250, range = 7, radius = 3, shootEffect = CONST_ANI_GLOOTHSPEAR, effect = CONST_ME_POISONAREA, target = true },
- { name = "combat", interval = 2000, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -150, maxDamage = -230, length = 6, spread = 3, effect = CONST_ME_POISONAREA, target = false },
+ { name = "combat", interval = 2000, chance = 15, type = COMBAT_EARTHDAMAGE, minDamage = -150, maxDamage = -230, length = 6, spread = 1, effect = CONST_ME_POISONAREA, target = false },
-- poison
{ name = "condition", type = CONDITION_POISON, interval = 2000, chance = 10, minDamage = -200, maxDamage = -300, range = 7, shootEffect = CONST_ANI_POISON, effect = CONST_ME_POISONAREA, target = true },
{ name = "rot elemental paralyze", interval = 2000, chance = 11, target = false },
diff --git a/data-otservbr-global/monster/vermins/eyeless_devourer.lua b/data-otservbr-global/monster/vermins/eyeless_devourer.lua
index 1c45264bd8a..2c7b266144b 100644
--- a/data-otservbr-global/monster/vermins/eyeless_devourer.lua
+++ b/data-otservbr-global/monster/vermins/eyeless_devourer.lua
@@ -102,7 +102,7 @@ monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -400, effect = CONST_ME_DRAWBLOOD },
{ name = "combat", interval = 2750, chance = 20, type = COMBAT_ENERGYDAMAGE, minDamage = -700, maxDamage = -800, range = 5, shootEffect = CONST_ANI_ENERGY, effect = CONST_ME_ENERGYAREA, target = true },
{ name = "combat", interval = 2000, chance = 60, type = COMBAT_ENERGYDAMAGE, minDamage = -500, maxDamage = -700, radius = 3, effect = CONST_ME_ENERGYAREA, target = false },
- { name = "combat", interval = 2000, chance = 20, type = COMBAT_EARTHDAMAGE, minDamage = -500, maxDamage = -560, length = 5, spread = 0, effect = CONST_ME_GREEN_RINGS, target = false },
+ { name = "combat", interval = 2000, chance = 20, type = COMBAT_EARTHDAMAGE, minDamage = -500, maxDamage = -560, length = 5, spread = 1, effect = CONST_ME_GREEN_RINGS, target = false },
}
monster.defenses = {
diff --git a/data-otservbr-global/monster/vermins/lavafungus.lua b/data-otservbr-global/monster/vermins/lavafungus.lua
index c25d314a85d..6f5ecad3de9 100644
--- a/data-otservbr-global/monster/vermins/lavafungus.lua
+++ b/data-otservbr-global/monster/vermins/lavafungus.lua
@@ -101,7 +101,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -810 },
- { name = "combat", interval = 2000, chance = 50, type = COMBAT_DEATHDAMAGE, minDamage = -560, maxDamage = -650, length = 6, spread = 0, effect = CONST_ME_MORTAREA, target = false },
+ { name = "combat", interval = 2000, chance = 50, type = COMBAT_DEATHDAMAGE, minDamage = -560, maxDamage = -650, length = 6, spread = 1, effect = CONST_ME_MORTAREA, target = false },
{ name = "combat", interval = 2750, chance = 40, type = COMBAT_FIREDAMAGE, minDamage = -490, maxDamage = -720, range = 5, shootEffect = CONST_ANI_FIRE, target = true },
{ name = "combat", interval = 2750, chance = 30, type = COMBAT_DEATHDAMAGE, minDamage = -720, maxDamage = -810, range = 5, shootEffect = CONST_ANI_SUDDENDEATH, effect = CONST_ME_MORTAREA, target = true },
{ name = "lavafungus ring", interval = 2000, chance = 20, minDamage = -450, maxDamage = -610 },
diff --git a/data-otservbr-global/monster/vermins/tremendous_tyrant.lua b/data-otservbr-global/monster/vermins/tremendous_tyrant.lua
index 3cc624556e9..82cb7ce1ef6 100644
--- a/data-otservbr-global/monster/vermins/tremendous_tyrant.lua
+++ b/data-otservbr-global/monster/vermins/tremendous_tyrant.lua
@@ -100,7 +100,7 @@ monster.loot = {
monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -400 },
- { name = "combat", interval = 2000, chance = 40, type = COMBAT_ICEDAMAGE, minDamage = -600, maxDamage = -650, length = 5, spread = 0, effect = CONST_ME_ICEATTACK, target = false },
+ { name = "combat", interval = 2000, chance = 40, type = COMBAT_ICEDAMAGE, minDamage = -600, maxDamage = -650, length = 5, spread = 1, effect = CONST_ME_ICEATTACK, target = false },
{ name = "combat", interval = 2000, chance = 20, type = COMBAT_ICEDAMAGE, minDamage = -600, maxDamage = -700, radius = 4, shootEffect = CONST_ANI_ICE, effect = CONST_ME_ICEAREA, target = false }, -- avalanche
{ name = "combat", interval = 2000, chance = 30, type = COMBAT_HOLYDAMAGE, minDamage = -750, maxDamage = -950, range = 5, shootEffect = CONST_ANI_HOLY, effect = CONST_ME_HOLYAREA, target = true },
}
diff --git a/data-otservbr-global/npc/gnomadness.lua b/data-otservbr-global/npc/gnomadness.lua
index f3dc522c51b..cedc37c2a2a 100644
--- a/data-otservbr-global/npc/gnomadness.lua
+++ b/data-otservbr-global/npc/gnomadness.lua
@@ -78,11 +78,18 @@ local function creatureSayCallback(npc, creature, type, message)
local desiredLevel = getMoneyCount(message)
if desiredLevel <= 0 then
npcHandler:say("I'm sorry, I don't understand. What hazard level would you like to set?", npc, creature)
- npcHandler:setTopic(playerId, 0)
+ npcHandler:setTopic(playerId, 2)
return true
end
if hazard:setPlayerCurrentLevel(player, desiredLevel) then
npcHandler:say("Your hazard level has been set to " .. desiredLevel .. ". Good luck!", npc, creature)
+ if desiredLevel >= hazard.maxLevel and not player:kv():scoped("primal-ordeal"):get("received-prize") then
+ player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Congratulations you received the Noxious Ripptor mount.")
+ player:addMount(202)
+ npcHandler:say("You've achived the maximum hazard level. As a reward, you've received the Noxious Ripptor mount and a primal bag.", npc, creature)
+ player:addItem(PrimalBagId, 1)
+ player:kv():scoped("primal-ordeal"):set("received-prize", true)
+ end
else
npcHandler:say("You can't set your hazard level higher than your maximum unlocked level.", npc, creature)
end
diff --git a/data-otservbr-global/npc/oberon's_bile.lua b/data-otservbr-global/npc/oberon's_bile.lua
index 6b3cf53ff97..c8750410753 100644
--- a/data-otservbr-global/npc/oberon's_bile.lua
+++ b/data-otservbr-global/npc/oberon's_bile.lua
@@ -11,41 +11,12 @@ npcConfig.walkInterval = 0
npcConfig.walkRadius = 2
npcConfig.outfit = {
- lookTypeEx = 23991,
+ lookTypeEx = 10980,
}
npcConfig.flags = {
floorchange = false,
}
-local keywordHandler = KeywordHandler:new()
-local npcHandler = NpcHandler:new(keywordHandler)
-
-npcType.onThink = function(npc, interval)
- npcHandler:onThink(npc, interval)
-end
-
-npcType.onAppear = function(npc, creature)
- npcHandler:onAppear(npc, creature)
-end
-
-npcType.onDisappear = function(npc, creature)
- npcHandler:onDisappear(npc, creature)
-end
-
-npcType.onMove = function(npc, creature, fromPosition, toPosition)
- npcHandler:onMove(npc, creature, fromPosition, toPosition)
-end
-
-npcType.onSay = function(npc, creature, type, message)
- npcHandler:onSay(npc, creature, type, message)
-end
-
-npcType.onCloseChannel = function(npc, creature)
- npcHandler:onCloseChannel(npc, creature)
-end
-
-npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true)
-
-- npcType registering the npcConfig table
npcType:register(npcConfig)
diff --git a/data-otservbr-global/npc/oberon's_hate.lua b/data-otservbr-global/npc/oberon's_hate.lua
index e9d8858e00f..16ab2f35897 100644
--- a/data-otservbr-global/npc/oberon's_hate.lua
+++ b/data-otservbr-global/npc/oberon's_hate.lua
@@ -11,41 +11,12 @@ npcConfig.walkInterval = 0
npcConfig.walkRadius = 2
npcConfig.outfit = {
- lookTypeEx = 23991,
+ lookTypeEx = 10980,
}
npcConfig.flags = {
floorchange = false,
}
-local keywordHandler = KeywordHandler:new()
-local npcHandler = NpcHandler:new(keywordHandler)
-
-npcType.onThink = function(npc, interval)
- npcHandler:onThink(npc, interval)
-end
-
-npcType.onAppear = function(npc, creature)
- npcHandler:onAppear(npc, creature)
-end
-
-npcType.onDisappear = function(npc, creature)
- npcHandler:onDisappear(npc, creature)
-end
-
-npcType.onMove = function(npc, creature, fromPosition, toPosition)
- npcHandler:onMove(npc, creature, fromPosition, toPosition)
-end
-
-npcType.onSay = function(npc, creature, type, message)
- npcHandler:onSay(npc, creature, type, message)
-end
-
-npcType.onCloseChannel = function(npc, creature)
- npcHandler:onCloseChannel(npc, creature)
-end
-
-npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true)
-
-- npcType registering the npcConfig table
npcType:register(npcConfig)
diff --git a/data-otservbr-global/npc/oberon's_ire.lua b/data-otservbr-global/npc/oberon's_ire.lua
index 4b0e1346684..8789977559d 100644
--- a/data-otservbr-global/npc/oberon's_ire.lua
+++ b/data-otservbr-global/npc/oberon's_ire.lua
@@ -11,41 +11,11 @@ npcConfig.walkInterval = 0
npcConfig.walkRadius = 2
npcConfig.outfit = {
- lookTypeEx = 23991,
+ lookTypeEx = 11211,
}
npcConfig.flags = {
floorchange = false,
}
-local keywordHandler = KeywordHandler:new()
-local npcHandler = NpcHandler:new(keywordHandler)
-
-npcType.onThink = function(npc, interval)
- npcHandler:onThink(npc, interval)
-end
-
-npcType.onAppear = function(npc, creature)
- npcHandler:onAppear(npc, creature)
-end
-
-npcType.onDisappear = function(npc, creature)
- npcHandler:onDisappear(npc, creature)
-end
-
-npcType.onMove = function(npc, creature, fromPosition, toPosition)
- npcHandler:onMove(npc, creature, fromPosition, toPosition)
-end
-
-npcType.onSay = function(npc, creature, type, message)
- npcHandler:onSay(npc, creature, type, message)
-end
-
-npcType.onCloseChannel = function(npc, creature)
- npcHandler:onCloseChannel(npc, creature)
-end
-
-npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true)
-
--- npcType registering the npcConfig table
npcType:register(npcConfig)
diff --git a/data-otservbr-global/npc/oberon's_spite.lua b/data-otservbr-global/npc/oberon's_spite.lua
index 04198674f19..36e28d9b738 100644
--- a/data-otservbr-global/npc/oberon's_spite.lua
+++ b/data-otservbr-global/npc/oberon's_spite.lua
@@ -11,41 +11,12 @@ npcConfig.walkInterval = 0
npcConfig.walkRadius = 2
npcConfig.outfit = {
- lookTypeEx = 23991,
+ lookTypeEx = 11212,
}
npcConfig.flags = {
floorchange = false,
}
-local keywordHandler = KeywordHandler:new()
-local npcHandler = NpcHandler:new(keywordHandler)
-
-npcType.onThink = function(npc, interval)
- npcHandler:onThink(npc, interval)
-end
-
-npcType.onAppear = function(npc, creature)
- npcHandler:onAppear(npc, creature)
-end
-
-npcType.onDisappear = function(npc, creature)
- npcHandler:onDisappear(npc, creature)
-end
-
-npcType.onMove = function(npc, creature, fromPosition, toPosition)
- npcHandler:onMove(npc, creature, fromPosition, toPosition)
-end
-
-npcType.onSay = function(npc, creature, type, message)
- npcHandler:onSay(npc, creature, type, message)
-end
-
-npcType.onCloseChannel = function(npc, creature)
- npcHandler:onCloseChannel(npc, creature)
-end
-
-npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true)
-
-- npcType registering the npcConfig table
npcType:register(npcConfig)
diff --git a/data-otservbr-global/npc/the_lootmonger.lua b/data-otservbr-global/npc/the_lootmonger.lua
index 7374b7645c2..cee60e6850f 100644
--- a/data-otservbr-global/npc/the_lootmonger.lua
+++ b/data-otservbr-global/npc/the_lootmonger.lua
@@ -52,1329 +52,26 @@ end
npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true)
-npcConfig.shop = {
- { itemName = "abomination's eye", clientId = 36792, sell = 650000 },
- { itemName = "abomination's tail", clientId = 36791, sell = 700000 },
- { itemName = "abomination's tongue", clientId = 36793, sell = 950000 },
- { itemName = "abyss hammer", clientId = 7414, sell = 20000 },
- { itemName = "acorn", clientId = 10296, sell = 10 },
- { itemName = "afflicted strider head", clientId = 36789, sell = 900 },
- { itemName = "afflicted strider worms", clientId = 36790, sell = 500 },
- { itemName = "albino plate", clientId = 19358, sell = 1500 },
- { itemName = "alloy legs", clientId = 21168, sell = 11000 },
- { itemName = "alptramun's toothbrush", clientId = 29943, sell = 270000 },
- { itemName = "amber staff", clientId = 7426, sell = 8000 },
- { itemName = "amber with a bug", clientId = 32624, sell = 41000 },
- { itemName = "amber with a dragonfly", clientId = 32625, sell = 56000 },
- { itemName = "amber", clientId = 32626, sell = 20000 },
- { itemName = "amulet of loss", clientId = 3057, sell = 45000 },
- { itemName = "ancient amulet", clientId = 3025, sell = 200 },
- { itemName = "ancient belt buckle", clientId = 24384, sell = 260 },
- { itemName = "ancient coin", clientId = 24390, sell = 350 },
- { itemName = "ancient liche bone", clientId = 31588, sell = 28000 },
- { itemName = "ancient shield", clientId = 3432, sell = 900 },
- { itemName = "ancient stone", clientId = 9632, sell = 200 },
- { itemName = "angel figurine", clientId = 32589, sell = 36000 },
- { itemName = "angelic axe", clientId = 7436, sell = 5000 },
- { itemName = "ankh", clientId = 3077, sell = 100 },
- { itemName = "antlers", clientId = 10297, sell = 50 },
- { itemName = "ape fur", clientId = 5883, sell = 120 },
- { itemName = "apron", clientId = 33933, sell = 1300 },
- { itemName = "arbalest", clientId = 5803, sell = 42000 },
- { itemName = "arcane staff", clientId = 3341, sell = 42000 },
- { itemName = "assassin dagger", clientId = 7404, sell = 20000 },
- { itemName = "axe ring", clientId = 3092, sell = 100 },
- { itemName = "axe", clientId = 3274, sell = 7 },
- { itemName = "baby seal doll", clientId = 7183, sell = 20000 },
- { itemName = "badger boots", clientId = 22086, sell = 7500 },
- { itemName = "badger fur", clientId = 903, sell = 15 },
- { itemName = "bamboo stick", clientId = 11445, sell = 30 },
- { itemName = "banana sash", clientId = 11511, sell = 55 },
- { itemName = "bandana", clientId = 5917, sell = 150 },
- { itemName = "bar of gold", clientId = 14112, sell = 10000 },
- { itemName = "basalt fetish", clientId = 17856, sell = 210 },
- { itemName = "basalt figurine", clientId = 17857, sell = 160 },
- { itemName = "bashmu fang", clientId = 36820, sell = 600 },
- { itemName = "bashmu feather", clientId = 36823, sell = 350 },
- { itemName = "bashmu tongue", clientId = 36821, sell = 400 },
- { itemName = "bat decoration", clientId = 6491, sell = 2000 },
- { itemName = "bat wing", clientId = 5894, sell = 50 },
- { itemName = "battle axe", clientId = 3266, sell = 80 },
- { itemName = "battle hammer", clientId = 3305, sell = 120 },
- { itemName = "battle shield", clientId = 3413, sell = 95 },
- { itemName = "battle stone", clientId = 11447, sell = 290 },
- { itemName = "batwing hat", clientId = 9103, sell = 8000 },
- { itemName = "bear paw", clientId = 5896, sell = 100 },
- { itemName = "beast's nightmare-cushion", clientId = 29946, sell = 630000 },
- { itemName = "beastslayer axe", clientId = 3344, sell = 1500 },
- { itemName = "bed of nails", clientId = 25743, sell = 500 },
- { itemName = "beer tap", clientId = 32114, sell = 50 },
- { itemName = "beetle carapace", clientId = 24381, sell = 200 },
- { itemName = "beetle necklace", clientId = 10457, sell = 1500 },
- { itemName = "behemoth claw", clientId = 5930, sell = 2000 },
- { itemName = "behemoth trophy", clientId = 7396, sell = 20000 },
- { itemName = "bejeweled ship's telescope", clientId = 9616, sell = 20000 },
- { itemName = "belted cape", clientId = 8044, sell = 500 },
- { itemName = "berserk potion", clientId = 7439, sell = 500 },
- { itemName = "berserker", clientId = 7403, sell = 40000 },
- { itemName = "black hood", clientId = 9645, sell = 190 },
- { itemName = "black pearl", clientId = 3027, sell = 280 },
- { itemName = "black shield", clientId = 3429, sell = 800 },
- { itemName = "black skull", clientId = 9056, sell = 4000 },
- { itemName = "black wool", clientId = 11448, sell = 300 },
- { itemName = "blacksteel sword", clientId = 7406, sell = 6000 },
- { itemName = "blade of corruption", clientId = 11693, sell = 60000 },
- { itemName = "blazing bone", clientId = 16131, sell = 610 },
- { itemName = "blemished spawn abdomen", clientId = 36779, sell = 550 },
- { itemName = "blemished spawn head", clientId = 36778, sell = 800 },
- { itemName = "blemished spawn tail", clientId = 36780, sell = 1000 },
- { itemName = "blessed sceptre", clientId = 7429, sell = 40000 },
- { itemName = "blood goblet", clientId = 8531, sell = 10000 },
- { itemName = "blood herb", clientId = 3734, sell = 500 },
- { itemName = "blood preservation", clientId = 11449, sell = 320 },
- { itemName = "blood tincture in a vial", clientId = 18928, sell = 360 },
- { itemName = "bloody dwarven beard", clientId = 17827, sell = 110 },
- { itemName = "bloody edge", clientId = 7416, sell = 30000 },
- { itemName = "bloody pincers", clientId = 9633, sell = 100 },
- { itemName = "bloody tears", clientId = 32594, sell = 70000 },
- { itemName = "blue crystal shard", clientId = 16119, sell = 1500 },
- { itemName = "blue crystal splinter", clientId = 16124, sell = 400 },
- { itemName = "blue gem", clientId = 3041, sell = 5000 },
- { itemName = "blue glass plate", clientId = 29345, sell = 60 },
- { itemName = "blue goanna scale", clientId = 31559, sell = 230 },
- { itemName = "blue legs", clientId = 645, sell = 15000 },
- { itemName = "blue piece of cloth", clientId = 5912, sell = 200 },
- { itemName = "blue robe", clientId = 3567, sell = 10000 },
- { itemName = "blue rose", clientId = 3659, sell = 250 },
- { itemName = "boar man hoof", clientId = 40584, sell = 600 },
- { itemName = "boggy dreads", clientId = 9667, sell = 200 },
- { itemName = "bola", clientId = 17809, sell = 35 },
- { itemName = "bone club", clientId = 3337, sell = 5 },
- { itemName = "bone fetish", clientId = 17831, sell = 150 },
- { itemName = "bone shield", clientId = 3441, sell = 80 },
- { itemName = "bone shoulderplate", clientId = 10404, sell = 150 },
- { itemName = "bone sword", clientId = 3338, sell = 20 },
- { itemName = "bone toothpick", clientId = 24380, sell = 150 },
- { itemName = "bonebeast trophy", clientId = 10244, sell = 6000 },
- { itemName = "bonebreaker", clientId = 7428, sell = 10000 },
- { itemName = "bonecarving knife", clientId = 17830, sell = 190 },
- { itemName = "bonelord eye", clientId = 5898, sell = 80 },
- { itemName = "bonelord helmet", clientId = 3408, sell = 7500 },
- { itemName = "bonelord shield", clientId = 3418, sell = 1200 },
- { itemName = "bones of zorvorax", clientId = 24942, sell = 10000 },
- { itemName = "bony tail", clientId = 10277, sell = 210 },
- { itemName = "book of necromantic rituals", clientId = 10320, sell = 180 },
- { itemName = "book of prayers", clientId = 9646, sell = 120 },
- { itemName = "book page", clientId = 28569, sell = 640 },
- { itemName = "boots of haste", clientId = 3079, sell = 30000 },
- { itemName = "bowl of terror sweat", clientId = 20204, sell = 500 },
- { itemName = "brain head's giant neuron", clientId = 32578, sell = 100000 },
- { itemName = "brain head's left hemisphere", clientId = 32579, sell = 90000 },
- { itemName = "brain head's right hemisphere", clientId = 32580, sell = 50000 },
- { itemName = "brainstealer's brain", clientId = 36795, sell = 300000 },
- { itemName = "brainstealer's brainwave", clientId = 36796, sell = 440000 },
- { itemName = "brainstealer's tissue", clientId = 36794, sell = 240000 },
- { itemName = "brass armor", clientId = 3359, sell = 150 },
- { itemName = "brass helmet", clientId = 3354, sell = 30 },
- { itemName = "brass legs", clientId = 3372, sell = 49 },
- { itemName = "brass shield", clientId = 3411, sell = 25 },
- { itemName = "bright bell", clientId = 30324, sell = 220 },
- { itemName = "bright sword", clientId = 3295, sell = 6000 },
- { itemName = "brimstone fangs", clientId = 11702, sell = 380 },
- { itemName = "brimstone shell", clientId = 11703, sell = 210 },
- { itemName = "broadsword", clientId = 3301, sell = 500 },
- { itemName = "broken bell", clientId = 30185, sell = 150 },
- { itemName = "broken crossbow", clientId = 11451, sell = 30 },
- { itemName = "broken draken mail", clientId = 11660, sell = 340 },
- { itemName = "broken gladiator shield", clientId = 9656, sell = 190 },
- { itemName = "broken halberd", clientId = 10418, sell = 100 },
- { itemName = "broken helmet", clientId = 11453, sell = 20 },
- { itemName = "broken iks cuirass", clientId = 40533, sell = 640 },
- { itemName = "broken iks faulds", clientId = 40531, sell = 530 },
- { itemName = "broken iks headpiece", clientId = 40532, sell = 560 },
- { itemName = "broken iks sandals", clientId = 40534, sell = 440 },
- { itemName = "broken key ring", clientId = 11652, sell = 8000 },
- { itemName = "broken longbow", clientId = 34161, sell = 130 },
- { itemName = "broken macuahuitl", clientId = 40530, sell = 1000 },
- { itemName = "broken ring of ending", clientId = 12737, sell = 4000 },
- { itemName = "broken shamanic staff", clientId = 11452, sell = 35 },
- { itemName = "broken slicer", clientId = 11661, sell = 120 },
- { itemName = "broken throwing axe", clientId = 17851, sell = 230 },
- { itemName = "broken visor", clientId = 20184, sell = 1900 },
- { itemName = "bronze amulet", clientId = 3056, sell = 50, count = 200 },
- { itemName = "brooch of embracement", clientId = 34023, sell = 14000 },
- { itemName = "brown crystal splinter", clientId = 16123, sell = 400 },
- { itemName = "brown giant shimmering pearl", clientId = 282, sell = 3000 },
- { itemName = "brown piece of cloth", clientId = 5913, sell = 100 },
- { itemName = "brutetamer's staff", clientId = 7379, sell = 1500 },
- { itemName = "buckle", clientId = 17829, sell = 7000 },
- { itemName = "bullseye potion", clientId = 7443, sell = 500 },
- { itemName = "bunch of ripe rice", clientId = 10328, sell = 75 },
- { itemName = "bunch of troll hair", clientId = 9689, sell = 30 },
- { itemName = "bundle of cursed straw", clientId = 9688, sell = 800 },
- { itemName = "butcher's axe", clientId = 7412, sell = 18000 },
- { itemName = "butterfly ring", clientId = 25698, sell = 2000 },
- { itemName = "calopteryx cape", clientId = 14086, sell = 15000 },
- { itemName = "capricious heart", clientId = 34138, sell = 2100 },
- { itemName = "capricious robe", clientId = 34145, sell = 1200 },
- { itemName = "carapace shield", clientId = 14088, sell = 32000 },
- { itemName = "carlin sword", clientId = 3283, sell = 118 },
- { itemName = "carniphila seeds", clientId = 10300, sell = 50 },
- { itemName = "carnisylvan bark", clientId = 36806, sell = 230 },
- { itemName = "carnisylvan finger", clientId = 36805, sell = 250 },
- { itemName = "carnivostrich feathers", clientId = 40586, sell = 550 },
- { itemName = "carrion worm fang", clientId = 10275, sell = 35 },
- { itemName = "castle shield", clientId = 3435, sell = 5000 },
- { itemName = "cat's paw", clientId = 5479, sell = 2000 },
- { itemName = "cave chimera head", clientId = 36787, sell = 1200 },
- { itemName = "cave chimera leg", clientId = 36788, sell = 650 },
- { itemName = "cave devourer eyes", clientId = 27599, sell = 550 },
- { itemName = "cave devourer legs", clientId = 27601, sell = 350 },
- { itemName = "cave devourer maw", clientId = 27600, sell = 600 },
- { itemName = "cavebear skull", clientId = 12316, sell = 550 },
- { itemName = "centipede leg", clientId = 10301, sell = 28 },
- { itemName = "ceremonial ankh", clientId = 6561, sell = 20000 },
- { itemName = "chain armor", clientId = 3358, sell = 70 },
- { itemName = "chain bolter", clientId = 8022, sell = 40000 },
- { itemName = "chain helmet", clientId = 3352, sell = 17 },
- { itemName = "chain legs", clientId = 3558, sell = 25 },
- { itemName = "chaos mace", clientId = 7427, sell = 9000 },
- { itemName = "chasm spawn abdomen", clientId = 27603, sell = 240 },
- { itemName = "chasm spawn head", clientId = 27602, sell = 850 },
- { itemName = "chasm spawn tail", clientId = 27604, sell = 120 },
- { itemName = "cheese cutter", clientId = 17817, sell = 50 },
- { itemName = "cheesy figurine", clientId = 17818, sell = 150 },
- { itemName = "cheesy membership card", clientId = 35614, sell = 120000 },
- { itemName = "chicken feather", clientId = 5890, sell = 30 },
- { itemName = "chitinous mouth", clientId = 27626, sell = 10000 },
- { itemName = "chitinous mouth", clientId = 27622, sell = 10000 },
- { itemName = "claw of 'the noxious spawn'", clientId = 9392, sell = 15000 },
- { itemName = "cliff strider claw", clientId = 16134, sell = 800 },
- { itemName = "closed trap", clientId = 3481, sell = 75 },
- { itemName = "club ring", clientId = 3093, sell = 100 },
- { itemName = "club", clientId = 3270, sell = 1 },
- { itemName = "cluster of solace", clientId = 20062, sell = 500 },
- { itemName = "coal", clientId = 12600, sell = 20 },
- { itemName = "coat", clientId = 3562, sell = 1 },
- { itemName = "cobra crest", clientId = 31678, sell = 650 },
- { itemName = "cobra crown", clientId = 11674, sell = 50000 },
- { itemName = "cobra tongue", clientId = 9634, sell = 15 },
- { itemName = "coconut shoes", clientId = 9017, sell = 500 },
- { itemName = "collar of blue plasma", clientId = 23542, sell = 6000 },
- { itemName = "collar of green plasma", clientId = 23543, sell = 6000 },
- { itemName = "collar of red plasma", clientId = 23544, sell = 6000 },
- { itemName = "colourful feather", clientId = 11514, sell = 110 },
- { itemName = "colourful feathers", clientId = 25089, sell = 400 },
- { itemName = "colourful snail shell", clientId = 25696, sell = 250 },
- { itemName = "compass", clientId = 10302, sell = 45 },
- { itemName = "composite hornbow", clientId = 8027, sell = 25000 },
- { itemName = "compound eye", clientId = 14083, sell = 150 },
- { itemName = "condensed energy", clientId = 23501, sell = 260 },
- { itemName = "copper shield", clientId = 3430, sell = 50 },
- { itemName = "coral branch", clientId = 39406, sell = 360 },
- { itemName = "coral brooch", clientId = 24391, sell = 750 },
- { itemName = "corrupt naga scales", clientId = 39415, sell = 570 },
- { itemName = "corrupted flag", clientId = 10409, sell = 700 },
- { itemName = "countess sorrow's frozen tear", clientId = 6536, sell = 50000 },
- { itemName = "cow bell", clientId = 32012, sell = 120 },
- { itemName = "cowbell", clientId = 21204, sell = 210 },
- { itemName = "cowtana", clientId = 21177, sell = 2500 },
- { itemName = "crab man claw", clientId = 40582, sell = 550 },
- { itemName = "crab pincers", clientId = 10272, sell = 35 },
- { itemName = "cracked alabaster vase", clientId = 24385, sell = 180 },
- { itemName = "cranial basher", clientId = 7415, sell = 30000 },
- { itemName = "crawler head plating", clientId = 14079, sell = 210 },
- { itemName = "crawler's essence", clientId = 33982, sell = 3700 },
- { itemName = "crest of the deep seas", clientId = 21892, sell = 10000 },
- { itemName = "crocodile boots", clientId = 3556, sell = 1000 },
- { itemName = "crowbar", clientId = 3304, sell = 50 },
- { itemName = "crown armor", clientId = 3381, sell = 12000 },
- { itemName = "crown helmet", clientId = 3385, sell = 2500 },
- { itemName = "crown legs", clientId = 3382, sell = 12000 },
- { itemName = "crown shield", clientId = 3419, sell = 8000 },
- { itemName = "crown", clientId = 33935, sell = 2700 },
- { itemName = "cruelty's chest", clientId = 33923, sell = 720000 },
- { itemName = "cruelty's claw", clientId = 33922, sell = 640000 },
- { itemName = "crunor idol", clientId = 30055, sell = 30000 },
- { itemName = "crusader helmet", clientId = 3391, sell = 6000 },
- { itemName = "cry-stal", clientId = 39394, sell = 3200 },
- { itemName = "crystal ball", clientId = 3076, sell = 190 },
- { itemName = "crystal bone", clientId = 23521, sell = 250 },
- { itemName = "crystal crossbow", clientId = 16163, sell = 35000 },
- { itemName = "crystal mace", clientId = 3333, sell = 12000 },
- { itemName = "crystal necklace", clientId = 3008, sell = 400 },
- { itemName = "crystal of balance", clientId = 9028, sell = 1000 },
- { itemName = "crystal of focus", clientId = 9027, sell = 2000 },
- { itemName = "crystal of power", clientId = 9067, sell = 3000 },
- { itemName = "crystal pedestal", clientId = 9063, sell = 500 },
- { itemName = "crystal ring", clientId = 3007, sell = 250 },
- { itemName = "crystal sword", clientId = 7449, sell = 600 },
- { itemName = "crystal wand", clientId = 3068, sell = 10000 },
- { itemName = "crystalline armor", clientId = 8050, sell = 16000 },
- { itemName = "crystalline spikes", clientId = 16138, sell = 440 },
- { itemName = "crystalline sword", clientId = 16160, sell = 2000 },
- { itemName = "crystallized anger", clientId = 23507, sell = 400 },
- { itemName = "cultish mask", clientId = 9638, sell = 280 },
- { itemName = "cultish robe", clientId = 9639, sell = 150 },
- { itemName = "cultish symbol", clientId = 11455, sell = 500 },
- { itemName = "curious matter", clientId = 23511, sell = 430 },
- { itemName = "curl of hair", clientId = 36809, sell = 320000 },
- { itemName = "cursed bone", clientId = 32774, sell = 6000 },
- { itemName = "cursed shoulder spikes", clientId = 10410, sell = 320 },
- { itemName = "cyan crystal fragment", clientId = 16125, sell = 800 },
- { itemName = "cyclops toe", clientId = 9657, sell = 55 },
- { itemName = "cyclops trophy", clientId = 7398, sell = 500 },
- { itemName = "daedal chisel", clientId = 40522, sell = 480 },
- { itemName = "dagger", clientId = 3267, sell = 2 },
- { itemName = "damaged armor plates", clientId = 28822, sell = 280 },
- { itemName = "damaged worm head", clientId = 27620, sell = 8000 },
- { itemName = "damselfly eye", clientId = 17463, sell = 25 },
- { itemName = "damselfly wing", clientId = 17458, sell = 20 },
- { itemName = "dandelion seeds", clientId = 25695, sell = 200 },
- { itemName = "dangerous proto matter", clientId = 23515, sell = 300 },
- { itemName = "daramian mace", clientId = 3327, sell = 110 },
- { itemName = "daramian waraxe", clientId = 3328, sell = 1000 },
- { itemName = "dark armor", clientId = 3383, sell = 400 },
- { itemName = "dark bell", clientId = 32596, sell = 310000 },
- { itemName = "dark bell", clientId = 30325, sell = 250 },
- { itemName = "dark helmet", clientId = 3384, sell = 250 },
- { itemName = "dark mushroom", clientId = 3728, sell = 100 },
- { itemName = "dark rosary", clientId = 10303, sell = 48 },
- { itemName = "dark shield", clientId = 3421, sell = 400 },
- { itemName = "dead weight", clientId = 20202, sell = 450 },
- { itemName = "death ring", clientId = 6299, sell = 1000 },
- { itemName = "death toll", clientId = 32703, sell = 1000 },
- { itemName = "deepling axe", clientId = 13991, sell = 40000 },
- { itemName = "deepling breaktime snack", clientId = 14011, sell = 90 },
- { itemName = "deepling claw", clientId = 14044, sell = 430 },
- { itemName = "deepling guard belt buckle", clientId = 14010, sell = 230 },
- { itemName = "deepling ridge", clientId = 14041, sell = 360 },
- { itemName = "deepling scales", clientId = 14017, sell = 80 },
- { itemName = "deepling squelcher", clientId = 14250, sell = 7000 },
- { itemName = "deepling staff", clientId = 13987, sell = 4000 },
- { itemName = "deepling warts", clientId = 14012, sell = 180 },
- { itemName = "deeptags", clientId = 14013, sell = 290 },
- { itemName = "deepworm jaws", clientId = 27594, sell = 500 },
- { itemName = "deepworm spike roots", clientId = 27593, sell = 650 },
- { itemName = "deepworm spikes", clientId = 27592, sell = 800 },
- { itemName = "deer trophy", clientId = 7397, sell = 3000 },
- { itemName = "demon dust", clientId = 5526, sell = 300 },
- { itemName = "demon dust", clientId = 5906, sell = 300 },
- { itemName = "demon helmet", clientId = 3387, sell = 40000 },
- { itemName = "demon horn", clientId = 5954, sell = 1000 },
- { itemName = "demon shield", clientId = 3420, sell = 30000 },
- { itemName = "demon trophy", clientId = 7393, sell = 40000 },
- { itemName = "demonbone amulet", clientId = 3019, sell = 32000 },
- { itemName = "demonic essence", clientId = 6499, sell = 1000 },
- { itemName = "demonic finger", clientId = 12541, sell = 1000 },
- { itemName = "demonic skeletal hand", clientId = 9647, sell = 80 },
- { itemName = "demonrage sword", clientId = 7382, sell = 36000 },
- { itemName = "depth calcei", clientId = 13997, sell = 25000 },
- { itemName = "depth galea", clientId = 13995, sell = 35000 },
- { itemName = "depth lorica", clientId = 13994, sell = 30000 },
- { itemName = "depth ocrea", clientId = 13996, sell = 16000 },
- { itemName = "depth scutum", clientId = 13998, sell = 36000 },
- { itemName = "devil helmet", clientId = 3356, sell = 1000 },
- { itemName = "diabolic skull", clientId = 34025, sell = 19000 },
- { itemName = "diamond sceptre", clientId = 7387, sell = 3000 },
- { itemName = "diamond", clientId = 32770, sell = 15000 },
- { itemName = "diremaw brainpan", clientId = 27597, sell = 350 },
- { itemName = "diremaw legs", clientId = 27598, sell = 270 },
- { itemName = "dirty turban", clientId = 11456, sell = 120 },
- { itemName = "disgusting trophy", clientId = 10421, sell = 3000 },
- { itemName = "distorted heart", clientId = 34142, sell = 2100 },
- { itemName = "distorted robe", clientId = 34149, sell = 1200 },
- { itemName = "divine plate", clientId = 8057, sell = 55000 },
- { itemName = "djinn blade", clientId = 3339, sell = 15000 },
- { itemName = "doll", clientId = 2991, sell = 200 },
- { itemName = "double axe", clientId = 3275, sell = 260 },
- { itemName = "doublet", clientId = 3379, sell = 3 },
- { itemName = "downy feather", clientId = 11684, sell = 20 },
- { itemName = "dowser", clientId = 19110, sell = 35 },
- { itemName = "drachaku", clientId = 10391, sell = 10000 },
- { itemName = "dracola's eye", clientId = 6546, sell = 50000 },
- { itemName = "dracoyle statue", clientId = 9034, sell = 5000 },
- { itemName = "dragon blood", clientId = 24937, sell = 700 },
- { itemName = "dragon claw", clientId = 5919, sell = 8000 },
- { itemName = "dragon figurine", clientId = 30053, sell = 45000 },
- { itemName = "dragon hammer", clientId = 3322, sell = 2000 },
- { itemName = "dragon lance", clientId = 3302, sell = 9000 },
- { itemName = "dragon lord trophy", clientId = 7399, sell = 10000 },
- { itemName = "dragon necklace", clientId = 3085, sell = 100, count = 200 },
- { itemName = "dragon priest's wandtip", clientId = 10444, sell = 175 },
- { itemName = "dragon robe", clientId = 8039, sell = 50000 },
- { itemName = "dragon scale mail", clientId = 3386, sell = 40000 },
- { itemName = "dragon shield", clientId = 3416, sell = 4000 },
- { itemName = "dragon slayer", clientId = 7402, sell = 15000 },
- { itemName = "dragon tongue", clientId = 24938, sell = 550 },
- { itemName = "dragon's tail", clientId = 11457, sell = 100 },
- { itemName = "dragonbone staff", clientId = 7430, sell = 3000 },
- { itemName = "draken boots", clientId = 4033, sell = 40000 },
- { itemName = "draken sulphur", clientId = 11658, sell = 550 },
- { itemName = "draken trophy", clientId = 10398, sell = 15000 },
- { itemName = "draken wristbands", clientId = 11659, sell = 430 },
- { itemName = "drakinata", clientId = 10388, sell = 10000 },
- { itemName = "draptor scales", clientId = 12309, sell = 800 },
- { itemName = "dreaded cleaver", clientId = 7419, sell = 15000 },
- { itemName = "dream blossom staff", clientId = 25700, sell = 5000 },
- { itemName = "dream essence egg", clientId = 30005, sell = 205 },
- { itemName = "dung ball", clientId = 14225, sell = 130 },
- { itemName = "dwarven armor", clientId = 3397, sell = 30000 },
- { itemName = "dwarven axe", clientId = 3323, sell = 1500 },
- { itemName = "dwarven legs", clientId = 3398, sell = 40000 },
- { itemName = "dwarven ring", clientId = 3097, sell = 100 },
- { itemName = "dwarven shield", clientId = 3425, sell = 100 },
- { itemName = "earflap", clientId = 17819, sell = 40 },
- { itemName = "ectoplasmic sushi", clientId = 11681, sell = 300 },
- { itemName = "egg of the many", clientId = 9606, sell = 15000 },
- { itemName = "elder bonelord tentacle", clientId = 10276, sell = 150 },
- { itemName = "eldritch crystal", clientId = 36835, sell = 48000 },
- { itemName = "elite draken mail", clientId = 11651, sell = 50000 },
- { itemName = "elven amulet", clientId = 3082, sell = 100, count = 50 },
- { itemName = "elven astral observer", clientId = 11465, sell = 90 },
- { itemName = "elven hoof", clientId = 18994, sell = 115 },
- { itemName = "elven scouting glass", clientId = 11464, sell = 50 },
- { itemName = "elvish bow", clientId = 7438, sell = 2000 },
- { itemName = "elvish talisman", clientId = 9635, sell = 45 },
- { itemName = "emerald bangle", clientId = 3010, sell = 800 },
- { itemName = "emerald tortoise shell", clientId = 39379, sell = 2150 },
- { itemName = "empty honey glass", clientId = 31331, sell = 270 },
- { itemName = "empty potion flask", clientId = 283, sell = 5 },
- { itemName = "empty potion flask", clientId = 284, sell = 5 },
- { itemName = "empty potion flask", clientId = 285, sell = 5 },
- { itemName = "enchanted chicken wing", clientId = 5891, sell = 20000 },
- { itemName = "energy ball", clientId = 23523, sell = 300 },
- { itemName = "energy ring", clientId = 3051, sell = 100 },
- { itemName = "energy soil", clientId = 945, sell = 2000 },
- { itemName = "energy vein", clientId = 23508, sell = 270 },
- { itemName = "enigmatic voodoo skull", clientId = 5669, sell = 4000 },
- { itemName = "ensouled essence", clientId = 32698, sell = 820 },
- { itemName = "epee", clientId = 3326, sell = 8000 },
- { itemName = "essence of a bad dream", clientId = 10306, sell = 360 },
- { itemName = "ethno coat", clientId = 8064, sell = 200 },
- { itemName = "eternal flames", clientId = 946, sell = 5000 },
- { itemName = "execowtioner axe", clientId = 21176, sell = 12000 },
- { itemName = "execowtioner mask", clientId = 21201, sell = 240 },
- { itemName = "executioner", clientId = 7453, sell = 55000 },
- { itemName = "explorer brooch", clientId = 4871, sell = 50 },
- { itemName = "eye of a deepling", clientId = 12730, sell = 150 },
- { itemName = "eye of a weeper", clientId = 16132, sell = 650 },
- { itemName = "eye of corruption", clientId = 11671, sell = 390 },
- { itemName = "eyeless devourer legs", clientId = 36776, sell = 650 },
- { itemName = "eyeless devourer maw", clientId = 36775, sell = 420 },
- { itemName = "eyeless devourer tongue", clientId = 36777, sell = 900 },
- { itemName = "fafnar symbol", clientId = 31443, sell = 950 },
- { itemName = "fairy wings", clientId = 25694, sell = 200 },
- { itemName = "falcon crest", clientId = 28823, sell = 650 },
- { itemName = "fern", clientId = 3737, sell = 20 },
- { itemName = "fiery heart", clientId = 9636, sell = 375 },
- { itemName = "fiery tear", clientId = 39040, sell = 1070000 },
- { itemName = "fig leaf", clientId = 25742, sell = 200 },
- { itemName = "figurine of cruelty", clientId = 34019, sell = 3100000 },
- { itemName = "figurine of greed", clientId = 34021, sell = 2900000 },
- { itemName = "figurine of hatred", clientId = 34020, sell = 2700000 },
- { itemName = "figurine of malice", clientId = 34018, sell = 2800000 },
- { itemName = "figurine of megalomania", clientId = 33953, sell = 5000000 },
- { itemName = "figurine of spite", clientId = 33952, sell = 3000000 },
- { itemName = "fir cone", clientId = 19111, sell = 25 },
- { itemName = "fire axe", clientId = 3320, sell = 8000 },
- { itemName = "fire mushroom", clientId = 3731, sell = 200 },
- { itemName = "fire sword", clientId = 3280, sell = 4000 },
- { itemName = "first verse of the hymn", clientId = 6087, sell = 100 },
- { itemName = "fish fin", clientId = 5895, sell = 150 },
- { itemName = "fishing rod", clientId = 3483, sell = 40 },
- { itemName = "flask of embalming fluid", clientId = 11466, sell = 30 },
- { itemName = "flask of warrior's sweat", clientId = 5885, sell = 10000 },
- { itemName = "flawless ice crystal", clientId = 942, sell = 5000 },
- { itemName = "flintstone", clientId = 12806, sell = 800 },
- { itemName = "flotsam", clientId = 39407, sell = 330 },
- { itemName = "flower dress", clientId = 9015, sell = 1000 },
- { itemName = "flower wreath", clientId = 9013, sell = 500 },
- { itemName = "focus cape", clientId = 8043, sell = 6000 },
- { itemName = "fourth verse of the hymn", clientId = 6090, sell = 800 },
- { itemName = "fox paw", clientId = 27462, sell = 100 },
- { itemName = "frazzle skin", clientId = 20199, sell = 400 },
- { itemName = "frazzle tongue", clientId = 20198, sell = 700 },
- { itemName = "frost giant pelt", clientId = 9658, sell = 160 },
- { itemName = "frosty ear of a troll", clientId = 9648, sell = 30 },
- { itemName = "frosty heart", clientId = 9661, sell = 280 },
- { itemName = "frozen lightning", clientId = 23519, sell = 270 },
- { itemName = "frozen starlight", clientId = 3249, sell = 20000 },
- { itemName = "fur armor", clientId = 22085, sell = 5000 },
- { itemName = "fur boots", clientId = 7457, sell = 2000 },
- { itemName = "fur shred", clientId = 34164, sell = 200 },
- { itemName = "furry club", clientId = 7432, sell = 1000 },
- { itemName = "garlic necklace", clientId = 3083, sell = 50 },
- { itemName = "gauze bandage", clientId = 9649, sell = 90 },
- { itemName = "gear crystal", clientId = 9655, sell = 200 },
- { itemName = "gear wheel", clientId = 8775, sell = 500 },
- { itemName = "gearwheel chain", clientId = 21170, sell = 5000 },
- { itemName = "gemmed figurine", clientId = 24392, sell = 3500 },
- { itemName = "geomancer's robe", clientId = 11458, sell = 80 },
- { itemName = "geomancer's staff", clientId = 11463, sell = 120 },
- { itemName = "ghastly dragon head", clientId = 10449, sell = 700 },
- { itemName = "ghostly tissue", clientId = 9690, sell = 90 },
- { itemName = "ghoul snack", clientId = 11467, sell = 60 },
- { itemName = "giant amethyst", clientId = 32622, sell = 60000 },
- { itemName = "giant crab pincer", clientId = 12317, sell = 950 },
- { itemName = "giant emerald", clientId = 30060, sell = 90000 },
- { itemName = "giant eye", clientId = 10280, sell = 380 },
- { itemName = "giant pacifier", clientId = 21199, sell = 170 },
- { itemName = "giant ruby", clientId = 30059, sell = 70000 },
- { itemName = "giant sapphire", clientId = 30061, sell = 50000 },
- { itemName = "giant sword", clientId = 3281, sell = 17000 },
- { itemName = "giant tentacle", clientId = 27619, sell = 10000 },
- { itemName = "giant topaz", clientId = 32623, sell = 80000 },
- { itemName = "girlish hair decoration", clientId = 11443, sell = 30 },
- { itemName = "girtablilu warrior carapace", clientId = 36971, sell = 520 },
- { itemName = "glacial rod", clientId = 16118, sell = 6500 },
- { itemName = "glacier amulet", clientId = 815, sell = 1500 },
- { itemName = "glacier kilt", clientId = 823, sell = 11000 },
- { itemName = "glacier mask", clientId = 829, sell = 2500 },
- { itemName = "glacier robe", clientId = 824, sell = 11000 },
- { itemName = "glacier shoes", clientId = 819, sell = 2500 },
- { itemName = "gland", clientId = 8143, sell = 500 },
- { itemName = "glistening bone", clientId = 23522, sell = 250 },
- { itemName = "glob of acid slime", clientId = 9054, sell = 25 },
- { itemName = "glob of glooth", clientId = 21182, sell = 125 },
- { itemName = "glob of mercury", clientId = 9053, sell = 20 },
- { itemName = "glob of tar", clientId = 9055, sell = 30 },
- { itemName = "gloom wolf fur", clientId = 22007, sell = 70 },
- { itemName = "glooth amulet", clientId = 21183, sell = 2000 },
- { itemName = "glooth axe", clientId = 21180, sell = 1500 },
- { itemName = "glooth blade", clientId = 21179, sell = 1500 },
- { itemName = "glooth cap", clientId = 21164, sell = 7000 },
- { itemName = "glooth club", clientId = 21178, sell = 1500 },
- { itemName = "glooth injection tube", clientId = 21103, sell = 350 },
- { itemName = "glooth whip", clientId = 21172, sell = 2500 },
- { itemName = "glorious axe", clientId = 7454, sell = 3000 },
- { itemName = "glowing rune", clientId = 28570, sell = 350 },
- { itemName = "goanna claw", clientId = 31561, sell = 260 },
- { itemName = "goanna meat", clientId = 31560, sell = 190 },
- { itemName = "goat grass", clientId = 3674, sell = 50 },
- { itemName = "goblet of gloom", clientId = 34022, sell = 12000 },
- { itemName = "goblin ear", clientId = 11539, sell = 20 },
- { itemName = "gold ingot", clientId = 9058, sell = 5000 },
- { itemName = "gold nugget", clientId = 3040, sell = 850 },
- { itemName = "gold ring", clientId = 3063, sell = 8000 },
- { itemName = "gold-brocaded cloth", clientId = 40529, sell = 175 },
- { itemName = "golden amulet", clientId = 3013, sell = 2000 },
- { itemName = "golden armor", clientId = 3360, sell = 20000 },
- { itemName = "golden brush", clientId = 25689, sell = 250 },
- { itemName = "golden cheese wedge", clientId = 35581, sell = 6000 },
- { itemName = "golden dustbin", clientId = 35579, sell = 7000 },
- { itemName = "golden fafnar trophy", clientId = 9626, sell = 10000 },
- { itemName = "golden figurine", clientId = 5799, sell = 3000 },
- { itemName = "golden legs", clientId = 3364, sell = 30000 },
- { itemName = "golden lotus brooch", clientId = 21974, sell = 270 },
- { itemName = "golden mask", clientId = 31324, sell = 38000 },
- { itemName = "golden mug", clientId = 2903, sell = 250 },
- { itemName = "golden sickle", clientId = 3306, sell = 1000 },
- { itemName = "golden skull", clientId = 35580, sell = 9000 },
- { itemName = "goo shell", clientId = 19372, sell = 4000 },
- { itemName = "goosebump leather", clientId = 20205, sell = 650 },
- { itemName = "gore horn", clientId = 39377, sell = 2900 },
- { itemName = "gorerilla mane", clientId = 39392, sell = 2750 },
- { itemName = "gorerilla tail", clientId = 39393, sell = 2650 },
- { itemName = "grant of arms", clientId = 28824, sell = 950 },
- { itemName = "grappling hook", clientId = 35588, sell = 150 },
- { itemName = "grasshopper legs", clientId = 14087, sell = 15000 },
- { itemName = "grave flower", clientId = 3661, sell = 25 },
- { itemName = "greed's arm", clientId = 33924, sell = 950000 },
- { itemName = "green bandage", clientId = 25697, sell = 180 },
- { 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 dragon leather", clientId = 5877, sell = 100 },
- { itemName = "green dragon scale", clientId = 5920, sell = 100 },
- { itemName = "green gem", clientId = 3038, sell = 5000 },
- { itemName = "green giant shimmering pearl", clientId = 281, sell = 3000 },
- { itemName = "green glass plate", clientId = 29346, sell = 180 },
- { itemName = "green mushroom", clientId = 3732, sell = 100 },
- { itemName = "green piece of cloth", clientId = 5910, sell = 200 },
- { itemName = "greenwood coat", clientId = 8041, sell = 50000 },
- { itemName = "griffin shield", clientId = 3433, sell = 3000 },
- { itemName = "grimace", clientId = 32593, sell = 120000 },
- { itemName = "gruesome fan", clientId = 34024, sell = 15000 },
- { itemName = "guardian axe", clientId = 14043, sell = 9000 },
- { itemName = "guardian boots", clientId = 10323, sell = 35000 },
- { itemName = "guardian halberd", clientId = 3315, sell = 11000 },
- { itemName = "guardian shield", clientId = 3415, sell = 2000 },
- { itemName = "guidebook", clientId = 25745, sell = 200 },
- { itemName = "hailstorm rod", clientId = 3067, sell = 3000 },
- { itemName = "hair of a banshee", clientId = 11446, sell = 350 },
- { itemName = "halberd", clientId = 3269, sell = 400 },
- { itemName = "half-digested piece of meat", clientId = 10283, sell = 55 },
- { itemName = "half-digested stones", clientId = 27369, sell = 40 },
- { itemName = "half-eaten brain", clientId = 9659, sell = 85 },
- { itemName = "hammer of wrath", clientId = 3332, sell = 30000 },
- { itemName = "hand axe", clientId = 3268, sell = 4 },
- { itemName = "hand", clientId = 33936, sell = 1450 },
- { itemName = "hardened bone", clientId = 5925, sell = 70 },
- { itemName = "harpoon of a giant snail", clientId = 27625, sell = 15000 },
- { itemName = "harpy feathers", clientId = 40585, sell = 730 },
- { itemName = "hatched rorc egg", clientId = 18997, sell = 30 },
- { itemName = "hatchet", clientId = 3276, sell = 25 },
- { itemName = "haunted blade", clientId = 7407, sell = 8000 },
- { itemName = "haunted piece of wood", clientId = 9683, sell = 115 },
- { itemName = "hazardous heart", clientId = 34140, sell = 5000 },
- { itemName = "hazardous robe", clientId = 34147, sell = 3000 },
- { itemName = "head", clientId = 33937, sell = 3200 },
- { itemName = "head", clientId = 33932, sell = 3500 },
- { itemName = "headchopper", clientId = 7380, sell = 6000 },
- { itemName = "headpecker beak", clientId = 39387, sell = 2998 },
- { itemName = "headpecker feather", clientId = 39388, sell = 1300 },
- { itemName = "heat core", clientId = 21167, sell = 10000 },
- { itemName = "heaven blossom", clientId = 3657, sell = 50 },
- { itemName = "heaven blossom", clientId = 5921, sell = 50 },
- { itemName = "heavy mace", clientId = 3340, sell = 50000 },
- { itemName = "heavy machete", clientId = 3330, sell = 90 },
- { itemName = "heavy old tome", clientId = 23986, sell = 30 },
- { itemName = "heavy trident", clientId = 12683, sell = 2000 },
- { itemName = "hellhound slobber", clientId = 9637, sell = 500 },
- { itemName = "hellspawn tail", clientId = 10304, sell = 475 },
- { itemName = "helmet of the lost", clientId = 17852, sell = 2000 },
- { itemName = "hemp rope", clientId = 20206, sell = 350 },
- { itemName = "heroic axe", clientId = 7389, sell = 30000 },
- { itemName = "hexagonal ruby", clientId = 30180, sell = 30000 },
- { itemName = "hibiscus dress", clientId = 8045, sell = 3000 },
- { itemName = "hideous chunk", clientId = 16140, sell = 510 },
- { itemName = "hieroglyph banner", clientId = 12482, sell = 500 },
- { itemName = "high guard flag", clientId = 10415, sell = 550 },
- { itemName = "high guard shoulderplates", clientId = 10416, sell = 130 },
- { itemName = "hive bow", clientId = 14246, sell = 28000 },
- { itemName = "hive scythe", clientId = 14089, sell = 17000 },
- { itemName = "hollow stampor hoof", clientId = 12314, sell = 400 },
- { itemName = "holy ash", clientId = 17850, sell = 160 },
- { itemName = "holy orchid", clientId = 5922, sell = 90 },
- { itemName = "honeycomb", clientId = 5902, sell = 40 },
- { itemName = "horn of kalyassa", clientId = 24941, sell = 10000 },
- { itemName = "horn", clientId = 19359, sell = 300 },
- { itemName = "horoscope", clientId = 18926, sell = 40 },
- { itemName = "huge chunk of crude iron", clientId = 5892, sell = 15000 },
- { itemName = "huge shell", clientId = 27621, sell = 15000 },
- { itemName = "huge spiky snail shell", clientId = 27627, sell = 8000 },
- { itemName = "humongous chunk", clientId = 16139, sell = 540 },
- { itemName = "hunter's quiver", clientId = 11469, sell = 80 },
- { itemName = "hydra egg", clientId = 4839, sell = 500 },
- { itemName = "hydra head", clientId = 10282, sell = 600 },
- { itemName = "hydrophytes", clientId = 39410, sell = 220 },
- { itemName = "ice flower", clientId = 30058, sell = 370 },
- { itemName = "ice rapier", clientId = 3284, sell = 1000 },
- { itemName = "iced soil", clientId = 944, sell = 2000 },
- { itemName = "incantation notes", clientId = 18929, sell = 90 },
- { itemName = "infernal heart", clientId = 34139, sell = 2100 },
- { itemName = "infernal robe", clientId = 34146, sell = 1200 },
- { itemName = "inkwell", clientId = 28568, sell = 720 },
- { itemName = "instable proto matter", clientId = 23516, sell = 300 },
- { itemName = "iron helmet", clientId = 3353, sell = 150 },
- { itemName = "iron ore", clientId = 5880, sell = 500 },
- { itemName = "ivory carving", clientId = 33945, sell = 300 },
- { itemName = "ivory comb", clientId = 32773, sell = 8000 },
- { itemName = "izcandar's snow globe", clientId = 29944, sell = 180000 },
- { itemName = "izcandar's sundial", clientId = 29945, sell = 225000 },
- { itemName = "jacket", clientId = 3561, sell = 1 },
- { itemName = "jade hammer", clientId = 7422, sell = 25000 },
- { itemName = "jade hat", clientId = 10451, sell = 9000 },
- { itemName = "jagged sickle", clientId = 32595, sell = 150000 },
- { itemName = "jaws", clientId = 34014, sell = 3900 },
- { itemName = "jewelled belt", clientId = 11470, sell = 180 },
- { itemName = "jungle moa claw", clientId = 39404, sell = 160 },
- { itemName = "jungle moa egg", clientId = 39405, sell = 250 },
- { itemName = "jungle moa feather", clientId = 39403, sell = 140 },
- { itemName = "katana", clientId = 3300, sell = 35 },
- { itemName = "katex' blood", clientId = 34100, sell = 210 },
- { itemName = "key to the drowned library", clientId = 14009, sell = 330 },
- { itemName = "knight armor", clientId = 3370, sell = 5000 },
- { itemName = "knight axe", clientId = 3318, sell = 2000 },
- { itemName = "knight legs", clientId = 3371, sell = 5000 },
- { itemName = "kollos shell", clientId = 14077, sell = 420 },
- { itemName = "kongra's shoulderpad", clientId = 11471, sell = 100 },
- { itemName = "krimhorn helmet", clientId = 7461, sell = 200 },
- { itemName = "lamassu hoof", clientId = 31441, sell = 330 },
- { itemName = "lamassu horn", clientId = 31442, sell = 240 },
- { itemName = "lancer beetle shell", clientId = 10455, sell = 80 },
- { itemName = "lancet", clientId = 18925, sell = 90 },
- { itemName = "lava fungus head", clientId = 36785, sell = 900 },
- { itemName = "lava fungus ring", clientId = 36786, sell = 390 },
- { itemName = "lavaworm jaws", clientId = 36771, sell = 1100 },
- { itemName = "lavaworm spike roots", clientId = 36769, sell = 600 },
- { itemName = "lavaworm spikes", clientId = 36770, sell = 750 },
- { itemName = "lavos armor", clientId = 8049, sell = 16000 },
- { itemName = "leaf legs", clientId = 9014, sell = 500 },
- { itemName = "leaf star", clientId = 25735, sell = 50 },
- { itemName = "leather armor", clientId = 3361, sell = 12 },
- { itemName = "leather boots", clientId = 3552, sell = 2 },
- { itemName = "leather helmet", clientId = 3355, sell = 4 },
- { itemName = "leather legs", clientId = 3559, sell = 9 },
- { itemName = "legion helmet", clientId = 3374, sell = 22 },
- { itemName = "legionnaire flags", clientId = 10417, sell = 500 },
- { itemName = "leopard armor", clientId = 3404, sell = 1000 },
- { itemName = "leviathan's amulet", clientId = 9303, sell = 3000 },
- { itemName = "life crystal", clientId = 3061, sell = 85 },
- { itemName = "life preserver", clientId = 17813, sell = 300 },
- { itemName = "life ring", clientId = 3052, sell = 50 },
- { itemName = "light shovel", clientId = 5710, sell = 300 },
- { itemName = "lightning boots", clientId = 820, sell = 2500 },
- { itemName = "lightning headband", clientId = 828, sell = 2500 },
- { itemName = "lightning legs", clientId = 822, sell = 11000 },
- { itemName = "lightning pendant", clientId = 816, sell = 1500 },
- { itemName = "lightning robe", clientId = 825, sell = 11000 },
- { itemName = "liodile fang", clientId = 40583, sell = 480 },
- { itemName = "lion cloak patch", clientId = 34162, sell = 190 },
- { itemName = "lion crest", clientId = 34160, sell = 270 },
- { itemName = "lion figurine", clientId = 33781, sell = 10000 },
- { itemName = "lion seal", clientId = 34163, sell = 210 },
- { itemName = "lion trophy", clientId = 7400, sell = 3000 },
- { itemName = "lion's mane", clientId = 9691, sell = 60 },
- { itemName = "little bowl of myrrh", clientId = 25702, sell = 500 },
- { itemName = "lizard essence", clientId = 11680, sell = 300 },
- { itemName = "lizard heart", clientId = 31340, sell = 530 },
- { itemName = "lizard leather", clientId = 5876, sell = 150 },
- { itemName = "lizard scale", clientId = 5881, sell = 120 },
- { itemName = "lizard trophy", clientId = 10419, sell = 8000 },
- { itemName = "longing eyes", clientId = 27624, sell = 8000 },
- { itemName = "longsword", clientId = 3285, sell = 51 },
- { itemName = "lost basher's spike", clientId = 17826, sell = 280 },
- { itemName = "lost bracers", clientId = 17853, sell = 140 },
- { itemName = "lost husher's staff", clientId = 17848, sell = 250 },
- { itemName = "lost soul", clientId = 32227, sell = 120 },
- { itemName = "luminescent crystal pickaxe", clientId = 32711, sell = 50 },
- { itemName = "luminous orb", clientId = 11454, sell = 1000 },
- { itemName = "lump of dirt", clientId = 9692, sell = 10 },
- { itemName = "lump of earth", clientId = 10305, sell = 130 },
- { itemName = "lunar staff", clientId = 7424, sell = 5000 },
- { itemName = "mace", clientId = 3286, sell = 30 },
- { itemName = "machete", clientId = 3308, sell = 6 },
- { itemName = "mad froth", clientId = 17854, sell = 80 },
- { itemName = "magic light wand", clientId = 3046, sell = 35 },
- { itemName = "magic plate armor", clientId = 3366, sell = 90000 },
- { itemName = "magic sulphur", clientId = 5904, sell = 8000 },
- { itemName = "magma amulet", clientId = 817, sell = 1500 },
- { itemName = "magma boots", clientId = 818, sell = 2500 },
- { itemName = "magma clump", clientId = 16130, sell = 570 },
- { itemName = "magma coat", clientId = 826, sell = 11000 },
- { itemName = "magma legs", clientId = 821, sell = 11000 },
- { itemName = "magma monocle", clientId = 827, sell = 2500 },
- { itemName = "makara fin", clientId = 39401, sell = 350 },
- { itemName = "makara tongue", clientId = 39402, sell = 320 },
- { itemName = "malice's horn", clientId = 33920, sell = 620000 },
- { itemName = "malice's spine", clientId = 33921, sell = 850000 },
- { itemName = "malofur's lunchbox", clientId = 30088, sell = 240000 },
- { itemName = "mammoth fur cape", clientId = 7463, sell = 6000 },
- { itemName = "mammoth fur shorts", clientId = 7464, sell = 850 },
- { itemName = "mammoth tusk", clientId = 10321, sell = 100 },
- { itemName = "mammoth whopper", clientId = 7381, sell = 300 },
- { itemName = "mandrake", clientId = 5014, sell = 5000 },
- { itemName = "mantassin tail", clientId = 11489, sell = 280 },
- { itemName = "manticore ear", clientId = 31440, sell = 310 },
- { itemName = "manticore tail", clientId = 31439, sell = 220 },
- { itemName = "mantosaurus jaw", clientId = 39386, sell = 2998 },
- { itemName = "marlin trophy", clientId = 902, sell = 5000 },
- { itemName = "marsh stalker beak", clientId = 17461, sell = 65 },
- { itemName = "marsh stalker feather", clientId = 17462, sell = 50 },
- { itemName = "mastermind potion", clientId = 7440, sell = 500 },
- { itemName = "mastermind shield", clientId = 3414, sell = 50000 },
- { itemName = "maxilla", clientId = 12315, sell = 250 },
- { itemName = "maxxenius head", clientId = 29942, sell = 500000 },
- { itemName = "meat hammer", clientId = 32093, sell = 60 },
- { itemName = "medal of valiance", clientId = 31591, sell = 410000 },
- { itemName = "medusa shield", clientId = 3436, sell = 9000 },
- { itemName = "megalomania's essence", clientId = 33928, sell = 1900000 },
- { itemName = "megalomania's skull", clientId = 33925, sell = 1500000 },
- { itemName = "mercenary sword", clientId = 7386, sell = 12000 },
- { itemName = "mercurial wing", clientId = 39395, sell = 2500 },
- { itemName = "metal bat", clientId = 21171, sell = 9000 },
- { itemName = "metal jaw", clientId = 21193, sell = 260 },
- { itemName = "metal spats", clientId = 21169, sell = 2000 },
- { itemName = "metal spike", clientId = 10298, sell = 320 },
- { itemName = "metal toe", clientId = 21198, sell = 430 },
- { itemName = "might ring", clientId = 3048, sell = 250, count = 20 },
- { itemName = "milk churn", clientId = 32011, sell = 100 },
- { itemName = "mind stone", clientId = 3062, sell = 100 },
- { itemName = "mino lance", clientId = 21174, sell = 7000 },
- { itemName = "mino shield", clientId = 21175, sell = 3000 },
- { itemName = "minotaur horn", clientId = 11472, sell = 75 },
- { itemName = "minotaur leather", clientId = 5878, sell = 80 },
- { itemName = "minotaur trophy", clientId = 7401, sell = 500 },
- { itemName = "miraculum", clientId = 11474, sell = 60 },
- { itemName = "model ship", clientId = 2994, sell = 1000 },
- { itemName = "modified crossbow", clientId = 8021, sell = 10000 },
- { itemName = "mooh'tah plate", clientId = 21166, sell = 6000 },
- { itemName = "mooh'tah shell", clientId = 21202, sell = 110 },
- { itemName = "moohtant cudgel", clientId = 21173, sell = 14000 },
- { itemName = "moohtant horn", clientId = 21200, sell = 140 },
- { itemName = "moonlight rod", clientId = 3070, sell = 200 },
- { itemName = "moonstone", clientId = 32771, sell = 13000 },
- { itemName = "morbid tapestry", clientId = 34170, sell = 30000 },
- { itemName = "morgaroth's heart", clientId = 5943, sell = 15000 },
- { itemName = "morshabaal's brain", clientId = 37613, sell = 15000 },
- { itemName = "morshabaal's extract", clientId = 37810, sell = 3250000 },
- { itemName = "morning star", clientId = 3282, sell = 100 },
- { itemName = "mother soil", clientId = 947, sell = 5000 },
- { itemName = "mould heart", clientId = 34141, sell = 2100 },
- { itemName = "mould robe", clientId = 34148, sell = 1200 },
- { itemName = "mouldy powder", clientId = 35596, sell = 200 },
- { itemName = "mr. punish's handcuffs", clientId = 6537, sell = 50000 },
- { itemName = "muck rod", clientId = 16117, sell = 6000 },
- { itemName = "mucus plug", clientId = 16102, sell = 500 },
- { itemName = "mutated bat ear", clientId = 9662, sell = 420 },
- { itemName = "mutated flesh", clientId = 10308, sell = 50 },
- { itemName = "mutated rat tail", clientId = 9668, sell = 150 },
- { itemName = "mycological bow", clientId = 16164, sell = 35000 },
- { itemName = "mysterious fetish", clientId = 3078, sell = 50 },
- { itemName = "mysterious voodoo skull", clientId = 5668, sell = 4000 },
- { itemName = "mystic blade", clientId = 7384, sell = 30000 },
- { itemName = "mystic turban", clientId = 3574, sell = 150 },
- { itemName = "mystical hourglass", clientId = 9660, sell = 700 },
- { itemName = "naga archer scales", clientId = 39413, sell = 340 },
- { itemName = "naga armring", clientId = 39411, sell = 390 },
- { itemName = "naga earring", clientId = 39412, sell = 380 },
- { itemName = "naga warrior scales", clientId = 39414, sell = 340 },
- { itemName = "naginata", clientId = 3314, sell = 2000 },
- { itemName = "natural soil", clientId = 940, sell = 2000 },
- { itemName = "necklace of the deep", clientId = 13990, sell = 3000 },
- { itemName = "necromantic robe", clientId = 11475, sell = 250 },
- { itemName = "necromantic rust", clientId = 21196, sell = 390 },
- { itemName = "necrotic rod", clientId = 3069, sell = 1000 },
- { itemName = "nettle blossom", clientId = 10314, sell = 75 },
- { itemName = "nettle spit", clientId = 11476, sell = 25 },
- { itemName = "neutral matter", clientId = 954, sell = 5000 },
- { itemName = "nighthunter wing", clientId = 39381, sell = 2000 },
- { itemName = "nightmare blade", clientId = 7418, sell = 35000 },
- { itemName = "noble amulet", clientId = 31595, sell = 430000 },
- { itemName = "noble armor", clientId = 3380, sell = 900 },
- { itemName = "noble axe", clientId = 7456, sell = 10000 },
- { itemName = "noble cape", clientId = 31593, sell = 425000 },
- { itemName = "noble turban", clientId = 11486, sell = 430 },
- { itemName = "norse shield", clientId = 7460, sell = 1500 },
- { itemName = "northwind rod", clientId = 8083, sell = 1500 },
- { itemName = "nose ring", clientId = 5804, sell = 2000 },
- { itemName = "obsidian lance", clientId = 3313, sell = 500 },
- { itemName = "odd organ", clientId = 23510, sell = 410 },
- { itemName = "ogre ear stud", clientId = 22188, sell = 180 },
- { itemName = "ogre nose ring", clientId = 22189, sell = 210 },
- { itemName = "old parchment", clientId = 4831, sell = 500 },
- { itemName = "old girtablilu carapace", clientId = 36972, sell = 570 },
- { itemName = "one of timira's many heads", clientId = 39399, sell = 215000 },
- { itemName = "onyx chip", clientId = 22193, sell = 500 },
- { itemName = "onyx flail", clientId = 7421, sell = 22000 },
- { itemName = "onyx pendant", clientId = 22195, sell = 3500 },
- { itemName = "opal", clientId = 22194, sell = 500 },
- { itemName = "orange mushroom", clientId = 3726, sell = 150 },
- { itemName = "orb", clientId = 3060, sell = 750 },
- { itemName = "orc leather", clientId = 11479, sell = 30 },
- { itemName = "orc tooth", clientId = 10196, sell = 150 },
- { itemName = "orc trophy", clientId = 7395, sell = 1000 },
- { itemName = "orc tusk", clientId = 7786, sell = 700 },
- { itemName = "orcish axe", clientId = 3316, sell = 350 },
- { itemName = "orcish gear", clientId = 11477, sell = 85 },
- { itemName = "orcish maul", clientId = 7392, sell = 6000 },
- { itemName = "orichalcum pearl", clientId = 5021, sell = 40 },
- { itemName = "oriental shoes", clientId = 21981, sell = 15000 },
- { itemName = "ornamented axe", clientId = 7411, sell = 20000 },
- { itemName = "ornamented shield", clientId = 3424, sell = 1500 },
- { itemName = "ornate chestplate", clientId = 13993, sell = 60000 },
- { itemName = "ornate crossbow", clientId = 14247, sell = 12000 },
- { itemName = "ornate legs", clientId = 13999, sell = 40000 },
- { itemName = "ornate locket", clientId = 30056, sell = 18000 },
- { itemName = "ornate mace", clientId = 14001, sell = 42000 },
- { itemName = "ornate shield", clientId = 14000, sell = 42000 },
- { itemName = "orshabaal's brain", clientId = 5808, sell = 12000 },
- { itemName = "pair of hellflayer horns", clientId = 22729, sell = 1300 },
- { itemName = "pair of iron fists", clientId = 17828, sell = 4000 },
- { itemName = "pair of old bracers", clientId = 32705, sell = 500 },
- { itemName = "paladin armor", clientId = 8063, sell = 15000 },
- { itemName = "pale worm's scalp", clientId = 32598, sell = 489000 },
- { itemName = "panda teddy", clientId = 5080, sell = 30000 },
- { itemName = "panpipes", clientId = 2953, sell = 150 },
- { itemName = "panther head", clientId = 12039, sell = 750 },
- { itemName = "panther paw", clientId = 12040, sell = 300 },
- { itemName = "parder fur", clientId = 39418, sell = 150 },
- { itemName = "parder tooth", clientId = 39417, sell = 150 },
- { itemName = "patch of fine cloth", clientId = 28821, sell = 1350 },
- { itemName = "patched boots", clientId = 3550, sell = 2000 },
- { itemName = "peacock feather fan", clientId = 21975, sell = 350 },
- { itemName = "pelvis bone", clientId = 11481, sell = 30 },
- { itemName = "percht horns", clientId = 30186, sell = 200 },
- { itemName = "perfect behemoth fang", clientId = 5893, sell = 250 },
- { itemName = "pet pig", clientId = 16165, sell = 1500 },
- { itemName = "petrified scream", clientId = 10420, sell = 250 },
- { itemName = "phantasmal hair", clientId = 32704, sell = 500 },
- { itemName = "pharaoh banner", clientId = 12483, sell = 1000 },
- { itemName = "pharaoh sword", clientId = 3334, sell = 23000 },
- { itemName = "phoenix shield", clientId = 3439, sell = 16000 },
- { itemName = "pick", clientId = 3456, sell = 15 },
- { itemName = "piece of archer armor", clientId = 11483, sell = 20 },
- { itemName = "piece of crocodile leather", clientId = 10279, sell = 15 },
- { itemName = "piece of dead brain", clientId = 9663, sell = 420 },
- { itemName = "piece of draconian steel", clientId = 5889, sell = 3000 },
- { itemName = "piece of hell steel", clientId = 5888, sell = 500 },
- { itemName = "piece of hellfire armor", clientId = 9664, sell = 550 },
- { itemName = "piece of massacre's shell", clientId = 6540, sell = 50000 },
- { itemName = "piece of royal steel", clientId = 5887, sell = 10000 },
- { itemName = "piece of scarab shell", clientId = 9641, sell = 45 },
- { itemName = "piece of swampling wood", clientId = 17823, sell = 30 },
- { itemName = "piece of timira's sensors", clientId = 39400, sell = 150000 },
- { itemName = "piece of warrior armor", clientId = 11482, sell = 50 },
- { itemName = "pieces of magic chalk", clientId = 18930, sell = 210 },
- { itemName = "pig foot", clientId = 9693, sell = 10 },
- { itemName = "pile of grave earth", clientId = 11484, sell = 25 },
- { itemName = "pirat's tail", clientId = 35573, sell = 180 },
- { itemName = "pirate boots", clientId = 5461, sell = 3000 },
- { itemName = "pirate coin", clientId = 35572, sell = 110 },
- { itemName = "pirate hat", clientId = 6096, sell = 1000 },
- { itemName = "pirate knee breeches", clientId = 5918, sell = 200 },
- { itemName = "pirate shirt", clientId = 6095, sell = 500 },
- { itemName = "pirate voodoo doll", clientId = 5810, sell = 500 },
- { itemName = "plagueroot offshoot", clientId = 30087, sell = 280000 },
- { itemName = "plasma pearls", clientId = 23506, sell = 250 },
- { itemName = "plasmatic lightning", clientId = 23520, sell = 270 },
- { itemName = "plate armor", clientId = 3357, sell = 400 },
- { itemName = "plate legs", clientId = 3557, sell = 115 },
- { itemName = "plate shield", clientId = 3410, sell = 45 },
- { itemName = "platinum amulet", clientId = 3055, sell = 2500 },
- { itemName = "poison dagger", clientId = 3299, sell = 50 },
- { itemName = "poison gland", clientId = 29348, sell = 210 },
- { itemName = "poison spider shell", clientId = 11485, sell = 10 },
- { itemName = "poisoned fang", clientId = 21195, sell = 130 },
- { itemName = "poisonous slime", clientId = 9640, sell = 50 },
- { itemName = "polar bear paw", clientId = 9650, sell = 30 },
- { itemName = "pool of chitinous glue", clientId = 20207, sell = 480 },
- { itemName = "porcelain mask", clientId = 25088, sell = 2000 },
- { itemName = "powder herb", clientId = 3739, sell = 10 },
- { itemName = "power ring", clientId = 3050, sell = 50 },
- { itemName = "prehemoth claw", clientId = 39383, sell = 2300 },
- { itemName = "prehemoth horns", clientId = 39382, sell = 3000 },
- { itemName = "prismatic quartz", clientId = 24962, sell = 450 },
- { itemName = "pristine worm head", clientId = 27618, sell = 15000 },
- { itemName = "protection amulet", clientId = 3084, sell = 100, count = 250 },
- { itemName = "protective charm", clientId = 11444, sell = 60 },
- { itemName = "pulverized ore", clientId = 16133, sell = 400 },
- { itemName = "purified soul", clientId = 32228, sell = 260 },
- { itemName = "purple robe", clientId = 11473, sell = 110 },
- { itemName = "purple tome", clientId = 2848, sell = 2000 },
- { itemName = "quara bone", clientId = 11491, sell = 500 },
- { itemName = "quara eye", clientId = 11488, sell = 350 },
- { itemName = "quara pincers", clientId = 11490, sell = 410 },
- { itemName = "quara tentacle", clientId = 11487, sell = 140 },
- { itemName = "queen's sceptre", clientId = 7410, sell = 20000 },
- { itemName = "quill", clientId = 28567, sell = 1100 },
- { itemName = "rabbit's foot", clientId = 12172, sell = 50 },
- { itemName = "ragnir helmet", clientId = 7462, sell = 400 },
- { itemName = "rainbow quartz", clientId = 25737, sell = 800 },
- { itemName = "rapier", clientId = 3272, sell = 5 },
- { itemName = "rare earth", clientId = 27301, sell = 80 },
- { itemName = "ratana", clientId = 17812, sell = 500 },
- { itemName = "ratmiral's hat", clientId = 35613, sell = 150000 },
- { itemName = "ravenous circlet", clientId = 32597, sell = 220000 },
- { itemName = "red crystal fragment", clientId = 16126, sell = 800 },
- { itemName = "red dragon leather", clientId = 5948, sell = 200 },
- { itemName = "red dragon scale", clientId = 5882, sell = 200 },
- { itemName = "red gem", clientId = 3039, sell = 1000 },
- { itemName = "red goanna scale", clientId = 31558, sell = 270 },
- { itemName = "red hair dye", clientId = 17855, sell = 40 },
- { itemName = "red lantern", clientId = 10289, sell = 250 },
- { itemName = "red piece of cloth", clientId = 5911, sell = 300 },
- { itemName = "red tome", clientId = 2852, sell = 2000 },
- { itemName = "relic sword", clientId = 7383, sell = 25000 },
- { itemName = "rhindeer antlers", clientId = 40587, sell = 680 },
- { itemName = "rhino hide", clientId = 24388, sell = 175 },
- { itemName = "rhino horn carving", clientId = 24386, sell = 300 },
- { itemName = "rhino horn", clientId = 24389, sell = 265 },
- { itemName = "rift bow", clientId = 22866, sell = 45000 },
- { itemName = "rift crossbow", clientId = 22867, sell = 45000 },
- { itemName = "rift lance", clientId = 22727, sell = 30000 },
- { itemName = "rift shield", clientId = 22726, sell = 50000 },
- { itemName = "ring of blue plasma", clientId = 23529, sell = 8000 },
- { itemName = "ring of green plasma", clientId = 23531, sell = 8000 },
- { itemName = "ring of healing", clientId = 3098, sell = 100 },
- { itemName = "ring of red plasma", clientId = 23533, sell = 8000 },
- { itemName = "ring of the sky", clientId = 3006, sell = 30000 },
- { itemName = "ripptor claw", clientId = 39389, sell = 2000 },
- { itemName = "ripptor scales", clientId = 39391, sell = 1200 },
- { itemName = "ritual tooth", clientId = 40528, sell = 135 },
- { itemName = "rod", clientId = 33929, sell = 2200 },
- { itemName = "rogue naga scales", clientId = 39416, sell = 570 },
- { itemName = "roots", clientId = 33938, sell = 1200 },
- { itemName = "rope belt", clientId = 11492, sell = 66 },
- { itemName = "rope", clientId = 3003, sell = 15 },
- { itemName = "rorc egg", clientId = 18996, sell = 120 },
- { itemName = "rorc feather", clientId = 18993, sell = 70 },
- { itemName = "rotten feather", clientId = 40527, sell = 120 },
- { itemName = "rotten heart", clientId = 31589, sell = 74000 },
- { itemName = "rotten piece of cloth", clientId = 10291, sell = 30 },
- { itemName = "royal almandine", clientId = 39038, sell = 460000 },
- { itemName = "royal axe", clientId = 7434, sell = 40000 },
- { itemName = "royal helmet", clientId = 3392, sell = 30000 },
- { itemName = "rubber cap", clientId = 21165, sell = 11000 },
- { itemName = "ruby necklace", clientId = 3016, sell = 2000 },
- { itemName = "runed sword", clientId = 7417, sell = 45000 },
- { itemName = "ruthless axe", clientId = 6553, sell = 45000 },
- { itemName = "sabre", clientId = 3273, sell = 12 },
- { itemName = "sabretooth fur", clientId = 39378, sell = 2500 },
- { itemName = "sabretooth", clientId = 10311, sell = 400 },
- { itemName = "sacred tree amulet", clientId = 9302, sell = 3000 },
- { itemName = "safety pin", clientId = 11493, sell = 120 },
- { itemName = "sai", clientId = 10389, sell = 16500 },
- { itemName = "sample of monster blood", clientId = 27874, sell = 250 },
- { itemName = "sandcrawler shell", clientId = 10456, sell = 20 },
- { itemName = "sapphire hammer", clientId = 7437, sell = 7000 },
- { itemName = "scale armor", clientId = 3377, sell = 75 },
- { itemName = "scale of corruption", clientId = 11673, sell = 680 },
- { itemName = "scale of gelidrazah", clientId = 24939, sell = 10000 },
- { itemName = "scarab amulet", clientId = 3018, sell = 200 },
- { itemName = "scarab coin", clientId = 3042, sell = 100 },
- { itemName = "scarab pincers", clientId = 9631, sell = 280 },
- { itemName = "scarab shield", clientId = 3440, sell = 2000 },
- { itemName = "scimitar", clientId = 3307, sell = 150 },
- { itemName = "scorpion charm", clientId = 36822, sell = 620 },
- { itemName = "scorpion tail", clientId = 9651, sell = 25 },
- { itemName = "scroll of heroic deeds", clientId = 11510, sell = 230 },
- { itemName = "scythe leg", clientId = 10312, sell = 450 },
- { itemName = "scythe", clientId = 3453, sell = 10 },
- { itemName = "sea horse figurine", clientId = 31323, sell = 42000 },
- { itemName = "sea serpent scale", clientId = 9666, sell = 520 },
- { itemName = "sea serpent trophy", clientId = 9613, sell = 10000 },
- { itemName = "seacrest hair", clientId = 21801, sell = 260 },
- { itemName = "seacrest pearl", clientId = 21747, sell = 400 },
- { itemName = "seacrest scale", clientId = 21800, sell = 150 },
- { itemName = "second verse of the hymn", clientId = 6088, sell = 250 },
- { itemName = "seeds", clientId = 647, sell = 150 },
- { itemName = "serpent sword", clientId = 3297, sell = 900 },
- { itemName = "shadow herb", clientId = 3740, sell = 20 },
- { itemName = "shadow sceptre", clientId = 7451, sell = 10000 },
- { itemName = "shaggy tail", clientId = 10407, sell = 25 },
- { itemName = "shamanic hood", clientId = 11478, sell = 45 },
- { itemName = "shamanic talisman", clientId = 22184, sell = 200 },
- { itemName = "shard", clientId = 7290, sell = 2000 },
- { itemName = "shark fins", clientId = 35574, sell = 250 },
- { itemName = "shimmering beetles", clientId = 25693, sell = 150 },
- { itemName = "shiny stone", clientId = 10310, sell = 500 },
- { itemName = "shockwave amulet", clientId = 9304, sell = 3000 },
- { itemName = "short sword", clientId = 3294, sell = 10 },
- { itemName = "shovel", clientId = 3457, sell = 8 },
- { itemName = "sickle", clientId = 3293, sell = 3 },
- { itemName = "sight of surrender's eye", clientId = 20183, sell = 3000 },
- { itemName = "signet ring", clientId = 31592, sell = 480000 },
- { itemName = "silencer claws", clientId = 20200, sell = 390 },
- { itemName = "silencer resonating chamber", clientId = 20201, sell = 600 },
- { itemName = "silken bookmark", clientId = 28566, sell = 1300 },
- { itemName = "silkweaver bow", clientId = 8029, sell = 12000 },
- { itemName = "silky fur", clientId = 10292, sell = 35 },
- { itemName = "silver amulet", clientId = 3054, sell = 50, count = 200 },
- { itemName = "silver brooch", clientId = 3017, sell = 150 },
- { itemName = "silver dagger", clientId = 3290, sell = 500 },
- { itemName = "silver fafnar trophy", clientId = 9627, sell = 1000 },
- { itemName = "silver hand mirror", clientId = 32772, sell = 10000 },
- { itemName = "silver rune emblem explosion", clientId = 11607, sell = 5000 },
- { itemName = "silver rune emblem heavy magic missile", clientId = 11605, sell = 5000 },
- { itemName = "silver rune emblem sudden death", clientId = 11609, sell = 5000 },
- { itemName = "silver rune emblem ultimate healing", clientId = 11603, sell = 5000 },
- { itemName = "single human eye", clientId = 25701, sell = 1000 },
- { itemName = "skeleton decoration", clientId = 6525, sell = 3000 },
- { itemName = "skull belt", clientId = 11480, sell = 80 },
- { itemName = "skull coin", clientId = 32583, sell = 12000 },
- { itemName = "skull fetish", clientId = 22191, sell = 250 },
- { itemName = "skull helmet", clientId = 5741, sell = 40000 },
- { itemName = "skull shatterer", clientId = 17849, sell = 170 },
- { itemName = "skull staff", clientId = 3324, sell = 6000 },
- { itemName = "skullcracker armor", clientId = 8061, sell = 18000 },
- { itemName = "skunk tail", clientId = 10274, sell = 50 },
- { itemName = "slime heart", clientId = 21194, sell = 160 },
- { itemName = "slime mould", clientId = 12601, sell = 175 },
- { itemName = "slimy leaf tentacle", clientId = 21197, sell = 320 },
- { itemName = "slimy leg", clientId = 27623, sell = 4500 },
- { itemName = "sling herb", clientId = 3738, sell = 10 },
- { itemName = "small amethyst", clientId = 3033, sell = 200 },
- { itemName = "small axe", clientId = 3462, sell = 5 },
- { itemName = "small diamond", clientId = 3028, sell = 300 },
- { itemName = "small emerald", clientId = 3032, sell = 250 },
- { itemName = "small enchanted amethyst", clientId = 678, sell = 200 },
- { itemName = "small enchanted emerald", clientId = 677, sell = 250 },
- { itemName = "small enchanted ruby", clientId = 676, sell = 250 },
- { itemName = "small enchanted sapphire", clientId = 675, sell = 250 },
- { itemName = "small energy ball", clientId = 23524, sell = 250 },
- { itemName = "small flask of eyedrops", clientId = 11512, sell = 95 },
- { itemName = "small notebook", clientId = 11450, sell = 480 },
- { itemName = "small oil lamp", clientId = 2933, sell = 150 },
- { itemName = "small pitchfork", clientId = 11513, sell = 70 },
- { itemName = "small ruby", clientId = 3030, sell = 250 },
- { itemName = "small sapphire", clientId = 3029, sell = 250 },
- { itemName = "small topaz", clientId = 9057, sell = 200 },
- { itemName = "small treasure chest", clientId = 35571, sell = 500 },
- { itemName = "small tropical fish", clientId = 39408, sell = 380 },
- { itemName = "smoldering eye", clientId = 39543, sell = 470000 },
- { itemName = "snake skin", clientId = 9694, sell = 400 },
- { itemName = "snakebite rod", clientId = 3066, sell = 100 },
- { itemName = "sniper gloves", clientId = 5875, sell = 2000 },
- { itemName = "soldier helmet", clientId = 3375, sell = 16 },
- { itemName = "solid rage", clientId = 23517, sell = 310 },
- { itemName = "some grimeleech wings", clientId = 22730, sell = 1200 },
- { itemName = "soul stone", clientId = 5809, sell = 6000 },
- { itemName = "souleater trophy", clientId = 11679, sell = 7500 },
- { itemName = "sparkion claw", clientId = 23502, sell = 290 },
- { itemName = "sparkion legs", clientId = 23504, sell = 310 },
- { itemName = "spark sphere", clientId = 23518, sell = 350 },
- { itemName = "sparkion stings", clientId = 23505, sell = 280 },
- { itemName = "sparkion tail", clientId = 23503, sell = 300 },
- { itemName = "spectral gold nugget", clientId = 32724, sell = 500 },
- { itemName = "spectral silver nugget", clientId = 32725, sell = 250 },
- { itemName = "spectral stone", clientId = 4840, sell = 50 },
- { itemName = "spellbook of enlightenment", clientId = 8072, sell = 4000 },
- { itemName = "spellbook of lost souls", clientId = 8075, sell = 19000 },
- { itemName = "spellbook of mind control", clientId = 8074, sell = 13000 },
- { itemName = "spellbook of warding", clientId = 8073, sell = 8000 },
- { itemName = "spellsinger's seal", clientId = 14008, sell = 280 },
- { itemName = "spellwand", clientId = 651, sell = 299 },
- { itemName = "spellweaver's robe", clientId = 10438, sell = 12000 },
- { itemName = "sphinx feather", clientId = 31437, sell = 470 },
- { itemName = "sphinx tiara", clientId = 31438, sell = 360 },
- { itemName = "spider fangs", clientId = 8031, sell = 10 },
- { itemName = "spider silk", clientId = 5879, sell = 100 },
- { itemName = "spidris mandible", clientId = 14082, sell = 450 },
- { itemName = "spike shield", clientId = 17810, sell = 250 },
- { itemName = "spike sword", clientId = 3271, sell = 1000 },
- { itemName = "spiked iron ball", clientId = 10408, sell = 100 },
- { itemName = "spiked squelcher", clientId = 7452, sell = 5000 },
- { itemName = "spiky club", clientId = 17859, sell = 300 },
- { itemName = "spirit cloak", clientId = 8042, sell = 350 },
- { itemName = "spirit container", clientId = 5884, sell = 40000 },
- { itemName = "spite's spirit", clientId = 33926, sell = 840000 },
- { itemName = "spitter nose", clientId = 14078, sell = 340 },
- { itemName = "spooky blue eye", clientId = 9642, sell = 95 },
- { itemName = "springsprout rod", clientId = 8084, sell = 3600 },
- { itemName = "srezz' eye", clientId = 34103, sell = 300 },
- { itemName = "spool of yarn", clientId = 5886, sell = 1000 },
- { itemName = "stalking seeds", clientId = 39384, sell = 1800 },
- { itemName = "stampor horn", clientId = 12312, sell = 280 },
- { itemName = "stampor talons", clientId = 12313, sell = 150 },
- { itemName = "star amulet", clientId = 3014, sell = 500 },
- { itemName = "star herb", clientId = 3736, sell = 15 },
- { itemName = "statue of abyssador", clientId = 16232, sell = 4000 },
- { itemName = "statue of deathstrike", clientId = 16236, sell = 3000 },
- { itemName = "statue of devovorga", clientId = 4065, sell = 1500 },
- { itemName = "statue of gnomevil", clientId = 16240, sell = 2000 },
- { itemName = "stealth ring", clientId = 3049, sell = 200 },
- { itemName = "steel boots", clientId = 3554, sell = 30000 },
- { itemName = "steel helmet", clientId = 3351, sell = 293 },
- { itemName = "steel shield", clientId = 3409, sell = 80 },
- { itemName = "stone herb", clientId = 3735, sell = 20 },
- { itemName = "stone nose", clientId = 16137, sell = 590 },
- { itemName = "stone skin amulet", clientId = 3081, sell = 500, count = 5 },
- { itemName = "stone wing", clientId = 10278, sell = 120 },
- { itemName = "stonerefiner's skull", clientId = 27606, sell = 100 },
- { itemName = "strand of medusa hair", clientId = 10309, sell = 600 },
- { itemName = "strange helmet", clientId = 3373, sell = 500 },
- { itemName = "strange proto matter", clientId = 23513, sell = 300 },
- { itemName = "strange symbol", clientId = 3058, sell = 200 },
- { itemName = "strange talisman", clientId = 3045, sell = 30, count = 200 },
- { itemName = "streaked devourer eyes", clientId = 36772, sell = 500 },
- { itemName = "streaked devourer legs", clientId = 36774, sell = 600 },
- { itemName = "streaked devourer maw", clientId = 36773, sell = 400 },
- { itemName = "striped fur", clientId = 10293, sell = 50 },
- { itemName = "studded armor", clientId = 3378, sell = 25 },
- { itemName = "studded club", clientId = 3336, sell = 10 },
- { itemName = "studded helmet", clientId = 3376, sell = 20 },
- { itemName = "studded legs", clientId = 3362, sell = 15 },
- { itemName = "studded shield", clientId = 3426, sell = 16 },
- { itemName = "stuffed dragon", clientId = 5791, sell = 6000 },
- { itemName = "sulphider shell", clientId = 39375, sell = 2200 },
- { itemName = "sulphur powder", clientId = 39376, sell = 1900 },
- { itemName = "sulphurous stone", clientId = 10315, sell = 100 },
- { itemName = "summer dress", clientId = 8046, sell = 1500 },
- { itemName = "swamp grass", clientId = 9686, sell = 20 },
- { itemName = "swamplair armor", clientId = 8052, sell = 16000 },
- { itemName = "swampling club", clientId = 17824, sell = 40 },
- { itemName = "swampling moss", clientId = 17822, sell = 20 },
- { itemName = "swarmer antenna", clientId = 14076, sell = 130 },
- { itemName = "sword ring", clientId = 3091, sell = 100 },
- { itemName = "sword", clientId = 3264, sell = 25 },
- { itemName = "tail of corruption", clientId = 11672, sell = 240 },
- { itemName = "talon", clientId = 3034, sell = 320 },
- { itemName = "tarantula egg", clientId = 10281, sell = 80 },
- { itemName = "tarnished rhino figurine", clientId = 24387, sell = 320 },
- { itemName = "tattered piece of robe", clientId = 9684, sell = 120 },
- { itemName = "taurus mace", clientId = 7425, sell = 500 },
- { itemName = "telescope eye", clientId = 33934, sell = 1600 },
- { itemName = "tempest shield", clientId = 3442, sell = 35000 },
- { itemName = "tentacle of tentugly", clientId = 35611, sell = 27000 },
- { itemName = "tentacle piece", clientId = 11666, sell = 5000 },
- { itemName = "tentugly's eye", clientId = 35610, sell = 52000 },
- { itemName = "tentugly's jaws", clientId = 35612, sell = 80000 },
- { itemName = "terra amulet", clientId = 814, sell = 1500 },
- { itemName = "terra boots", clientId = 813, sell = 2500 },
- { itemName = "terra hood", clientId = 830, sell = 2500 },
- { itemName = "terra legs", clientId = 812, sell = 11000 },
- { itemName = "terra mantle", clientId = 811, sell = 11000 },
- { itemName = "terra rod", clientId = 3065, sell = 2000 },
- { itemName = "terramite eggs", clientId = 10453, sell = 50 },
- { itemName = "terramite legs", clientId = 10454, sell = 60 },
- { itemName = "terramite shell", clientId = 10452, sell = 170 },
- { itemName = "terrorbird beak", clientId = 10273, sell = 95 },
- { itemName = "thaian sword", clientId = 7391, sell = 16000 },
- { itemName = "the avenger", clientId = 6527, sell = 42000 },
- { itemName = "the handmaiden's protector", clientId = 6539, sell = 50000 },
- { itemName = "the imperor's trident", clientId = 6534, sell = 50000 },
- { itemName = "the ironworker", clientId = 8025, sell = 50000 },
- { itemName = "the justice seeker", clientId = 7390, sell = 40000 },
- { itemName = "the plasmother's remains", clientId = 6535, sell = 50000 },
- { itemName = "thick fur", clientId = 10307, sell = 150 },
- { itemName = "third verse of the hymn", clientId = 6089, sell = 400 },
- { itemName = "thorn", clientId = 9643, sell = 100 },
- { itemName = "throwing knife", clientId = 3298, sell = 2 },
- { itemName = "tiara", clientId = 35578, sell = 11000 },
- { itemName = "tiger eye", clientId = 24961, sell = 350 },
- { itemName = "time ring", clientId = 3053, sell = 100 },
- { itemName = "titan axe", clientId = 7413, sell = 4000 },
- { itemName = "token of love", clientId = 31594, sell = 440000 },
- { itemName = "tooth file", clientId = 18924, sell = 60 },
- { itemName = "tooth of tazhadur", clientId = 24940, sell = 10000 },
- { itemName = "torn shirt", clientId = 25744, sell = 250 },
- { itemName = "tortoise shield", clientId = 6131, sell = 150 },
- { itemName = "tower shield", clientId = 3428, sell = 8000 },
- { itemName = "trapped bad dream monster", clientId = 20203, sell = 900 },
- { itemName = "tremendous tyrant head", clientId = 36783, sell = 930 },
- { itemName = "tremendous tyrant shell", clientId = 36784, sell = 740 },
- { itemName = "tribal mask", clientId = 3403, sell = 250 },
- { itemName = "troll green", clientId = 3741, sell = 25 },
- { itemName = "trollroot", clientId = 11515, sell = 50 },
- { itemName = "trophy of jaul", clientId = 14006, sell = 4000 },
- { itemName = "trophy of obujos", clientId = 14002, sell = 3000 },
- { itemName = "trophy of tanjis", clientId = 14004, sell = 2000 },
- { itemName = "tunnel tyrant head", clientId = 27595, sell = 500 },
- { itemName = "tunnel tyrant shell", clientId = 27596, sell = 700 },
- { itemName = "turtle shell", clientId = 5899, sell = 90 },
- { itemName = "tusk", clientId = 3044, sell = 100 },
- { itemName = "twiceslicer", clientId = 11657, sell = 28000 },
- { itemName = "twin hooks", clientId = 10392, sell = 500 },
- { itemName = "two handed sword", clientId = 3265, sell = 450 },
- { itemName = "two-headed turtle heads", clientId = 39409, sell = 460 },
- { itemName = "undead heart", clientId = 10450, sell = 200 },
- { itemName = "undertaker fangs", clientId = 39380, sell = 2700 },
- { itemName = "underworld rod", clientId = 8082, sell = 4400 },
- { itemName = "unholy bone", clientId = 10316, sell = 480 },
- { itemName = "unholy book", clientId = 6103, sell = 30000 },
- { itemName = "unicorn figurine", clientId = 30054, sell = 50000 },
- { itemName = "urmahlullus mane", clientId = 31623, sell = 490000 },
- { itemName = "urmahlullus paws", clientId = 31624, sell = 245000 },
- { itemName = "urmahlullus tail", clientId = 31622, sell = 210000 },
- { itemName = "utua's poison", clientId = 34101, sell = 230 },
- { itemName = "vampire dust", clientId = 5905, sell = 100 },
- { itemName = "vampire shield", clientId = 3434, sell = 15000 },
- { itemName = "vampire teeth", clientId = 9685, sell = 275 },
- { itemName = "vampire's cape chain", clientId = 18927, sell = 150 },
- { itemName = "varnished diremaw brainpan", clientId = 36781, sell = 750 },
- { itemName = "varnished diremaw legs", clientId = 36782, sell = 670 },
- { itemName = "veal", clientId = 32009, sell = 40 },
- { itemName = "vein of ore", clientId = 16135, sell = 330 },
- { itemName = "venison", clientId = 18995, sell = 55 },
- { itemName = "vexclaw talon", clientId = 22728, sell = 1100 },
- { itemName = "vial of hatred", clientId = 33927, sell = 737000 },
- { itemName = "vial", clientId = 2874, sell = 5 },
- { itemName = "vibrant heart", clientId = 34143, sell = 2100 },
- { itemName = "vibrant robe", clientId = 34144, sell = 1200 },
- { itemName = "viking helmet", clientId = 3367, sell = 66 },
- { itemName = "viking shield", clientId = 3431, sell = 85 },
- { itemName = "vile axe", clientId = 7388, sell = 30000 },
- { itemName = "violet crystal shard", clientId = 16120, sell = 1500 },
- { itemName = "violet gem", clientId = 3036, sell = 10000 },
- { itemName = "violet glass plate", clientId = 29347, sell = 2150 },
- { itemName = "volatile proto matter", clientId = 23514, sell = 300 },
- { itemName = "voodoo doll", clientId = 3002, sell = 400 },
- { itemName = "wailing widow's necklace", clientId = 10412, sell = 3000 },
- { itemName = "wand of cosmic energy", clientId = 3073, sell = 2000 },
- { itemName = "wand of decay", clientId = 3072, sell = 1000 },
- { itemName = "wand of defiance", clientId = 16096, sell = 6500 },
- { itemName = "wand of draconia", clientId = 8093, sell = 1500 },
- { itemName = "wand of dragonbreath", clientId = 3075, sell = 200 },
- { itemName = "wand of everblazing", clientId = 16115, sell = 6000 },
- { itemName = "wand of inferno", clientId = 3071, sell = 3000 },
- { itemName = "wand of starstorm", clientId = 8092, sell = 3600 },
- { itemName = "wand of voodoo", clientId = 8094, sell = 4400 },
- { itemName = "wand of vortex", clientId = 3074, sell = 100 },
- { itemName = "war axe", clientId = 3342, sell = 12000 },
- { itemName = "war crystal", clientId = 9654, sell = 460 },
- { itemName = "war hammer", clientId = 3279, sell = 1200 },
- { itemName = "war horn", clientId = 2958, sell = 8000 },
- { itemName = "warmaster's wristguards", clientId = 10405, sell = 200 },
- { itemName = "warrior helmet", clientId = 3369, sell = 5000 },
- { itemName = "warrior's axe", clientId = 14040, sell = 11000 },
- { itemName = "warrior's shield", clientId = 14042, sell = 9000 },
- { itemName = "warwolf fur", clientId = 10318, sell = 30 },
- { itemName = "waspoid claw", clientId = 14080, sell = 320 },
- { itemName = "waspoid wing", clientId = 14081, sell = 190 },
- { itemName = "watch", clientId = 2906, sell = 6 },
- { itemName = "watermelon tourmaline (slice)", clientId = 33779, sell = 30000 },
- { itemName = "watermelon tourmaline", clientId = 33780, sell = 230000 },
- { itemName = "weaver's wandtip", clientId = 10397, sell = 250 },
- { itemName = "wedding ring", clientId = 3004, sell = 100 },
- { itemName = "werebadger claws", clientId = 22051, sell = 160 },
- { itemName = "werebadger skull", clientId = 22055, sell = 185 },
- { itemName = "werebadger trophy", clientId = 22101, sell = 9000 },
- { itemName = "werebear fur", clientId = 22057, sell = 185 },
- { itemName = "werebear skull", clientId = 22056, sell = 195 },
- { itemName = "werebear trophy", clientId = 22103, sell = 11000 },
- { itemName = "wereboar hooves", clientId = 22053, sell = 175 },
- { itemName = "wereboar loincloth", clientId = 22087, sell = 1500 },
- { itemName = "wereboar trophy", clientId = 22102, sell = 10000 },
- { itemName = "wereboar tusk", clientId = 22054, sell = 165 },
- { itemName = "werefox tail", clientId = 27463, sell = 200 },
- { itemName = "werefox trophy", clientId = 27706, sell = 9000 },
- { itemName = "werehyaena nose", clientId = 33943, sell = 220 },
- { itemName = "werehyaena talisman", clientId = 33944, sell = 350 },
- { itemName = "werehyaena trophy", clientId = 34219, sell = 12000 },
- { itemName = "werewolf amulet", clientId = 22060, sell = 3000 },
- { itemName = "werewolf fangs", clientId = 22052, sell = 180 },
- { itemName = "werewolf fur", clientId = 10317, sell = 380 },
- { itemName = "white deer antlers", clientId = 12544, sell = 400 },
- { itemName = "white deer skin", clientId = 12545, sell = 245 },
- { itemName = "white gem", clientId = 32769, sell = 12000 },
- { itemName = "white pearl", clientId = 3026, sell = 160 },
- { itemName = "white piece of cloth", clientId = 5909, sell = 100 },
- { itemName = "white silk flower", clientId = 34008, sell = 9000 },
- { itemName = "widow's mandibles", clientId = 10411, sell = 110 },
- { itemName = "wild flowers", clientId = 25691, sell = 120 },
- { itemName = "wimp tooth chain", clientId = 17847, sell = 120 },
- { itemName = "windborn colossus armor", clientId = 8055, sell = 50000 },
- { itemName = "winged tail", clientId = 10313, sell = 800 },
- { itemName = "winter wolf fur", clientId = 10295, sell = 20 },
- { itemName = "witch broom", clientId = 9652, sell = 60 },
- { itemName = "witch hat", clientId = 9653, sell = 5000 },
- { itemName = "withered pauldrons", clientId = 27607, sell = 850 },
- { itemName = "withered scalp", clientId = 27608, sell = 900 },
- { itemName = "wolf paw", clientId = 5897, sell = 70 },
- { itemName = "wolf trophy", clientId = 7394, sell = 3000 },
- { itemName = "wood cape", clientId = 3575, sell = 5000 },
- { itemName = "wood mushroom", clientId = 3727, sell = 15 },
- { itemName = "wood", clientId = 5901, sell = 5 },
- { itemName = "wooden hammer", clientId = 3459, sell = 15 },
- { itemName = "wooden shield", clientId = 3412, sell = 5 },
- { itemName = "wooden spellbook", clientId = 25699, sell = 12000 },
- { itemName = "wool", clientId = 10319, sell = 15 },
- { itemName = "writhing brain", clientId = 32600, sell = 370000 },
- { itemName = "writhing heart", clientId = 32599, sell = 185000 },
- { itemName = "wyrm scale", clientId = 9665, sell = 400 },
- { itemName = "wyvern fang", clientId = 7408, sell = 1500 },
- { itemName = "wyvern talisman", clientId = 9644, sell = 265 },
- { itemName = "yellow gem", clientId = 3037, sell = 1000 },
- { itemName = "yellow piece of cloth", clientId = 5914, sell = 150 },
- { itemName = "yielocks", clientId = 12805, sell = 600 },
- { itemName = "yielowax", clientId = 12742, sell = 600 },
- { itemName = "yirkas' egg", clientId = 34102, sell = 280 },
- { itemName = "young lich worm", clientId = 31590, sell = 25000 },
- { itemName = "zaoan armor", clientId = 10384, sell = 14000 },
- { itemName = "zaoan halberd", clientId = 10406, sell = 500 },
- { itemName = "zaoan helmet", clientId = 10385, sell = 45000 },
- { itemName = "zaoan legs", clientId = 10387, sell = 14000 },
- { itemName = "zaoan robe", clientId = 10439, sell = 12000 },
- { itemName = "zaoan shoes", clientId = 10386, sell = 5000 },
- { itemName = "zaoan sword", clientId = 10390, sell = 30000 },
- { itemName = "zaogun flag", clientId = 10413, sell = 600 },
- { itemName = "zaogun's shoulderplates", clientId = 10414, sell = 150 },
+npcConfig.shop = LootShopConfig
+
+local function creatureSayCallback(npc, player, type, message)
+ local formattedCategoryNames = {}
+ for categoryName, _ in pairs(LootShopConfigTable) do
+ table.insert(formattedCategoryNames, "{" .. categoryName .. "}")
+ end
+
+ local categoryTable = LootShopConfigTable[message:lower()]
+ if MsgContains(message, "shop options") then
+ npcHandler:say("I sell a selection of " .. table.concat(formattedCategoryNames, ", "), npc, player)
+ elseif categoryTable then
+ npcHandler:say("Here are the items for the category " .. message, npc, player)
+ npc:openShopWindowTable(player, categoryTable)
+ end
+end
- { itemName = "all loot in pouch", clientId = ITEM_GOLD_POUCH, sell = 1 },
-}
+npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
+npcHandler:setMessage(MESSAGE_GREET, "Ah, a customer! Be greeted, |PLAYERNAME|! I buy all kinds of loot, would you like a {trade}? I can also show you my {shop options}.")
+npcHandler:setMessage(MESSAGE_SENDTRADE, "Ah, a customer! Be greeted, |PLAYERNAME|! I buy all kinds of loot, would you like a {trade}? I can also show you my {shop options}.")
-- On buy npc shop message
npcType.onBuyItem = function(npc, player, itemId, subType, amount, ignore, inBackpacks, totalCost)
diff --git a/data-otservbr-global/npc/undal.lua b/data-otservbr-global/npc/undal.lua
index 786487fea2c..ad0346e7e77 100644
--- a/data-otservbr-global/npc/undal.lua
+++ b/data-otservbr-global/npc/undal.lua
@@ -53,5 +53,121 @@ end
npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true)
+local outfits = { 1147, 1146 }
+
+local function hasOutfit(player)
+ for _, outfit in ipairs(outfits) do
+ if player:hasOutfit(outfit) then
+ return true
+ end
+ end
+ return false
+end
+
+local function hasAddon(player, addon)
+ for _, outfit in ipairs(outfits) do
+ if player:hasOutfit(outfit, addon) then
+ return true
+ end
+ end
+ return false
+end
+
+local function hasKllledTheNightmareBeast(player)
+ return player:getStorageValue(Storage.Quest.U12_00.TheDreamCourts.NightmareBeastKilled) == 1
+end
+
+local function checkAchievement(player)
+ if hasAddon(player, 3) then
+ player:addAchievement("Dream Warrior")
+ end
+end
+
+local function creatureSayCallback(npc, creature, type, message)
+ local player = Player(creature)
+ local playerId = player:getId()
+
+ if not npcHandler:checkInteraction(npc, creature) then
+ return false
+ end
+
+ if npcHandler:getTopic(playerId) == 0 then
+ if MsgContains(message, "task") or MsgContains(message, "outfit") then
+ if hasOutfit(player) then
+ npcHandler:say("You already have the Dream Warrior outfit.", npc, creature)
+ return true
+ end
+
+ if not hasKllledTheNightmareBeast(player) then
+ npcHandler:say("You need to kill the Nightmare Beast first.", npc, creature)
+ return true
+ end
+
+ npcHandler:say("The Nightmare Beast is slain. You have done well. The Courts of Summer and Winter will be forever grateful. For your efforts I want to reward you with our traditional dream warrior outfit. May it suit you well!", npc, creature)
+ for _, outfit in ipairs(outfits) do
+ player:addOutfit(outfit, 0)
+ end
+ return true
+ end
+
+ if MsgContains(message, "addon") then
+ if not hasOutfit(player) then
+ npcHandler:say("You don't have the Dream Warrior outfit.", npc, creature)
+ return true
+ end
+ npcHandler:say("Are you interested in one or two addons to your dream warrior outfit?", npc, creature)
+ npcHandler:setTopic(playerId, 1)
+ return true
+ end
+ elseif npcHandler:getTopic(playerId) == 1 then
+ if MsgContains(message, "yes") then
+ npcHandler:say("I provide two addons. For the first one I need you to bring me five pomegranates. For the second addon you need an ice shield. Which one would you like? {Pomegranate} or {shield}?", npc, creature)
+ npcHandler:setTopic(playerId, 2)
+ else
+ npcHandler:say("Alright then. Come back if you change your mind.", npc, creature)
+ npcHandler:setTopic(playerId, 0)
+ end
+ elseif npcHandler:getTopic(playerId) == 2 then
+ if MsgContains(message, "pomegranate") then
+ if hasAddon(player, 1) then
+ npcHandler:say("You already have this addon.", npc, creature)
+ return true
+ end
+ if player:removeItem(30169, 5) then
+ npcHandler:say("Great! Here is the addon.", npc, creature)
+ for _, outfit in ipairs(outfits) do
+ player:addOutfitAddon(outfit, 1)
+ end
+ player:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE)
+ checkAchievement(player)
+ npcHandler:setTopic(playerId, 0)
+ else
+ npcHandler:say("Sorry, you don't have the required items.", npc, creature)
+ end
+ elseif MsgContains(message, "shield") then
+ if hasAddon(player, 2) then
+ npcHandler:say("You already have this addon.", npc, creature)
+ return true
+ end
+ if player:removeItem(30168, 1) then
+ npcHandler:say("Great! Here is the addon.", npc, creature)
+ for _, outfit in ipairs(outfits) do
+ player:addOutfitAddon(outfit, 2)
+ end
+ player:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE)
+ checkAchievement(player)
+ npcHandler:setTopic(playerId, 0)
+ else
+ npcHandler:say("Sorry, you don't have the required items.", npc, creature)
+ end
+ else
+ npcHandler:say("Sorry, I didn't understand.", npc, creature)
+ return true
+ end
+ end
+end
+
+npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
+
-- npcType registering the npcConfig table
npcType:register(npcConfig)
diff --git a/data-otservbr-global/npc/vanys.lua b/data-otservbr-global/npc/vanys.lua
index 0d7c1e009ea..c922ce8c8cd 100644
--- a/data-otservbr-global/npc/vanys.lua
+++ b/data-otservbr-global/npc/vanys.lua
@@ -53,5 +53,121 @@ end
npcHandler:addModule(FocusModule:new(), npcConfig.name, true, true, true)
+local outfits = { 1147, 1146 }
+
+local function hasOutfit(player)
+ for _, outfit in ipairs(outfits) do
+ if player:hasOutfit(outfit) then
+ return true
+ end
+ end
+ return false
+end
+
+local function hasAddon(player, addon)
+ for _, outfit in ipairs(outfits) do
+ if player:hasOutfit(outfit, addon) then
+ return true
+ end
+ end
+ return false
+end
+
+local function hasKllledTheNightmareBeast(player)
+ return player:getStorageValue(Storage.Quest.U12_00.TheDreamCourts.NightmareBeastKilled) == 1
+end
+
+local function checkAchievement(player)
+ if hasAddon(player, 3) then
+ player:addAchievement("Dream Warrior")
+ end
+end
+
+local function creatureSayCallback(npc, creature, type, message)
+ local player = Player(creature)
+ local playerId = player:getId()
+
+ if not npcHandler:checkInteraction(npc, creature) then
+ return false
+ end
+
+ if npcHandler:getTopic(playerId) == 0 then
+ if MsgContains(message, "task") or MsgContains(message, "outfit") then
+ if hasOutfit(player) then
+ npcHandler:say("You already have the Dream Warrior outfit.", npc, creature)
+ return true
+ end
+
+ if not hasKllledTheNightmareBeast(player) then
+ npcHandler:say("You need to kill the Nightmare Beast first.", npc, creature)
+ return true
+ end
+
+ npcHandler:say("The Nightmare Beast is slain. You have done well. The Courts of Summer and Winter will be forever grateful. For your efforts I want to reward you with our traditional dream warrior outfit. May it suit you well!", npc, creature)
+ for _, outfit in ipairs(outfits) do
+ player:addOutfit(outfit, 0)
+ end
+ return true
+ end
+
+ if MsgContains(message, "addon") then
+ if not hasOutfit(player) then
+ npcHandler:say("You don't have the Dream Warrior outfit.", npc, creature)
+ return true
+ end
+ npcHandler:say("Are you interested in one or two addons to your dream warrior outfit?", npc, creature)
+ npcHandler:setTopic(playerId, 1)
+ return true
+ end
+ elseif npcHandler:getTopic(playerId) == 1 then
+ if MsgContains(message, "yes") then
+ npcHandler:say("I provide two addons. For the first one I need you to bring me five pomegranates. For the second addon you need an ice shield. Which one would you like? {Pomegranate} or {shield}?", npc, creature)
+ npcHandler:setTopic(playerId, 2)
+ else
+ npcHandler:say("Alright then. Come back if you change your mind.", npc, creature)
+ npcHandler:setTopic(playerId, 0)
+ end
+ elseif npcHandler:getTopic(playerId) == 2 then
+ if MsgContains(message, "pomegranate") then
+ if hasAddon(player, 1) then
+ npcHandler:say("You already have this addon.", npc, creature)
+ return true
+ end
+ if player:removeItem(30169, 5) then
+ npcHandler:say("Great! Here is the addon.", npc, creature)
+ for _, outfit in ipairs(outfits) do
+ player:addOutfitAddon(outfit, 1)
+ end
+ player:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE)
+ checkAchievement(player)
+ npcHandler:setTopic(playerId, 0)
+ else
+ npcHandler:say("Sorry, you don't have the required items.", npc, creature)
+ end
+ elseif MsgContains(message, "shield") then
+ if hasAddon(player, 2) then
+ npcHandler:say("You already have this addon.", npc, creature)
+ return true
+ end
+ if player:removeItem(30168, 1) then
+ npcHandler:say("Great! Here is the addon.", npc, creature)
+ for _, outfit in ipairs(outfits) do
+ player:addOutfitAddon(outfit, 2)
+ end
+ player:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE)
+ checkAchievement(player)
+ npcHandler:setTopic(playerId, 0)
+ else
+ npcHandler:say("Sorry, you don't have the required items.", npc, creature)
+ end
+ else
+ npcHandler:say("Sorry, I didn't understand.", npc, creature)
+ return true
+ end
+ end
+end
+
+npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
+
-- npcType registering the npcConfig table
npcType:register(npcConfig)
diff --git a/data-otservbr-global/scripts/actions/addons/addons.lua b/data-otservbr-global/scripts/actions/addons/addons.lua
index 8fea3d0b074..0658ab69312 100644
--- a/data-otservbr-global/scripts/actions/addons/addons.lua
+++ b/data-otservbr-global/scripts/actions/addons/addons.lua
@@ -20,6 +20,9 @@ local config = {
-- rascoohan
[35595] = { female = 1372, male = 1371, addon = 1, achievement = "Honorary Rascoohan" },
[35695] = { female = 1372, male = 1371, addon = 2, achievement = "Honorary Rascoohan" },
+ -- fire-fighter
+ [39544] = { female = 1569, male = 1568, addon = 1, achievement = "Friendly Fire" },
+ [39545] = { female = 1569, male = 1568, addon = 2, achievement = "Friendly Fire" },
}
local addons = Action()
diff --git a/data-otservbr-global/scripts/actions/adventurers_guild/adventurers_stone.lua b/data-otservbr-global/scripts/actions/adventurers_guild/adventurers_stone.lua
index d39577418a5..a73caac912e 100644
--- a/data-otservbr-global/scripts/actions/adventurers_guild/adventurers_stone.lua
+++ b/data-otservbr-global/scripts/actions/adventurers_guild/adventurers_stone.lua
@@ -29,7 +29,7 @@ local config = {
{ fromPos = Position(32340, 32217, 7), toPos = Position(32355, 32232, 7), townId = TOWNS_LIST.THAIS },
{ fromPos = Position(32910, 32070, 7), toPos = Position(32930, 32082, 7), townId = TOWNS_LIST.VENORE },
{ fromPos = Position(33119, 32836, 7), toPos = Position(33133, 32850, 7), townId = TOWNS_LIST.ANKRAHMUN },
- { fromPos = Position(33160, 31794, 8), toPos = Position(33175, 31814, 8), townId = TOWNS_LIST.EDRON },
+ { fromPos = Position(33160, 31794, 9), toPos = Position(33175, 31814, 8), townId = TOWNS_LIST.EDRON },
{ fromPos = Position(33018, 31448, 11), toPos = Position(33035, 31457, 11), townId = TOWNS_LIST.FARMINE },
{ fromPos = Position(33205, 32455, 8), toPos = Position(33223, 32466, 8), townId = TOWNS_LIST.DARASHIA },
{ fromPos = Position(32327, 32831, 7), toPos = Position(32340, 32847, 7), townId = TOWNS_LIST.LIBERTY_BAY },
@@ -69,16 +69,16 @@ function adventurersStone.onUse(player, item, fromPosition, target, toPosition,
if config.enableTemples then
for _, temple in ipairs(config.Temples) do
- if isInRange(playerPos, temple.fromPos, temple.toPos) then
+ if playerPos:isInRange(temple.fromPos, temple.toPos) then
allowed, townId = true, temple.townId
break
end
end
end
- if config.enableDepots then
+ if config.enableDepots and not allowed then
for _, depot in ipairs(config.Depots) do
- if isInRange(playerPos, depot.fromPos, depot.toPos) then
+ if playerPos:isInRange(depot.fromPos, depot.toPos) then
allowed, townId = true, depot.townId
break
end
diff --git a/data-otservbr-global/scripts/actions/farmine/oberon_lever.lua b/data-otservbr-global/scripts/actions/farmine/oberon_lever.lua
index 0ec20531e46..e7a1a104d52 100644
--- a/data-otservbr-global/scripts/actions/farmine/oberon_lever.lua
+++ b/data-otservbr-global/scripts/actions/farmine/oberon_lever.lua
@@ -14,12 +14,6 @@ local config = {
from = Position(33357, 31312, 9),
to = Position(33371, 31324, 9),
},
- monsters = {
- { name = "Oberon's Bile", pos = Position(33361, 31316, 9) },
- { name = "Oberon's Hate", pos = Position(33367, 31316, 9) },
- { name = "Oberon's Spite", pos = Position(33361, 31320, 9) },
- { name = "Oberon's Ire", pos = Position(33367, 31320, 9) },
- },
exit = Position(33364, 31341, 9),
}
diff --git a/data-otservbr-global/scripts/actions/object/moonlight_crystals.lua b/data-otservbr-global/scripts/actions/object/moonlight_crystals.lua
index 76762d4a85c..e8dbf007312 100644
--- a/data-otservbr-global/scripts/actions/object/moonlight_crystals.lua
+++ b/data-otservbr-global/scripts/actions/object/moonlight_crystals.lua
@@ -2,24 +2,30 @@ local moonlightCrystals = Action()
function moonlightCrystals.onUse(player, item, fromPosition, target, toPosition, isHotkey)
if target.itemid == 22060 then
- target:transform(22061)
+ target:remove()
+ player:addItem(22061, 1)
item:remove(1)
return true
elseif target.itemid == 22062 then
if (player:getStorageValue(Storage.Grimvale.WereHelmetEnchant) == 0) or (player:getStorageValue(Storage.Grimvale.WereHelmetEnchant) == 1) then
- target:transform(24783) -- Magic level helmet
+ target:remove() -- Magic level helmet
+ player:addItem(24783, 1)
item:remove(1)
elseif player:getStorageValue(Storage.Grimvale.WereHelmetEnchant) == 2 then
- target:transform(22132) -- Paladin helmet
+ target:remove() -- Paladin helmet
+ player:addItem(22132, 1)
item:remove(1)
elseif player:getStorageValue(Storage.Grimvale.WereHelmetEnchant) == 3 then
- target:transform(22128) -- Knight club
+ target:remove() -- Knight club
+ player:addItem(22128, 1)
item:remove(1)
elseif player:getStorageValue(Storage.Grimvale.WereHelmetEnchant) == 4 then
- target:transform(22130) -- Knight axe
+ target:remove() -- Knight axe
+ player:addItem(22130, 1)
item:remove(1)
elseif player:getStorageValue(Storage.Grimvale.WereHelmetEnchant) == 5 then
- target:transform(22129) -- Knight sword
+ target:remove() -- Knight sword
+ player:addItem(22129, 1)
item:remove(1)
else
return false
diff --git a/data-otservbr-global/scripts/actions/object/rope_down.lua b/data-otservbr-global/scripts/actions/object/rope_down.lua
index f12613660cf..87d66d4b188 100644
--- a/data-otservbr-global/scripts/actions/object/rope_down.lua
+++ b/data-otservbr-global/scripts/actions/object/rope_down.lua
@@ -1,11 +1,22 @@
-local action = Action()
+local cobraBastion = Action()
-function action.onUse(player, item, fromPosition, target, toPosition, isHotkey)
+function cobraBastion.onUse(player, item, fromPosition, target, toPosition, isHotkey)
if not player then
return false
end
player:teleportTo(Position(33394, 32650, 2))
end
-action:position(Position(33395, 32651, 1))
-action:register()
+cobraBastion:position(Position(33395, 32651, 1))
+cobraBastion:register()
+
+local oskayaat = Action()
+function oskayaat.onUse(player, item, fromPosition, target, toPosition, isHotkey)
+ if not player then
+ return false
+ end
+ player:teleportTo(Position(33014, 32983, 8))
+end
+
+oskayaat:position(Position(33014, 32983, 7))
+oskayaat:register()
diff --git a/data-otservbr-global/scripts/actions/other/bag_you_covet.lua b/data-otservbr-global/scripts/actions/other/bag_you_covet.lua
index ddc381c69d1..e332d9fd3f2 100644
--- a/data-otservbr-global/scripts/actions/other/bag_you_covet.lua
+++ b/data-otservbr-global/scripts/actions/other/bag_you_covet.lua
@@ -15,7 +15,7 @@ local rewards = {
{ id = 43887, name = "Sanguine Galoshes" },
}
-BagYouCovetId = 43895
+BagYouCovetId = 43898
local bagyouCovet = Action()
diff --git a/data-otservbr-global/scripts/actions/other/dolls.lua b/data-otservbr-global/scripts/actions/other/dolls.lua
index 255bdfa21f5..32864dcd109 100644
--- a/data-otservbr-global/scripts/actions/other/dolls.lua
+++ b/data-otservbr-global/scripts/actions/other/dolls.lua
@@ -56,6 +56,12 @@ local dolls = {
"My dark magic lies on tibialatina.wikia.com",
},
[21962] = { "Hail Tibia Brasileiros! (União&Força)" },
+ [32918] = {
+ "COME HERE! FREE ITEMS FOR EVERYONE!",
+ "DON'T BE AFRAID! I AM COMING IN PEACE!",
+ "BOW TO THE POWER OF THE RUTHLESS SEVEN!",
+ "Slay your friends and I will spare you!",
+ },
}
local doll = Action()
diff --git a/data-otservbr-global/scripts/actions/other/music.lua b/data-otservbr-global/scripts/actions/other/music.lua
index 519a36e1f81..9e5cbe5cb7b 100644
--- a/data-otservbr-global/scripts/actions/other/music.lua
+++ b/data-otservbr-global/scripts/actions/other/music.lua
@@ -35,7 +35,7 @@ local MusicEffect = {
local music = Action()
function music.onUse(player, item, fromPosition, target, toPosition, isHotkey)
if item.itemid == 2949 then
- if isInRange(player:getPosition(), Position(32695, 31717, 2), Position(32699, 31719, 2)) then
+ if player:getPosition():isInRange(Position(32695, 31717, 2), Position(32699, 31719, 2)) then
local lyreProgress = player:getStorageValue(Storage.Diapason.Lyre)
if lyreProgress < 7 and player:getStorageValue(Storage.Diapason.Edala) ~= 1 and player:getStorageValue(Storage.Diapason.LyreTimer) < os.time() then
player:setStorageValue(Storage.Diapason.Lyre, math.max(0, lyreProgress) + 1)
@@ -44,7 +44,7 @@ function music.onUse(player, item, fromPosition, target, toPosition, isHotkey)
end
end
elseif item.itemid == 2953 then
- if isInRange(player:getPosition(), Position(33540, 32245, 7), Position(33542, 32247, 7)) then
+ if player:getPosition():isInRange(Position(33540, 32245, 7), Position(33542, 32247, 7)) then
local ThreatenedDreams = Storage.Quest.U11_40.ThreatenedDreams
local UnlikelyCouple = player:getStorageValue(ThreatenedDreams.Mission03.UnlikelyCouple)
local PanpipesTimer = player:getStorageValue(ThreatenedDreams.Mission03.PanpipesTimer)
diff --git a/data-otservbr-global/scripts/actions/other/surprise_bag.lua b/data-otservbr-global/scripts/actions/other/surprise_bag.lua
index bbe76e26055..052fc987c61 100644
--- a/data-otservbr-global/scripts/actions/other/surprise_bag.lua
+++ b/data-otservbr-global/scripts/actions/other/surprise_bag.lua
@@ -89,7 +89,7 @@ function surpriseBag.onUse(cid, item, fromPosition, itemEx, toPosition)
local count = 1
local gift = present[math.random(1, #present)]
if type(gift) == "table" then
- count = gift[2]
+ count = math.random(1, gift[2])
gift = gift[1]
end
diff --git a/data-otservbr-global/scripts/actions/other/watch.lua b/data-otservbr-global/scripts/actions/other/watch.lua
index d989856ace5..a97fce78cbf 100644
--- a/data-otservbr-global/scripts/actions/other/watch.lua
+++ b/data-otservbr-global/scripts/actions/other/watch.lua
@@ -5,5 +5,5 @@ function watch.onUse(player, item, fromPosition, target, toPosition, isHotkey)
return true
end
-watch:id(2445, 2446, 2447, 2448, 2906, 2771)
+watch:id(2445, 2446, 2447, 2448, 2906, 2771, 6091)
watch:register()
diff --git a/data-otservbr-global/scripts/actions/quests/adventures_of_galthen/iksupan_entrance.lua b/data-otservbr-global/scripts/actions/quests/adventures_of_galthen/iksupan_entrance.lua
index 8ec086eeb8b..79a74c4f8cd 100644
--- a/data-otservbr-global/scripts/actions/quests/adventures_of_galthen/iksupan_entrance.lua
+++ b/data-otservbr-global/scripts/actions/quests/adventures_of_galthen/iksupan_entrance.lua
@@ -1,5 +1,5 @@
local config = {
- { position = { x = 32728, y = 32878, z = 7 }, destination = { x = 34015, y = 31890, z = 8 } },
+ { position = { x = 32728, y = 32875, z = 7 }, destination = { x = 34015, y = 31890, z = 8 } },
}
local entrance = Action()
diff --git a/data-otservbr-global/scripts/actions/quests/adventures_of_galthen/iksupan_exit.lua b/data-otservbr-global/scripts/actions/quests/adventures_of_galthen/iksupan_exit.lua
index 0a4a27478b0..09f53f88c79 100644
--- a/data-otservbr-global/scripts/actions/quests/adventures_of_galthen/iksupan_exit.lua
+++ b/data-otservbr-global/scripts/actions/quests/adventures_of_galthen/iksupan_exit.lua
@@ -1,5 +1,6 @@
local config = {
{ position = { x = 34015, y = 31892, z = 8 }, destination = { x = 32728, y = 32880, z = 7 } },
+ { position = { x = 34041, y = 31726, z = 10 }, destination = { x = 32728, y = 32880, z = 7 } },
}
local exit = MoveEvent()
diff --git a/data-otservbr-global/scripts/actions/quests/elemental_spheres/lord_of_elements_lever.lua b/data-otservbr-global/scripts/actions/quests/elemental_spheres/lord_of_elements_lever.lua
index 997e4acbdc6..3e90bf6ac90 100644
--- a/data-otservbr-global/scripts/actions/quests/elemental_spheres/lord_of_elements_lever.lua
+++ b/data-otservbr-global/scripts/actions/quests/elemental_spheres/lord_of_elements_lever.lua
@@ -63,7 +63,7 @@ local config = {
local function resetRoom(players)
for i = 1, #players do
local player = Player(players[i])
- if player and isInRange(player:getPosition(), config.area.from, config.area.to) then
+ if player and player:getPosition():isInRange(config.area.from, config.area.to) then
player:teleportTo(config.exitPosition)
config.exitPosition:sendMagicEffect(CONST_ME_TELEPORT)
end
@@ -104,7 +104,7 @@ local function warnPlayers(players)
local player
for i = 1, #players do
player = Player(players[i])
- if player and isInRange(player:getPosition(), config.roomArea.from, config.roomArea.to) then
+ if player and player:getPosition():isInRange(config.roomArea.from, config.roomArea.to) then
break
end
player = nil
diff --git a/data-otservbr-global/scripts/actions/quests/elemental_spheres/machine2.lua b/data-otservbr-global/scripts/actions/quests/elemental_spheres/machine2.lua
index 8ec90c1ce07..26fd74a62e5 100644
--- a/data-otservbr-global/scripts/actions/quests/elemental_spheres/machine2.lua
+++ b/data-otservbr-global/scripts/actions/quests/elemental_spheres/machine2.lua
@@ -1,6 +1,6 @@
local elementalSpheresMachine2 = Action()
function elementalSpheresMachine2.onUse(player, item, fromPosition, target, toPosition, isHotkey)
- if not isInRange(toPosition, Position(33238, 31806, 12), Position(33297, 31865, 12)) then
+ if not toPosition:isInRange(Position(33238, 31806, 12), Position(33297, 31865, 12)) then
return false
end
diff --git a/data-otservbr-global/scripts/actions/quests/elemental_spheres/soils2.lua b/data-otservbr-global/scripts/actions/quests/elemental_spheres/soils2.lua
index daf2973d2b5..db55886635b 100644
--- a/data-otservbr-global/scripts/actions/quests/elemental_spheres/soils2.lua
+++ b/data-otservbr-global/scripts/actions/quests/elemental_spheres/soils2.lua
@@ -18,7 +18,7 @@ function elementalSpheresSoils2.onUse(player, item, fromPosition, target, toPosi
return false
end
- if not isInRange(toPosition, { x = 33238, y = 31806, z = 12 }, { x = 33297, y = 31865, z = 12 }) then
+ if not toPosition:isInRange({ x = 33238, y = 31806, z = 12 }, { x = 33297, y = 31865, z = 12 }) then
return false
end
diff --git a/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/bone_flute.lua b/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/bone_flute.lua
index 842ea96aef2..def47cc49ca 100644
--- a/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/bone_flute.lua
+++ b/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/bone_flute.lua
@@ -6,7 +6,7 @@ function ferumbrasAscendantBoneFlute.onUse(player, item, fromPosition, target, t
if player:getStorageValue(Storage.FerumbrasAscension.BoneFlute) >= 1 then
return false
end
- if not isInRange(target:getPosition(), Position(33477, 32775, 11), Position(33493, 32781, 11)) then
+ if not target:getPosition():isInRange(Position(33477, 32775, 11), Position(33493, 32781, 11)) then
return false
end
if target:getName():lower() == "snake" or target:getName():lower() == "lion" or target:getName():lower() == "bear" or target:getName():lower() == "seagull" or target:getName():lower() == "pig" then
diff --git a/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/flower_puzzle_lever.lua b/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/flower_puzzle_lever.lua
index 7f49c9c7f7f..6cc91c9d45a 100644
--- a/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/flower_puzzle_lever.lua
+++ b/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/flower_puzzle_lever.lua
@@ -34,11 +34,11 @@ function ferumbrasAscendantFlowerPuzzle.onUse(player, item, fromPosition, target
return true
end
end
- if Game.getStorageValue(Storage.FerumbrasAscension.FlowerPuzzleTimer) >= 1 then
+ if Game.getStorageValue(GlobalStorage.FerumbrasAscendant.FlowerPuzzleTimer) >= 1 then
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "The portal still activated.")
else
- Game.setStorageValue(Storage.FerumbrasAscension.FlowerPuzzleTimer, 1)
- addEvent(Game.setStorageValue, 30 * 1000, Storage.FerumbrasAscension.FlowerPuzzleTimer, 0)
+ Game.setStorageValue(GlobalStorage.FerumbrasAscendant.FlowerPuzzleTimer, 1)
+ addEvent(Game.setStorageValue, 30 * 1000, GlobalStorage.FerumbrasAscendant.FlowerPuzzleTimer, 0)
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "A portal forms as two beams of a strange construction dividing this room move towards each other.")
for x = 33475, 33479 do
local pos = Position(x, 32698, 14)
diff --git a/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/ragiaz_lever.lua b/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/ragiaz_lever.lua
index bf24a598d81..4fc83e29aa0 100644
--- a/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/ragiaz_lever.lua
+++ b/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/ragiaz_lever.lua
@@ -12,6 +12,12 @@ local config = {
{ pos = Position(33459, 32356, 13), teleport = Position(33482, 32339, 13), effect = CONST_ME_TELEPORT },
{ pos = Position(33460, 32356, 13), teleport = Position(33482, 32339, 13), effect = CONST_ME_TELEPORT },
},
+ monsters = {
+ { name = "Death Dragon", pos = Position(33476, 32331, 13) },
+ { name = "Death Dragon", pos = Position(33476, 32340, 13) },
+ { name = "Death Dragon", pos = Position(33487, 32340, 13) },
+ { name = "Death Dragon", pos = Position(33488, 32331, 13) },
+ },
specPos = {
from = Position(33468, 32319, 13),
to = Position(33495, 32347, 13),
@@ -19,23 +25,6 @@ local config = {
exit = Position(33319, 32318, 13),
}
-local deathDragons = {
- Position(33476, 32331, 13),
- Position(33476, 32340, 13),
- Position(33487, 32340, 13),
- Position(33488, 32331, 13),
-}
-
-local ferumbrasAscendantRagiaz = Action()
-function ferumbrasAscendantRagiaz.onUse(player, item, fromPosition, target, toPosition, isHotkey)
- if CreateDefaultLeverBoss(player, config) then
- for _, pos in pairs(deathDragons) do
- Game.createMonster("Death Dragon", pos, true, true)
- end
- return true
- end
- return false
-end
-
-ferumbrasAscendantRagiaz:uid(1023)
-ferumbrasAscendantRagiaz:register()
+local lever = BossLever(config)
+lever:uid(1023)
+lever:register()
diff --git a/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/sacrifice.lua b/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/sacrifice.lua
index e906f6f98cf..cf69d4dc968 100644
--- a/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/sacrifice.lua
+++ b/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/sacrifice.lua
@@ -7,7 +7,7 @@ local fount = {
local ferumbrasAscendantSacrifice = Action()
function ferumbrasAscendantSacrifice.onUse(player, item, fromPosition, target, toPosition, isHotkey)
- if not target.actionid == 53805 or Tile(Position(33415, 32379, 12)):getItemById(22161) or player:getStorageValue(Storage.FerumbrasAscension.Fount) >= 4 then
+ if not target.actionid == 53805 or Tile(Position(33415, 32379, 12)):getItemById(22163) or player:getStorageValue(Storage.FerumbrasAscension.Fount) >= 4 then
return false
end
if item.itemid == 22158 then
diff --git a/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/teleportation_rod.lua b/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/teleportation_rod.lua
index 78292f6d34c..062233e7eb7 100644
--- a/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/teleportation_rod.lua
+++ b/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/teleportation_rod.lua
@@ -1,11 +1,11 @@
local config = {
- [24830] = { storageKey = Storage.FerumbrasAscension.Razzagorn },
- [24831] = { storageKey = Storage.FerumbrasAscension.Ragiaz },
- [24832] = { storageKey = Storage.FerumbrasAscension.Zamulosh },
- [24833] = { storageKey = Storage.FerumbrasAscension.Mazoran },
- [24834] = { storageKey = Storage.FerumbrasAscension.Tarbaz },
- [24835] = { storageKey = Storage.FerumbrasAscension.Shulgrax },
- [24836] = { storageKey = Storage.FerumbrasAscension.Plagirath },
+ [22174] = { storageKey = Storage.FerumbrasAscension.Razzagorn },
+ [22175] = { storageKey = Storage.FerumbrasAscension.Ragiaz },
+ [22176] = { storageKey = Storage.FerumbrasAscension.Zamulosh },
+ [22177] = { storageKey = Storage.FerumbrasAscension.Mazoran },
+ [22178] = { storageKey = Storage.FerumbrasAscension.Tarbaz },
+ [22179] = { storageKey = Storage.FerumbrasAscension.Shulgrax },
+ [22180] = { storageKey = Storage.FerumbrasAscension.Plagirath },
}
local ferumbrasAscendantTeleportation = Action()
diff --git a/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/zamulosh_lever.lua b/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/zamulosh_lever.lua
index f59534879e3..94c7d59c0b2 100644
--- a/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/zamulosh_lever.lua
+++ b/data-otservbr-global/scripts/actions/quests/ferumbras_ascendant/zamulosh_lever.lua
@@ -28,16 +28,6 @@ local zamuloshSummons = {
Position(33644, 32756, 11),
}
-local ferumbrasAscendantZamulosh = Action()
-function ferumbrasAscendantZamulosh.onUse(player, item, fromPosition, target, toPosition, isHotkey)
- if CreateDefaultLeverBoss(player, config) then
- for _, pos in pairs(zamuloshSummons) do
- Game.createMonster("Zamulosh3", pos, true, true)
- end
- return true
- end
- return false
-end
-
-ferumbrasAscendantZamulosh:uid(1026)
-ferumbrasAscendantZamulosh:register()
+local lever = BossLever(config)
+lever:uid(1026)
+lever:register()
diff --git a/data-otservbr-global/scripts/creaturescripts/customs/freequests.lua b/data-otservbr-global/scripts/creaturescripts/customs/freequests.lua
index ec9d9ab4800..e3db2db8c6a 100644
--- a/data-otservbr-global/scripts/creaturescripts/customs/freequests.lua
+++ b/data-otservbr-global/scripts/creaturescripts/customs/freequests.lua
@@ -371,6 +371,10 @@ local questTable = {
{ storage = Storage.HeroRathleton.AccessDoor, storageValue = 1 },
{ storage = Storage.HeroRathleton.FastWay, storageValue = 1 },
+
+ -- Sea Serpent Quest
+ { storage = Storage.Quest.U8_2.FishForASerpent.QuestLine, storageValue = 5 },
+ { storage = Storage.Quest.U8_2.TheHuntForTheSeaSerpent.QuestLine, storageValue = 2 },
}
-- from Position: (33201, 31762, 1)
diff --git a/data-otservbr-global/scripts/creaturescripts/customs/reward_exercise.lua b/data-otservbr-global/scripts/creaturescripts/customs/reward_exercise.lua
index f17304cec00..7ef792fe10e 100644
--- a/data-otservbr-global/scripts/creaturescripts/customs/reward_exercise.lua
+++ b/data-otservbr-global/scripts/creaturescripts/customs/reward_exercise.lua
@@ -10,4 +10,6 @@ function winReward.onLogin(player)
return true
end
-winReward:register()
+if configManager.getBoolean(configKeys.TOGGLE_RECEIVE_REWARD) then
+ winReward:register()
+end
diff --git a/data-otservbr-global/scripts/creaturescripts/others/login_events.lua b/data-otservbr-global/scripts/creaturescripts/others/login_events.lua
index 7adef4c07a1..2f570a72e3e 100644
--- a/data-otservbr-global/scripts/creaturescripts/others/login_events.lua
+++ b/data-otservbr-global/scripts/creaturescripts/others/login_events.lua
@@ -1,7 +1,6 @@
local loginEvents = CreatureEvent("LoginEvents")
function loginEvents.onLogin(player)
local events = {
- --Others
"AdvanceSave",
"BossParticipation",
"DropLoot",
diff --git a/data-otservbr-global/scripts/creaturescripts/quests/cults_of_tibia/leiden_heal.lua b/data-otservbr-global/scripts/creaturescripts/quests/cults_of_tibia/leiden_heal.lua
index 1eaf838ec28..85d61186ccf 100644
--- a/data-otservbr-global/scripts/creaturescripts/quests/cults_of_tibia/leiden_heal.lua
+++ b/data-otservbr-global/scripts/creaturescripts/quests/cults_of_tibia/leiden_heal.lua
@@ -1,16 +1,14 @@
local leidenHeal = CreatureEvent("LeidenHeal")
function leidenHeal.onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin)
- if creature:getName():lower() == "leiden" then
- if attacker and attacker:isPlayer() then
- primaryType = COMBAT_HEALING
- secondaryType = primaryType
- if primaryDamage < 0 then
- primaryDamage = primaryDamage * -1
- end
- secondaryDamage = primaryDamage
- creature:addHealth(primaryDamage < 0 and -primaryDamage or primaryDamage)
- return primaryDamage, primaryType, secondaryDamage, secondaryType
+ if attacker and attacker:isPlayer() then
+ primaryType = COMBAT_HEALING
+ secondaryType = primaryType
+ if primaryDamage < 0 then
+ primaryDamage = primaryDamage * -1
end
+ secondaryDamage = primaryDamage
+ creature:addHealth(primaryDamage < 0 and -primaryDamage or primaryDamage)
+ return primaryDamage, primaryType, secondaryDamage, secondaryType
end
return primaryDamage, primaryType, secondaryDamage, secondaryType
end
diff --git a/data-otservbr-global/scripts/creaturescripts/quests/ferumbras_ascendant/bosses_kill.lua b/data-otservbr-global/scripts/creaturescripts/quests/ferumbras_ascendant/bosses_kill.lua
index 5d81cf2f22c..8993c4b9063 100644
--- a/data-otservbr-global/scripts/creaturescripts/quests/ferumbras_ascendant/bosses_kill.lua
+++ b/data-otservbr-global/scripts/creaturescripts/quests/ferumbras_ascendant/bosses_kill.lua
@@ -3,7 +3,7 @@ local bosses = {
["tarbaz"] = { teleportPos = Position(33460, 32853, 11), godbreakerPos = Position(33427, 32852, 13) },
["ragiaz"] = { teleportPos = Position(33482, 32345, 13), godbreakerPos = Position(33466, 32392, 13) },
["plagirath"] = { teleportPos = Position(33174, 31511, 13), godbreakerPos = Position(33204, 31510, 13) },
- ["razzagorn"] = { teleportPos = Position(33413, 32467, 14), godbreakerPos = Position(33357, 32440, 13) },
+ ["razzagorn"] = { teleportPos = Position(33357, 32434, 12), godbreakerPos = Position(33357, 32440, 13) },
["zamulosh"] = { teleportPos = Position(33644, 32764, 11), godbreakerPos = Position(33678, 32758, 13) },
["mazoran"] = { teleportPos = Position(33585, 32699, 14), godbreakerPos = Position(33614, 32679, 15) },
["shulgrax"] = { teleportPos = Position(33486, 32796, 13), godbreakerPos = Position(33459, 32820, 14) },
diff --git a/data-otservbr-global/scripts/creaturescripts/quests/ferumbras_ascendant/rift_invader_death.lua b/data-otservbr-global/scripts/creaturescripts/quests/ferumbras_ascendant/rift_invader_death.lua
index a3d049f4581..3db8456d1d1 100644
--- a/data-otservbr-global/scripts/creaturescripts/quests/ferumbras_ascendant/rift_invader_death.lua
+++ b/data-otservbr-global/scripts/creaturescripts/quests/ferumbras_ascendant/rift_invader_death.lua
@@ -22,7 +22,7 @@ function riftInvaderDeath.onDeath(creature, corpse, lasthitkiller, mostdamagekil
for i = 1, #crystals do
local crystal = crystals[i]
- if isInRange(creature:getPosition(), crystal.fromPosition, crystal.toPosition) then
+ if creature:getPosition():isInRange(crystal.fromPosition, crystal.toPosition) then
if Game.getStorageValue(crystal.globalStorage) > 8 then
local item = Tile(crystal.crystalPosition):getItemById(14955)
if not item then
diff --git a/data-otservbr-global/scripts/creaturescripts/quests/ferumbras_ascendant/the_shatterer_kill.lua b/data-otservbr-global/scripts/creaturescripts/quests/ferumbras_ascendant/the_shatterer_kill.lua
index a132bf68f17..493db2c089e 100644
--- a/data-otservbr-global/scripts/creaturescripts/quests/ferumbras_ascendant/the_shatterer_kill.lua
+++ b/data-otservbr-global/scripts/creaturescripts/quests/ferumbras_ascendant/the_shatterer_kill.lua
@@ -95,7 +95,7 @@ function theShattererKill.onDeath(creature)
local oldPos = teleport:getDestination()
if teleport then
teleport:transform(22761)
- targetMonster:getPosition():sendMagicEffect(CONST_ME_THUNDER)
+ creature:getPosition():sendMagicEffect(CONST_ME_THUNDER)
teleport:setDestination(newPos)
addEvent(revertTeleport, 2 * 60 * 1000, teleportPos, 22761, 1949, oldPos)
revert()
diff --git a/data-otservbr-global/scripts/creaturescripts/quests/in_service_of_yalahar/azerus_kill.lua b/data-otservbr-global/scripts/creaturescripts/quests/in_service_of_yalahar/azerus_kill.lua
index e0243544958..0b288679c18 100644
--- a/data-otservbr-global/scripts/creaturescripts/quests/in_service_of_yalahar/azerus_kill.lua
+++ b/data-otservbr-global/scripts/creaturescripts/quests/in_service_of_yalahar/azerus_kill.lua
@@ -8,15 +8,14 @@ end
local azerus = CreatureEvent("AzerusDeath")
function azerus.onDeath(creature)
- local targetMonster = creature:getMonster()
- local position = targetMonster:getPosition()
+ local position = creature:getPosition()
position:sendMagicEffect(CONST_ME_TELEPORT)
local item = Game.createItem(1949, 1, position)
local teleportToPosition = Position(32780, 31168, 14)
if item:isTeleport() then
item:setDestination(teleportToPosition)
end
- targetMonster:say("Azerus ran into teleporter! It will disappear in 2 minutes. Enter it!", TALKTYPE_MONSTER_SAY, 0, 0, position)
+ creature:say("Azerus ran into teleporter! It will disappear in 2 minutes. Enter it!", TALKTYPE_MONSTER_SAY, 0, 0, position)
--remove portal after 2 min
addEvent(removeTeleport, 2 * 60 * 1000, position)
diff --git a/data-otservbr-global/scripts/creaturescripts/quests/the_primal_ordeal/magma_bubble_death.lua b/data-otservbr-global/scripts/creaturescripts/quests/the_primal_ordeal/magma_bubble_death.lua
index 953918d959e..121b4071da0 100644
--- a/data-otservbr-global/scripts/creaturescripts/quests/the_primal_ordeal/magma_bubble_death.lua
+++ b/data-otservbr-global/scripts/creaturescripts/quests/the_primal_ordeal/magma_bubble_death.lua
@@ -1,15 +1,26 @@
local magmaBubbleDeath = CreatureEvent("MagmaBubbleDeath")
+
+local function hasOutfit(player)
+ return player:hasOutfit(1569) or player:hasOutfit(1568)
+end
+
function magmaBubbleDeath.onDeath(creature, corpse, killer, mostDamage, unjustified, mostDamage_unjustified)
if not creature then
return
end
local damageMap = creature:getMonster():getDamageMap()
-
for key, value in pairs(damageMap) do
local player = Player(key)
- if player and player:getStorageValue(Storage.Quest.U12_90.PrimalOrdeal.Bosses.MagmaBubbleKilled) < 1 then
- player:setStorageValue(Storage.Quest.U12_90.PrimalOrdeal.Bosses.MagmaBubbleKilled, 1) -- Access to The primal menace boss fight
+ if player then
+ if not hasOutfit(player) then
+ player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Congratulations you received the Fire-Fighter Outfit.")
+ player:addOutfit(1569, 0)
+ player:addOutfit(1568, 0)
+ end
+ if player:getStorageValue(Storage.Quest.U12_90.PrimalOrdeal.Bosses.MagmaBubbleKilled) < 1 then
+ player:setStorageValue(Storage.Quest.U12_90.PrimalOrdeal.Bosses.MagmaBubbleKilled, 1) -- Access to The primal menace boss fight
+ end
end
end
end
diff --git a/data-otservbr-global/scripts/globalevents/quests/demon_oak_voices.lua b/data-otservbr-global/scripts/globalevents/quests/demon_oak_voices.lua
index c5266d1e149..54d86db95fe 100644
--- a/data-otservbr-global/scripts/globalevents/quests/demon_oak_voices.lua
+++ b/data-otservbr-global/scripts/globalevents/quests/demon_oak_voices.lua
@@ -19,7 +19,7 @@ function demonOakVoices.onThink(interval, lastExecution)
local sound = sounds[math.random(#sounds)]
for i = 1, #spectators do
spectator = spectators[i]
- if isInRange(spectator:getPosition(), questArea[1], questArea[2]) then
+ if spectator:getPosition():isInRange(questArea[1], questArea[2]) then
return true
end
spectator:say(sound, TALKTYPE_MONSTER_YELL, false, 0, DEMON_OAK_POSITION)
diff --git a/data-otservbr-global/scripts/lib/register_actions.lua b/data-otservbr-global/scripts/lib/register_actions.lua
index b55cfca6c33..1522ad20417 100644
--- a/data-otservbr-global/scripts/lib/register_actions.lua
+++ b/data-otservbr-global/scripts/lib/register_actions.lua
@@ -323,13 +323,13 @@ local function addFerumbrasAscendantReward(player, target, toPosition)
end
end
- if target.itemid == 10551 and target.actionid == 53803 then
- if player:getStorageValue(Storage.FerumbrasAscendant.Ring) >= 1 then
+ if target.itemid == 22872 and target.actionid == 53803 then
+ if player:getStorageValue(Storage.FerumbrasAscension.Ring) >= 1 then
return false
end
player:addItem(22170, 1)
- player:setStorageValue(Storage.FerumbrasAscendant.Ring, 1)
+ player:setStorageValue(Storage.FerumbrasAscension.Ring, 1)
end
end
diff --git a/data-otservbr-global/scripts/lib/register_spells.lua b/data-otservbr-global/scripts/lib/register_spells.lua
index 0aa63ca3471..49a5d7aec2f 100644
--- a/data-otservbr-global/scripts/lib/register_spells.lua
+++ b/data-otservbr-global/scripts/lib/register_spells.lua
@@ -283,6 +283,18 @@ AREA_CIRCLE1X1 = {
{ 0, 1, 0 },
}
+AREA_CIRCLE4X4 = {
+ { 0, 0, 0, 0, 1, 0, 0, 0, 0 },
+ { 0, 0, 0, 1, 1, 1, 0, 0, 0 },
+ { 0, 0, 1, 1, 1, 1, 1, 0, 0 },
+ { 0, 1, 1, 1, 1, 1, 1, 1, 0 },
+ { 1, 1, 1, 1, 3, 1, 1, 1, 1 },
+ { 0, 1, 1, 1, 1, 1, 1, 1, 0 },
+ { 0, 0, 1, 1, 1, 1, 1, 0, 0 },
+ { 0, 0, 0, 1, 1, 1, 0, 0, 0 },
+ { 0, 0, 0, 0, 1, 0, 0, 0, 0 },
+}
+
AREA_CIRCLE5X5 = {
{ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0 },
diff --git a/data-otservbr-global/scripts/lib/shops.lua b/data-otservbr-global/scripts/lib/shops.lua
new file mode 100644
index 00000000000..84902899489
--- /dev/null
+++ b/data-otservbr-global/scripts/lib/shops.lua
@@ -0,0 +1,1604 @@
+SupplyShopConfigTable = {
+ ["foods"] = {
+ { itemName = "brown mushroom", clientId = 3725, buy = 10 },
+ { itemName = "fire mushroom", clientId = 3731, buy = 300 },
+ },
+ ["exercise weapons"] = {
+ { itemName = "enhanced exercise axe", clientId = 35280, buy = 2340000 },
+ { itemName = "enhanced exercise bow", clientId = 35282, buy = 2340000 },
+ { itemName = "enhanced exercise club", clientId = 35281, buy = 2340000 },
+ { itemName = "enhanced exercise rod", clientId = 35283, buy = 2340000 },
+ { itemName = "enhanced exercise shield", clientId = 44066, buy = 2340000 },
+ { itemName = "enhanced exercise sword", clientId = 35279, buy = 2340000 },
+ { itemName = "enhanced exercise wand", clientId = 35284, buy = 2340000 },
+ { itemName = "exercise axe", clientId = 28553, buy = 1800000 },
+ { itemName = "exercise bow", clientId = 28555, buy = 1800000 },
+ { itemName = "exercise club", clientId = 28554, buy = 1800000 },
+ { itemName = "exercise rod", clientId = 28556, buy = 1800000 },
+ { itemName = "exercise shield", clientId = 44065, buy = 1800000 },
+ { itemName = "exercise sword", clientId = 28552, buy = 1800000 },
+ { itemName = "exercise wand", clientId = 28557, buy = 1800000 },
+ { itemName = "masterful exercise axe", clientId = 35286, buy = 2700000 },
+ { itemName = "masterful exercise bow", clientId = 35288, buy = 2700000 },
+ { itemName = "masterful exercise club", clientId = 35287, buy = 2700000 },
+ { itemName = "masterful exercise rod", clientId = 35289, buy = 2700000 },
+ { itemName = "masterful exercise shield", clientId = 44067, buy = 2700000 },
+ { itemName = "masterful exercise sword", clientId = 35285, buy = 2700000 },
+ { itemName = "masterful exercise wand", clientId = 35290, buy = 2700000 },
+ },
+ ["distance equipments"] = {
+ { itemName = "envenomed arrow", clientId = 16143, buy = 12 },
+ { itemName = "diamond arrow", clientId = 35901, buy = 100 },
+ { itemName = "drill bolt", clientId = 16142, buy = 12 },
+ { itemName = "crystalline arrow", clientId = 15793, buy = 20 },
+ { itemName = "blue quiver", clientId = 35848, buy = 400 },
+ { itemName = "bolt", clientId = 3446, buy = 4 },
+ { itemName = "bow", clientId = 3350, buy = 400 },
+ { itemName = "arrow", clientId = 3447, buy = 3 },
+ { itemName = "assassin star", clientId = 7368, buy = 100 },
+ { itemName = "earth arrow", clientId = 774, buy = 5 },
+ { itemName = "enchanted spear", clientId = 7367, buy = 30 },
+ { itemName = "flaming arrow", clientId = 763, buy = 5 },
+ { itemName = "flash arrow", clientId = 761, buy = 5 },
+ { itemName = "royal star", clientId = 25759, buy = 110 },
+ { itemName = "quiver", clientId = 35562, buy = 400 },
+ { itemName = "red quiver", clientId = 35849, buy = 400 },
+ { itemName = "power bolt", clientId = 3450, buy = 7 },
+ { itemName = "piercing bolt", clientId = 7363, buy = 5 },
+ { itemName = "onyx arrow", clientId = 7365, buy = 7 },
+ { itemName = "prismatic bolt", clientId = 16141, buy = 20 },
+ { itemName = "shiver arrow", clientId = 762, buy = 5 },
+ { itemName = "sniper arrow", clientId = 7364, buy = 5 },
+ { itemName = "spear", clientId = 3277, buy = 5 },
+ { itemName = "spectral bolt", clientId = 35902, buy = 70 },
+ { itemName = "throwing star", clientId = 3287, buy = 42 },
+ { itemName = "tarsal arrow", clientId = 14251, buy = 6 },
+ { itemName = "vortex bolt", clientId = 14252, buy = 6 },
+ { itemName = "hunting spear", clientId = 3347, buy = 25 },
+ },
+ ["runes"] = {
+ { itemName = "animate dead rune", clientId = 3203, buy = 375 },
+ { itemName = "avalanche rune", clientId = 3161, buy = 57 },
+ { itemName = "blank rune", clientId = 3147, buy = 10 },
+ { itemName = "chameleon rune", clientId = 3178, buy = 210 },
+ { itemName = "convince creature rune", clientId = 3177, buy = 80 },
+ { itemName = "cure poison rune", clientId = 3153, buy = 65 },
+ { itemName = "desintegrate rune", clientId = 3197, buy = 26 },
+ { itemName = "destroy field rune", clientId = 3148, buy = 15 },
+ { itemName = "divine rain rune", clientId = 3186, buy = 57 },
+ { itemName = "energy bomb rune", clientId = 3149, buy = 203 },
+ { itemName = "energy field rune", clientId = 3164, buy = 38 },
+ { itemName = "energy wall rune", clientId = 3166, buy = 85 },
+ { itemName = "explosion rune", clientId = 3200, buy = 31 },
+ { itemName = "fire bomb rune", clientId = 3192, buy = 147 },
+ { itemName = "fire field rune", clientId = 3188, buy = 28 },
+ { itemName = "fire wall rune", clientId = 3190, buy = 61 },
+ { itemName = "fireball rune", clientId = 3189, buy = 65 },
+ { itemName = "great fireball rune", clientId = 3191, buy = 57 },
+ { itemName = "heavy magic missile rune", clientId = 3198, buy = 65 },
+ { itemName = "holy missile rune", clientId = 3182, buy = 16 },
+ { itemName = "icicle rune", clientId = 3158, buy = 65 },
+ { itemName = "intense healing rune", clientId = 3152, buy = 95 },
+ { itemName = "light magic missile rune", clientId = 3174, buy = 4 },
+ { itemName = "magic wall rune", clientId = 3180, buy = 116 },
+ { itemName = "paralyze rune", clientId = 3165, buy = 700 },
+ { itemName = "poison bomb rune", clientId = 3173, buy = 85 },
+ { itemName = "poison field rune", clientId = 3172, buy = 21 },
+ { itemName = "poison wall rune", clientId = 3176, buy = 52 },
+ { itemName = "soulfire rune", clientId = 3195, buy = 46 },
+ { itemName = "stalagmite rune", clientId = 3179, buy = 65 },
+ { itemName = "stone shower rune", clientId = 3175, buy = 57 },
+ { itemName = "sudden death rune", clientId = 3155, buy = 135 },
+ { itemName = "thunderstorm rune", clientId = 3202, buy = 57 },
+ { itemName = "ultimate healing rune", clientId = 3160, buy = 175 },
+ { itemName = "wild growth rune", clientId = 3156, buy = 160 },
+ },
+ ["tools"] = {
+ { itemName = "fishing rod", clientId = 3483, buy = 150 },
+ { itemName = "flask of rust remover", clientId = 9016, buy = 50 },
+ { itemName = "torch", clientId = 2920, buy = 2 },
+ { itemName = "worm", clientId = 3492, buy = 1 },
+ { itemName = "crowbar", clientId = 3304, buy = 260 },
+ { itemName = "backpack", clientId = 2854, buy = 20 },
+ },
+ ["amulets"] = {
+ { itemName = "gill necklace", clientId = 16108, buy = 20000 },
+ { itemName = "glacier amulet", clientId = 815, buy = 15000 },
+ { itemName = "leviathan's amulet", clientId = 9303, buy = 30000 },
+ { itemName = "magma amulet", clientId = 817, buy = 15000 },
+ { itemName = "lightning pendant", clientId = 816, buy = 15000 },
+ { itemName = "prismatic necklace", clientId = 16113, buy = 20000 },
+ { itemName = "sacred tree amulet", clientId = 9302, buy = 30000 },
+ { itemName = "shockwave amulet", clientId = 9304, buy = 30000 },
+ { itemName = "stone skin amulet", clientId = 3081, buy = 5000 },
+ { itemName = "collar of blue plasma", clientId = 23542, buy = 60000 },
+ { itemName = "collar of green plasma", clientId = 23543, buy = 60000 },
+ { itemName = "collar of red plasma", clientId = 23544, buy = 60000 },
+ { itemName = "terra amulet", clientId = 814, buy = 15000 },
+ },
+ ["rings"] = {
+ { itemName = "life ring", clientId = 3052, buy = 900 },
+ { itemName = "might ring", clientId = 3048, buy = 5000 },
+ { itemName = "ring of blue plasma", clientId = 23529, buy = 80000 },
+ { itemName = "ring of green plasma", clientId = 23531, buy = 80000 },
+ { itemName = "ring of healing", clientId = 3098, buy = 2000 },
+ { itemName = "prismatic ring", clientId = 16114, buy = 100000 },
+ { itemName = "ring of red plasma", clientId = 23533, buy = 80000 },
+ { itemName = "stealth ring", clientId = 3049, buy = 5000 },
+ { itemName = "time ring", clientId = 3053, buy = 2000 },
+ { itemName = "dwarven ring", clientId = 3097, buy = 2000 },
+ { itemName = "energy ring", clientId = 3051, buy = 2000 },
+ },
+ ["potions"] = {
+ { itemName = "great health potion", clientId = 239, buy = 225 },
+ { itemName = "great mana potion", clientId = 238, buy = 144 },
+ { itemName = "great spirit potion", clientId = 7642, buy = 228 },
+ { itemName = "health potion", clientId = 266, buy = 50 },
+ { itemName = "mana potion", clientId = 268, buy = 56 },
+ { itemName = "mana shield potion", clientId = 35563, buy = 200000 },
+ { itemName = "ultimate health potion", clientId = 7643, buy = 379 },
+ { itemName = "ultimate mana potion", clientId = 23373, buy = 438 },
+ { itemName = "ultimate spirit potion", clientId = 23374, buy = 438 },
+ { itemName = "supreme health potion", clientId = 23375, buy = 625 },
+ { itemName = "strong health potion", clientId = 236, buy = 115 },
+ { itemName = "strong mana potion", clientId = 237, buy = 93 },
+ },
+}
+
+SupplyShopConfig = {}
+for _, categoryTable in pairs(SupplyShopConfigTable) do
+ for _, itemTable in ipairs(categoryTable) do
+ table.insert(SupplyShopConfig, itemTable)
+ end
+end
+
+function FindSupplyShopItem(itemName)
+ for _, item in ipairs(SupplyShopConfig) do
+ if string.starts(item.itemName:lower(), itemName:lower()) then
+ return item
+ end
+ end
+end
+
+LootShopConfigTable = {
+ ["creature products"] = {
+ { itemName = "abomination's eye", clientId = 36792, sell = 650000 },
+ { itemName = "abomination's tail", clientId = 36791, sell = 700000 },
+ { itemName = "abomination's tongue", clientId = 36793, sell = 950000 },
+ { itemName = "afflicted strider head", clientId = 36789, sell = 900 },
+ { itemName = "afflicted strider worms", clientId = 36790, sell = 500 },
+ { itemName = "alptramun's toothbrush", clientId = 29943, sell = 270000 },
+ { itemName = "acorn", clientId = 10296, sell = 10 },
+ { itemName = "amber with a bug", clientId = 32624, sell = 41000 },
+ { itemName = "amber with a dragonfly", clientId = 32625, sell = 56000 },
+ { itemName = "amber", clientId = 32626, sell = 20000 },
+ { itemName = "ancient belt buckle", clientId = 24384, sell = 260 },
+ { itemName = "ancient liche bone", clientId = 31588, sell = 28000 },
+ { itemName = "antlers", clientId = 10297, sell = 50 },
+ { itemName = "apron", clientId = 33933, sell = 1300 },
+ { itemName = "badger fur", clientId = 10299, sell = 15 },
+ { itemName = "badger fur", clientId = 903, sell = 15 },
+ { itemName = "bamboo stick", clientId = 11445, sell = 30 },
+ { itemName = "banana sash", clientId = 11511, sell = 55 },
+ { itemName = "basalt fetish", clientId = 17856, sell = 210 },
+ { itemName = "bashmu fang", clientId = 36820, sell = 600 },
+ { itemName = "bashmu feather", clientId = 36823, sell = 350 },
+ { itemName = "bashmu tongue", clientId = 36821, sell = 400 },
+ { itemName = "bed of nails", clientId = 25743, sell = 500 },
+ { itemName = "beer tap", clientId = 32114, sell = 50 },
+ { itemName = "beetle carapace", clientId = 24381, sell = 200 },
+ { itemName = "beetle necklace", clientId = 10457, sell = 1500 },
+ { itemName = "bejeweled ship's telescope", clientId = 9616, sell = 20000 },
+ { itemName = "berserker", clientId = 7403, sell = 40000 },
+ { itemName = "black hood", clientId = 9645, sell = 190 },
+ { itemName = "black skull", clientId = 9056, sell = 4000 },
+ { itemName = "black wool", clientId = 11448, sell = 300 },
+ { itemName = "blazing bone", clientId = 16131, sell = 610 },
+ { itemName = "blemished spawn abdomen", clientId = 36779, sell = 550 },
+ { itemName = "blemished spawn head", clientId = 36778, sell = 800 },
+ { itemName = "blemished spawn tail", clientId = 36780, sell = 1000 },
+ { itemName = "blood preservation", clientId = 11449, sell = 320 },
+ { itemName = "blood tincture in a vial", clientId = 18928, sell = 360 },
+ { itemName = "bloody dwarven beard", clientId = 17827, sell = 110 },
+ { itemName = "bloody pincers", clientId = 9633, sell = 100 },
+ { itemName = "bloody tears", clientId = 32594, sell = 70000 },
+ { itemName = "blue glass plate", clientId = 29345, sell = 60 },
+ { itemName = "blue goanna scale", clientId = 31559, sell = 230 },
+ { itemName = "boar man hoof", clientId = 40584, sell = 600 },
+ { itemName = "boggy dreads", clientId = 9667, sell = 200 },
+ { itemName = "bola", clientId = 17809, sell = 35 },
+ { itemName = "bone fetish", clientId = 17831, sell = 150 },
+ { itemName = "bone shoulderplate", clientId = 10404, sell = 150 },
+ { itemName = "bone toothpick", clientId = 24380, sell = 150 },
+ { itemName = "bonecarving knife", clientId = 17830, sell = 190 },
+ { itemName = "bones of zorvorax", clientId = 24942, sell = 10000 },
+ { itemName = "bony tail", clientId = 10277, sell = 210 },
+ { itemName = "book of necromantic rituals", clientId = 10320, sell = 180 },
+ { itemName = "book of prayers", clientId = 9646, sell = 120 },
+ { itemName = "book page", clientId = 28569, sell = 640 },
+ { itemName = "bowl of terror sweat", clientId = 20204, sell = 500 },
+ { itemName = "brain head's giant neuron", clientId = 32578, sell = 100000 },
+ { itemName = "brain head's left hemisphere", clientId = 32579, sell = 90000 },
+ { itemName = "brain head's right hemisphere", clientId = 32580, sell = 50000 },
+ { itemName = "brainstealer's brain", clientId = 36795, sell = 300000 },
+ { itemName = "brainstealer's brainwave", clientId = 36796, sell = 440000 },
+ { itemName = "brainstealer's tissue", clientId = 36794, sell = 240000 },
+ { itemName = "bright bell", clientId = 30324, sell = 220 },
+ { itemName = "brimstone fangs", clientId = 11702, sell = 380 },
+ { itemName = "brimstone shell", clientId = 11703, sell = 210 },
+ { itemName = "broken bell", clientId = 30185, sell = 150 },
+ { itemName = "broken crossbow", clientId = 11451, sell = 30 },
+ { itemName = "broken draken mail", clientId = 11660, sell = 340 },
+ { itemName = "broken gladiator shield", clientId = 9656, sell = 190 },
+ { itemName = "broken halberd", clientId = 10418, sell = 100 },
+ { itemName = "broken helmet", clientId = 11453, sell = 20 },
+ { itemName = "broken iks faulds", clientId = 40531, sell = 530 },
+ { itemName = "broken iks headpiece", clientId = 40532, sell = 560 },
+ { itemName = "broken iks sandals", clientId = 40534, sell = 440 },
+ { itemName = "broken key ring", clientId = 11652, sell = 8000 },
+ { itemName = "broken longbow", clientId = 34161, sell = 130 },
+ { itemName = "broken macuahuitl", clientId = 40530, sell = 1000 },
+ { itemName = "broken ring of ending", clientId = 12737, sell = 4000 },
+ { itemName = "broken shamanic staff", clientId = 11452, sell = 35 },
+ { itemName = "broken slicer", clientId = 11661, sell = 120 },
+ { itemName = "broken throwing axe", clientId = 17851, sell = 230 },
+ { itemName = "broken visor", clientId = 20184, sell = 1900 },
+ { itemName = "bronze amulet", clientId = 3056, sell = 50, count = 200 },
+ { itemName = "brooch of embracement", clientId = 34023, sell = 14000 },
+ { itemName = "brutetamer's staff", clientId = 7379, sell = 1500 },
+ { itemName = "buckle", clientId = 17829, sell = 7000 },
+ { itemName = "bunch of ripe rice", clientId = 10328, sell = 75 },
+ { itemName = "bunch of troll hair", clientId = 9689, sell = 30 },
+ { itemName = "bundle of cursed straw", clientId = 9688, sell = 800 },
+ { itemName = "capricious heart", clientId = 34138, sell = 2100 },
+ { itemName = "capricious robe", clientId = 34145, sell = 1200 },
+ { itemName = "carniphila seeds", clientId = 10300, sell = 50 },
+ { itemName = "carnisylvan bark", clientId = 36806, sell = 230 },
+ { itemName = "carnisylvan finger", clientId = 36805, sell = 250 },
+ { itemName = "carnivostrich feathers", clientId = 40586, sell = 550 },
+ { itemName = "carrion worm fang", clientId = 10275, sell = 35 },
+ { itemName = "cat's paw", clientId = 5479, sell = 2000 },
+ { itemName = "cave chimera head", clientId = 36787, sell = 1200 },
+ { itemName = "cave chimera leg", clientId = 36788, sell = 650 },
+ { itemName = "cave devourer eyes", clientId = 27599, sell = 550 },
+ { itemName = "cave devourer legs", clientId = 27601, sell = 350 },
+ { itemName = "cave devourer maw", clientId = 27600, sell = 600 },
+ { itemName = "cavebear skull", clientId = 12316, sell = 550 },
+ { itemName = "centipede leg", clientId = 10301, sell = 28 },
+ { itemName = "chasm spawn abdomen", clientId = 27603, sell = 240 },
+ { itemName = "chasm spawn head", clientId = 27602, sell = 850 },
+ { itemName = "chasm spawn tail", clientId = 27604, sell = 120 },
+ { itemName = "cheese cutter", clientId = 17817, sell = 50 },
+ { itemName = "cheesy figurine", clientId = 17818, sell = 150 },
+ { itemName = "cheesy membership card", clientId = 35614, sell = 120000 },
+ { itemName = "chicken feather", clientId = 5890, sell = 30 },
+ { itemName = "chitinous mouth", clientId = 27622, sell = 10000 },
+ { itemName = "chitinous mouth", clientId = 27626, sell = 10000 },
+ { itemName = "cliff strider claw", clientId = 16134, sell = 800 },
+ { itemName = "closed trap", clientId = 3481, sell = 75 },
+ { itemName = "coal", clientId = 12600, sell = 20 },
+ { itemName = "cobra crest", clientId = 31678, sell = 650 },
+ { itemName = "cobra tongue", clientId = 9634, sell = 15 },
+ { itemName = "colourful feather", clientId = 11514, sell = 110 },
+ { itemName = "colourful feathers", clientId = 25089, sell = 400 },
+ { itemName = "colourful snail shell", clientId = 25696, sell = 250 },
+ { itemName = "compass", clientId = 10302, sell = 45 },
+ { itemName = "compound eye", clientId = 14083, sell = 150 },
+ { itemName = "condensed energy", clientId = 23501, sell = 260 },
+ { itemName = "coral branch", clientId = 39406, sell = 360 },
+ { itemName = "coral brooch", clientId = 24391, sell = 750 },
+ { itemName = "corrupt naga scales", clientId = 39415, sell = 570 },
+ { itemName = "corrupted flag", clientId = 10409, sell = 700 },
+ { itemName = "countess sorrow's frozen tear", clientId = 6536, sell = 50000 },
+ { itemName = "cow bell", clientId = 32012, sell = 120 },
+ { itemName = "cowbell", clientId = 21204, sell = 210 },
+ { itemName = "crab man claw", clientId = 40582, sell = 550 },
+ { itemName = "crab pincers", clientId = 10272, sell = 35 },
+ { itemName = "crawler head plating", clientId = 14079, sell = 210 },
+ { itemName = "crawler's essence", clientId = 33982, sell = 3700 },
+ { itemName = "crest of the deep seas", clientId = 21892, sell = 10000 },
+ { itemName = "cruelty's chest", clientId = 33923, sell = 720000 },
+ { itemName = "cruelty's claw", clientId = 33922, sell = 640000 },
+ { itemName = "crunor idol", clientId = 30055, sell = 30000 },
+ { itemName = "crystal bone", clientId = 23521, sell = 250 },
+ { itemName = "cultish mask", clientId = 9638, sell = 280 },
+ { itemName = "cultish robe", clientId = 9639, sell = 150 },
+ { itemName = "cultish symbol", clientId = 11455, sell = 500 },
+ { itemName = "curious matter", clientId = 23511, sell = 430 },
+ { itemName = "curl of hair", clientId = 36809, sell = 320000 },
+ { itemName = "cursed bone", clientId = 32774, sell = 6000 },
+ { itemName = "cursed shoulder spikes", clientId = 10410, sell = 320 },
+ { itemName = "cyclops toe", clientId = 9657, sell = 55 },
+ { itemName = "daedal chisel", clientId = 40522, sell = 480 },
+ { itemName = "damaged armor plates", clientId = 28822, sell = 280 },
+ { itemName = "damaged worm head", clientId = 27620, sell = 8000 },
+ { itemName = "damselfly eye", clientId = 17463, sell = 25 },
+ { itemName = "damselfly wing", clientId = 17458, sell = 20 },
+ { itemName = "dandelion seeds", clientId = 25695, sell = 200 },
+ { itemName = "dangerous proto matter", clientId = 23515, sell = 300 },
+ { itemName = "dark bell", clientId = 30325, sell = 250 },
+ { itemName = "dark bell", clientId = 32596, sell = 310000 },
+ { itemName = "dead weight", clientId = 20202, sell = 450 },
+ { itemName = "deepling breaktime snack", clientId = 14011, sell = 90 },
+ { itemName = "deepling claw", clientId = 14044, sell = 430 },
+ { itemName = "deepling guard belt buckle", clientId = 14010, sell = 230 },
+ { itemName = "deepling ridge", clientId = 14041, sell = 360 },
+ { itemName = "deepling scales", clientId = 14017, sell = 80 },
+ { itemName = "deepling warts", clientId = 14012, sell = 180 },
+ { itemName = "deeptags", clientId = 14013, sell = 290 },
+ { itemName = "deepworm jaws", clientId = 27594, sell = 500 },
+ { itemName = "deepworm spike roots", clientId = 27593, sell = 650 },
+ { itemName = "deepworm spikes", clientId = 27592, sell = 800 },
+ { itemName = "demon horn", clientId = 5954, sell = 1000 },
+ { itemName = "demonic finger", clientId = 12541, sell = 1000 },
+ { itemName = "demonic skeletal hand", clientId = 9647, sell = 80 },
+ { itemName = "diabolic skull", clientId = 34025, sell = 19000 },
+ { itemName = "diremaw brainpan", clientId = 27597, sell = 350 },
+ { itemName = "diremaw legs", clientId = 27598, sell = 270 },
+ { itemName = "dirty turban", clientId = 11456, sell = 120 },
+ { itemName = "distorted heart", clientId = 34142, sell = 2100 },
+ { itemName = "distorted robe", clientId = 34149, sell = 1200 },
+ { itemName = "downy feather", clientId = 11684, sell = 20 },
+ { itemName = "dowser", clientId = 19110, sell = 35 },
+ { itemName = "dracola's eye", clientId = 6546, sell = 50000 },
+ { itemName = "dragon blood", clientId = 24937, sell = 700 },
+ { itemName = "dragon priest's wandtip", clientId = 10444, sell = 175 },
+ { itemName = "dragon tongue", clientId = 24938, sell = 550 },
+ { itemName = "dragon's tail", clientId = 11457, sell = 100 },
+ { itemName = "draken sulphur", clientId = 11658, sell = 550 },
+ { itemName = "draken wristbands", clientId = 11659, sell = 430 },
+ { itemName = "draptor scales", clientId = 12309, sell = 800 },
+ { itemName = "dream essence egg", clientId = 30005, sell = 205 },
+ { itemName = "dung ball", clientId = 14225, sell = 130 },
+ { itemName = "earflap", clientId = 17819, sell = 40 },
+ { itemName = "elder bonelord tentacle", clientId = 10276, sell = 150 },
+ { itemName = "elven astral observer", clientId = 11465, sell = 90 },
+ { itemName = "elven hoof", clientId = 18994, sell = 115 },
+ { itemName = "elven scouting glass", clientId = 11464, sell = 50 },
+ { itemName = "elvish talisman", clientId = 9635, sell = 45 },
+ { itemName = "emerald tortoise shell", clientId = 39379, sell = 2150 },
+ { itemName = "empty honey glass", clientId = 31331, sell = 270 },
+ { itemName = "energy ball", clientId = 23523, sell = 300 },
+ { itemName = "energy vein", clientId = 23508, sell = 270 },
+ { itemName = "enigmatic voodoo skull", clientId = 5669, sell = 4000 },
+ { itemName = "ensouled essence", clientId = 32698, sell = 820 },
+ { itemName = "essence of a bad dream", clientId = 10306, sell = 360 },
+ { itemName = "eternal flames", clientId = 946, sell = 5000 },
+ { itemName = "execowtioner mask", clientId = 21201, sell = 240 },
+ { itemName = "ethno coat", clientId = 8064, sell = 200 },
+ { itemName = "eye of a deepling", clientId = 12730, sell = 150 },
+ { itemName = "eye of a weeper", clientId = 16132, sell = 650 },
+ { itemName = "eye of corruption", clientId = 11671, sell = 390 },
+ { itemName = "eyeless devourer legs", clientId = 36776, sell = 650 },
+ { itemName = "eyeless devourer maw", clientId = 36775, sell = 420 },
+ { itemName = "eyeless devourer tongue", clientId = 36777, sell = 900 },
+ { itemName = "fafnar symbol", clientId = 31443, sell = 950 },
+ { itemName = "fairy wings", clientId = 25694, sell = 200 },
+ { itemName = "falcon crest", clientId = 28823, sell = 650 },
+ { itemName = "fern", clientId = 3737, sell = 20 },
+ { itemName = "fiery heart", clientId = 9636, sell = 375 },
+ { itemName = "fiery tear", clientId = 39040, sell = 1070000 },
+ { itemName = "fig leaf", clientId = 25742, sell = 200 },
+ { itemName = "fir cone", clientId = 19111, sell = 25 },
+ { itemName = "flask of embalming fluid", clientId = 11466, sell = 30 },
+ { itemName = "flask of warrior's sweat", clientId = 5885, sell = 10000 },
+ { itemName = "flotsam", clientId = 39407, sell = 330 },
+ { itemName = "flower dress", clientId = 9015, sell = 1000 },
+ { itemName = "flower wreath", clientId = 9013, sell = 500 },
+ { itemName = "fox paw", clientId = 27462, sell = 100 },
+ { itemName = "frazzle skin", clientId = 20199, sell = 400 },
+ { itemName = "frazzle tongue", clientId = 20198, sell = 700 },
+ { itemName = "frost giant pelt", clientId = 9658, sell = 160 },
+ { itemName = "frosty ear of a troll", clientId = 9648, sell = 30 },
+ { itemName = "frosty heart", clientId = 9661, sell = 280 },
+ { itemName = "gauze bandage", clientId = 9649, sell = 90 },
+ { itemName = "gear crystal", clientId = 9655, sell = 200 },
+ { itemName = "gear wheel", clientId = 8775, sell = 500 },
+ { itemName = "fur shred", clientId = 34164, sell = 200 },
+ { itemName = "geomancer's robe", clientId = 11458, sell = 80 },
+ { itemName = "geomancer's staff", clientId = 11463, sell = 120 },
+ { itemName = "ghastly dragon head", clientId = 10449, sell = 700 },
+ { itemName = "ghostly tissue", clientId = 9690, sell = 90 },
+ { itemName = "ghoul snack", clientId = 11467, sell = 60 },
+ { itemName = "giant crab pincer", clientId = 12317, sell = 950 },
+ { itemName = "giant eye", clientId = 10280, sell = 380 },
+ { itemName = "giant tentacle", clientId = 27619, sell = 10000 },
+ { itemName = "girlish hair decoration", clientId = 11443, sell = 30 },
+ { itemName = "girtablilu warrior carapace", clientId = 36971, sell = 520 },
+ { itemName = "gland", clientId = 8143, sell = 500 },
+ { itemName = "glistening bone", clientId = 23522, sell = 250 },
+ { itemName = "glob of acid slime", clientId = 9054, sell = 25 },
+ { itemName = "glob of glooth", clientId = 21182, sell = 125 },
+ { itemName = "glob of mercury", clientId = 9053, sell = 20 },
+ { itemName = "glob of tar", clientId = 9055, sell = 30 },
+ { itemName = "gloom wolf fur", clientId = 22007, sell = 70 },
+ { itemName = "glooth injection tube", clientId = 21103, sell = 350 },
+ { itemName = "goanna claw", clientId = 31561, sell = 260 },
+ { itemName = "goanna meat", clientId = 31560, sell = 190 },
+ { itemName = "goat grass", clientId = 3674, sell = 50 },
+ { itemName = "goblet of gloom", clientId = 34022, sell = 12000 },
+ { itemName = "goblin ear", clientId = 11539, sell = 20 },
+ { itemName = "goo shell", clientId = 19372, sell = 4000 },
+ { itemName = "goosebump leather", clientId = 20205, sell = 650 },
+ { itemName = "gore horn", clientId = 39377, sell = 2900 },
+ { itemName = "gorerilla mane", clientId = 39392, sell = 2750 },
+ { itemName = "gorerilla tail", clientId = 39393, sell = 2650 },
+ { itemName = "grant of arms", clientId = 28824, sell = 950 },
+ { itemName = "grappling hook", clientId = 35588, sell = 150 },
+ { itemName = "grasshopper legs", clientId = 14087, sell = 15000 },
+ { itemName = "grave flower", clientId = 3661, sell = 25 },
+ { itemName = "greed's arm", clientId = 33924, sell = 950000 },
+ { itemName = "green bandage", clientId = 25697, sell = 180 },
+ { itemName = "green glass plate", clientId = 29346, sell = 180 },
+ { itemName = "grimace", clientId = 32593, sell = 120000 },
+ { itemName = "gruesome fan", clientId = 34024, sell = 15000 },
+ { itemName = "guidebook", clientId = 25745, sell = 200 },
+ { itemName = "hair of a banshee", clientId = 11446, sell = 350 },
+ { itemName = "half-digested piece of meat", clientId = 10283, sell = 55 },
+ { itemName = "half-digested stones", clientId = 27369, sell = 40 },
+ { itemName = "half-eaten brain", clientId = 9659, sell = 85 },
+ { itemName = "hand", clientId = 33936, sell = 1450 },
+ { itemName = "harpoon of a giant snail", clientId = 27625, sell = 15000 },
+ { itemName = "harpy feathers", clientId = 40585, sell = 730 },
+ { itemName = "hatched rorc egg", clientId = 18997, sell = 30 },
+ { itemName = "haunted piece of wood", clientId = 9683, sell = 115 },
+ { itemName = "hazardous heart", clientId = 34140, sell = 5000 },
+ { itemName = "hazardous robe", clientId = 34147, sell = 3000 },
+ { itemName = "head", clientId = 33932, sell = 3500 },
+ { itemName = "head", clientId = 33937, sell = 3200 },
+ { itemName = "headpecker beak", clientId = 39387, sell = 2998 },
+ { itemName = "headpecker feather", clientId = 39388, sell = 1300 },
+ { itemName = "heaven blossom", clientId = 3657, sell = 50 },
+ { itemName = "heavy machete", clientId = 3330, sell = 90 },
+ { itemName = "heavy old tome", clientId = 23986, sell = 30 },
+ { itemName = "hellhound slobber", clientId = 9637, sell = 500 },
+ { itemName = "hellspawn tail", clientId = 10304, sell = 475 },
+ { itemName = "hemp rope", clientId = 20206, sell = 350 },
+ { itemName = "hideous chunk", clientId = 16140, sell = 510 },
+ { itemName = "hieroglyph banner", clientId = 12482, sell = 500 },
+ { itemName = "high guard flag", clientId = 10415, sell = 550 },
+ { itemName = "high guard shoulderplates", clientId = 10416, sell = 130 },
+ { itemName = "hollow stampor hoof", clientId = 12314, sell = 400 },
+ { itemName = "holy ash", clientId = 17850, sell = 160 },
+ { itemName = "horn of kalyassa", clientId = 24941, sell = 10000 },
+ { itemName = "horn", clientId = 19359, sell = 300 },
+ { itemName = "horoscope", clientId = 18926, sell = 40 },
+ { itemName = "huge chunk of crude iron", clientId = 5892, sell = 15000 },
+ { itemName = "huge shell", clientId = 27621, sell = 15000 },
+ { itemName = "huge spiky snail shell", clientId = 27627, sell = 8000 },
+ { itemName = "humongous chunk", clientId = 16139, sell = 540 },
+ { itemName = "hunter's quiver", clientId = 11469, sell = 80 },
+ { itemName = "hydra egg", clientId = 4839, sell = 500 },
+ { itemName = "hydra head", clientId = 10282, sell = 600 },
+ { itemName = "hydrophytes", clientId = 39410, sell = 220 },
+ { itemName = "ice flower", clientId = 30058, sell = 370 },
+ { itemName = "incantation notes", clientId = 18929, sell = 90 },
+ { itemName = "infernal heart", clientId = 34139, sell = 2100 },
+ { itemName = "infernal robe", clientId = 34146, sell = 1200 },
+ { itemName = "inkwell", clientId = 28568, sell = 720 },
+ { itemName = "instable proto matter", clientId = 23516, sell = 300 },
+ { itemName = "ivory carving", clientId = 33945, sell = 300 },
+ { itemName = "ivory comb", clientId = 32773, sell = 8000 },
+ { itemName = "izcandar's snow globe", clientId = 29944, sell = 180000 },
+ { itemName = "izcandar's sundial", clientId = 29945, sell = 225000 },
+ { itemName = "jacket", clientId = 3561, sell = 1 },
+ { itemName = "jaws", clientId = 34014, sell = 3900 },
+ { itemName = "jewelled belt", clientId = 11470, sell = 180 },
+ { itemName = "jungle moa claw", clientId = 39404, sell = 160 },
+ { itemName = "jungle moa egg", clientId = 39405, sell = 250 },
+ { itemName = "jungle moa feather", clientId = 39403, sell = 140 },
+ { itemName = "katex' blood", clientId = 34100, sell = 210 },
+ { itemName = "key to the drowned library", clientId = 14009, sell = 330 },
+ { itemName = "kollos shell", clientId = 14077, sell = 420 },
+ { itemName = "kongra's shoulderpad", clientId = 11471, sell = 100 },
+ { itemName = "lamassu hoof", clientId = 31441, sell = 330 },
+ { itemName = "lamassu horn", clientId = 31442, sell = 240 },
+ { itemName = "lancer beetle shell", clientId = 10455, sell = 80 },
+ { itemName = "lancet", clientId = 18925, sell = 90 },
+ { itemName = "lava fungus head", clientId = 36785, sell = 900 },
+ { itemName = "lava fungus ring", clientId = 36786, sell = 390 },
+ { itemName = "lavaworm jaws", clientId = 36771, sell = 1100 },
+ { itemName = "lavaworm spike roots", clientId = 36769, sell = 600 },
+ { itemName = "lavaworm spikes", clientId = 36770, sell = 750 },
+ { itemName = "legionnaire flags", clientId = 10417, sell = 500 },
+ { itemName = "liodile fang", clientId = 40583, sell = 480 },
+ { itemName = "lion cloak patch", clientId = 34162, sell = 190 },
+ { itemName = "lion crest", clientId = 34160, sell = 270 },
+ { itemName = "lion figurine", clientId = 33781, sell = 10000 },
+ { itemName = "lion seal", clientId = 34163, sell = 210 },
+ { itemName = "lion's mane", clientId = 9691, sell = 60 },
+ { itemName = "little bowl of myrrh", clientId = 25702, sell = 500 },
+ { itemName = "lizard essence", clientId = 11680, sell = 300 },
+ { itemName = "lizard heart", clientId = 31340, sell = 530 },
+ { itemName = "longing eyes", clientId = 27624, sell = 8000 },
+ { itemName = "lost basher's spike", clientId = 17826, sell = 280 },
+ { itemName = "lost bracers", clientId = 17853, sell = 140 },
+ { itemName = "lost husher's staff", clientId = 17848, sell = 250 },
+ { itemName = "lost soul", clientId = 32227, sell = 120 },
+ { itemName = "luminescent crystal pickaxe", clientId = 32711, sell = 50 },
+ { itemName = "luminous orb", clientId = 11454, sell = 1000 },
+ { itemName = "lump of dirt", clientId = 9692, sell = 10 },
+ { itemName = "lump of earth", clientId = 10305, sell = 130 },
+ { itemName = "mad froth", clientId = 17854, sell = 80 },
+ { itemName = "magma clump", clientId = 16130, sell = 570 },
+ { itemName = "magma coat", clientId = 826, sell = 11000 },
+ { itemName = "makara fin", clientId = 39401, sell = 350 },
+ { itemName = "makara tongue", clientId = 39402, sell = 320 },
+ { itemName = "malice's horn", clientId = 33920, sell = 620000 },
+ { itemName = "malice's spine", clientId = 33921, sell = 850000 },
+ { itemName = "malofur's lunchbox", clientId = 30088, sell = 240000 },
+ { itemName = "mantassin tail", clientId = 11489, sell = 280 },
+ { itemName = "manticore ear", clientId = 31440, sell = 310 },
+ { itemName = "manticore tail", clientId = 31439, sell = 220 },
+ { itemName = "mantosaurus jaw", clientId = 39386, sell = 2998 },
+ { itemName = "marsh stalker beak", clientId = 17461, sell = 65 },
+ { itemName = "marsh stalker feather", clientId = 17462, sell = 50 },
+ { itemName = "maxilla", clientId = 12315, sell = 250 },
+ { itemName = "maxxenius head", clientId = 29942, sell = 500000 },
+ { itemName = "megalomania's essence", clientId = 33928, sell = 1900000 },
+ { itemName = "megalomania's skull", clientId = 33925, sell = 1500000 },
+ { itemName = "metal spike", clientId = 10298, sell = 320 },
+ { itemName = "metal toe", clientId = 21198, sell = 430 },
+ { itemName = "milk churn", clientId = 32011, sell = 100 },
+ { itemName = "minotaur horn", clientId = 11472, sell = 75 },
+ { itemName = "miraculum", clientId = 11474, sell = 60 },
+ { itemName = "mooh'tah shell", clientId = 21202, sell = 110 },
+ { itemName = "moohtant horn", clientId = 21200, sell = 140 },
+ { itemName = "moon pin", clientId = 43736, sell = 18000 },
+ { itemName = "morgaroth's heart", clientId = 5943, sell = 15000 },
+ { itemName = "morshabaal's brain", clientId = 37613, sell = 15000 },
+ { itemName = "morshabaal's extract", clientId = 37810, sell = 3250000 },
+ { itemName = "mould heart", clientId = 34141, sell = 2100 },
+ { itemName = "mould robe", clientId = 34148, sell = 1200 },
+ { itemName = "mouldy powder", clientId = 35596, sell = 200 },
+ { itemName = "mr. punish's handcuffs", clientId = 6537, sell = 50000 },
+ { itemName = "mucus plug", clientId = 16102, sell = 500 },
+ { itemName = "mutated bat ear", clientId = 9662, sell = 420 },
+ { itemName = "mutated flesh", clientId = 10308, sell = 50 },
+ { itemName = "mutated rat tail", clientId = 9668, sell = 150 },
+ { itemName = "mysterious fetish", clientId = 3078, sell = 50 },
+ { itemName = "mysterious voodoo skull", clientId = 5668, sell = 4000 },
+ { itemName = "mystical hourglass", clientId = 9660, sell = 700 },
+ { itemName = "naga archer scales", clientId = 39413, sell = 340 },
+ { itemName = "naga armring", clientId = 39411, sell = 390 },
+ { itemName = "naga earring", clientId = 39412, sell = 380 },
+ { itemName = "naga warrior scales", clientId = 39414, sell = 340 },
+ { itemName = "necromantic robe", clientId = 11475, sell = 250 },
+ { itemName = "necromantic rust", clientId = 21196, sell = 390 },
+ { itemName = "nettle blossom", clientId = 10314, sell = 75 },
+ { itemName = "nettle spit", clientId = 11476, sell = 25 },
+ { itemName = "neutral matter", clientId = 954, sell = 5000 },
+ { itemName = "nighthunter wing", clientId = 39381, sell = 2000 },
+ { itemName = "odd organ", clientId = 23510, sell = 410 },
+ { itemName = "ogre ear stud", clientId = 22188, sell = 180 },
+ { itemName = "ogre nose ring", clientId = 22189, sell = 210 },
+ { itemName = "old girtablilu carapace", clientId = 36972, sell = 570 },
+ { itemName = "old parchment", clientId = 4831, sell = 500 },
+ { itemName = "one of timira's many heads", clientId = 39399, sell = 215000 },
+ { itemName = "orc leather", clientId = 11479, sell = 30 },
+ { itemName = "orc tooth", clientId = 10196, sell = 150 },
+ { itemName = "orc trophy", clientId = 7395, sell = 1000 },
+ { itemName = "orc tusk", clientId = 7786, sell = 700 },
+ { itemName = "orcish gear", clientId = 11477, sell = 85 },
+ { itemName = "orshabaal's brain", clientId = 5808, sell = 12000 },
+ { itemName = "pair of hellflayer horns", clientId = 22729, sell = 1300 },
+ { itemName = "pair of iron fists", clientId = 17828, sell = 4000 },
+ { itemName = "pair of old bracers", clientId = 32705, sell = 500 },
+ { itemName = "pale worm's scalp", clientId = 32598, sell = 489000 },
+ { itemName = "panpipes", clientId = 2953, sell = 150 },
+ { itemName = "panther head", clientId = 12039, sell = 750 },
+ { itemName = "panther paw", clientId = 12040, sell = 300 },
+ { itemName = "parder fur", clientId = 39418, sell = 150 },
+ { itemName = "parder tooth", clientId = 39417, sell = 150 },
+ { itemName = "patch of fine cloth", clientId = 28821, sell = 1350 },
+ { itemName = "peacock feather fan", clientId = 21975, sell = 350 },
+ { itemName = "pelvis bone", clientId = 11481, sell = 30 },
+ { itemName = "percht horns", clientId = 30186, sell = 200 },
+ { itemName = "petrified scream", clientId = 10420, sell = 250 },
+ { itemName = "phantasmal hair", clientId = 32704, sell = 500 },
+ { itemName = "pharaoh banner", clientId = 12483, sell = 1000 },
+ { itemName = "piece of archer armor", clientId = 11483, sell = 20 },
+ { itemName = "piece of crocodile leather", clientId = 10279, sell = 15 },
+ { itemName = "piece of dead brain", clientId = 9663, sell = 420 },
+ { itemName = "piece of hellfire armor", clientId = 9664, sell = 550 },
+ { itemName = "piece of massacre's shell", clientId = 6540, sell = 50000 },
+ { itemName = "piece of scarab shell", clientId = 9641, sell = 45 },
+ { itemName = "piece of swampling wood", clientId = 17823, sell = 30 },
+ { itemName = "piece of timira's sensors", clientId = 39400, sell = 150000 },
+ { itemName = "piece of warrior armor", clientId = 11482, sell = 50 },
+ { itemName = "pieces of magic chalk", clientId = 18930, sell = 210 },
+ { itemName = "pig foot", clientId = 9693, sell = 10 },
+ { itemName = "pile of grave earth", clientId = 11484, sell = 25 },
+ { itemName = "pirat's tail", clientId = 35573, sell = 180 },
+ { itemName = "plagueroot offshoot", clientId = 30087, sell = 280000 },
+ { itemName = "plasmatic lightning", clientId = 23520, sell = 270 },
+ { itemName = "poison gland", clientId = 29348, sell = 210 },
+ { itemName = "poison spider shell", clientId = 11485, sell = 10 },
+ { itemName = "poisoned fang", clientId = 21195, sell = 130 },
+ { itemName = "poisonous slime", clientId = 9640, sell = 50 },
+ { itemName = "polar bear paw", clientId = 9650, sell = 30 },
+ { itemName = "pool of chitinous glue", clientId = 20207, sell = 480 },
+ { itemName = "porcelain mask", clientId = 25088, sell = 2000 },
+ { itemName = "powder herb", clientId = 3739, sell = 10 },
+ { itemName = "prehemoth claw", clientId = 39383, sell = 2300 },
+ { itemName = "prehemoth horns", clientId = 39382, sell = 3000 },
+ { itemName = "pristine worm head", clientId = 27618, sell = 15000 },
+ { itemName = "protective charm", clientId = 11444, sell = 60 },
+ { itemName = "pulverized ore", clientId = 16133, sell = 400 },
+ { itemName = "purified soul", clientId = 32228, sell = 260 },
+ { itemName = "purple robe", clientId = 11473, sell = 110 },
+ { itemName = "quara bone", clientId = 11491, sell = 500 },
+ { itemName = "quara eye", clientId = 11488, sell = 350 },
+ { itemName = "quara pincers", clientId = 11490, sell = 410 },
+ { itemName = "quara tentacle", clientId = 11487, sell = 140 },
+ { itemName = "quill", clientId = 28567, sell = 1100 },
+ { itemName = "rabbit's foot", clientId = 12172, sell = 50 },
+ { itemName = "rare earth", clientId = 27301, sell = 80 },
+ { itemName = "ratmiral's hat", clientId = 35613, sell = 150000 },
+ { itemName = "ravenous circlet", clientId = 32597, sell = 220000 },
+ { itemName = "red goanna scale", clientId = 31558, sell = 270 },
+ { itemName = "red hair dye", clientId = 17855, sell = 40 },
+ { itemName = "red lantern", clientId = 10289, sell = 250 },
+ { itemName = "rhindeer antlers", clientId = 40587, sell = 680 },
+ { itemName = "rhino hide", clientId = 24388, sell = 175 },
+ { itemName = "rhino horn carving", clientId = 24386, sell = 300 },
+ { itemName = "rhino horn", clientId = 24389, sell = 265 },
+ { itemName = "ripptor claw", clientId = 39389, sell = 2000 },
+ { itemName = "ripptor scales", clientId = 39391, sell = 1200 },
+ { itemName = "ritual tooth", clientId = 40528, sell = 135 },
+ { itemName = "rogue naga scales", clientId = 39416, sell = 570 },
+ { itemName = "roots", clientId = 33938, sell = 1200 },
+ { itemName = "rope belt", clientId = 11492, sell = 66 },
+ { itemName = "rorc egg", clientId = 18996, sell = 120 },
+ { itemName = "rorc feather", clientId = 18993, sell = 70 },
+ { itemName = "rotten feather", clientId = 40527, sell = 120 },
+ { itemName = "rotten heart", clientId = 31589, sell = 74000 },
+ { itemName = "rotten piece of cloth", clientId = 10291, sell = 30 },
+ { itemName = "sabretooth fur", clientId = 39378, sell = 2500 },
+ { itemName = "sabretooth", clientId = 10311, sell = 400 },
+ { itemName = "safety pin", clientId = 11493, sell = 120 },
+ { itemName = "sample of monster blood", clientId = 27874, sell = 250 },
+ { itemName = "sandcrawler shell", clientId = 10456, sell = 20 },
+ { itemName = "scale of corruption", clientId = 11673, sell = 680 },
+ { itemName = "scale of gelidrazah", clientId = 24939, sell = 10000 },
+ { itemName = "scorpion charm", clientId = 36822, sell = 620 },
+ { itemName = "scorpion tail", clientId = 9651, sell = 25 },
+ { itemName = "scroll of heroic deeds", clientId = 11510, sell = 230 },
+ { itemName = "scythe leg", clientId = 10312, sell = 450 },
+ { itemName = "scarab pincers", clientId = 9631, sell = 280 },
+ { itemName = "sea serpent scale", clientId = 9666, sell = 520 },
+ { itemName = "seacrest hair", clientId = 21801, sell = 260 },
+ { itemName = "seacrest scale", clientId = 21800, sell = 150 },
+ { itemName = "seeds", clientId = 647, sell = 150 },
+ { itemName = "shadow herb", clientId = 3740, sell = 20 },
+ { itemName = "shaggy tail", clientId = 10407, sell = 25 },
+ { itemName = "shamanic hood", clientId = 11478, sell = 45 },
+ { itemName = "shamanic mask", clientId = 22192, sell = 2000 },
+ { itemName = "shamanic talisman", clientId = 22184, sell = 200 },
+ { itemName = "shark fins", clientId = 35574, sell = 250 },
+ { itemName = "shimmering beetles", clientId = 25693, sell = 150 },
+ { itemName = "sight of surrender's eye", clientId = 20183, sell = 3000 },
+ { itemName = "silencer claws", clientId = 20200, sell = 390 },
+ { itemName = "silencer resonating chamber", clientId = 20201, sell = 600 },
+ { itemName = "silken bookmark", clientId = 28566, sell = 1300 },
+ { itemName = "silky fur", clientId = 10292, sell = 35 },
+ { itemName = "single human eye", clientId = 25701, sell = 1000 },
+ { itemName = "skull belt", clientId = 11480, sell = 80 },
+ { itemName = "skull fetish", clientId = 22191, sell = 250 },
+ { itemName = "skull shatterer", clientId = 17849, sell = 170 },
+ { itemName = "skunk tail", clientId = 10274, sell = 50 },
+ { itemName = "slime heart", clientId = 21194, sell = 160 },
+ { itemName = "slime mould", clientId = 12601, sell = 175 },
+ { itemName = "slimy leaf tentacle", clientId = 21197, sell = 320 },
+ { itemName = "slimy leg", clientId = 27623, sell = 4500 },
+ { itemName = "sling herb", clientId = 3738, sell = 10 },
+ { itemName = "small energy ball", clientId = 23524, sell = 250 },
+ { itemName = "small flask of eyedrops", clientId = 11512, sell = 95 },
+ { itemName = "small notebook", clientId = 11450, sell = 480 },
+ { itemName = "small oil lamp", clientId = 2933, sell = 150 },
+ { itemName = "small pitchfork", clientId = 11513, sell = 70 },
+ { itemName = "small tropical fish", clientId = 39408, sell = 380 },
+ { itemName = "smoldering eye", clientId = 39543, sell = 470000 },
+ { itemName = "snake skin", clientId = 9694, sell = 400 },
+ { itemName = "solid rage", clientId = 23517, sell = 310 },
+ { itemName = "some grimeleech wings", clientId = 22730, sell = 1200 },
+ { itemName = "spark sphere", clientId = 23518, sell = 350 },
+ { itemName = "sparkion claw", clientId = 23502, sell = 290 },
+ { itemName = "sparkion legs", clientId = 23504, sell = 310 },
+ { itemName = "sparkion stings", clientId = 23505, sell = 280 },
+ { itemName = "sparkion tail", clientId = 23503, sell = 300 },
+ { itemName = "spellsinger's seal", clientId = 14008, sell = 280 },
+ { itemName = "sphinx feather", clientId = 31437, sell = 470 },
+ { itemName = "sphinx tiara", clientId = 31438, sell = 360 },
+ { itemName = "spider fangs", clientId = 8031, sell = 10 },
+ { itemName = "spidris mandible", clientId = 14082, sell = 450 },
+ { itemName = "spiked iron ball", clientId = 10408, sell = 100 },
+ { itemName = "spiky club", clientId = 17859, sell = 300 },
+ { itemName = "spite's spirit", clientId = 33926, sell = 840000 },
+ { itemName = "spitter nose", clientId = 14078, sell = 340 },
+ { itemName = "spooky blue eye", clientId = 9642, sell = 95 },
+ { itemName = "srezz' eye", clientId = 34103, sell = 300 },
+ { itemName = "stalking seeds", clientId = 39384, sell = 1800 },
+ { itemName = "stampor horn", clientId = 12312, sell = 280 },
+ { itemName = "stampor talons", clientId = 12313, sell = 150 },
+ { itemName = "star herb", clientId = 3736, sell = 15 },
+ { itemName = "stone herb", clientId = 3735, sell = 20 },
+ { itemName = "stone nose", clientId = 16137, sell = 590 },
+ { itemName = "stone wing", clientId = 10278, sell = 120 },
+ { itemName = "stonerefiner's skull", clientId = 27606, sell = 100 },
+ { itemName = "strand of medusa hair", clientId = 10309, sell = 600 },
+ { itemName = "strange proto matter", clientId = 23513, sell = 300 },
+ { itemName = "strange symbol", clientId = 3058, sell = 200 },
+ { itemName = "strange talisman", clientId = 3045, sell = 30, count = 200 },
+ { itemName = "streaked devourer eyes", clientId = 36772, sell = 500 },
+ { itemName = "streaked devourer legs", clientId = 36774, sell = 600 },
+ { itemName = "streaked devourer maw", clientId = 36773, sell = 400 },
+ { itemName = "striped fur", clientId = 10293, sell = 50 },
+ { itemName = "sulphider shell", clientId = 39375, sell = 2200 },
+ { itemName = "sulphur powder", clientId = 39376, sell = 1900 },
+ { itemName = "sulphurous stone", clientId = 10315, sell = 100 },
+ { itemName = "summer dress", clientId = 8046, sell = 1500 },
+ { itemName = "sun brooch", clientId = 43737, sell = 18000 },
+ { itemName = "swamp grass", clientId = 9686, sell = 20 },
+ { itemName = "swampling club", clientId = 17824, sell = 40 },
+ { itemName = "swampling moss", clientId = 17822, sell = 20 },
+ { itemName = "swarmer antenna", clientId = 14076, sell = 130 },
+ { itemName = "tail of corruption", clientId = 11672, sell = 240 },
+ { itemName = "tarantula egg", clientId = 10281, sell = 80 },
+ { itemName = "tarnished rhino figurine", clientId = 24387, sell = 320 },
+ { itemName = "tattered piece of robe", clientId = 9684, sell = 120 },
+ { itemName = "telescope eye", clientId = 33934, sell = 1600 },
+ { itemName = "tentacle of tentugly", clientId = 35611, sell = 27000 },
+ { itemName = "tentacle piece", clientId = 11666, sell = 5000 },
+ { itemName = "tentugly's eye", clientId = 35610, sell = 52000 },
+ { itemName = "tentugly's jaws", clientId = 35612, sell = 80000 },
+ { itemName = "terramite eggs", clientId = 10453, sell = 50 },
+ { itemName = "terramite legs", clientId = 10454, sell = 60 },
+ { itemName = "terramite shell", clientId = 10452, sell = 170 },
+ { itemName = "terrorbird beak", clientId = 10273, sell = 95 },
+ { itemName = "the handmaiden's protector", clientId = 6539, sell = 50000 },
+ { itemName = "the imperor's trident", clientId = 6534, sell = 50000 },
+ { itemName = "the plasmother's remains", clientId = 6535, sell = 50000 },
+ { itemName = "thick fur", clientId = 10307, sell = 150 },
+ { itemName = "thorn", clientId = 9643, sell = 100 },
+ { itemName = "tiger eye", clientId = 24961, sell = 350 },
+ { itemName = "token of love", clientId = 31594, sell = 440000 },
+ { itemName = "tooth file", clientId = 18924, sell = 60 },
+ { itemName = "tooth of tazhadur", clientId = 24940, sell = 10000 },
+ { itemName = "torn shirt", clientId = 25744, sell = 250 },
+ { itemName = "trapped bad dream monster", clientId = 20203, sell = 900 },
+ { itemName = "tremendous tyrant head", clientId = 36783, sell = 930 },
+ { itemName = "tremendous tyrant shell", clientId = 36784, sell = 740 },
+ { itemName = "tribal mask", clientId = 3403, sell = 250 },
+ { itemName = "troll green", clientId = 3741, sell = 25 },
+ { itemName = "trollroot", clientId = 11515, sell = 50 },
+ { itemName = "tunnel tyrant head", clientId = 27595, sell = 500 },
+ { itemName = "tunnel tyrant shell", clientId = 27596, sell = 700 },
+ { itemName = "tusk", clientId = 3044, sell = 100 },
+ { itemName = "two-headed turtle heads", clientId = 39409, sell = 460 },
+ { itemName = "undead heart", clientId = 10450, sell = 200 },
+ { itemName = "undertaker fangs", clientId = 39380, sell = 2700 },
+ { itemName = "unholy bone", clientId = 10316, sell = 480 },
+ { itemName = "unholy book", clientId = 6103, sell = 30000 },
+ { itemName = "urmahlullus mane", clientId = 31623, sell = 490000 },
+ { itemName = "urmahlullus paws", clientId = 31624, sell = 245000 },
+ { itemName = "urmahlullus tail", clientId = 31622, sell = 210000 },
+ { itemName = "utua's poison", clientId = 34101, sell = 230 },
+ { itemName = "vampire teeth", clientId = 9685, sell = 275 },
+ { itemName = "vampire's cape chain", clientId = 18927, sell = 150 },
+ { itemName = "varnished diremaw brainpan", clientId = 36781, sell = 750 },
+ { itemName = "varnished diremaw legs", clientId = 36782, sell = 670 },
+ { itemName = "veal", clientId = 32009, sell = 40 },
+ { itemName = "vein of ore", clientId = 16135, sell = 330 },
+ { itemName = "venison", clientId = 18995, sell = 55 },
+ { itemName = "vexclaw talon", clientId = 22728, sell = 1100 },
+ { itemName = "vial of hatred", clientId = 33927, sell = 737000 },
+ { itemName = "vibrant heart", clientId = 34143, sell = 2100 },
+ { itemName = "vibrant robe", clientId = 34144, sell = 1200 },
+ { itemName = "violet glass plate", clientId = 29347, sell = 2150 },
+ { itemName = "volatile proto matter", clientId = 23514, sell = 300 },
+ { itemName = "war horn", clientId = 2958, sell = 8000 },
+ { itemName = "warmaster's wristguards", clientId = 10405, sell = 200 },
+ { itemName = "warwolf fur", clientId = 10318, sell = 30 },
+ { itemName = "waspoid claw", clientId = 14080, sell = 320 },
+ { itemName = "waspoid wing", clientId = 14081, sell = 190 },
+ { itemName = "weaver's wandtip", clientId = 10397, sell = 250 },
+ { itemName = "werebadger claws", clientId = 22051, sell = 160 },
+ { itemName = "werebadger skull", clientId = 22055, sell = 185 },
+ { itemName = "werebear fur", clientId = 22057, sell = 185 },
+ { itemName = "werebear skull", clientId = 22056, sell = 195 },
+ { itemName = "wereboar hooves", clientId = 22053, sell = 175 },
+ { itemName = "wereboar tusk", clientId = 22054, sell = 165 },
+ { itemName = "werecrocodile tongue", clientId = 43729, sell = 570 },
+ { itemName = "werefox tail", clientId = 27463, sell = 200 },
+ { itemName = "werehyaena nose", clientId = 33943, sell = 220 },
+ { itemName = "werehyaena talisman", clientId = 33944, sell = 350 },
+ { itemName = "werepanther claw", clientId = 43731, sell = 280 },
+ { itemName = "weretiger tooth", clientId = 43730, sell = 490 },
+ { itemName = "werewolf fangs", clientId = 22052, sell = 180 },
+ { itemName = "werewolf fur", clientId = 10317, sell = 380 },
+ { itemName = "white deer antlers", clientId = 12544, sell = 400 },
+ { itemName = "white deer skin", clientId = 12545, sell = 245 },
+ { itemName = "white silk flower", clientId = 34008, sell = 9000 },
+ { itemName = "widow's mandibles", clientId = 10411, sell = 110 },
+ { itemName = "wild flowers", clientId = 25691, sell = 120 },
+ { itemName = "wimp tooth chain", clientId = 17847, sell = 120 },
+ { itemName = "winged tail", clientId = 10313, sell = 800 },
+ { itemName = "winter wolf fur", clientId = 10295, sell = 20 },
+ { itemName = "witch broom", clientId = 9652, sell = 60 },
+ { itemName = "withered pauldrons", clientId = 27607, sell = 850 },
+ { itemName = "withered scalp", clientId = 27608, sell = 900 },
+ { itemName = "wood", clientId = 5901, sell = 5 },
+ { itemName = "wool", clientId = 10319, sell = 15 },
+ { itemName = "writhing brain", clientId = 32600, sell = 370000 },
+ { itemName = "writhing heart", clientId = 32599, sell = 185000 },
+ { itemName = "wyrm scale", clientId = 9665, sell = 400 },
+ { itemName = "wyvern talisman", clientId = 9644, sell = 265 },
+ { itemName = "yielocks", clientId = 12805, sell = 600 },
+ { itemName = "yielowax", clientId = 12742, sell = 600 },
+ { itemName = "yirkas' egg", clientId = 34102, sell = 280 },
+ { itemName = "young lich worm", clientId = 31590, sell = 25000 },
+ { itemName = "zaogun flag", clientId = 10413, sell = 600 },
+ { itemName = "zaogun's shoulderplates", clientId = 10414, sell = 150 },
+ },
+
+ ["equipment"] = {
+ { itemName = "abyss hammer", clientId = 7414, sell = 20000 },
+ { itemName = "albino plate", clientId = 19358, sell = 1500 },
+ { itemName = "alloy legs", clientId = 21168, sell = 11000 },
+ { itemName = "amber staff", clientId = 7426, sell = 8000 },
+ { itemName = "ancient shield", clientId = 3432, sell = 900 },
+ { itemName = "angelic axe", clientId = 7436, sell = 5000 },
+ { itemName = "arbalest", clientId = 5803, sell = 42000 },
+ { itemName = "arcane staff", clientId = 3341, sell = 42000 },
+ { itemName = "assassin dagger", clientId = 7404, sell = 20000 },
+ { itemName = "axe", clientId = 3274, sell = 7 },
+ { itemName = "badger boots", clientId = 22086, sell = 7500 },
+ { itemName = "bandana", clientId = 5917, sell = 150 },
+ { itemName = "battle axe", clientId = 3266, sell = 80 },
+ { itemName = "battle hammer", clientId = 3305, sell = 120 },
+ { itemName = "battle shield", clientId = 3413, sell = 95 },
+ { itemName = "batwing hat", clientId = 9103, sell = 8000 },
+ { itemName = "beastslayer axe", clientId = 3344, sell = 1500 },
+ { itemName = "belted cape", clientId = 8044, sell = 500 },
+ { itemName = "black shield", clientId = 3429, sell = 800 },
+ { itemName = "blacksteel sword", clientId = 7406, sell = 6000 },
+ { itemName = "blade of corruption", clientId = 11693, sell = 60000 },
+ { itemName = "blessed sceptre", clientId = 7429, sell = 40000 },
+ { itemName = "bloody edge", clientId = 7416, sell = 30000 },
+ { itemName = "blue legs", clientId = 645, sell = 15000 },
+ { itemName = "blue robe", clientId = 3567, sell = 10000 },
+ { itemName = "bone club", clientId = 3337, sell = 5 },
+ { itemName = "bone shield", clientId = 3441, sell = 80 },
+ { itemName = "bone sword", clientId = 3338, sell = 20 },
+ { itemName = "bonebreaker", clientId = 7428, sell = 10000 },
+ { itemName = "bonelord helmet", clientId = 3408, sell = 7500 },
+ { itemName = "bonelord shield", clientId = 3418, sell = 1200 },
+ { itemName = "boots of haste", clientId = 3079, sell = 30000 },
+ { itemName = "brass armor", clientId = 3359, sell = 150 },
+ { itemName = "brass helmet", clientId = 3354, sell = 30 },
+ { itemName = "brass legs", clientId = 3372, sell = 49 },
+ { itemName = "brass shield", clientId = 3411, sell = 25 },
+ { itemName = "bright sword", clientId = 3295, sell = 6000 },
+ { itemName = "broadsword", clientId = 3301, sell = 500 },
+ { itemName = "butcher's axe", clientId = 7412, sell = 18000 },
+ { itemName = "butterfly ring", clientId = 25698, sell = 2000 },
+ { itemName = "calopteryx cape", clientId = 14086, sell = 15000 },
+ { itemName = "carapace shield", clientId = 14088, sell = 32000 },
+ { itemName = "carlin sword", clientId = 3283, sell = 118 },
+ { itemName = "castle shield", clientId = 3435, sell = 5000 },
+ { itemName = "chain armor", clientId = 3358, sell = 70 },
+ { itemName = "chain bolter", clientId = 8022, sell = 40000 },
+ { itemName = "chain helmet", clientId = 3352, sell = 17 },
+ { itemName = "chain legs", clientId = 3558, sell = 25 },
+ { itemName = "chaos mace", clientId = 7427, sell = 9000 },
+ { itemName = "claw of 'the noxious spawn'", clientId = 9392, sell = 15000 },
+ { itemName = "club", clientId = 3270, sell = 1 },
+ { itemName = "coat", clientId = 3562, sell = 1 },
+ { itemName = "cobra crown", clientId = 11674, sell = 50000 },
+ { itemName = "coconut shoes", clientId = 9017, sell = 500 },
+ { itemName = "composite hornbow", clientId = 8027, sell = 25000 },
+ { itemName = "copper shield", clientId = 3430, sell = 50 },
+ { itemName = "cowtana", clientId = 21177, sell = 2500 },
+ { itemName = "cranial basher", clientId = 7415, sell = 30000 },
+ { itemName = "crocodile boots", clientId = 3556, sell = 1000 },
+ { itemName = "crowbar", clientId = 3304, sell = 50 },
+ { itemName = "crown armor", clientId = 3381, sell = 12000 },
+ { itemName = "crown helmet", clientId = 3385, sell = 2500 },
+ { itemName = "crown legs", clientId = 3382, sell = 12000 },
+ { itemName = "crown shield", clientId = 3419, sell = 8000 },
+ { itemName = "crusader helmet", clientId = 3391, sell = 6000 },
+ { itemName = "crystal crossbow", clientId = 16163, sell = 35000 },
+ { itemName = "crystal mace", clientId = 3333, sell = 12000 },
+ { itemName = "crystal ring", clientId = 3007, sell = 250 },
+ { itemName = "crystal sword", clientId = 7449, sell = 600 },
+ { itemName = "crystal wand", clientId = 3068, sell = 10000 },
+ { itemName = "crystalline armor", clientId = 8050, sell = 16000 },
+ { itemName = "crystalline axe", clientId = 16161, sell = 10000 },
+ { itemName = "crystalline spikes", clientId = 16138, sell = 440 },
+ { itemName = "crystalline sword", clientId = 16160, sell = 2000 },
+ { itemName = "dagger", clientId = 3267, sell = 2 },
+ { itemName = "daramian mace", clientId = 3327, sell = 110 },
+ { itemName = "daramian waraxe", clientId = 3328, sell = 1000 },
+ { itemName = "dark armor", clientId = 3383, sell = 400 },
+ { itemName = "dark helmet", clientId = 3384, sell = 250 },
+ { itemName = "dark shield", clientId = 3421, sell = 400 },
+ { itemName = "death ring", clientId = 6299, sell = 1000 },
+ { itemName = "deepling axe", clientId = 13991, sell = 40000 },
+ { itemName = "deepling squelcher", clientId = 14250, sell = 7000 },
+ { itemName = "deepling staff", clientId = 13987, sell = 4000 },
+ { itemName = "demon helmet", clientId = 3387, sell = 40000 },
+ { itemName = "demon shield", clientId = 3420, sell = 30000 },
+ { itemName = "demonbone amulet", clientId = 3019, sell = 32000 },
+ { itemName = "demonrage sword", clientId = 7382, sell = 36000 },
+ { itemName = "depth calcei", clientId = 13997, sell = 25000 },
+ { itemName = "depth galea", clientId = 13995, sell = 35000 },
+ { itemName = "depth lorica", clientId = 13994, sell = 30000 },
+ { itemName = "depth ocrea", clientId = 13996, sell = 16000 },
+ { itemName = "depth scutum", clientId = 13998, sell = 36000 },
+ { itemName = "devil helmet", clientId = 3356, sell = 1000 },
+ { itemName = "diamond sceptre", clientId = 7387, sell = 3000 },
+ { itemName = "divine plate", clientId = 8057, sell = 55000 },
+ { itemName = "djinn blade", clientId = 3339, sell = 15000 },
+ { itemName = "double axe", clientId = 3275, sell = 260 },
+ { itemName = "doublet", clientId = 3379, sell = 3 },
+ { itemName = "drachaku", clientId = 10391, sell = 10000 },
+ { itemName = "dragon hammer", clientId = 3322, sell = 2000 },
+ { itemName = "dragon lance", clientId = 3302, sell = 9000 },
+ { itemName = "dragon robe", clientId = 8039, sell = 50000 },
+ { itemName = "dragon scale mail", clientId = 3386, sell = 40000 },
+ { itemName = "dragon shield", clientId = 3416, sell = 4000 },
+ { itemName = "dragon slayer", clientId = 7402, sell = 15000 },
+ { itemName = "dragonbone staff", clientId = 7430, sell = 3000 },
+ { itemName = "draken boots", clientId = 4033, sell = 40000 },
+ { itemName = "drakinata", clientId = 10388, sell = 10000 },
+ { itemName = "dream essence egg", clientId = 30005, sell = 205 },
+ { itemName = "dung ball", clientId = 14225, sell = 130 },
+ { itemName = "dreaded cleaver", clientId = 7419, sell = 15000 },
+ { itemName = "dream blossom staff", clientId = 25700, sell = 5000 },
+ { itemName = "dwarven armor", clientId = 3397, sell = 30000 },
+ { itemName = "dwarven axe", clientId = 3323, sell = 1500 },
+ { itemName = "dwarven legs", clientId = 3398, sell = 40000 },
+ { itemName = "dwarven shield", clientId = 3425, sell = 100 },
+ { itemName = "elite draken mail", clientId = 11651, sell = 50000 },
+ { itemName = "elvish bow", clientId = 7438, sell = 2000 },
+ { itemName = "epee", clientId = 3326, sell = 8000 },
+ { itemName = "execowtioner axe", clientId = 21176, sell = 12000 },
+ { itemName = "executioner", clientId = 7453, sell = 55000 },
+ { itemName = "fire axe", clientId = 3320, sell = 8000 },
+ { itemName = "fire sword", clientId = 3280, sell = 4000 },
+ { itemName = "fishing rod", clientId = 3483, sell = 40 },
+ { itemName = "focus cape", clientId = 8043, sell = 6000 },
+ { itemName = "fur armor", clientId = 22085, sell = 5000 },
+ { itemName = "fur boots", clientId = 7457, sell = 2000 },
+ { itemName = "furry club", clientId = 7432, sell = 1000 },
+ { itemName = "giant sword", clientId = 3281, sell = 17000 },
+ { itemName = "glacial rod", clientId = 16118, sell = 6500 },
+ { itemName = "glacier amulet", clientId = 815, sell = 1500 },
+ { itemName = "glacier kilt", clientId = 823, sell = 11000 },
+ { itemName = "glacier mask", clientId = 829, sell = 2500 },
+ { itemName = "glacier robe", clientId = 824, sell = 11000 },
+ { itemName = "glacier shoes", clientId = 819, sell = 2500 },
+ { itemName = "glooth axe", clientId = 21180, sell = 1500 },
+ { itemName = "glooth blade", clientId = 21179, sell = 1500 },
+ { itemName = "glooth cap", clientId = 21164, sell = 7000 },
+ { itemName = "glooth club", clientId = 21178, sell = 1500 },
+ { itemName = "glooth whip", clientId = 21172, sell = 2500 },
+ { itemName = "glorious axe", clientId = 7454, sell = 3000 },
+ { itemName = "golden armor", clientId = 3360, sell = 20000 },
+ { itemName = "golden legs", clientId = 3364, sell = 30000 },
+ { itemName = "greenwood coat", clientId = 8041, sell = 50000 },
+ { itemName = "griffin shield", clientId = 3433, sell = 3000 },
+ { itemName = "guardian axe", clientId = 14043, sell = 9000 },
+ { itemName = "guardian boots", clientId = 10323, sell = 35000 },
+ { itemName = "guardian halberd", clientId = 3315, sell = 11000 },
+ { itemName = "guardian shield", clientId = 3415, sell = 2000 },
+ { itemName = "hailstorm rod", clientId = 3067, sell = 3000 },
+ { itemName = "halberd", clientId = 3269, sell = 400 },
+ { itemName = "hammer of wrath", clientId = 3332, sell = 30000 },
+ { itemName = "hand axe", clientId = 3268, sell = 4 },
+ { itemName = "hatchet", clientId = 3276, sell = 25 },
+ { itemName = "haunted blade", clientId = 7407, sell = 8000 },
+ { itemName = "headchopper", clientId = 7380, sell = 6000 },
+ { itemName = "heat core", clientId = 21167, sell = 10000 },
+ { itemName = "heavy trident", clientId = 12683, sell = 2000 },
+ { itemName = "heavy mace", clientId = 3340, sell = 50000 },
+ { itemName = "helmet of the lost", clientId = 17852, sell = 2000 },
+ { itemName = "heroic axe", clientId = 7389, sell = 30000 },
+ { itemName = "hibiscus dress", clientId = 8045, sell = 3000 },
+ { itemName = "hive bow", clientId = 14246, sell = 28000 },
+ { itemName = "hive scythe", clientId = 14089, sell = 17000 },
+ { itemName = "ice rapier", clientId = 3284, sell = 1000 },
+ { itemName = "iron helmet", clientId = 3353, sell = 150 },
+ { itemName = "jade hammer", clientId = 7422, sell = 25000 },
+ { itemName = "jade hat", clientId = 10451, sell = 9000 },
+ { itemName = "jagged sickle", clientId = 32595, sell = 150000 },
+ { itemName = "katana", clientId = 3300, sell = 35 },
+ { itemName = "knight armor", clientId = 3370, sell = 5000 },
+ { itemName = "knight axe", clientId = 3318, sell = 2000 },
+ { itemName = "knight legs", clientId = 3371, sell = 5000 },
+ { itemName = "krimhorn helmet", clientId = 7461, sell = 200 },
+ { itemName = "lavos armor", clientId = 8049, sell = 16000 },
+ { itemName = "leaf legs", clientId = 9014, sell = 500 },
+ { itemName = "leaf star", clientId = 25735, sell = 50 },
+ { itemName = "leather armor", clientId = 3361, sell = 12 },
+ { itemName = "leather boots", clientId = 3552, sell = 2 },
+ { itemName = "leather helmet", clientId = 3355, sell = 4 },
+ { itemName = "leather legs", clientId = 3559, sell = 9 },
+ { itemName = "legion helmet", clientId = 3374, sell = 22 },
+ { itemName = "leopard armor", clientId = 3404, sell = 1000 },
+ { itemName = "life preserver", clientId = 17813, sell = 300 },
+ { itemName = "light shovel", clientId = 5710, sell = 300 },
+ { itemName = "lightning boots", clientId = 820, sell = 2500 },
+ { itemName = "lightning headband", clientId = 828, sell = 2500 },
+ { itemName = "lightning legs", clientId = 822, sell = 11000 },
+ { itemName = "lightning pendant", clientId = 816, sell = 1500 },
+ { itemName = "lightning robe", clientId = 825, sell = 11000 },
+ { itemName = "longsword", clientId = 3285, sell = 51 },
+ { itemName = "lunar staff", clientId = 7424, sell = 5000 },
+ { itemName = "mace", clientId = 3286, sell = 30 },
+ { itemName = "machete", clientId = 3308, sell = 6 },
+ { itemName = "magic plate armor", clientId = 3366, sell = 90000 },
+ { itemName = "magma boots", clientId = 818, sell = 2500 },
+ { itemName = "magma legs", clientId = 821, sell = 11000 },
+ { itemName = "magma monocle", clientId = 827, sell = 2500 },
+ { itemName = "mammoth fur cape", clientId = 7463, sell = 6000 },
+ { itemName = "mammoth fur shorts", clientId = 7464, sell = 850 },
+ { itemName = "mammoth whopper", clientId = 7381, sell = 300 },
+ { itemName = "mastermind shield", clientId = 3414, sell = 50000 },
+ { itemName = "meat hammer", clientId = 32093, sell = 60 },
+ { itemName = "medusa shield", clientId = 3436, sell = 9000 },
+ { itemName = "mercenary sword", clientId = 7386, sell = 12000 },
+ { itemName = "mercurial wing", clientId = 39395, sell = 2500 },
+ { itemName = "metal bat", clientId = 21171, sell = 9000 },
+ { itemName = "metal jaw", clientId = 21193, sell = 260 },
+ { itemName = "metal spats", clientId = 21169, sell = 2000 },
+ { itemName = "mino lance", clientId = 21174, sell = 7000 },
+ { itemName = "mino shield", clientId = 21175, sell = 3000 },
+ { itemName = "modified crossbow", clientId = 8021, sell = 10000 },
+ { itemName = "mooh'tah plate", clientId = 21166, sell = 6000 },
+ { itemName = "moohtant cudgel", clientId = 21173, sell = 14000 },
+ { itemName = "moonlight rod", clientId = 3070, sell = 200 },
+ { itemName = "morning star", clientId = 3282, sell = 100 },
+ { itemName = "muck rod", clientId = 16117, sell = 6000 },
+ { itemName = "mycological bow", clientId = 16164, sell = 35000 },
+ { itemName = "mystic blade", clientId = 7384, sell = 30000 },
+ { itemName = "mystic turban", clientId = 3574, sell = 150 },
+ { itemName = "naginata", clientId = 3314, sell = 2000 },
+ { itemName = "necrotic rod", clientId = 3069, sell = 1000 },
+ { itemName = "nightmare blade", clientId = 7418, sell = 35000 },
+ { itemName = "noble armor", clientId = 3380, sell = 900 },
+ { itemName = "noble axe", clientId = 7456, sell = 10000 },
+ { itemName = "noble cape", clientId = 31593, sell = 425000 },
+ { itemName = "noble turban", clientId = 11486, sell = 430 },
+ { itemName = "norse shield", clientId = 7460, sell = 1500 },
+ { itemName = "northwind rod", clientId = 8083, sell = 1500 },
+ { itemName = "obsidian lance", clientId = 3313, sell = 500 },
+ { itemName = "ogre choppa", clientId = 22172, sell = 1500 },
+ { itemName = "ogre klubba", clientId = 22171, sell = 2500 },
+ { itemName = "ogre scepta", clientId = 22183, sell = 3600 },
+ { itemName = "onyx flail", clientId = 7421, sell = 22000 },
+ { itemName = "orcish axe", clientId = 3316, sell = 350 },
+ { itemName = "orcish maul", clientId = 7392, sell = 6000 },
+ { itemName = "oriental shoes", clientId = 21981, sell = 15000 },
+ { itemName = "ornamented axe", clientId = 7411, sell = 20000 },
+ { itemName = "ornamented shield", clientId = 3424, sell = 1500 },
+ { itemName = "ornate chestplate", clientId = 13993, sell = 60000 },
+ { itemName = "ornate crossbow", clientId = 14247, sell = 12000 },
+ { itemName = "ornate legs", clientId = 13999, sell = 40000 },
+ { itemName = "ornate mace", clientId = 14001, sell = 42000 },
+ { itemName = "ornate shield", clientId = 14000, sell = 42000 },
+ { itemName = "paladin armor", clientId = 8063, sell = 15000 },
+ { itemName = "patched boots", clientId = 3550, sell = 2000 },
+ { itemName = "pharaoh sword", clientId = 3334, sell = 23000 },
+ { itemName = "phoenix shield", clientId = 3439, sell = 16000 },
+ { itemName = "pick", clientId = 3456, sell = 15 },
+ { itemName = "plate armor", clientId = 3357, sell = 400 },
+ { itemName = "plate legs", clientId = 3557, sell = 115 },
+ { itemName = "plate shield", clientId = 3410, sell = 45 },
+ { itemName = "platinum amulet", clientId = 3055, sell = 2500 },
+ { itemName = "poison dagger", clientId = 3299, sell = 50 },
+ { itemName = "queen's sceptre", clientId = 7410, sell = 20000 },
+ { itemName = "ragnir helmet", clientId = 7462, sell = 400 },
+ { itemName = "rapier", clientId = 3272, sell = 5 },
+ { itemName = "ratana", clientId = 17812, sell = 500 },
+ { itemName = "relic sword", clientId = 7383, sell = 25000 },
+ { itemName = "rift bow", clientId = 22866, sell = 45000 },
+ { itemName = "rift crossbow", clientId = 22867, sell = 45000 },
+ { itemName = "rift lance", clientId = 22727, sell = 30000 },
+ { itemName = "rift shield", clientId = 22726, sell = 50000 },
+ { itemName = "ripper lance", clientId = 3346, sell = 500 },
+ { itemName = "rod", clientId = 33929, sell = 2200 },
+ { itemName = "rope", clientId = 3003, sell = 15 },
+ { itemName = "royal axe", clientId = 7434, sell = 40000 },
+ { itemName = "royal helmet", clientId = 3392, sell = 30000 },
+ { itemName = "rubber cap", clientId = 21165, sell = 11000 },
+ { itemName = "runed sword", clientId = 7417, sell = 45000 },
+ { itemName = "ruthless axe", clientId = 6553, sell = 45000 },
+ { itemName = "sabre", clientId = 3273, sell = 12 },
+ { itemName = "sai", clientId = 10389, sell = 16500 },
+ { itemName = "sapphire hammer", clientId = 7437, sell = 7000 },
+ { itemName = "scale armor", clientId = 3377, sell = 75 },
+ { itemName = "scarab shield", clientId = 3440, sell = 2000 },
+ { itemName = "scimitar", clientId = 3307, sell = 150 },
+ { itemName = "scythe", clientId = 3453, sell = 10 },
+ { itemName = "serpent sword", clientId = 3297, sell = 900 },
+ { itemName = "shadow sceptre", clientId = 7451, sell = 10000 },
+ { itemName = "short sword", clientId = 3294, sell = 10 },
+ { itemName = "shovel", clientId = 3457, sell = 8 },
+ { itemName = "sickle", clientId = 3293, sell = 3 },
+ { itemName = "silkweaver bow", clientId = 8029, sell = 12000 },
+ { itemName = "silver dagger", clientId = 3290, sell = 500 },
+ { itemName = "skull helmet", clientId = 5741, sell = 40000 },
+ { itemName = "skull staff", clientId = 3324, sell = 6000 },
+ { itemName = "skullcracker armor", clientId = 8061, sell = 18000 },
+ { itemName = "small axe", clientId = 3462, sell = 5 },
+ { itemName = "snakebite rod", clientId = 3066, sell = 100 },
+ { itemName = "soldier helmet", clientId = 3375, sell = 16 },
+ { itemName = "spellbook of enlightenment", clientId = 8072, sell = 4000 },
+ { itemName = "spellbook of lost souls", clientId = 8075, sell = 19000 },
+ { itemName = "spellbook of mind control", clientId = 8074, sell = 13000 },
+ { itemName = "spellbook of warding", clientId = 8073, sell = 8000 },
+ { itemName = "spellwand", clientId = 651, sell = 299 },
+ { itemName = "spellweaver's robe", clientId = 10438, sell = 12000 },
+ { itemName = "spike shield", clientId = 17810, sell = 250 },
+ { itemName = "spike sword", clientId = 3271, sell = 1000 },
+ { itemName = "spiked squelcher", clientId = 7452, sell = 5000 },
+ { itemName = "spirit cloak", clientId = 8042, sell = 350 },
+ { itemName = "springsprout rod", clientId = 8084, sell = 3600 },
+ { itemName = "steel boots", clientId = 3554, sell = 30000 },
+ { itemName = "steel helmet", clientId = 3351, sell = 293 },
+ { itemName = "steel shield", clientId = 3409, sell = 80 },
+ { itemName = "strange helmet", clientId = 3373, sell = 500 },
+ { itemName = "studded armor", clientId = 3378, sell = 25 },
+ { itemName = "studded club", clientId = 3336, sell = 10 },
+ { itemName = "studded helmet", clientId = 3376, sell = 20 },
+ { itemName = "studded legs", clientId = 3362, sell = 15 },
+ { itemName = "studded shield", clientId = 3426, sell = 16 },
+ { itemName = "swamplair armor", clientId = 8052, sell = 16000 },
+ { itemName = "sword", clientId = 3264, sell = 25 },
+ { itemName = "taurus mace", clientId = 7425, sell = 500 },
+ { itemName = "tempest shield", clientId = 3442, sell = 35000 },
+ { itemName = "terra boots", clientId = 813, sell = 2500 },
+ { itemName = "terra hood", clientId = 830, sell = 2500 },
+ { itemName = "terra legs", clientId = 812, sell = 11000 },
+ { itemName = "terra mantle", clientId = 811, sell = 11000 },
+ { itemName = "terra rod", clientId = 3065, sell = 2000 },
+ { itemName = "thaian sword", clientId = 7391, sell = 16000 },
+ { itemName = "the avenger", clientId = 6527, sell = 42000 },
+ { itemName = "the ironworker", clientId = 8025, sell = 50000 },
+ { itemName = "the justice seeker", clientId = 7390, sell = 40000 },
+ { itemName = "throwing knife", clientId = 3298, sell = 2 },
+ { itemName = "tiara", clientId = 35578, sell = 11000 },
+ { itemName = "titan axe", clientId = 7413, sell = 4000 },
+ { itemName = "tortoise shield", clientId = 6131, sell = 150 },
+ { itemName = "tower shield", clientId = 3428, sell = 8000 },
+ { itemName = "twiceslicer", clientId = 11657, sell = 28000 },
+ { itemName = "twin hooks", clientId = 10392, sell = 500 },
+ { itemName = "two handed sword", clientId = 3265, sell = 450 },
+ { itemName = "underworld rod", clientId = 8082, sell = 4400 },
+ { itemName = "vampire shield", clientId = 3434, sell = 15000 },
+ { itemName = "viking helmet", clientId = 3367, sell = 66 },
+ { itemName = "viking shield", clientId = 3431, sell = 85 },
+ { itemName = "vile axe", clientId = 7388, sell = 30000 },
+ { itemName = "wand of cosmic energy", clientId = 3073, sell = 2000 },
+ { itemName = "wand of decay", clientId = 3072, sell = 1000 },
+ { itemName = "wand of defiance", clientId = 16096, sell = 6500 },
+ { itemName = "wand of draconia", clientId = 8093, sell = 1500 },
+ { itemName = "wand of dragonbreath", clientId = 3075, sell = 200 },
+ { itemName = "wand of everblazing", clientId = 16115, sell = 6000 },
+ { itemName = "wand of inferno", clientId = 3071, sell = 3000 },
+ { itemName = "wand of starstorm", clientId = 8092, sell = 3600 },
+ { itemName = "wand of voodoo", clientId = 8094, sell = 4400 },
+ { itemName = "wand of vortex", clientId = 3074, sell = 100 },
+ { itemName = "war axe", clientId = 3342, sell = 12000 },
+ { itemName = "war hammer", clientId = 3279, sell = 1200 },
+ { itemName = "warrior helmet", clientId = 3369, sell = 5000 },
+ { itemName = "warrior's axe", clientId = 14040, sell = 11000 },
+ { itemName = "warrior's shield", clientId = 14042, sell = 9000 },
+ { itemName = "watch", clientId = 2906, sell = 6 },
+ { itemName = "wereboar loincloth", clientId = 22087, sell = 1500 },
+ { itemName = "windborn colossus armor", clientId = 8055, sell = 50000 },
+ { itemName = "witch hat", clientId = 9653, sell = 5000 },
+ { itemName = "wood cape", clientId = 3575, sell = 5000 },
+ { itemName = "wooden hammer", clientId = 3459, sell = 15 },
+ { itemName = "wooden shield", clientId = 3412, sell = 5 },
+ { itemName = "wooden spellbook", clientId = 25699, sell = 12000 },
+ { itemName = "wyvern fang", clientId = 7408, sell = 1500 },
+ { itemName = "zaoan armor", clientId = 10384, sell = 14000 },
+ { itemName = "zaoan halberd", clientId = 10406, sell = 500 },
+ { itemName = "zaoan helmet", clientId = 10385, sell = 45000 },
+ { itemName = "zaoan legs", clientId = 10387, sell = 14000 },
+ { itemName = "zaoan robe", clientId = 10439, sell = 12000 },
+ { itemName = "zaoan shoes", clientId = 10386, sell = 5000 },
+ { itemName = "zaoan sword", clientId = 10390, sell = 30000 },
+ },
+
+ ["amulets"] = {
+ { itemName = "amulet of loss", clientId = 3057, sell = 45000 },
+ { itemName = "ancient amulet", clientId = 3025, sell = 200 },
+ { itemName = "collar of blue plasma", clientId = 23542, sell = 6000 },
+ { itemName = "collar of green plasma", clientId = 23543, sell = 6000 },
+ { itemName = "collar of red plasma", clientId = 23544, sell = 6000 },
+ { itemName = "crystal necklace", clientId = 3008, sell = 400 },
+ { itemName = "dragon necklace", clientId = 3085, sell = 100, count = 200 },
+ { itemName = "elven amulet", clientId = 3082, sell = 100, count = 50 },
+ { itemName = "garlic necklace", clientId = 3083, sell = 50 },
+ { itemName = "gearwheel chain", clientId = 21170, sell = 5000 },
+ { itemName = "glooth amulet", clientId = 21183, sell = 2000 },
+ { itemName = "leviathan's amulet", clientId = 9303, sell = 3000 },
+ { itemName = "magma amulet", clientId = 817, sell = 1500 },
+ { itemName = "noble amulet", clientId = 31595, sell = 430000 },
+ { itemName = "onyx pendant", clientId = 22195, sell = 3500 },
+ { itemName = "ornate locket", clientId = 30056, sell = 18000 },
+ { itemName = "protection amulet", clientId = 3084, sell = 100, count = 250 },
+ { itemName = "ruby necklace", clientId = 3016, sell = 2000 },
+ { itemName = "sacred tree amulet", clientId = 9302, sell = 3000 },
+ { itemName = "scarab amulet", clientId = 3018, sell = 200 },
+ { itemName = "shockwave amulet", clientId = 9304, sell = 3000 },
+ { itemName = "silver amulet", clientId = 3054, sell = 50, count = 200 },
+ { itemName = "star amulet", clientId = 3014, sell = 500 },
+ { itemName = "stone skin amulet", clientId = 3081, sell = 500, count = 5 },
+ { itemName = "terra amulet", clientId = 814, sell = 1500 },
+ { itemName = "wailing widow's necklace", clientId = 10412, sell = 3000 },
+ { itemName = "werewolf amulet", clientId = 22060, sell = 3000 },
+ { itemName = "wolf tooth chain", clientId = 3012, sell = 100 },
+ },
+
+ ["rings"] = {
+ { itemName = "axe ring", clientId = 3092, sell = 100 },
+ { itemName = "club ring", clientId = 3093, sell = 100 },
+ { itemName = "dwarven ring", clientId = 3097, sell = 100 },
+ { itemName = "energy ring", clientId = 3051, sell = 100 },
+ { itemName = "life ring", clientId = 3052, sell = 50 },
+ { itemName = "might ring", clientId = 3048, sell = 250, count = 20 },
+ { itemName = "power ring", clientId = 3050, sell = 50 },
+ { itemName = "ring of blue plasma", clientId = 23529, sell = 8000 },
+ { itemName = "ring of green plasma", clientId = 23531, sell = 8000 },
+ { itemName = "ring of healing", clientId = 3098, sell = 100 },
+ { itemName = "ring of red plasma", clientId = 23533, sell = 8000 },
+ { itemName = "ring of the sky", clientId = 3006, sell = 30000 },
+ { itemName = "signet ring", clientId = 31592, sell = 480000 },
+ { itemName = "stealth ring", clientId = 3049, sell = 200 },
+ { itemName = "sword ring", clientId = 3091, sell = 100 },
+ { itemName = "time ring", clientId = 3053, sell = 100 },
+ { itemName = "wedding ring", clientId = 3004, sell = 100 },
+ },
+
+ ["valuables"] = {
+ { itemName = "ancient coin", clientId = 24390, sell = 350 },
+ { itemName = "ancient stone", clientId = 9632, sell = 200 },
+ { itemName = "angel figurine", clientId = 32589, sell = 36000 },
+ { itemName = "ankh", clientId = 3077, sell = 100 },
+ { itemName = "bar of gold", clientId = 14112, sell = 10000 },
+ { itemName = "basalt figurine", clientId = 17857, sell = 160 },
+ { itemName = "battle stone", clientId = 11447, sell = 290 },
+ { itemName = "beast's nightmare-cushion", clientId = 29946, sell = 630000 },
+ { itemName = "black pearl", clientId = 3027, sell = 280 },
+ { itemName = "blood goblet", clientId = 8531, sell = 10000 },
+ { itemName = "blue crystal shard", clientId = 16119, sell = 1500 },
+ { itemName = "blue crystal splinter", clientId = 16124, sell = 400 },
+ { itemName = "blue gem", clientId = 3041, sell = 5000 },
+ { itemName = "broken iks cuirass", clientId = 40533, sell = 640 },
+ { itemName = "brown crystal splinter", clientId = 16123, sell = 400 },
+ { itemName = "brown giant shimmering pearl", clientId = 282, sell = 3000 },
+ { itemName = "ceremonial ankh", clientId = 6561, sell = 20000 },
+ { itemName = "cracked alabaster vase", clientId = 24385, sell = 180 },
+ { itemName = "crown", clientId = 33935, sell = 2700 },
+ { itemName = "cry-stal", clientId = 39394, sell = 3200 },
+ { itemName = "crystal ball", clientId = 3076, sell = 190 },
+ { itemName = "crystal of balance", clientId = 9028, sell = 1000 },
+ { itemName = "crystal of focus", clientId = 9027, sell = 2000 },
+ { itemName = "crystal of power", clientId = 9067, sell = 3000 },
+ { itemName = "crystallized anger", clientId = 23507, sell = 400 },
+ { itemName = "cyan crystal fragment", clientId = 16125, sell = 800 },
+ { itemName = "dark rosary", clientId = 10303, sell = 48 },
+ { itemName = "death toll", clientId = 32703, sell = 1000 },
+ { itemName = "diamond", clientId = 32770, sell = 15000 },
+ { itemName = "dragon figurine", clientId = 30053, sell = 45000 },
+ { itemName = "eldritch crystal", clientId = 36835, sell = 48000 },
+ { itemName = "emerald bangle", clientId = 3010, sell = 800 },
+ { itemName = "explorer brooch", clientId = 4871, sell = 50 },
+ { itemName = "figurine of cruelty", clientId = 34019, sell = 3100000 },
+ { itemName = "figurine of greed", clientId = 34021, sell = 2900000 },
+ { itemName = "figurine of hatred", clientId = 34020, sell = 2700000 },
+ { itemName = "figurine of malice", clientId = 34018, sell = 2800000 },
+ { itemName = "figurine of megalomania", clientId = 33953, sell = 5000000 },
+ { itemName = "figurine of spite", clientId = 33952, sell = 3000000 },
+ { itemName = "flawless ice crystal", clientId = 942, sell = 5000 },
+ { itemName = "flintstone", clientId = 12806, sell = 800 },
+ { itemName = "frozen lightning", clientId = 23519, sell = 270 },
+ { itemName = "frozen starlight", clientId = 3249, sell = 20000 },
+ { itemName = "gemmed figurine", clientId = 24392, sell = 3500 },
+ { itemName = "giant amethyst", clientId = 32622, sell = 60000 },
+ { itemName = "giant emerald", clientId = 30060, sell = 90000 },
+ { itemName = "giant pacifier", clientId = 21199, sell = 170 },
+ { itemName = "giant ruby", clientId = 30059, sell = 70000 },
+ { itemName = "giant sapphire", clientId = 30061, sell = 50000 },
+ { itemName = "giant topaz", clientId = 32623, sell = 80000 },
+ { itemName = "glowing rune", clientId = 28570, sell = 350 },
+ { itemName = "gold ingot", clientId = 9058, sell = 5000 },
+ { itemName = "gold nugget", clientId = 3040, sell = 850 },
+ { itemName = "gold ring", clientId = 3063, sell = 8000 },
+ { itemName = "gold-brocaded cloth", clientId = 40529, sell = 175 },
+ { itemName = "golden amulet", clientId = 3013, sell = 2000 },
+ { itemName = "golden brush", clientId = 25689, sell = 250 },
+ { itemName = "golden cheese wedge", clientId = 35581, sell = 6000 },
+ { itemName = "golden dustbin", clientId = 35579, sell = 7000 },
+ { itemName = "golden fafnar trophy", clientId = 9626, sell = 10000 },
+ { itemName = "golden figurine", clientId = 5799, sell = 3000 },
+ { itemName = "golden lotus brooch", clientId = 21974, sell = 270 },
+ { itemName = "golden mask", clientId = 31324, sell = 38000 },
+ { itemName = "golden mug", clientId = 2903, sell = 250 },
+ { itemName = "golden sickle", clientId = 3306, sell = 1000 },
+ { itemName = "golden skull", clientId = 35580, sell = 9000 },
+ { itemName = "golden sun coin", clientId = 43734, sell = 11000 },
+ { itemName = "golden tiger coin", clientId = 43735, sell = 11000 },
+ { 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 = "hexagonal ruby", clientId = 30180, sell = 30000 },
+ { itemName = "life crystal", clientId = 3061, sell = 85 },
+ { itemName = "magic light wand", clientId = 3046, sell = 35 },
+ { itemName = "medal of valiance", clientId = 31591, sell = 410000 },
+ { itemName = "mind stone", clientId = 3062, sell = 100 },
+ { itemName = "moonstone", clientId = 32771, sell = 13000 },
+ { itemName = "onyx chip", clientId = 22193, sell = 500 },
+ { itemName = "opal", clientId = 22194, sell = 500 },
+ { itemName = "orb", clientId = 3060, sell = 750 },
+ { itemName = "orichalcum pearl", clientId = 5021, sell = 40 },
+ { itemName = "pirate coin", clientId = 35572, sell = 110 },
+ { itemName = "plasma pearls", clientId = 23506, sell = 250 },
+ { itemName = "prismatic quartz", clientId = 24962, sell = 450 },
+ { itemName = "purple tome", clientId = 2848, sell = 2000 },
+ { itemName = "rainbow quartz", clientId = 25737, sell = 800 },
+ { itemName = "red crystal fragment", clientId = 16126, sell = 800 },
+ { itemName = "red gem", clientId = 3039, sell = 1000 },
+ { itemName = "red tome", clientId = 2852, sell = 2000 },
+ { itemName = "royal almandine", clientId = 39038, sell = 460000 },
+ { itemName = "scarab coin", clientId = 3042, sell = 100 },
+ { itemName = "sea horse figurine", clientId = 31323, sell = 42000 },
+ { itemName = "seacrest pearl", clientId = 21747, sell = 400 },
+ { itemName = "shiny stone", clientId = 10310, sell = 500 },
+ { itemName = "silver brooch", clientId = 3017, sell = 150 },
+ { itemName = "silver foxmouse coin", clientId = 43733, sell = 11000 },
+ { itemName = "silver hand mirror", clientId = 32772, sell = 10000 },
+ { itemName = "silver moon coin", clientId = 43732, sell = 11000 },
+ { itemName = "silver rune emblem explosion", clientId = 11607, sell = 5000 },
+ { itemName = "silver rune emblem heavy magic missile", clientId = 11605, sell = 5000 },
+ { itemName = "silver rune emblem sudden death", clientId = 11609, sell = 5000 },
+ { itemName = "silver rune emblem ultimate healing", clientId = 11603, sell = 5000 },
+ { itemName = "skull coin", clientId = 32583, sell = 12000 },
+ { itemName = "small amethyst", clientId = 3033, sell = 200 },
+ { itemName = "small diamond", clientId = 3028, sell = 300 },
+ { itemName = "small emerald", clientId = 3032, sell = 250 },
+ { itemName = "small enchanted amethyst", clientId = 678, sell = 200 },
+ { itemName = "small enchanted emerald", clientId = 677, sell = 250 },
+ { itemName = "small enchanted ruby", clientId = 676, sell = 250 },
+ { itemName = "small enchanted sapphire", clientId = 675, sell = 250 },
+ { itemName = "small ruby", clientId = 3030, sell = 250 },
+ { itemName = "small sapphire", clientId = 3029, sell = 250 },
+ { itemName = "small topaz", clientId = 9057, sell = 200 },
+ { itemName = "small treasure chest", clientId = 35571, sell = 500 },
+ { itemName = "spectral gold nugget", clientId = 32724, sell = 500 },
+ { itemName = "spectral silver nugget", clientId = 32725, sell = 250 },
+ { itemName = "spectral stone", clientId = 4840, sell = 50 },
+ { itemName = "talon", clientId = 3034, sell = 320 },
+ { itemName = "unicorn figurine", clientId = 30054, sell = 50000 },
+ { itemName = "violet crystal shard", clientId = 16120, sell = 1500 },
+ { itemName = "violet gem", clientId = 3036, sell = 10000 },
+ { itemName = "war crystal", clientId = 9654, sell = 460 },
+ { itemName = "watermelon tourmaline (slice)", clientId = 33779, sell = 30000 },
+ { itemName = "watermelon tourmaline", clientId = 33780, sell = 230000 },
+ { itemName = "white gem", clientId = 32769, sell = 12000 },
+ { itemName = "white pearl", clientId = 3026, sell = 160 },
+ { itemName = "yellow gem", clientId = 3037, sell = 1000 },
+ },
+
+ ["quest items"] = {
+ { itemName = "ape fur", clientId = 5883, sell = 120 },
+ { itemName = "bat wing", clientId = 5894, sell = 50 },
+ { itemName = "bear paw", clientId = 5896, sell = 100 },
+ { itemName = "behemoth claw", clientId = 5930, sell = 2000 },
+ { itemName = "blue piece of cloth", clientId = 5912, sell = 200 },
+ { itemName = "bonelord eye", clientId = 5898, sell = 80 },
+ { itemName = "brown piece of cloth", clientId = 5913, sell = 100 },
+ { itemName = "cluster of solace", clientId = 20062, sell = 500 },
+ { itemName = "demon dust", clientId = 5906, sell = 300 },
+ { itemName = "demonic essence", clientId = 6499, sell = 1000 },
+ { itemName = "dragon claw", clientId = 5919, sell = 8000 },
+ { itemName = "egg of the many", clientId = 9606, sell = 15000 },
+ { itemName = "enchanted chicken wing", clientId = 5891, sell = 20000 },
+ { itemName = "first verse of the hymn", clientId = 6087, sell = 100 },
+ { itemName = "fish fin", clientId = 5895, sell = 150 },
+ { itemName = "fourth verse of the hymn", clientId = 6090, sell = 800 },
+ { itemName = "green dragon leather", clientId = 5877, sell = 100 },
+ { itemName = "green dragon scale", clientId = 5920, sell = 100 },
+ { itemName = "green piece of cloth", clientId = 5910, sell = 200 },
+ { itemName = "hardened bone", clientId = 5925, sell = 70 },
+ { itemName = "heaven blossom", clientId = 5921, sell = 50 },
+ { itemName = "holy orchid", clientId = 5922, sell = 90 },
+ { itemName = "honeycomb", clientId = 5902, sell = 40 },
+ { itemName = "iced soil", clientId = 944, sell = 2000 },
+ { itemName = "energy soil", clientId = 945, sell = 2000 },
+ { itemName = "iron ore", clientId = 5880, sell = 500 },
+ { itemName = "lizard leather", clientId = 5876, sell = 150 },
+ { itemName = "lizard scale", clientId = 5881, sell = 120 },
+ { itemName = "magic sulphur", clientId = 5904, sell = 8000 },
+ { itemName = "mammoth tusk", clientId = 10321, sell = 100 },
+ { itemName = "mandrake", clientId = 5014, sell = 5000 },
+ { itemName = "minotaur leather", clientId = 5878, sell = 80 },
+ { itemName = "mother soil", clientId = 947, sell = 5000 },
+ { itemName = "natural soil", clientId = 940, sell = 2000 },
+ { itemName = "necklace of the deep", clientId = 13990, sell = 3000 },
+ { itemName = "nose ring", clientId = 5804, sell = 2000 },
+ { itemName = "perfect behemoth fang", clientId = 5893, sell = 250 },
+ { itemName = "piece of royal steel", clientId = 5887, sell = 10000 },
+ { itemName = "piece of draconian steel", clientId = 5889, sell = 3000 },
+ { itemName = "piece of hell steel", clientId = 5888, sell = 500 },
+ { itemName = "pirate voodoo doll", clientId = 5810, sell = 500 },
+ { itemName = "red dragon leather", clientId = 5948, sell = 200 },
+ { itemName = "red dragon scale", clientId = 5882, sell = 200 },
+ { itemName = "red piece of cloth", clientId = 5911, sell = 300 },
+ { itemName = "second verse of the hymn", clientId = 6088, sell = 250 },
+ { itemName = "shard", clientId = 7290, sell = 2000 },
+ { itemName = "sniper gloves", clientId = 5875, sell = 2000 },
+ { itemName = "soul stone", clientId = 5809, sell = 6000 },
+ { itemName = "spider silk", clientId = 5879, sell = 100 },
+ { itemName = "spirit container", clientId = 5884, sell = 40000 },
+ { itemName = "spool of yarn", clientId = 5886, sell = 1000 },
+ { itemName = "third verse of the hymn", clientId = 6089, sell = 400 },
+ { itemName = "turtle shell", clientId = 5899, sell = 90 },
+ { itemName = "vampire dust", clientId = 5905, sell = 100 },
+ { itemName = "voodoo doll", clientId = 3002, sell = 400 },
+ { itemName = "white piece of cloth", clientId = 5909, sell = 100 },
+ { itemName = "wolf paw", clientId = 5897, sell = 70 },
+ { itemName = "yellow piece of cloth", clientId = 5914, sell = 150 },
+ },
+
+ ["decoration"] = {
+ { itemName = "baby seal doll", clientId = 7183, sell = 20000 },
+ { itemName = "bat decoration", clientId = 6491, sell = 2000 },
+ { itemName = "behemoth trophy", clientId = 7396, sell = 20000 },
+ { itemName = "blood herb", clientId = 3734, sell = 500 },
+ { itemName = "blue rose", clientId = 3659, sell = 250 },
+ { itemName = "bonebeast trophy", clientId = 10244, sell = 6000 },
+ { itemName = "crystal pedestal", clientId = 9063, sell = 500 },
+ { itemName = "cyclops trophy", clientId = 7398, sell = 500 },
+ { itemName = "deer trophy", clientId = 7397, sell = 3000 },
+ { itemName = "demon trophy", clientId = 7393, sell = 40000 },
+ { itemName = "disgusting trophy", clientId = 10421, sell = 3000 },
+ { itemName = "doll", clientId = 2991, sell = 200 },
+ { itemName = "dracoyle statue", clientId = 9034, sell = 5000 },
+ { itemName = "dragon lord trophy", clientId = 7399, sell = 10000 },
+ { itemName = "draken trophy", clientId = 10398, sell = 15000 },
+ { itemName = "lion trophy", clientId = 7400, sell = 3000 },
+ { itemName = "lizard trophy", clientId = 10419, sell = 8000 },
+ { itemName = "marlin trophy", clientId = 902, sell = 5000 },
+ { itemName = "minotaur trophy", clientId = 7401, sell = 500 },
+ { itemName = "model ship", clientId = 2994, sell = 1000 },
+ { itemName = "morbid tapestry", clientId = 34170, sell = 30000 },
+ { itemName = "panda teddy", clientId = 5080, sell = 30000 },
+ { itemName = "pet pig", clientId = 16165, sell = 1500 },
+ { itemName = "sea serpent trophy", clientId = 9613, sell = 10000 },
+ { itemName = "silver fafnar trophy", clientId = 9627, sell = 1000 },
+ { itemName = "skeleton decoration", clientId = 6525, sell = 3000 },
+ { itemName = "souleater trophy", clientId = 11679, sell = 7500 },
+ { itemName = "statue of abyssador", clientId = 16232, sell = 4000 },
+ { itemName = "statue of deathstrike", clientId = 16236, sell = 3000 },
+ { itemName = "statue of devovorga", clientId = 4065, sell = 1500 },
+ { itemName = "statue of gnomevil", clientId = 16240, sell = 2000 },
+ { itemName = "stuffed dragon", clientId = 5791, sell = 6000 },
+ { itemName = "trophy of jaul", clientId = 14006, sell = 4000 },
+ { itemName = "trophy of obujos", clientId = 14002, sell = 3000 },
+ { itemName = "trophy of tanjis", clientId = 14004, sell = 2000 },
+ { itemName = "werebadger trophy", clientId = 22101, sell = 9000 },
+ { itemName = "werebear trophy", clientId = 22103, sell = 11000 },
+ { itemName = "wereboar trophy", clientId = 22102, sell = 10000 },
+ { itemName = "werecrocodile trophy", clientId = 43916, sell = 15000 },
+ { itemName = "werefox trophy", clientId = 27706, sell = 9000 },
+ { itemName = "werehyaena trophy", clientId = 34219, sell = 12000 },
+ { itemName = "werepanther trophy", clientId = 43917, sell = 14000 },
+ { itemName = "weretiger trophy", clientId = 43915, sell = 14000 },
+ { itemName = "wolf trophy", clientId = 7394, sell = 3000 },
+ },
+
+ ["potions"] = {
+ { itemName = "berserk potion", clientId = 7439, sell = 500 },
+ { itemName = "bullseye potion", clientId = 7443, sell = 500 },
+ { itemName = "empty potion flask", clientId = 283, sell = 5 },
+ { itemName = "empty potion flask", clientId = 284, sell = 5 },
+ { itemName = "empty potion flask", clientId = 285, sell = 5 },
+ { itemName = "mastermind potion", clientId = 7440, sell = 500 },
+ { itemName = "vial", clientId = 2874, sell = 5 },
+ },
+
+ ["food"] = {
+ { itemName = "dark mushroom", clientId = 3728, sell = 100 },
+ { itemName = "ectoplasmic sushi", clientId = 11681, sell = 300 },
+ { itemName = "fire mushroom", clientId = 3731, sell = 200 },
+ { itemName = "green mushroom", clientId = 3732, sell = 100 },
+ { itemName = "orange mushroom", clientId = 3726, sell = 150 },
+ { itemName = "wood mushroom", clientId = 3727, sell = 15 },
+ },
+}
+
+local garbage = {
+ "Spatial Warp Almanac",
+ "assassin star",
+ "big bone",
+ "bug meat",
+ "cape",
+ "combat knife",
+ "dirty cape",
+ "dirty fur",
+ "energy bar",
+ "fishbone",
+ "flash arrow",
+ "great health potion",
+ "great mana potion",
+ "great spirit potion",
+ "ham",
+ "health potion",
+ "knife",
+ "mana potion",
+ "royal star",
+ "strong health potion",
+ "strong mana potion",
+ "supreme health potion",
+ "the spatial warp almanac",
+ "ultimate health potion",
+ "ultimate mana potion",
+ "ultimate spirit potion",
+ "onyx arrow",
+ "small stone",
+ 1047, -- bone
+ 1048, -- bone
+ 3115, -- bone
+ 2920, -- torch
+ 6558, -- demonic blood
+ 27509, -- heavy crystal fragment
+ 27713, -- heavy crystal fragment
+}
+
+LootShopConfigTable["garbage"] = {}
+
+for _, itemNameOrId in ipairs(garbage) do
+ local item = ItemType(itemNameOrId)
+ if item and item:getId() > 0 then
+ local suplyShop = FindSupplyShopItem(item:getName())
+ local price = 1
+ if suplyShop then
+ price = math.ceil(suplyShop.buy / 3)
+ end
+ table.insert(LootShopConfigTable["garbage"], { itemName = item:getName(), clientId = item:getId(), sell = price })
+ end
+end
+
+local lootPouchEntry = { itemName = "all loot in pouch", clientId = ITEM_GOLD_POUCH, sell = 1 }
+LootShopConfig = { lootPouchEntry }
+
+for category, items in pairs(LootShopConfigTable) do
+ for _, item in ipairs(items) do
+ table.insert(LootShopConfig, item)
+ end
+ table.insert(LootShopConfigTable[category], lootPouchEntry)
+end
+
+function FindLootShopCategory(categoryName)
+ for category, items in pairs(LootShopConfigTable) do
+ if string.starts(category:lower(), categoryName:lower()) then
+ return items
+ end
+ end
+end
+
+function FindLootShopItem(itemName)
+ for _, item in ipairs(LootShopConfig) do
+ if string.starts(item.itemName:lower(), itemName:lower()) then
+ return item
+ end
+ end
+end
diff --git a/data-otservbr-global/scripts/movements/others/closing_door.lua b/data-otservbr-global/scripts/movements/others/closing_door.lua
index a4e286d0a71..448d208b20f 100644
--- a/data-otservbr-global/scripts/movements/others/closing_door.lua
+++ b/data-otservbr-global/scripts/movements/others/closing_door.lua
@@ -13,6 +13,9 @@ for index, value in ipairs(LevelDoorTable) do
table.insert(doorIds, value.openDoor)
end
end
+local skipActionIds = {
+ 12107,
+}
function closingDoor.onStepIn(creature, item, position, fromPosition)
local player = creature:getPlayer()
@@ -22,7 +25,7 @@ function closingDoor.onStepIn(creature, item, position, fromPosition)
for index, value in ipairs(QuestDoorTable) do
if value.openDoor == item.itemid then
- if player:getStorageValue(item.actionid) ~= -1 then
+ if player:getStorageValue(item.actionid) ~= -1 or table.contains(skipActionIds, item.actionid) then
return true
else
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "The door seems to be sealed against unwanted intruders.")
diff --git a/data-otservbr-global/scripts/movements/quests/the_gravedigger_of_drefia/teleport.lua b/data-otservbr-global/scripts/movements/quests/the_gravedigger_of_drefia/teleport.lua
index 824642c4287..ad3f9447859 100644
--- a/data-otservbr-global/scripts/movements/quests/the_gravedigger_of_drefia/teleport.lua
+++ b/data-otservbr-global/scripts/movements/quests/the_gravedigger_of_drefia/teleport.lua
@@ -13,9 +13,9 @@ local setting = {
},
}
-local teleport = MoveEvent()
+local event = MoveEvent()
-function teleport.onStepIn(creature, item, position, fromPosition)
+function event.onStepIn(creature, item, position, fromPosition)
local player = creature:getPlayer()
if not player then
return true
@@ -32,10 +32,10 @@ function teleport.onStepIn(creature, item, position, fromPosition)
return true
end
-teleport:type("stepin")
+event:type("stepin")
for index, value in pairs(setting) do
- teleport:aid(index)
+ event:aid(index)
end
-teleport:register()
+event:register()
diff --git a/data-otservbr-global/scripts/quests/primal_ordeal_quest/magma_bubble_fight.lua b/data-otservbr-global/scripts/quests/primal_ordeal_quest/magma_bubble_fight.lua
index c2642008a09..36de1fb1497 100644
--- a/data-otservbr-global/scripts/quests/primal_ordeal_quest/magma_bubble_fight.lua
+++ b/data-otservbr-global/scripts/quests/primal_ordeal_quest/magma_bubble_fight.lua
@@ -270,8 +270,7 @@ theEndOfDaysHealth:register()
local magmaCrystalDeath = CreatureEvent("fight.magma-bubble.MagmaCrystalDeath")
function magmaCrystalDeath.onDeath()
- -- The monster count is only updated AFTER the event is called, so we need to subtract 1
- local crystals = encounter:countMonsters("magma crystal") - 1
+ local crystals = encounter:countMonsters("magma crystal")
if crystals == 0 then
encounter:nextStage()
else
@@ -283,8 +282,7 @@ magmaCrystalDeath:register()
local endOfDaysDeath = CreatureEvent("fight.magma-bubble.TheEndOfDaysDeath")
function endOfDaysDeath.onDeath()
- -- The monster count is only updated AFTER the event is called, so we need to subtract 1
- local monsters = encounter:countMonsters("the end of days") - 1
+ local monsters = encounter:countMonsters("the end of days")
if monsters == 0 then
encounter:nextStage()
end
diff --git a/data-otservbr-global/scripts/quests/primal_ordeal_quest/the_primal_manace_lever.lua b/data-otservbr-global/scripts/quests/primal_ordeal_quest/the_primal_manace_lever.lua
index bb01eb8da7d..805c68b689f 100644
--- a/data-otservbr-global/scripts/quests/primal_ordeal_quest/the_primal_manace_lever.lua
+++ b/data-otservbr-global/scripts/quests/primal_ordeal_quest/the_primal_manace_lever.lua
@@ -15,6 +15,7 @@ local config = {
from = Position(33547, 32749, 15),
to = Position(33570, 32769, 15),
},
+ disableCooldown = true,
exit = Position(33520, 32871, 15),
}
diff --git a/data-otservbr-global/scripts/quests/the_new_frontier/action-beaver.lua b/data-otservbr-global/scripts/quests/the_new_frontier/action-beaver.lua
index bf29b8854a3..68350db37ef 100644
--- a/data-otservbr-global/scripts/quests/the_new_frontier/action-beaver.lua
+++ b/data-otservbr-global/scripts/quests/the_new_frontier/action-beaver.lua
@@ -13,16 +13,16 @@ function beaverTrees.onUse(player, item, fromPosition, target, toPosition, isHot
if toPosition == config.treesBeaver[1] or toPosition == config.treesBeaver[2] or toPosition == config.treesBeaver[3] and player:getStorageValue(TheNewFrontier.Questline) == 5 then
if toPosition == config.treesBeaver[1] and player:getStorageValue(TheNewFrontier.Mission02.Beaver1) < 1 then
for i = 1, 3 do
- pos = toPosition
- Game.createMonster("enraged squirrel", pos)
+ position = toPosition
+ Game.createMonster("enraged squirrel", position)
toPosition:sendMagicEffect(CONST_ME_TELEPORT)
end
player:setStorageValue(TheNewFrontier.Mission02.Beaver1, 1)
player:say("You have marked the tree, but you also angered the aquirrel family who lived on it!", TALKTYPE_MONSTER_SAY)
elseif toPosition == config.treesBeaver[2] and player:getStorageValue(TheNewFrontier.Mission02.Beaver2) < 1 then
for i = 1, 5 do
- pos = toPosition
- Game.createMonster("wolf", pos)
+ position = toPosition
+ Game.createMonster("wolf", position)
toPosition:sendMagicEffect(CONST_ME_TELEPORT)
end
Game.createMonster("war wolf", toPosition)
diff --git a/data-otservbr-global/scripts/quests/the_order_of_lion/action-bounac_entrance.lua b/data-otservbr-global/scripts/quests/the_order_of_lion/action-bounac_entrance.lua
index 803bfc1b1e6..6c4c6b6d5c1 100644
--- a/data-otservbr-global/scripts/quests/the_order_of_lion/action-bounac_entrance.lua
+++ b/data-otservbr-global/scripts/quests/the_order_of_lion/action-bounac_entrance.lua
@@ -20,3 +20,6 @@ end
bounacEntrance:aid(59602)
bounacEntrance:aid(59603)
bounacEntrance:register()
+
+SimpleTeleport(Position(32475, 32497, 7), Position(32475, 32496, 6), nil, true)
+SimpleTeleport(Position(32475, 32497, 6), Position(32475, 32498, 7), nil, true)
diff --git a/data-otservbr-global/startup/tables/item.lua b/data-otservbr-global/startup/tables/item.lua
index fecd3fc6a0b..6aaa5f7235d 100644
--- a/data-otservbr-global/startup/tables/item.lua
+++ b/data-otservbr-global/startup/tables/item.lua
@@ -276,6 +276,11 @@ ItemAction = {
}
ItemUnique = {
+ -- Issavi town teleport
+ [9515] = {
+ itemId = 1949,
+ itemPos = { x = 33926, y = 31477, z = 5 },
+ },
-- The shattered isles
-- data\scripts\actions\quests\the_shattered_isles\nargor_maps.lua
[40001] = {
diff --git a/data-otservbr-global/world/otservbr-npc.xml b/data-otservbr-global/world/otservbr-npc.xml
index 305023dbfa2..85ee7763faa 100644
--- a/data-otservbr-global/world/otservbr-npc.xml
+++ b/data-otservbr-global/world/otservbr-npc.xml
@@ -2379,6 +2379,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/events/scripts/player.lua b/data/events/scripts/player.lua
index 93a37f0dafc..cf78eeb2bc7 100644
--- a/data/events/scripts/player.lua
+++ b/data/events/scripts/player.lua
@@ -642,18 +642,14 @@ function Player:onChangeZone(zone)
delay = configManager.getNumber(configKeys.STAMINA_GREEN_DELAY)
end
- local message = string.format("In protection zone. Every %i minutes, gain %i stamina.", delay, configManager.getNumber(configKeys.STAMINA_PZ_GAIN))
- self:sendTextMessage(MESSAGE_STATUS, message)
+ local message = string.format("In protection zone. Recharging %i stamina every %i minutes.", configManager.getNumber(configKeys.STAMINA_PZ_GAIN), delay)
+ self:sendTextMessage(MESSAGE_FAILURE, message)
staminaBonus.eventsPz[self:getId()] = addEvent(addStamina, delay * 60 * 1000, nil, self:getId(), delay * 60 * 1000)
end
end
else
if event then
- self:sendTextMessage(
- MESSAGE_STATUS,
- "You are no longer refilling stamina, \z
- since you left a regeneration zone."
- )
+ self:sendTextMessage(MESSAGE_FAILURE, "You are no longer refilling stamina, since you left a regeneration zone.")
stopEvent(event)
staminaBonus.eventsPz[self:getId()] = nil
end
diff --git a/data/global.lua b/data/global.lua
index 4caec8c69f9..3508d7fbd44 100644
--- a/data/global.lua
+++ b/data/global.lua
@@ -19,6 +19,10 @@ function IsRetroPVP()
return configManager.getBoolean(configKeys.TOGGLE_SERVER_IS_RETRO)
end
+function IsTravelFree()
+ return configManager.getBoolean(configKeys.TOGGLE_TRAVELS_FREE)
+end
+
-- NOTE: 0 is disabled.
PARTY_PROTECTION = (IsRetroPVP() and 0) or 1
ADVANCED_SECURE_MODE = (IsRetroPVP() and 0) or 1
@@ -159,7 +163,7 @@ function addStamina(playerId, ...)
staminaBonus.eventsTrainer[playerId] = nil
else
player:setStamina(player:getStamina() + staminaBonus.bonus)
- player:sendTextMessage(MESSAGE_STATUS, string.format("%i of stamina has been refilled.", configManager.getNumber(configKeys.STAMINA_TRAINER_GAIN)))
+ player:sendTextMessage(MESSAGE_FAILURE, string.format("%i of stamina has been refilled.", configManager.getNumber(configKeys.STAMINA_TRAINER_GAIN)))
staminaBonus.eventsTrainer[playerId] = addEvent(addStamina, staminaBonus.period, playerId)
end
end
@@ -196,8 +200,9 @@ function addStamina(playerId, ...)
return false
end
- player:setStamina(player:getStamina() + configManager.getNumber(configKeys.STAMINA_PZ_GAIN))
- player:sendTextMessage(MESSAGE_STATUS, string.format("%i of stamina has been refilled.", configManager.getNumber(configKeys.STAMINA_PZ_GAIN)))
+ 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"))
staminaBonus.eventsPz[localPlayerId] = addEvent(addStamina, delay, nil, localPlayerId, delay)
return true
end
diff --git a/data/items/items.xml b/data/items/items.xml
index 67bb50a17ff..ade8054ec07 100644
--- a/data/items/items.xml
+++ b/data/items/items.xml
@@ -7360,6 +7360,8 @@
+
+
-
diff --git a/data/libs/achievements_lib.lua b/data/libs/achievements_lib.lua
index 49318843c1c..2b0f441ad29 100644
--- a/data/libs/achievements_lib.lua
+++ b/data/libs/achievements_lib.lua
@@ -570,6 +570,10 @@ achievements = {
[475] = { name = "Taskmaster", grade = 1, points = 2, description = "Having hunted and bested them all, you live for the thrill of the hunt!" },
[476] = { name = "Verminbane", grade = 1, points = 2, description = "And so it begins!" },
+ --12.60
+ [480] = { name = "Honorary Rascoohan", grade = 1, points = 2, description = "When in Rascacoon, do as the Rascoohans do!" },
+ [481] = { name = "Release the Kraken", grade = 1, points = 3, description = "Riding around on this squishy companion gives you the feeling of flying through the air... uhm... swimming through the seven seas!" },
+
--Custom
[477] = { name = "Waypoint Explorer", grade = 1, points = 1, description = "You've explored all the towns of Tibia and discovered each town's waypoint." },
[478] = { name = "Up the Molehill", grade = 1, points = 3, description = "Putting this candle stump on your new mount was kind of a waiting game. You're even tempted to call it whack-a-mole. But in the end you found a loyal companion for your journeys into the depths." },
@@ -578,6 +582,12 @@ achievements = {
--12.60
[480] = { name = "Honorary Rascoohan", grade = 1, points = 2, description = "When in Rascacoon, do as the Rascoohans do!" },
[481] = { name = "Release the Kraken", grade = 1, points = 3, description = "Riding around on this squishy companion gives you the feeling of flying through the air... uhm... swimming through the seven seas!" },
+
+ -- 12.90
+ [482] = { name = "Friendly Fire", grade = 1, points = 2, description = "You mastered the fire and tamed a supervulcano!" },
+
+ --
+ [483] = { name = "Dream Warrior", grade = 2, points = 6, description = "You became an acquaintance of the courts of dreams and acquired the right to display your new status and title of 'dream warrior'." },
}
ACHIEVEMENT_FIRST = 1
diff --git a/data/libs/exercise_training.lua b/data/libs/exercise_training.lua
index 6981c55ca3b..ab4282b3cbb 100644
--- a/data/libs/exercise_training.lua
+++ b/data/libs/exercise_training.lua
@@ -55,7 +55,7 @@ function ExerciseEvent(playerId, tilePosition, weaponId, dummyId)
end
if player:isTraining() == 0 then
- player:sendTextMessage(MESSAGE_FAILURE, "You've stopped training!")
+ player:sendTextMessage(MESSAGE_FAILURE, "You have stopped training.")
return LeaveTraining(playerId)
end
diff --git a/data/libs/functions/bosslever.lua b/data/libs/functions/bosslever.lua
index 257e9eb4eae..3792cdf629d 100644
--- a/data/libs/functions/bosslever.lua
+++ b/data/libs/functions/bosslever.lua
@@ -18,7 +18,7 @@
---@field private exit Position
---@field private encounter Encounter
---@field private timeoutEvent Event
----@field private testMode boolean
+---@field private disableCooldown boolean
BossLever = {}
--[[
@@ -71,7 +71,7 @@ setmetatable(BossLever, {
exit = config.exit,
area = config.specPos,
monsters = config.monsters or {},
- testMode = config.testMode,
+ disableCooldown = config.disableCooldown,
_position = nil,
_uid = nil,
_aid = nil,
@@ -115,7 +115,7 @@ end
---@param player Player
---@return number
function BossLever:lastEncounterTime(player)
- if not player or self.testMode then
+ if not player or self.disableCooldown then
return 0
end
return player:getBossCooldown(self.name)
@@ -178,7 +178,18 @@ function BossLever:onUse(player)
return false
end
- if not lever:canUseLever(player, self.name, self.timeToFightAgain / 60 / 60) then
+ if self:lastEncounterTime(creature) > os.time() then
+ local info = lever:getInfoPositions()
+ for _, v in pairs(info) do
+ local newPlayer = v.creature
+ if newPlayer then
+ local timeLeft = self:lastEncounterTime(newPlayer) - os.time()
+ newPlayer:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You or a member in your team have to wait " .. getTimeInWords(timeLeft) .. " to face " .. self.name .. " again!")
+ if self:lastEncounterTime(newPlayer) > os.time() then
+ newPlayer:getPosition():sendMagicEffect(CONST_ME_POFF)
+ end
+ end
+ end
return false
end
self.onUseExtra(creature)
diff --git a/data/libs/functions/creature.lua b/data/libs/functions/creature.lua
index d43a31f287d..29e0303ca7e 100644
--- a/data/libs/functions/creature.lua
+++ b/data/libs/functions/creature.lua
@@ -7,9 +7,14 @@ function Creature.getClosestFreePosition(self, position, maxRadius, mustBeReacha
end
local checkPosition = Position(position)
+ local closestDistance = -1
+ local closestPosition = Position()
for radius = 0, maxRadius do
checkPosition.x = checkPosition.x - math.min(1, radius)
checkPosition.y = checkPosition.y + math.min(1, radius)
+ if closestDistance ~= -1 then
+ return closestPosition
+ end
local total = math.max(1, radius * 8)
for i = 1, total do
@@ -20,11 +25,15 @@ function Creature.getClosestFreePosition(self, position, maxRadius, mustBeReacha
local tile = Tile(checkPosition)
if tile and tile:getCreatureCount() == 0 and not tile:hasProperty(CONST_PROP_IMMOVABLEBLOCKSOLID) and (not mustBeReachable or self:getPathTo(checkPosition)) then
- return checkPosition
+ local distance = self:getPosition():getDistance(checkPosition)
+ if closestDistance == -1 or closestDistance > distance then
+ closestDistance = distance
+ closestPosition = Position(checkPosition)
+ end
end
end
end
- return Position()
+ return closestPosition
end
function Creature.getMonster(self)
diff --git a/data/libs/functions/functions.lua b/data/libs/functions/functions.lua
index c39a10de451..48e1ff29078 100644
--- a/data/libs/functions/functions.lua
+++ b/data/libs/functions/functions.lua
@@ -731,10 +731,6 @@ if not bosssPlayers then
}
end
-function isInRange(pos, fromPos, toPos)
- return pos.x >= fromPos.x and pos.y >= fromPos.y and pos.z >= fromPos.z and pos.x <= toPos.x and pos.y <= toPos.y and pos.z <= toPos.z
-end
-
function isNumber(str)
return tonumber(str) ~= nil
end
diff --git a/data/libs/functions/load.lua b/data/libs/functions/load.lua
index 9319bc97ac6..bedbbe84fe1 100644
--- a/data/libs/functions/load.lua
+++ b/data/libs/functions/load.lua
@@ -27,3 +27,4 @@ dofile(CORE_DIRECTORY .. "/libs/functions/teleport.lua")
dofile(CORE_DIRECTORY .. "/libs/functions/tile.lua")
dofile(CORE_DIRECTORY .. "/libs/functions/vocation.lua")
dofile(CORE_DIRECTORY .. "/libs/functions/set.lua")
+dofile(CORE_DIRECTORY .. "/libs/functions/queue.lua")
diff --git a/data/libs/functions/party.lua b/data/libs/functions/party.lua
index c2fdffffc28..b811b8bb547 100644
--- a/data/libs/functions/party.lua
+++ b/data/libs/functions/party.lua
@@ -74,6 +74,50 @@ function Party.hasDruid(self)
return self:hasVocation(VOCATION.BASE_ID.DRUID)
end
+function Party:getPlayersWithVocation(vocation)
+ local players = {}
+ if self:getLeader():getVocation():getBaseId() == vocation then
+ table.insert(players, self:getLeader())
+ end
+ local membersList = self:getMembers()
+ for i = 1, #membersList do
+ local player = membersList[i]
+ if player and player:getVocation():getBaseId() == vocation then
+ table.insert(players, player)
+ end
+ end
+ return players
+end
+
+function Party:getKnights()
+ return self:getPlayersWithVocation(VOCATION.BASE_ID.KNIGHT)
+end
+
+function Party:getPaladins()
+ return self:getPlayersWithVocation(VOCATION.BASE_ID.PALADIN)
+end
+
+function Party:getSorcerers()
+ return self:getPlayersWithVocation(VOCATION.BASE_ID.SORCERER)
+end
+
+function Party:getDruids()
+ return self:getPlayersWithVocation(VOCATION.BASE_ID.DRUID)
+end
+
+function Party:getMages()
+ local sorcerers = self:getSorcerers()
+ local druids = self:getDruids()
+ local mages = {}
+ for i = 1, #sorcerers do
+ table.insert(mages, sorcerers[i])
+ end
+ for i = 1, #druids do
+ table.insert(mages, druids[i])
+ end
+ return mages
+end
+
function Participants(player, requireSharedExperience)
local party = player:getParty()
if not party then
@@ -86,3 +130,14 @@ function Participants(player, requireSharedExperience)
table.insert(members, party:getLeader())
return members
end
+
+function Player:isPartyLeaderOrSolo(sharedExperience)
+ local party = self:getParty()
+ if not party then
+ return true
+ end
+ if sharedExperience and not party:isSharedExperienceActive() then
+ return true
+ end
+ return party:getLeader() == self
+end
diff --git a/data/libs/functions/player.lua b/data/libs/functions/player.lua
index 7be4b743228..b462a4777f6 100644
--- a/data/libs/functions/player.lua
+++ b/data/libs/functions/player.lua
@@ -652,6 +652,62 @@ function Player:setFiendish()
return false
end
+function Player:findItemInInbox(itemId, name)
+ local inbox = self:getSlotItem(CONST_SLOT_STORE_INBOX)
+ local items = inbox:getItems()
+ for _, item in pairs(items) do
+ if item:getId() == itemId and (not name or item:getName() == name) then
+ return item
+ end
+ end
+ return nil
+end
+
+function Player:sendColoredMessage(message)
+ local grey = 3003
+ local blue = 3043
+ local green = 3415
+ local purple = 36792
+ local yellow = 34021
+
+ local msg = message:gsub("{grey|", "{" .. grey .. "|"):gsub("{blue|", "{" .. blue .. "|"):gsub("{green|", "{" .. green .. "|"):gsub("{purple|", "{" .. purple .. "|"):gsub("{yellow|", "{" .. yellow .. "|")
+ return self:sendTextMessage(MESSAGE_LOOT, msg)
+end
+
+function Player:showInfoModal(title, message, buttonText)
+ local modal = ModalWindow({
+ title = title,
+ message = message,
+ })
+ buttonText = buttonText or "Close"
+ modal:addButton(buttonText, function() end)
+ modal:setDefaultEscapeButton(buttonText)
+
+ modal:sendToPlayer(self)
+end
+
+function Player:showConfirmationModal(title, message, yesCallback, noCallback, yesText, noText)
+ local modal = ModalWindow({
+ title = title,
+ message = message,
+ })
+ yesText = yesText or "Yes"
+ modal:addButton(yesText, yesCallback or function() end)
+ noText = noText or "No"
+ modal:addButton(noText, noCallback or function() end)
+ modal:setDefaultEscapeButton(noText)
+
+ modal:sendToPlayer(self)
+end
+
+function Player:removeAll(itemId)
+ local count = 0
+ while self:removeItem(itemId, 1) do
+ count = count + 1
+ end
+ return count
+end
+
local function bossKVScope(bossNameOrId)
local mType = MonsterType(bossNameOrId)
if not mType then
diff --git a/data/libs/functions/queue.lua b/data/libs/functions/queue.lua
new file mode 100644
index 00000000000..33a6c240947
--- /dev/null
+++ b/data/libs/functions/queue.lua
@@ -0,0 +1,73 @@
+Queue = {}
+
+---@param initial table|Queue
+---@param options table
+---@return Queue
+setmetatable(Queue, {
+ __call = function(self)
+ local set = setmetatable({
+ head = 0,
+ tail = -1,
+ items = {},
+ }, { __index = Queue })
+ return set
+ end,
+})
+
+function Queue:isEmpty()
+ return self.head > self.tail
+end
+
+function Queue:enqueue(value)
+ self.tail = self.tail + 1
+ self.items[self.tail] = value
+end
+
+function Queue:dequeue()
+ if self:isEmpty() then
+ error("Queue is empty")
+ end
+
+ local value = self.items[self.head]
+ self.items[self.head] = nil -- to allow garbage collection
+ self.head = self.head + 1
+ return value
+end
+
+function Queue:peek()
+ if self:isEmpty() then
+ error("Queue is empty")
+ end
+
+ return self.items[self.head]
+end
+
+function Queue:size()
+ return self.tail - self.head + 1
+end
+
+RandomQueue = {}
+
+setmetatable(RandomQueue, {
+ __index = Queue,
+ __call = function(self)
+ local instance = setmetatable(Queue(), { __index = RandomQueue })
+ return instance
+ end,
+})
+
+function RandomQueue:dequeue()
+ if self:isEmpty() then
+ error("RandomQueue is empty")
+ end
+
+ local index = math.random(self.head, self.tail)
+ local value = self.items[index]
+
+ -- Move the last item to the place of the removed item to maintain contiguity
+ self.items[index] = self.items[self.tail]
+ self.items[self.tail] = nil -- to allow garbage collection
+ self.tail = self.tail - 1
+
+ return value
+end
diff --git a/data/libs/functions/string.lua b/data/libs/functions/string.lua
index 5d41af47c75..9d746b82e3a 100644
--- a/data/libs/functions/string.lua
+++ b/data/libs/functions/string.lua
@@ -96,6 +96,19 @@ string.splitTrimmed = function(str, sep)
return res
end
+-- Function that splits a string into parts using a separator
+-- @param str (string) - the string to be split, sep (string) - the separator to be used
+-- @return a table containing the separated parts of the string
+function string.splitFirst(str, delimiter)
+ local start, finish = string.find(str, delimiter)
+ if start == nil then
+ return str, nil
+ end
+ local firstPart = string.sub(str, 1, start - 1)
+ local secondPart = string.sub(str, finish + 1)
+ return firstPart:trim(), secondPart:trim()
+end
+
--- Function that removes whitespace from the beginning and end of a string
-- @param str (string) - the string to be modified
-- @return the string without whitespace at the beginning and end
diff --git a/data/libs/functions/teleport.lua b/data/libs/functions/teleport.lua
index de150cdcfdc..266e29d4fd8 100644
--- a/data/libs/functions/teleport.lua
+++ b/data/libs/functions/teleport.lua
@@ -2,7 +2,7 @@ function Teleport.isTeleport(self)
return true
end
-function SimpleTeleport(from, destination, condition)
+function SimpleTeleport(from, destination, condition, disableEffect)
local teleport = MoveEvent()
function teleport.onStepIn(creature, item, position, fromPosition)
@@ -16,7 +16,9 @@ function SimpleTeleport(from, destination, condition)
end
player:teleportTo(destination)
- player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
+ if not disableEffect then
+ player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
+ end
return true
end
diff --git a/data/libs/hireling_lib.lua b/data/libs/hireling_lib.lua
index ee52150c5ea..528a903da88 100644
--- a/data/libs/hireling_lib.lua
+++ b/data/libs/hireling_lib.lua
@@ -676,18 +676,6 @@ function Player:sendHirelingSelectionModal(title, message, callback, data)
modal:sendToPlayer(self)
end
-function Player:showInfoModal(title, message, buttonText)
- local modal = ModalWindow({
- title = title,
- message = message,
- })
- buttonText = buttonText or "Close"
- modal:addButton(buttonText, function() end)
- modal:setDefaultEscapeButton(buttonText)
-
- modal:sendToPlayer(self)
-end
-
function Player:hasHirelingSkill(skillName)
return self:kv():scoped("hireling-skills"):get(skillName)
end
diff --git a/data/libs/reward_boss/reward_boss.lua b/data/libs/reward_boss/reward_boss.lua
index 8913d746a84..5576eb62fa6 100644
--- a/data/libs/reward_boss/reward_boss.lua
+++ b/data/libs/reward_boss/reward_boss.lua
@@ -116,6 +116,9 @@ function ResetAndSetTargetList(creature)
local bossId = creature:getId()
local info = _G.GlobalBosses[bossId]
+ if not info then
+ return
+ end
-- Reset all players' status
for _, player in pairs(info) do
player.active = false
diff --git a/data/modules/scripts/blessings/blessings.lua b/data/modules/scripts/blessings/blessings.lua
index 2f3aa90fe6b..c7c1ce42a72 100644
--- a/data/modules/scripts/blessings/blessings.lua
+++ b/data/modules/scripts/blessings/blessings.lua
@@ -361,6 +361,10 @@ Blessings.BuyAllBlesses = function(player)
end
if player:removeMoneyBank(totalCost) then
+ metrics.addCounter("balance_decrease", remainsPrice, {
+ player = player:getName(),
+ context = "blessings",
+ })
for i, v in ipairs(missingBless) do
player:addBlessing(v.id, 1)
end
diff --git a/data/npclib/npc.lua b/data/npclib/npc.lua
index 5ca017e1f73..30305778707 100644
--- a/data/npclib/npc.lua
+++ b/data/npclib/npc.lua
@@ -54,12 +54,12 @@ end
function SayEvent(npcId, playerId, messageDelayed, npcHandler, textType)
local npc = Npc(npcId)
if not npc then
- return logger.error("[NpcHandler:say] - Npc parameter for npc '{}' is missing, nil or not found", npc:getName())
+ return logger.error("[{} NpcHandler:say] - Npc parameter for npc '{}' is missing, nil or not found", npc:getName(), npc:getName())
end
local player = Player(playerId)
if not player then
- return logger.error("[NpcHandler:say] - Player parameter for npc '{}' is missing, nil or not found", npc:getName())
+ return logger.error("[{} NpcHandler:say] - Player parameter for npc '{}' is missing, nil or not found", npc:getName(), npc:getName())
end
local parseInfo = {
diff --git a/data/npclib/npc_system/modules.lua b/data/npclib/npc_system/modules.lua
index c8f2847c84f..68fff0c39df 100644
--- a/data/npclib/npc_system/modules.lua
+++ b/data/npclib/npc_system/modules.lua
@@ -46,7 +46,7 @@ if Modules == nil then
return false
end
- local cost, costMessage = (configManager.getBoolean(configKeys.TOGGLE_TRAVELS_FREE) and 0) or parameters.cost, "%d gold"
+ local cost, costMessage = (IsTravelFree() and 0) or parameters.cost, "%d gold"
if cost and cost > 0 then
if parameters.discount then
cost = cost - StdModule.travelDiscount(npc, player, parameters.discount)
@@ -64,8 +64,13 @@ if Modules == nil then
[TAG_PVPBLESSCOST] = Blessings.getPvpBlessingCost(player:getLevel(), false),
[TAG_TRAVELCOST] = costMessage,
}
+ if parameters.replacements then
+ for k, v in pairs(parameters.replacements) do
+ parseInfo[k] = v
+ end
+ end
if parameters.text then
- npcHandler:say(npcHandler:parseMessage(parameters.text, parseInfo), npc, player)
+ npcHandler:say(npcHandler:parseMessage(parameters.text, parseInfo, player, message), npc, player)
end
if parameters.ungreet then
@@ -195,7 +200,7 @@ if Modules == nil then
return false
end
- local cost = (configManager.getBoolean(configKeys.TOGGLE_TRAVELS_FREE) and 0) or parameters.cost
+ local cost = (IsTravelFree() and 0) or parameters.cost
if cost and cost > 0 then
if parameters.discount then
cost = cost - StdModule.travelDiscount(npc, player, parameters.discount)
@@ -509,7 +514,7 @@ if Modules == nil then
return false
end
- local cost = (configManager.getBoolean(configKeys.TOGGLE_TRAVELS_FREE) and 0) or parameters.cost
+ local cost = (IsTravelFree() and 0) or parameters.cost
module.npcHandler:say(string.format("Do you want to travel to '%s' for '%d' gold coins?", keywords[1], cost), npc, player)
return true
@@ -523,7 +528,7 @@ if Modules == nil then
local npcHandler = module.npcHandler
- local cost = (configManager.getBoolean(configKeys.TOGGLE_TRAVELS_FREE) and 0) or parameters.cost
+ local cost = (IsTravelFree() and 0) or parameters.cost
local destination = parameters.destination
local premium = parameters.premium
diff --git a/data/npclib/npc_system/npc_handler.lua b/data/npclib/npc_system/npc_handler.lua
index d72dca40553..8f4d5f2ca48 100644
--- a/data/npclib/npc_system/npc_handler.lua
+++ b/data/npclib/npc_system/npc_handler.lua
@@ -221,7 +221,7 @@ if NpcHandler == nil then
function NpcHandler:removeInteraction(npc, player)
local playerId = player:getId()
if Player(player) == nil then
- return logger.error("[NpcHandler:removeInteraction] - Player parameter for npc '{}' is missing or nil", npc:getName())
+ return logger.error("[{} NpcHandler:removeInteraction] - Player parameter for npc '{}' is missing or nil", npc:getName(), npc:getName())
end
if self:getEventDelayedSay(playerId) then
@@ -345,16 +345,29 @@ if NpcHandler == nil then
end
-- Translates all message tags found in msg using parseInfo
- function NpcHandler:parseMessage(msg, parseInfo)
+ function NpcHandler:parseMessage(msg, parseInfo, player, message)
local ret = msg
if type(ret) == "string" then
for search, replace in pairs(parseInfo) do
- ret = string.gsub(ret, search, replace)
+ if type(replace) == "string" then
+ ret = string.gsub(ret, search, replace)
+ elseif type(replace) == "function" then
+ ret = string.gsub(ret, search, replace(player, message))
+ else
+ ret = string.gsub(ret, search, replace)
+ end
end
else
for i = 1, #ret do
for search, replace in pairs(parseInfo) do
ret[i] = string.gsub(ret[i], search, replace)
+ if type(replace) == "string" then
+ ret[i] = string.gsub(ret[i], search, replace)
+ elseif type(replace) == "function" then
+ ret = string.gsub(ret, search, replace(player, message))
+ else
+ ret[i] = string.gsub(ret[i], search, replace)
+ end
end
end
end
diff --git a/data/scripts/eventcallbacks/monster/ondroploot__base.lua b/data/scripts/eventcallbacks/monster/ondroploot__base.lua
index c30f0026316..cb7bc4207e8 100644
--- a/data/scripts/eventcallbacks/monster/ondroploot__base.lua
+++ b/data/scripts/eventcallbacks/monster/ondroploot__base.lua
@@ -1,10 +1,14 @@
local callback = EventCallback()
+function Player:canReceiveLoot()
+ return self:getStamina() > 840
+end
+
function callback.monsterOnDropLoot(monster, corpse)
local player = Player(corpse:getCorpseOwner())
local factor = 1.0
local msgSuffix = ""
- if player and player:getStamina() > 840 then
+ if player and player:canReceiveLoot() then
local config = player:calculateLootFactor(monster)
factor = config.factor
msgSuffix = config.msgSuffix
diff --git a/data/scripts/eventcallbacks/monster/ondroploot_boosted.lua b/data/scripts/eventcallbacks/monster/ondroploot_boosted.lua
index 613d1943f7b..1d94033a572 100644
--- a/data/scripts/eventcallbacks/monster/ondroploot_boosted.lua
+++ b/data/scripts/eventcallbacks/monster/ondroploot_boosted.lua
@@ -1,21 +1,22 @@
local callback = EventCallback()
function callback.monsterOnDropLoot(monster, corpse)
- if configManager.getNumber(configKeys.RATE_LOOT) == 0 then
+ if not monster or not corpse then
return
end
- local mType = monster:getType()
- if mType:isRewardBoss() then
+ if monster:getName():lower() ~= Game.getBoostedCreature():lower() then
return
end
- if monster:getName():lower() ~= Game.getBoostedCreature():lower() then
+ local mType = monster:getType()
+ if mType:isRewardBoss() then
return
end
local player = Player(corpse:getCorpseOwner())
- if not player then
+ if not player or not player:canReceiveLoot() then
return
end
- if player:getStamina() <= 840 then
+ local mType = monster:getType()
+ if not mType then
return
end
diff --git a/data/scripts/eventcallbacks/monster/ondroploot_hazard.lua b/data/scripts/eventcallbacks/monster/ondroploot_hazard.lua
index ec9c7743176..ddcaeaee782 100644
--- a/data/scripts/eventcallbacks/monster/ondroploot_hazard.lua
+++ b/data/scripts/eventcallbacks/monster/ondroploot_hazard.lua
@@ -1,21 +1,15 @@
local callback = EventCallback()
function callback.monsterOnDropLoot(monster, corpse)
- if configManager.getNumber(configKeys.RATE_LOOT) == 0 then
- return
- end
- local mType = monster:getType()
- if mType:isRewardBoss() then
- return
- end
if not monster:hazard() then
return
end
local player = Player(corpse:getCorpseOwner())
- if not player then
+ if not player or not player:canReceiveLoot() then
return
end
- if player:getStamina() <= 840 then
+ local mType = monster:getType()
+ if not mType then
return
end
diff --git a/data/scripts/eventcallbacks/monster/ondroploot_prey.lua b/data/scripts/eventcallbacks/monster/ondroploot_prey.lua
index 123401072c7..1f732f173d2 100644
--- a/data/scripts/eventcallbacks/monster/ondroploot_prey.lua
+++ b/data/scripts/eventcallbacks/monster/ondroploot_prey.lua
@@ -1,18 +1,12 @@
local callback = EventCallback()
function callback.monsterOnDropLoot(monster, corpse)
- if configManager.getNumber(configKeys.RATE_LOOT) == 0 then
- return
- end
- local mType = monster:getType()
- if mType:isRewardBoss() then
- return
- end
local player = Player(corpse:getCorpseOwner())
- if not player then
+ if not player or not player:canReceiveLoot() then
return
end
- if player:getStamina() <= 840 then
+ local mType = monster:getType()
+ if not mType then
return
end
diff --git a/data/scripts/eventcallbacks/monster/ondroploot_wealth_duplex.lua b/data/scripts/eventcallbacks/monster/ondroploot_wealth_duplex.lua
index 0cb45226827..20202c0b5cc 100644
--- a/data/scripts/eventcallbacks/monster/ondroploot_wealth_duplex.lua
+++ b/data/scripts/eventcallbacks/monster/ondroploot_wealth_duplex.lua
@@ -1,18 +1,12 @@
local callback = EventCallback()
function callback.monsterOnDropLoot(monster, corpse)
- if configManager.getNumber(configKeys.RATE_LOOT) == 0 then
- return
- end
- local mType = monster:getType()
- if mType:isRewardBoss() then
- return
- end
local player = Player(corpse:getCorpseOwner())
- if not player then
+ if not player or not player:canReceiveLoot() then
return
end
- if player:getStamina() <= 840 then
+ local mType = monster:getType()
+ if not mType then
return
end
diff --git a/data/scripts/eventcallbacks/monster/postdroploot_analyzer.lua b/data/scripts/eventcallbacks/monster/postdroploot_analyzer.lua
index 371bdd01b65..8214ac98ea1 100644
--- a/data/scripts/eventcallbacks/monster/postdroploot_analyzer.lua
+++ b/data/scripts/eventcallbacks/monster/postdroploot_analyzer.lua
@@ -2,10 +2,7 @@ local callback = EventCallback()
function callback.monsterPostDropLoot(monster, corpse)
local player = Player(corpse:getCorpseOwner())
- if not player then
- return
- end
- if player:getStamina() <= 840 then
+ if not player or not player:canReceiveLoot() then
return
end
local mType = monster:getType()
diff --git a/data/scripts/talkactions/gm/teleport_to_player.lua b/data/scripts/talkactions/gm/teleport_to_player.lua
index 1a59a0ffd12..786cfa7cbab 100644
--- a/data/scripts/talkactions/gm/teleport_to_player.lua
+++ b/data/scripts/talkactions/gm/teleport_to_player.lua
@@ -20,7 +20,7 @@ function teleportToCreature.onSay(player, words, param)
local isGhost = targetPlayer:isInGhostMode()
local isTraining = _G.OnExerciseTraining[targetPlayer:getId()]
local isIdle = targetPlayer:getIdleTime() >= 5 * 60 * 1000
- local isInTrainingRoom = isInRange(targetPlayer:getPosition(), Position(1015, 1109, 7), Position(1094, 1738, 7))
+ local isInTrainingRoom = targetPlayer:getPosition():isInRange(Position(1015, 1109, 7), Position(1094, 1738, 7))
local isActive = not isGhost and not isTraining and not isIdle and not isInTrainingRoom
if isActive then
table.insert(playerList, targetPlayer)
diff --git a/data/scripts/talkactions/god/manage_kv.lua b/data/scripts/talkactions/god/manage_kv.lua
index 6a2f4e6c6b7..d4c7f104c10 100644
--- a/data/scripts/talkactions/god/manage_kv.lua
+++ b/data/scripts/talkactions/god/manage_kv.lua
@@ -15,18 +15,8 @@ get:register()
local set = TalkAction("/setkv")
-local function splitFirst(str, delimiter)
- local start, finish = string.find(str, delimiter)
- if start == nil then
- return str, nil
- end
- local firstPart = string.sub(str, 1, start - 1)
- local secondPart = string.sub(str, finish + 1)
- return firstPart, secondPart
-end
-
function set.onSay(player, words, param)
- local key, value = splitFirst(param, " ")
+ local key, value = string.splitFirst(param, " ")
value = load("return " .. value)()
kv.set(key, value)
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "kv[" .. key .. "] = " .. PrettyString(value))
@@ -39,7 +29,7 @@ set:register()
local bossCooldown = TalkAction("/clearcooldown")
function bossCooldown.onSay(player, words, param)
- local boss, playerName = splitFirst(param, ",")
+ local boss, playerName = string.splitFirst(param, ",")
if not playerName then
playerName = player:getName()
end
diff --git a/data/scripts/talkactions/god/zones.lua b/data/scripts/talkactions/god/zones.lua
index fd2530c6ff8..1eaaf37a098 100644
--- a/data/scripts/talkactions/god/zones.lua
+++ b/data/scripts/talkactions/god/zones.lua
@@ -10,8 +10,15 @@ function zones.onSay(player, words, param)
if cmd == "list" then
local list = {}
+ local filter = params[2] and params[2]:trim()
for _, zone in ipairs(Zone.getAll()) do
+ if filter then
+ if not zone:getName():lower():find(filter:lower()) then
+ goto continue
+ end
+ end
table.insert(list, zone:getName())
+ ::continue::
end
player:sendTextMessage(MESSAGE_HEALED, "Zones:\n" .. table.concat(list, "\n "))
return true
diff --git a/data/scripts/talkactions/player/buy_house.lua b/data/scripts/talkactions/player/buy_house.lua
index 1d50956e71b..c3784d81a6b 100644
--- a/data/scripts/talkactions/player/buy_house.lua
+++ b/data/scripts/talkactions/player/buy_house.lua
@@ -50,6 +50,10 @@ function buyHouse.onSay(player, words, param)
player:sendCancelMessage("You do not have enough money.")
return true
end
+ metrics.addCounter("balance_decrease", remainsPrice, {
+ player = player:getName(),
+ context = "house_purchase",
+ })
house:setHouseOwner(player:getGuid())
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You have successfully bought this house, be sure to have the money for the rent in the bank.")
diff --git a/src/creatures/monsters/monsters.cpp b/src/creatures/monsters/monsters.cpp
index 9230d6bde58..463238e913a 100644
--- a/src/creatures/monsters/monsters.cpp
+++ b/src/creatures/monsters/monsters.cpp
@@ -121,8 +121,6 @@ bool Monsters::deserializeSpell(const std::shared_ptr spell, spell
combatPtr->setParam(COMBAT_PARAM_TYPE, spell->combatType);
} else if (spellName == "speed") {
int32_t speedChange = 0;
- int32_t speedChangeValue = 0;
- int32_t speedChangeRange = 0;
int32_t duration = 10000;
if (spell->duration != 0) {
@@ -146,9 +144,8 @@ bool Monsters::deserializeSpell(const std::shared_ptr spell, spell
}
std::shared_ptr condition = Condition::createCondition(CONDITIONID_COMBAT, conditionType, duration, 0)->static_self_cast();
- speedChangeRange = speedChange / 2;
- speedChangeValue = uniform_random(speedChangeRange, speedChange);
- condition->setFormulaVars(speedChangeValue / 1000.0, 40, speedChangeValue / 1000.0, 40);
+ float multiplier = 1.0f + static_cast(speedChange) / 1000.0f;
+ condition->setFormulaVars(multiplier / 2, 40, multiplier, 40);
combatPtr->addCondition(condition);
} else if (spellName == "outfit") {
int32_t duration = 10000;
diff --git a/src/creatures/players/player.cpp b/src/creatures/players/player.cpp
index 45073f9d878..87070d95594 100644
--- a/src/creatures/players/player.cpp
+++ b/src/creatures/players/player.cpp
@@ -1685,6 +1685,12 @@ void Player::onCreatureAppear(std::shared_ptr creature, bool isLogin)
}
sendBlessStatus();
}
+
+ if (getCurrentMount() != 0) {
+ toggleMount(true);
+ }
+
+ g_game().changePlayerSpeed(static_self_cast(), 0);
}
}
@@ -1717,6 +1723,12 @@ void Player::onChangeZone(ZoneType_t zone) {
wasMounted = true;
}
} else {
+ int32_t ticks = g_configManager().getNumber(STAIRHOP_DELAY, __FUNCTION__);
+ if (ticks > 0) {
+ if (const auto &condition = Condition::createCondition(CONDITIONID_DEFAULT, CONDITION_PACIFIED, ticks, 0)) {
+ addCondition(condition);
+ }
+ }
if (wasMounted) {
toggleMount(true);
wasMounted = false;
@@ -4393,6 +4405,7 @@ void Player::onAddCondition(ConditionType_t type) {
if (type == CONDITION_OUTFIT && isMounted()) {
dismount();
+ wasMounted = true;
}
sendIcons();
@@ -4466,6 +4479,10 @@ void Player::onEndCondition(ConditionType_t type) {
}
}
+ if (type == CONDITION_OUTFIT && wasMounted) {
+ toggleMount(true);
+ }
+
sendIcons();
}
@@ -5610,6 +5627,14 @@ void Player::sendUnjustifiedPoints() {
}
}
+uint8_t Player::getLastMount() const {
+ int32_t value = getStorageValue(PSTRG_MOUNTS_CURRENTMOUNT);
+ if (value > 0) {
+ return value;
+ }
+ return static_cast(kv()->get("last-mount")->get());
+}
+
uint8_t Player::getCurrentMount() const {
int32_t value = getStorageValue(PSTRG_MOUNTS_CURRENTMOUNT);
if (value > 0) {
@@ -5668,7 +5693,7 @@ bool Player::toggleMount(bool mount) {
return false;
}
- uint8_t currentMountId = getCurrentMount();
+ uint8_t currentMountId = getLastMount();
if (currentMountId == 0) {
sendOutfitWindow();
return false;
@@ -5685,6 +5710,7 @@ bool Player::toggleMount(bool mount) {
if (!hasMount(currentMount)) {
setCurrentMount(0);
+ kv()->set("last-mount", 0);
sendOutfitWindow();
return false;
}
@@ -5701,6 +5727,7 @@ bool Player::toggleMount(bool mount) {
defaultOutfit.lookMount = currentMount->clientId;
setCurrentMount(currentMount->id);
+ kv()->set("last-mount", currentMount->id);
if (currentMount->speed != 0) {
g_game().changeSpeed(static_self_cast(), currentMount->speed);
@@ -5760,6 +5787,7 @@ bool Player::untameMount(uint8_t mountId) {
}
setCurrentMount(0);
+ kv()->set("last-mount", 0);
}
return true;
@@ -5791,6 +5819,7 @@ void Player::dismount() {
}
defaultOutfit.lookMount = 0;
+ setCurrentMount(0);
}
bool Player::addOfflineTrainingTries(skills_t skill, uint64_t tries) {
diff --git a/src/creatures/players/player.hpp b/src/creatures/players/player.hpp
index 9f6c01252b2..a33c538c814 100644
--- a/src/creatures/players/player.hpp
+++ b/src/creatures/players/player.hpp
@@ -159,6 +159,7 @@ class Player final : public Creature, public Cylinder, public Bankable {
return CREATURETYPE_PLAYER;
}
+ uint8_t getLastMount() const;
uint8_t getCurrentMount() const;
void setCurrentMount(uint8_t mountId);
bool isMounted() const {
diff --git a/src/game/game.cpp b/src/game/game.cpp
index 8a906efe140..5b973f3776a 100644
--- a/src/game/game.cpp
+++ b/src/game/game.cpp
@@ -5479,7 +5479,7 @@ void Game::playerChangeOutfit(uint32_t playerId, Outfit_t outfit, uint8_t isMoun
auto deltaSpeedChange = mount->speed;
if (player->isMounted()) {
- const auto prevMount = mounts.getMountByID(player->getCurrentMount());
+ const auto prevMount = mounts.getMountByID(player->getLastMount());
if (prevMount) {
deltaSpeedChange -= prevMount->speed;
}
diff --git a/src/kv/kv.cpp b/src/kv/kv.cpp
index 0e2f4b2f836..f3133dec9ca 100644
--- a/src/kv/kv.cpp
+++ b/src/kv/kv.cpp
@@ -32,7 +32,7 @@ void KVStore::set(const std::string &key, const ValueWrapper &value) {
}
void KVStore::setLocked(const std::string &key, const ValueWrapper &value) {
- logger.debug("KVStore::set({})", key);
+ logger.trace("KVStore::set({})", key);
auto it = store_.find(key);
if (it != store_.end()) {
it->second.first = value;
@@ -53,7 +53,7 @@ void KVStore::setLocked(const std::string &key, const ValueWrapper &value) {
}
std::optional KVStore::get(const std::string &key, bool forceLoad /*= false */) {
- logger.debug("KVStore::get({})", key);
+ logger.trace("KVStore::get({})", key);
std::scoped_lock lock(mutex_);
if (forceLoad || !store_.contains(key)) {
auto value = load(key);
@@ -72,11 +72,26 @@ std::optional KVStore::get(const std::string &key, bool forceLoad
return value;
}
+std::unordered_set KVStore::keys(const std::string &prefix /*= ""*/) {
+ std::scoped_lock lock(mutex_);
+ std::unordered_set keys;
+ for (const auto &[key, value] : store_) {
+ if (key.find(prefix) == 0) {
+ std::string suffix = key.substr(prefix.size());
+ keys.insert(suffix);
+ }
+ }
+ for (const auto &key : loadPrefix(prefix)) {
+ keys.insert(key);
+ }
+ return keys;
+}
+
void KV::remove(const std::string &key) {
set(key, ValueWrapper::deleted());
}
std::shared_ptr KVStore::scoped(const std::string &scope) {
- logger.debug("KVStore::scoped({})", scope);
+ logger.trace("KVStore::scoped({})", scope);
return std::make_shared(logger, *this, scope);
}
diff --git a/src/kv/kv.hpp b/src/kv/kv.hpp
index 40fe449834f..99bc1f695a6 100644
--- a/src/kv/kv.hpp
+++ b/src/kv/kv.hpp
@@ -32,6 +32,8 @@ class KV : public std::enable_shared_from_this {
virtual std::shared_ptr scoped(const std::string &scope) = 0;
+ virtual std::unordered_set keys(const std::string &prefix = "") = 0;
+
void remove(const std::string &key);
virtual void flush() {
@@ -60,6 +62,7 @@ class KVStore : public KV {
}
std::shared_ptr scoped(const std::string &scope) override final;
+ std::unordered_set keys(const std::string &prefix = "");
protected:
phmap::parallel_flat_hash_map::iterator>> getStore() {
@@ -76,6 +79,7 @@ class KVStore : public KV {
virtual std::optional load(const std::string &key) = 0;
virtual bool save(const std::string &key, const ValueWrapper &value) = 0;
+ virtual std::vector loadPrefix(const std::string &prefix = "") = 0;
private:
void setLocked(const std::string &key, const ValueWrapper &value);
@@ -118,10 +122,14 @@ class ScopedKV final : public KV {
}
std::shared_ptr scoped(const std::string &scope) override final {
- logger.debug("ScopedKV::scoped({})", buildKey(scope));
+ logger.trace("ScopedKV::scoped({})", buildKey(scope));
return std::make_shared(logger, rootKV_, buildKey(scope));
}
+ std::unordered_set keys(const std::string &prefix = "") override {
+ return rootKV_.keys(buildKey(prefix));
+ }
+
private:
std::string buildKey(const std::string &key) const {
return fmt::format("{}.{}", prefix_, key);
diff --git a/src/kv/kv_sql.cpp b/src/kv/kv_sql.cpp
index a0f1623ed2c..4784efa5c9e 100644
--- a/src/kv/kv_sql.cpp
+++ b/src/kv/kv_sql.cpp
@@ -41,6 +41,24 @@ std::optional KVSQL::load(const std::string &key) {
return std::nullopt;
}
+std::vector KVSQL::loadPrefix(const std::string &prefix /* = ""*/) {
+ std::vector keys;
+ std::string keySearch = db.escapeString(prefix + "%");
+ auto query = fmt::format("SELECT `key_name` FROM `kv_store` WHERE `key_name` LIKE {}", keySearch);
+ auto result = db.storeQuery(query);
+ if (result == nullptr) {
+ return keys;
+ }
+
+ do {
+ std::string key = result->getString("key_name");
+ replaceString(key, prefix, "");
+ keys.push_back(key);
+ } while (result->next());
+
+ return keys;
+}
+
bool KVSQL::save(const std::string &key, const ValueWrapper &value) {
auto update = dbUpdate();
prepareSave(key, value, update);
@@ -58,7 +76,7 @@ bool KVSQL::prepareSave(const std::string &key, const ValueWrapper &value, DBIns
return db.executeQuery(query);
}
- update.addRow(fmt::format("{}, {}, {}", db.escapeString(key), getTimeMsNow(), db.escapeString(data)));
+ update.addRow(fmt::format("{}, {}, {}", db.escapeString(key), value.getTimestamp(), db.escapeString(data)));
return true;
}
diff --git a/src/kv/kv_sql.hpp b/src/kv/kv_sql.hpp
index 8cb4dce89f7..fd181b1cef7 100644
--- a/src/kv/kv_sql.hpp
+++ b/src/kv/kv_sql.hpp
@@ -25,6 +25,7 @@ class KVSQL final : public KVStore {
bool saveAll() override;
private:
+ std::vector loadPrefix(const std::string &prefix = "") override;
std::optional load(const std::string &key) override;
bool save(const std::string &key, const ValueWrapper &value) override;
bool prepareSave(const std::string &key, const ValueWrapper &value, DBInsert &update);
diff --git a/src/kv/value_wrapper.cpp b/src/kv/value_wrapper.cpp
index 023beba1595..af304eeacad 100644
--- a/src/kv/value_wrapper.cpp
+++ b/src/kv/value_wrapper.cpp
@@ -1,30 +1,31 @@
#include "kv/value_wrapper.hpp"
+#include "utils/tools.hpp"
ValueWrapper::ValueWrapper(uint64_t timestamp) :
- timestamp_(timestamp) { }
+ timestamp_(timestamp == 0 ? getTimeMsNow() : timestamp) { }
ValueWrapper::ValueWrapper(const ValueVariant &value, uint64_t timestamp) :
- data_(value), timestamp_(timestamp) { }
+ data_(value), timestamp_(timestamp == 0 ? getTimeMsNow() : timestamp) { }
ValueWrapper::ValueWrapper(const std::string &value, uint64_t timestamp) :
- data_(value), timestamp_(timestamp) { }
+ data_(value), timestamp_(timestamp == 0 ? getTimeMsNow() : timestamp) { }
ValueWrapper::ValueWrapper(bool value, uint64_t timestamp) :
- data_(value), timestamp_(timestamp) { }
+ data_(value), timestamp_(timestamp == 0 ? getTimeMsNow() : timestamp) { }
ValueWrapper::ValueWrapper(int value, uint64_t timestamp) :
- data_(value), timestamp_(timestamp) { }
+ data_(value), timestamp_(timestamp == 0 ? getTimeMsNow() : timestamp) { }
ValueWrapper::ValueWrapper(double value, uint64_t timestamp) :
- data_(value), timestamp_(timestamp) { }
+ data_(value), timestamp_(timestamp == 0 ? getTimeMsNow() : timestamp) { }
ValueWrapper::ValueWrapper(const phmap::flat_hash_map &value, uint64_t timestamp) :
data_(createMapFromRange(value.begin(), value.end(), timestamp)),
- timestamp_(timestamp) { }
+ timestamp_(timestamp == 0 ? getTimeMsNow() : timestamp) { }
ValueWrapper::ValueWrapper(const std::initializer_list> &init_list, uint64_t timestamp) :
data_(createMapFromRange(init_list.begin(), init_list.end(), timestamp)),
- timestamp_(timestamp) { }
+ timestamp_(timestamp == 0 ? getTimeMsNow() : timestamp) { }
std::optional ValueWrapper::get(const std::string &key) const {
auto pval = std::get_if(&data_);
diff --git a/src/lua/functions/core/libs/kv_functions.cpp b/src/lua/functions/core/libs/kv_functions.cpp
index 769c20bff8a..dbef916364d 100644
--- a/src/lua/functions/core/libs/kv_functions.cpp
+++ b/src/lua/functions/core/libs/kv_functions.cpp
@@ -72,7 +72,7 @@ int KVFunctions::luaKVGet(lua_State* L) {
valueWrapper = g_kv().get(key, forceLoad);
}
- if (valueWrapper) {
+ if (valueWrapper.has_value()) {
pushValueWrapper(L, *valueWrapper);
} else {
lua_pushnil(L);
@@ -80,6 +80,44 @@ int KVFunctions::luaKVGet(lua_State* L) {
return 1;
}
+int KVFunctions::luaKVRemove(lua_State* L) {
+ // KV.remove(key) | scopedKV:remove(key)
+ auto key = getString(L, -1);
+ if (isUserdata(L, 1)) {
+ auto scopedKV = getUserdataShared(L, 1);
+ scopedKV->remove(key);
+ } else {
+ g_kv().remove(key);
+ }
+ lua_pushnil(L);
+ return 1;
+}
+
+int KVFunctions::luaKVKeys(lua_State* L) {
+ // KV.keys([prefix = ""]) | scopedKV:keys([prefix = ""])
+ std::unordered_set keys;
+ std::string prefix = "";
+
+ if (isString(L, -1)) {
+ prefix = getString(L, -1);
+ }
+
+ if (isUserdata(L, 1)) {
+ auto scopedKV = getUserdataShared(L, 1);
+ keys = scopedKV->keys();
+ } else {
+ keys = g_kv().keys(prefix);
+ }
+
+ int index = 0;
+ lua_createtable(L, static_cast(keys.size()), 0);
+ for (const auto &key : keys) {
+ pushString(L, key);
+ lua_rawseti(L, -2, ++index);
+ }
+ return 1;
+}
+
std::optional KVFunctions::getValueWrapper(lua_State* L) {
if (isBoolean(L, -1)) {
return ValueWrapper(getBoolean(L, -1));
diff --git a/src/lua/functions/core/libs/kv_functions.hpp b/src/lua/functions/core/libs/kv_functions.hpp
index 243a0ed36e3..3abddfb0b53 100644
--- a/src/lua/functions/core/libs/kv_functions.hpp
+++ b/src/lua/functions/core/libs/kv_functions.hpp
@@ -18,17 +18,23 @@ class KVFunctions final : LuaScriptInterface {
registerMethod(L, "kv", "scoped", KVFunctions::luaKVScoped);
registerMethod(L, "kv", "set", KVFunctions::luaKVSet);
registerMethod(L, "kv", "get", KVFunctions::luaKVGet);
+ registerMethod(L, "kv", "keys", KVFunctions::luaKVKeys);
+ registerMethod(L, "kv", "remove", KVFunctions::luaKVRemove);
registerClass(L, "KV", "");
registerMethod(L, "KV", "scoped", KVFunctions::luaKVScoped);
registerMethod(L, "KV", "set", KVFunctions::luaKVSet);
registerMethod(L, "KV", "get", KVFunctions::luaKVGet);
+ registerMethod(L, "KV", "keys", KVFunctions::luaKVKeys);
+ registerMethod(L, "KV", "remove", KVFunctions::luaKVRemove);
}
private:
static int luaKVScoped(lua_State* L);
static int luaKVSet(lua_State* L);
static int luaKVGet(lua_State* L);
+ static int luaKVKeys(lua_State* L);
+ static int luaKVRemove(lua_State* L);
static std::optional getValueWrapper(lua_State* L);
static void pushStringValue(lua_State* L, const StringType &value);
diff --git a/src/server/network/protocol/protocolgame.cpp b/src/server/network/protocol/protocolgame.cpp
index 952acec8bf8..408f6c12904 100644
--- a/src/server/network/protocol/protocolgame.cpp
+++ b/src/server/network/protocol/protocolgame.cpp
@@ -6411,7 +6411,7 @@ void ProtocolGame::sendOutfitWindow() {
if (oldProtocol) {
Outfit_t currentOutfit = player->getDefaultOutfit();
- const auto currentMount = g_game().mounts.getMountByID(player->getCurrentMount());
+ const auto currentMount = g_game().mounts.getMountByID(player->getLastMount());
if (currentMount) {
currentOutfit.lookMount = currentMount->clientId;
}
@@ -6471,7 +6471,7 @@ void ProtocolGame::sendOutfitWindow() {
bool mounted = false;
Outfit_t currentOutfit = player->getDefaultOutfit();
- const auto currentMount = g_game().mounts.getMountByID(player->getCurrentMount());
+ const auto currentMount = g_game().mounts.getMountByID(player->getLastMount());
if (currentMount) {
mounted = (currentOutfit.lookMount == currentMount->clientId);
currentOutfit.lookMount = currentMount->clientId;
diff --git a/tests/fixture/kv/in_memory_kv.hpp b/tests/fixture/kv/in_memory_kv.hpp
index b738a98470a..84a84ba8dff 100644
--- a/tests/fixture/kv/in_memory_kv.hpp
+++ b/tests/fixture/kv/in_memory_kv.hpp
@@ -35,6 +35,9 @@ class KVMemory final : public KVStore {
}
protected:
+ std::vector loadPrefix(const std::string &prefix = "") override {
+ return {};
+ }
std::optional load(const std::string &key) override {
return std::nullopt;
}