Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**********************************
- * *
- * @Author: WazzUp *
- * @Version: 0.3.1 *
- * @Released: 20/09/2013 *
- * *
- **********************************/
- #include <a_samp>
- /*
- native Extra_Kick(playerid, reason[]);
- native Extra_Ban(playerid, reason[]);
- native Extra_UnBan(playername);
- native Extra_Mute(playerid, reason[]);
- native Extra_UnMute(playerid, reason[]);
- native Extra_Freeze(playerid, reason[]);
- native Extra_UnFreeze(playerid, reason[]);
- */
- #define MAX_STRING 600
- forward KickPlayer(playerid);
- new Banned[MAX_PLAYERS],
- Muted[MAX_PLAYERS],
- Freezed[MAX_PLAYERS];
- public OnPlayerConnect(playerid)
- {
- new file[200];
- format(file,sizeof(file),"Extra/%s.ini",GetName(playerid));
- if(!fexist(file))
- {
- new File:bfile;
- bfile = fopen(file,io_write);
- if(bfile)
- {
- fclose(bfile);
- return 1;
- }
- }
- else
- {
- Banned[playerid] = Extra_Int(file,"Ban");
- if(Banned[playerid] == 1) return Extra_Kick(playerid,"You has been banned from this server");
- Muted[playerid] = Extra_Int(file,"Mute");
- Freezed[playerid] = Extra_Int(file,"Freeze");
- }
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- if(Muted[playerid] == 1)
- {
- SendClientMessage(playerid,-1,"You have been muted");
- return 0;
- }
- return 1;
- }
- stock Extra_Kick(playerid, reason[])
- {
- SetTimer("KickPlayer",3000,false);
- SendClientMessage(playerid,-1,reason);
- return 1;
- }
- stock Extra_Ban(playerid, reason[])
- {
- SendClientMessage(playerid,-1,reason);
- Banned[playerid] = 1;
- new file[200];
- format(file,sizeof(file),"Extra/%s.ini",GetName(playerid));
- Extra_IntSet(file,"Ban",1);
- SetTimer("KickPlayer",3000,false);
- return 1;
- }
- stock Extra_UnBan(playername[])
- {
- new file[200]
- format(file,sizeof(file),"Extra/%s.ini",playername);
- Extra_IntSet(file,"Ban",0);
- return 1;
- }
- stock Extra_Mute(playerid, reason[])
- {
- new file[200]
- format(file,sizeof(file),"Extra/%s.ini",GetName(playerid));
- Extra_IntSet(file,"Mute",1);
- Muted[playerid] = 1;
- return 1;
- }
- stock Extra_UnMute(playerid, reason[])
- {
- new file[200]
- format(file,sizeof(file),"Extra/%s.ini",GetName(playerid));
- Extra_IntSet(file,"Mute",0);
- Muted[playerid] = 0;
- return 1;
- }
- stock Extra_Freeze(playerid, reason[])
- {
- new file[200]
- format(file,sizeof(file),"Extra/%s.ini",GetName(playerid));
- Extra_IntSet(file,"Freeze",1);
- Freezed[playerid] = 1;
- TogglePlayerControlLabel(playerid,0);
- return 1;
- }
- stock Extra_UnFreeze(playerid, reason[])
- {
- new file[200]
- format(file,sizeof(file),"Extra/%s.ini",GetName(playerid));
- Extra_IntSet(file,"Freeze",0);
- Freezed[playerid] = 0;
- TogglePlayerControlLabel(playerid,1);
- return 1;
- }
- stock GetName(playerid)
- {
- new pname[24];
- GetPlayerName(playerid,pname,sizeof(pname));
- return pname;
- }
- stock Extra_Set(filename[],key[],value[])
- {
- new key_length = strlen(key);
- new value_length = strlen(value);
- if (key_length==0 || key_length+value_length+2>MAX_STRING) return false;
- new File:fohnd, File:fwhnd;
- new tmpres[MAX_STRING];
- new bool:wasset=false;
- // Let's remove the old *.part file if there was one.
- format(tmpres,sizeof(tmpres),"%s.part",filename);
- fremove(tmpres);
- // We'll open the source file.
- fohnd=fopen(filename,io_read);
- if (!fohnd) return false;
- fwhnd=fopen(tmpres,io_write);
- if (!fwhnd) {
- // we can't open the second file for writing, so .. let's close the open one and exit.
- fclose(fohnd);
- return false;
- }
- while (fread(fohnd,tmpres)) {
- if (
- !wasset
- && tmpres[key_length]=='='
- && !strcmp(tmpres, key, true, key_length)
- ) {
- // We've got what needs to be replaced!
- format(tmpres,sizeof(tmpres),"%s=%s",key,value);
- wasset=true;
- } else {
- Extra_StripNewLine(tmpres);
- }
- fwrite(fwhnd,tmpres);
- fwrite(fwhnd,"\r\n");
- }
- if (!wasset) {
- format(tmpres,sizeof(tmpres),"%s=%s",key,value);
- fwrite(fwhnd,tmpres);
- fwrite(fwhnd,"\r\n");
- }
- fclose(fohnd);
- fclose(fwhnd);
- format(tmpres,sizeof(tmpres),"%s.part",filename);
- if (Extra_fcopytextfile(tmpres,filename)) {
- return fremove(tmpres);
- }
- return false;
- }
- stock Extra_IntSet(filename[],key[],value)
- {
- new valuestring[MAX_STRING];
- format(valuestring,MAX_STRING,"%d",value);
- return Extra_Set(filename,key,valuestring);
- }
- stock Extra_StripNewLine(string[])
- {
- new len = strlen(string);
- if (string[0]==0) return ;
- if ((string[len - 1] == '\n') || (string[len - 1] == '\r')) {
- string[len - 1] = 0;
- if (string[0]==0) return ;
- if ((string[len - 2] == '\n') || (string[len - 2] == '\r')) string[len - 2] = 0;
- }
- }
- stock Extra_fcopytextfile(oldname[],newname[])
- {
- new File:ohnd,File:nhnd;
- if (!fexist(oldname)) return false;
- ohnd=fopen(oldname,io_read);
- if (!ohnd) return false;
- nhnd=fopen(newname,io_write);
- if (!nhnd) {
- fclose(ohnd);
- return false;
- }
- new tmpres[MAX_STRING];
- while (fread(ohnd,tmpres)) {
- Extra_StripNewLine(tmpres);
- format(tmpres,sizeof(tmpres),"%s\r\n",tmpres);
- fwrite(nhnd,tmpres);
- }
- fclose(ohnd);
- fclose(nhnd);
- return true;
- }
- stock Extra_Get(filename[],key[])
- {
- new tmpres[MAX_STRING];
- new key_length = strlen(key);
- if (key_length==0 || key_length+2>MAX_STRING) return tmpres;
- new File:fohnd;
- fohnd=fopen(filename,io_read);
- if (!fohnd) return tmpres;
- while (fread(fohnd,tmpres)) {
- if (
- tmpres[key_length]=='='
- && !strcmp(tmpres, key, true, key_length)
- ) {
- /* We've got what we need */
- Extra_StripNewLine(tmpres);
- strmid(tmpres, tmpres, key_length + 1, strlen(tmpres), MAX_STRING);
- fclose(fohnd);
- return tmpres;
- }
- }
- fclose(fohnd);
- return tmpres;
- }
- stock Extra_Int(filename[],key[])
- {
- return strval(Extra_Get(filename,key));
- }
- public KickPlayer(playerid)
- {
- Kick(playerid);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement