Salut j'ai un probleme . Cela viens encore des parametres sscanf .
Quand je fais par exemple /goto 5 ou plus, ca me dit que je ne peux pas me tp a moi ... Alors que je suis l'id 0 , si je mes l'id 1,2,3,4 , sa me tp a moi en disant Vous vous etes tp a l'id 1,2,3,4 ...
CMD:goto(playerid, params[])
{
if(GetAdminLevel(playerid) >= LEVEL_ANIMATEUR)
{
new pid;
if(sscanf(params, "u", pid))
{
SendTypoMessage(playerid,"/goto [joueur]");
}
else
{
if(pid == INVALID_PLAYER_ID)
{
SendErrorMessage(playerid, TAG "Ce joueur n'est pas connecté.");
}
else if(pid == playerid)
{
SendErrorMessage(playerid, TAG "Tu ne peut pas te téléporter à toi!");
}
else
{
new tmp[128];
GetPlayerName(pid, tmp, MAX_PLAYER_NAME);
format(tmp, sizeof(tmp), TAG"Tu t'es téléporté vers %s[%d].", tmp, pid);
SendAInfoMessage(playerid, tmp);
#if defined SHOW_ADMINS
GetPlayerName(playerid, tmp, MAX_PLAYER_NAME);
format(tmp, sizeof(tmp), TAG"L'admin %s s'est téléporté à ta position.", tmp);
SendPInfoMessage(pid, tmp);
#endif
new Float:gX,Float:gY,Float:gZ;
GetPlayerPos(pid, gX, gY, gZ);
new PState = GetPlayerState(playerid);
new Interior = GetPlayerInterior(pid);
SetPlayerInterior(playerid, Interior);
if(PState == PLAYER_STATE_DRIVER)
{
new vehid = GetPlayerVehicleID(playerid);
gX += OFFSET_X;
gY += OFFSET_Y;
gZ += OFFSET_Z;
SetVehiclePos(vehid, gX, gY, gZ);
LinkVehicleToInterior(vehid, Interior);
return 1;
}
else if(PState == PLAYER_STATE_PASSENGER)
{
RemovePlayerFromVehicle(playerid);
}
PState = GetPlayerState(pid);
if(PState == PLAYER_STATE_DRIVER)
{
new vehid = GetPlayerVehicleID(pid);
new PCount = 0;
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerInVehicle(i,vehid))
{
PCount++;
}
}
if(PCount < PlacesInVehicle[GetVehicleModel(vehid)-400])
{
PutPlayerInVehicle(playerid, vehid, PCount);
return 1;
}
}
gX += OFFSET_X;
gY += OFFSET_Y;
gZ += OFFSET_Z;
SetPlayerPos(playerid, gX, gY, gZ);
}
}
}
else
{
SendLevelErrorMessage(playerid);
}
return 1;
}