Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*==============================================================================
- INCLUDES
- ==============================================================================*/
- #include <a_samp>
- #include <irc>
- #include <sscanf2>
- #include <zcmd>
- native WP_Hash(buffer[], len, const str[]);
- /*==============================================================================
- IRC RELATED
- ==============================================================================*/
- #define IRC_CHANNEL "#SAMPStarterKit" //Channel Name
- #define IRC_SERVER "irc.va.us.mibbit.net" //Hoster/Server Name
- #define IRC_PORT (6667) //Port des IRC (default=6667)
- #define BOT_NAME "Bot1" //Wird in der Liste angezeigt
- #define BOT_REALNAME "Beginner Bot" //Wie er im Whois angezeigt werden soll
- #define BOT_USERNAME "Bot" //Wird wie folgt angezeigt: "username@hostname"
- #define MAX_BOTS (1) //Maximale Anzahl an Bots welche zum IRC connecten
- #define MAX_IRC_ATTEMPS 3 //Maximalle Versuche wenn ein IRC Bot nicht connecten konnte
- /*==============================================================================
- CLIENT RELATED
- ==============================================================================*/
- #define SERVERNAME "uStarter"
- #define HOSTNAME "hostname Starter Kit IRC/SQLite/Whirlpool/sscanf2/zcmd"
- #define MAPNAME "mapname made by ulbi1990"
- #define SPAWNPOS 1958.3783, 1343.1572, 15.3746
- /*==============================================================================
- DEFINES
- ==============================================================================*/
- //Dialoge
- #define REGISTER 20
- #define LOGIN 21
- //Farben
- #define gelb 0xFFFF00FF
- #define blau 0x0000FFFF
- #define rot 0xFF0000FF
- /*==============================================================================
- STOCKS & FORWARDS
- ==============================================================================*/
- stock DB_Escape(text[])
- {
- new
- ret[80 * 2],
- ch,
- i,
- j;
- while ((ch = text[i++]) && j < sizeof (ret))
- {
- if (ch == '\'')
- {
- if (j < sizeof (ret) - 2)
- {
- ret[j++] = '\'';
- ret[j++] = '\'';
- }
- }
- else if (j < sizeof (ret))
- {
- ret[j++] = ch;
- }
- else
- {
- j++;
- }
- }
- ret[sizeof (ret) - 1] = '\0';
- return ret;
- }
- forward KickTimer(playerid);
- forward SpawnTimer(playerid);
- /*==============================================================================
- VARIABLEN
- ==============================================================================*/
- //IRC Related [erste sind f�r die Bot IDs welche vom Script aus auf den Server connecten, zweite ist die Gruppen ID]
- new BotIDs[MAX_BOTS],IRCAttemps[MAX_BOTS],GruppenID;
- //Server Related
- enum PlayerInfo
- {
- Adminlevel,
- Viplevel,
- Money,
- Skin,
- Float:PosX,
- Float:PosY,
- Float:PosZ,
- LoggedIn,
- NewRegistered
- }
- enum PlayerBanInfo
- {
- Banned,
- BanDate[128],
- BanAdmin[128],
- BanReason[128]
- }
- new pInfo[MAX_PLAYERS][PlayerInfo],pbInfo[MAX_PLAYERS][PlayerBanInfo],DB:database;
- /*==============================================================================
- MAINSCRIPT
- ==============================================================================*/
- main()
- {
- print("\t|=============================================|");
- print("\t|Starter Kit IRC/SQLite/Whirlpool/sscanf2/zcmd|");
- print("\t| scripted by ulbi1990 |");
- print("\t|=============================================|");
- }
- public OnGameModeInit()
- {
- SetGameModeText(SERVERNAME);
- SendRconCommand(HOSTNAME);
- SendRconCommand(MAPNAME);
- //Bot zum IRC Channel connecten lassen und eine Gruppen ID erstellen
- BotIDs[0]=IRC_Connect(IRC_SERVER,IRC_PORT,BOT_NAME,BOT_REALNAME,BOT_USERNAME);
- GruppenID=IRC_CreateGroup();
- //Datenbanken related
- database=db_open("Datenbank.db");
- db_query(database,"CREATE TABLE IF NOT EXISTS `Accounts`(`ID`INTEGER PRIMARY KEY AUTOINCREMENT,`Name`,`Passwort`,`Adminlevel`,`Viplevel`,`Score`,`Money`,`Skin`,`PosX`,`PosY`,`PosZ`)");
- db_query(database,"CREATE TABLE IF NOT EXISTS `Bans`(`ID`INTEGER PRIMARY KEY AUTOINCREMENT,`Name`,`Date`,`Admin`,`Reason`,`Banned`)");
- return 1;
- }
- public OnGameModeExit()
- {
- IRC_Quit(BotIDs[0],"Server shutdown!"); //Bot vom IRC wieder disconnecten
- IRC_DestroyGroup(GruppenID); //Gruppen ID wieder l�schen
- db_close(database);
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- new msg[128],name[MAX_PLAYER_NAME+1],DBResult:BResult,DBResult:Result; //Variablen erstellen
- GetPlayerName(playerid,name,sizeof(name)); //Name des Spielers bekommen
- format(msg,sizeof(msg),"SELECT * FROM `Bans` WHERE `Name`='%s'",DB_Escape(name));
- BResult=db_query(database,msg);
- if(db_num_rows(BResult)>0)
- {
- db_get_field_assoc(BResult,"Banned",msg,sizeof(msg));
- pbInfo[playerid][Banned]=strval(msg);
- db_get_field_assoc(BResult,"Date",msg,sizeof(msg));
- pbInfo[playerid][BanDate]=msg;
- db_get_field_assoc(BResult,"Admin",msg,sizeof(msg));
- pbInfo[playerid][BanAdmin]=msg;
- db_get_field_assoc(BResult,"Reason",msg,sizeof(msg));
- pbInfo[playerid][BanReason]=msg;
- if(pbInfo[playerid][Banned]==1)
- {
- format(msg,sizeof(msg),"Du bist gebannt. [Datum des Bannes: %s || Admin: %s || Grund: %s]",pbInfo[playerid][BanDate],pbInfo[playerid][BanAdmin],pbInfo[playerid][BanReason]);
- SendClientMessage(playerid,rot,msg);
- SetTimerEx("KickTimer",500,0,"i",playerid);
- }
- else if(pbInfo[playerid][Banned]==0)
- {
- format(msg,sizeof(msg),"SELECT * FROM `Accounts` WHERE `Name`='%s'",DB_Escape(name));
- Result=db_query(database,msg);
- if(db_num_rows(Result)>0)
- {
- ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_PASSWORD,""#SERVERNAME" Login Bereich","Gebe bitte nun dein Passwort ein um dich einzuloggen!","Login","Kick");
- }
- else
- {
- ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_PASSWORD,""#SERVERNAME" Registrierungs Bereich","Gebe bitte nun ein Passwort ein um dich zu registrieren!","Register","Kick");
- }
- }
- }
- else
- {
- format(msg,sizeof(msg),"SELECT * FROM `Accounts` WHERE `Name`='%s'",DB_Escape(name));
- Result=db_query(database,msg);
- if(db_num_rows(Result)>0)
- {
- ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_PASSWORD,""#SERVERNAME" Login Bereich","Gebe bitte nun dein Passwort ein um dich einzuloggen!","Login","Kick");
- }
- else
- {
- ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_PASSWORD,""#SERVERNAME" Registrierungs Bereich","Gebe bitte nun ein Passwort ein um dich zu registrieren!","Register","Kick");
- }
- db_free_result(Result);
- }
- db_free_result(BResult);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- new msg[256],name[MAX_PLAYER_NAME+1],Float:zPos[3]; //Variablen erstellen
- GetPlayerName(playerid,name,sizeof(name)); //Name des Spielers bekommen
- switch(reason) // in den Grund switchen
- {
- //Nachricht nach Grund formatieren
- case 0: format(msg,sizeof(msg),"["#SERVERNAME"]: [%i] %s hat den Server verlassen. [Grund: Timeout/Crash]",playerid,name);
- case 1: format(msg,sizeof(msg),"["#SERVERNAME"]: [%i] %s hat den Server verlassen. [Grund: Quit]",playerid,name);
- case 2: format(msg,sizeof(msg),"["#SERVERNAME"]: [%i] %s hat den Server verlassen. [Grund: Kick/Ban]",playerid,name);
- }
- IRC_GroupSay(GruppenID,IRC_CHANNEL,msg); //Nachricht an den IRC Channel schicken
- SendClientMessageToAll(blau,msg); //Nachricht an alle schicken
- GetPlayerPos(playerid,zPos[0],zPos[1],zPos[2]);
- format(msg,sizeof(msg),"UPDATE `Accounts` SET `Adminlevel`='%d',`Viplevel`='%d',`Score`='%d',`Money`='%d',`Skin`='%d',`PosX`='%f',`PosY`='%f',`PosZ`='%f' WHERE `Name`='%s'",pInfo[playerid][Adminlevel],pInfo[playerid][Viplevel],GetPlayerScore(playerid),pInfo[playerid][Money],GetPlayerSkin(playerid),zPos[0],zPos[1],zPos[2],DB_Escape(name));
- db_query(database,msg);
- pInfo[playerid][Adminlevel]=0;
- pInfo[playerid][Viplevel]=0;
- pInfo[playerid][Money]=0;
- pInfo[playerid][Skin]=0;
- pInfo[playerid][PosX]=0;
- pInfo[playerid][PosY]=0;
- pInfo[playerid][PosZ]=0;
- pInfo[playerid][LoggedIn]=0;
- pInfo[playerid][NewRegistered]=0;
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- new msg[128],name[MAX_PLAYER_NAME+1];
- GetPlayerName(playerid,name,sizeof(name));
- if(pInfo[playerid][NewRegistered]==0)
- {
- if(pInfo[playerid][LoggedIn]==0)
- {
- SetPlayerPos(playerid,pInfo[playerid][PosX],pInfo[playerid][PosY],pInfo[playerid][PosZ]);
- SetCameraBehindPlayer(playerid);
- pInfo[playerid][LoggedIn]=1;
- if(pInfo[playerid][Adminlevel]>0&&pInfo[playerid][Viplevel]==0)
- {
- format(msg,sizeof(msg),"["#SERVERNAME"]: [%i] %s [Admin: %d] hat sich erfollgreich eingeloggt!",playerid,name,pInfo[playerid][Adminlevel]);
- }
- if(pInfo[playerid][Adminlevel]>0&&pInfo[playerid][Viplevel]>0)
- {
- format(msg,sizeof(msg),"["#SERVERNAME"]: [%i] %s [Admin: %d ||Vip: %d] hat sich erfollgreich eingeloggt!",playerid,name,pInfo[playerid][Adminlevel],pInfo[playerid][Viplevel]);
- }
- if(pInfo[playerid][Adminlevel]==0&&pInfo[playerid][Viplevel]>0)
- {
- format(msg,sizeof(msg),"["#SERVERNAME"]: [%i] %s [Vip: %d] hat sich erfollgreich eingeloggt!",playerid,name,pInfo[playerid][Viplevel]);
- }
- if(pInfo[playerid][Adminlevel]==0&&pInfo[playerid][Viplevel]==0)
- {
- format(msg,sizeof(msg),"["#SERVERNAME"]: [%i] %s hat sich erfollgreich eingeloggt!",playerid,name);
- }
- }
- }
- else
- {
- if(pInfo[playerid][LoggedIn]==0)
- {
- SetPlayerPos(playerid,SPAWNPOS);
- SetCameraBehindPlayer(playerid);
- pInfo[playerid][LoggedIn]=1;
- format(msg,sizeof(msg),"["#SERVERNAME"]: [%i] %s hat sich erfollgreich registriert!",playerid,name);
- }
- }
- IRC_GroupSay(GruppenID,IRC_CHANNEL,msg);
- SendClientMessageToAll(gelb,msg);
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- new msg[128],name[MAX_PLAYER_NAME+1]; //Variablen erstellen
- GetPlayerName(playerid,name,sizeof(name)); //Name des Spielers bekommen
- format(msg,sizeof(msg),"["#SERVERNAME"]: [%i] %s: %s",playerid,name,text); //Nachricht formatieren
- IRC_GroupSay(GruppenID,IRC_CHANNEL,msg); //Nachricht an den IRC Channel schicken
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- new msg[256],DBResult:Result,hashpass[129],name[MAX_PLAYER_NAME+1];
- GetPlayerName(playerid,name,sizeof(name));
- switch(dialogid)
- {
- case REGISTER:
- {
- WP_Hash(hashpass,sizeof(hashpass),inputtext);
- if(!response)
- {
- format(msg,sizeof(msg),"["#SERVERNAME"]: [%i] %s hat den registrier Vorgang abgebrochen!",playerid,name);
- SendClientMessageToAll(rot,msg);
- IRC_GroupSay(GruppenID,IRC_CHANNEL,msg);
- SetTimerEx("KickTimer",500,0,"i",playerid);
- }
- if(response)
- {
- format(msg,sizeof(msg),"INSERT INTO `Accounts`(`Name`,`Passwort`)VALUES('%s','%s')",DB_Escape(name),hashpass);
- db_query(database,msg);
- pInfo[playerid][NewRegistered]=1;
- SetTimerEx("SpawnTimer",500,0,"i",playerid);
- }
- }
- case LOGIN:
- {
- if(!response)
- {
- format(msg,sizeof(msg),"["#SERVERNAME"]: [%i] %s hat den login Vorgang abgebrochen!",playerid,name);
- SendClientMessageToAll(rot,msg);
- IRC_GroupSay(GruppenID,IRC_CHANNEL,msg);
- SetTimerEx("KickTimer",500,0,"i",playerid);
- }
- if(response)
- {
- WP_Hash(hashpass,sizeof(hashpass),inputtext);
- format(msg,sizeof(msg),"SELECT * FROM `Accounts` WHERE `Name`='%s' AND `Passwort`='%s'",DB_Escape(name),hashpass);
- Result=db_query(database,msg);
- if(db_num_rows(Result)>0)
- {
- db_get_field_assoc(Result,"Adminlevel",msg,sizeof(msg));
- pInfo[playerid][Adminlevel]=strval(msg);
- db_get_field_assoc(Result,"Viplevel",msg,sizeof(msg));
- pInfo[playerid][Viplevel]=strval(msg);
- db_get_field_assoc(Result,"Score",msg,sizeof(msg));
- SetPlayerScore(playerid,strval(msg));
- db_get_field_assoc(Result,"Money",msg,sizeof(msg));
- pInfo[playerid][Money]=strval(msg);
- GivePlayerMoney(playerid,pInfo[playerid][Money]);
- db_get_field_assoc(Result,"Skin",msg,sizeof(msg));
- SetPlayerSkin(playerid,strval(msg));
- db_get_field_assoc(Result,"PosX",msg,sizeof(msg));
- pInfo[playerid][PosX]=floatstr(msg);
- db_get_field_assoc(Result,"PosY",msg,sizeof(msg));
- pInfo[playerid][PosY]=floatstr(msg);
- db_get_field_assoc(Result,"PosZ",msg,sizeof(msg));
- pInfo[playerid][PosZ]=floatstr(msg);
- SetTimerEx("SpawnTimer",500,0,"i",playerid);
- }
- else
- {
- ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_PASSWORD,""#SERVERNAME" Login Bereich","Gebe bitte nun dein Passwort ein um dich einzuloggen!","Login","Kick");
- SendClientMessage(playerid,rot,"Das angegebene Passwort war falsch!");
- }
- db_free_result(Result);
- }
- }
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- public KickTimer(playerid)
- {
- Kick(playerid);
- return 1;
- }
- public SpawnTimer(playerid)
- {
- SpawnPlayer(playerid);
- return 1;
- }
- /*==============================================================================
- BEFEHLE
- ==============================================================================*/
- //Adminbefehle
- CMD:setskin(playerid,params[])
- {
- new skinid,user,msg[128],name[MAX_PLAYER_NAME+1];
- if(pInfo[playerid][Adminlevel]<1) return SendClientMessage(playerid,rot,"Du bist nicht befugt diesen Befehl zu nutzen!");
- {
- if(sscanf(params,"ud",user,skinid)) return SendClientMessage(playerid,rot,"[NUTZUNG]: /setskin <playerid/part-of-name/name> <Skin ID>");
- if(skinid<0||skinid>299) return SendClientMessage(playerid,rot,"Skin ID's zwischen 0 und 299!");
- {
- GetPlayerName(playerid,name,sizeof(name));
- SetPlayerSkin(user,skinid);
- format(msg,sizeof(msg),"Admin %s hat deinen Skin gewechselt!",name);
- SendClientMessage(user,gelb,msg);
- }
- }
- return 1;
- }
- CMD:kick(playerid,params[])
- {
- new user,msg[128],reason[56],name[MAX_PLAYER_NAME+1],uname[MAX_PLAYER_NAME+1];
- if(pInfo[playerid][Adminlevel]<2) return SendClientMessage(playerid,rot,"Du bist nicht befugt diesen Befehl zu nutzen!");
- {
- if(sscanf(params,"us[56]",user,reason)) return SendClientMessage(playerid,rot,"[NUTZUNG] /kick <playerid/part-of-name/name> <Grund>");
- {
- GetPlayerName(playerid,name,sizeof(name));
- GetPlayerName(playerid,uname,sizeof(uname));
- format(msg,sizeof(msg),"%s hat dich gekickt. [Grund: %s]",name,reason);
- SendClientMessage(user,rot,msg);
- format(msg,sizeof(msg),"["#SERVERNAME"]: [%i] %s hat %s gekickt. [Grund: %s]",playerid,name,uname,reason);
- SendClientMessageToAll(rot,msg);
- IRC_GroupSay(GruppenID,IRC_CHANNEL,msg);
- SetTimerEx("KickTimer",500,0,"i",user);
- }
- }
- return 1;
- }
- CMD:ban(playerid,params[])
- {
- new user,msg[256],reason[56],name[MAX_PLAYER_NAME+1],uname[MAX_PLAYER_NAME+1],year,month,day,date[11];
- if(pInfo[playerid][Adminlevel]<2) return SendClientMessage(playerid,rot,"Du bist nicht befugt diesen Befehl zu nutzen!");
- {
- if(sscanf(params,"us[56]",user,reason)) return SendClientMessage(playerid,rot,"[NUTZUNG]: /ban <playerid/part-of-name/name> <Grund>");
- if(strlen(reason)<4||strlen(reason)>56) return SendClientMessage(playerid,rot,"Der Grund muss mindestens 4 Zeichen und maximal 56 Zeichen besitzen!");
- {
- getdate(year,month,day);
- format(date,sizeof(date),"%02d.%02d.%d",day,month,year);
- GetPlayerName(playerid,name,sizeof(name));
- GetPlayerName(user,uname,sizeof(uname));
- format(msg,sizeof(msg),"INSERT INTO `Bans`(`Name`,`Date`,`Admin`,`Reason`,`Banned`)VALUES('%s','%s','%s','%s','1')",DB_Escape(uname),date,DB_Escape(name),reason);
- db_query(database,msg);
- format(msg,sizeof(msg),"Du wurdest von %s gebannt. [Grund: %s]",name,reason);
- SendClientMessage(playerid,rot,msg);
- format(msg,sizeof(msg),"["#SERVERNAME"]: [%i] %s hat %s gebannt. [Grund: %s]",playerid,name,uname,reason);
- SendClientMessageToAll(rot,msg);
- IRC_GroupSay(GruppenID,IRC_CHANNEL,msg);
- SetTimerEx("KickTimer",500,0,"i",user);
- }
- }
- return 1;
- }
- CMD:unban(playerid,params[])
- {
- new user[25],DBResult:Result,msg[128],name[MAX_PLAYER_NAME+1];
- if(pInfo[playerid][Adminlevel]<3) return SendClientMessage(playerid,rot,"Du bist nicht befugt diesen Befehl zu nutzen!");
- {
- if(sscanf(params,"s[25]",user)) return SendClientMessage(playerid,rot,"[NUTZUNG]: /unban <Name>");
- {
- format(msg,sizeof(msg),"SELECT * FROM `Bans` WHERE `Name` ='%s' AND `Banned`='1'",DB_Escape(user));
- Result=db_query(database,msg);
- if(db_num_rows(Result)>0)
- {
- format(msg,sizeof(msg),"UPDATE `Bans` SET `Banned`='0' WHERE `Name`='%s'",user);
- printf("%s",msg);
- db_query(database,msg);
- format(msg,sizeof(msg),"Du hast %s erfollgreich entbannt!",user);
- SendClientMessage(playerid,gelb,msg);
- GetPlayerName(playerid,name,sizeof(name));
- format(msg,sizeof(msg),"["#SERVERNAME"]: %s wurde erfollgreich von %s [%i] entbannt!",user,name,playerid);
- SendClientMessageToAll(gelb,msg);
- IRC_GroupSay(GruppenID,IRC_CHANNEL,msg);
- }
- else
- {
- SendClientMessage(playerid,rot,"Dieser Spieler ist nicht in der Datenbank gebannt!");
- }
- db_free_result(Result);
- }
- }
- return 1;
- }
- /*==============================================================================
- IRC RELATED CALLBACLS
- ==============================================================================*/
- public IRC_OnConnect(botid, ip[], port)
- {
- printf("IRC Connection: Bot %d hat den IRC Server %s:%d betretten", botid, ip, port); //Nachricht an die Konsole wenn ein Bot gejoint hat
- IRC_JoinChannel(botid, IRC_CHANNEL); //Bot zum Channel connecten
- IRC_AddToGroup(GruppenID, botid); //Bot zur Gruppen ID hinzuf�gen
- return 1;
- }
- public IRC_OnDisconnect(botid, ip[], port, reason[])
- {
- printf("IRC Connection: Bot %d hat den IRC Server %s:%d verlassen! [Grund:%s]", botid, ip, port, reason); //Nachricht wenn ein Bot vom Server geht mit Grund
- IRC_RemoveFromGroup(GruppenID, botid); //Bot von der Gruppe entfernen
- return 1;
- }
- public IRC_OnConnectAttempt(botid, ip[], port)
- {
- if(IRCAttemps[botid]!=MAX_IRC_ATTEMPS) //Sollten die Maximalen Versuche noch nicht erreicht sein einen Versuch starten
- {
- printf("IRC Connection: Bot %d versucht auf den IRC Server %s:%d zu joinen", botid, ip, port); //Versuch des Bots printen
- printf("Versuch: %d/%d",IRCAttemps[botid],MAX_IRC_ATTEMPS); //Anzahl der Versuche printen
- }
- else //Sollten maximalle Versuche erreicht sein
- {
- IRC_Quit(botid,"IRC Bot konnte nicht auf den Server connecten!"); //Soll der Bot den Server verlassen
- }
- return 1;
- }
- public IRC_OnConnectAttemptFail(botid, ip[], port, reason[])
- {
- printf("IRC Connection: Bot %d konnte auf den IRC Server %s:%d nicht joinen! [Grund: %s]", botid, ip, port, reason); //Sollte er nicht connecten k�nnen eine Nachricht printen mit dem Grund
- IRCAttemps[botid]++; //Versuche um eins erh�hen
- return 1;
- }
- public IRC_OnJoinChannel(botid, channel[])
- {
- printf("IRC Connection: Bot %d hat erfollgreich auf Channel %s gejoint!", botid, channel); //Bot konnte erfollgreich auf den IRC Server connecten
- IRCAttemps[botid]=0;
- return 1;
- }
- public IRC_OnLeaveChannel(botid, channel[], message[])
- {
- printf("IRC Connection: Bot %d hat den Channel %s verlassen [Grund:%s]", botid, channel, message); //Bot hat den IRC Channel verlassen
- return 1;
- }
- public IRC_OnUserJoinChannel(botid, channel[], user[], host[])
- {
- new msg[128]; //Neue Variable erstellen
- format(msg,sizeof(msg),"{FF6400}[IRC] {FFFFFF}%s hat den IRC Channel betretten!",user); //Fromatieren der Nachricht
- SendClientMessageToAll(blau,msg); //An alle Spieler InGame die Nachricht senden dass jemand den Channel verlassen hat
- return 1;
- }
- public IRC_OnUserLeaveChannel(botid, channel[], user[], host[], message[])
- {
- new msg[128]; //Neue Variable erstellen
- format(msg,sizeof(msg),"{FF6400}[IRC] {FFFFFF}%s hat den IRC Channel verlassen!",user); //Fromatieren der Nachricht
- SendClientMessageToAll(blau,msg); //An alle Spieler InGame die Nachricht senden dass jemand den Channel verlassen hat
- return 1;
- }
- public IRC_OnUserSay(botid, recipient[], user[], host[], message[])
- {
- new msg[128]; //Neue Variable ertellen
- format(msg,sizeof(msg),"{FF6400}[IRC] {FFFFFF}%s: %s",user,message); //Formatieren des Textes welcher um Channel geschrieben wird
- SendClientMessageToAll(-1,msg);//An alle Spieler die Nachricht schicken
- return 1;
- }
- public IRC_OnUserNickChange(botid, oldnick[], newnick[], host[])
- {
- new msg[128]; //Neue Variable ertellen
- format(msg,sizeof(msg),"{FF6400}[IRC] {FFFFFF}%s hat seinen Namen zu %s ge�ndert!",oldnick,newnick);
- SendClientMessageToAll(blau,msg);
- return 1;
- }
- /*==============================================================================
- IRC BEFEHLE
- ==============================================================================*/
- IRCCMD:kick(botid, channel[], user[], host[], params[])
- {
- if(IRC_IsOp(botid, channel, user))
- {
- new pID,reason[56],msg[128];
- if(sscanf(params,"us[56]",pID,reason)) return IRC_Say(botid,user,"[NUTZUNG]: !kick <playerid/part-of-name/name> <Grund>");
- {
- format(msg,sizeof(msg),"Du wurdest von %s �ber IRC gekickt. [Grund: %s]",pID,reason);
- SendClientMessage(pID,rot,msg);
- format(msg,sizeof(msg),"{FF6400}[IRC] {FFFFFF}[%i] %s wurde von %s �ber den IRC Chat gekickt. [Grund: %s]",pID,pID,user,reason);
- SendClientMessageToAll(rot,msg);
- IRC_GroupSay(GruppenID,IRC_CHANNEL,msg);
- SetTimerEx("KickTimer",500,0,"i",user);
- }
- }
- return 0;
- }
- IRCCMD:ban(botid, channel[], user[], host[], params[])
- {
- if(IRC_IsAdmin(botid, channel, user))
- {
- new pID,reason[56],msg[128],date[11],year,month,day,uname[MAX_PLAYER_NAME+1];
- if(sscanf(params,"us[56]",pID,reason)) return IRC_Say(botid,user,"[NUTZUNG]: !ban <playerid/part-of-name/name> <Grund>");
- if(strlen(reason)<4||strlen(reason)>56) return IRC_Say(botid,user,"Der Grund muss mindestens 4 Zeichen und maximal 56 Zeichen besitzen!");
- {
- getdate(year,month,day);
- format(date,sizeof(date),"%02d.%02d.%d",day,month,year);
- GetPlayerName(pID,uname,sizeof(uname));
- format(msg,sizeof(msg),"INSERT INTO `Bans`(`Name`,`Date`,`Admin`,`Reason`,`Banned`)VALUES('%s','%s','%s','%s','1')",DB_Escape(uname),date,DB_Escape(user),reason);
- db_query(database,msg);
- format(msg,sizeof(msg),"Du wurdest von %s gebannt. [Grund: %s]",user,reason);
- SendClientMessage(pID,rot,msg);
- format(msg,sizeof(msg),"{FF6400}[IRC] {FFFFFF}%s hat %s gebannt. [Grund: %s]",user,uname,reason);
- SendClientMessageToAll(rot,msg);
- IRC_GroupSay(GruppenID,IRC_CHANNEL,msg);
- SetTimerEx("KickTimer",500,0,"i",user);
- }
- }
- return 0;
- }
- IRCCMD:unban(botid, channel[], user[], host[], params[])
- {
- new pID[25],DBResult:Result,msg[128];
- if(IRC_IsAdmin(botid, channel, user))
- {
- if(sscanf(params,"s[25]",pID)) return IRC_Say(botid,user,"[NUTZUNG]: /unban <Name>");
- {
- format(msg,sizeof(msg),"SELECT * FROM `Bans` WHERE `Name` ='%s' AND `Banned`='1'",DB_Escape(pID));
- Result=db_query(database,msg);
- if(db_num_rows(Result)>0)
- {
- format(msg,sizeof(msg),"UPDATE `Bans` SET `Banned`='0' WHERE `Name`='%s'",pID);
- db_query(database,msg);
- format(msg,sizeof(msg),"Du hast %s erfollgreich entbannt!",pID);
- IRC_Say(botid,user,msg);
- format(msg,sizeof(msg),"{FF6400}[IRC] {FFFFFF}%s wurde erfollgreich von %s entbannt!",pID,user);
- SendClientMessageToAll(gelb,msg);
- IRC_GroupSay(GruppenID,IRC_CHANNEL,msg);
- }
- else
- {
- IRC_Say(botid,user,"Dieser Spieler ist nicht in der Datenbank gebannt!");
- }
- db_free_result(Result);
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment