Ir para conteúdo

Featured Replies

Postado

.Qual servidor ou website você utiliza como base? 

TFS 0.4

 

Olá, eu gostaria que as spells de cura, curassem igual para todos, sem que haja cálculo com base no magic level do char.

Exemplo: que a Spell "regeneration" curasse 50k para qualquer um que for usar.

Agradeço a quem puder ajudar.

 

Citar

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 450.0, 525.0)

function onCastSpell(cid, var)
    local pos1 = {x = getPlayerPosition(cid).x + 0, y = getPlayerPosition(cid).y + 0, z = getPlayerPosition(cid).z}
    doSendMagicEffect(pos1, 87)
    return doCombat(cid, combat, var)
end

 

 

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

Resolvido por Anderson Sacani

Ir para solução
  • 5 weeks later...
Postado
local config = {
	min = 500,
	max = 500,
}

-- SpellCreator generated.

-- =============== COMBAT VARS ===============
-- Areas/Combat for 0ms
local combat0_Heal = createCombatObject()
setCombatParam(combat0_Heal, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat0_Heal, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat0_Heal, createCombatArea({ { 3 } }))
function getDmg_Heal(cid, level, maglevel)
	return config.min, config.max
end

setCombatCallback(combat0_Heal, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Heal")

-- =============== CORE FUNCTIONS ===============
local function RunPart(c, cid, var, dirList, dirEmitPos) -- Part
	if (isCreature(cid)) then
		doCombat(cid, c, var)
		if (dirList ~= nil) then -- Emit distance effects
			local i = 2;
			while (i < #dirList) do
				doSendDistanceShoot(dirEmitPos, { x = dirEmitPos.x - dirList[i], y = dirEmitPos.y - dirList[i + 1], z = dirEmitPos.z }
					, dirList[1])
				i = i + 2
			end
		end
	end
end

function onCastSpell(cid, var)
	local startPos = getCreaturePosition(cid)
	RunPart(combat0_Heal, cid, var)
	return true
end

 

Postado
  • Autor
12 horas atrás, Anderson Sacani disse:

local config = {
	min = 500,
	max = 500,
}

-- SpellCreator generated.

-- =============== COMBAT VARS ===============
-- Areas/Combat for 0ms
local combat0_Heal = createCombatObject()
setCombatParam(combat0_Heal, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat0_Heal, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat0_Heal, createCombatArea({ { 3 } }))
function getDmg_Heal(cid, level, maglevel)
	return config.min, config.max
end

setCombatCallback(combat0_Heal, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Heal")

-- =============== CORE FUNCTIONS ===============
local function RunPart(c, cid, var, dirList, dirEmitPos) -- Part
	if (isCreature(cid)) then
		doCombat(cid, c, var)
		if (dirList ~= nil) then -- Emit distance effects
			local i = 2;
			while (i < #dirList) do
				doSendDistanceShoot(dirEmitPos, { x = dirEmitPos.x - dirList[i], y = dirEmitPos.y - dirList[i + 1], z = dirEmitPos.z }
					, dirList[1])
				i = i + 2
			end
		end
	end
end

function onCastSpell(cid, var)
	local startPos = getCreaturePosition(cid)
	RunPart(combat0_Heal, cid, var)
	return true
end

 

não deu nenhum erro, mas também não curou :/

obrigado pela tentativa

Postado
  • Solução

Este funcionará perfeitamente:

local config = {
	heal = 500, -- Quanto irá curar? Obs.: Valor fixo.
}

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)
setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)

function onGetFormulaValues(cid, level, maglevel)
	local max = config.heal
	local min = max

	return min, max
end

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end

 

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

Postado
  • Autor
18 horas atrás, Anderson Sacani disse:

Este funcionará perfeitamente:


local config = {
	heal = 500, -- Quanto irá curar? Obs.: Valor fixo.
}

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)
setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)

function onGetFormulaValues(cid, level, maglevel)
	local max = config.heal
	local min = max

	return min, max
end

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end

 

funcionou, muito obrigado !

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.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo