21.02.2015, 17:48
Estos codigos no son mios, son de una amiga de aqui mismo de forum samp.
Hay dos formas de burlar este cуdigo, la una es activando NOP TogglePlayerControllable desde el s.o.b , la otra es pausando y esperando un momento, entonces aquн estб la cosa.
Para resolver la una forma que es no permitir que el server te congele, es poniйndole una animaciуn al player, luego verificar que el player estб haciendo esa animacion, si lo estб haciendo y estando congelado, quiere decir que es cheater de NOP TogglePlayerControllable, por lo tanto kick, la otra es verificar si estб en pausa durante la comprobaciуn, si lo estб entonces tambien kickeo por pausar, en si, cuando se estб haciendo la comprobaciуn no debe estar en pausa, para eso tienes que hacer una variable, cuando entra a la comprobaciуn le pones en true a dicha variable, y en OnPlayerUpdate le pones una condicion de si estб en afk. ejemplo:
Cuando acabe la comprobaciуn "ChecarHack" le pones la var en En_Comprobacion en false o 0.
Estas ideas que te acabo de dar son una de muchas que puedes hacer, solo tienes que ingeniбrtelas.
PHP код:
#include <a_samp> //include necessaria
#define DIALOG_ChecarHack 3000
public OnPlayerSpawn(playerid)
{
SetCameraBehindPlayer(playerid);
SetTimerEx("ChecarHack", 4 * 1000, 0, "i", playerid);
GameTextForPlayer(playerid, "~w~...Checando...", 3000, 3);
TogglePlayerControllable(playerid, 0);
return 1;
}
forward ChecarHack(playerid);
public ChecarHack(playerid)
{
new Float:x, Float:y, Float:z;
GetPlayerCameraFrontVector(playerid, x, y, z);
#pragma unused x
#pragma unused y
if(z < -0.8)
{
TogglePlayerControllable(playerid, 1);
new string[128];
new DNSME[MAX_PLAYER_NAME];GetPlayerName(playerid, DNSME, sizeof DNSME);
format(string, sizeof string, "%s se conectou com S0B31T e foi kickado.", DNSME);
SendClientMessageToAll(0xFF0000FF, string);
new String[1000];
format(String, sizeof(String), "{FF0000}Vocк logou com S0B31T.\n{FF0000}# {FFFFFF} Anti-S0B31T {FF0000}Tira essa poha.\n{FF0000}Informaзoes.");
ShowPlayerDialog(playerid, DIALOG_ChecarHack, DIALOG_STYLE_MSGBOX, "{FF0000}# {FFFFFF}Brasil My World", String, "Ok", "Sair");
BanEx(playerid, "S0B31T");
}
else
{
TogglePlayerControllable(playerid, 1), SendClientMessage(playerid, -1, "Processado...Liberado.");
}
return 1;
}
Para resolver la una forma que es no permitir que el server te congele, es poniйndole una animaciуn al player, luego verificar que el player estб haciendo esa animacion, si lo estб haciendo y estando congelado, quiere decir que es cheater de NOP TogglePlayerControllable, por lo tanto kick, la otra es verificar si estб en pausa durante la comprobaciуn, si lo estб entonces tambien kickeo por pausar, en si, cuando se estб haciendo la comprobaciуn no debe estar en pausa, para eso tienes que hacer una variable, cuando entra a la comprobaciуn le pones en true a dicha variable, y en OnPlayerUpdate le pones una condicion de si estб en afk. ejemplo:
PHP код:
public OnPlayerUpdate(playerid)
{
if(Is_Afk[playerid])
{
if(En_Comprobacion[playerid]) Mensaje_Kickeo(playerid, "Estas en comprobaciуn, no debes estar en pausa.");
}
return 1;
}
Estas ideas que te acabo de dar son una de muchas que puedes hacer, solo tienes que ingeniбrtelas.