Advertisement
Guest User

Untitled

a guest
Mar 9th, 2018
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.56 KB | None | 0 0
  1. --// Do not touch
  2. local conditionSlots = {
  3.     [CONST_SLOT_HEAD]     = {condition = Condition(CONDITION_ATTRIBUTES, CONDITIONID_HEAD),     id = CONDITIONID_HEAD},
  4.     [CONST_SLOT_NECKLACE] = {condition = Condition(CONDITION_ATTRIBUTES, CONDITIONID_NECKLACE), id = CONDITIONID_NECKLACE},
  5.     [CONST_SLOT_BACKPACK] = {condition = Condition(CONDITION_ATTRIBUTES, CONDITIONID_BACKPACK), id = CONDITIONID_BACKPACK},
  6.     [CONST_SLOT_ARMOR]    = {condition = Condition(CONDITION_ATTRIBUTES, CONDITIONID_ARMOR),    id = CONDITIONID_ARMOR},
  7.     [CONST_SLOT_RIGHT]    = {condition = Condition(CONDITION_ATTRIBUTES, CONDITIONID_RIGHT),    id = CONDITIONID_RIGHT},
  8.     [CONST_SLOT_LEFT]     = {condition = Condition(CONDITION_ATTRIBUTES, CONDITIONID_LEFT),     id = CONDITIONID_LEFT},
  9.     [CONST_SLOT_LEGS]     = {condition = Condition(CONDITION_ATTRIBUTES, CONDITIONID_LEGS),     id = CONDITIONID_LEGS},
  10.     [CONST_SLOT_FEET]     = {condition = Condition(CONDITION_ATTRIBUTES, CONDITIONID_FEET),     id = CONDITIONID_FEET},
  11.     [CONST_SLOT_RING]     = {condition = Condition(CONDITION_ATTRIBUTES, CONDITIONID_RING),     id = CONDITIONID_RING},
  12.     [CONST_SLOT_AMMO]     = {condition = Condition(CONDITION_ATTRIBUTES, CONDITIONID_AMMO),     id = CONDITIONID_AMMO}
  13. }
  14.  
  15. -- Set all conditions to infinite ticks
  16. for i = 1, #conditionSlots do
  17.     conditionSlots[i].condition:setParameter(CONDITION_PARAM_TICKS, -1)
  18. end
  19.  
  20. local params = {
  21.     CONDITION_PARAM_SKILL_MELEE,
  22.     CONDITION_PARAM_SKILL_FIST,
  23.     CONDITION_PARAM_SKILL_CLUB,
  24.     CONDITION_PARAM_SKILL_SWORD,
  25.     CONDITION_PARAM_SKILL_AXE,
  26.     CONDITION_PARAM_SKILL_DISTANCE,
  27.     CONDITION_PARAM_SKILL_SHIELD,
  28.     CONDITION_PARAM_SKILL_FISHING,
  29.     CONDITION_PARAM_STAT_MAXHITPOINTS,
  30.     CONDITION_PARAM_STAT_MAXMANAPOINTS,
  31.     CONDITION_PARAM_STAT_SOULPOINTS,
  32.     CONDITION_PARAM_STAT_MAGICPOINTS,
  33.     CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT,
  34.     CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT,
  35.     CONDITION_PARAM_STAT_SOULPOINTSPERCENT,
  36.     CONDITION_PARAM_STAT_MAGICPOINTSPERCENT,
  37.     CONDITION_PARAM_SKILL_MELEEPERCENT,
  38.     CONDITION_PARAM_SKILL_FISTPERCENT,
  39.     CONDITION_PARAM_SKILL_CLUBPERCENT,
  40.     CONDITION_PARAM_SKILL_SWORDPERCENT,
  41.     CONDITION_PARAM_SKILL_AXEPERCENT,
  42.     CONDITION_PARAM_SKILL_DISTANCEPERCENT,
  43.     CONDITION_PARAM_SKILL_SHIELDPERCENT,
  44.     CONDITION_PARAM_SKILL_FISHINGPERCENT
  45. }
  46. --\\
  47.  
  48. -- Item config
  49. itemBonusConfig = {
  50.     -- ItemID
  51.     [2506] = {
  52.         [1] = {
  53.             {param = CONDITION_PARAM_STAT_MAGICPOINTS, value = 1, string = "Magic Level"}
  54.         },
  55.         [2] = {
  56.             {param = CONDITION_PARAM_STAT_MAGICPOINTS, value = 1, string = "Magic Level"}
  57.         },
  58.         [3] = {
  59.             {param = CONDITION_PARAM_SKILL_DISTANCE, value = 1, string = "Distance"}
  60.         },
  61.         [4] = {
  62.             {param = CONDITION_PARAM_SKILL_MELEE, value = 1, strings = {"Sword", "Axe", "Club", "Fist"}},
  63.         },
  64.     }
  65. }
  66.  
  67. function onEquip(player, item, slot)
  68.     local statItem = itemBonusConfig[item.itemid]
  69.     local vocStats = statItem and statItem[player:getVocation():getId()]
  70.  
  71.     if not vocStats then
  72.         return true
  73.     end
  74.  
  75.     local condition = conditionSlots[slot].condition
  76.  
  77.     -- Remove previous parameters so all params don't get added
  78.     for p = 1, #params do
  79.         condition:setParameter(params[p], 0)
  80.     end
  81.  
  82.     -- Set new parameters
  83.     for i = 1, #vocStats do
  84.         condition:setParameter(vocStats[i].param, vocStats[i].value)
  85.     end
  86.  
  87.     player:addCondition(condition)
  88.     player:getPosition():sendMagicEffect(CONST_ME_FIREAREA)
  89.  
  90.     return true
  91. end
  92.  
  93. function onDeEquip(player, item, slot)
  94.     local conditionId = conditionSlots[slot].id
  95.     if player:getCondition(CONDITION_ATTRIBUTES, conditionId) then
  96.         player:removeCondition(CONDITION_ATTRIBUTES, conditionId)
  97.     end
  98.     return true
  99. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement