Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local function addSkills(player, skillId)
- player:addSkillTries(skillId, player:getVocation():getRequiredSkillTries(skillId, player:getSkillLevel(skillId) + 1) - player:getSkillTries(skillId))
- return false
- end
- local skillids = {
- ["shield"] = SKILL_SHIELD,
- ["sword"] = SKILL_SWORD,
- ["axe"] = SKILL_AXE,
- ["club"] = SKILL_CLUB,
- ["fist"] = SKILL_FIST,
- ["dist"] = SKILL_DISTANCE
- }
- local attributes = {
- ["health"] = {reqPoints = 1, increaseBy = 2, name = "Hit Points"},
- ["mana"] = {reqPoints = 1, increaseBy = 2, name = "Mana Points"},
- ["magic"] = {reqPoints = 15, increaseBy = 1, name = "Magic Level"},
- ["shielding"] = {reqPoints = 15, increaseBy = 1, name = "Shielding Skill"},
- ["sword"] = {reqPoints = 15, increaseBy = 1, name = "Sword Skill"},
- ["axe"] = {reqPoints = 15, increaseBy = 1, name = "Axe Skill"},
- ["club"] = {reqPoints = 15, increaseBy = 1, name = "Club Skill"},
- ["fist"] = {reqPoints = 15, increaseBy = 1, name = "Fist Skill"},
- ["distance"] = {reqPoints = 15, increaseBy = 1, name = "Distance Skill"},
- }
- function onModalWindow(player, modalWindowId, buttonId, choiceId)
- print("LOADED")
- local SKILL_POINTS = 45200 --- Change here the storage value used to save the skill points
- local points = player:getStorageValue(SKILL_POINTS)
- local function sendCancel()
- player:sendTextMessage(MESSAGE_INFO_DESCR, "You do not have the required amount of Skill Points!")
- end
- local function doAddHealth(param, attributes)
- player:setMaxHealth(player:getMaxHealth() + attributes["health"].increaseBy*param)
- player:addHealth(attributes["health"].increaseBy*param)
- player:setStorageValue(SKILL_POINTS, points - attributes["health"].reqPoints*param)
- player:sendTextMessage(MESSAGE_INFO_DESCR, "You have gained " ..attributes["health"].increaseBy.. " " ..attributes["health"].name.. "!")
- return true
- end
- local function doAddMana(param, attributes)
- player:setMaxMana(player:getMaxMana() + attributes["mana"].increaseBy*param)
- player:addMana(attributes["mana"].increaseBy*param)
- player:setStorageValue(SKILL_POINTS, points - attributes["mana"].reqPoints*param)
- player:sendTextMessage(MESSAGE_INFO_DESCR, "You have gained " ..attributes["mana"].increaseBy.. " " ..attributes["mana"].name.. "!")
- return true
- end
- if (not modalWindowId == 1) or (buttonId == 4) then
- return false
- end
- if choiceId == 1 then
- if buttonId == 1 then
- if points >= attributes["health"].reqPoints then
- doAddHealth(1, attributes)
- else
- sendCancel()
- end
- end
- if buttonId == 2 then
- if points >= attributes["health"].reqPoints*2 then
- doAddHealth(2, attributes)
- else
- sendCancel()
- end
- end
- if buttonId == 3 then
- if points >= attributes["health"].reqPoints*5 then
- doAddHealth(5, attributes)
- else
- sendCancel()
- end
- end
- end
- if choiceId == 2 then
- if buttonId == 1 then
- if points >= attributes["mana"].reqPoints then
- doAddMana(1, attributes)
- else
- sendCancel()
- end
- end
- if buttonId == 2 then
- if points >= attributes["mana"].reqPoints*2 then
- doAddMana(2, attributes)
- else
- sendCancel()
- end
- end
- if buttonId == 3 then
- if points >= attributes["mana"].reqPoints*5 then
- doAddMana(5, attributes)
- else
- sendCancel()
- end
- end
- end
- if choiceId == 3 then
- if buttonId == 1 then
- if points >= attributes["magic"].reqPoints then
- player:addManaSpent(math.ceil((player:getVocation():getRequiredManaSpent(player:getBaseMagicLevel() + 1)) / configManager.getNumber(configKeys.RATE_MAGIC)))
- player:setStorageValue(SKILL_POINTS, points - attributes["magic"].reqPoints)
- else
- sendCancel()
- end
- end
- if buttonId == 2 then
- if points >= attributes["magic"].reqPoints*2 then
- for i = 1,2 do
- player:addManaSpent(math.ceil((player:getVocation():getRequiredManaSpent(player:getBaseMagicLevel() + 1)) / configManager.getNumber(configKeys.RATE_MAGIC)))
- player:setStorageValue(SKILL_POINTS, points - attributes["magic"].reqPoints)
- end
- else
- sendCancel()
- end
- end
- if buttonId == 3 then
- if points >= attributes["magic"].reqPoints*5 then
- for i = 1,5 do
- player:addManaSpent(math.ceil((player:getVocation():getRequiredManaSpent(player:getBaseMagicLevel() + 1)) / configManager.getNumber(configKeys.RATE_MAGIC)))
- player:setStorageValue(SKILL_POINTS, points - attributes["magic"].reqPoints)
- end
- else
- sendCancel()
- end
- end
- end
- if choiceId == 4 then
- if buttonId == 1 then
- if points >= attributes["sword"].reqPoints then
- addSkills(player, skillids["sword"])
- end
- end
- if buttonId == 2 then
- if points >= attributes["sword"].reqPoints*2 then
- for i = 1,2 do
- addSkills(player, skillids["sword"])
- end
- else
- sendCancel()
- end
- end
- if buttonId == 3 then
- if points >= attributes["sword"].reqPoints*5 then
- for i = 1,5 do
- addSkills(player, skillids["sword"])
- end
- else
- sendCancel()
- end
- end
- end
- if choiceId == 5 then
- if buttonId == 1 then
- if points >= attributes["axe"].reqPoints then
- addSkills(player, skillids["axe"])
- end
- else
- sendCancel()
- end
- if buttonId == 2 then
- if points >= attributes["axe"].reqPoints*2 then
- for i = 1,2 do
- addSkills(player, skillids["axe"])
- end
- else
- sendCancel()
- end
- end
- if buttonId == 3 then
- if points >= attributes["axe"].reqPoints*5 then
- for i = 1,5 do
- addSkills(player, skillids["axe"])
- end
- else
- sendCancel()
- end
- end
- end
- if choiceId == 6 then
- if buttonId == 1 then
- if points >= attributes["club"].reqPoints then
- addSkills(player, skillids["club"])
- end
- else
- sendCancel()
- end
- if buttonId == 2 then
- if points >= attributes["club"].reqPoints*2 then
- for i = 1,2 do
- addSkills(player, skillids["club"])
- end
- else
- sendCancel()
- end
- end
- if buttonId == 3 then
- if points >= attributes["club"].reqPoints*5 then
- for i = 1,5 do
- addSkills(player, skillids["club"])
- end
- else
- sendCancel()
- end
- end
- end
- if choiceId == 7 then
- if buttonId == 1 then
- if points >= attributes["shielding"].reqPoints then
- addSkills(player, skillids["shield"])
- end
- else
- sendCancel()
- end
- if buttonId == 2 then
- if points >= attributes["shielding"].reqPoints*2 then
- for i = 1,2 do
- addSkills(player, skillids["shield"])
- end
- else
- sendCancel()
- end
- end
- if buttonId == 3 then
- if points >= attributes["shielding"].reqPoints*5 then
- for i = 1,5 do
- addSkills(player, skillids["shield"])
- end
- else
- sendCancel()
- end
- end
- end
- if choiceId == 8 then
- if buttonId == 1 then
- if points >= attributes["distance"].reqPoints then
- addSkills(player, skillids["dist"])
- end
- else
- sendCancel()
- end
- if buttonId == 2 then
- if points >= attributes["distance"].reqPoints*2 then
- for i = 1,2 do
- addSkills(player, skillids["dist"])
- end
- else
- sendCancel()
- end
- end
- if buttonId == 3 then
- if points >= attributes["distance"].reqPoints*5 then
- for i = 1,5 do
- addSkills(player, skillids["dist"])
- end
- else
- sendCancel()
- end
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement