Ir para conteúdo
  • Cadastre-se

(Resolvido)Fonte que heala 10 de hp e 10 de mana.


Ir para solução Resolvido por Kazui,

Posts Recomendados

Olá Gente,

desculpa vir aki incomodar vocês, gostaria de pedir um script que parece ser facil e tal mas não consegui fazer ;/

Gostaria de colocar uma "fonte magica"  que heala quantidade x e quantidade y de hp e mana!

Gostaria também de usar o item 5078 alguém pode me ajudar pf?

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

Vá em data/actions/scripts e crie um arquivo chamado fonte.lua

Cole isso dentro

function onUse(cid, item)
    if doRemoveItem(item.uid) then
doCreateItem(5078, 1, {x= 123, y= 123, z= 7}) -- local da fonte
doCreatureAddHealth(cid, 10) -- quantidade de life
doCreatureAddMana(cid, 10) -- quantidade de mana
doSendMagicEffect(getCreaturePosition(cid), 12)
end
return true
end

adicione essa tag em actions/actions.xml:

<action itemid="5078" event="script" value="fonte.lua"/>

Vê se funciona!

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

                                                                                1tcds1d.png

Link para o post
Compartilhar em outros sites

Funcionou não abiguinho ;/

 

meu potions.lua tb está assim...

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 fontHeath = 5078
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) - 1000))
-- 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)
	elseif item.itemid == fontHeath then
		if not doTargetCombatHealth(0, cid, COMBAT_HEALING, 5, 50, 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

Link para o post
Compartilhar em outros sites

 

Funcionou não abiguinho ;/

 

meu potions.lua tb está assim...

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 fontHeath = 5078
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) - 1000))
-- 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)
	elseif item.itemid == fontHeath then
		if not doTargetCombatHealth(0, cid, COMBAT_HEALING, 5, 50, 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


Postei um script, testa ai.

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

                                                                                1tcds1d.png

Link para o post
Compartilhar em outros sites

Vá em data/actions/scripts e crie um arquivo chamado fonte.lua

Cole isso dentro

function onUse(cid, item)
    if doRemoveItem(item.uid) then
doCreatureAddHealth(cid, 10) -- quantidade que heala de vida
doCreatureAddMana(cid, 10) -- quantidade que heala de mana
doSendMagicEffect(getCreaturePosition(cid), 12)
end
return true
end

adicione essa tag em actions/actions.xml:

<action itemid="5078" event="script" value="fonte.lua"/>

Vê se funciona!

funcionou não amiguinho ;/ Ele não da erro na distro e tb não faz nada ;/

Editado por 001rafa (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Qual a versão do seu server? Testei aqui e funcionou normalmente..

                                                                                1tcds1d.png

Link para o post
Compartilhar em outros sites

servidor 10.40~10.50


Qual a versão do seu server? Testei aqui e funcionou normalmente..

Amigo foi aki! foi erro aki no actions.xml ao invez de value era colocar script= :)

 

Rep+ pra ti! :D

 

vlwzoa:D

 

podem fechar o topico! vlw :D

Editado por 001rafa (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

servidor 10.40~10.50

Amigo foi aki! foi erro aki no actions.xml ao invez de value era colocar script= :)

 

Rep+ pra ti! :D

 

vlwzoa:D

Editei o script pra fonte não desaparecer, dá uma checada lá.

                                                                                1tcds1d.png

Link para o post
Compartilhar em outros sites

Editei o script pra fonte não desaparecer, dá uma checada lá.

 

 

Vlwzao manim :D, eu tinha tirado o do remove lá pra poder não sumir a fonte hehe. mas vlw :D

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