Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <zcmd>
- 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;
- }
- #define DIALOG_BETA 5000
- #define DIALOG_ERSTELLEN 5500
- enum BetaDaten {
- KeyVorhanden
- }
- new BetaInfo[MAX_PLAYERS][BetaDaten];
- new DB:Keys;
- new Blocked;
- public OnFilterScriptInit()
- {
- Keys = db_open("Keys.db");
- new str[128],strz[128];
- format(str, sizeof(str), "CREATE TABLE IF NOT EXISTS `Betakeys`(`Keynummer`)");
- format(strz,sizeof(strz), "CREATE TABLE IF NOT EXISTS `Anmeldungen`(`Name`,`KeyVorhanden` NOT_NULL, `Keynummer`)");
- db_query(Keys, str);
- db_query(Keys, strz);
- print("\n--------------------------------------");
- print("Betakey-System v1.0");
- print("--------------------------------------\n");
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- new strz[128], DBResult:ResultZ, name[MAX_PLAYER_NAME+1];
- GetPlayerName(playerid, name, sizeof(name));
- format(strz, sizeof(strz), "SELECT * FROM `Anmeldungen` WHERE `Name` = '%s'",DB_Escape(name));
- ResultZ = db_query(Keys, strz);
- if(db_num_rows(ResultZ) > 0)
- {
- db_get_field_assoc(ResultZ, "KeyVorhanden", strz, sizeof(strz));
- BetaInfo[playerid][KeyVorhanden] = 1;
- }
- db_free_result(ResultZ);
- if(Blocked == 1)
- {
- SetTimerEx("Kicked",250, false, "i", playerid);
- SendClientMessage(playerid, -1, "Die Betaregistrierung ist derzeit leider abgeschaltet!");
- }
- if(BetaInfo[playerid][KeyVorhanden] == 0)
- {
- ShowPlayerDialog(playerid, DIALOG_BETA,DIALOG_STYLE_INPUT,"Beta-Anmeldung", "Du hast einen Beta Key?\nDenn trage ihn hier ein:", "OK", "Abbrechen");
- } else return SpawnPlayer(playerid);
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == DIALOG_BETA)
- {
- if(!response)return Kick(playerid);
- if(response)
- {
- new str[128],dbstr[128],dstr[128], DBResult:Result, name[MAX_PLAYER_NAME+1];
- GetPlayerName(playerid, name, sizeof(name));
- format(str, sizeof(str), "SELECT * FROM `Betakeys` WHERE `Keynummer` = '%s'", inputtext);
- Result = db_query(Keys, str);
- if(db_num_rows(Result) > 0)
- {
- format(dbstr, sizeof(dbstr), "INSERT INTO `Anmeldungen`(`Name`, `KeyVorhanden`, `Keynummer`)VALUES('%s','%i', '%s')",DB_Escape(name),1,inputtext);
- format(dstr, sizeof(dstr), "DELETE FROM `Betakeys` WHERE (`Keynummer` = '%s')", inputtext);
- db_query(Keys, dbstr);
- db_query(Keys, dstr);
- db_free_result(db_query(Keys,dstr));
- } else
- {
- SendClientMessage(playerid, -1, "Dieser Schlüssel existiert derzeit nicht in der Datenbank!");
- SetTimerEx("Kicked",250, false, "i", playerid);
- db_free_result(Result);
- }
- }
- }
- if(dialogid == DIALOG_ERSTELLEN)
- {
- if(!response)return SendClientMessage(playerid,-1, "Erstellungsvorgang abgebrochen.");
- if(response)
- {
- new str[128],strz[128];
- format(str, sizeof(str), "INSERT INTO `Betakeys`(`Keynummer`)VALUES('%s')",inputtext);
- format(strz, sizeof(strz), "Du hast den Betaschlüssel: %s erfolgereich erstellt!",inputtext);
- db_query(Keys, str);
- SendClientMessage(playerid,-1, strz);
- }
- }
- return 1;
- }
- forward Kicked(playerid);
- public Kicked(playerid)
- {
- Kick(playerid);
- return 1;
- }
- CMD:keyerstellen(playerid,params[])
- {
- //if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid, -1, "Du hast nicht genügend Rechte um diesen CMD auszuführen!");
- ShowPlayerDialog(playerid, DIALOG_ERSTELLEN, DIALOG_STYLE_INPUT, "Key erstellen", "Geb hier den Schlüssel ein, den du erstellen möchtest!", "OK","Abbrechen");
- return 1;
- }
- CMD:block(playerid,params[])
- {
- //if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid, -1, "Du hast nicht genügend Rechte um diesen CMD auszuführen!");
- new str[128], name[MAX_PLAYER_NAME+1];
- GetPlayerName(playerid, name, sizeof(name));
- if(Blocked == 0)
- {
- Blocked = 1;
- format(str,sizeof(str), "%s hat die Betaanmeldung abgeschaltet!",name);
- } else if(Blocked == 1)
- {
- Blocked = 0;
- format(str,sizeof(str), "%s hat die Betaanmeldung eingeschaltet!", name);
- }
- for(new i=0;i<MAX_PLAYERS;i++)
- {
- if(IsPlayerAdmin(i) && IsPlayerConnected(i))
- {
- SendClientMessageToAll(-1, str);
- }
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement