Jump to content
Close
penisagudo

Scripting Sword batendo por level

Recommended Posts

.Qual servidor ou website você utiliza como base? 

tfs 0.4

 

Qual o motivo deste tópico? 

Gostaria de solicitar um auxilio para criar um script para Sword que iria basear seus hits conforme o Level do player e Skill do player.

 

Agradeço desde já!

 

@Brunds

 

Está surgindo algum erro? Se sim coloque-o aqui. 

Citar

 

 

Você tem o código disponível? Se tiver publique-o aqui: 

 

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

 


Share this post


Link to post
Share on other sites

Você quer que todas as swords fossem assim, ou só uma em específico?


Share this post


Link to post
Share on other sites
4 minutos atrás, movie disse:

Você quer que todas as swords fossem assim, ou só uma em específico?

 

@movie Somente uma em especifico


Share this post


Link to post
Share on other sites

@penisagudo Você vai configurar corretamente a arma no item.xml com os atributos se for axe etc...

 

Depois de configurar tudo corretamente vai em weapons/scripts - Crie um arquivo.lua e cole isso dentro

Obs: deixei também de uma forma que da para colocar dano em área caso quiser

 

weapon.xml

<melee id="ID DO ITEM" level="LVL PARA USAR" event="script" value="nome do arquivo.lua"/>	

 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) -- Tipo de Dano
setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0)

local area = createCombatArea({
	{0, 0, 0},
	{0, 3, 0},
	{0, 0, 0}
})

setCombatArea(combat, area)

function onUseWeapon(cid, var)
local target = getThingPosition(getCreatureTarget(cid))
local pos = {x=target.x+0, y=target.y+0, z=target.z+0}
doSendMagicEffect(pos, 5) --efeito que vai aparecer no target ao dar dano
	return doCombat(cid, combat, var)
end

 


Share this post


Link to post
Share on other sites
4 minutos atrás, Brunds disse:

@penisagudo Você vai configurar corretamente a arma no item.xml com os atributos se for axe etc...

 

Depois de configurar tudo corretamente vai em weapons/scripts - Crie um arquivo.lua e cole isso dentro

Obs: deixei também de uma forma que da para colocar dano em área caso quiser

 


local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) -- Tipo de Dano
setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0)

local area = createCombatArea({
	{0, 0, 0},
	{0, 3, 0},
	{0, 0, 0}
})

setCombatArea(combat, area)

function onUseWeapon(cid, var)
local target = getThingPosition(getCreatureTarget(cid))
local pos = {x=target.x+0, y=target.y+0, z=target.z+0}
doSendMagicEffect(pos, 5) --efeito que vai aparecer no target ao dar dano
	return doCombat(cid, combat, var)
end

 

 

@Brunds Uma duvida esse script leva em consideração LVL e Skill sword do player?

 

Itens.xml ficou assim correto?

 

<item id="12690" article="a" name="Draw Axe">
        <attribute key="weight" value="6800" />
        <attribute key="description" value="Melhor Axe, Mais Valiosa do jogo." />
        <attribute key="defense" value="40" />
        <attribute key="attack" value="210" />
        <attribute key="skillAxe" value="10" />
        <attribute key="elementEnergy" value="40" />
        <attribute key="weaponType" value="axe" />
    </item>


Share this post


Link to post
Share on other sites

@penisagudo sim perfeito agora só colocar o script detalhe atualizei a resposta acima com a tag do xml agora esta tudo ok no script ele vai puxar a skill no caso da arma que é o axe...


Share this post


Link to post
Share on other sites
20 minutos atrás, Brunds disse:

@penisagudo sim perfeito agora só colocar o script detalhe atualizei a resposta acima com a tag do xml agora esta tudo ok no script ele vai puxar a skill no caso da arma que é o axe...

 

Blz, uma pergunta caso eu queira que a Axe bate entre 1000 e 2000 é possível?

Se for como faria?


Share this post


Link to post
Share on other sites
1 minuto atrás, gabriel28 disse:

@penisagudo 
Muda os números aqui:


setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0)

 

No caso eu mudaria os numeros "0"?


Share this post


Link to post
Share on other sites

Share this post


Link to post
Share on other sites

Um script mais completo e menos complexo V

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) -- Tipo de Dano

function onGetFormulaValues(cid, level)
local skill = getPlayerSkill(cid, 2) -- 2 é sword
local dmginicial = 1000 -- Este é o dano base, ou seja ele irá inicialmente bater 1000
local lvlmult = (10 * level/100) -- Esta é a formula para o level damage (10%)
local dmgfinal = (lvlmult*dmginicial/100)  -- Aqui ele irá retornar 10% do seu level e o valor será o Dano aumentando, por exemplo: Se você for level 100, ele irá aumentar 10% do seu Dano base
return -dmgfinal, -dmgfinal
end

setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")

local area = createCombatArea({
	{0, 0, 0},
	{0, 3, 0},
	{0, 0, 0}
})

setCombatArea(combat, area)

function onUseWeapon(cid, var)
local target = getThingPosition(getCreatureTarget(cid))
local pos = {x=target.x+0, y=target.y+0, z=target.z+0}
doSendMagicEffect(pos, 5) --efeito que vai aparecer no target ao dar dano
	return doCombat(cid, combat, var)
end

 


Share this post


Link to post
Share on other sites

po meu patrão, os cara so manda script dificil

toma ai meu xuxu, facinho facinho
 

Spoiler

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 0)
setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 0)
setCombatParam(combat, COMBAT_PARAM_TYPE, 1)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 0)
 
 
function onGetFormulaValues(cid, level, distance)
min = -(distance*level*0.0023*2) + -(1500)
max = -(distance*level*0.0024*2) + -(1500)
return min, max
end
 
 
setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
 
 
function onUseWeapon(cid, var)
local ret = doCombat(cid, combat, var)
if(ret == LUA_ERROR) then
return LUA_ERROR
end
return true
end

*em distance é o skill que voce quer botar (distance significa as skills axe,club,sword e bow)  (NAO USE PRA STAFF)
*0.0023*2 <<< esse numero é um calculo que fiz, calculando skill vezes level vezes dano ( que é 0.0023*2) , vc pode mudar a seu gosto


qualquer duvida so perguntar


Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia partindo do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer publicidade para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução! A publicação do seu anuncio é instantânea!

×
×
  • Create New...