Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 1 addition & 6 deletions config.lua.dist
Original file line number Diff line number Diff line change
Expand Up @@ -465,12 +465,6 @@ inventoryGlowOnFiveBless = false
adventurersBlessingLevel = 21
skulledDeathLoseStoreItem = false
experienceDisplayRates = true
-- configure attack base on Fist Fighting skill/experience
-- multiplierSpeedOnFist * 5 (multiplies the value obtained from the player fist skill and multiplies it * 5) max 25 is recommended due minTicks limits else player stop attack
-- maxSpeedOnFist 500 miliseconds (The maximum attack speed that can be obtained no matter how high the player has the Fist Fighting skill.)
toggleAttackSpeedOnFist = false
multiplierSpeedOnFist = 5
maxSpeedOnFist = 500
disableLegacyRaids = false
disableMonsterArmor = false
minElementalResistance = -200
Expand All @@ -485,6 +479,7 @@ combatChainTargets = 5
combatChainSkillFormulaAxe = 0.9
combatChainSkillFormulaClub = 0.7
combatChainSkillFormulaSword = 1.1
combatChainSkillFormulaFist = 1.1

-- Global server Save
-- NOTE: globalServerSaveNotifyDuration in minutes
Expand Down
2 changes: 1 addition & 1 deletion data-canary/monster/magicals/frazzlemaw.lua
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ monster.loot = {
{ name = "great mana potion", chance = 15000, maxCount = 3 },
{ name = "great health potion", chance = 15000, maxCount = 2 },
{ name = "gold ingot", chance = 2300 },
{ name = "sai", chance = 1460 },
{ name = "traditional sai", chance = 1460 },
{ name = "violet crystal shard", chance = 3000 },
{ name = "brown crystal splinter", chance = 16000 },
{ name = "red crystal fragment", chance = 7600 },
Expand Down
2 changes: 1 addition & 1 deletion data-canary/monster/magicals/guzzlemaw.lua
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ monster.loot = {
{ name = "nightmare blade", chance = 380 },
{ name = "great mana potion", chance = 17000, maxCount = 3 },
{ name = "great health potion", chance = 18500, maxCount = 2 },
{ name = "sai", chance = 1200 },
{ name = "traditional sai", chance = 1200 },
{ name = "violet crystal shard", chance = 3000 },
{ name = "brown crystal splinter", chance = 12000, maxCount = 2 },
{ name = "red crystal fragment", chance = 7600 },
Expand Down
4 changes: 4 additions & 0 deletions data-canary/scripts/actions/other/destroy.lua
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,10 @@ local setting = {
31614, -- tagralt blade
32093, -- meat hammer
32616, -- phantasmal axe
50163, -- crude umbral katar
50164, -- umbral katar
50165, -- umbral master katar
50168, -- nunchaku of destruction
}

local destroy = Action()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
local quest = {
name = "The Way of the Monk",
startStorageId = Storage.Quest.U14_15.TheWayOfTheMonk.QuestLine,
startStorageValue = 1,
missions = {
[1] = {
name = "The Three-Fold Path",
storageId = Storage.Quest.U14_15.TheWayOfTheMonk.Missions.TreeFoldPath,
missionId = 10502,
startValue = 1,
endValue = 3,
states = {
[1] = function(player)
return string.format(
"You have learned about the Three-Fold Path from ambassador Manop on Dawnport. Follow the way of Merudri, train hard and you will become a true warrior monk. Start by visiting the four Merudri shrines on Dawnport and report back to Manop.\n\nVisited the first shrine: %s/1\nVisited the second shrine: %s/1\nVisited the third shrine: %s/1\nVisited the fourth shrine: %s/1",
player:getStorageValue(Storage.Quest.U14_15.TheWayOfTheMonk.DawnportFirstShrine) or 0,
player:getStorageValue(Storage.Quest.U14_15.TheWayOfTheMonk.DawnportSecondShrine) or 0,
player:getStorageValue(Storage.Quest.U14_15.TheWayOfTheMonk.DawnportThirdShrine) or 0,
player:getStorageValue(Storage.Quest.U14_15.TheWayOfTheMonk.DawnportFourthShrine) or 0
)
end,
[2] = function(player)
return string.format(
"You have chosen the path of the monk. Find the Blue Valley and visit the Enpa to learn more about the warrior monks and the way of the Merudri. Visit all eleven shrines of the Merudri to complete your pilgrimage on the Tree-Fold Path. Consult Enpa-Dela Pema in the Blue Valley to reveal more about this journey.\n\nMost recent visited Merudri shrine: %s/11",
player:getStorageValue(Storage.Quest.U14_15.TheWayOfTheMonk.ShrinesCount)
)
end,
[3] = "You have visited all eleven shrines.",
},
},
},
}

return quest
1 change: 1 addition & 0 deletions data-otservbr-global/lib/core/quests/catalog/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ local questModules = {
"048_the_outlaw_camp",
"049_the_secret_library",
"050_the_dream_courts",
"051_the_way_of_the_monk",
}

local catalog = dofile(CORE_DIRECTORY .. "/lib/core/quests/catalog.lua")
Expand Down
19 changes: 19 additions & 0 deletions data-otservbr-global/lib/core/storages.lua
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,12 @@ Storage = {
MessageStair = 52277,
Lever = 52278,
Mainland = 52279,
MonkHealthPotion = 52280,
MonkManaPotion = 52281,
MonkLightestMissile = 52282,
MonkLightStoneShower = 52283,
MonkMeat = 52284,
Monk = 52285,
},
TheMummysCurse = {
-- Reserved storage from 52350 - 52359
Expand Down Expand Up @@ -2950,6 +2956,19 @@ Storage = {
AccessDoor = 47952,
},
},
U14_15 = { -- update 14.15 - Reserved Storages 49101 - 49150
TheWayOfTheMonk = {
QuestLine = 49101,
ShrinesCount = 49102,
DawnportFirstShrine = 49103,
DawnportSecondShrine = 49104,
DawnportThirdShrine = 49105,
DawnportFourthShrine = 49106,
Missions = {
TreeFoldPath = 49107,
},
},
},
},
-- Reserved storage from 63951 - 63999
ThaisExhibition = {
Expand Down
1 change: 1 addition & 0 deletions data-otservbr-global/lib/others/dawnport.lua
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ function removeMainlandSmugglingItems(player)
7876, -- Small health potion
21352, -- Lightest missile rune
21351, -- Light stone shower rune
50166, -- Light Jo Staff
}
for i = 1, #smugglingItemIds do
local smugglingItemAmount = player:getItemCount(smugglingItemIds[i])
Expand Down
1 change: 1 addition & 0 deletions data-otservbr-global/lib/quests/soul_war.lua
Original file line number Diff line number Diff line change
Expand Up @@ -435,6 +435,7 @@ SoulWarQuest = {
"Knight's Apparition",
"Paladin's Apparition",
"Sorcerer's Apparition",
"Monk's Apparition",
},

burningTransformations = {
Expand Down
2 changes: 2 additions & 0 deletions data-otservbr-global/lib/tables/town.lua
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,6 @@ TOWNS_LIST = {
COBRA_BASTION = 24,
BOUNAC = 25,
FEYRIST = 26,

BLUE_VALLEY = 33,
}
101 changes: 101 additions & 0 deletions data-otservbr-global/monster/birds/tame_terror_bird.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
local mType = Game.createMonsterType("Tame Terror Bird")
local monster = {}

monster.description = "a tame terror bird"
monster.experience = 0
monster.outfit = {
lookType = 218,
lookHead = 0,
lookBody = 0,
lookLegs = 0,
lookFeet = 0,
lookAddons = 0,
lookMount = 0,
}

monster.health = 300
monster.maxHealth = 300
monster.race = "blood"
monster.corpse = 6057
monster.speed = 106
monster.manaCost = 490

monster.changeTarget = {
interval = 4000,
chance = 10,
}

monster.strategiesTarget = {
nearest = 70,
damage = 30,
}

monster.flags = {
summonable = false,
attackable = true,
hostile = false,
convinceable = true,
pushable = false,
rewardBoss = false,
illusionable = false,
canPushItems = true,
canPushCreatures = true,
staticAttackChance = 90,
targetDistance = 1,
runHealth = 0,
healthHidden = false,
isBlockable = false,
canWalkOnEnergy = false,
canWalkOnFire = false,
canWalkOnPoison = false,
}

monster.light = {
level = 0,
color = 0,
}

monster.voices = {
interval = 5000,
chance = 10,
{ text = "Carrah! Carrah!", yell = false },
{ text = "Gruuuh Gruuuh.", yell = false },
{ text = "CRAAAHHH!", yell = true },
}

monster.loot = {
{ name = "meat", chance = 48550, maxCount = 3 },
{ name = "worm", chance = 9540, maxCount = 3 },
}

monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -90 },
}

monster.defenses = {
defense = 13,
armor = 13,
mitigation = 0.54,
}

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 = 0 },
{ type = COMBAT_HOLYDAMAGE, percent = 0 },
{ type = COMBAT_DEATHDAMAGE, percent = 0 },
}

monster.immunities = {
{ type = "paralyze", condition = false },
{ type = "outfit", condition = false },
{ type = "invisible", condition = false },
{ type = "bleed", condition = false },
}

mType:register(monster)
Loading
Loading