Quote:
Originally Posted by HY
pawn Код:
CMD:setvip(playerid,params[]) { if(IsPlayerAdmin(playerid)) { new ID; new LVL; new Days = 30; if(sscanf(params,"iii", ID, LVL, Days)) return SendClientMessage(playerid,-1,"{FF0000}USAGE: {15FF00}/GiveVip [ID] [Vip Level] [30 Days]"); PlayerInfo[playerid][Vip] = LVL; SetTimer("NoVip", 2628000000, false); } else { SendClientMessage(playerid, -1, "{FF0000}ERROR: {15FF00}You are not authorized to use this command, or the Days are Invalid !"); } return 1; }
forward NoVip();
public NoVip() { new playerid; PlayerInfo[playerid][Vip] = 0; SendClientMessage(playerid, -1, "{FF0000}[INFO]: {15FF00}Your temporally Vip System has been finished !"); }
- I made this System in 5 minutes. Don't copy and paste, please adjust it with your Enums.
- I converted 1 month in miliseconds, and after 1 month, he won't have VIP !
- Anyway, my enums :
pawn Код:
enum pInfo { Vip, }
new PlayerInfo[MAX_PLAYERS][pInfo];
// EDIT: Look now at the code. I just made a little mistake wich will cause to you errors. I solved .
|
You made completely wrong system in 5 minutes. First of all, creating timers which have intervals in days is nonsense. What if you restart the server? Timers are killed and player's VIP time is lost.
Ronny, to make a command that you want, you will have to use unix timestamps. It looks something like this:
pawn Код:
// PlayerData[playerid][pVip] is used to store VIP time, you may set this to anything you like
CMD:makevip(playerid, parasm[])
{
new days;
if(sscanf(params, "d", days)) return SendClientMessage(playerid, -1, "Usage: /makevip [days]");
PlayerData[playerid][pVip] = gettime() + days * 86400; // you are adding number of days in seconds to the current time
return 1;
}