Me pueden ayudar con esto?
#5

Si quieres que el checkpoint sea fijo en el usuario, crea un timer independiente el cual actualice los datos del jugador.

Код:
#define DIALOG_RASTREADOR (1234) // Colocar en los defines.

CMD:rastreador(playerid, params[]) // En cualquier parte del GameMode.
{
	return ShowPlayerDialog(playerid, DIALOG_RASTREADOR, DIALOG_STYLE_INPUT, "Computadora", "Aсade la id o el nombre de la persona a rastrear.", "Aceptar", "Cancelar");
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) // Ajustar йsto a tu GameMode.
{
	switch(dialogid)
	{
		case DIALOG_RASTREADOR:
		{
			if(!response) return true;
			if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_RASTREADOR, DIALOG_STYLE_INPUT, "Computadora", "Aсade la id o el nombre de la persona a rastrear.", "Aceptar", "Cancelar");
        	new Float:x, Float:y, Float:z, string[100];
        	if(IsNumeric(inputtext))
        	{
        		new id_jugador = strval(inputtext);
        		if(!IsPlayerConnected(id_jugador))
        		{
        			SendClientMessage(playerid, -1, "ID invбlida.");
        			return ShowPlayerDialog(playerid, DIALOG_RASTREADOR, DIALOG_STYLE_INPUT, "Computadora", "Aсade la id o el nombre de la persona a rastrear.", "Aceptar", "Cancelar");
        		}
        		GetPlayerPos(id_jugador, x, y, z);
        		format(string, sizeof(string), "ID Player = %i, X= %f, Y= %f, Z= %f", id_jugador, x, y, z);
			    SendClientMessage(playerid, -1, string);
			    return SetPlayerCheckpoint(playerid, x, y, z, 5.0);
        	}
        	new id_jugador = GetPlayerID(inputtext);
        	if(!IsPlayerConnected(id_jugador))
        	{
        		SendClientMessage(playerid, -1, "Nombre invбlido.");
        		ShowPlayerDialog(playerid, DIALOG_RASTREADOR, DIALOG_STYLE_INPUT, "Computadora", "Aсade la id o el nombre de la persona a rastrear.", "Aceptar", "Cancelar");
        	}
		    GetPlayerPos(id_jugador, x, y, z);
        	format(string, sizeof(string), "ID Player = %i, X= %f, Y= %f, Z= %f", id_jugador, x, y, z);
			SendClientMessage(playerid, -1, string);
			return SetPlayerCheckpoint(playerid, x, y, z, 5.0);
        }
	}
	return true;
}

// Lo siguiente aсбdelo a los demбs 'stocks' que tengas en el GameMode, si no usas 'foreach' reemplaza la funciуn por: for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)

stock GetPlayerID(const playername[])
{
  	foreach(new i : Player)
  	{
      	if(strcmp(Nombre(i), playername, true, strlen(playername)) == 0)
      	{
        	return i;
      	}
    }
  	return INVALID_PLAYER_ID;
}

stock Nombre(playerid)
{
	new Name[MAX_PLAYER_NAME];
	GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
	return Name;
}

stock IsNumeric(const cadena[])
{
	for (new i = 0, j = strlen(cadena); i < j; i++)
	{
		if (cadena[i] > '9' || cadena[i] < '0') return 0;
	}
    return true;
}
Saludos.
Reply


Messages In This Thread
Me pueden ayudar con esto? - by SilverGaming - 13.12.2016, 21:47
Re: Me pueden ayudar con esto? - by Swedky - 13.12.2016, 22:00
Re: Me pueden ayudar con esto? - by BrianFaria - 13.12.2016, 22:03
Re: Me pueden ayudar con esto? - by SilverGaming - 13.12.2016, 22:16
Re: Me pueden ayudar con esto? - by Unrea1 - 13.12.2016, 22:16
Re: Me pueden ayudar con esto? - by SilverGaming - 13.12.2016, 22:26
Re: Me pueden ayudar con esto? - by Unrea1 - 13.12.2016, 22:31
Re: Me pueden ayudar con esto? - by SilverGaming - 13.12.2016, 22:36
Re: Me pueden ayudar con esto? - by Unrea1 - 13.12.2016, 23:01
Re: Me pueden ayudar con esto? - by SilverGaming - 13.12.2016, 23:06

Forum Jump:


Users browsing this thread: 1 Guest(s)