Advertisement
Guest User

Untitled

a guest
Mar 10th, 2015
430
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 6.08 KB | None | 0 0
  1. local keywordHandler = KeywordHandler:new()
  2. local npcHandler = NpcHandler:new(keywordHandler)
  3. NpcSystem.parseParameters(npcHandler)
  4.  
  5. function onCreatureAppear(cid)          npcHandler:onCreatureAppear(cid)            end
  6. function onCreatureDisappear(cid)       npcHandler:onCreatureDisappear(cid)         end
  7. function onCreatureSay(cid, type, msg)  npcHandler:onCreatureSay(cid, type, msg)    end
  8. function onThink()                      npcHandler:onThink()                        end
  9.  
  10. -- Buff Config beginning --
  11.  
  12. -- configs
  13. local config = {
  14.     storage = 77700,
  15.     money = 2000,
  16.     duration = 600,
  17.     skills = {
  18.         fist = 20,
  19.         club = 20,
  20.         sword = 20,
  21.         axe = 20,
  22.         distance = 20,
  23.         shield = 20,
  24.         magicLevel = 10
  25.     }
  26. }
  27.  
  28. -- Configs of buffs
  29.  
  30. local conditionMagicLevel = Condition(CONDITION_ATTRIBUTES)
  31. conditionMagicLevel:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
  32. conditionMagicLevel:setParameter(CONDITION_PARAM_TICKS, config.duration * 1000)
  33. conditionMagicLevel:setParameter(CONDITION_PARAM_STAT_MAGICLEVEL, config.skills.magicLevel)
  34.  
  35. local conditionInvisible = Condition(CONDITION_INVISIBLE)
  36. conditionInvisible:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
  37. conditionInvisible:setParameter(CONDITION_PARAM_TICKS, config.duration * 1000)
  38.  
  39. local conditionMelee = Condition(CONDITION_ATTRIBUTES)
  40. conditionMelee:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
  41. conditionMelee:setParameter(CONDITION_PARAM_TICKS, config.duration * 1000)
  42. conditionMelee:setParameter(CONDITION_PARAM_SKILL_FIST, config.skills.fist)
  43. conditionMelee:setParameter(CONDITION_PARAM_SKILL_CLUB, config.skills.club)
  44. conditionMelee:setParameter(CONDITION_PARAM_SKILL_SWORD, config.skills.sword)
  45. conditionMelee:setParameter(CONDITION_PARAM_SKILL_AXE, config.skills.axe)
  46.  
  47. local conditionDistance = Condition(CONDITION_ATTRIBUTES)
  48. conditionDistance:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
  49. conditionDistance:setParameter(CONDITION_PARAM_TICKS, config.duration * 1000)
  50. conditionDistance:setParameter(CONDITION_PARAM_SKILL_DISTANCE, config.skills.distance)
  51.  
  52. local conditionShield = Condition(CONDITION_ATTRIBUTES)
  53. conditionShield:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
  54. conditionShield:setParameter(CONDITION_PARAM_TICKS, config.duration * 1000)
  55. conditionShield:setParameter(CONDITION_PARAM_SKILL_SHIELD, config.skills.shield)
  56.  
  57. local conditionMagicShield = Condition(CONDITION_MANASHIELD)
  58. conditionMagicShield:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
  59. conditionMagicShield:setParameter(CONDITION_PARAM_TICKS, config.duration * 1000)
  60.  
  61. local conditionRegeneration = Condition(CONDITION_REGENERATION)
  62. conditionRegeneration:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
  63. conditionRegeneration:setParameter(CONDITION_PARAM_TICKS, config.duration * 1000)
  64. conditionRegeneration:setParameter(CONDITION_PARAM_HEALTHGAIN, 20)
  65. conditionRegeneration:setParameter(CONDITION_PARAM_HEALTHTICKS, 2000)
  66.  
  67. local conditionSpeed = Condition(CONDITION_HASTE)
  68. conditionSpeed:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
  69. conditionSpeed:setParameter(CONDITION_PARAM_TICKS, config.duration * 1000)
  70. conditionSpeed:setFormula(1.0, -86, 1.0, -86)
  71.  
  72. local function resetStorageValue(cid, key, value)
  73.     local player = Player(cid)
  74.     if not player then
  75.         return
  76.     end
  77.  
  78.     player:setStorageValue(key, value)
  79. end
  80.  
  81. -- Configs of buffs
  82. local function attribute(cid, message, keywords, parameters, node)
  83.     if not npcHandler:isFocused(cid) then
  84.         return false
  85.     end
  86.  
  87.     local player = Player(cid)
  88.  
  89.     local vocation = parameters.vocation
  90.     if #vocation ~= 0 and not isInArray(vocation, player:getVocation():getBase():getId()) then
  91.         local text = ""
  92.         for i = 1, #vocation do
  93.             text = text .. (i ~= 1 and (i == #vocation and " or " or ", ") or "") .. Vocation(vocation[i]):getDescription()
  94.         end
  95.         npcHandler:say("You must be " .. text .. " to receive this increment.", cid)
  96.         return true
  97.     end
  98.  
  99.     if player:getStorageValue(config.storage) == 1 then
  100.         npcHandler:say("You can't receive more than one increase.", cid)
  101.         return true
  102.     end
  103.  
  104.     if not player:removeMoney(config.money) then
  105.         npcHandler:say("You don't have enough money.", cid)
  106.         return true
  107.     end
  108.  
  109.     player:addCondition(parameters.condition)
  110.     player:setStorageValue(config.storage, 1)
  111.     addEvent(resetStorageValue, config.duration * 1000, cid, config.storage, -1)
  112.     npcHandler:say(parameters.text .. ' for 10 minutes!', cid)
  113. end
  114. -- Buff Config End --
  115.  
  116. keywordHandler:addKeyword({'help'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = "I can increase your {melee}, {distance}, {shielding}, {magic level}, {regeneration}, {invisibility}, {magic shield} and {speed}"})
  117.  
  118. local function addAttributeKeyword(keyword, text, vocation, condition)
  119.     local attributeKeyword = keywordHandler:addKeyword(keyword, StdModule.say, {npcHandler = npcHandler, text = 'Do you want to ' .. text[1] .. ' for a certain time?'})
  120.         attributeKeyword:addChildKeyword({'yes'}, attribute, {npcHandler = npcHandler, vocation = vocation, text = text[2], condition = condition, reset = true})
  121.         attributeKeyword:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, text = 'Alright then. Come back if you want an upgrade in your skills.', reset = true})
  122. end
  123.  
  124. addAttributeKeyword({'magic', 'level'}, {'increase your magic level', 'Your magic level has increased'}, {1, 2}, conditionMagicLevel)
  125. addAttributeKeyword({'invisibility'}, {'be invisible', 'You received invisibility'}, {1, 2}, conditionInvisible)
  126. addAttributeKeyword({'melee'}, {'increase your melee skills', 'Your melee skills has increased'}, {4}, conditionMelee)
  127. addAttributeKeyword({'distance'}, {'increase your distance skills', 'Your distance skill has increased'}, {3}, conditionDistance)
  128. addAttributeKeyword({'shielding'}, {'increase your shielding skill', 'Your shielding skill has increased'}, {3, 4}, conditionShield)
  129. addAttributeKeyword({'magic', 'shield'}, {'receive a magic shield', 'You recieved a magic shield'}, {1, 2, 3}, conditionMagicShield)
  130. addAttributeKeyword({'regeneration'}, {'increase your regeneration', 'Your regeneration has increased'}, {}, conditionRegeneration)
  131. addAttributeKeyword({'speed'}, {'increase your speed', 'Your speed has increased'}, {}, conditionSpeed)
  132.  
  133. npcHandler:addModule(FocusModule:new())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement