Ir para conteúdo

Featured Replies

Postado

Bom eu quero uma spell que aumenta todas as skills do meu amigo. Tipo exana skill "amigo. Irá aumenta +15 em todas skills por 50 segundos, terá uma cooldown de 3 minutos.

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

Resolvido por Admnwso

Ir para solução
Postado

tente assim.

combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED)
combat:setParameter(COMBAT_PARAM_AGGRESSIVE, 0)

local area = createCombatArea(AREA_CROSS5X5)
combat:setArea(area)

local condition = Condition(CONDITION_ATTRIBUTES)
condition:setParameter(CONDITION_PARAM_SUBID, 3)
condition:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
condition:setParameter(CONDITION_PARAM_TICKS, 2 * 60 * 1000)
condition:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, 15)
condition:setParameter(CONDITION_PARAM_SKILL_MELEE, 15)
condition:setParameter(CONDITION_PARAM_SKILL_DISTANCE, 15)

function onCastSpell(creature, var)
	local position = creature:getPosition()
	local party = creature:getParty()
	if not party or party:getMemberCount() < 1 then
		creature:sendCancelMessage('No party members in range.')
		position:sendMagicEffect(CONST_ME_POFF)
		return false
	end

	local partyMembers, affected, member = party:getMembers(), {}
	for i = 1, #partyMembers do
		member = partyMembers[i]
		if member:getPosition():getDistance(position) <= 36 then
			affected[#affected + 1] = member
		end
	end

	local tmp = #affected
	if tmp < 1 then
		creature:sendCancelMessage('No party members in range.')
		position:sendMagicEffect(CONST_ME_POFF)
		return false
	end

	local mana = math.ceil((0.9 ^ (tmp - 1) * 120) * tmp)
	if creature:getMana() < mana then
		creature:sendCancelMessage(RETURNVALUE_NOTENOUGHMANA)
		position:sendMagicEffect(CONST_ME_POFF)
		return false
	end

	if not combat:execute(creature, var) then
		creature:sendCancelMessage(RETURNVALUE_NOTPOSSIBLE)
		position:sendMagicEffect(CONST_ME_POFF)
		return false
	end

	creature:addMana(-(mana - 120), false)
	creature:addManaSpent((mana - 120) * configManager.getNumber(configKeys.RATE_MAGIC))
	creature:addCondition(condition)
	for i = 1, #affected do
		affected[i]:addCondition(condition)
	end

	return true
end

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

Postado
  • Autor

tente assim.

combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED)
combat:setParameter(COMBAT_PARAM_AGGRESSIVE, 0)

local area = createCombatArea(AREA_CROSS5X5)
combat:setArea(area)

local condition = Condition(CONDITION_ATTRIBUTES)
condition:setParameter(CONDITION_PARAM_SUBID, 3)
condition:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
condition:setParameter(CONDITION_PARAM_TICKS, 2 * 60 * 1000)
condition:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, 15)
condition:setParameter(CONDITION_PARAM_SKILL_MELEE, 15)
condition:setParameter(CONDITION_PARAM_SKILL_DISTANCE, 15)

function onCastSpell(creature, var)
	local position = creature:getPosition()
	local party = creature:getParty()
	if not party or party:getMemberCount() < 1 then
		creature:sendCancelMessage('No party members in range.')
		position:sendMagicEffect(CONST_ME_POFF)
		return false
	end

	local partyMembers, affected, member = party:getMembers(), {}
	for i = 1, #partyMembers do
		member = partyMembers[i]
		if member:getPosition():getDistance(position) <= 36 then
			affected[#affected + 1] = member
		end
	end

	local tmp = #affected
	if tmp < 1 then
		creature:sendCancelMessage('No party members in range.')
		position:sendMagicEffect(CONST_ME_POFF)
		return false
	end

	local mana = math.ceil((0.9 ^ (tmp - 1) * 120) * tmp)
	if creature:getMana() < mana then
		creature:sendCancelMessage(RETURNVALUE_NOTENOUGHMANA)
		position:sendMagicEffect(CONST_ME_POFF)
		return false
	end

	if not combat:execute(creature, var) then
		creature:sendCancelMessage(RETURNVALUE_NOTPOSSIBLE)
		position:sendMagicEffect(CONST_ME_POFF)
		return false
	end

	creature:addMana(-(mana - 120), false)
	creature:addManaSpent((mana - 120) * configManager.getNumber(configKeys.RATE_MAGIC))
	creature:addCondition(condition)
	for i = 1, #affected do
		affected[i]:addCondition(condition)
	end

	return true
end

poderia manda tag tb. Mas pelo que eu vejo isso é usado em party(PT). Se for n é o jeito que quero. Eu quero tipo healando o amigo, EXURA SIO "Amigo. No meu caso é EXANA SKILL "Amigo, aumentará todas skill em determinado tempo.
Postado

poderia manda tag tb. Mas pelo que eu vejo isso é usado em party(PT). Se for n é o jeito que quero. Eu quero tipo healando o amigo, EXURA SIO "Amigo. No meu caso é EXANA SKILL "Amigo, aumentará todas skill em determinado tempo.

 

entendi, tente assim

buff friend.lua

            local combat = Combat()
local condition = Condition(CONDITION_ATTRIBUTES)
condition:setParameter(CONDITION_PARAM_SUBID, 3)
condition:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
condition:setParameter(CONDITION_PARAM_TICKS, 2 * 60 * 1000)
condition:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, 15)
condition:setParameter(CONDITION_PARAM_SKILL_MELEE, 15)
condition:setParameter(CONDITION_PARAM_SKILL_DISTANCE, 15)

function onGetFormulaValues(player, level, maglevel)
	min = ((level / 5) + (maglevel * 6.3) + 45)
	max = ((level / 5) + (maglevel * 14.4) + 90)
	return min, max
end

combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(creature, var)
	return combat:execute(creature, var)
end

	<instant group="healing" spellid="85" name="Buff Friend" words="exana skill" lvl="50" mana="600" prem="1" aggressive="0" blockwalls="1" needtarget="1" playernameparam="1" params="1" exhaustion="1000" groupcooldown="1000" needlearn="0" script="healing/buff friend.lua">
		<vocation name="Druid" />
                <vocation name="Sorcerer" />
                <vocation name="Master Sorcerer" />
		<vocation name="Elder Druid" />

	</instant>

ps: não testei.

Postado
  • Autor
  • Solução

Vlw amigo mas eu consegui o que eu queria. E min desculpe por n ter procurado antes. Mas está aqui:

http://www.tibiaking.com/forum/topic/29755-magia-de-buff-para-life-skill-e-mana/

rep+ quando volta os meus rep.

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo