Ir para conteúdo
  • Cadastre-se

(Resolvido)Deixar runa ser usada apenas em si mesmo


Ir para solução Resolvido por Von Dale,

Posts Recomendados

Fala galera, quero adicionar uma nova runa no meu servidor que dê um double heal, porém queria que essa runa pudesse usada apenas em si mesmo, sem os players poderem usar em outros players e desbalancear o pvp. Tentei modificar a runa tirando o use with, mas não funcionou.
Utilizo tfs 1.2

Spoiler

local storageCoolDown = 95555
local storageTime = 10

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 50)
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)


function onGetFormulaValues(cid, level, maglevel)
    min = (level * 3 + maglevel * 2.74) + 80
    max = (level * 3 + maglevel * 3.8) + 120
            
    return min, max
end

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


function onCastSpell(creature, var)
    local player = Player(creature:getId())
 
    if player:getStorageValue(storageCoolDown) < os.time() then
        player:setStorageValue(storageCoolDown, os.time() + storageTime * 1)
        combat:execute(creature, var)
    addEvent(function() combat:execute(creature, var) end, 2000)
    else
        player:sendTextMessage(MESSAGE_STATUS_SMALL, "You must wait 10 seconds to use this rune again.")
        return false
    end
    return true
end

 

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

Fiz um improvisado aqui, estou sem tempo para verificar se esta funcionando, verifica ai e me avisa.

 

data/actions/actions.xml

<action itemid="ID DA RUNA" script="doubleHeal.lua"/>

 

 

data/actions/scripts/doubleHeal.lua

 

local storageCoolDown = 95555
local storageTime = 10

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 50)
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

function onGetFormulaValues(cid, level, maglevel)
    min = (level * 3 + maglevel * 2.74) + 80
    max = (level * 3 + maglevel * 3.8) + 120
            
    return min, max
end

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
	if target == player then
		if player:getStorageValue(storageCoolDown) < os.time() then
			player:setStorageValue(storageCoolDown, os.time() + storageTime * 1)
			local var = {type = 1, number = player:getId()}
			combat:execute(creature, var) 
			addEvent(function() combat:execute(creature, var) end, 2*1000)
		else
			player:sendTextMessage(MESSAGE_STATUS_SMALL, "You must wait 10 seconds to use this rune again.")
			return false
		end
	else
		player:sendTextMessage(MESSAGE_STATUS_SMALL, "Can be used only on you.")
	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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo