Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include < a_samp >
- #include < izcmd >
- #include < sscanf2 >
- #include < streamer >
- #include < YSI\y_ini >
- #define SCMTA SendClientMessageToAll
- #define SCM SendClientMessage
- #define BanHours_FOLDER "BanHours/%s.ini"
- enum bana
- {
- BanHours,
- BanDay
- };
- new SBanInfo[MAX_PLAYERS][bana];
- public OnPlayerConnect(playerid)
- {
- SBanInfo[playerid][BanDay] = 0;
- SBanInfo[playerid][BanHours] = -1;
- if(fexist(SBanPath(playerid)))
- {
- INI_ParseFile(SBanPath(playerid), "LoadSBan", .bExtra = true, .extra = playerid);
- if(SBanInfo[playerid][BanHours] > -1)
- {
- new sati, minute, sekunde;
- gettime(sati, minute, sekunde);
- new yera, monthb, dayb;
- getdate(yera, monthb, dayb);
- if(dayb >= SBanInfo[playerid][BanDay])
- {
- if(SBanInfo[playerid][BanHours] > sati)
- {
- new string[30];
- format(string, sizeof(string), "You are banned from this server for %d hours.", SBanInfo[playerid][BanHours]);
- SCM(playerid, -1, string);
- Kick(playerid);
- }
- else
- {
- SBanInfo[playerid][BanHours] = -1;
- SBanInfo[playerid][BanDay] = 0;
- SavehBan(playerid);
- }
- }
- else
- {
- new string[30];
- format(string, sizeof(string), "You are banned from this server for %d hours.", SBanInfo[playerid][BanHours]);
- SCM(playerid, -1, string);
- Kick(playerid);
- }
- }
- }
- return 1;
- }
- forward LoadSBan(playerid,name[],value[]);
- public LoadSBan(playerid,name[],value[])
- {
- INI_Int("BanHours",SBanInfo[playerid][BanHours]);
- INI_Int("BanDay",SBanInfo[playerid][BanDay]);
- return 1;
- }
- ///////////////////////////////////////////////////////////////////////////
- stock SavehBan(playerid)
- {
- new INI:File = INI_Open(SBanPath(playerid));
- INI_WriteInt(File,"BanHours",SBanInfo[playerid][BanHours]);
- INI_WriteInt(File,"BanDay",SBanInfo[playerid][BanDay]);
- INI_Close(File);
- return 1;
- }
- ///////////////////////////////////////////////////////////////////////////
- stock SBanPath(playerid)
- {
- new string[128];
- format(string,sizeof(string),BanHours_FOLDER,GetName(playerid));
- return string;
- }
- CMD:BanHours(playerid, params[])
- {
- if(IsPlayerAdmin(playerid))
- {
- new id, hour, reason[128];
- if(sscanf(params, "uis[128]", id, hour, reason)) return SCM(playerid, -1, "Usage: /BanHours [ID/Name] [Hours(max 3)] [Reason]");
- if(hour > 3 || hour < 0) return SCM(playerid, -1, "ERROR: You can't ban more than 3 hours or less than 0");
- new hourb, minb, secb;
- gettime(hourb,minb,secb);
- new yearb, monthb, dayb;
- getdate(yearb,monthb,dayb);
- new houro = hourb+hour;
- if(houro == 24)
- {
- houro=0;
- dayb++;
- }
- if(houro == 25)
- {
- houro=1;
- dayb++;
- }
- if(houro == 26)
- {
- houro=2;
- dayb++;
- }
- SBanInfo[id][BanHours] = houro;
- SBanInfo[id][BanDay] = dayb;
- new str[128];
- format(str, sizeof(str), "Admin %s temporary banned %s || Reason: %s || he will be unbanned in: %d hours", GetName(playerid), GetName(id), reason, hour);
- SavehBan(id);
- SCMTA(-1, str);
- new string1[128], string2[128];
- format(string1, sizeof(string1), "You've banned player %s | Ban reason: %s", GetName(id), reason);
- format(string2, sizeof(string2), "| he will be unbanned in %d hours |", hour);
- SCM(playerid, -1, string1);
- SCM(playerid, -1, string2);
- new string[128];
- format(string,sizeof(string), "You have been baned by %s | Reason: %s",GetName(playerid), reason);
- new str2[128];
- format(str2, sizeof(str2), "You will be unbaned in: %d hours", hour);
- SCM(id, 0xFF6347AA, string);
- SCM(id, 0xFF6347AA, str2);
- Kick(id);
- }
- else
- {
- SCM(playerid,-1, "ERROR: You are not allowed to use this command");
- }
- return 1;
- }
- CMD:UnbanHours(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1, "ERROR:You are not allowed to use this command!");
- new user[50];
- new String[128];
- new sendername[MAX_PLAYER_NAME];
- if(sscanf(params, "s[50]", user)) return SCM(playerid, -1, "Usage: /hunban [Nick]");
- format(user, sizeof(user), "BanHours/%s.ini", user);
- if(fexist(user))
- {
- new INI:File = INI_Open(user);
- INI_WriteInt(File, "BanHours", -1);
- INI_WriteInt(File, "BanDay", 0);
- INI_Close(File);
- GetPlayerName(playerid, sendername, sizeof(sendername));
- format(String, 128, "Admin %s has unbaned player %s(Day - Hours ban).", sendername, user);
- SCMTA(-1, String);
- return 1;
- }
- else
- {
- SCM(playerid,-1, "ERROR: User not found!");
- }
- return 1;
- }
- stock GetName(playerid)
- {
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, sizeof(name));
- return name;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement