Ir para conteúdo
  • Cadastre-se

(Resolvido)[Ajuda] Adicionando variáveis?


Ir para solução Resolvido por xWhiteWolf,

Posts Recomendados

Eai pessoas, tudo bem? Eu vim aqui pedir uma ajudinha.

Eu possuo uma spell, nela eu posso colocar o ataque mínimo e máximo. Para isso tenho que fazer uma conta. Na conta eu posso considerar o nível do player e o magic level. Aqui vem meu pedido. Eu quero poder considerar também as skills e de sword, axe, distance, mace, etc.. (e se possível de defense e a quantidade de vida e mana).

 

Parte da spell que tem que ser mudada. (eu acho)

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 9)
setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, 156)
function onGetFormulaValues(cid, level, maglevel)
local magDamage, levelDamage = maglevel, level
local formula_min = -1*level
local formula_max = -3*level/2
return formula_min, formula_max
end
setCombatCallback(combat1, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

Quer aprender a mapear? 

Discord: Natan#6301

Link para o post
Compartilhar em outros sites

nesse caso vc precisaria fazer o script de outra forma pois esse onGetFormulaValue só aceita maglevel e level.
Posta ai o script inteiro da magia que eu refaço ele pra vc

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Script:

local scom1 = createCombatObject()
local scom2 = createCombatObject()
 
 
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 9)
setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, 156)
function onGetFormulaValues(cid, level, maglevel)
local magDamage, levelDamage = maglevel, level
local formula_min = -1*level
local formula_max = -3*level/2
return formula_min, formula_max
end
setCombatCallback(combat1, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
 
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 0)
setCombatParam(combat2, COMBAT_PARAM_HITCOLOR, 156)
function onGetFormulaValues(cid, level, maglevel)
local magDamage, levelDamage = maglevel, level
local formula_min = -1*level
local formula_max = -2*level/2
return formula_min, formula_max
end
setCombatCallback(combat2, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
 
 
 
 
arr1 = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
}
 
arr2 = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
}
 
 
 
 
local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
setCombatArea(scom1, area1)
setCombatArea(scom2, area2)
 
 
function onTargetTile(cid, pos)
    doCombat(cid,combat1,positionToVariant(pos))
end
 
function onTargetTile2(cid, pos)
    doCombat(cid,combat2,positionToVariant(pos))
end
 
 
setCombatCallback(scom1, CALLBACK_PARAM_TARGETTILE, "onTargetTile")
setCombatCallback(scom2, CALLBACK_PARAM_TARGETTILE, "onTargetTile2")
 
local function onCastSpell1(parameters)
    doCombat(parameters.cid, scom1, parameters.var)
end
 
local function onCastSpell2(parameters)
    doCombat(parameters.cid, scom2, parameters.var)
end
 
 
 
function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
addEvent(onCastSpell1, 100, parameters)
addEvent(onCastSpell2, 500, parameters)
 
 
return TRUE
end  

Quer aprender a mapear? 

Discord: Natan#6301

Link para o post
Compartilhar em outros sites
  • Solução
local arr1 = {
	{1, 1, 1},
	{1, 2, 1},
	{1, 1, 1}
}
local area1 = createCombatArea(arr1)

local arr2 = {
	{1, 1, 1},
	{1, 2, 1},
	{1, 1, 1}
}
local area2 = createCombatArea(arr2)


function onCastSpell(cid, var)

local maglevel, level, mana = getPlayerMagLevel(cid), getPlayerLevel(cid), getCreatureMana(cid)
local axe, sword, club, distance = getPlayerSkillLevel(cid, 3), getPlayerSkillLevel(cid, 2), getPlayerSkillLevel(cid, 1), getPlayerSkillLevel(cid, 4)
local shield, health = getPlayerSkillLevel(cid, 5), getCreatureHealth(cid)

	local formula = {
	min = (level + maglevel + axe + sword + club + shield + mana),
	max = (level + maglevel + axe + sword + club + shield + mana + health)
	}

	addEvent(function()
		if isCreature(cid) then
			doAreaCombatHealth(cid, 1, getCreaturePosition(cid), area1, -formula.min, -formula.max, 9)
		end
	end, 100)
	addEvent(function()
		if isCreature(cid) then	
			doAreaCombatHealth(cid, 1, getCreaturePosition(cid), area1, -formula.min, -formula.max, 0)
		end
	end, 500)

return true
end

só configura na formula os valores minimos e máximos que vc quer. Ali em cima é a area

Aqui vc tem a primeira spell:

doAreaCombatHealth(cid, 1, getCreaturePosition(cid), area1, -formula.min, -formula.max, 9)

 

e aqui tem a segunda
 

doAreaCombatHealth(cid, 1, getCreaturePosition(cid), area1, -formula.min, -formula.max, 0)

 


1 ali é o tipo de dano, 1 significa dano físico mas vc pode alterar seguindo essa tabela:

COMBAT_NONE = 0
COMBAT_PHYSICALDAMAGE = 1
COMBAT_ENERGYDAMAGE = 2
COMBAT_EARTHDAMAGE = 4
COMBAT_POISONDAMAGE = 4
COMBAT_FIREDAMAGE = 8
COMBAT_UNDEFINEDDAMAGE = 16
COMBAT_LIFEDRAIN = 32
COMBAT_MANADRAIN = 64
COMBAT_HEALING = 128
COMBAT_DROWNDAMAGE = 256
COMBAT_ICEDAMAGE = 512
COMBAT_HOLYDAMAGE = 1024
COMBAT_DEATHDAMAGE = 2048

area1 e 2 são as areas lá em cima do script e as formulas vc edita da forma que quiser. O 9 e o 0 são os efeitos que saem;

abaixo dos combats vc vai ter isso daqui: 

        end
    end, 100)

 

esse 100 e o outro 500 lá representam o tempo em milisegundos até o combat sair, se vc quiser aumentar o tempo entre as duas spells é só aumentar esse valor (lembrando que é em milisegundos [1 segundo = 1000 milisegundos]. Da forma que está colocado a primeira spell sai em 0,1 segundo e a segunda sai em 0,4 segundos dps da primeira.. as duas spells acabam dps de meio segundo. Espero que tenha entendido

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Muito obrigado pela ajuda. Agora não posso testar a spell, assim que eu puder, se eu tiver alguma duvida posso mandar uma mensagem privada?

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

Quer aprender a mapear? 

Discord: Natan#6301

Link para o post
Compartilhar em outros sites

você pode criar um tópico >.<

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

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