Ir para conteúdo

Posts Recomendados

QUANDO OS PLAYERS DO MEU OT ESTAO EM WAR ELE USA AS POTIONS PARA CURAR. MAIS DO NADA ELA PARA DE CURA. AI SE O CARA RELOGA AI ELE CONSEGUE CURA NOVAMENTE. SE ALGUEM ENTENDA SOBRE ESTE BUG. ME AJUDA

 

 

 

PORFAVOR OU ADD SKYP : killobi

Link para o comentário
https://xtibia.com/forum/topic/201749-encerrado-bug-no-heal-do-meu-ot/
Compartilhar em outros sites

poiqwsdop.

1° Evite usar caps lock

2° Leia as Regras "Nao é permitido utilizar outros meios de comunicaçao para ajudar ou Obter ajuda, o Xtibia é um forum e todas as duvidas deveram ser senadas aqui"

3° Reorganize seu topico dessa vez com uma Fonte adequada!

 

e qual a versão do seu OT?

Link para o comentário
https://xtibia.com/forum/topic/201749-encerrado-bug-no-heal-do-meu-ot/#findComment-1415908
Compartilhar em outros sites

local all = {1,2,3,4,5,7,6,8} -- All Vocations.

 

local potions = {

[7620] = {vocations = all, emptypotion = 7636, mana = {1200, 1200}},

[7589] = {level = 50, vocations = {1, 2, 3, 5, 6, 7}, emptypotion = 7634, mana = {1200, 1200}},

[7590] = {level = 80, vocations = {1, 2, 5, 6}, emptypotion = 7635, mana = {1200, 1200}},

[8704] = {vocations = all, emptypotion = 7636, health = {1200, 1200}},

[7618] = {vocations = all, emptypotion = 7636, health = {1200, 1200}},

[7588] = {level = 50, vocations = {3, 4, 7, 8}, emptypotion = 7634, health = {1200, 1200}},

[7591] = {level = 80, vocations = {4, 8}, emptypotion = 7635, health = {1200, 1200}},

[8473] = {level = 130, vocations = {4, 8}, emptypotion = 7635, health = {1200, 1200}},

[8472] = {level = 80, vocations = {3, 7}, emptypotion = 7635, health = {1200, 1200}, mana = {1200, 1200}},

}

 

local potionc = "" -- Use ".

 

function getVocNames(tab)

function getVocName(v)

return isInArray({1, 5}, v) and "sorcerers" or isInArray({2, 6}, v) and "druids" or isInArray({3,7}, v) and "paladins" or isInArray({4,8}, v) and "knights" or ""

end

for i = 1, #tab do

if not string.find((a == nil and "" or a), getVocName(tab)) then

a = a and a .. " and " .. getVocName(tab) or getVocName(tab)

end

end

return a

end

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

if isPlayer(itemEx.uid) then

if getPlayerAccess(cid) >= 4 or isInArray(potions[item.itemid].vocations, getPlayerVocation(itemEx.uid)) and getPlayerLevel(itemEx.uid) >= (potions[item.itemid].level == nil and 0 or potions[item.itemid].level) and getPlayerLevel(cid) >= (potions[item.itemid].level == nil and 0 or potions[item.itemid].level) then

if potions[item.itemid].mana then

doCreatureAddMana(itemEx.uid, math.random(potions[item.itemid].mana[1], potions[item.itemid].mana[2]))

end

 

if potions[item.itemid].health then

doCreatureAddHealth(itemEx.uid, math.random(potions[item.itemid].health[1], potions[item.itemid].health[2]))

end

 

if potionc == "transform" then

if getPlayerItemById(cid, TRUE, potions[item.itemid].emptypotion).uid ~= 0 then

if getPlayerItemById(cid, TRUE, potions[item.itemid].emptypotion).type < 100 then

doTransformItem(getPlayerItemById(cid, TRUE, potions[item.itemid].emptypotion).uid, potions[item.itemid].emptypotion, getPlayerItemById(cid, TRUE, potions[item.itemid].emptypotion).type+1)

doRemoveItem(item.uid, 1)

else

doPlayerAddItem(cid, potions[item.itemid].emptypotion, 1)

doRemoveItem(item.uid, 1)

end

else

doPlayerAddItem(cid, potions[item.itemid].emptypotion, 1)

doRemoveItem(item.uid, 1)

end

elseif potionc == "remove" then

doRemoveItem(item.uid, 1)

end

 

doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)

else

return doCreatureSay(itemEx.uid, "Only " .. getVocNames(potions[item.itemid].vocations) .. (potions[item.itemid].level and " of level " .. potions[item.itemid].level .. " or above " or " ") .. "may drink this fluid.", TALKTYPE_ORANGE_1)

end

end

return TRUE

end

Link para o comentário
https://xtibia.com/forum/topic/201749-encerrado-bug-no-heal-do-meu-ot/#findComment-1415920
Compartilhar em outros sites

poiqwsdop, sei que voce é novato entao quero te dar uma dica, sempre que voce for postar algum script grande utilize o spoiler

 

(codigo= [.spoiler] texto [./spoiler] "sem os pontos")

 

e uma outra pergunta quando o player usa a potion da algum erro no seu distro?

Link para o comentário
https://xtibia.com/forum/topic/201749-encerrado-bug-no-heal-do-meu-ot/#findComment-1415924
Compartilhar em outros sites

Topico esta em uma area incorreta

a area certa seria "Pedidos e duvidas de scipring"

Reportado!!

 

na verdade aqui pode ser abordado todo tipo de duvida!

 

e creio que seja prblema de com,pilação e nao de script!

Link para o comentário
https://xtibia.com/forum/topic/201749-encerrado-bug-no-heal-do-meu-ot/#findComment-1415936
Compartilhar em outros sites

Topico esta em uma area incorreta

a area certa seria "Pedidos e duvidas de scipring"

Reportado!!

 

Essa area serve para todos o pedidos e duvidas de iniciantes , eles devem perguntar aqui antes de irem para as categorias especificas.

 

 

@topic

 

Você pode tentar usar isso , mas salve o seu em outro lugar antes.

 

 

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)

return true

end

 

 

 

<action itemid="7588-7591;8472-8473;7618;7620;8704" event="script" value="liquids/potions.lua"/>

 

 

Estão na pasta aqui dum ot e funcionam normalmente

Editado por Manyzin
Link para o comentário
https://xtibia.com/forum/topic/201749-encerrado-bug-no-heal-do-meu-ot/#findComment-1416253
Compartilhar em outros sites

Tente esse :)

 

local config = {
   removeOnUse = "yes",
   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 = {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
}

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 = getThingPosition(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(getThingPosition(cid), getThingPosition(itemEx.uid)) > config.range) then
       return false
   end

   local health = potion.health
   if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.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]) * config.multiplier.mana))) then
       return false
   end

   doSendMagicEffect(getThingPosition(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(getThingPosition(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

 

 

#Configurando

removeOnUse = "yes", -- Remover ao usar ? :)

 

    usableOnTarget = "yes", -- can be used on target? (fe. healing friend)

Pode ser usado no target ? :)

 

teste e poste o resultado

Link para o comentário
https://xtibia.com/forum/topic/201749-encerrado-bug-no-heal-do-meu-ot/#findComment-1416266
Compartilhar em outros sites

  • 5 years later...
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
Link para o comentário
https://xtibia.com/forum/topic/201749-encerrado-bug-no-heal-do-meu-ot/#findComment-1733196
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...