Ir para conteúdo
  • Cadastre-se

(Resolvido) [Pedido] de Potions usadas se juntarem em uma só.


Posts Recomendados

Olá galera Tibiana estou aqui para lhe-s pedir um Action de potions

Bom tenho um servidor só que as exemplo: as potions que eu uso não estão se juntando

tipo usei uma pot Strong Mana ai depois eu uso outra de Strong mana só que ai tipo elás não se juntam eu ja vi varios servidores,que tem este sisteminha que eu quero é bem simples ele mais estaria me adiantando a vida bem então se possivel alguem dar uma força ai bom mais eu não quero só na Strong Mana quero em todas as potions do servidor bom espero que me ajudem, vale +Rep para quem me ajudar.

Editado por Tiag017 (veja o histórico de edições)

ta3.gif

Melhor, comunidade de Tibia, e OTServ Parabéns TibiaKing por você existir.

Link para o post
Compartilhar em outros sites

se eu entendi acho q é isso q vc quer

data/actions/scripts/liquids/potions.lua

apague tudo e coloque isso:

local config = {

removeOnUse = "no",

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 = {

[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, 11 ,12}, 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, (1000))

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))

if(fromPosition.x == CONTAINER_POSITION) then

--doCreateItem(potion.empty, 1, getThingPos(item.uid)) --fix me!!!

doRemoveItem(item.uid, 1)

else

doCreateItem(potion.empty, 1, getThingPos(item.uid))

doRemoveItem(item.uid, 1)

end

return true

end

if(hasCondition(cid, CONDITION_EXHAUST)) 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

if(fromPosition.x == CONTAINER_POSITION) then

--doCreateItem(potion.empty, 1, getThingPos(item.uid)) --fix me!!!

doRemoveItem(item.uid, 1)

else

doCreateItem(potion.empty, 1, getThingPos(item.uid))

doRemoveItem(item.uid, 1)

end

--doTransformItem(item.uid, potion.empty, 1)

return true

end

creditos

Chev


Regras Gerais 

 

"Califórnia Brasileira :cool: "

Link para o post
Compartilhar em outros sites

Cara, acho que tem que mecher no distro, pois nao tem uma função que junte os itens,

Ou você fazer para remover os potions ao usar, ou fazer que quando usar remover e adicionar gps.

Para remover ao usar, abra o data\actions\liquids\potions.lua e modifique o removeOnUse para "yes"

removeOnUse = "yes",
Para remover ao usar e adicionar o dinheiro, procure por
    if(not potion.empty or config.removeOnUse) then

        doRemoveItem(item.uid, 1)

        return true

    end
E troque para
    if(not potion.empty or config.removeOnUse) then

        doRemoveItem(item.uid, 1)

			    doPlayerAddMoney(cid, 5)

        return true

    end

Link para o post
Compartilhar em outros sites

vou fazer um teste aqui se funcionar ja te dou rep ae

bom fiz o test aqui mais não é isso

eu não quero que ele desapareça apenas se juntem tipo

tenho 100 frascos de pot cheia uso 2 ai ele tambem cria 2 frascos de pot vazia é assim

que eu quero.

Mas tudo bem amigos ajudaram do mesmo geito merecem meu Rep.

Editado por Tiag017 (veja o histórico de edições)

ta3.gif

Melhor, comunidade de Tibia, e OTServ Parabéns TibiaKing por você existir.

Link para o post
Compartilhar em outros sites
  • Administrador

Se seu distro for 8.6+, isso aqui funciona!

Vá até data/actions/liquids/potions.lua e substitua tudo por isso:

local config = {
removeOnUse = "no",
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 = {
[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}, vocStr = "knights and paladins"}, -- strong health potion
[7591] = {empty = 7635, splash = 2, health = {500, 700}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion
[8473] = {empty = 7635, splash = 2, health = {800, 1000}, 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, 300}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion

[8472] = {empty = 7635, splash = 3, 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(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)
pot_count = getPlayerItemCount(cid, potion.empty)
doPlayerRemoveItem(cid, potion.empty, pot_count)
doPlayerAddItem(cid, potion.empty, pot_count)
return true
end[/code]

TibiaKing Team- KingTópicos
www.tibiaking.com

Link para o post
Compartilhar em outros sites

Pow valew ae matheus ajudou pakas merece +Rep

ta3.gif

Melhor, comunidade de Tibia, e OTServ Parabéns TibiaKing por você existir.

Link para o post
Compartilhar em outros sites
  • 9 months later...

acabei precisando e me ajudo tbm xD gratz

Link para o post
Compartilhar em outros sites

acabei precisando e me ajudo tbm xD gratz

Reputado negativamente e alertado, Poxa cara Lê as regras, Quando Você abre o tópico tem em vermelho escrito que tópicos com mais de 60 Dias de inatividade, ao postar sera flood, Espero que isso não aconteça de novo!

Link para o post
Compartilhar em outros sites
  • 2 weeks later...

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo