Ir para conteúdo
  • 0

Potions


SkyDarkyes

Pergunta

Galera gostaria de saber como colocar para o potion healar MANA E VIDA

 

Gostaria de saber como eu add para a healar mana e vida,mas apenas oque eu escolher

local config = { 
        removeOnUse = "yes", 
        usableOnTarget = "yes", -- can be used on target? (fe. healing friend) 
        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.usableOnTarget = getBooleanFromString(config.usableOnTarget) 
config.splashable = getBooleanFromString(config.splashable) 
config.realAnimation = getBooleanFromString(config.realAnimation) 
 
local POTIONS = { 
        [2150] = {empty = 7478, splash = 2, health = {5000, 5000}}, -- heal potion 
        [2151] = {empty = 7478, splash = 2, health = {20000, 20000}}, -- heal strong potion
        [2144] = {empty = 7478, splash = 7, mana = {5000, 5000}}, -- strong mana potion 
        [2149] = {empty = 7478, splash = 7, mana = {15000, 15000}}, -- great mana 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, "I feel better!", TALKTYPE_ORANGE_1) 
        else 
                for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do 
                        if(isPlayer(tid)) then 
                                doCreatureSay(itemEx.uid, "I feel better!", 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, 0) 
        doPlayerAddItem(cid, potion.empty, 0) 
        doPlayerRemoveItem(cid, potion.empty, getPlayerItemCount(cid, potion.empty)) 
        doPlayerAddItem(cid, potion.empty, getPlayerItemCount(cid, potion.empty)) 
        return TRUE 
end

Tambem gostaria de saber para que serve

 

 

local config = { 
        removeOnUse = "yes", 
        usableOnTarget = "yes", -- can be used on target? (fe. healing friend) 
        splashable = "no", 
        realAnimation = "no", -- make text effect visible only for players in range 1x1 
        healthMultiplier = 1.0, 
        manaMultiplier = 1.0 
} 
Editado por SkyDarkyes
Link para o comentário
Compartilhar em outros sites

  • Respostas 48
  • Created
  • Última resposta

Top Posters For This Question

Top Posters For This Question

Posts Recomendados

  • 0

Fiz uns ajustes no script:

 

 

 

local removeOnUse = true -- Remover a poção ao usar? (true / false)
local usableOnTarget = true -- Você pode healar outras pessoas? (true / false)
local splashable = false -- Dá pra jogar o líquido da poção no chão? (true / false)
local realAnimation = false -- Se true, o texto do heal só será visível para player que estiverem a 1x1 sqm de distância (true / false)
local giveEmptyVial = true -- Dar a garrafa da potion vazia para o player ao usar? (true / false)
local healthMultiplier = 1.0 -- Multiplicador da health que a potion adiciona
local mamaMultiplier = 1.0 -- Multiplicador da mana que a potion adiciona
local POTIONS = { -- [id] = {empty_id, {hp, mp}, splash_subtype},
        [2150] = {empty = 7478, stats = {5000, 5000}, splash = 2}, -- health potion
        [2151] = {empty = 7478, stats = {20000, 20000}, splash = 2}, -- health strong potion
        [2144] = {empty = 7478, stats = {5000, 5000}, splash = 7}, -- strong mana potion
        [2149] = {empty = 7478, stats = {15000, 15000}, splash = 7}, -- great mana 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 true end
    
    if not isPlayer(itemEx.uid) or not usableOnTarget and cid ~= itemEx.uid then
        if not splashable then return true 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
    elseif potion.level and getPlayerLevel(cid) < potion.level and not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES) then
        doCreatureSay(itemEx.uid, "Only players of level "..(potion.level).." or above may drink this fluid.", TALKTYPE_MONSTER) return true 
    end
    
    local stats = potion.stats
    doCreatureAddHealth(itemEx.uid, stats[1] * manaMultiplier)
    doPlayerAddMana(itemEx.uid, stats[2] * manaMultiplier)
    doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE)
    
    if not realAnimation then
        doCreatureSay(itemEx.uid, "I feel better!", TALKTYPE_MONSTER)
    else
        for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do
            if isPlayer(tid) then
                doCreatureSay(itemEx.uid, "I feel better!", TALKTYPE_MONSTER, false, tid)
            end
        end
    end
    
    doAddCondition(cid, exhaust)
    if removeOnUse then
        doRemoveItem(item.uid, 1)
    end
    if giveEmptyVial and potion.empty and potion.empty > 0 then
        doPlayerAddItem(cid, potion.empty, 1)
    end
    return true
