Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function Item:getEffects(thing)
- local effects = {}
- local values = {}
- local potency = 0
- local duration = 0
- local name = ""
- local description = thing:getAttribute(ITEM_ATTRIBUTE_DESCRIPTION)
- local d = ""
- local p = ""
- local dur1, dur2 = string.find(description, "Duration: ")
- local pot1, pot2 = string.find(description, "Potency: ")
- local ty = 0
- if dur1 ~= nil and dur2 ~= nil then
- for l = 1, 5 do
- if description:sub(dur2 + l, dur2 + l) ~= "\n" and description:sub(dur2 + l, dur2 + l) ~= " " then
- d = d .. description:sub(dur2 + l, dur2 + l)
- else
- break
- end
- end
- end
- if pot1 ~= nil and pot2 ~= nil then
- for l = 1, 5 do
- if description:sub(pot2 + l, pot2 + l) ~= "\n" and description:sub(pot2 + l, pot2 + l) ~= " " then
- p = p .. description:sub(pot2 + l, pot2 + l)
- else
- break
- end
- end
- end
- for i, v in pairs(apotionids) do
- if thing:getFluidType() == i then
- name = apotionids[thing:getFluidType()].name
- ty = 1
- local j, k = string.find(description, aeffects[apotionids[i].effect].label .. ": ")
- local a = ""
- if j ~= nil and k ~= nil then
- for l = 1, 5 do
- if description:sub(k + l, k + l) ~= "\n" and description:sub(k + l, k + l) ~= " " then
- a = a .. description:sub(k + l, k + l)
- else
- break
- end
- end
- end
- if a ~= "" then
- effects[#effects + 1] = apotionids[i].effect
- values[#values + 1] = a
- end
- end
- end
- for i = 1, #arecipes do
- if thing:getFluidType() == arecipes[i].id then
- name = arecipes[i].name
- ty = 2
- for r = 1, #arecipes[i].effects do
- local j, k = string.find(description, aeffects[arecipes[i].effects[r]].label .. ": ")
- local a = ""
- if j ~= nil and k ~= nil then
- for l = 1, 5 do
- if description:sub(k + l, k + l) ~= "\n" and description:sub(k + l, k + l) ~= " " then
- a = a .. description:sub(k + l, k + l)
- else
- break
- end
- end
- end
- if a ~= "" then
- effects[#effects + 1] = arecipes[i].effects[r]
- values[#values + 1] = a
- end
- end
- end
- end
- if d ~= "" then
- duration = d
- end
- if p ~= "" then
- potency = p
- end
- return {effects, values, duration, potency, name, ty}
- end
- function usePotion(player, effects)
- local hpregen = Condition(CONDITION_REGENERATION)
- hpregen:setParameter(CONDITION_PARAM_SUBID, 1)
- hpregen:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
- hpregen:setParameter(CONDITION_PARAM_HEALTHTICKS, 3000)
- local mpregen = Condition(CONDITION_REGENERATION)
- mpregen:setParameter(CONDITION_PARAM_SUBID, 2)
- mpregen:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
- mpregen:setParameter(CONDITION_PARAM_MANATICKS, 3000)
- local soulregen = Condition(CONDITION_REGENERATION)
- soulregen:setParameter(CONDITION_PARAM_SUBID, 12)
- soulregen:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
- soulregen:setParameter(CONDITION_PARAM_SOULTICKS, 3000)
- local melee = Condition(CONDITION_ATTRIBUTES)
- melee:setParameter(CONDITION_PARAM_SUBID, 3)
- melee:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
- local dist = Condition(CONDITION_ATTRIBUTES)
- dist:setParameter(CONDITION_PARAM_SUBID, 4)
- dist:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
- local shield = Condition(CONDITION_ATTRIBUTES)
- shield:setParameter(CONDITION_PARAM_SUBID, 5)
- shield:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
- local fish = Condition(CONDITION_ATTRIBUTES)
- fish:setParameter(CONDITION_PARAM_SUBID, 6)
- fish:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
- local fist = Condition(CONDITION_ATTRIBUTES)
- fist:setParameter(CONDITION_PARAM_SUBID, 7)
- fist:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
- local resist = Condition(CONDITION_ATTRIBUTES)
- resist:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
- local speed = Condition(CONDITION_HASTE)
- speed:setParameter(CONDITION_PARAM_SUBID, 8)
- local maxhp = Condition(CONDITION_ATTRIBUTES)
- maxhp:setParameter(CONDITION_PARAM_SUBID, 9)
- maxhp:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
- local maxmp = Condition(CONDITION_ATTRIBUTES)
- maxmp:setParameter(CONDITION_PARAM_SUBID, 10)
- maxmp:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
- local drown = Condition(CONDITION_ATTRIBUTES)
- drown:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
- drown:setParameter(CONDITION_PARAM_SUBID, 11)
- if not Player(player) then
- return false
- end
- for i = 1, #effects[1] do
- if effects[1][i] == "restorehp" then
- player:addMana(effects[2][i])
- elseif effects[1][i] == "restoremp" then
- player:addHealth(effects[2][i])
- elseif effects[1][i] == "restoresoul" then
- player:addSoul(effects[2][i])
- elseif effects[1][i] == "regenhp" then
- hpregen:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- hpregen:setParameter(CONDITION_PARAM_HEALTHGAIN, effects[2][i])
- player:addCondition(hpregen)
- elseif effects[1][i] == "regenmp" then
- mpregen:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- mpregen:setParameter(CONDITION_PARAM_MANAGAIN, effects[2][i])
- player:addCondition(mpregen)
- elseif effects[1][i] == "regensoul" then
- soulregen:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- soulregen:setParameter(CONDITION_PARAM_SOULGAIN, effects[2][i])
- player:addCondition(soulregen)
- elseif effects[1][i] == "maxhp" then
- maxhp:setParameter(CONDITION_PARAM_STAT_MAXHITPOINTS, effects[2][i])
- maxhp:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- player:addCondition(maxhp)
- elseif effects[1][i] == "maxmp" then
- maxmp:setParameter(CONDITION_PARAM_STAT_MAXMANAPOINTS, effects[2][i])
- maxmp:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- player:addCondition(maxmp)
- elseif effects[1][i] == "speed" then
- speed:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- speed:setParameter(CONDITION_PARAM_SPEED, player:getBaseSpeed() + effects[2][i])
- player:addCondition(speed)
- elseif effects[1][i] == "drown" then
- drown:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- player:addCondition(drown)
- elseif effects[1][i] == "meleeup" then
- melee:setParameter(CONDITION_PARAM_SKILL_MELEE, effects[2][i])
- melee:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- player:addCondition(melee)
- elseif effects[1][i] == "fistup" then
- fist:setParameter(CONDITION_PARAM_SKILL_FIST, effects[2][i])
- fist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- player:addCondition(fist)
- elseif effects[1][i] == "distup" then
- dist:setParameter(CONDITION_PARAM_SKILL_DISTANCE, effects[2][i])
- dist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- player:addCondition(dist)
- elseif effects[1][i] == "shieldup" then
- shield:setParameter(CONDITION_PARAM_SKILL_SHIELD, effects[2][i])
- shield:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- player:addCondition(shield)
- elseif effects[1][i] == "fishup" then
- fish:setParameter(CONDITION_PARAM_SKILL_FISHING, effects[2][i])
- fish:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- player:addCondition(fish)
- elseif effects[1][i] == "resistfire" then
- resist:setParameter(CONDITION_PARAM_SUBID, 101)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "resistearth" then
- resist:setParameter(CONDITION_PARAM_SUBID, 102)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "resistenergy" then
- resist:setParameter(CONDITION_PARAM_SUBID, 103)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "resistice" then
- resist:setParameter(CONDITION_PARAM_SUBID, 104)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "resistholy" then
- resist:setParameter(CONDITION_PARAM_SUBID, 105)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "resistdeath" then
- resist:setParameter(CONDITION_PARAM_SUBID, 106)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "resistphysical" then
- resist:setParameter(CONDITION_PARAM_SUBID, 107)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "resistall" then
- resist:setParameter(CONDITION_PARAM_SUBID, 108)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "reflectfire" then
- resist:setParameter(CONDITION_PARAM_SUBID, 109)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "reflectearth" then
- resist:setParameter(CONDITION_PARAM_SUBID, 110)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "reflectenergy" then
- resist:setParameter(CONDITION_PARAM_SUBID, 111)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "reflectice" then
- resist:setParameter(CONDITION_PARAM_SUBID, 112)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "reflectholy" then
- resist:setParameter(CONDITION_PARAM_SUBID, 113)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "reflectdeath" then
- resist:setParameter(CONDITION_PARAM_SUBID, 114)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "reflectphysical" then
- resist:setParameter(CONDITION_PARAM_SUBID, 115)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "reflectall" then
- resist:setParameter(CONDITION_PARAM_SUBID, 116)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "deflectfire" then
- resist:setParameter(CONDITION_PARAM_SUBID, 117)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "deflectearth" then
- resist:setParameter(CONDITION_PARAM_SUBID, 118)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "deflectenergy" then
- resist:setParameter(CONDITION_PARAM_SUBID, 119)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "deflectice" then
- resist:setParameter(CONDITION_PARAM_SUBID, 120)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "deflectholy" then
- resist:setParameter(CONDITION_PARAM_SUBID, 121)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "deflectdeath" then
- resist:setParameter(CONDITION_PARAM_SUBID, 122)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "deflectphysical" then
- resist:setParameter(CONDITION_PARAM_SUBID, 123)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "deflectall" then
- resist:setParameter(CONDITION_PARAM_SUBID, 124)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "absorbfire" then
- resist:setParameter(CONDITION_PARAM_SUBID, 125)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "absorbearth" then
- resist:setParameter(CONDITION_PARAM_SUBID, 126)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "absorbenergy" then
- resist:setParameter(CONDITION_PARAM_SUBID, 127)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "absorbice" then
- resist:setParameter(CONDITION_PARAM_SUBID, 128)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "absorbholy" then
- resist:setParameter(CONDITION_PARAM_SUBID, 129)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "absorbdeath" then
- resist:setParameter(CONDITION_PARAM_SUBID, 130)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "absorbphysical" then
- resist:setParameter(CONDITION_PARAM_SUBID, 131)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- elseif effects[1][i] == "absorball" then
- resist:setParameter(CONDITION_PARAM_SUBID, 132)
- resist:setParameter(CONDITION_PARAM_TICKS, effects[3] * 1000)
- removeResists(player)
- player:addCondition(resist)
- player:setStorageValue(5, effects[2][i])
- end
- end
- end
- function removeResists(player)
- for i = 1, 32 do
- if player:getCondition(CONDITION_ATTRIBUTES, CONDITIONID_COMBAT, i + 100) then
- player:removeCondition(CONDITION_ATTRIBUTES, CONDITIONID_COMBAT, i + 100)
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement