UL

Ajuda No Onkill

Por Ultra Lord, 25 de fev. de 2010 em Archived

script
12
1.6k
Ultra LordU
25 de fevereiro de 2010 às 10:51

Eai galera, to tentando faze uma função no meu script e n to conseguindo.

 

Eis o que eu quero fazer:

Fiz uma função onKill com varios casos, em um caso, se um player com 10 leveis acima de sua vítima matar-la, o vítima não perde experiência.

 

A função que verifica o level eu já fiz e esta funcionando perfeitamente, o problema é esse não perder experiência.

 

Eu já tentei colocar:

doPlayerSetLossPercent(target, PLAYERLOSS_EXPERIENCE, 0)

doPlayerAddBless(target, 5)

doPlayerAddExperience(target,(getPlayerExperience(target)*0.05))

 

e nenhuma delas funciona, se alguem puder me ajudar eu agradeço muito.

 

Obs: No meu serv qnd um player morre sem estar no caso acima ele perde 5%

VildenV
25 de fevereiro de 2010 às 16:52
doPlayerSetLossPercent(target, PLAYERLOSS_EXPERIENCE, 0)

 

ta 0 la no final, vai perde 0 de experience

 

 

você quer q ele não perca ou perca?? o.O confundiu ali

o vítima não perde experiência.
o problema é esse não perder experiência.
Ultra LordU
25 de fevereiro de 2010 às 17:31

Olá Vilden,

Eu quero que ele NÃO perca experiencia

lucasjockeyL
25 de fevereiro de 2010 às 22:04

Em todas as funções tente trocar a variável target para cid, ex.:

 

doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, 0)
Ultra LordU
25 de fevereiro de 2010 às 23:48

Kara, se eu mudar de target para cid, qm n vai perder xp é qm matou, n qm morreu. Eu quero que o player que morre n perca exp

VildenV
26 de fevereiro de 2010 às 01:15

No lugar de target não seria algo do tipo getCreatureTarget(cid)

 

doPlayerSetLossPercent(getCreatureTarget(cid), PLAYERLOSS_EXPERIENCE, 0)

 

 

não sei..

Ultra LordU
26 de fevereiro de 2010 às 20:06

Kra, eu tentei assim e n funciono, fala q ele n acha o player no parametro.

 

eu uso o target ao inves do cid pq eu declarei eles:

 

  if isPlayer(cid) and isPlayer(target) then

 

tanto q eu uso getPlayerName(target) e funciona direitinho

tibiaa4eT
27 de fevereiro de 2010 às 05:06

Tente fazer de outro modo

Quando o player morre nessas condições se adiciona um storage

E usando a function onLogin faça checar esse storage e adicionar a experiencia que ele perdeu.

 

Para não ficar estranho, mande uma mensagem para o player dizendo que ele ganho a experiencia porque o outro deu power abuser ou algo assim

Ultra LordU
27 de fevereiro de 2010 às 09:39

Muito boa a ideia Tibiaa4e.

Mas n estou conseguindo pega a experiência do player antes de morre e coloca no login.

Voce sabe como isso seria possivel?

 

A parte dos storage já fiz.

tibiaa4eT
28 de fevereiro de 2010 às 12:09

Level 25+ perde (level+50)/100 de experiencia

level 24- perde 10%

 

Ai vc checa a exp dele e tira a porcentagem disso

AI adiciona isso

 

Esse calculo vi no wikia.

satan666S
28 de fevereiro de 2010 às 21:12

usa esse caúculo para obter a xp que o player irá perde.

 

((Valor*porcentagem)/100)

 

na qual Valor seria a quantidade de XP que ela está no momento.

porcentagem seria a quantidade em %(porcentos) de xp que ela vai perder.

WiltryW
01 de março de 2010 às 20:33

da pra pegar um storage x no onpreparedeath e um y no ondeath, dai subtrai um de outro