Ir para conteúdo
  • 0

Juntar duas Weapons


Lucasyeah

Pergunta

Olá, tenho um ot 8.60 TFS e gostaria de juntar duas script de wands
Olá eu tenho uma script de uma staff que hita em área.
Ela é assim:
holyc.png

Mas eu queria que ela hitasse em área mas com varios elementos. Gelo, Earth, Fogo, Physical, Poison (cada hit um elemento diferente, igual a segunda script que postarei).

Script da staff da photo acima:

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HOLYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_WHIRLWINDCLUB)
setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0)
local area = createCombatArea({
{1, 1, 1},
{1, 3, 1},
{1, 1, 1}
})
setCombatArea(combat, area)

function onUseWeapon(cid, var)
return doCombat(cid, combat, var)


end

E eu tenho essa script de uma wand que hita em vários elementos diferentes, eu gostaria que minha staff hitasse em área e com varios elementos diferentes igual da script abaixo. \/
Tem como modificar alguma das 2 scripts para funcionar do jeito que eu expliquei? Eu nao queria que mudassem essa parte > setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0) Pois é aqui que eu configuro o atk.

w = {
[1] = {ef = 36, sh = 3, dmg = COMBAT_FIREDAMAGE},
[2] = {ef = 42, sh = 28, dmg = COMBAT_ICEDAMAGE},
[3] = {ef = 45, sh = 38, dmg = COMBAT_POISONDAMAGE},
[4] = {ef = 17, sh = 31, dmg = COMBAT_DEATHDAMAGE},
[5] = {ef = 11, sh = 35, dmg = COMBAT_ENERGYDAMAGE},
[6] = {ef = 31, sh = 35, dmg = COMBAT_PHYSICALDAMAGE},
[7] = {ef = 49, sh = 37, dmg = COMBAT_HOLYDAMAGE}
}

function onUseWeapon(cid, var)
min, max = 700, 700 -- dano minimo e maximo
target = getCreatureTarget(cid)
if target ~= 0 then
wx = w[math.random(1, #w)]
doSendDistanceShoot(getThingPos(cid), getThingPos(target), wx.sh)
addEvent(doAreaCombatHealth, 100, cid, wx.dmg, getThingPos(target), 0, -min, -max, wx.ef)
end
return true
end

REP + pra quem ajudar ou tentar. Se precisar de mais informações avisem plx.

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Consegui =D

 

 

 

local dmgType = {
[1] = {COMBAT_ENERGYDAMAGE, CONST_ME_ENERGYAREA},
[2] = {COMBAT_EARTHDAMAGE, CONST_ME_SMALLPLANTS},
[3] = {COMBAT_FIREDAMAGE, CONST_ME_FIREAREA},
[4] = {COMBAT_ICEDAMAGE, CONST_ME_ICEAREA},
}


function onUseWeapon(cid, var)
	local lvl, ml = getPlayerLevel(cid), getPlayerMagLevel(cid)
	
	local formula = lvl + ml

	local area = {{1, 1, 1},
				  {1, 3, 1},
				  {1, 1, 1}}
				  
	local damage = dmgType[math.random(#dmgType)]
	local effect = damage[2]
	local type = damage[1]
	return doAreaCombatHealth(cid, type, getCreaturePosition(getCreatureTarget(cid)), 1, -(formula*0.8), -(formula*1.2), effect)
end

 

 

 

Testei em 8.6.

 

OBS.: edite a fórmula do dano como quiser, mas mexa somente lá.

Editado por omega blueheaven
Link para o comentário
Compartilhar em outros sites

  • 0

Ae mano no caso se eu quisesse por para a formula ser lvl + skill, como faço? pq vou precisar fazer sword, axe, club, distance, nesse mesmo esquema de atk em área com vários elementos.

Link para o comentário
Compartilhar em outros sites

  • 0
function getPlayerTopSkillValue(cid)
	local skill = 0
	for i = 1, 4 do
		if getPlayerSkill(cid, i) > skill then
			skill = getPlayerSkill(cid, i)
		end
	end
	return skill
end

local dmgType = {
[1] = {COMBAT_ENERGYDAMAGE, CONST_ME_ENERGYAREA},
[2] = {COMBAT_EARTHDAMAGE, CONST_ME_SMALLPLANTS},
[3] = {COMBAT_FIREDAMAGE, CONST_ME_FIREAREA},
[4] = {COMBAT_ICEDAMAGE, CONST_ME_ICEAREA},
}


function onUseWeapon(cid, var)
	local lvl, ml, skill = getPlayerLevel(cid), getPlayerMagLevel(cid), getPlayerTopSkillValue(cid)
	
	local formula = lvl + ml + skill

	local area = {{1, 1, 1},
				  {1, 3, 1},
				  {1, 1, 1}}
				  
	local damage = dmgType[math.random(#dmgType)]
	local effect = damage[2]
	local type = damage[1]
	return doAreaCombatHealth(cid, type, getCreaturePosition(getCreatureTarget(cid)), 1, -(formula*0.8), -(formula*1.2), effect)
end

Testa esse aí

Link para o comentário
Compartilhar em outros sites

  • 0

Aee parceiro, eu consegui criar modificando a minha primeira script, usando lua combat, combat2, combat3.... e math.random para randomizar os ataques com vários elementos diferentes em cada combat (se quiser analisar a minha, fala ai que mando ela por pm) :D Mas eu te agradeço muito por me ajudar, já te dei um "curtir" hoje, amanhã curto de novo.
Único problema que aconteceu na sua script foi que o ataque ficou sem DISTANCEEFFECT, mas me ajudou bastante. Valeww!

DÚVIDA SANADA.

Link para o comentário
Compartilhar em outros sites

  • 0

Aee parceiro, eu consegui criar modificando a minha primeira script, usando lua combat, combat2, combat3.... e math.random para randomizar os ataques com vários elementos diferentes em cada combat (se quiser analisar a minha, fala ai que mando ela por pm) :D Mas eu te agradeço muito por me ajudar, já te dei um "curtir" hoje, amanhã curto de novo.

Único problema que aconteceu na sua script foi que o ataque ficou sem DISTANCEEFFECT, mas me ajudou bastante. Valeww!

 

DÚVIDA SANADA.

 

É, mas colocar um distance effect seria bem tranquilo também. Me manda o seu mesmo pra eu dar uma olhada, fazendo favor.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...