Como titulo diz, eu queria que o summon não ganha-se exp.
se isso puder ser feito por script seria melhor pq pesquisei e não achei nada 100%.
Como titulo diz, eu queria que o summon não ganha-se exp.
se isso puder ser feito por script seria melhor pq pesquisei e não achei nada 100%.
Faz assim:
Cria um script chamado summonhit.lua em data/creaturescripts/scripts e coloca isso dentro:
function onCombat(cid, target) registerCreatureEvent(target, "SummonDamage") return true end function onStatsChange(cid, attacker, type, combat, value) if isMonster(attacker) and isPlayer(getCreatureMaster(attacker)) and isInArray({0, 1}, type) then local damage = math.abs(value) * (type == STATSCHANGE_HEALTHGAIN and 1 or -1) doTargetCombatHealth(getCreatureMaster(attacker), cid, combat, damage, damage, 255) return false end return true end
agora adicione essas tags no creaturescripts.xml:
<event type="combat" name="PlayerSummonCombat" event="script" value="summonhit.lua"/> <event type="statschange" name="SummonDamage" event="script" value="summonhit.lua"/>
e adicione essa linha no seu login.lua:
registerCreatureEvent(cid, "PlayerSummonCombat")
@Brun123, creio que você tenha errado, assim o summon não ganha a xp, mais o player ganha a xp só pela metade
ou seja se um bixo da 100 de xp o player ganha 50 se o summon atacar tb.
e sem contar que mesmo sem o summon atacar o player só ganha metade da xp.
funcionou valew meia noite volto pra te dar thanks pq ja gastei 1 HJ sem querer cliquei em rep+ pra 1 cara.
Duvida sanada. já reportei.
Duvida sanada
reportado
Att,
Kissy
O único jeito de bugar isso seria se o summon tivesse alguma ataque em área, e em um lugar com mais de 1 monstro, o player ataque um monstro e a magia do summon pegue em outro monstro, ai a exp. vai novamente pro summon... isso acontece porque o summon consegue tirar hp do monstro antes de registrar o evento de stats change nele.
um jeito não prático pra evitar esse problema seria adicionar isso:
<script> <event name="SummonDamage"/> </script>
antes do </monster> no arquivo .xml de cada monstro do seu server... ia demorar um tempinho
o jeito prático de se fazer isso seria por meio do código fonte do seu server, editando uma única linha dá pra fazer que toda a exp vá para o player, inclusive há diversas formas de fazer isso pelas sources.
Eduardo, o que você falou só aconteceria se eu utilizasse a função doChangeHealth, mas como usei doTargetCombatHealth, a exp. vai toda pro player