Ir para conteúdo
  • Cadastre-se

(Resolvido)Spell


Ir para solução Resolvido por gabriel28,

Posts Recomendados

Ola, gostaria de saber se é possível fazer uma magia pra vocation diferente porem vocation 1 bate 100 e a vocation 2 bate 200.

 

eu tentei usando IF no script da magia mas não consegui, deu erro de boolean, eu não manjo muito.

 

oque fiz pra testar minha ideia foi isso

Spoiler

if (getPlayerVocation(cid) >= 1) or (getPlayerVocation(cid) <= 4) then

	local combat = Combat()
	combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
	combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
	combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)

	function onGetFormulaValues(player, level, maglevel)
	local min = (level / 5) + (maglevel * 1.4) + 8
	local max = (level / 5) + (maglevel * 2.2) + 14
	return -min, -max
	end

	combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

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

elseif (getPlayerVocation(cid) >= 5) or (getPlayerVocation(cid) <= 8) then

	local combat = Combat()
	combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
	combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
	combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)

	function onGetFormulaValues(player, level, maglevel)
	local min = (level / 50) + (maglevel * 10.4) + 80
	local max = (level / 50) + (maglevel * 20.2) + 140
	return -min, -max
	end

	combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

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

end
end

 

 

fiz isso apenas pra teste e deu o seguinte erro

 

Spoiler

erro.jpg?1524212339

 

 

uso esse servidor como base :

 

se alguém puder me ajudar nisso ai agradeco.

 

edit:

tentei assim e também não deu

 

Spoiler

voc = getPlayerVocation(cid)

switch (voc) 
	case "sorcerer":
		local combat = Combat()
		combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
		combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
		combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)

		function onGetFormulaValues(player, level, maglevel)
		local min = (level / 5) + (maglevel * 1.4) + 8
		local max = (level / 5) + (maglevel * 2.2) + 14
		return -min, -max
		end

		combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

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

	case "master sorcerer":
		local combat = Combat()
		combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
		combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
		combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)

		function onGetFormulaValues(player, level, maglevel)
		local min = (level / 50) + (maglevel * 10.4) + 80
		local max = (level / 50) + (maglevel * 20.2) + 140
		return -min, -max
		end

		combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

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

 

 

alguém me ajuda ai!!!

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

@koringa 
*Editei a mensagem anterior, qualquer erro, fala.
 

Spoiler

local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)
	
local combat2 = Combat()
combat2:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
combat2:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
combat2:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)	

function onGetFormulaValues(player, level, maglevel)
	local min = (level / 5) + (maglevel * 1.4) + 8
	local max = (level / 5) + (maglevel * 2.2) + 14
	return -min, -max
end

combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onGetFormulaValues(player, level, maglevel)
	local min = (level / 50) + (maglevel * 10.4) + 80
	local max = (level / 50) + (maglevel * 20.2) + 140
	return -min, -max
end

combat2:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(creature, variant)
local voc1 = XX -- muda pro id da vocation
local voc2 = YY -- muda pro id da vocation
	if getPlayerVocation(cid) == voc1 then
		return combat:execute(creature, variant)
	elseif getPlayerVocation(cid) == voc2 then
		return combat2:execute(creature, variant)
	end
end

 

 

Editado por gabriel28 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
function onCastSpell(creature, variant)
	if getPlayerVocation(cid) >= 1 or getPlayerVocation(cid) <= 4 then
		combat = Combat()
		combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
		combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
		combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)
		function onGetFormulaValues(player, level, maglevel)
		local min = (level / 5) + (maglevel * 1.4) + 8
		local max = (level / 5) + (maglevel * 2.2) + 14
		return -min, -max
		end
		combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
	elseif getPlayerVocation(cid) >= 5 or getPlayerVocation(cid) <= 8 then
		combat = Combat()
		combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
		combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
		combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)
		function onGetFormulaValues(player, level, maglevel)
		local min = (level / 50) + (maglevel * 10.4) + 80
		local max = (level / 50) + (maglevel * 20.2) + 140
		return -min, -max
		end

		combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
	end

		return combat:execute(creature, variant)
