SA-MP Forums Archive
їComo evitar el NOP SetPlayerPos? - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: їComo evitar el NOP SetPlayerPos? (/showthread.php?tid=524636)



їComo evitar el NOP SetPlayerPos? - lanci112 - 07.07.2014

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


Respuesta: їComo evitar el NOP SetPlayerPos? - adri1 - 07.07.2014

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.


Respuesta: їComo evitar el NOP SetPlayerPos? - lanci112 - 07.07.2014

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



Respuesta: їComo evitar el NOP SetPlayerPos? - adri1 - 07.07.2014

eso son las nuevas coordenadas a donde quieres transportar al jugador


Respuesta: їComo evitar el NOP SetPlayerPos? - lanci112 - 07.07.2014

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


Respuesta: їComo evitar el NOP SetPlayerPos? - Juance - 07.07.2014

Creo que con

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


Respuesta: їComo evitar el NOP SetPlayerPos? - Alex15 - 07.07.2014

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.


Respuesta: їComo evitar el NOP SetPlayerPos? - Jovazxc - 07.07.2014

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)