Postado Março 9, 2019 6 anos Este é um post popular. 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
Postado Março 21, 2019 6 anos 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? ;-;
Postado Março 24, 2019 6 anos 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 Editado Março 24, 2019 6 anos por Christinacsa (veja o histórico de edições)
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.