end

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

 @gabriel28 

46 minutos atrás, gabriel28 disse:

@koringa 
*Editei a mensagem anterior, qualquer erro, fala.
 

  Ocultar conteúdo


local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)
	
local combat2 = Combat()
combat2:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
combat2:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
combat2:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)	

function onGetFormulaValues(player, level, maglevel)
	local min = (level / 5) + (maglevel * 1.4) + 8
	local max = (level / 5) + (maglevel * 2.2) + 14
	return -min, -max
end

combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onGetFormulaValues(player, level, maglevel)
	local min = (level / 50) + (maglevel * 10.4) + 80
	local max = (level / 50) + (maglevel * 20.2) + 140
	return -min, -max
end

combat2:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(creature, variant)
local voc1 = XX -- muda pro id da vocation
local voc2 = YY -- muda pro id da vocation
	if getPlayerVocation(cid) == voc1 then
		return combat:execute(creature, variant)
	elseif getPlayerVocation(cid) == voc2 then
		return combat2:execute(creature, variant)
	end
end

 

 

 

 

não deu erro algum mas também não aconteceu nada dentro do jogo, não saiu a magia.

mas valeu por tenta ajuda.

 

@Vodkart 

44 minutos atrás, Vodkart disse:

function onCastSpell(creature, variant)
	if getPlayerVocation(cid) >= 1 or getPlayerVocation(cid) <= 4 then
		combat = Combat()
		combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
		combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
		combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)
		function onGetFormulaValues(player, level, maglevel)
		local min = (level / 5) + (maglevel * 1.4) + 8
		local max = (level / 5) + (maglevel * 2.2) + 14
		return -min, -max
		end
		combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
	elseif getPlayerVocation(cid) >= 5 or getPlayerVocation(cid) <= 8 then
		combat = Combat()
		combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
		combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
		combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)
		function onGetFormulaValues(player, level, maglevel)
		local min = (level / 50) + (maglevel * 10.4) + 80
		local max = (level / 50) + (maglevel * 20.2) + 140
		return -min, -max
		end

		combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
	end

		return combat:execute(creature, variant)
end

 

deu o seguinte erro

Spoiler

erro2.thumb.jpg.d9e9772388667ad6999937c20b169f6f.jpg

valeu por tentar ajuda.

Editado por koringa (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução

@koringa 
 

Spoiler

local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)

	function onGetFormulaValues(player, level, maglevel)
	local min = (level / 5) + (maglevel * 1.4) + 8
	local max = (level / 5) + (maglevel * 2.2) + 14
	return -min, -max
end

combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

local combat2 = Combat()
combat2:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
combat2:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
combat2:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)	

function onGetFormulaValues(player, level, maglevel)
	local min = (level / 50) + (maglevel * 10.4) + 80
	local max = (level / 50) + (maglevel * 20.2) + 140
	return -min, -max
end

combat2:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(cid, var)
local voc1 = XX -- muda pro id da vocation
local voc2 = YY -- muda pro id da vocation
	if getPlayerVocation(cid) == voc1 then
		return doCombat(cid, combat, var)
	elseif getPlayerVocation(cid) == voc2 then
		return doCombat(cid, combat2, var)
	end
end

 

 

Link para o post
Compartilhar em outros sites
function onCastSpell(creature, variant)
		local combat = Combat()
		combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
		combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
		combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)
		function onGetFormulaValues(player, level, maglevel)
			if player:getVocation() >= 1 or player:getVocation() <= 4 then
				min = (level / 5) + (maglevel * 1.4) + 8
				max = (level / 5) + (maglevel * 2.2) + 14
			elseif player:getVocation() >= 5 or player:getVocation() <= 8 then
				min = (level / 50) + (maglevel * 10.4) + 80
				max = (level / 50) + (maglevel * 20.2) + 140
			end
		return -min, -max
		end
		combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
		return combat:execute(creature, variant)
end

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

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