adrianoswatt

Elemental Crossbows

May 5th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.49 KB | None | 0 0
  1. -- [[ Poison Crossbow ]] --
  2. local combatPoison = createCombatObject()
  3.     setCombatParam(combatPoison, COMBAT_PARAM_BLOCKARMOR, 1)
  4.     setCombatParam(combatPoison, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
  5.     setCombatParam(combatPoison, COMBAT_PARAM_DISTANCEEFFECT, 18)
  6.     setCombatFormula(combatPoison, COMBAT_FORMULA_SKILL, 1, 0, 1, 0)
  7. local poison = createConditionObject(CONDITION_POISON)
  8.     setConditionParam(poison, CONDITION_PARAM_DELAYED, true)
  9.     for i = 1, 26 do
  10.         addDamageCondition(poison, 1, 2000, (-27) + i)
  11.     end
  12.     setCombatCondition(combatPoison, poison)
  13. -- [[ Poison Crossbow ]] --
  14.  
  15. -- [[ Fire Crossbow ]] --
  16. local combatFire = createCombatObject()
  17.     setCombatParam(combatFire, COMBAT_PARAM_BLOCKARMOR, 1)
  18.     setCombatParam(combatFire, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
  19.     setCombatParam(combatFire, COMBAT_PARAM_DISTANCEEFFECT, 22)
  20.     setCombatFormula(combatFire, COMBAT_FORMULA_SKILL, 1, 0, 1, 0)
  21. local fire = createConditionObject(CONDITION_FIRE)
  22.     setConditionParam(fire, CONDITION_PARAM_DELAYED, true)
  23.     for i = 1, 26 do
  24.         addDamageCondition(fire, 1, 2000, (-27) + i)
  25.     end
  26.     setCombatCondition(combatFire, fire)
  27. -- [[ Fire Crossbow ]] --
  28.  
  29. -- [[ Energy Crossbow ]] --
  30. local combatEnergy = createCombatObject()
  31.     setCombatParam(combatEnergy, COMBAT_PARAM_BLOCKARMOR, 1)
  32.     setCombatParam(combatEnergy, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
  33.     setCombatParam(combatEnergy, COMBAT_PARAM_DISTANCEEFFECT, 13)
  34.     setCombatFormula(combatEnergy, COMBAT_FORMULA_SKILL, 1, 0, 1, 0)
  35. local energy = createConditionObject(CONDITION_ENERGY)
  36.     setConditionParam(energy, CONDITION_PARAM_DELAYED, true)
  37.     for i = 1, 26 do
  38.         addDamageCondition(energy, 1, 2000, (-27) + i)
  39.     end
  40.     setCombatCondition(combatEnergy, energy)
  41. -- [[ Energy Crossbow ]] --
  42.  
  43. -- [[ Death Crossbow ]] --
  44. local combatDeath = createCombatObject()
  45.     setCombatParam(combatDeath, COMBAT_PARAM_BLOCKARMOR, 1)
  46.     setCombatParam(combatDeath, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
  47.     setCombatParam(combatDeath, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
  48.     setCombatParam(combatDeath, COMBAT_PARAM_DISTANCEEFFECT, 26)
  49.     setCombatFormula(combatDeath, COMBAT_FORMULA_SKILL, 1, 0, 1, 0)
  50. local death = createConditionObject(COMBAT_PHYSICALDAMAGE)
  51.     setConditionParam(death, CONDITION_PARAM_DELAYED, 1)
  52.     setCombatCondition(combatDeath, death)
  53. -- [[ Death Crossbow ]] --
  54.  
  55. local combatNormal = createCombatObject()
  56.     setCombatParam(combatNormal, COMBAT_PARAM_BLOCKARMOR, 1)
  57.     setCombatParam(combatNormal, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
  58.     setCombatParam(combatNormal, COMBAT_PARAM_DISTANCEEFFECT, 1)
  59.     setCombatFormula(combatNormal, COMBAT_FORMULA_SKILL, 1, 0, 1, 0)
  60. local normal = createConditionObject(COMBAT_PHYSICALDAMAGE)
  61.     setConditionParam(normal, CONDITION_PARAM_DELAYED, 1)
  62.     setCombatCondition(combatNormal, normal)
  63.  
  64. function onUseWeapon(cid, var)
  65.     local ListCrossBowPoison = {5651}  
  66.     local ListCrossBowFire = {5653}
  67.     local ListCrossBowEnergy = {5652}
  68.     local ListCrossBowDeath = {6433}
  69.  
  70.     for index, id in ipairs(ListCrossBowPoison) do
  71.         if getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid == id or getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid == id then
  72.             if getCreatureCondition(getCreatureTarget(cid), CONDITION_POISON) then
  73.                 return doCombat(cid, combatNormal, var)
  74.             else
  75.                 return doCombat(cid, combatPoison, var)
  76.             end
  77.         end
  78.     end
  79.  
  80.     for index, id in ipairs(ListCrossBowFire) do
  81.         if getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid == id or getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid == id then
  82.             if getCreatureCondition(getCreatureTarget(cid), CONDITION_FIRE) then
  83.                 return doCombat(cid, combatNormal, var)
  84.             else
  85.                  return doCombat(cid, combatFire, var)
  86.             end
  87.         end
  88.     end
  89.  
  90.     for index, id in ipairs(ListCrossBowEnergy) do
  91.         if getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid == id or getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid == id then
  92.             if getCreatureCondition(getCreatureTarget(cid), CONDITION_ENERGY) then
  93.                 return doCombat(cid, combatNormal, var)
  94.             else
  95.                  return doCombat(cid, combatEnergy, var)
  96.             end
  97.         end
  98.     end
  99.  
  100.     for index, id in ipairs(ListCrossBowDeath) do
  101.         if getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid == id or getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid == id then
  102.             return doCombat(cid, combatDeath, var)
  103.         end
  104.     end
  105.  
  106. return doCombat(cid, combatNormal, var)
  107. end
Add Comment
Please, Sign In to add comment