Anti money funciona solo para una id
#5

їPor quй intentas comparar el valor que se esta obteniendo de todos los jugadores con la variable del un jugador?

No puedes hacer lo que anteriormente dije, la condicional nunca se cumplirнa y por lo tanto las personas a partir de la ID 1 podrнan hackear, como dices tu. Ademбs de lo anterior, repones el dinero del jugador ID x al valor que este (suponiendo) ya ha de tener.

Quote:
Originally Posted by Juance
Посмотреть сообщение
Esta informaciуn tambiйn la encontras en la wiki de sa-mp. Pero creo que no habrнa problema al ejecutar esa comprobaciуn en OnPlayerUpdate, debido a que comprueba, setea y listo.

pawn Код:
public OnPlayerUpdate(playerid);
{
   if(GetPlayerMoney(playerid) != Dinero[playerid])
   {
      SetPlayerMoney(playerid, Dinero[playerid]);
   }
   return 1;
}
Sobre eso, dependiendo de cuanta cantidad de chequeos tenga el callback, puede llegar a lagear mucho el servidor ya que el callback es llamado unas 90 veces por segundo. Un timer de 1 o 2 segundos podrнa ser suficiente para que la persona que esta intentando hackear no pueda gastar dicho dinero.

Quote:
Originally Posted by Mamoru
Посмотреть сообщение
Creo que en la 0.3.7 hay que usar GetPlayerPoolSize y no MAX_PLAYERS, pero no estoy seguro.
No, no es necesario usar GetPlayerPoolSize en la 0.3.7, sin embargo, con esta puedes saltarte chequear que un usuario este conectado dado a que devuelve la ID mбs alta del servidor. Podrнas hacer:

pawn Код:
#undef MAX_PLAYERS//Quita la definiciуn de MAX_PLAYERS dada por SA-MP, que es 500.

#define MAX_PLAYERS GetPlayerPoolSize()//Estariamos usando el valor mбs alto de jugadores, en vez de chequear 500 usuarios de los cuales gran mayoria podrнan estar desconectados.

//Entonces

for(new i = 0 , j = MAX_PLAYERS; i < j ; i++)//Se usa j para no repetir el llamado de la funciуn en cada bъcle.
{
       if(GetPlayerMoney(i) != Dinero[i])
       {
             SetPlayerMoney(i, Dinero[i]);
       }
}
Edit:

Me di cuenta de que si defines MAX_PLAYERS como GetPlayerPoolSIze, teniendo arrays que usen el MAX_PLAYERS, causarб un colapso del compilador. Entonces...
pawn Код:
#define MAX_PLAYERS 100//Para arrays
#define MAX_BPLAYERS GetPlayerPoolSize()//para bucles
//O simplemente a las arrays ponles el nъmero de jugadores.
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)