Ir para conteúdo

[Summon] Duvida Script


Brasstemp

Posts Recomendados

Ola, vou ser rapido

 

Estou com uma duvida assim:

 

Quando druid faz summon "utevo res" ....e eles matam algum bicho a exp é repartida entre o summon e o Player; Gostaria de saber onde fica a function que coloca isso para desativado, para que so o player "druid ou sorcerer" fiquem com a exp.

 

Obrigado desde Ja

Brasstemp ;D

Link para o comentário
Compartilhar em outros sites

vamos la man, usem a criatividade, deve existir algum modo..

se não da com a magia utevo res então podemos usar algum tipo de magia de poketibia ou algo parecido, mais uma resposta como essa não pode ser relevada:

nao tem o q explicar! aprenda a mexer em liguagems de programaçao!

se ele esta pedindo ajuda ou é pq não sabe ou pq não pode compilar, sendo assim vamos nos esforçar um pouco mais..

Link para o comentário
Compartilhar em outros sites

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.

Editado por brun123
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...