vá em data/creaturescripts/scripts e crie um novo arquivo:
summonattack.lua e coloque isso dentro:
function isCreatureSummon(cid)
if isMonster(cid) and isPlayer(getCreatureMaster(cid)) then return true end
return false
end
function onStatsChange(cid, attacker, type, combat, value)
if type == STATSCHANGE_HEALTHLOSS and isMonster(cid) and isCreatureSummon(attacker) then
doTargetCombatHealth(getCreatureMaster(attacker), cid, combat, value, value, 3)
return false
end
return true
end
Agora abra o creaturescripts.xml (data/creaturescripts) e coloque essa nova tag:
<event type="statschange" name="StopShareExp" event="script" value="summonattack.lua"/>
Agora abra CADA monstro (o arquivo xml que fica na pasta monsters) do seu server, e antes de:
</monster>
adicione:
<script>
<event name="StopShareExp"/>
</script>
Se você tiver as sources do seu server, abra o arquivo creature.cpp e procure esse código:
void Creature::drainHealth(Creature* attacker, CombatType_t combatType, int32_t damage)
{
lastDamageSource = combatType;
onAttacked();
changeHealth(-damage);
if(attacker)
attacker->onAttackedCreatureDrainHealth(this, damage);
}
e substitua por esse:
void Creature::drainHealth(Creature* attacker, CombatType_t combatType, int32_t damage)
{
lastDamageSource = combatType;
onAttacked();
changeHealth(-damage);
if(attacker)
{
if(attacker->isPlayerSummon())
attacker->getMaster()->onAttackedCreatureDrainHealth(this, damage);
else
attacker->onAttackedCreatureDrainHealth(this, damage);
}
}
pronto, só recompilar
feito com base em TFS 8.54 0.3.6pl1, se seu servidor não é esse, pode tentar fazer do mesmo jeito, mas se estiver muito diferente ou então se não conseguir compilar, desista de fazer pelas sources
só procura um tutorial de como recompilar.