• 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!

Lua Problem with potions, (walking)

bolero

MikeHere
Joined
Apr 13, 2009
Messages
1,146
Reaction score
12
Location
Venezuela
Have I a problem which is that when the players are walking one does not give them exaust to throw the potions, since I can fix this? Or. I do not say exaust, it is supposed that when one walks it has fewer opportunities to succeed a shot of a potion, since not that happens but my players are walking and trump not even 1 shot with the potions.

LUA:
local config = { 
    removeOnUse = "no", 
    splashable = "no", 
    realAnimation = "no", -- make text effect visible only for players in range 1x1 
    healthMultiplier = 1.0, 
    manaMultiplier = 1.0 
} 

config.removeOnUse = getBooleanFromString(config.removeOnUse) 
config.splashable = getBooleanFromString(config.splashable) 
config.realAnimation = getBooleanFromString(config.realAnimation) 

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

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

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

local exhaust = createConditionObject(CONDITION_EXHAUST) 
setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100)) 

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

    if(not isPlayer(itemEx.uid)) then 
        if(not config.splashable) then 
            return false 
        end 

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

        doDecayItem(doCreateItem(2016, potion.splash, toPosition)) 
        doTransformItem(item.uid, potion.empty) 
        return true 
    end 

    if(hasCondition(cid, CONDITION_EXHAUST_HEAL)) then 
        doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED) 
        return true 
    end 

    if(((potion.level and getPlayerLevel(cid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(cid)))) 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 

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

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

    doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE) 
    if(not realAnimation) then 
        doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) 
    else 
        for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do 
            if(isPlayer(tid)) then 
                doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid) 
            end 
        end 
    end 

    doAddCondition(cid, exhaust) 
    if(not potion.empty or config.removeOnUse) then 
        doRemoveItem(item.uid) 
        return true 
    end 

local aidd =  
 { 
  min = 10901, 
   max = 10911 
    } 
     if item.actionid < aidd.min then 
      doItemSetAttribute(item.uid, "aid", aidd.min) 
       elseif item.actionid >= aidd.min and item.actionid <= aidd.max then 
      doItemSetAttribute(item.uid, "aid", getItemAttribute(item.uid, "aid")+1) 
     elseif item.actionid >= aidd.max then 
    doTransformItem(item.uid, potion.empty) 
   return TRUE 
  end 
 return true 
end
 
Back
Top