Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local config = {
- -- base vocationId
- [0] = {
- -- skillId
- [SKILL_FIST] = {
- -- [{skillLevel}] = skillRate
- [{0, 14}] = 12,
- [{15, 21}] = 8
- },
- [SKILL_CLUB] = {
- [{0, 14}] = 12,
- [{15, 21}] = 8
- },
- [SKILL_SWORD] = {
- [{0, 14}] = 12,
- [{15, 21}] = 8
- },
- [SKILL_AXE] = {
- [{0, 14}] = 12,
- [{15, 21}] = 8
- },
- [SKILL_DISTANCE] = {
- [{0, 14}] = 12,
- [{15, 21}] = 8
- },
- [SKILL_SHIELD] = {
- [{0, 19}] = 12,
- [{20, 26}] = 8
- },
- [SKILL_FISHING] = {
- [{0, 19}] = 12,
- [{20, 29}] = 8
- },
- },
- [1] = {
- -- skillId
- [SKILL_FIST] = {
- -- [{skillLevel}] = skillRate
- [{0, 14}] = 12,
- [{15, 21}] = 8
- },
- [SKILL_CLUB] = {
- [{0, 14}] = 12,
- [{15, 21}] = 8
- },
- [SKILL_SWORD] = {
- [{0, 14}] = 12,
- [{15, 21}] = 8
- },
- [SKILL_AXE] = {
- [{0, 14}] = 12,
- [{15, 21}] = 8
- },
- [SKILL_DISTANCE] = {
- [{0, 14}] = 12,
- [{15, 21}] = 8
- },
- [SKILL_SHIELD] = {
- [{0, 19}] = 12,
- [{20, 26}] = 8
- },
- [SKILL_FISHING] = {
- [{0, 19}] = 12,
- [{20, 29}] = 8
- },
- [SKILL_MAGLEVEL] = {
- [{0, 40}] = 5,
- [{41, 55}] = 4,
- [{56, 65}] = 3,
- [{66, 68}] = 1,
- [{68, 90}] = 0.1
- }
- },
- [2] = {
- -- skillId
- [SKILL_FIST] = {
- -- [{skillLevel}] = skillRate
- [{0, 14}] = 12,
- [{15, 21}] = 8
- },
- [SKILL_CLUB] = {
- [{0, 14}] = 12,
- [{15, 21}] = 8
- },
- [SKILL_SWORD] = {
- [{0, 14}] = 12,
- [{15, 21}] = 8
- },
- [SKILL_AXE] = {
- [{0, 14}] = 12,
- [{15, 21}] = 8
- },
- [SKILL_DISTANCE] = {
- [{0, 14}] = 12,
- [{15, 21}] = 8
- },
- [SKILL_SHIELD] = {
- [{0, 19}] = 12,
- [{20, 26}] = 8
- },
- [SKILL_FISHING] = {
- [{0, 19}] = 12,
- [{20, 29}] = 8
- },
- [SKILL_MAGLEVEL] = {
- [{0, 40}] = 5,
- [{41, 55}] = 4,
- [{56, 65}] = 3,
- [{66, 68}] = 1,
- [{68, 90}] = 0.1
- }
- },
- [3] = {
- -- skillId
- [SKILL_FIST] = {
- -- [{skillLevel}] = skillRate
- [{0, 30}] = 12,
- [{31, 40}] = 8
- },
- [SKILL_CLUB] = {
- [{0, 30}] = 12,
- [{31, 40}] = 8
- },
- [SKILL_SWORD] = {
- [{0, 30}] = 12,
- [{31, 40}] = 8
- },
- [SKILL_AXE] = {
- [{0, 30}] = 12,
- [{31, 40}] = 8
- },
- [SKILL_DISTANCE] = {
- [{0, 59}] = 12,
- [{60, 79}] = 8,
- [{80, 89}] = 5,
- [{90, 94}] = 2,
- [{95, 100}] = 0.1
- },
- [SKILL_SHIELD] = {
- [{0, 59}] = 12,
- [{60, 79}] = 8,
- [{80, 89}] = 5,
- [{90, 94}] = 2,
- [{95, 100}] = 0.1
- },
- [SKILL_FISHING] = {
- [{0, 19}] = 12,
- [{20, 29}] = 8
- },
- [SKILL_MAGLEVEL] = {
- [{0, 14}] = 5,
- [{15, 17}] = 4,
- [{18, 19}] = 3,
- [{20, 21}] = 1,
- [{22, 90}] = 0.1
- }
- },
- [4] = {
- -- skillId
- [SKILL_FIST] = {
- -- [{skillLevel}] = skillRate
- [{0, 59}] = 12,
- [{60, 79}] = 8,
- [{80, 89}] = 5,
- [{90, 94}] = 2,
- [{95, 100}] = 0.1
- },
- [SKILL_CLUB] = {
- [{0, 59}] = 12,
- [{60, 79}] = 8,
- [{80, 89}] = 5,
- [{90, 94}] = 2,
- [{95, 100}] = 0.1
- },
- [SKILL_SWORD] = {
- [{0, 59}] = 12,
- [{60, 79}] = 8,
- [{80, 89}] = 5,
- [{90, 94}] = 2,
- [{95, 100}] = 0.1
- },
- [SKILL_AXE] = {
- [{0, 59}] = 12,
- [{60, 79}] = 8,
- [{80, 89}] = 5,
- [{90, 94}] = 2,
- [{95, 100}] = 0.1
- },
- [SKILL_DISTANCE] = {
- [{0, 30}] = 12,
- [{31, 40}] = 8
- },
- [SKILL_SHIELD] = {
- [{0, 59}] = 12,
- [{60, 79}] = 8,
- [{80, 89}] = 5,
- [{90, 94}] = 2,
- [{95, 100}] = 0.1
- },
- [SKILL_FISHING] = {
- [{0, 19}] = 12,
- [{20, 29}] = 8
- },
- [SKILL_MAGLEVEL] = {
- [{0, 4}] = 5,
- [{5, 5}] = 4,
- [{6, 6}] = 3,
- [{7, 7}] = 1,
- [{8, 90}] = 0.1
- }
- }
- }
- function Vocation.getBase(self)
- local demotion = self:getDemotion()
- while demotion do
- local tmp = demotion:getDemotion()
- if not tmp then
- return demotion
- end
- demotion = tmp
- end
- return self
- end
- local function getSkillRate(player, skillId)
- local targetVocation = config[player:getVocation():getBase():getId()]
- if targetVocation then
- local targetSkillStage = targetVocation[skillId]
- if targetSkillStage then
- local skillLevel = player:getSkillLevel(skillId)
- for level, rate in pairs(targetSkillStage) do
- if skillLevel >= level[1] and skillLevel <= level[2] then
- return rate
- end
- end
- end
- end
- return skillId == SKILL_MAGLEVEL and configManager.getNumber(configKeys.RATE_MAGIC) or configManager.getNumber(configKeys.RATE_SKILL)
- end
- function Player:onGainSkillTries(skill, tries)
- if not APPLY_SKILL_MULTIPLIER then
- return tries
- end
- return tries * getSkillRate(self, skill)
- end
Advertisement
Add Comment
Please, Sign In to add comment