end

 

 

 

Configure aqui:

local removeOnUse = true -- Remover a poção ao usar? (true / false)
local usableOnTarget = true -- Você pode healar outras pessoas? (true / false)
local splashable = false -- Dá pra jogar o líquido da poção no chão? (true / false)
local realAnimation = false -- Se true, o texto do heal só será visível para player que estiverem a 1x1 sqm de distância (true / false)
local giveEmptyVial = true -- Dar a garrafa da potion vazia para o player ao usar? (true / false)
local healthMultiplier = 1.0 -- Multiplicador da health que a potion adiciona
local mamaMultiplier = 1.0 -- Multiplicador da mana que a potion adiciona
local POTIONS = { -- [id] = {empty_id, {hp, mp}, splash_subtype},
        [2150] = {empty = 7478, stats = {5000, 5000}, splash = 2}, -- health potion
        [2151] = {empty = 7478, stats = {20000, 20000}, splash = 2}, -- health strong potion
        [2144] = {empty = 7478, stats = {5000, 5000}, splash = 7}, -- strong mana potion
        [2149] = {empty = 7478, stats = {15000, 15000}, splash = 7}, -- great mana potion
}
Editado por LuckOake
Link para o comentário
Compartilhar em outros sites

  • 0

Tag:

<action itemid="xxxx;yyyy" script="potions.lua"/>

No lugar de xxxx e yyyy, mude pro ID das poções. Você também pode adicionar mais IDs colocando ; (ponto e vírgula). Exemplo: 1213;8491;4891;5543

 

E no script você configura aqui:

local POTIONS = { -- [id] = {empty_id, {hp, mp}, splash_subtype},
        [2150] = {empty = 7478, stats = {5000, 5000}, splash = 2}, -- health potion
        [2151] = {empty = 7478, stats = {20000, 20000}, splash = 2}, -- health strong potion
        [2144] = {empty = 7478, stats = {5000, 5000}, splash = 7}, -- strong mana potion
        [2149] = {empty = 7478, stats = {15000, 15000}, splash = 7}, -- great mana potion
}

Todo id que você colocar na tag você também deve colocar aqui.

 

Modelo: [id] = {empty = empty_id, stats = {hp, mp}, splash = splash_subtype},

id = id da poção
empty_id = id da vial vazia
{hp, mp} = {vida, mana}
splash = subtype, só modifique se você souber o que está fazendo.

Só ir adicionando.

Editado por LuckOake
Link para o comentário
Compartilhar em outros sites

  • 0

Ué, por que não?

 

Seu objetivo não era adicionar vida e mana ao mesmo tempo? O script que postei faz isso. Não entendi qual o problema.

Editado por LuckOake
Link para o comentário
Compartilhar em outros sites

  • 0

Ah, no seu script original dava pra fazer isso sem problemas.

 

Era só modificar a tabela, de exemplo a health potion:

[2150] = {empty = 7478, splash = 2, health = {5000, 5000}}, -- health potion 

Era só colocar assim:

[2150] = {empty = 7478, splash = 2, health = {5000, 5000}, mana = {5000, 5000}}, -- health potion 

Ou seja, só adicionar um "mana = {min, max}" alí.

Link para o comentário
Compartilhar em outros sites

  • 0

Oxe pq nao falo antes kkkk,desculpa ai luck,limite rep

 

Mais uma coisa,quando uso potion,aparece uma fala,porem em laranja,queria que aparecesse igual uma magia,tipo em amarelo,no default

Editado por SkyDarkyes
Link para o comentário
Compartilhar em outros sites

  • 0

Modifique aqui:

doCreatureSay(itemEx.uid, "I feel better!", TALKTYPE_ORANGE_1)

Coloque assim:

doCreatureSay(itemEx.uid, "I feel better!")

E modifique aqui:

doCreatureSay(itemEx.uid, "I feel better!", TALKTYPE_ORANGE_1, false, tid)

Coloque assim:

doCreatureSay(itemEx.uid, "I feel better!", TALKTYPE_SAY, false, tid)
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.

×
×
  • Criar Novo...