• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Achievements' Pack

i installed de action potions. Here is a litle fix.

Lua:
 local config = {        removeOnUse = "no",
        usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
        splashable = "yes",
        range = -1,
        realAnimation = "no", -- make text effect visible only for players in range 1x1
        multiplier = {
                health = 1.0,
                mana = 1.0
        }
}


local POTIONS = {
        [8704] = {empty = 7636, splash = 42, health = {50, 100}}, -- small health potion
        [7618] = {empty = 7636, splash = 42, health = {100, 200}}, -- health potion
        [7588] = {empty = 7634, splash = 42, health = {200, 400}, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion
        [7591] = {empty = 7635, splash = 42, health = {500, 700}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion
        [8473] = {empty = 7635, splash = 42, health = {800, 1000}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion


        [7620] = {empty = 7636, splash = 47, mana = {70, 130}}, -- mana potion
        [7589] = {empty = 7634, splash = 47, mana = {110, 190}, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion
        [7590] = {empty = 7635, splash = 47, mana = {200, 300}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion


        [8472] = {empty = 7635, splash = 43, health = {200, 400}, mana = {110, 190}, level = 80, vocations = {3, 7}, vocStr = "paladins"} -- great spirit potion
}


for index, potion in pairs(POTIONS) do
        if(type(index) == "number")then
                for k, v in pairs(config) do
                        if(not potion[k]) then
                                potion[k] = v
                        end
                end


                if(potion.removeOnUse) then
                        potion.removeOnUse = getBooleanFromString(potion.removeOnUse)
                end


                if(potion.usableOnTarget) then
                        potion.usableOnTarget = getBooleanFromString(potion.usableOnTarget)
                end


                if(potion.splashable) then
                        potion.splashable = getBooleanFromString(potion.splashable)
                end


                if(potion.realAnimation) then
                        potion.realAnimation = getBooleanFromString(potion.realAnimation)
                end
                
                POTIONS[index] = potion
        end
end


function onUse(cid, item, fromPosition, itemEx, toPosition)
        local potion = POTIONS[item.itemid]
        if(not potion) then
                return false
        end


	if getCreatureStorage(cid, 21066) == 10000 then
		doPlayerAddAchievement(cid, 66, true)
        end


        if(not isPlayer(itemEx.uid) or (not potion.usableOnTarget and cid ~= itemEx.uid)) then
                if(not potion.splashable or not potion.splash) then
                        return false
                end


                if(toPosition.x == CONTAINER_POSITION) then
                        toPosition = getThingPosition(item.uid)
                end


                doDecayItem(doCreateItem(POOL, potion.splash, toPosition))
                doRemoveItem(item.uid, 1)
                if(not potion.empty or potion.removeOnUse) then
                        return true
                end


                if(fromPosition.x ~= CONTAINER_POSITION) then
                        doCreateItem(potion.empty, fromPosition)
                else
                        doPlayerAddItem(cid, potion.empty, 1)
                end


                return true
        end


        if(((potion.level and getPlayerLevel(itemEx.uid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(itemEx.uid)))) and
                not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES))
        then
                doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1)
                return true
        end


        if(potion.range > 0 and cid ~= itemEx.uid and getDistanceBetween(getThingPosition(cid), getThingPosition(itemEx.uid)) > potion.range) then
                return false
        end


        local health = potion.health
        if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * potion.multiplier.health))) then
                return false
        end


        local mana = potion.mana
        if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * potion.multiplier.mana))) then
                return false
        end


        doSendMagicEffect(getThingPosition(itemEx.uid), CONST_ME_MAGIC_BLUE)
        if(not potion.realAnimation) then
                doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
		if getCreatureStorage(cid, 21066) <= 10000 then --don't need still saving storages, cuz we already have 10k
			doCreatureSetStorage(cid, 21066, getCreatureStorage(cid, 21066) + 1)
		end
        else
                for i, tid in ipairs(getSpectators(getThingPosition(itemEx.uid), 1, 1)) do
                        if(isPlayer(tid)) then
                                doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid)
                        end
                end
        end


        doRemoveItem(item.uid, 1)
        if(not potion.empty or potion.removeOnUse) then
                return true
        end


        if(fromPosition.x ~= CONTAINER_POSITION) then
                doCreateItem(potion.empty, fromPosition)
        else
                doPlayerAddItem(cid, potion.empty, 1)
        end


        return true
end
 
hey man i need help with Champion of Chazorai where i put this? i need really please and rep for the achivements pack ;) and please help me D:
 
Thanks for this. Making a server for my wife and I to play, I am sure she and our friends will enjoy the achievements you have shared.

Big time thanks.
 
no, he dosent, becuz its been 2 years since he last edited this thread...
 
@LucasFerraz got this when using your rust remover script, the script works but sends me this on console. Also can you change to script to delete rust removers when the item succeed? It only delete rust removers when fail :p
Lua:
[27/8/2017 3:55:36] [Error - Action Interface] 
[27/8/2017 3:55:36] data/actions/scripts/tools/rustremover.lua:onUse
[27/8/2017 3:55:36] Description: 
[27/8/2017 3:55:36] data/actions/scripts/tools/rustremover.lua:29: bad argument #3 to 'max' (number expected, got nil)
[27/8/2017 3:55:36] stack traceback:
[27/8/2017 3:55:36]     [C]: in function 'max'
[27/8/2017 3:55:36]     data/actions/scripts/tools/rustremover.lua:29: in function <data/actions/scripts/tools/rustremover.lua:19>
 
Back
Top