Postado Setembro 22, 2019 5 anos Tem como alguém adaptar para o TFS 0.4? local config = { magic_effect = 15, -- magic effect you want to send when critical hit lands damage_multiplier = 10 -- default damage * 10 = critical damage } function onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin) if attacker == nil then return primaryDamage, primaryType, secondaryDamage, secondaryType end if not attacker:isPlayer() then return primaryDamage, primaryType, secondaryDamage, secondaryType end local skill = attacker:getEffectiveSkillLevel(SKILL_SWORD) local chance = (skill * 0.1) if math.random(100) <= chance then attacker:getPosition():sendMagicEffect(config.magic_effect) return primaryDamage * config.damage_multiplier, primaryType, secondaryDamage, secondaryType end return primaryDamage, primaryType, secondaryDamage, secondaryType end Editado Setembro 22, 2019 5 anos por Slvalviss (veja o histórico de edições)
Postado Setembro 22, 2019 5 anos de forma idêntica não, porque 0.4 não tem os argumentos referenciados como na 1.3, assim, você não consegue retornar ao C++ a variável primaryDamage com valor multiplicado. Até porque onStatsChange do 0.4 retorna boleano, então o que daria pra fazer seria cancelar o alteramento de health/mana e usar auxílio de alguma função como por exemplo doTargetCombatHealth.
Postado Setembro 22, 2019 5 anos Autor 6 minutos atrás, Lyu disse: de forma idêntica não, porque 0.4 não tem os argumentos referenciados como na 1.3, assim, você não consegue retornar ao C++ a variável primaryDamage com valor multiplicado. Até porque onStatsChange do 0.4 retorna boleano, então o que daria pra fazer seria cancelar o alteramento de health/mana e usar auxílio de alguma função como por exemplo doTargetCombatHealth. poderia me ajudar?
Postado Setembro 22, 2019 5 anos Solução Tudo como o @Lyu comentou ... local config = { magic_effect = 15, -- magic effect you want to send when critical hit lands damage_multiplier = 10 -- default damage * 10 = critical damage } function onStatsChange(cid, attacker, type, combat, value) if attacker and value > 0 then if type == STATSCHANGE_HEALTHLOSS and isPlayer(attacker) then local skillSword = getPlayerSkillLevel(attacker, SKILL_SWORD) local chance = (skillSword * 0.1) if math.random(100) <= chance then value = math.floor(value * config.damage_multiplier) doSendMagicEffect(getPlayerPosition(attacker), config.magic_effect) doTargetCombatHealth(attacker, cid, combat, -value, -value, CONST_ME_NONE) end end end return true end STYLLER OT 2022
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.