Ir para conteúdo
  • Cadastre-se

(Resolvido)Potions estão infinitas!


Ir para solução Resolvido por Smart Maxx,

Posts Recomendados

  • Respostas 11
  • Created
  • Última resposta

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Popular Posts

TFS 1.0 :   potions.lua : local ultimateHealthPot = 8473 local greatHealthPot = 7591 local greatManaPot = 7590 local greatSpiritPot = 8472 local strongHealthPot = 7588 local strongManaPot = 7589 local healthPot = 7618 local manaPot = 7620 local smallHealthPot = 8704 local antidotePot = 8474 local greatEmptyPot = 7635 local strongEmptyPot = 7634 local emptyPot = 7636 local antidote = Combat() antidote:setParameter(COMBAT_PARAM_TYPE, COMBAT_HEALING) antidote:setParameter(COMBAT_PARAM_EFFECT

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

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


  Mostrar conteúdo oculto

 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites

É porisso que eu detesto tfs 1.0

Códigos rídiculos

 

Teste assim

local config = {
-- strong health potion
[7588] = {health = {250, 350}, vocations = {3, 4}, text = 'paladins and knights', level = 50, emptyId = 7634},
-- strong mana potion
[7589] = {mana = {115, 185}, vocations = {1, 2, 3}, text = 'sorcerers, druids and paladins', level = 50, emptyId = 7634},
-- great mana potion
[7590] = {mana = {150, 250}, vocations = {1, 2}, text = 'sorcerers and druids', level = 80, emptyId = 7635},
-- great health potion
[7591] = {health = {425, 575}, vocations = {4}, text = 'knights', level = 80, emptyId = 7635},
-- health potion potion
[7618] = {health = {125, 175}, emptyId = 7636},
-- mana potion potion
[7620] = {mana = {75, 125}, emptyId = 7636},
-- great spirit potion
[8472] = {health = {250, 350}, mana = {100, 200}, vocations = {3}, text = 'paladins', level = 80, emptyId = 7635},
-- ultimate health potion
[8473] = {health = {650, 850}, vocations = {4}, text = 'knights', level = 130, emptyId = 7635},
-- antidote potion
[8474] = {antidote = true, emptyId = 7636},
-- small health potion
[8704] = {health = {60, 85}, emptyId = 7636}
}

local removeOnUse = true -- True or False

local antidote = Combat()
antidote:setParameter(COMBAT_PARAM_TYPE, COMBAT_HEALING)
antidote:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
antidote:setParameter(COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
antidote:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
antidote:setParameter(COMBAT_PARAM_DISPEL, CONDITION_POISON)

local exhaust = Condition(CONDITION_EXHAUST_HEAL)
exhaust:setParameter(CONDITION_PARAM_TICKS, (configManager.getNumber(configKeys.EX_ACTIONS_DELAY_INTERVAL) - 100))
-- 1000 - 100 due to exact condition timing. -100 doesn't hurt us, and players don't have reminding ~50ms exhaustion.

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

if itemEx.itemid ~= 1 or itemEx.type ~= THING_TYPE_PLAYER then
return true
end

local player = Player(cid)
if player:getCondition(CONDITION_EXHAUST_HEAL) then
player:sendTextMessage(MESSAGE_STATUS_SMALL, Game.getReturnMessage(RETURNVALUE_YOUAREEXHAUSTED))
return true
end

if potion.antidote and not antidote:execute(itemEx.uid, Variant(itemEx.uid)) then
return false
end

if (potion.level and player:getLevel() < potion.level)
or (type(potion.vocations) == 'table' and not isInArray(potion.vocations, player:getVocation():getBase():getId()))
and not (player:getGroup():getId() >= 2) then
player:say(string.format('This potion can only be consumed by %s of level %d or higher.', potion.text, potion.level), TALKTYPE_MONSTER_SAY)
return true
end

if type(potion.health) == 'table' and not doTargetCombatHealth(0, itemEx.uid, COMBAT_HEALING, potion.health[1], potion.health[2], CONST_ME_MAGIC_BLUE) then
return false
end

if type(potion.mana) == 'table' and not doTargetCombatMana(0, itemEx.uid, potion.mana[1], potion.mana[2], CONST_ME_MAGIC_BLUE) then
return false
end

local cStorage = player:getStorageValue(Storage.Achievements.PotionAddict)
if cStorage < 100000 then
player:setStorageValue(Storage.Achievements.PotionAddict, math.max(1, cStorage) + 1)
elseif cStorage == 100000 then
player:addAchievement('Potion Addict')
player:setStorageValue(Storage.Achievements.PotionAddict, 100001)
end

doCreatureSayWithRadius(itemEx.uid, 'Aaaah...', TALKTYPE_MONSTER_SAY, 2, 2, toPosition)
setPlayerStorageValue(cid, 14582, getPlayerStorageValue(cid, 14582) + 1)

if removeOnUse then
    item(item.uid):remove(1)
end
return true
end
Editado por Orochi Elf (veja o histórico de edições)

Tony Araújo  ;D 

 

Link para o post
Compartilhar em outros sites
  • Solução

TFS 1.0 :

 

potions.lua :

local ultimateHealthPot = 8473
local greatHealthPot = 7591
local greatManaPot = 7590
local greatSpiritPot = 8472
local strongHealthPot = 7588
local strongManaPot = 7589
local healthPot = 7618
local manaPot = 7620
local smallHealthPot = 8704
local antidotePot = 8474
local greatEmptyPot = 7635
local strongEmptyPot = 7634
local emptyPot = 7636


local antidote = Combat()
antidote:setParameter(COMBAT_PARAM_TYPE, COMBAT_HEALING)
antidote:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
antidote:setParameter(COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
antidote:setParameter(COMBAT_PARAM_AGGRESSIVE, false)
antidote:setParameter(COMBAT_PARAM_DISPEL, CONDITION_POISON)


local exhaust = Condition(CONDITION_EXHAUST_HEAL)
exhaust:setParameter(CONDITION_PARAM_TICKS, (configManager.getNumber(configKeys.EX_ACTIONS_DELAY_INTERVAL) - 100))


function onUse(cid, item, fromPosition, itemEx, toPosition, isHotkey)
if itemEx.itemid ~= 1 or itemEx.type ~= THING_TYPE_PLAYER then
return true
end


local player = Player(cid)
if player:getCondition(CONDITION_EXHAUST_HEAL) then
player:sendTextMessage(MESSAGE_STATUS_SMALL, Game.getReturnMessage(RETURNVALUE_YOUAREEXHAUSTED))
return true
end


if item.itemid == antidotePot then
if not doCombat(cid, antidote, numberToVariant(cid)) then
return false
end
player:addCondition(exhaust)
player:say("Aaaah...", TALKTYPE_MONSTER_SAY)
Item(item.uid):remove(1)
player:addItem(emptyPot, 1)
elseif item.itemid == smallHealthPot then
if not doTargetCombatHealth(0, cid, COMBAT_HEALING, 60, 90, CONST_ME_MAGIC_BLUE) then
return false
end
player:addCondition(exhaust)
player:say("Aaaah...", TALKTYPE_MONSTER_SAY)
Item(item.uid):remove(1)
player:addItem(emptyPot, 1)
elseif item.itemid == healthPot then
if not doTargetCombatHealth(0, cid, COMBAT_HEALING, 125, 175, CONST_ME_MAGIC_BLUE) then
return false
end
player:addCondition(exhaust)
player:say("Aaaah...", TALKTYPE_MONSTER_SAY)
Item(item.uid):remove(1)
player:addItem(emptyPot, 1)
elseif item.itemid == manaPot then
if not doTargetCombatMana(0, cid, 75, 125, CONST_ME_MAGIC_BLUE) then
return false
end
player:addCondition(exhaust)
player:say("Aaaah...", TALKTYPE_MONSTER_SAY)
Item(item.uid):remove(1)
player:addItem(emptyPot, 1)
elseif item.itemid == strongHealthPot then
if(not isInArray({3,4,7,8}, player:getVocation():getId()) or player:getLevel() < 50) and not(player:getGroup():getId() >= 2) then
player:say("This potion can only be consumed by paladins and knights of level 50 or higher.", TALKTYPE_MONSTER_SAY)
return true
end


if not doTargetCombatHealth(0, cid, COMBAT_HEALING, 250, 350, CONST_ME_MAGIC_BLUE) then
return false
end
player:addCondition(exhaust)
player:say("Aaaah...", TALKTYPE_MONSTER_SAY)
Item(item.uid):remove(1)
player:addItem(strongEmptyPot, 1)
elseif item.itemid == strongManaPot then
if(not isInArray({1,2,3,5,6,7}, player:getVocation():getId()) or player:getLevel() < 50) and not(player:getGroup():getId() >= 2) then
player:say("This potion can only be consumed by sorcerers, druids and paladins of level 50 or higher.", TALKTYPE_MONSTER_SAY)
return true
end


if not doTargetCombatMana(0, cid, 115, 185, CONST_ME_MAGIC_BLUE) then
return false
end
player:addCondition(exhaust)
player:say("Aaaah...", TALKTYPE_MONSTER_SAY)
Item(item.uid):remove(1)
player:addItem(strongEmptyPot, 1)
elseif item.itemid == greatSpiritPot then
if(not isInArray({3, 7}, player:getVocation():getId()) or (player:getLevel() < 80)) and not(player:getGroup():getId() >= 2) then
player:say("This potion can only be consumed by paladins of level 80 or higher.", TALKTYPE_MONSTER_SAY)
return true
end


if not doTargetCombatHealth(0, cid, COMBAT_HEALING, 250, 350, CONST_ME_MAGIC_BLUE) or not doTargetCombatMana(0, cid, 100, 200, CONST_ME_MAGIC_BLUE) then
return false
end
player:addCondition(exhaust)
player:say("Aaaah...", TALKTYPE_MONSTER_SAY)
Item(item.uid):remove(1)
player:addItem(greatEmptyPot, 1)
elseif item.itemid == greatHealthPot then
if(not isInArray({4, 8}, player:getVocation():getId()) or player:getLevel() < 80) and not(player:getGroup():getId() >= 2) then
player:say("This potion can only be consumed by knights of level 80 or higher.", TALKTYPE_MONSTER_SAY)
return true
end


if not doTargetCombatHealth(0, cid, COMBAT_HEALING, 425, 575, CONST_ME_MAGIC_BLUE) then
return false
end
player:addCondition(exhaust)
player:say("Aaaah...", TALKTYPE_MONSTER_SAY)
Item(item.uid):remove(1)
player:addItem(greatEmptyPot, 1)
elseif item.itemid == greatManaPot then
if(not isInArray({1,2,5,6}, player:getVocation():getId()) or player:getLevel() < 80) and not(player:getGroup():getId() >= 2) then
player:say("This potion can only be consumed by sorcerers and druids of level 80 or higher.", TALKTYPE_MONSTER_SAY)
return true
end


if not doTargetCombatMana(0, cid, 150, 250, CONST_ME_MAGIC_BLUE) then
return false
end
player:addCondition(exhaust)
player:say("Aaaah...", TALKTYPE_MONSTER_SAY)
Item(item.uid):remove(1)
player:addItem(greatEmptyPot, 1)
elseif item.itemid == ultimateHealthPot then
if(not isInArray({4, 8}, player:getVocation():getId()) or player:getLevel() < 130) and not(player:getGroup():getId() >= 2) then
player:say("This potion can only be consumed by knights of level 130 or higher.", TALKTYPE_MONSTER_SAY)
return true
end


if not doTargetCombatHealth(0, cid, COMBAT_HEALING, 650, 850, CONST_ME_MAGIC_BLUE) then
return false
end
player:addCondition(exhaust)
player:say("Aaaah...", TALKTYPE_MONSTER_SAY)
Item(item.uid):remove(1)
player:addItem(greatEmptyPot, 1)
end


return true
end

actions.xml :

<action itemid="7588" script="other/potions.lua"/>
<action itemid="7589" script="other/potions.lua"/>
<action itemid="7590" script="other/potions.lua"/>
<action itemid="7591" script="other/potions.lua"/>
<action itemid="7618" script="other/potions.lua"/>
<action itemid="7620" script="other/potions.lua"/>
<action itemid="8472" script="other/potions.lua"/>
<action itemid="8473" script="other/potions.lua"/>
<action itemid="8474" script="other/potions.lua"/>
<action itemid="8704" script="other/potions.lua"/>

 

@Orochi e partir do 1.1 só tende a piorar rsrsrs

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

btn_donate_LG.gif

 
 
 

 

Link para o post
Compartilhar em outros sites

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.

  • Estatísticas dos Fóruns

    96840
    Tópicos
    519578
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo