Jump to content
Close
LeoTK

Spell [Spell] Dano Por Skill

Recommended Posts

Testado : ✔️

OTX - 0.3.6 / 8.54

 

Salve galera, bom depois de algum tempo e com ajuda de alguns amigos, consegui trazer para vocês essa função, eu sei que já tem alguns tópicos referente ao assunto, porém sempre com problemas ou nunca explicado de uma forma simples e objetiva.

 

Para começar vamos ao código

 

Função

function onGetFormulaValues(cid, level, skill, attack, factor)
    local lvl_skill = getPlayerSkillLevel(cid, SKILL_CLUB)
	 local lvl_skill2 = getPlayerSkillLevel(cid, SKILL_FIST)
    local min = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5) * 3 
    local max = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5) * 3
    return -min, -max
end

setCombatCallback(combat1, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")

Bom essa função vai calcular o level, skill para dar o dano da spell.

 

Mas vamos a algumas observações e informações sobre ela.

 

Primeiramente você pode configurar ela para calcular mais de uma skill no caso da função acima esta calculando a club e fist

 

Para adicionar ou remover skills a ser calculada você vai remover ou adicionar essa linha

    local lvl_skill = getPlayerSkillLevel(cid, SKILL_CLUB)

Depois de adicionar ou remover você vai editar essa linha

    local min = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5) * 3 
    local max = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5) * 3

Então esta calculando o level a skill club e a skill fist mas tanto pode remover a skill fist ou adicionar outra skill ficando assim

 

Removido

    local min = (level * 3 + lvl_skill * 5) * 3 
    local max = (level * 3 + lvl_skill * 5) * 3

Adicionado para calcular e somar mais de uma skill para dar o dano ou seja

 

    local min = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5 + lvl_skill3 * 5 + lvl_skill4 * 5) * 3
    local max = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5 + lvl_skill3 * 5 + lvl_skill4 * 5) * 3

Assim vai calcular e somar as skills então se tiver 50 de club vai dar um dano se tiver 50 de fist vai somar com a club e o dano vai ser maior e por ai vai com isso da para criar diversos quesitos de rpg por exemplo mestre das armas o jogador treina todas as skills de tipos de armas e a spell vai dar mais dano por conta disso

 

!! ATENÇÃO !!

Para o script poder fazer todo esse calculo o jogador precisa estar usando uma arma que upe skill ou seja se ele estiver usando club ele vai calcular a skill do jogador se ele não estiver usando nada nas mãos vai calcular o fist dependendo disso vai afetar no dano que a skill pode dar

 

Bom é isso espero que vocês gostem, Não esqueça de deixar o feedback se gostou, se foi útil etc...

 

Créditos:

@Dwarfer

@lordzetros

 





Share this post


Link to post
Share on other sites
Em 09/03/2019 em 18:48, Brunds disse:

Testado : ✔️

OTX - 0.3.6 / 8.54

 

Salve galera, bom depois de algum tempo e com ajuda de alguns amigos, consegui trazer para vocês essa função, eu sei que já tem alguns tópicos referente ao assunto, porém sempre com problemas ou nunca explicado de uma forma simples e objetiva.

 

Para começar vamos ao código

 

Função


function onGetFormulaValues(cid, level, skill, attack, factor)
    local lvl_skill = getPlayerSkillLevel(cid, SKILL_CLUB)
	 local lvl_skill2 = getPlayerSkillLevel(cid, SKILL_FIST)
    local min = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5) * 3 
    local max = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5) * 3
    return -min, -max
end

setCombatCallback(combat1, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")

Bom essa função vai calcular o level, skill para dar o dano da spell.

 

Mas vamos a algumas observações e informações sobre ela.

 

Primeiramente você pode configurar ela para calcular mais de uma skill no caso da função acima esta calculando a club e fist

 

Para adicionar ou remover skills a ser calculada você vai remover ou adicionar essa linha


    local lvl_skill = getPlayerSkillLevel(cid, SKILL_CLUB)

Depois de adicionar ou remover você vai editar essa linha


    local min = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5) * 3 
    local max = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5) * 3

Então esta calculando o level a skill club e a skill fist mas tanto pode remover a skill fist ou adicionar outra skill ficando assim

 

Removido


    local min = (level * 3 + lvl_skill * 5) * 3 
    local max = (level * 3 + lvl_skill * 5) * 3

Adicionado para calcular e somar mais de uma skill para dar o dano ou seja

 


    local min = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5 + lvl_skill3 * 5 + lvl_skill4 * 5) * 3
    local max = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5 + lvl_skill3 * 5 + lvl_skill4 * 5) * 3

Assim vai calcular e somar as skills então se tiver 50 de club vai dar um dano se tiver 50 de fist vai somar com a club e o dano vai ser maior e por ai vai com isso da para criar diversos quesitos de rpg por exemplo mestre das armas o jogador treina todas as skills de tipos de armas e a spell vai dar mais dano por conta disso

 

!! ATENÇÃO !!

Para o script poder fazer todo esse calculo o jogador precisa estar usando uma arma que upe skill ou seja se ele estiver usando club ele vai calcular a skill do jogador se ele não estiver usando nada nas mãos vai calcular o fist dependendo disso vai afetar no dano que a skill pode dar

 

Bom é isso espero que vocês gostem, Não esqueça de deixar o feedback se gostou, se foi útil etc...

 

Créditos:

@Dwarfer

@lordzetros

 

 

Pega tfs 0.4 8.60 não? ;-;



MEUS TÓPICO DE DOWNLOAD:

 

 

Sistemas/Scripts:

 




Share this post


Link to post
Share on other sites

@ITALOx 

deve pegar sim , normal





Share this post


Link to post
Share on other sites

@ITALOx testa acredito que sim





Share this post


Link to post
Share on other sites
Em 09/03/2019 em 18:48, Brunds disse:

Testado : ✔️

OTX - 0.3.6 / 8.54

 

Salve galera, bom depois de algum tempo e com ajuda de alguns amigos, consegui trazer para vocês essa função, eu sei que já tem alguns tópicos referente ao assunto, porém sempre com problemas ou nunca explicado de uma forma simples e objetiva.

 

Para começar vamos ao código

 

Função


function onGetFormulaValues(cid, level, skill, attack, factor)
    local lvl_skill = getPlayerSkillLevel(cid, SKILL_CLUB)
	 local lvl_skill2 = getPlayerSkillLevel(cid, SKILL_FIST)
    local min = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5) * 3 
    local max = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5) * 3
    return -min, -max
end

setCombatCallback(combat1, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")

Bom essa função vai calcular o level, skill para dar o dano da spell.

 

Mas vamos a algumas observações e informações sobre ela.

 

Primeiramente você pode configurar ela para calcular mais de uma skill no caso da função acima esta calculando a club e fist

 

Para adicionar ou remover skills a ser calculada você vai remover ou adicionar essa linha


    local lvl_skill = getPlayerSkillLevel(cid, SKILL_CLUB)

Depois de adicionar ou remover você vai editar essa linha


    local min = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5) * 3 
    local max = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5) * 3

Então esta calculando o level a skill club e a skill fist mas tanto pode remover a skill fist ou adicionar outra skill ficando assim

 

Removido


    local min = (level * 3 + lvl_skill * 5) * 3 
    local max = (level * 3 + lvl_skill * 5) * 3

Adicionado para calcular e somar mais de uma skill para dar o dano ou seja

 


    local min = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5 + lvl_skill3 * 5 + lvl_skill4 * 5) * 3
    local max = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5 + lvl_skill3 * 5 + lvl_skill4 * 5) * 3

Assim vai calcular e somar as skills então se tiver 50 de club vai dar um dano se tiver 50 de fist vai somar com a club e o dano vai ser maior e por ai vai com isso da para criar diversos quesitos de rpg por exemplo mestre das armas o jogador treina todas as skills de tipos de armas e a spell vai dar mais dano por conta disso

 

!! ATENÇÃO !!

Para o script poder fazer todo esse calculo o jogador precisa estar usando uma arma que upe skill ou seja se ele estiver usando club ele vai calcular a skill do jogador se ele não estiver usando nada nas mãos vai calcular o fist dependendo disso vai afetar no dano que a skill pode dar

 

Bom é isso espero que vocês gostem, Não esqueça de deixar o feedback se gostou, se foi útil etc...

 

