29.08.2009, 23:19
Yeah, so I've been working on using timers and I'll admit, I'm totally useless when it comes to the more advanced timer use. So all I'd like to do is when I use /jail, it'll store their amount of minutes into a variable which can be used to be shown on a command and will decrease every minute. Here's my code;
I apologize for the terrible indentation but I can't help it. Anyhow, I'd appreciate any help here as I don't have a clue what I'm doing here.
Код:
if(strcmp(cmd, "/jail", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_RED, "USAGE: /jail [ID] [Minutes] [Reason]");
return 1;
}
new playa;
new money;
playa = strval(tmp);
tmp = strtok(cmdtext, idx);
if(PlayerData[playerid][Admin] < 3) return SendClientMessage(playerid, RED, "SERVER MESSAGE: You are not admin level 3.");
{
if(IsPlayerConnected(playa))
{
if(playa != INVALID_PLAYER_ID)
{
new otherplayer = strval(tmp);
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
GetPlayerName(playa, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
if(PlayerData[playerid][onduty] == 0) return SendClientMessage(playerid, RED, "Your not on Administration duty!");
if(PlayerData[playerid][Admin] < PlayerData[otherplayer][Admin]) return SendClientMessage(playerid, RED, "You can't use this command on higher level Admins than yourself!");
format(string, sizeof(string), "*Administrator %s jailed %s for %d minutes – [Reason: %s]", sendername,giveplayer,PlayerData[playa][PrisonTime],result);
SendClientMessageToAll(COLOR_RED1, string);
ResetPlayerWeapons(playa);
PlayerData[playa][Prison] = 1;
GameTextForPlayer(playa, "~r~Admin Jailed", 3000, 3);
SetPlayerInterior(playa, 6);
SetPlayerPos(playa, 264.6288,77.5742,1001.0391);
format(string, sizeof(string), "You are jailed for %d minutes – Reason: %s", PlayerData[playa][PrisonTime],result);
SendClientMessage(playa, COLOR_RED1, string);
PlayerData[playa][PrisonTime] = money*60000;
SetTimerEx("JailTimerPassing",60000,1,"-",playa);
}
}
}
}
return 1;
}

