CMD:gethere(playerid,params[])
{
new id;
// codes...
if(sscanf(params, "r",id)) return SendClientMessage(playerid,COLOR,"Use: {FFFFFF}/gethere [ID / Name]");
else
{
if(PlayerInfo[id][LoggedOn] == false) return SCM(playerid, COLOR,"That dude is offline!");
if(id == INVALID_PLAYER_ID)return SCM(playerid,COLOR,"Wrong ID!");
if(id == playerid)return SCM(playerid,COLOR,"Wrong ID!");
// codes...
CMD:gethere(playerid,params[])
{
new id;
// codes...
if(sscanf(params, "u",id)) return SendClientMessage(playerid,COLOR,"Use: {FFFFFF}/gethere [ID / Name]");
/* u : player id or player's part of name
- You don't need else here*/
if(PlayerInfo[id][LoggedOn] == false) return SCM(playerid, COLOR,"That dude is offline!");
if(id == INVALID_PLAYER_ID || id == playerid)return SCM(playerid,COLOR,"Wrong ID!");
// codes...
Show us SCM and, pleave, give more explications.
I mean, your command isn't working because nothing is check before if(id == playerid) ? If OnPlayerCommandPerformed is called, it's something is returning 0. Your code can be improved and "r" doesn't exist in sscanf. |
r Player name/id ******, 42 |
He didn't post the entire command code. I doubt there might be a run time error. Use crashdetect, compile with-d3.
|
[18:34:32] [debug] Run time error 4: "Array index out of bounds" [18:34:32] [debug] Accessing element at index 65535 past array upper bound 49 [18:34:32] [debug] AMX backtrace: [18:34:32] [debug] #0 000862b4 in public cmd_gethere (0, 887476) from Paradise.amx [18:34:32] [debug] #1 native CallLocalFunction () from samp-server.exe [18:34:32] [debug] #2 0000e5a0 in public FIXES_OnPlayerCommandText (0, 887432) from Paradise.amx [18:34:32] [debug] #3 00003248 in public OnPlayerCommandText (0, 887432) from Paradise.amx
CMD:gethere(playerid,params[])
{
if(PlayerInfo[playerid][AdminLevel] < HEAD_ADMIN) return SendClientMessage(playerid, COLOR_NICERED, "Denied!");
new id, String[128], Float:X,Float:Y,Float:Z;
if(sscanf(params, "r",id)) return SendClientMessage(playerid,COLOR,"Use: {FFFFFF}/gethere [ID / Player name]");
if(PlayerInfo[id][LoggedOn] == false) return SCM(playerid, COLOR,"That dude is offline!");
if(id == INVALID_PLAYER_ID)return SCM(playerid,COLOR,"Wrong ID!");
if(id == playerid)return SCM(playerid,COLOR,"Wrong ID!");
GetPlayerPos(playerid,X,Y,Z);
if (GetPlayerState(id) == PLAYER_STATE_DRIVER)
{
SetPlayerInterior(id, GetPlayerInterior(playerid));
SetPlayerVirtualWorld(id, GetPlayerVirtualWorld(playerid));
SetVehiclePos(GetPlayerVehicleID(id),X,Y+4,Z);
}
else
{
SetPlayerInterior(id, GetPlayerInterior(playerid));
SetPlayerVirtualWorld(id, GetPlayerVirtualWorld(playerid));
SetPlayerPos(id,X,Y+2,Z);
}
format(String,sizeof(String),"{FFFFFF}Admin {00C0FF}%s {FFFFFF}has tp-ed you!",GetName(playerid));
SendClientMessage(id,COLOR,String);
format(String,sizeof(String),"{FFFFFF}You tp-ed {00C0FF}%s {FFFFFF}near you!",GetName(id));
SendClientMessage(playerid,COLOR,String);
return 1;
}
if(PlayerInfo[id][LoggedOn] == false) return SCM(playerid, COLOR,"That dude is offline!");
if(id == INVALID_PLAYER_ID)return SCM(playerid,COLOR,"Wrong ID!");
if(id == INVALID_PLAYER_ID)return SCM(playerid,COLOR,"Wrong ID!");
if(PlayerInfo[id][LoggedOn] == false) return SCM(playerid, COLOR,"That dude is offline!");
You must check if the specified id is invalid before accessing the array.
PHP Code:
PHP Code:
|