їComo evitar el NOP SetPlayerPos?
#1

Hola a todos, como saben hay cierto mod que puede burlar el SetPlayerPos, en lo esto afecta mucho a mi servidor, ya que mi servidor es RP, y cuando una persona que intenta entrar a un vehiculo que esta cerrado, se ejecuta este codigo.

Код:
if(Vehiculo[vehicleid][vSeguro] == 2)
{
        RemovePlayerFromVehicle(playerid);
	new Float:slx, Float:sly, Float:slz;
	GetPlayerPos(playerid, slx, sly, slz);
	SetPlayerPos(playerid, slx, sly, slz);
	return 1;
}
El codigo ejecuta el RemovePlayerFromVehicle y el SetPlayePos para alejar al usuario y evitar que se suba al vehiculo, pero lo que ocurre es que con el mod que nombre hace rato y que todos conocen, estas dos funciones pueden ser burladas y el usuario puede entrar en el vehiculo sin problemas, mi duda es, їCual funcion o codigo no se puede burlar y puede evitar que el usuario ingrese al vehiculo? o sea que si el vehiculo tiene seguro, el codigo no aleje al usuario si no que no le permita abrir la puerta. gracias por su tiempo
Reply
#2

Asн rбpido:
pawn Код:
new Float:ox[2], Float:oy[2], Float:oz[2];
GetPlayerPos(playerid, ox[0], oy[0], oz[0]);
SetPlayerPos(playerid, nx, ny, nz);
GetPlayerPos(playerid, ox[1], oy[1], oz[1]);
if(ox[1] == ox[0] && oy[1] === oy[0] && oz[1] == oz[1])
{
SendClientMessage(playerid, -1, "adios chito d mierda concha tu madr");
Ban(playerid);
}
No lo he probado.
Reply
#3

como defino nx, ny, nz?
Код:
(8564) : error 017: undefined symbol "nx"
Reply
#4

eso son las nuevas coordenadas a donde quieres transportar al jugador
Reply
#5

Realmente no entiendo esa parte jajajaj
Yo lo que queria era que el jugador no pudiera abrir la puerta, el setplayerpos lo pueden burlar y igualmente montarse en el auto
Reply
#6

Creo que con

pawn Код:
RemovePlayerFromVehicle(playerid);
bastarнa, sin poder burlar las posiciones.
No creo que haya manera de burlar la funciуn.
Reply
#7

Quote:
Originally Posted by Juance
Посмотреть сообщение
Creo que con

pawn Код:
RemovePlayerFromVehicle(playerid);
bastarнa, sin poder burlar las posiciones.
No creo que haya manera de burlar la funciуn.
La hay... tambiйn el TogglePlayerControllable.
Reply
#8

Quote:
Originally Posted by adri1
Посмотреть сообщение
Asн rбpido:
pawn Код:
new Float:ox[2], Float:oy[2], Float:oz[2];
GetPlayerPos(playerid, ox[0], oy[0], oz[0]);
SetPlayerPos(playerid, nx, ny, nz);
GetPlayerPos(playerid, ox[1], oy[1], oz[1]);
if(ox[1] == ox[0] && oy[1] === oy[0] && oz[1] == oz[1])
{
SendClientMessage(playerid, -1, "adios chito d mierda concha tu madr");
Ban(playerid);
}
No lo he probado.
No funcionarнa por que no estas tomando en cuenta el ping.

pawn Код:
new callD[MAX_PLAYERS];
new Float:xyz[MAX_PLAYERS][3];


stock ComprobarNOP(playerid)
{
    GetPlayerPos(playerid, xyz[playerid][0], xyz[playerid][1], xyz[playerid][2]);
    SetPlayerPos(playerid, xyz[playerid][0]+0.1, xyz[playerid][1]+0.1, xyz[playerid][2]+0.1);
    callD[playerid] = 1;
}
public OnPlayerUpdate(playerid)
{
    if(callD[playerid])
    {
        new Float:tmp[3];
        GetPlayerPos(playerid, tmp[0], tmp[1], tmp[2]);
        if(!IsPlayerInRangeOfPoint(playerid, 0.5, xyz[playerid][0], xyz[playerid][1], xyz[playerid][2]))
        {
            // Hacker
        }
        callD[playerid] = 0;
    }
    return 1;
}
Son varios aspectos los que tienes que comprobar, eso serнa algo bбsico y no siempre funcional.
Tienes que agregar mas comprobaciones como por ejemplo para los autos, etc.

Ademбs de la velocidad de movimiento que tiene el player, etc..

Algo muy exacto seria calcular lo mбximo que se puede mover en una determinada cantidad de tiempo (ping)
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)