Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Selfmade by Aerox
- /*
- Payday System []
- Makeleader Befehl []
- Invite Befehl []
- */
- native WP_Hash(buffer[], len, const str[]);//Passwort Verschlüsselung
- #include <a_samp>
- #include <sscanf2>
- #include <zcmd>
- #include <MYSQL_R39-2>
- #include <streamer>
- //MySQL Daten
- #define SQL_HOST "localhost"
- #define SQL_DB "samp"
- #define SQL_USER "samp"
- #define SQL_PASS "hallo"
- //MySQL Daten
- #define SCRIPT_VERSION "v0.1"
- #define FORUM_ADRESSE "www.nl-rp.de"
- #define TS_IP "195.4.16.1:10021"
- //FARBEN
- #define WHITE 0xFFFFFFAA
- #define GREY 0xAFAFAFAA
- #define RED 0xFF0000AA
- #define YELLOW 0xFFFF00AA
- #define LIGHTBLUE 0x33CCFFAA
- //HTTML FARBEN
- #define CHAT_WHITE "{FFFFFF}"
- #define CHAT_GREY "{AFAFAF}"
- #define CHAT_RED "{FF0000}"
- #define CHAT_YELLOW "{FFFF00}"
- #define CHAT_LIGHTBLUE "{33CCFF}"
- forward OnPlayerDataLoaded(playerid, race_check);
- forward OnPlayerRegister(playerid);
- forward SetConnect(playerid);
- //MySQL connection handle
- new g_SQL = -1;
- //News Definierungen
- new Text:lbt,
- Text:lbb
- ;
- //Spielerdaten
- enum E_PLAYERS
- {
- ID,
- Name[MAX_PLAYER_NAME],
- Password[129],
- Money,
- bool:IsLoggedIn,
- bool:IsRegistered,
- LoginAttempts,
- LoginTimer,
- RPunkte,
- TPayDay,
- AllTime
- };
- new Player[MAX_PLAYERS][E_PLAYERS];
- new g_MysqlRaceCheck[MAX_PLAYERS];
- //Dialoge
- enum
- {
- DIALOG_INVALID,
- DIALOG_UNUSED,
- DIALOG_LOGIN,
- DIALOG_REGISTER,
- };
- public OnGameModeInit()
- {
- g_SQL = mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS);
- SetGameModeText("GermanRP "#SCRIPT_VERSION"");//sversion
- return 1;
- }
- public OnGameModeExit()
- {
- //save all player data before closing connection
- for(new p=0; p < MAX_PLAYERS; ++p)
- if(IsPlayerConnected(p))
- Spielerspeichern(p);
- mysql_close();
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- g_MysqlRaceCheck[playerid]++;
- //reset player data
- for(new E_PLAYERS:e; e < E_PLAYERS; ++e)
- Player[playerid][e] = 0;
- new query[128];
- GetPlayerName(playerid, Player[playerid][Name], MAX_PLAYER_NAME);
- mysql_format(g_SQL, query, sizeof(query), "SELECT * FROM `accounts` WHERE `username` = '%e'", Player[playerid][Name]);
- mysql_tquery(g_SQL, query, "OnPlayerDataLoaded", "dd", playerid, g_MysqlRaceCheck[playerid]);
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- SetConnect(playerid);
- InterpolateCameraPos(playerid, 2612.188964, -1724.707641, 35.576946, 885.751525, -1180.319091, 119.702941, 13000);
- InterpolateCameraLookAt(playerid, 2607.377197, -1724.824340, 34.222969, 890.731201, -1180.758789, 119.801803, 13000);
- PlayAudioStreamForPlayer(playerid,"http://vu2013.admin.hostingforfree.de/IntromusikServer.mp3");
- TextDrawShowForPlayer(playerid,lbb);//Schwarze BALKEN BEI LOGIN OBEN / UNTEN
- TextDrawShowForPlayer(playerid,lbt);//Schwarze BALKEN BEI LOGIN OBEN / UNTEN
- return 1;
- }
- public SetConnect(playerid)
- {
- TogglePlayerSpectating(playerid,1);
- return 1;
- }
- public OnPlayerDataLoaded(playerid, race_check)
- {
- if(race_check != g_MysqlRaceCheck[playerid])
- return Kick(playerid);
- new string[128];
- if(cache_num_rows() > 0)
- {
- Spielerladen(playerid);
- format(string, sizeof(string), CHAT_WHITE "Dieser Account (" CHAT_YELLOW "%s" CHAT_WHITE ") ist bereits registriert. Gebe einfach dein Passwort ein um dich einzuloggen", Player[playerid][Name]);
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", string, "Login", "Abbrechen");
- Player[playerid][IsRegistered] = true;
- }
- else
- {
- format(string, sizeof(string), CHAT_WHITE "Willkommen " CHAT_YELLOW "%s" CHAT_WHITE ", du kannst dich nun mit einem Passwort registrieren:", Player[playerid][Name]);
- ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Anmeldung", string, "Registrieren", "Abbrechen");
- Player[playerid][IsRegistered] = false;
- }
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == DIALOG_INVALID || dialogid == DIALOG_UNUSED)
- return 1;
- switch(dialogid)
- {
- case DIALOG_LOGIN:
- {
- if(!response)
- return Kick(playerid);
- if(strlen(inputtext) <= 5)
- return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login",
- CHAT_RED "Dein Passwort muss mindestens 5 Zeichen besitzen!\n" CHAT_WHITE "Gebe dein Passwort in das Feld ein:",
- "Login", "Abbrechen");
- new hashed_pass[129];
- WP_Hash(hashed_pass, sizeof(hashed_pass), inputtext);
- if(strcmp(hashed_pass, Player[playerid][Password]) == 0)
- {
- ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_MSGBOX, "Login", "Du hast dich erfolgreich eingeloggt.", "Ok", "");
- Player[playerid][IsLoggedIn] = true;
- SetSpawnInfo(playerid, 0, 0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
- SpawnPlayer(playerid);
- }
- else
- {
- Player[playerid][LoginAttempts]++;
- if(Player[playerid][LoginAttempts] >= 3)
- {
- ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_MSGBOX, "Login", CHAT_RED "Du hast dein Passwort zu oft Falsch eingegeben(3 x).", "Ok", "");
- DelayedKick(playerid);
- }
- else
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", CHAT_RED "Wrong password!\n" CHAT_WHITE "Gebe dein Passwort in das Feld ein:", "Login", "Abbrechen");
- }
- }
- case DIALOG_REGISTER:
- {
- if(!response)
- return Kick(playerid);
- if(strlen(inputtext) <= 5)
- return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Anmeldung",
- CHAT_RED "Dein Passwort muss mindestens 5 Zeichen besitzen!\n" CHAT_WHITE "Gebe dein Passwort in das Feld ein:",
- "Registrieren", "Abbrechen");
- new query[256];
- WP_Hash(Player[playerid][Password], 129, inputtext);
- mysql_format(g_SQL, query, sizeof(query), "INSERT INTO `accounts` (`username`, `password`) VALUES ('%e', '%s')", Player[playerid][Name], Player[playerid][Password]);
- mysql_tquery(g_SQL, query, "OnPlayerRegister", "d", playerid);
- }
- default:
- return 0;
- }
- return 1;
- }
- public OnPlayerRegister(playerid)
- {
- Player[playerid][ID] = cache_insert_id();
- ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_MSGBOX, "Anmeldung", "Account erfolgreich registriert, du wurdest automatisch eingeloggt.", "Ok", "");
- Player[playerid][IsLoggedIn] = true;
- Player[playerid][IsRegistered] = true;
- SetSpawnInfo(playerid, 0, 0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
- SpawnPlayer(playerid);
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- TogglePlayerSpectating(playerid,0);//setconnect function
- ResetPlayerMoney(playerid);
- GivePlayerMoney(playerid, Player[playerid][Money]);
- return 1;
- }
- public OnPlayerDisconnect(playerid,reason)
- {
- g_MysqlRaceCheck[playerid]++;
- Spielerspeichern(playerid);
- return 1;
- }
- Spielerladen(playerid)
- {
- Player[playerid][ID] = cache_get_field_content_int(0, "id");
- cache_get_field_content(0, "password", Player[playerid][Password], g_SQL, 129);
- Player[playerid][Money] = cache_get_field_content_int(0, "money");
- Player[playerid][RPunkte] = cache_get_field_content_int(0,"RPunkte");
- Player[playerid][TPayDay] = cache_get_field_content_int(0,"TPayDay");
- Player[playerid][AllTime] = cache_get_field_content_int(0,"AllTime");
- SetTimerEx("OnPlayerPayDay",1000*60,1,"i",playerid);
- return 1;
- }
- Spielerspeichern(playerid)
- {
- if(Player[playerid][IsLoggedIn] == false)
- return 0;
- new query[128];
- mysql_format(g_SQL, query, sizeof(query), "UPDATE `accounts` SET `money` = '%d',`RPunkte`='%i',`TPayDay`='%i',`AllTime`='%i' WHERE `id` = '%d'", Player[playerid][Money],Player[playerid][RPunkte],Player[playerid][TPayDay],Player[playerid][AllTime], Player[playerid][ID]);
- mysql_tquery(g_SQL, query);
- return 1;
- }
- DelayedKick(playerid, time=500)
- {
- SetTimerEx("_KickPlayerDelayed", time, false, "d", playerid);
- return 1;
- }
- forward OnPlayerPayDay(playerid);
- public OnPlayerPayDay(playerid)
- {
- Player[playerid][TPayDay] ++;
- Player[playerid][AllTime] ++;
- if(Player[playerid][TPayDay] == 60)
- {
- //PayDay
- Player[playerid][RPunkte] ++;
- Player[playerid][TPayDay] = 0;
- switch(Player[playerid][RPunkte])
- {
- case 2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100:
- {
- SetPlayerScore(playerid,Player[playerid][RPunkte] / 2);
- }
- }
- }
- return 1;
- }
- forward _KickPlayerDelayed(playerid);
- public _KickPlayerDelayed(playerid)
- {
- Kick(playerid);
- return 1;
- }
- main() {}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement