{ dcmd(kick, 4, cmdtext); return 0; } dcmd_kick(playerid, params[]) { new id; if (sscanf(params, "d", id)) { SendClientMessage(playerid, COLOR_BRIGHTRED, "/kick <id>"); } else if (!IsPlayerConnected(id)) { SendClientMessage(playerid, COLOR_BRIGHTRED, "This player does not exist."); } else { Kick(id); } }
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
// SSCANF [DCMD] stock sscanf(string[], format[], {Float,_}:...) { new formatPos = 0, stringPos = 0, paramPos = 2, paramCount = numargs(); while (paramPos < paramCount && string[stringPos]) { switch (format[formatPos++]) { case '\0': { return 0; } case 'i', 'd': { new neg = 1, num = 0, ch = string[stringPos]; if (ch == '-') { neg = -1; ch = string[++stringPos]; } do { stringPos++; if (ch >= '0' && ch <= '9') { num = (num * 10) + (ch - '0'); } else { return 1; } } while ((ch = string[stringPos]) && ch != ' '); setarg(paramPos, 0, num * neg); } case 'h', 'x': { new ch, num = 0; while ((ch = string[stringPos++])) { switch (ch) { case 'x', 'X': { num = 0; continue; } case '0' .. '9': { num = (num << 4) | (ch - '0'); } case 'a' .. 'f': { num = (num << 4) | (ch - ('a' - 10)); } case 'A' .. 'F': { num = (num << 4) | (ch - ('A' - 10)); } case ' ': { break; } default: { return 1; } } } setarg(paramPos, 0, num); } case 'c': { setarg(paramPos, 0, string[stringPos++]); } case 'f': { new tmp[25]; strmid(tmp, string, stringPos, stringPos+sizeof(tmp)-2); setarg(paramPos, 0, _:floatstr(tmp)); } case 's', 'z': { new i = 0, ch; if (format[formatPos]) { while ((ch = string[stringPos++]) && ch != ' ') { setarg(paramPos, i++, ch); } if (!i) return 1; } else { while ((ch = string[stringPos++])) { setarg(paramPos, i++, ch); } } stringPos--; setarg(paramPos, i, '\0'); } default: { continue; } } while (string[stringPos] && string[stringPos] != ' ') { stringPos++; } while (string[stringPos] == ' ') { stringPos++; } paramPos++; } while (format[formatPos] == 'z') formatPos++; return format[formatPos]; }
:\Program Files\Rockstar Games\GTA San Andreas\samp02Xserver.win32\gamemodes\VDM.pwn(709) : error 017: undefined symbol "dcmd_kick" C:\Program Files\Rockstar Games\GTA San Andreas\samp02Xserver.win32\gamemodes\VDM.pwn(712) : warning 225: unreachable code C:\Program Files\Rockstar Games\GTA San Andreas\samp02Xserver.win32\gamemodes\VDM.pwn(712) : error 017: undefined symbol "dcmd_kick" C:\Program Files\Rockstar Games\GTA San Andreas\samp02Xserver.win32\gamemodes\VDM.pwn(715) : error 017: undefined symbol "params" |
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(kick, 4, cmdtext);
return 0;
}
// Command
// Command
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(kick, 4, cmdtext);
return 0;
}
dcmd_kick(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return 0;
new targetid, reason[64], string[128];
if(sscanf(params, "uz", targetid, reason)) return SendClientMessage(playerid, RED, "Usage: /kick [playerid/partofname] [reason]");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, GREY, "Player not connected!");
format(string, sizeof(string), "You have been kicked! Reason: %s", reason);
SendClientMessage(targetid, string);
Kick(targetid);
return 1;
}
C:\Program Files\Rockstar Games\GTA San Andreas\samp02Xserver.win32\gamemodes\VDM.pwn(401) : error 035: argument type mismatch (argument 2)
dcmd_kick(playerid, params[]) { if(!IsPlayerAdmin(playerid)) return 0; new targetid, reason[64], string[128]; if(sscanf(params, "uz", targetid, reason)) return SendClientMessage(playerid, COLOR_BRIGHTRED, "Usage: /kick [playerid/partofname] [reason]"); if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_BRIGHTRED, "Player not connected!"); format(string, sizeof(string), "You have been kicked! Reason: %s", reason); SendClientMessage(targetid, string); Kick(targetid); return 1; }