Ir para conteúdo
  • Cadastre-se

(Resolvido)Mana Potion


Ir para solução Resolvido por Storm,

Posts Recomendados

.Qual servidor ou website você utiliza como base? TFS 1.0

 

Qual o motivo deste tópico? Alguém pode me ajudar?

Está acontecendo o seguinte, quando alguém vai se potar, a potion não pota o aliado, pota a si mesmo, como corrigir?

 

Está surgindo algum erro? Se sim coloque-o aqui. 

Citar

 

 

Você tem o código disponível? Se tiver publique-o aqui: 

 

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

 

Link para o post
Compartilhar em outros sites

Não entendi direito bem, "Quando alguém vai se potar, não pota o aliado, pota a si mesmo" se o cara ta se potando é obvio que ele pota a si mesmo ._. ..

Oq tu quer dizer é que quando vai usar a pot, ele usa automaticamente em si em vez de abrir opçoes pra potar quem ele quiser?

 

                     Projeto    Nto Myth

 

" Eu to disposto a lutar e que se foda todo mundo que duvida que eu vou tocar o terror na porra toda! "

 

 

                                                                                                    bang.gif.bfc77cb73cf3065add6e416ceba6dc90.gif

 

 

Link para o post
Compartilhar em outros sites

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))
-- 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)
    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, 85, 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, 150, 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(emptyPot, 1)
    elseif item.itemid == strongHealthPot then
        if(not isInArray({3,8,13,18}, player:getVocation():getId()) or player:getLevel() < 50) and not(player:getGroup():getId() >= 2) then
            player:say("Essa potion só pode ser consumida por paladins e suas vocações..", TALKTYPE_MONSTER_SAY)
            return true
        end

        if not doTargetCombatHealth(0, cid, COMBAT_HEALING, 280, 400, 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({3,8,13,18}, player:getVocation():getId()) or player:getLevel() < 50) and not(player:getGroup():getId() >= 2) then
            player:say("Essa potion só pode ser usada por paladins e suas vocações, de level 50 ou mais.", TALKTYPE_MONSTER_SAY)
            return true
        end

        if not doTargetCombatMana(0, cid, 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 == 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, 500, 700, 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,6,7,11,12,16,17}, player:getVocation():getId()) or player:getLevel() < 80) and not(player:getGroup():getId() >= 2) then
            player:say("Essa potion só pode ser consumida por druids, sorceres level 80 ou mais.", TALKTYPE_MONSTER_SAY)
            return true
        end

        if not doTargetCombatMana(0, cid, 500, 650, 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
 

25 minutos atrás, Hokograma disse:

Não entendi direito bem, "Quando alguém vai se potar, não pota o aliado, pota a si mesmo" se o cara ta se potando é obvio que ele pota a si mesmo ._. ..

Oq tu quer dizer é que quando vai usar a pot, ele usa automaticamente em si em vez de abrir opçoes pra potar quem ele quiser?

 

Verdade, expressei mal, kkk é isso, potar o aliado, não funciona, quando vai potar o aliado, pota a sí mesmo 

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

@Jonathan005 Tenta assim:

 

Spoiler

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))
-- 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)
	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, itemEx.uid, COMBAT_HEALING, 60, 85, 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, itemEx.uid, 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, itemEx.uid, 150, 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(emptyPot, 1)
	elseif item.itemid == strongHealthPot then
		if(not isInArray({3,8,13,18}, player:getVocation():getId()) or player:getLevel() < 50) and not(player:getGroup():getId() >= 2) then
			player:say("Essa potion só pode ser consumida por paladins e suas vocações..", TALKTYPE_MONSTER_SAY)
			return true
		end
		
		if not doTargetCombatHealth(0, itemEx.uid, COMBAT_HEALING, 280, 400, 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({3,8,13,18}, player:getVocation():getId()) or player:getLevel() < 50) and not(player:getGroup():getId() >= 2) then
			player:say("Essa potion só pode ser usada por paladins e suas vocações, de level 50 ou mais.", TALKTYPE_MONSTER_SAY)
			return true
		end
		
		if not doTargetCombatMana(0, itemEx.uid, 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 == 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, itemEx.uid, 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, itemEx.uid, COMBAT_HEALING, 500, 700, 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,6,7,11,12,16,17}, player:getVocation():getId()) or player:getLevel() < 80) and not(player:getGroup():getId() >= 2) then
			player:say("Essa potion só pode ser consumida por druids, sorceres level 80 ou mais.", TALKTYPE_MONSTER_SAY)
			return true
		end
		
		if not doTargetCombatMana(0, itemEx.uid, 500, 650, 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, itemEx.uid, 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

 

 

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo