• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    [Actions] Potions

    Compartir:

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1default [Actions] Potions el Vie Ago 23, 2019 7:20 pm

    decker

    decker
    Miembro
    Miembro
    Hola, en mi ot al usar la potion (cualquiera) no deja el flask, quisiera que lo deje, como puedo hacer?

    Ver perfil de usuario

    2default Re: [Actions] Potions el Sáb Ago 24, 2019 6:38 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:Hola, en mi ot al usar la potion (cualquiera) no deja el flask, quisiera que lo deje, como puedo hacer?

    cambia el scripts potions.lua por otro de otro servidor



    [Actions] Potions YNU5B25
    Ver perfil de usuario https://www.tibiaface.com

    3default Re: [Actions] Potions el Sáb Ago 24, 2019 1:05 pm

    decker

    decker
    Miembro
    Miembro
    Este es el script que yo tengo en actions.

    local config = {

    usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
    splashable = "no",
    realAnimation = "yes", -- make text effect visible only for players in range 1x1
    healthMultiplier = 1.0,
    manaMultiplier = 1.0
    }

    config.removeOnUse = getBooleanFromString(config.removeOnUse)
    config.usableOnTarget = getBooleanFromString(config.usableOnTarget)
    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 = {50, 150}}, -- health potion
    [7588] = {empty = 7634, splash = 2, health = {190, 300}, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion
    [7591] = {empty = 7635, splash = 2, health = {350, 450}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion
    [8473] = {empty = 7635, splash = 2, health = {500, 600}, level = 130, vocations = {4, 8}, 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}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion
    [7590] = {empty = 7635, splash = 7, mana = {200, 250}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion

    [8472] = {empty = 7635, splash = 3, health = {200, 400}, mana = {110, 170}, level = 80, vocations = {3, 7}, 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) or (not config.usableOnTarget and cid ~= 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, 1)
    return true
    end
    doRemoveItem(item.uid, 1)
    doPlayerAddItem(cid, potion.empty, 1)
    return true
    end



    Al principio del script dice

    removeOnUse = "yes",

    Si yo lo modifico

    removeOnUse = "no",

    Al hacer esto aparecen los flask, lo que pasa es que los flask no se stackean, aparecen en la bp 1 por 1.

    Ver perfil de usuario

    4default Re: [Actions] Potions el Sáb Ago 24, 2019 4:00 pm

    Wooper

    Wooper
    Nuevo Miembro
    Nuevo Miembro
    prueba colocando uno de estos flag:

    Código:
    stackable="true"
    Código:
    stackable="yes"

    Ver perfil de usuario

    5default Re: [Actions] Potions el Sáb Ago 24, 2019 6:25 pm

    decker

    decker
    Miembro
    Miembro
    Siguen sin stackearse las potions :/

    Ver perfil de usuario

    6default Re: [Actions] Potions el Dom Ago 25, 2019 10:36 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    auqi lo tienes

    Código:

    local config = {
        removeOnUse = "no",
        usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
        splashable = "no",
        range = -1,
        realAnimation = "no", -- make text effect visible only for players in range 1x1
        multiplier = {
            health = 1.0,
            mana = 1.0
        }
    }
     
    config.removeOnUse = getBooleanFromString(config.removeOnUse)
    config.usableOnTarget = getBooleanFromString(config.usableOnTarget)
    config.splashable = getBooleanFromString(config.splashable)
    config.realAnimation = getBooleanFromString(config.realAnimation)
     
    local POTIONS = {
        [8704] = {empty = 7636, splash = 42, health = {50, 100}}, -- small health potion
        [7618] = {empty = 7636, splash = 42, health = {150, 220}}, -- health potion
        [7588] = {empty = 7634, splash = 42, health = {220, 450}, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion
        [7591] = {empty = 7635, splash = 42, health = {500, 750}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion
        [8473] = {empty = 7635, splash = 42, health = {1000, 1500}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion
     
        [7620] = {empty = 7636, splash = 47, mana = {100, 150}}, -- mana potion
        [7589] = {empty = 7634, splash = 47, mana = {150, 210}, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion
        [7590] = {empty = 7635, splash = 47, mana = {320, 420}, 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
    }
     
    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) or (not config.usableOnTarget and cid ~= itemEx.uid)) then
            if(not config.splashable) then
                return false
            end
     
            if(toPosition.x == CONTAINER_POSITION) then
                toPosition = getThingPos(item.uid)
            end
     
            doDecayItem(doCreateItem(POOL, potion.splash, toPosition))
            doRemoveItem(item.uid, 1)
            if(not potion.empty or config.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(hasCondition(cid, CONDITION_EXHAUST)) then
            doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
            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(config.range > 0 and cid ~= itemEx.uid and getDistanceBetween(getThingPos(cid), getThingPos(itemEx.uid)) > config.range) then
            return false
        end
     
     
        local hlevel =  getCreatureMaxHealth(cid) * 0.5
        local health = potion.health
        if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1] + hlevel, health[2] + hlevel) * config.multiplier.health))) then
            return false
        end
       
       
        local mlevel = getCreatureMaxMana(cid) * 0.5
        local mana = potion.mana
        if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1] + mlevel, mana[2] + mlevel) * config.multiplier.mana))) then
            return false
        end
     
        doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE)
        if(not config.realAnimation) then
            doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
        else
            for i, tid in ipairs(getSpectators(getThingPos(itemEx.uid), 1, 1)) do
                if(isPlayer(tid)) then
                    doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid)
                end
            end
        end
     
        doAddCondition(cid, exhaust)
        doRemoveItem(item.uid, 1)
        if(not potion.empty or config.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



    [Actions] Potions YNU5B25
    Ver perfil de usuario https://www.tibiaface.com

    7default Re: [Actions] Potions el Dom Ago 25, 2019 2:13 pm

    decker

    decker
    Miembro
    Miembro
    Sigue igual!! Sad

    Ver perfil de usuario

    8default Re: [Actions] Potions el Dom Ago 25, 2019 3:16 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:Sigue igual!! Sad

    bueno ni modo si no es el lua es el exe de servdor que contiene bug irreparables



    [Actions] Potions YNU5B25
    Ver perfil de usuario https://www.tibiaface.com

    Contenido patrocinado


    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.

    Temas Recomendados×+

       

      BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).