Advertisement
Alscara

skills.lua

Jun 19th, 2015
355
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.89 KB | None | 0 0
  1. cSkills = {
  2.     ["Basic Smithing"] = {storage = 40000, maxskill = 100, bonus = 0.0033, minskill = 10, ratetries = 1.12},
  3.     ["Dwarven Smithing"] = {storage = 40001, maxskill = 100, bonus = 0.0025, minskill = 10, ratetries = 1.13},
  4.     ["Dragon Smithing"] = {storage = 40002, maxskill = 100, bonus = 0.0025, minskill = 10, ratetries = 1.14},
  5.     ["Magic Smithing"] = {storage = 40003, maxskill = 100, bonus = 0.002, minskill = 10, ratetries = 1.15},
  6.     ["Advanced Smithing"] = {storage = 40004, maxskill = 100, bonus = 0.0015, minskill = 10, ratetries = 1.16},
  7.     ["Legendary Smithing"] = {storage = 40005, maxskill = 100, bonus = 0.0015, minskill = 10, ratetries = 1.17},
  8.     ["Ultimate Smithing"] = {storage = 40006, maxskill = 100, bonus = 0.001, minskill = 10, ratetries = 1.18},
  9.     ["Demon Smithing"] = {storage = 40007, maxskill = 100, bonus = 0.00075, minskill = 10, ratetries = 1.19},
  10.     ["Umbral Smithing"] = {storage = 40008, maxskill = 100, bonus = 0.0005, minskill = 10, ratetries = 1.2},
  11.     ["Basic Tanning"] = {storage = 40010, maxskill = 100, bonus = 0.002, minskill = 10, ratetries = 1.1},
  12.     ["Basic Smelting"] = {storage = 40011, maxskill = 100, bonus = 0.002, minskill = 10, ratetries = 1.1},
  13.     ["Advanced Smelting"] = {storage = 40012, maxskill = 100, bonus = 0.002, minskill = 10, ratetries = 1.15},
  14. }
  15. local storageOffset = 1000
  16. local skillRate = 30
  17. function Player.getCSkill(self, skill)
  18.     return self:getStorageValue(cSkills[skill].storage)
  19. end
  20.  
  21. function Player.setCSkill(self, skill, new)
  22.     return self:setStorageValue(cSkills[skill].storage, new)
  23. end
  24.  
  25. function Player.addCSkill(self, skill, count)
  26.     local current = self:getCSkill(skill)
  27.     self:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You advanced to " .. string.lower(skill) .. " level " .. current + count .. ".")
  28.     return self:setCSkill(skill, current + count)
  29. end
  30.  
  31. function Player.getCSkillTries(self, skill)
  32.     return self:getStorageValue(cSkills[skill].storage + storageOffset)
  33. end
  34.  
  35. function Player.getRequiredCTries(self, skill)
  36.     local currentLevel = self:getStorageValue(cSkills[skill].storage)
  37.     local requiredTries = math.floor(50 * math.pow(cSkills[skill].ratetries, currentLevel - 10) / skillRate)
  38.     return requiredTries
  39. end
  40.  
  41. function Player.setCTries(self, skill, value)
  42.     return self:setStorageValue(cSkills[skill].storage + storageOffset, value)
  43. end
  44.  
  45. function Player.addCSkillTries(self, skill, tries)
  46.     local current = self:getCSkillTries(skill)
  47.     if self:getCSkill(skill) >= cSkills[skill].maxskill then
  48.         return false
  49.     end
  50.     self:setStorageValue(cSkills[skill].storage + storageOffset, current + tries)
  51.     while self:getCSkillTries(skill) > self:getRequiredCTries(skill) do
  52.         self:setCTries(skill, self:getCSkillTries(skill) - self:getRequiredCTries(skill))
  53.         self:addCSkill(skill, 1)
  54.     end
  55.     return true
  56. end
  57.  
  58. function Player.getCSkillPercent(self, skill)
  59.     return 100 - math.floor((self:getCSkillTries(skill) / self:getRequiredCTries(skill)) * 100)
  60. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement