[Ayuda] Con una funcion
#1

Bueno, tengo el comando /esposar para esposar a un jugador, el problema es que necesito que solo me deje usarlo si estoy cerca de el jugador que voy a esposar, tengo el codigo asi:

Код:
CMD:esposar(playerid, params[])
{

    new string[126];
   	new ID;
   	GetPlayerPos(ID, DeathX[ID], DeathY[ID], DeathZ[ID]);
   	if(IsAPolice(playerid)) return SendClientMessage(playerid, COLOR_WHITE, "No estбs autorizado para usar este comando");
	if(sscanf(params, "u", ID) )return SendClientMessage(playerid,COLOR_WHITE,"Uso: /esposar [ID]");
   	if(!IsPlayerConnected(ID)) return SendClientMessage(playerid,COLOR_WHITE,"Jugador desconectado o id incorrecta");
   	if(GetPlayerWantedLevel(ID) == 0) return SendClientMessage(playerid,-1,"Este jugador no tiene nivel de busqueda");
   	if(!IsPlayerInRangeOfPoint(playerid, 10.0, DeathX[ID], DeathY[ID], DeathZ[ID])) return SendClientMessage(playerid,-1,"Debes estar cerca de esta persona para esposarla");
   	{
   	    Esposando[ID] = 1;
   	    TogglePlayerControllable(ID,0);
   	    TimerEsposar[ID] = SetTimerEx("TiempoArresto", 10000, false, "d", ID);
   	    SetPlayerSpecialAction(ID,SPECIAL_ACTION_HANDSUP);
   	    SendClientMessage(ID,-1,"Estas siendo esposado, para resitirte escribe /resistirse");
   	    format(string, sizeof(string), "{0079C9} Oficial %s{FFFFFF} intenta esposar a %s", NombreJugador(playerid), NombreJugador(ID));
		return ProxDetector(30.0, playerid, string, COLOR_VERDECLARO,COLOR_VERDECLARO,COLOR_VERDECLARO,COLOR_VERDECLARO,COLOR_VERDECLARO);
   	}
}
La cosa es que solo me deja hacerlo si uso la ID 0, pero si uso una id mayor a 0 me dice que no estoy cerca del usuario, ya tengo definidas las variables del GetPlayerPos globalmente.

Gracias.
Reply
#2

pawn Код:
CMD:esposar(playerid, params[]){
    new data[144], Float:pos[3], jugador;
    if(IsAPolice(playerid)) return SendClientMessage(playerid, COLOR_WHITE, "No estбs autorizado para usar este comando");
    if(sscanf(params, "r", jugador) )return SendClientMessage(playerid,COLOR_WHITE,"Uso: /esposar [ID]");
    if(!IsPlayerConnected(jugador)) return SendClientMessage(playerid,COLOR_WHITE,"Jugador desconectado o id incorrecta");
    if(GetPlayerWantedLevel(jugador) == 0) return SendClientMessage(playerid,-1,"Este jugador no tiene nivel de busqueda");
    GetPlayerPos(jugador, pos[0], pos[1], pos[2]);
    if(!IsPlayerInRangeOfPoint(playerid, 10.0, pos[0], pos[1], pos[2])) return SendClientMessage(playerid,-1,"Debes estar cerca de esta persona para esposarla");

    Esposando[jugador] = 1;
    TogglePlayerControllable(jugador,0);
    TimerEsposar[jugador] = SetTimerEx("TiempoArresto", 10000, false, "d", ID);
    SetPlayerSpecialAction(jugador,SPECIAL_ACTION_HANDSUP);
    SendClientMessage(jugador,-1,"Estas siendo esposado, para resitirte escribe /resistirse");
    format(data, sizeof(data), "{0079C9} Oficial %s{FFFFFF} intenta esposar a %s", NombreJugador(playerid), NombreJugador(jugador));
    ProxDetector(30.0, playerid, data, COLOR_VERDECLARO,COLOR_VERDECLARO,COLOR_VERDECLARO,COLOR_VERDECLARO,COLOR_VERDECLARO);
    return true;
}
Reply
#3

Gracias denuevo, solucionado.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)