Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- /* #include <zcmd>
- #include <streamer>
- #include <sscanf2> */
- native WP_Hash(buffer[], len, const str[]);
- 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;
- }
- new DB:Server;
- new Text:Textdraw0;
- new Text:Textdraw1;
- new Text:Textdraw2;
- new Text:Textdraw3;
- new Text:Textdraw4;
- new Text:Textdraw5;
- new Text:Textdraw6;
- new Text:Textdraw7;
- new Text:Textdraw8;
- new Text:Textdraw9;
- new LoginCount[MAX_PLAYERS];
- new bool:eingeloggt[MAX_PLAYERS];
- new Ping[MAX_PLAYERS];
- #define GRÜN 0x00CC00FF
- #define REGISTER 1
- #define LOGIN 2
- #define CHANGE 3
- main()
- {
- print("\n----------------------------------");
- print(" Blank Gamemode by your name here");
- print("----------------------------------\n");
- }
- public OnGameModeInit()
- {
- Server = db_open("Server.db");
- db_query(Server,"CREATE TABLE IF NOT EXISTS `Accounts`(`Name`,`Password`)");
- SetGameModeText("Blank Script");
- AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
- Textdraw0 = TextDrawCreate(320.000000, 1.000000, "I");
- TextDrawAlignment(Textdraw0, 2);
- TextDrawBackgroundColor(Textdraw0, 255);
- TextDrawFont(Textdraw0, 1);
- TextDrawLetterSize(Textdraw0, 0.000000, 12.000000);
- TextDrawColor(Textdraw0, -1);
- TextDrawSetOutline(Textdraw0, 0);
- TextDrawSetProportional(Textdraw0, 1);
- TextDrawSetShadow(Textdraw0, 1);
- TextDrawUseBox(Textdraw0, 1);
- TextDrawBoxColor(Textdraw0, 255);
- TextDrawTextSize(Textdraw0, 0.000000, -664.000000);
- Textdraw1 = TextDrawCreate(320.000000, 112.000000, "I");
- TextDrawAlignment(Textdraw1, 2);
- TextDrawBackgroundColor(Textdraw1, 255);
- TextDrawFont(Textdraw1, 1);
- TextDrawLetterSize(Textdraw1, 0.000000, 3.000000);
- TextDrawColor(Textdraw1, -1);
- TextDrawSetOutline(Textdraw1, 0);
- TextDrawSetProportional(Textdraw1, 1);
- TextDrawSetShadow(Textdraw1, 1);
- TextDrawUseBox(Textdraw1, 1);
- TextDrawBoxColor(Textdraw1, 11730774);
- TextDrawTextSize(Textdraw1, 0.000000, -664.000000);
- Textdraw2 = TextDrawCreate(161.000000, 113.000000, "Hier dein Servername eintragen");
- TextDrawBackgroundColor(Textdraw2, 255);
- TextDrawFont(Textdraw2, 1);
- TextDrawLetterSize(Textdraw2, 0.600000, 2.000000);
- TextDrawColor(Textdraw2, -1);
- TextDrawSetOutline(Textdraw2, 0);
- TextDrawSetProportional(Textdraw2, 1);
- TextDrawSetShadow(Textdraw2, 1);
- Textdraw3 = TextDrawCreate(320.000000, 341.000000, "I");
- TextDrawAlignment(Textdraw3, 2);
- TextDrawBackgroundColor(Textdraw3, 255);
- TextDrawFont(Textdraw3, 1);
- TextDrawLetterSize(Textdraw3, 0.000000, 12.000000);
- TextDrawColor(Textdraw3, -1);
- TextDrawSetOutline(Textdraw3, 0);
- TextDrawSetProportional(Textdraw3, 1);
- TextDrawSetShadow(Textdraw3, 1);
- TextDrawUseBox(Textdraw3, 1);
- TextDrawBoxColor(Textdraw3, 255);
- TextDrawTextSize(Textdraw3, 0.000000, -664.000000);
- Textdraw4 = TextDrawCreate(48.000000, 161.000000, ">>Registration");
- TextDrawAlignment(Textdraw4, 2);
- TextDrawBackgroundColor(Textdraw4, 65535);
- TextDrawFont(Textdraw4, 1);
- TextDrawLetterSize(Textdraw4, 0.359999, 2.000000);
- TextDrawColor(Textdraw4, -131);
- TextDrawSetOutline(Textdraw4, 0);
- TextDrawSetProportional(Textdraw4, 1);
- TextDrawSetShadow(Textdraw4, 0);
- TextDrawUseBox(Textdraw4, 1);
- TextDrawBoxColor(Textdraw4, 113);
- TextDrawTextSize(Textdraw4, 0.000000, -100.000000);
- Textdraw5 = TextDrawCreate(30.000000, 211.000000, ">>Login");
- TextDrawAlignment(Textdraw5, 2);
- TextDrawBackgroundColor(Textdraw5, 65535);
- TextDrawFont(Textdraw5, 1);
- TextDrawLetterSize(Textdraw5, 0.359999, 2.000000);
- TextDrawColor(Textdraw5, -131);
- TextDrawSetOutline(Textdraw5, 0);
- TextDrawSetProportional(Textdraw5, 1);
- TextDrawSetShadow(Textdraw5, 0);
- TextDrawUseBox(Textdraw5, 1);
- TextDrawBoxColor(Textdraw5, 113);
- TextDrawTextSize(Textdraw5, 0.000000, -136.000000);
- Textdraw6 = TextDrawCreate(45.000000, 261.000000, ">>Changelog");
- TextDrawAlignment(Textdraw6, 2);
- TextDrawBackgroundColor(Textdraw6, 65535);
- TextDrawFont(Textdraw6, 1);
- TextDrawLetterSize(Textdraw6, 0.359999, 2.000000);
- TextDrawColor(Textdraw6, -131);
- TextDrawSetOutline(Textdraw6, 0);
- TextDrawSetProportional(Textdraw6, 1);
- TextDrawSetShadow(Textdraw6, 0);
- TextDrawUseBox(Textdraw6, 1);
- TextDrawBoxColor(Textdraw6, 113);
- TextDrawTextSize(Textdraw6, 0.000000, -106.000000);
- Textdraw7 = TextDrawCreate(578.000000, 161.000000, "I");
- TextDrawAlignment(Textdraw7, 2);
- TextDrawBackgroundColor(Textdraw7, 255);
- TextDrawFont(Textdraw7, 1);
- TextDrawLetterSize(Textdraw7, 0.000000, 13.100000);
- TextDrawColor(Textdraw7, -1);
- TextDrawSetOutline(Textdraw7, 0);
- TextDrawSetProportional(Textdraw7, 1);
- TextDrawSetShadow(Textdraw7, 1);
- TextDrawUseBox(Textdraw7, 1);
- TextDrawBoxColor(Textdraw7, 125);
- TextDrawTextSize(Textdraw7, 0.000000, -100.000000);
- Textdraw8 = TextDrawCreate(530.000000, 160.000000, "Statistiken:");
- TextDrawBackgroundColor(Textdraw8, 255);
- TextDrawFont(Textdraw8, 1);
- TextDrawLetterSize(Textdraw8, 0.500000, 1.000000);
- TextDrawColor(Textdraw8, -16777091);
- TextDrawSetOutline(Textdraw8, 0);
- TextDrawSetProportional(Textdraw8, 1);
- TextDrawSetShadow(Textdraw8, 1);
- Textdraw9 = TextDrawCreate(530.000000, 176.000000, "Name:~n~Ping:");
- TextDrawBackgroundColor(Textdraw9, 255);
- TextDrawFont(Textdraw9, 1);
- TextDrawLetterSize(Textdraw9, 0.3, 1.000000);
- TextDrawColor(Textdraw9, -1);
- TextDrawSetOutline(Textdraw9, 0);
- TextDrawSetProportional(Textdraw9, 1);
- TextDrawSetShadow(Textdraw9, 1);
- TextDrawSetSelectable(Textdraw4, 1);
- TextDrawSetSelectable(Textdraw5, 1);
- TextDrawSetSelectable(Textdraw6, 1);
- TextDrawTextSize(Textdraw4, 20.000000, 90.000000);
- TextDrawTextSize(Textdraw5, 20.000000, 90.000000);
- TextDrawTextSize(Textdraw6, 20.000000, 90.000000);
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- SetSpawnInfo(playerid,0,0,1958.3783, 1343.1572, 15.3746,0,0,0,0,0,0,0);
- SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
- SpawnPlayer(playerid);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- SetTimerEx("LoadAcc",15000,false,"i",playerid);
- SendClientMessage(playerid,GRÜN, "Account wird geladen!");
- return 1;
- }
- forward LoadAcc(playerid);
- public LoadAcc(playerid)
- {
- new pstr[128], name[MAX_PLAYER_NAME+1];
- GetPlayerName(playerid, name, sizeof(name));
- Ping[playerid] = GetPlayerPing(playerid);
- format(pstr,sizeof(pstr), "Name: %s~n~Ping: %i",name,Ping[playerid]);
- TextDrawSetString(Textdraw9,pstr);
- TextDrawShowForPlayer(playerid,Textdraw0);
- TextDrawShowForPlayer(playerid,Textdraw1);
- TextDrawShowForPlayer(playerid,Textdraw2);
- TextDrawShowForPlayer(playerid,Textdraw3);
- TextDrawShowForPlayer(playerid,Textdraw4);
- TextDrawShowForPlayer(playerid,Textdraw5);
- TextDrawShowForPlayer(playerid,Textdraw6);
- TextDrawShowForPlayer(playerid,Textdraw7);
- TextDrawShowForPlayer(playerid,Textdraw8);
- TextDrawShowForPlayer(playerid,Textdraw9);
- SelectTextDraw(playerid,GRÜN);
- return 1;
- }
- public OnPlayerDisconnect(playerid)
- {
- new /*str[256],*/ istr[128],name[MAX_PLAYER_NAME+1];
- GetPlayerName(playerid,name,sizeof(name));
- /* format(str,sizeof(str), "UPDATE `SET` `WERT1` = '%i' WHERE `NAME` = '%s'",Wert1,name);
- db_query(Server,str); */
- /*Kommentare entfernen, um Spieler zu speichern.. (Enum o.ä. sollte Vorher erstellt werden)*/
- format(istr,sizeof(istr),"%s hat den Server verlassen!",name);
- SendClientMessageToAll(-1,istr);
- return 1;
- }
- public OnPlayerText(playerid,text[])
- {
- if(eingeloggt[playerid] == false)
- {
- SendClientMessage(playerid,-1,"Du bist derzeit nicht eingeloggt!");
- }
- else if(eingeloggt[playerid] == true)
- {
- new str[128],name[MAX_PLAYER_NAME+1];
- GetPlayerName(playerid,name,sizeof(name));
- format(str,sizeof(str), "%s: %s",name,text);
- SendClientMessageToAll(-1,str);
- }
- return 0;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == LOGIN)
- {
- if(!response)return Kick(playerid);
- if(response)
- {
- new name[MAX_PLAYER_NAME+1], DBResult:Result, str[512],sstr[128],hashpass[129];
- GetPlayerName(playerid, name, sizeof(name));
- WP_Hash(hashpass, sizeof(hashpass),inputtext);
- format(str, sizeof(str), "SELECT * FROM `Accounts` where NAME = '%s' AND PASSWORD = '%s'", DB_Escape(name),hashpass);
- Result = db_query(Server,str);
- if(db_num_rows(Result) > 0)
- {
- SpawnPlayer(playerid);
- TextDrawHideForPlayer(playerid,Textdraw0);
- TextDrawHideForPlayer(playerid,Textdraw1);
- TextDrawHideForPlayer(playerid,Textdraw2);
- TextDrawHideForPlayer(playerid,Textdraw3);
- TextDrawHideForPlayer(playerid,Textdraw4);
- TextDrawHideForPlayer(playerid,Textdraw5);
- TextDrawHideForPlayer(playerid,Textdraw6);
- TextDrawHideForPlayer(playerid,Textdraw7);
- TextDrawHideForPlayer(playerid,Textdraw8);
- TextDrawHideForPlayer(playerid,Textdraw9);
- eingeloggt[playerid] = true;
- CancelSelectTextDraw(playerid);
- SendClientMessage(playerid,GRÜN, "Du hast dich erfolgreich eingeloggt!");
- //SpielerLaden Beispiel:
- //db_get_field_assoc(Result,"Admin",str,sizeof(str));
- //SpielerInfo[playerid][Adminlevel] = strval(str);
- //Verwendung mit Enum => if(SpielerInfo[playerid][Adminlevel] < 1)return SendClientMessage(playerid,-1, "Du bist kein Admin!");
- }
- else
- {
- ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_PASSWORD,"Login-fehlgeschlagen!", "Das Password stimmt nicht mit dem aus unserer Datenbank überein!\nBitte versuche es erneut!","Login","Abbrechen");
- LoginCount[playerid]++;
- format(sstr,sizeof(sstr), "Versuch: %i/3 - Solltest du 3 falsche Eingaben erreichen, wirst du automatisch gekickt!",LoginCount[playerid]);
- SendClientMessage(playerid,-1,sstr);
- if(LoginCount[playerid] == 3)return Kick(playerid);
- }
- db_free_result(Result);
- }
- }
- if(dialogid == REGISTER)
- {
- if(!response)return Kick(playerid);
- if(response)
- {
- if(strlen(inputtext) < 6 || strlen(inputtext) > 32)return SendClientMessage(playerid,-1,"Das Passwort muss mindestens 6-32 Zeichen haben!");
- new str[512],hashpass[129], name[MAX_PLAYER_NAME+1];
- GetPlayerName(playerid, name, sizeof(name));
- WP_Hash(hashpass,sizeof(hashpass),inputtext);
- format(str,sizeof(str),"INSERT INTO `Accounts`(`Name`,`Password`)VALUES('%s', '%s')",DB_Escape(name),hashpass);
- db_query(Server,str);
- TextDrawHideForPlayer(playerid,Textdraw0);
- TextDrawHideForPlayer(playerid,Textdraw1);
- TextDrawHideForPlayer(playerid,Textdraw2);
- TextDrawHideForPlayer(playerid,Textdraw3);
- TextDrawHideForPlayer(playerid,Textdraw4);
- TextDrawHideForPlayer(playerid,Textdraw5);
- TextDrawHideForPlayer(playerid,Textdraw6);
- TextDrawHideForPlayer(playerid,Textdraw7);
- TextDrawHideForPlayer(playerid,Textdraw8);
- TextDrawHideForPlayer(playerid,Textdraw9);
- eingeloggt[playerid] = true;
- CancelSelectTextDraw(playerid);
- SendClientMessage(playerid, GRÜN, "Dein Account wurde angelegt!");
- SpawnPlayer(playerid);
- }
- }
- return 1;
- }
- public OnPlayerClickTextDraw(playerid, Text:clickedid)
- {
- if(clickedid == Textdraw4)
- {
- new str[512],lstr[128],rstr[128],DBResult:Result, name[MAX_PLAYER_NAME+1];
- GetPlayerName(playerid, name, sizeof(name));
- format(lstr, sizeof(lstr), "{FFFFFF}Der Account (({33FF33}%s{FFFFFF})) wurde gefunden!\nDu kannst dich nun mit deinem Password einloggen!",name);
- format(rstr, sizeof(rstr), "{FFFFFF}Der Account (({FF0000}%s{FFFFFF})) wurde nicht gefunden!\nBitte registriere dich zunächst!",name);
- format(str,sizeof(str), "SELECT * FROM `Accounts` WHERE `Name` = '%s'",DB_Escape(name));
- Result = db_query(Server,str);
- if(db_num_rows(Result) > 0)
- {
- ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_PASSWORD,"Login",lstr,"Login", "Abbrechen");
- }
- else
- {
- ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_PASSWORD, "Register", rstr,"Registrieren","Abbrechen");
- }
- db_free_result(Result);
- return 1;
- }
- if(clickedid == Textdraw5)
- {
- new str[128],rstr[128],lstr[128],DBResult:Result,name[MAX_PLAYER_NAME+1];
- GetPlayerName(playerid, name, sizeof(name));
- format(lstr, sizeof(lstr), "{FFFFFF}Der Account (({33FF33}%s{FFFFFF})) wurde gefunden!\nDu kannst dich nun mit deinem Password einloggen!",name);
- format(rstr, sizeof(rstr), "{FFFFFF}Der Account (({FF0000}%s{FFFFFF})) wurde nicht gefunden!\nBitte registriere dich zunächst!",name);
- format(str,sizeof(str),"SELECT * FROM `Accounts` WHERE `Name` = '%s'",DB_Escape(name));
- Result = db_query(Server,str);
- if(db_num_rows(Result) > 0)
- {
- ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_PASSWORD,"Login", lstr,"Login", "Abbrechen");
- }
- else
- {
- ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_PASSWORD,"Register",rstr,"Registrieren", "Abbrechen");
- }
- db_free_result(Result);
- return 1;
- }
- if(clickedid == Textdraw6)
- {
- ShowPlayerDialog(playerid,CHANGE,DIALOG_STYLE_MSGBOX, "Changelog 1.0", "Info\nInfo\nInfo!","OK","");
- return 1;
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement