Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*==============================================================================
- Copyright (c) 2012-2013
- mskamilor
- LRAS - Login Register Admin System by mskamilor
- V.0.1
- - Login/Register
- - (TAB) Mini Admin Panel
- - stats
- - Administatoren Namen
- =========================
- Befehle V.0.1:
- - Spec,Specoff
- - Ban
- - Kick
- - Fixveh
- - Cveh
- - Makeadmin
- - Heal
- - Kill
- - mute
- - unmute
- - muteall
- - unmuteall
- ===============================================================================*/
- #include <a_samp>
- #include <dini>
- #include <ocmd>
- #define COLOR_RED 0xFF6347AA
- #define COLOR_WHITE 0xFFFFFFFF
- #define hellblau 0xFFFFFF
- #define BLAU 0xFFFFFF
- #define DIALOG_REGISTER 1
- #define DIALOG_LOGIN 2
- #define DIALOG_AH 3
- #define DIALOG_STATS 4
- #define DIALOG_PANEL 5
- #define Adminlevel1 "Supporter"
- #define Adminlevel2 "Admin"
- #define Adminlevel3 "Super Admin"
- #define Adminlevel4 "Server Manager"
- #define Adminlevel5 "Server Owner"
- #define SLOT 50 // HIER IMMER DIE DERZEITIGE SOLTS ANZAHL EINGEBEN
- new bool:MuteNET[SLOT];
- new
- Mut,
- MutTime,
- StrMut[100],
- PlayerName[MAX_PLAYER_NAME],
- PlayerName2[MAX_PLAYER_NAME];
- forward UnMute(playerid);
- main()
- {
- print("\n----------------------------------");
- print(" LRAS by mskamilor");
- print("----------------------------------\n");
- }
- public OnFilterScriptInit()
- {
- return 1;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- for(new i=0; i<10; i++) SendClientMessage(playerid,COLOR_WHITE,"");
- new Datei[64];
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid,name,sizeof(name));
- format(Datei,sizeof(Datei),"/%s.txt",name);
- if(dini_Exists(Datei))
- {
- ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","{FFFFFF}Dein {FF8A05}Account {FFFFFF}wurde gefunden.\nDu kannst dich nun mit deinen Passwort einlogen{FF8A05}:","Login","Abbrechen");
- }
- else
- {
- ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registrieren","{FF8A05}Willkommen\n{FFFFFF}schön das du unseren Server gefunden hast\nWir sind ein Freeroam\nAlso ist hier alles außer Cheats erlaubt\n\n\nViel Spaß wünscht ihnen das {FF8A05}Team","Register","Abbrechen");
- }
- SetPVarInt(playerid,"spect",-1);
- SetPVarInt(playerid,"spec",-1);
- MuteNET[playerid] = false;
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- if(GetPVarInt(playerid,"loggedin")==1)
- {
- SpielerSpeichern(playerid);
- }
- if(GetPVarInt(playerid,"spect")!=-1)
- {
- TogglePlayerSpectating(GetPVarInt(playerid,"spect"),0);
- SetCameraBehindPlayer(GetPVarInt(playerid,"spect"));
- SetPVarInt(GetPVarInt(playerid,"spect"),"spec",-1);
- }
- else if(GetPVarInt(playerid,"spec")!=-1)SetPVarInt(GetPVarInt(playerid,"spec"),"spec",-1);
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- if(MuteNET[playerid] == true)
- {
- SendClientMessage(playerid,COLOR_RED,"Du bist gemutet und kannst nicht reden!");
- return 0;
- }
- return 1;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- if(GetPVarInt(playerid,"spect")!=-1)
- {
- switch(newstate)
- {
- case 0,1,7,8: PlayerSpectatePlayer(GetPVarInt(playerid,"spect"),playerid);
- case 2,3:PlayerSpectateVehicle(GetPVarInt(playerid,"spect"),GetPlayerVehicleID(playerid));
- case 9:
- {
- SetPVarInt(GetPVarInt(playerid,"spect"),"spec",-1);
- TogglePlayerSpectating(GetPVarInt(playerid,"spect"),0);
- SetCameraBehindPlayer(GetPVarInt(playerid,"spect"));
- }
- }
- }
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnRconCommand(cmd[])
- {
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- return 1;
- }
- public OnObjectMoved(objectid)
- {
- return 1;
- }
- public OnPlayerObjectMoved(playerid, objectid)
- {
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- return 1;
- }
- public OnVehicleMod(playerid, vehicleid, componentid)
- {
- return 1;
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- return 1;
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- return 1;
- }
- public OnPlayerSelectedMenuRow(playerid, row)
- {
- return 1;
- }
- public OnPlayerExitedMenu(playerid)
- {
- return 1;
- }
- public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
- {
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- return 1;
- }
- public OnRconLoginAttempt(ip[], password[], success)
- {
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- return 1;
- }
- public OnPlayerStreamIn(playerid, forplayerid)
- {
- return 1;
- }
- public OnPlayerStreamOut(playerid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamIn(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamOut(vehicleid, forplayerid)
- {
- return 1;
- }
- new plID;
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid==DIALOG_LOGIN)
- {
- if(response==0)
- {
- SendClientMessage(playerid,COLOR_WHITE,"Du hast den Vorgang abgebrochen.");
- Kick(playerid);
- return 1;
- }
- if(response==1)
- {
- if(!strlen(inputtext))
- {
- SendClientMessage(playerid,COLOR_WHITE,"Das Passwort war nicht lang genug.");
- ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","{FFFFFF}Du hast nix eingegeben\n\nVersuche es erneut:","Login","Abbrechen");
- return 1;
- }
- else
- {
- Login(playerid,inputtext);
- return 1;
- }
- }
- }
- if(dialogid==DIALOG_REGISTER)
- {
- if(response==0)
- {
- SendClientMessage(playerid,COLOR_WHITE,"Du hast den Vorgang abgebrochen.");
- Kick(playerid);
- return 1;
- }
- if(response==1)
- {
- if(!strlen(inputtext))
- {
- SendClientMessage(playerid,COLOR_WHITE,"Das Passwort war nicht lang genug.");
- ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registrieren","{FFFFFF}Du hast nix eingegeben\n\nVersuche es erneut:","Register","Abbrechen");
- return 1;
- }
- else
- {
- Register(playerid,inputtext);
- return 1;
- }
- }
- if(dialogid == DIALOG_PANEL)
- {
- if(listitem==0)
- {
- SendClientMessage(plID,COLOR_RED,"Du wurdest Gebannt"),Ban(plID);
- }
- if(listitem==1)
- {
- SendClientMessage(plID,COLOR_RED,"Du wurdest Gekickt"),Kick(plID);
- }
- if(listitem==2)
- {
- new Float:x,Float:y,Float:z;
- GetPlayerPos(plID,x,y,z);
- SetPlayerPos(playerid,x,y,z);
- }
- if(listitem==3)
- {
- new Float:x,Float:y,Float:z;
- GetPlayerPos(playerid,x,y,z);
- SetPlayerPos(plID,x,y,z);
- }
- if(listitem==4)
- {
- new Float:x,Float:y,Float:z;
- GetPlayerPos(plID,x,y,z);
- CreateExplosion(x,y,z,0,20);
- }
- }
- return 1;
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- plID=clickedplayerid;
- if(!IsAdmin(playerid,2))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin");
- ShowPlayerDialog(playerid,DIALOG_PANEL,DIALOG_STYLE_LIST,"Admin Panel","Ban\nKick\nGo to\nGet here\nExplode\n","Weahlen","Abbrechen");
- return 1;
- }
- ocmd:stats(playerid,params[])
- {
- new string[124];
- new adminlevel[124];
- switch(GetPVarInt(playerid,"Adminlevel"))
- {
- case 1:{adminlevel=Adminlevel1;}
- case 2:{adminlevel=Adminlevel2;}
- case 3:{adminlevel=Adminlevel3;}
- case 4:{adminlevel=Adminlevel4;}
- case 5:{adminlevel=Adminlevel5;}
- }
- format(string,sizeof(string),"{FFFFFF}Name: %s\n\n{FF805A}Score: %i\n\n{FF8A05}Adminlevel: %s",SpielerName(playerid),GetPlayerScore(playerid),adminlevel);
- ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"Stats",string,"OK","");
- return 1;
- }
- ocmd:fixveh(playerid,params[])
- {
- if(IsAdmin(playerid,2))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
- new Vehicle;
- Vehicle = GetPlayerVehicleID(playerid);
- SetVehicleHealth(Vehicle,100);
- SendClientMessage(playerid,hellblau,"Fahrzeug erfolgreich gehealt.");
- return 1;
- }
- ocmd:cveh(playerid,params[])
- {
- if(IsAdmin(playerid,3))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin");
- new vID,cID,cID2;
- new Float:X,Float:Y,Float:Z;
- GetPlayerPos(playerid,X,Y,Z);
- if(sscanf(params,"iii",vID,cID,cID2))return SendClientMessage(playerid,COLOR_RED,"Benutze /cveh [vID][cID][cID2]");
- CreateVehicle(vID,X,Y,Z,0,cID,cID2,-1);
- SendClientMessage(playerid,hellblau,"Fahrzeug erfolgreich erstellt.");
- return 1;
- }
- ocmd:makeadmin(playerid,params[])
- {
- if(IsAdmin(playerid,5))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin");
- new pID,rank;
- new string[124];
- new adminlevel[124];
- if(sscanf(params,"ui",pID,rank))return SendClientMessage(playerid,COLOR_RED,"Benutze /makeadmin [playerid][alevel]");
- if(rank<1||rank>5)return SendClientMessage(playerid,COLOR_RED,"Bitte Gültigen Rang angeben.");
- SpielerSpeichern(pID);
- SetPVarInt(pID,"Adminlevel",rank);
- switch(GetPVarInt(playerid,"Adminlevel"))
- {
- case 1:{adminlevel=Adminlevel1;}
- case 2:{adminlevel=Adminlevel2;}
- case 3:{adminlevel=Adminlevel3;}
- case 4:{adminlevel=Adminlevel4;}
- case 5:{adminlevel=Adminlevel5;}
- }
- format(string,sizeof(string),"%s Wurde zum %s ernannt",SpielerName(pID),adminlevel);
- SendClientMessage(playerid,COLOR_RED,string);
- SendClientMessage(pID,COLOR_RED,string);
- return 1;
- }
- ocmd:ban(playerid,params[])
- {
- if(IsAdmin(playerid,2))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
- new reason[124],pID,string[124];
- if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,COLOR_RED,"Benutze /ban [playerid] [grund]");
- format(string,sizeof(string),"Admcmd: %s wurde von %s gebannt. Mit dem Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
- SetPVarInt(pID,"Baned",1);
- Kick(pID);
- SendClientMessageToAll(COLOR_RED,string);
- return 1;
- }
- ocmd:kick(playerid,params[])
- {
- if(IsAdmin(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
- new reason[124],pID,string[124];
- if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,COLOR_RED,"Benutze /kick [playerid][grund]");
- format(string,sizeof(string),"Admcmd: %s wurde von %s gekickt. Mit dem Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
- SendClientMessageToAll(COLOR_RED,string);
- Kick(pID);
- return 1;
- }
- ocmd:spec(playerid, params[])
- {
- if(IsAdmin(playerid,1))return SendClientMessage(playerid,0xFF0000AA,"Du bist kein Admin");
- if(!strlen(params))return SendClientMessage(playerid,0xFFFFFFAA,"/spec [id]");
- new giveid=strval(params);
- if(!IsPlayerConnected(giveid) || giveid==playerid)return SendClientMessage(playerid,0xFF0000AA,"Falsche ID");
- TogglePlayerSpectating(playerid,1);
- switch(GetPlayerState(giveid))
- {
- case 2,3:PlayerSpectateVehicle(playerid,GetPlayerVehicleID(giveid));
- case 0,1,7,8,4:PlayerSpectatePlayer(playerid,giveid);
- case 9:return SendClientMessage(playerid,0x00CC00AA,"Diesen Spieler kannst du nicht specen");
- }
- SendClientMessage(playerid,0x00CC00AA,"Benutze /specoff wenn du den Spec modus verlassen willst");
- SetPVarInt(playerid,"spect",giveid);
- SetPVarInt(giveid,"spec",playerid);
- return 1;
- }
- ocmd:specoff(playerid, params[])
- {
- #pragma unused params
- TogglePlayerSpectating(playerid,0);
- SetCameraBehindPlayer(playerid);
- if(GetPVarInt(playerid,"spec")!=-1)SetPVarInt(GetPVarInt(playerid,"spec"),"spect",-1);
- SetPVarInt(playerid,"spec",-1);
- return 1;
- }
- ocmd:heal(playerid,params[])
- {
- new pID,HP,str[200];
- if(IsAdmin(playerid,2))return SendClientMessage(playerid,COLOR_RED,"du bist kein Admin");
- if(sscanf(params,"ud",pID,HP))return SendClientMessage(playerid,COLOR_RED,"/heal [ID] [HP]");
- if(HP<0||HP>100)return SendClientMessage(playerid,COLOR_RED,"Num ab 0 bis 100 möglich");
- SetPlayerHealth(pID,HP);
- format(str,sizeof(str),"Du hast das HP von %s auf %d eingestellt",SpielerName(pID),HP);
- SendClientMessage(playerid,COLOR_RED,str);
- return 1;
- }
- ocmd:kill(playerid,params[])
- {
- new pID,str[100],str2[100];
- if(IsAdmin(playerid,2))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin");
- if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_RED,"/kill [ID]");
- SetPlayerHealth(pID,0);
- format(str,sizeof(str),"Du hast den Spieler %s Getötet",SpielerName(pID));
- SendClientMessage(playerid,COLOR_RED,str);
- format(str,sizeof(str2),"Du wurdest durch den Admin: %s Getötet",SpielerName(playerid));
- SendClientMessage(pID,COLOR_RED,str2);
- return 1;
- }
- ocmd:mute(playerid, params[])
- {
- if(IsAdmin(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin");
- if(sscanf(params,"ud",Mut,MutTime))return SendClientMessage(playerid,COLOR_RED,"/Mute [ID] [Sekunden]");
- if(!IsPlayerConnected(Mut))return SendClientMessage(playerid,COLOR_RED,"Falsche ID");
- if(MuteNET[Mut] == true)return SendClientMessage(playerid,COLOR_RED,"Dieser Spieler ist schon gemutet");
- if(MutTime < 2 || MutTime > 900000)return SendClientMessage(playerid,COLOR_RED,"/Mute [ID] [2 - 900000]");
- MuteNET[Mut] = true;
- SetTimerEx("UnMute",MutTime*1000,0,"d",Mut);
- GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
- GetPlayerName(Mut, PlayerName2, sizeof(PlayerName2));
- format(StrMut, sizeof(StrMut), "Admin: %s Hat den Spieler: %s für %d sekunden gemutet ", PlayerName, PlayerName2, MutTime*1000);
- SendClientMessageToAll(COLOR_RED, StrMut);
- SendClientMessage(Mut,COLOR_RED, "Du wurdest gemutet");
- return 1;
- }
- ocmd:unmute(playerid, params[])
- {
- if(IsAdmin(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin");
- if(sscanf(params,"u",Mut))return SendClientMessage(playerid,COLOR_RED,"/UnMute [ID]");
- if(IsPlayerConnected(Mut))return SendClientMessage(playerid,COLOR_RED,"Falsche ID");
- if(IsPlayerConnected(playerid == Mut))return SendClientMessage(playerid,COLOR_RED,"Du kannst dich selber nicht unmuten");
- if(MuteNET[Mut] == false)return SendClientMessage(playerid,COLOR_RED,"dieser Spieler ist nicht gemutet");
- MuteNET[Mut] = false;
- GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
- GetPlayerName(Mut, PlayerName2, sizeof(PlayerName2));
- format(StrMut, sizeof(StrMut), "Admin: %s Hat den Spieler: %s Unmutet", PlayerName, PlayerName2);
- SendClientMessageToAll(COLOR_RED, StrMut);
- return 1;
- }
- ocmd:muteall(playerid, params[])
- {
- if(IsAdmin(playerid,2))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin");
- for(new i, g = GetMaxPlayers(); i < g; i++)
- {
- if(IsPlayerConnected(i))
- {
- MuteNET[i] = true;
- }
- }
- GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
- format(StrMut, sizeof(StrMut), "Admin: %s Hat alle gemutet", PlayerName);
- SendClientMessageToAll(COLOR_RED, StrMut);
- return 1;
- }
- ocmd:unmuteall(playerid, params[])
- {
- if(IsAdmin(playerid,2))
- return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin");
- for(new i, g = GetMaxPlayers(); i < g; i++)
- {
- if(IsPlayerConnected(i))
- {
- MuteNET[i] = false;
- }
- }
- GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
- format(StrMut, sizeof(StrMut), "Admin: %s hat alle ungemutet", PlayerName);
- SendClientMessageToAll(COLOR_RED, StrMut);
- return 1;
- }
- ocmd:ah(playerid,params[])
- {
- if(IsAdmin(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin!");
- ShowPlayerDialog(playerid,DIALOG_AH,DIALOG_STYLE_MSGBOX,"Admin Hilfe","{FFFFFF}/kick - Spieler kicken\n/fixveh - Fahrzeug reperieren\n/ban - Spieler Banen\n/cveh - Fahrzeug spawnen\n/spec - Einen Spieler beobachten\n/makeadmin - Einen Spieler zum Admin machen\n/heal - HP einstellen\n/kill - Spieler töten\n/mute - Spieler Muten\n/unmute - Spieler Unmuten\n/muteall - Alle muten\n/unmuteall - Alle unmuten","OK","");
- return 1;
- }
- /* STOCKS BZW. PUBLICS */
- stock SpielerName(playerid)
- {
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid,name,sizeof(name));
- return name;
- }
- stock Register(playerid,key[])
- {
- new Spielerdatei[64];
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid,name,sizeof(name));
- format(Spielerdatei,sizeof(Spielerdatei),"/%s.txt",name);
- dini_Create(Spielerdatei);
- dini_Set(Spielerdatei,"Passwort",key);
- SetPlayerScore(playerid,1);
- SetPVarInt(playerid,"loggedin",1);
- return 1;
- }
- stock Login(playerid,key[])
- {
- new Spielerdatei[64];
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid,name,sizeof(name));
- format(Spielerdatei,sizeof(Spielerdatei),"/%s.txt",name);
- if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
- {
- LoadAccount(playerid);
- SendClientMessage(playerid,COLOR_RED,"Erfolgreich eingeloggt.");
- return 1;
- }
- else
- {
- ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","{FFFFFF}Du hast ein Falsches Passwort angegeben.\n\nVersuche es erneut:","Login","Abbrechen");
- return 1;
- }
- }
- stock LoadAccount(playerid)
- {
- new Spielerdatei[64];
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid,name,sizeof(name));
- format(Spielerdatei,sizeof(Spielerdatei),"/%s.txt",name);
- SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
- SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
- if(GetPVarInt(playerid,"Baned")==1)
- {
- SendClientMessage(playerid,COLOR_RED,"Du bist vom Server gebannt.");
- Kick(playerid);
- }
- SetPVarInt(playerid,"loggedin",1);
- return 1;
- }
- stock SpielerSpeichern(playerid)
- {
- if(GetPVarInt(playerid,"loggedin")==1)
- {
- new Spielerdatei[64];
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid,name,sizeof(name));
- format(Spielerdatei,sizeof(Spielerdatei),"/%s.txt",name);
- dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
- dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
- }
- return 1;
- }
- stock IsAdmin(playerid,rank)
- {
- if(GetPVarInt(playerid,"Adminlevel")<=rank)return 1;
- return 0;
- }
- stock sscanf(sstring[], format[], {Float,_}:...)
- {
- #if defined isnull
- if (isnull(sstring))
- #else
- if (sstring[0] == 0 || (sstring[0] == 1 && sstring[1] == 0))
- #endif
- {
- return format[0];
- }
- #pragma tabsize 4
- new
- formatPos = 0,
- sstringPos = 0,
- paramPos = 2,
- paramCount = numargs(),
- delim = ' ';
- while (sstring[sstringPos] && sstring[sstringPos] <= ' ')
- {
- sstringPos++;
- }
- while (paramPos < paramCount && sstring[sstringPos])
- {
- switch (format[formatPos++])
- {
- case '\0':
- {
- return 0;
- }
- case 'i', 'd':
- {
- new
- neg = 1,
- num = 0,
- ch = sstring[sstringPos];
- if (ch == '-')
- {
- neg = -1;
- ch = sstring[++sstringPos];
- }
- do
- {
- sstringPos++;
- if ('0' <= ch <= '9')
- {
- num = (num * 10) + (ch - '0');
- }
- else
- {
- return -1;
- }
- }
- while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
- setarg(paramPos, 0, num * neg);
- }
- case 'h', 'x':
- {
- new
- num = 0,
- ch = sstring[sstringPos];
- do
- {
- sstringPos++;
- switch (ch)
- {
- case 'x', 'X':
- {
- num = 0;
- continue;
- }
- case '0' .. '9':
- {
- num = (num << 4) | (ch - '0');
- }
- case 'a' .. 'f':
- {
- num = (num << 4) | (ch - ('a' - 10));
- }
- case 'A' .. 'F':
- {
- num = (num << 4) | (ch - ('A' - 10));
- }
- default:
- {
- return -1;
- }
- }
- }
- while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
- setarg(paramPos, 0, num);
- }
- case 'c':
- {
- setarg(paramPos, 0, sstring[sstringPos++]);
- }
- case 'f':
- {
- new changestr[16], changepos = 0, strpos = sstringPos;
- while(changepos < 16 && sstring[strpos] && sstring[strpos] != delim)
- {
- changestr[changepos++] = sstring[strpos++];
- }
- changestr[changepos] = '\0';
- setarg(paramPos,0,_:floatstr(changestr));
- }
- case 'p':
- {
- delim = format[formatPos++];
- continue;
- }
- case '\'':
- {
- new
- end = formatPos - 1,
- ch;
- while ((ch = format[++end]) && ch != '\'') {}
- if (!ch)
- {
- return -1;
- }
- format[end] = '\0';
- if ((ch = strfind(sstring, format[formatPos], false, sstringPos)) == -1)
- {
- if (format[end + 1])
- {
- return -1;
- }
- return 0;
- }
- format[end] = '\'';
- sstringPos = ch + (end - formatPos);
- formatPos = end + 1;
- }
- case 'u':
- {
- new
- end = sstringPos - 1,
- id = 0,
- bool:num = true,
- ch;
- while ((ch = sstring[++end]) && ch != delim)
- {
- if (num)
- {
- if ('0' <= ch <= '9')
- {
- id = (id * 10) + (ch - '0');
- }
- else
- {
- num = false;
- }
- }
- }
- if (num && IsPlayerConnected(id))
- {
- setarg(paramPos, 0, id);
- }
- else
- {
- #if !defined foreach
- #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
- #define __SSCANF_FOREACH__
- #endif
- sstring[end] = '\0';
- num = false;
- new
- name[MAX_PLAYER_NAME];
- id = end - sstringPos;
- foreach (Player, playerid)
- {
- GetPlayerName(playerid, name, sizeof (name));
- if (!strcmp(name, sstring[sstringPos], true, id))
- {
- setarg(paramPos, 0, playerid);
- num = true;
- break;
- }
- }
- if (!num)
- {
- setarg(paramPos, 0, INVALID_PLAYER_ID);
- }
- sstring[end] = ch;
- #if defined __SSCANF_FOREACH__
- #undef foreach
- #undef __SSCANF_FOREACH__
- #endif
- }
- sstringPos = end;
- }
- case 's', 'z':
- {
- new
- i = 0,
- ch;
- if (format[formatPos])
- {
- while ((ch = sstring[sstringPos++]) && ch != delim)
- {
- setarg(paramPos, i++, ch);
- }
- if (!i)
- {
- return -1;
- }
- }
- else
- {
- while ((ch = sstring[sstringPos++]))
- {
- setarg(paramPos, i++, ch);
- }
- }
- sstringPos--;
- setarg(paramPos, i, '\0');
- }
- default:
- {
- continue;
- }
- }
- while (sstring[sstringPos] && sstring[sstringPos] != delim && sstring[sstringPos] > ' ')
- {
- sstringPos++;
- }
- while (sstring[sstringPos] && (sstring[sstringPos] == delim || sstring[sstringPos] <= ' '))
- {
- sstringPos++;
- }
- paramPos++;
- }
- do
- {
- if ((delim = format[formatPos++]) > ' ')
- {
- if (delim == '\'')
- {
- while ((delim = format[formatPos++]) && delim != '\'') {}
- }
- else if (delim != 'z')
- {
- return delim;
- }
- }
- }
- while (delim > ' ');
- return 0;
- }
- public UnMute(playerid)
- {
- if(MuteNET[playerid] == true)
- {
- MuteNET[playerid] = false;
- SendClientMessage(playerid,COLOR_RED,"Du bist nicht mehr gemutet");
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement