29.07.2014, 08:15
How can i convert 3100 lines from ZCMD to STRCMP? I'm newbie and i'm afraid to make a mistake. Don't try to convince me that zcmd is better than strcmp. I know that but I want to learn STRCMP first.
CMD:cmd(playerid, params[])
if (!strcmp(cmdtext, "/cmd", true))
if(strcmp(cmd, "/kick", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SCM(playerid, COLOR_GRAD2, "USAGE: /kick [playerid/PartOfName] <reason>");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(giveplayerid != playerid && Untouchable[giveplayerid]) return SCM(playerid, COLOR_GREY, "* You Can't Do this on This player!");
new targetlevel = PlayerInfo[giveplayerid][pAdmin];
new playerlevel = PlayerInfo[playerid][pAdmin];
if(targetlevel > playerlevel) return SCM(playerid, COLOR_GREY, "* You can not Kick People that is higher Than You!");
if (PlayerInfo[playerid][pAdmin] >= 1 || IsPlayerAdmin(playerid))
{
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID || !IsPlayerNPC(giveplayerid))
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[128];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
new y, m, d;
new h,mi,s;
getdate(y,m,d);
gettime(h,mi,s);
format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] %s Has been kicked by %s, No Reason Given",d,m,y,h,mi,s,giveplayer,sendername);
KickLog(string);
format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] Kicked by %s - No Reason Given.",d,m,y,h,mi,s,sendername);
AddPunishment(giveplayerid, string);
format(string, sizeof(string), "%s (%d), Has been kicked by Administrator %s, No Reason Given", giveplayer, giveplayerid, sendername);
SCMToAll(COLOR_NICERED, string);
format(string, sizeof(string), "You have Been Kicked by Administrator %s, No Reason Given", sendername);
SCM(giveplayerid,COLOR_LIGHTBLUE, string);
SafeSetPlayerPos(giveplayerid,1601.8762,-1671.9099,-40.5941);
SafeSetPlayerInterior(giveplayerid, 0);
GameTextForPlayer(giveplayerid, "~r~~h~Admin Kicked: ~n~~r~No Reason Given", 6000, 3);
SetTimerEx("KickOut",500,false,"i",giveplayerid);
return 1;
}
new y, m, d;
new h,mi,s;
getdate(y,m,d);
gettime(h,mi,s);
format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] %s Has been kicked by %s for: %s",d,m,y,h,mi,s,giveplayer,sendername, (result));
KickLog(string);
format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] Kicked by %s - Reason: %s",d,m,y,h,mi,s,sendername,(result));
AddPunishment(giveplayerid, string);
format(string, sizeof(string), "%s (%d), Has been kicked by Administrator %s for: %s", giveplayer, giveplayerid, sendername, (result));
SCMToAll(COLOR_NICERED, string);
format(string, sizeof(string), "You have Been Kicked by Administrator %s for: %s", sendername, (result));
SCM(giveplayerid,COLOR_LIGHTBLUE, string);
SafeSetPlayerPos(giveplayerid,1601.8762,-1671.9099,-40.5941);
SafeSetPlayerInterior(giveplayerid, 0);
format(string, sizeof(string), "~r~~h~Admin Kicked: ~n~~r~%s",(result));
GameTextForPlayer(giveplayerid, string, 6000, 3);
SetTimerEx("KickOut",500,false,"i",giveplayerid);
return 1;
}
}
}
else
{
format(string, sizeof(string), "** %d is not an active player.", giveplayerid);
SCM(playerid, COLOR_GRAD1, string);
}
}
return 1;
}
CMD:kick(playerid, params[])
{
new id, idname[MAX_PLAYER_NAME], reason, string[128],name[MAX_PLAYER_NAME];
if(sscanf(params,"us[128]",id,reason)) return SendClientMessage(playerid, -1, "SYNTAX: /kick [player] [reason]");
GetPlayerName(playerid, name, sizeof(name));
GetPlayerName(id, idname, sizeof(idname));
if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, -1, "Invalid Player ID");
format(string, sizeof(string),"Player %s (%i) Kicked %s (%i) For reason: %s", name, playerid, idname, id, reason);
SendClientMessageToAll(-1, string);
Kick(id);
return true;
}