Créditos:

@Dwarfer

@lordzetros

 

 

Tenho uma duvida
Como eu adaptaria esse script abaixo, para funcionar com essa função ? , não da error na distro mas não da dano algum.
Uso Tfs 0.4


Script modificada :
 

Spoiler

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -60.8, 1, -65.2, 1)

function onGetFormulaValues(cid, level, skill, attack, factor)
    local lvl_skill = getPlayerSkillLevel(cid, SKILL_CLUB)
     local lvl_skill2 = getPlayerSkillLevel(cid, SKILL_FIST)
    local min = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5) * 3 
    local max = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5) * 3
    return -min, -max
end

setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
function onCastSpell(cid, var)
local position1 = {x=getThingPosition(getCreatureTarget(cid)).x+0, y=getThingPosition(getCreatureTarget(cid)).y+0, z=getThingPosition(getCreatureTarget(cid)).z}
local position2 = {x=getThingPosition(getCreatureTarget(cid)).x+1, y=getThingPosition(getCreatureTarget(cid)).y+0, z=getThingPosition(getCreatureTarget(cid)).z}
local pos = getCreaturePosition(cid)
doSendMagicEffect(position1, 150)
doSendMagicEffect(position2, 49)
return doCombat(cid, combat, var)
end


Script original :
 

Spoiler

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -60.8, 1, -65.2, 1)

function onCastSpell(cid, var)
local waittime = 0.8 -- Tempo de exhaustion
local storage = 115818

if exhaustion.check(cid, storage) then
    doPlayerSendChannelMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde ".. exhaustion.get(cid, storage) .. " segundos para usar o jutsu novamente.", TALKTYPE_CHANNEL_O, CHANNEL_COOLDOWNS)
return false
end
local position1 = {x=getThingPosition(getCreatureTarget(cid)).x+0, y=getThingPosition(getCreatureTarget(cid)).y+0, z=getThingPosition(getCreatureTarget(cid)).z}
local position2 = {x=getThingPosition(getCreatureTarget(cid)).x+1, y=getThingPosition(getCreatureTarget(cid)).y+0, z=getThingPosition(getCreatureTarget(cid)).z}
local pos = getCreaturePosition(cid)
doSendMagicEffect(position1, 150)
doSendMagicEffect(position2, 49)
exhaustion.set(cid, storage, waittime)
return doCombat(cid, combat, var)
end
 

 


Edited by Christinacsa (see edit history)

Meu Servidor Minecraft : Ip - Skylowcraft.minecraftbr.net:25585 = Servidor 24hrs Sem Lag , Sem Hackers (1.7.2) Servidor De Fullpvp e Survival - Vamos Colocar Minigames!.




Share this post


Link to post
Share on other sites

@Christinacsa 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
function onGetFormulaValues(cid, level, skill, attack, factor)
    local lvl_skill = getPlayerSkillLevel(cid, SKILL_CLUB)
	 local lvl_skill2 = getPlayerSkillLevel(cid, SKILL_FIST)
    local min = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5) * 3 
    local max = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5) * 3
    return -min, -max
end

setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")

function onCastSpell(cid, var)
local waittime = 0.8 -- Tempo de exhaustion
local storage = 115818

if exhaustion.check(cid, storage) then
    doPlayerSendChannelMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde ".. exhaustion.get(cid, storage) .. " segundos para usar o jutsu novamente.", TALKTYPE_CHANNEL_O, CHANNEL_COOLDOWNS)
return false
end
local position1 = {x=getThingPosition(getCreatureTarget(cid)).x+0, y=getThingPosition(getCreatureTarget(cid)).y+0, z=getThingPosition(getCreatureTarget(cid)).z}
local position2 = {x=getThingPosition(getCreatureTarget(cid)).x+1, y=getThingPosition(getCreatureTarget(cid)).y+0, z=getThingPosition(getCreatureTarget(cid)).z}
local pos = getCreaturePosition(cid)
doSendMagicEffect(position1, 150)
doSendMagicEffect(position2, 49)
exhaustion.set(cid, storage, waittime)
return doCombat(cid, combat, var)
end

 





Share this post


Link to post
Share on other sites
3 horas atrás, Brunds disse:

