Postado Julho 16, 2014 10 anos Bom galera, to precisando muito da ajuda de vocês, e prometo dar rep para aqueles que me ajudarem!! Bom, nos meus scripts, eu queria saber como que funciona a linha do Dano; setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -26, 49, -30, 49) Esses números, o que fazem? Qual é a definição exata deles? porque eu gostaria de saber qual interage com o ML, com o Level, para poder calcular um Dano EXATO da Magia. Ou seria melhor ainda se vocês pudessem "transgredir" esse Script; local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -26, 49, -30, 49) local distanceCombat = createCombatObject() setCombatParam(distanceCombat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(distanceCombat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatParam(distanceCombat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH) setCombatFormula(distanceCombat, COMBAT_FORMULA_LEVELMAGIC, -26, 49, -30, 49) function onCastSpell(cid, var) if(variantToNumber(var) ~= 0) then return doCombat(cid, distanceCombat, var) end return doCombat(cid, combat, var) end Para aqueles Scripts que utilizam a forma; (getPlayerMagLevel(cid) * 9 + getPlayerLevel(cid) * 1.54), (getPlayerMagLevel(cid) * 10 + getPlayerLevel(cid) * 1.65) Para criar o dano, porque com esses eu sei me virar um pouco... Obrigado pessoal, REP mais por semanas pra quem me ajudar *-* E se puder, dá uma olhada no meu outro tópico... http://www.tibiaking.com/forum/topic/38090-magia-com-dano-por-skill-e-level/ Alguém ajuda, please! :/ Gente, ajuda por favor D=!
Postado Julho 16, 2014 10 anos Tem esse tuto do Strikes História: Você está criando um feitiço e quando você verificar em sua lua * BOOM * você verá o seguinte: setCombatFormula (combate, COMBAT_FORMULA_LEVELMAGIC, -1.0, -900, -3.2, -1100) ou setCombatFormula (combate, COMBAT_FORMULA_SKILL, 1.0, -900, 3.2, -1100) E você não tem idéia do que diabos são esses números. Bem, eu vou explicar. 1.0, -900, 3.2, -1100) O primeiro número é o multiplicador da sua habilidade (Se for definido para COMBAT_FORMULAT_LEVELMAGIC, então ele vai ser baseado de nível de magia, se definido como habilidade, então a sua habilidade corpo a corpo principal terá sobre os outros) O segundo número é o dano mínimo (Se você quer fazer um feitiço de cura, remova a - () símbolo negativo da segunda e quarta números) O terceiro número é o multiplicador do seu nível de personagem. O quarto número é o dano máximo (Leia o parêntese do segundo conjunto de números) Agora, há uma diferença entre habilidade e LEVELMAGIC fórmulas. Se você quer que eles para causar dano e não curar cada um tem uma configuração diferente. COMBAT_FORMULA_SKILL, 1,0, -100, 1.0, -200) Causará dano COMBAT_FORMULA_SKILL, -1.0, -100, -1.0, -200) VAI CURAR O INIMIGO SE VOCÊ É DE ALTO NÍVEL ou ter um nível de habilidade ALTA COMBAT_FORMULA_SKILL, -1.0, 100, -1.0, 200) Vai curar o inimigo COMBAT_FORMULA_LEVELMAGIC, 1,0, -100, 1.0, -200) VAI CURAR O INIMIGO SE VOCÊ É de alto nível ou ter um nível de MAGIC ALTA Nota: Irá causar dano, se você é baixo nível e ter um nível de magia baixo desde mínimo e máximo dano são negativos COMBAT_FORMULA_LEVELMAGIC, -1.0, -100, -1.0, -200) Vai lidar completamente danos ao inimigo COMBAT_FORMULA_LEVELMAGIC, 1,0, 100, 1,0, 200) Vai curar o inimigo. Então, sim, eu acho que você obtê-lo como habilidade e LEVELMAGIC funciona agora. Agora vamos fazer alguns cálculos sobre a forma como os multiplicadores somam o dano máximo e mínimo. Suponha que você tenha o seguinte: COMBAT_FORMULA_LEVELMAGIC, -1.0, -100, -1.0, -200) E você é um personagem de nível 100 com 100 Magic level em primeiro lugar no nível 0 você lidaria 100 ~ 200 de dano. Agora no nível 100 com 100 Magic level você gostaria de acrescentar-se o primeiro eo terceiro valor (100 +100), que é 200, e, em seguida, adicioná-lo até o mínimo eo dano máximo Que será de 300 ~ 400 de dano no nível 100 com 100 magic level. Então, sempre somar o primeiro eo terceiro valor, e eles adicioná-lo a ambos os valores mínimos e máximos (o segundo e quarto). Espero que este guia de ajuda que vocês fazem feitiços equilibradas =]. Ot Design: https://discord.gg/VgtVRNmCD7
Postado Julho 16, 2014 10 anos Autor Tem esse tuto do Strikes História: Você está criando um feitiço e quando você verificar em sua lua * BOOM * você verá o seguinte: setCombatFormula (combate, COMBAT_FORMULA_LEVELMAGIC, -1.0, -900, -3.2, -1100) ou setCombatFormula (combate, COMBAT_FORMULA_SKILL, 1.0, -900, 3.2, -1100) E você não tem idéia do que diabos são esses números. Bem, eu vou explicar. 1.0, -900, 3.2, -1100) O primeiro número é o multiplicador da sua habilidade (Se for definido para COMBAT_FORMULAT_LEVELMAGIC, então ele vai ser baseado de nível de magia, se definido como habilidade, então a sua habilidade corpo a corpo principal terá sobre os outros) O segundo número é o dano mínimo (Se você quer fazer um feitiço de cura, remova a - () símbolo negativo da segunda e quarta números) O terceiro número é o multiplicador do seu nível de personagem. O quarto número é o dano máximo (Leia o parêntese do segundo conjunto de números) Agora, há uma diferença entre habilidade e LEVELMAGIC fórmulas. Se você quer que eles para causar dano e não curar cada um tem uma configuração diferente. COMBAT_FORMULA_SKILL, 1,0, -100, 1.0, -200) Causará dano COMBAT_FORMULA_SKILL, -1.0, -100, -1.0, -200) VAI CURAR O INIMIGO SE VOCÊ É DE ALTO NÍVEL ou ter um nível de habilidade ALTA COMBAT_FORMULA_SKILL, -1.0, 100, -1.0, 200) Vai curar o inimigo COMBAT_FORMULA_LEVELMAGIC, 1,0, -100, 1.0, -200) VAI CURAR O INIMIGO SE VOCÊ É de alto nível ou ter um nível de MAGIC ALTA Nota: Irá causar dano, se você é baixo nível e ter um nível de magia baixo desde mínimo e máximo dano são negativos COMBAT_FORMULA_LEVELMAGIC, -1.0, -100, -1.0, -200) Vai lidar completamente danos ao inimigo COMBAT_FORMULA_LEVELMAGIC, 1,0, 100, 1,0, 200) Vai curar o inimigo. Então, sim, eu acho que você obtê-lo como habilidade e LEVELMAGIC funciona agora. Agora vamos fazer alguns cálculos sobre a forma como os multiplicadores somam o dano máximo e mínimo. Suponha que você tenha o seguinte: COMBAT_FORMULA_LEVELMAGIC, -1.0, -100, -1.0, -200) E você é um personagem de nível 100 com 100 Magic level em primeiro lugar no nível 0 você lidaria 100 ~ 200 de dano. Agora no nível 100 com 100 Magic level você gostaria de acrescentar-se o primeiro eo terceiro valor (100 +100), que é 200, e, em seguida, adicioná-lo até o mínimo eo dano máximo Que será de 300 ~ 400 de dano no nível 100 com 100 magic level. Então, sempre somar o primeiro eo terceiro valor, e eles adicioná-lo a ambos os valores mínimos e máximos (o segundo e quarto). Espero que este guia de ajuda que vocês fazem feitiços equilibradas =]. Cara!!! Rep + por 1 semana, procurei demais por uma explicação assim, e agora consegui! Muito, MUITO obrigado. Pode me fazer um último favor? Gostaria que essa magia de Target, desse 2 HIts, tipo um no Instant 0, e outro no Instant 400, mas com Ataques diferentes (ou seja, uma formula pra cada hit, pra eu editar depois). Se conseguir, rep+ por 2 '*-* local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) function onCastSpell(cid, var) return doCombat(cid, combat, var) end
Postado Julho 16, 2014 10 anos Solução local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) local area = createCombatArea(AREA_CROSS1X1) setCombatArea(combat, area) local t = { repeatTimes = 2, delay = 400, -- miliseconds typeWeapon = 0 -- WEAPON_NONE = 0, WEAPON_SWORD = 1, WEAPON_CLUB = 2, WEAPON_AXE = 3, WEAPON_DIST = 4, WEAPON_SHIELD = 5, WEAPON_FIST = 6, WEAPON_WAND = 7, WEAPON_AMMO = 8 } function onCastSpell(cid, var) local weapon = getPlayerWeapon(cid, true) if(getItemInfo(weapon.itemid).weaponType == t.typeWeapon) then for i = 0, t.repeatTimes - 1 do addEvent(doCombat, t.delay * i, cid, combat, var) end else doPlayerSendCancel(cid, "Você deve equipar uma arma para isso.") end end <instant name="X" words="X" range="1" needtarget="1" exhaustion="2000" event="script" value="NOME.lua"> <vocation id="1"/> <vocation id="2"/> <vocation id="3"/> <vocation id="4"/> </instant> Seria isso? edit~~ agora li direito, eu achei esse script que parece ter o que tu quer, mas não sei se funciona: local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_DOUBLEIMPACT) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_CRYSTALARROW) function onGetFormulaValues(cid, level, skill, attack, factor) min = -(skill + attack + (level * 2)) max = -(skill + attack + (level * 2.2)) return min, max end local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_DOUBLEIMPACT) setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_CRYSTALARROW) function onGetFormulaValues(cid, level, skill, attack, factor) min = -(skill + attack + (level * 2)) max = -(skill + attack + (level * 2.2)) return min, max end local function onCastSpell1(cid, var) doCombat(cid, combat1, var) end local function onCastSpell2(cid, var) doCombat(cid, combat2, var) end setCombatCallback(combat1, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") setCombatCallback(combat2, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") function onCastSpell(cid, var) addEvent(onCastSpell1, 0, cid, var) addEvent(onCastSpell2, 100, cid, var) end Ot Design: https://discord.gg/VgtVRNmCD7
Postado Julho 16, 2014 10 anos Autor local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) local area = createCombatArea(AREA_CROSS1X1) setCombatArea(combat, area) local t = { repeatTimes = 2, delay = 400, -- miliseconds typeWeapon = 0 -- WEAPON_NONE = 0, WEAPON_SWORD = 1, WEAPON_CLUB = 2, WEAPON_AXE = 3, WEAPON_DIST = 4, WEAPON_SHIELD = 5, WEAPON_FIST = 6, WEAPON_WAND = 7, WEAPON_AMMO = 8 } function onCastSpell(cid, var) local weapon = getPlayerWeapon(cid, true) if(getItemInfo(weapon.itemid).weaponType == t.typeWeapon) then for i = 0, t.repeatTimes - 1 do addEvent(doCombat, t.delay * i, cid, combat, var) end else doPlayerSendCancel(cid, "Você deve equipar uma arma para isso.") end end <instant name="X" words="X" range="1" needtarget="1" exhaustion="2000" event="script" value="NOME.lua"> <vocation id="1"/> <vocation id="2"/> <vocation id="3"/> <vocation id="4"/> </instant> Seria isso? edit~~ agora li direito, eu achei esse script que parece ter o que tu quer, mas não sei se funciona: local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_DOUBLEIMPACT) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_CRYSTALARROW) function onGetFormulaValues(cid, level, skill, attack, factor) min = -(skill + attack + (level * 2)) max = -(skill + attack + (level * 2.2)) return min, max end local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_DOUBLEIMPACT) setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_CRYSTALARROW) function onGetFormulaValues(cid, level, skill, attack, factor) min = -(skill + attack + (level * 2)) max = -(skill + attack + (level * 2.2)) return min, max end local function onCastSpell1(cid, var) doCombat(cid, combat1, var) end local function onCastSpell2(cid, var) doCombat(cid, combat2, var) end setCombatCallback(combat1, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") setCombatCallback(combat2, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") function onCastSpell(cid, var) addEvent(onCastSpell1, 0, cid, var) addEvent(onCastSpell2, 100, cid, var) end Tá dando só um hit e o erro; "(unknown script file) Description: Attempt to call a nil value"
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.