Experiкncia -
hbzi - 20.10.2012
Boa noite.
Tenho um filterscript de login que guarda vбrias informaзхes de uma conta num ficheiro .ini a partir do dini.
O sistema funciona perfeitamente sem qualquer bug.
Esse sistema cria vбrias informaзхes no ficheiro entre elas "Exp" e "Nivel" iguais a 0 e a 1 respetivamente.
Estou a criar outro filterscript que dб 1 Exp por cada kill e que evolui o nнvel a cada nнvel*5 (nнvel 1 para nнvel 2 5 exp, nнvel 2 para nнvel 3 10 exp, etc..)
Tenho a seguinte enum e respetivo vetor no filterscript da exp:
Код:
enum jDados
{
exp,
nivel
}
new d[MAX_PLAYERS][jDados];
Ora, para adicionar +1 de exp quando se mata alguem fiz:
Код:
public OnPlayerDeath (playerid, killerid, reason)
{
d[killerid][exp]++;
}
Porйm, ao matar alguйm, essa exp nгo й atribuнda.
Para visualizar se resultou criei o comando /1 com o ZCMD:
Код:
command(1, playerid, params[])
{
new temporario[128];
format(temporario, sizeof(temporario), "Exp: %d Nivel: %d", d[playerid][exp], d[playerid][nivel]);
SendClientMessage(playerid, 0xFF0000FF, temporario);
return 1;
}
Este apresenta-me "Exp: 0 Nivel: 1". Apуs matar alguйm e fazer este mesmo comando, a exp nгo muda.
Criei ainda outro comando /add para adicionar 1 Exp e 1 nivel ao jogador o qual funciona:
Код:
command(add, playerid, params[])
{
d[playerid][exp]++;
d[playerid][nivel]++;
}
Apуs executar esse comando, executo o comando /1 e reparo que os valores mudaram naquilo que era previsto recebendo assim a mensagem "Exp: 1 Nivel: 2".
Podem-me ajudar em relaзгo ao OnPlayerDeath? Pelo que estou a ver o problema sу pode ser gerado a partir dali.
Obrigado,
hbzi.
Re: Experiкncia -
hbzi - 20.10.2012
*BUMP*
Se acharam alguma parte confusa digam que eu tento explicar de forma mais simplificada.
hbzi.
Re: Experiкncia -
arakuta - 20.10.2012
Jб aconteceu isso comigo no onplayerdeath '-'
tenta checar se o killerid й valido antes de dar a exp:
if(killerid != INVALID_PLAYER_ID)
Ou, tenta adicionar assim
d[killerid][exp] += 1;
Re: Experiкncia -
hbzi - 20.10.2012
Quote:
Originally Posted by arakuta
Jб aconteceu isso comigo no onplayerdeath '-'
tenta checar se o killerid й valido antes de dar a exp:
if(killerid != INVALID_PLAYER_ID)
Ou, tenta adicionar assim
d[killerid][exp] += 1;
|
Desde jб, obrigado pela resposta.
Em relaзгo a d[killerid][exp] += 1 jб tinha experimentado antes e sem sucesso.
Em relaзгo a if(killerid != INVALID_PLAYER_ID) sу poderei experimentar amanhг, mas penso que nгo resolverб o meu problema.
Imaginando eu contra ti: eu = id 0, tu = id 1. Eu mato-te. Й impossнvel teres morrido por alguйm com um ID invбlido uma vez que fui (id 0) que te matei. Logo killerid = 0. Nгo percebo mesmo.
Podem colocar mais possнveis soluзхes.
Obrigado,
hbzi.
Re: Experiкncia -
Maklister - 20.10.2012
PHP код:
public OnPlayerDeath (playerid, killerid, reason)
{
d[killerid][exp] = d[killerid][exp] + 1;
return 1;
}
Re: Experiкncia -
hbzi - 20.10.2012
Quote:
Originally Posted by Murilo_sousa
PHP код:
public OnPlayerDeath (playerid, killerid, reason)
{
d[killerid][exp] = d[killerid][exp] + 1;
}
|
Obrigado pela sugestгo. Por acaso nгo testei esse, uma vez que й igual a d[killerid][exp] += 1, mas pode ser que resulte. Como disse acima, sу amanhг poderei testar. Depois posto os desenvolvimentos.
Mais sugestхes de resoluзгo do problema sгo bem-vindas.
hbzi.
Re: Experiкncia -
[toːkʲoː]_Shinjuku_.] - 20.10.2012
hbz = ... sei que й tu .-.
Tu Tem um Servidor Death Match
Re: Experiкncia -
hbzi - 20.10.2012
Quote:
Originally Posted by [toːkʲoː]_Shinjuku_.]
hbz = ... sei que й tu .-.
Tu Tem um Servidor Death Match
|
E em que й que isso contribui para a resoluзгo do meu problema?
Re: Experiкncia -
hbzi - 21.10.2012
Quote:
Originally Posted by Murilo_sousa
PHP код:
public OnPlayerDeath (playerid, killerid, reason)
{
d[killerid][exp] = d[killerid][exp] + 1;
return 1;
}
|
Nгo funcionou. Mais alguma sugestгo para resolver este problema?
hbzi.
Re: Experiкncia -
paulor - 21.10.2012
PHP код:
public OnPlayerDeath (playerid, killerid, reason)
{
if(killerid != 0xFFFF) d[killerid][exp]++;
return 1;
}
Caso nгo funcionar й porque estб dando crash em alguma Public OnPlayerDeath seja no seu GM ou em includes...