@Christinacsa 


local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
function onGetFormulaValues(cid, level, skill, attack, factor)
    local lvl_skill = getPlayerSkillLevel(cid, SKILL_CLUB)
	 local lvl_skill2 = getPlayerSkillLevel(cid, SKILL_FIST)
    local min = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5) * 3 
    local max = (level * 3 + lvl_skill * 5 + lvl_skill2 * 5) * 3
    return -min, -max
end

setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")

function onCastSpell(cid, var)
local waittime = 0.8 -- Tempo de exhaustion
local storage = 115818

if exhaustion.check(cid, storage) then
    doPlayerSendChannelMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde ".. exhaustion.get(cid, storage) .. " segundos para usar o jutsu novamente.", TALKTYPE_CHANNEL_O, CHANNEL_COOLDOWNS)
return false
end
local position1 = {x=getThingPosition(getCreatureTarget(cid)).x+0, y=getThingPosition(getCreatureTarget(cid)).y+0, z=getThingPosition(getCreatureTarget(cid)).z}
local position2 = {x=getThingPosition(getCreatureTarget(cid)).x+1, y=getThingPosition(getCreatureTarget(cid)).y+0, z=getThingPosition(getCreatureTarget(cid)).z}
local pos = getCreaturePosition(cid)
doSendMagicEffect(position1, 150)
doSendMagicEffect(position2, 49)
exhaustion.set(cid, storage, waittime)
return doCombat(cid, combat, var)
end

 

 

Ainda não tá dano, dano algum será que é por conta do meu skill?



Meu Servidor Minecraft : Ip - Skylowcraft.minecraftbr.net:25585 = Servidor 24hrs Sem Lag , Sem Hackers (1.7.2) Servidor De Fullpvp e Survival - Vamos Colocar Minigames!.




Share this post


Link to post
Share on other sites

@Christinacsa cara procura vê se a formula e essa mesmo eu testei em 0.3.6 a 0.4 pode ser diferente eu só coloquei a forma correta no script agora procure para ver se a 0.4 tem alguma coisa de diferente em relação a formula





Share this post


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

@Christinacsa cara procura vê se a formula e essa mesmo eu testei em 0.3.6 a 0.4 pode ser diferente eu só coloquei a forma correta no script agora procure para ver se a 0.4 tem alguma coisa de diferente em relação a formula

 

ok



Meu Servidor Minecraft : Ip - Skylowcraft.minecraftbr.net:25585 = Servidor 24hrs Sem Lag , Sem Hackers (1.7.2) Servidor De Fullpvp e Survival - Vamos Colocar Minigames!.




Share this post


Link to post
Share on other sites

@Christinacsa 
Tenta com a formula desse jeito:

function onGetFormulaValues(cid, level, skill, attack, factor)
    local lvl_skill = getPlayerSkillLevel(cid, SKILL_CLUB)
	 local lvl_skill2 = getPlayerSkillLevel(cid, SKILL_FIST)
    local min = -(level * 3 + lvl_skill * 5 + lvl_skill2 * 5) * 3 
    local max = -(level * 3 + lvl_skill * 5 + lvl_skill2 * 5) * 3
    return min, max
end

 





Share this post


Link to post
Share on other sites
5 horas atrás, gabriel28 disse:

@Christinacsa 
Tenta com a formula desse jeito:


function onGetFormulaValues(cid, level, skill, attack, factor)
    local lvl_skill = getPlayerSkillLevel(cid, SKILL_CLUB)
	 local lvl_skill2 = getPlayerSkillLevel(cid, SKILL_FIST)
    local min = -(level * 3 + lvl_skill * 5 + lvl_skill2 * 5) * 3 
    local max = -(level * 3 + lvl_skill * 5 + lvl_skill2 * 5) * 3
    return min, max
end

 

 

ainda continua sem da error algum mas não da hit no monstro



Meu Servidor Minecraft : Ip - Skylowcraft.minecraftbr.net:25585 = Servidor 24hrs Sem Lag , Sem Hackers (1.7.2) Servidor De Fullpvp e Survival - Vamos Colocar Minigames!.




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 começando do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer fazer um plano publicitário 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!

×
×
  • Create New...