Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <a_mysql> // SQL Include
- /* - PF: Public Forward -
- Places the global public and forward all in one.
- Inestead of using more lines of code then needed.
- */
- #define PF:%0(%1) forward %0(%1); \
- public %0(%1)
- /* DIALOGS */
- #define D_REG 1000
- #define DIALOG_REGISTER 1100
- #define DIALOG_LOGIN 1200
- /* COLOR DEFINES */
- #define C_YELLOW 0xFFFF00FF
- #define C_WHITE 0xFFFFFFAA
- // LOCAL DATABASE
- #define mysql_host "localhost" //
- #define mysql_user "root" //
- #define mysql_password "" //
- #define mysql_database "playerdata"
- new Text:ServerText2;
- new MoneyGiven[MAX_PLAYERS];
- new bool: Logged[MAX_PLAYERS] = false;
- new IsRegistered[MAX_PLAYERS];
- /* ENUM'S */
- /* PLAYER STATISTICS */
- enum PlayerStats
- {
- N_Admin,
- N_Kills,
- N_Deaths,
- N_Rank,
- N_Vehicle,
- N_Rounds,
- N_Gun,
- Text3D:Nametag
- }
- new P_Info[MAX_PLAYERS][PlayerStats];
- main()
- {
- print("\n----------------------------------");
- print(" Intense Roleplay - by Lynn");
- print("----------------------------------\n");
- }
- public OnGameModeInit()
- {
- SetGameModeText("I:RP");
- AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
- mysql_debug(1); // If there is a issue with SQL, this will report it.
- mysql_connect(mysql_host, mysql_user, mysql_database, mysql_password); // Connects to our Database
- mysql_query("CREATE TABLE IF NOT EXISTS playerdata(user VARCHAR(24), password VARCHAR(41), score INT(20), money INT(20), IP VARCHAR(16) )");
- ServerText2 = TextDrawCreate(167.000000, 16.000000, "Intense Roleplay");
- TextDrawBackgroundColor(ServerText2, -1);
- TextDrawFont(ServerText2, 0);
- TextDrawLetterSize(ServerText2, 1.000000, 5.000000);
- TextDrawColor(ServerText2, 255);
- TextDrawSetOutline(ServerText2, 1);
- TextDrawSetProportional(ServerText2, 1);
- return 1;
- }
- PF:OnGameModeExit()
- {
- TextDrawHideForAll(ServerText2);
- TextDrawDestroy(ServerText2);
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- SetPlayerHealth(playerid, 100);
- SetPlayerSkin(playerid, 299);
- SetPlayerPos(playerid, 1111.4846,-2037.5078,74.4297);
- SetPlayerFacingAngle(playerid, 0.00);
- SetPlayerInterior(playerid, 0);
- SetPlayerVirtualWorld(playerid, 0);
- InterpolateCameraLookAt(playerid, 1123.4022,-2037.4523,69.8870,2162.6526,-1566.7651,102.1234, 50000);
- InterpolateCameraPos(playerid, 1126.9851,-2037.2881,69.8835,2162.6526,-1566.7651,102.1234, 50000, CAMERA_MOVE);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- P_Info[playerid][N_Admin] = 0;
- P_Info[playerid][N_Kills] = 0;
- P_Info[playerid][N_Deaths] = 0;
- P_Info[playerid][N_Rank] = 0;
- P_Info[playerid][N_Vehicle] = 0;
- P_Info[playerid][N_Rounds] = 0;
- P_Info[playerid][N_Gun] = 0;
- MoneyGiven[playerid] = -1;
- new query[200], pname[24];
- GetPlayerName(playerid, pname, 24);
- format(query, sizeof(query), "SELECT IP FROM `playerdata` WHERE user = '%s' LIMIT 1", pname);
- mysql_query(query);
- mysql_store_result();
- if(!mysql_num_rows()) // or if(mysql_num_rows() == 0)
- {
- ShowPlayerDialog(playerid, 15000, DIALOG_STYLE_INPUT, "Register","This account is unregistered.\nInput desired password below.","Register","Cancel"); //Shows our register dialog :).
- }
- else
- {
- new IP[2][16];
- mysql_fetch_field_row(IP[0],"IP");
- GetPlayerIp(playerid, IP[1], 16);
- if(strlen(IP[0]) != 0 && !strcmp(IP[0], IP[1], true))
- {
- MySQL_Login(playerid);
- }
- else
- {
- ShowPlayerDialog(playerid, 15500, DIALOG_STYLE_INPUT, "Login","This account is registered.\nPlease Login input your login credentials.","Login","Cancel"); //Shows our login dialog :).
- IsRegistered[playerid] = 1;
- }
- }
- mysql_free_result();
- SetPlayerColor(playerid, C_WHITE);
- SendClientMessage(playerid, C_YELLOW, " *** NOTICE: Player accounts are frequently delete during Beta-Stage.");
- SetPlayerSkillLevel(playerid, 6, 100);
- TextDrawShowForPlayer(playerid, ServerText2);
- SetPlayerHealth(playerid, 100);
- return 1;
- }
- PF: OnPlayerDisconnect(playerid, reason)
- {
- if(Logged[playerid] == true)
- {
- new query[200], pname[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pname, sizeof(pname));
- format(query, sizeof(query), "UPDATE playerdata SET score=%d, money=%d WHERE user='%s'", GetPlayerScore(playerid), GetPlayerMoney(playerid), pname);
- mysql_query(query);
- }
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- if(MoneyGiven[playerid] != -1)
- {
- GivePlayerMoney(playerid, MoneyGiven[playerid]);
- MoneyGiven[playerid] = -1;
- }
- // ShowPlayerDialog(playerid, D_REG, DIALOG_STYLE_LIST, "{FFFFFF}Gender Selection", "{F3FF02}Male\n{F3FF02}Female", #Select, #Quit);
- TextDrawHideForPlayer(playerid, ServerText2);
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if (strcmp("/mycommand", cmdtext, true, 10) == 0)
- {
- // Do something here
- return 1;
- }
- return 0;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- if(!Logged[playerid])
- {
- if(!IsRegistered[playerid])
- {
- ShowPlayerDialog(playerid, 15000, DIALOG_STYLE_INPUT, "Register","This account is unregistered.\nInput desired password below.","Register","Cancel");
- return 0;
- }
- if(IsRegistered[playerid] == 1)
- {
- ShowPlayerDialog(playerid, 15500, DIALOG_STYLE_INPUT, "Login","This account is registered.\nPlease Login input your login credentials.","Login","Cancel");
- return 0;
- }
- }
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == 15000) // register dialog
- {
- if(response)
- {
- if(!(1 <= strlen(inputtext) <= 100))
- {
- SendClientMessage(playerid, -1, "You must insert a password between 1-100 characters!");
- ShowPlayerDialog(playerid, 15000, DIALOG_STYLE_INPUT, "Register","This account is unregistered.\nInput desired password below.","Register","Cancel");
- }
- else
- {
- new escpass[100];
- mysql_real_escape_string(inputtext, escpass);
- MySQL_Register(playerid, escpass);
- }
- }
- if(!response)
- {
- SendClientMessage(playerid, -1, "You may not proceed until you register your account in our system.");
- ShowPlayerDialog(playerid, 15000, DIALOG_STYLE_INPUT, "Register","This account is unregistered.\nInput desired password below.","Register","Cancel");
- }
- }
- if(dialogid == 15500) //Dialog login
- {
- if(!response)
- {
- SendClientMessage(playerid, -1, "Please login before proceeding.");
- ShowPlayerDialog(playerid, 15500, DIALOG_STYLE_INPUT, "Login","This account is registered.\nPlease Login input your login credentials.","Login","Cancel");
- }
- else
- {
- new query[200], pname[24], escapepass[100]; //
- GetPlayerName(playerid, pname, 24);
- mysql_real_escape_string(inputtext, escapepass);
- format(query, sizeof(query), "SELECT `user` FROM playerdata WHERE user = '%s' AND password = SHA1('%s')", pname, escapepass);
- mysql_query(query);
- mysql_store_result();
- new numrows = mysql_num_rows();
- if(numrows == 1) MySQL_Login(playerid);
- if(!numrows)
- {
- ShowPlayerDialog(playerid, 15500, DIALOG_STYLE_INPUT, "Login","This account is registered.\nPlease Login input your login credentials.","Login","Cancel");
- SendClientMessage(playerid, -1, "ERROR: Invalid password entry.");
- }
- mysql_free_result();
- }
- }
- if(dialogid == D_REG)
- {
- if(!response) Kick(playerid);
- else
- {
- switch(listitem)
- {
- case 0: ShowPlayerDialog(playerid, D_REG+1, DIALOG_STYLE_INPUT, "{FFFFFF}Character Age Selection", " {F3FF02}Input your desired In-game age. ( 1 - 80 ) ", #Select, #Quit);
- case 1: ShowPlayerDialog(playerid, D_REG+1, DIALOG_STYLE_INPUT, "{FFFFFF}Character Age Selection", " {F3FF02}Input your desired In-game age. ( 1 - 80 ) ", #Select, #Quit);
- }
- }
- }
- if(dialogid == D_REG+1)
- {
- if(!response) Kick(playerid);
- else
- {
- ShowPlayerDialog(playerid, D_REG+2, DIALOG_STYLE_MSGBOX, "{FFFFFF}I:RP Information", "{F3FF02}Welcome to I:RP.\n{F3FF02}We look forward to your time with us.\n{F3FF02}Please register at www.Intense-rp.com", #Select, #Quit);
- }
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- /* STOCK GLOBALS */
- stock MySQL_Register(playerid, passwordstring[])
- {
- new query[200], pname[24], IP[16];
- GetPlayerName(playerid, pname, 24);
- GetPlayerIp(playerid, IP, 16);
- format(query, sizeof(query), "INSERT INTO playerdata (user, password, score, money, IP) VALUES('%s', SHA1('%s'), 0, 0, '%s')", pname, passwordstring, IP);
- mysql_query(query);
- SendClientMessage(playerid, -1, "Your account has been registered.");
- Logged[playerid] = true;
- return 1;
- }
- stock MySQL_Login(playerid)
- {
- new query[300], pname[24], savingstring[20];
- GetPlayerName(playerid, pname, 24);
- format(query, sizeof(query), "SELECT * FROM playerdata WHERE user = '%s'", pname);
- mysql_query(query);
- mysql_store_result();
- while(mysql_fetch_row_format(query,"|"))
- {
- mysql_fetch_field_row(savingstring, "score"); SetPlayerScore(playerid, strval(savingstring));
- mysql_fetch_field_row(savingstring, "money"); MoneyGiven[playerid] = strval(savingstring);
- }
- mysql_free_result();
- SendClientMessage(playerid, -1, "Your account is now logged in.");
- Logged[playerid] = true;
- return 1;
- }
- stock pName(playerid)
- {
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid,name,sizeof(name));
- strreplacee(name, '_', ' ');
- return name;
- }
- stock strreplacee(string[], find, replace)
- {
- for(new i=0; string[i]; i++)
- {
- if(string[i] == find)
- {
- string[i] = replace;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment