Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <a_mysql>
- #include <zcmd>
- #include <sscanf2>
- /* MySQL Connection */
- #define MySQL_Hostname "localhost" //This will be your mysql host. Default for xampp is localhost
- #define MySQL_Username "root" //This will be your mysql username. Default for xampp is root
- #define MySQL_Database "genx" //This is your database name. Remember we have created a database called server before.
- #define MySQL_Password "" //This is your mysql password. In xampp, the password didn't set. So leave it empty.
- /* Dialog Definition */
- #define DIALOG_REGISTER 1
- #define DIALOG_LOGIN 2
- /* Colour Definition */
- #define COLOR_WHITE 0xFFFFFFAA
- #define WHITE "{FFFFFF}"
- #define COLOR_GREY 0xAFAFAFAA
- #define GREY "{AFAFAA}"
- #define COLOR_LIGHTBLUE 0x33CCFFAA
- #define LIGHTBLUE "{CCFFAA}"
- #define COLOR_RED 0xAA3333AA
- #define RED "{FF0000}"
- /* Starter Accounts */
- #define starterCash 400
- /* Server Definitions */
- #define ServerName "Generation X Roleplay"
- #define GameMode "GenX:RP"
- #define GameVersion "v1.0"
- /* End of Definitions */
- static dbHandle;
- new firstPlayers = 10;
- native WP_Hash(buffer[], len, const str[]); //Whirlpool
- enum PlayerData
- {
- ID,
- Name[MAX_PLAYER_NAME],
- Password[129],
- Cash
- }
- new PlayerInfo[MAX_PLAYERS][PlayerData];
- main()
- {
- }
- public OnGameModeInit()
- {
- // Don't use these lines if it's a filterscript
- new string[126];
- format(string, sizeof(string), "%s %s", GameMode, GameVersion);
- SetGameModeText(string);
- format(string, sizeof(string), "hostname %s", ServerName);
- SendRconCommand(string);
- AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
- mysql_log(LOG_ERROR | LOG_WARNING | LOG_DEBUG);
- dbHandle = mysql_connect(MySQL_Hostname, MySQL_Username, MySQL_Database, MySQL_Password);
- if(mysql_errno(dbHandle) != 0)
- {
- printf("[-- Could not establish a MySQL connection! --]");
- }
- else
- {
- printf("[-- Established a successful MySQL connection! --]");
- }
- return 1;
- }
- public OnGameModeExit()
- {
- mysql_close(dbHandle);
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- if(dbHandle)
- {
- new query[128];
- GetPlayerName(playerid, PlayerInfo[playerid][Name], MAX_PLAYER_NAME);
- mysql_format(dbHandle, query, sizeof(query), "SELECT `ID`, `Name` FROM `players` WHERE `Name` = '%s' LIMIT 1", PlayerInfo[playerid][Name]);
- mysql_tquery(dbHandle, query, "CheckAccount", "i", playerid);
- }
- else
- {
- SendClientMessage(playerid, COLOR_RED, "Error"WHITE": Could not establish a connection to our server.");
- Kick(playerid);
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- SaveAccount(playerid);
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if (strcmp("/mycommand", cmdtext, true, 10) == 0)
- {
- // Do something here
- return 1;
- }
- return 0;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnRconCommand(cmd[])
- {
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- return 1;
- }
- public OnObjectMoved(objectid)
- {
- return 1;
- }
- public OnPlayerObjectMoved(playerid, objectid)
- {
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- return 1;
- }
- public OnVehicleMod(playerid, vehicleid, componentid)
- {
- return 1;
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- return 1;
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- return 1;
- }
- public OnPlayerSelectedMenuRow(playerid, row)
- {
- return 1;
- }
- public OnPlayerExitedMenu(playerid)
- {
- return 1;
- }
- public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
- {
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- return 1;
- }
- public OnRconLoginAttempt(ip[], password[], success)
- {
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- return 1;
- }
- public OnPlayerStreamIn(playerid, forplayerid)
- {
- return 1;
- }
- public OnPlayerStreamOut(playerid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamIn(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamOut(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if (dialogid == 0)
- {
- if (response)
- {
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, ""LIGHTBLUE"GX:RP - Citizen Login", ""WHITE"Welcome back!\nYour account has been detected as registered.\nPlease fill in your password:", "Login", "Quit");
- }
- }
- else if (dialogid == DIALOG_REGISTER)
- {
- if (response)
- {
- if(strlen(inputtext) < 11 || strlen(inputtext) > 29 )
- {
- ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, ""LIGHTBLUE"GX:RP - Immigration Office", ""RED"Your password must be between 11 and 29 characters long."WHITE"\nYour account has not been registered.\nPlease choose and enter a password:", "Register", "Quit");
- }
- else
- {
- new query[300];
- WP_Hash(PlayerInfo[playerid][Password], 129, inputtext);
- mysql_format(dbHandle, query, sizeof(query), "INSERT INTO `players` (`Name`, `Password`, `Cash`) VALUES ('%s', '%s', %d)", PlayerInfo[playerid][Name], PlayerInfo[playerid][Password], starterCash);
- mysql_tquery(dbHandle, query, "RegisterAccount", "i", playerid);
- }
- }
- else
- {
- Kick(playerid);
- }
- }
- else if (dialogid == DIALOG_LOGIN)
- {
- new hashpass[129], query[50];
- new pname[MAX_PLAYER_NAME];
- if (response)
- {
- GetPlayerName(playerid, pname, sizeof(pname));
- WP_Hash(hashpass, sizeof(hashpass), inputtext);
- if(!strcmp(hashpass, PlayerInfo[playerid][Password]))
- {
- mysql_format(dbHandle, query, sizeof(query), "SELECT * FROM `players` WHERE `Name` = '%e' LIMIT 1", pname);
- mysql_tquery(dbHandle, query, "LoadAccount", "i", playerid);
- }
- else
- {
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, ""LIGHTBLUE"GX:RP - Citizen Login", ""RED"You have entered an invalid password!\n"WHITE"Your account has been detected as registered.\nPlease fill in your password:", "Login", "Quit");
- }
- }
- else
- {
- Kick(playerid);
- }
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- forward CheckAccount(playerid);
- public CheckAccount(playerid)
- {
- new rows, fields;
- cache_get_data(rows, fields, dbHandle);
- if(rows)
- {
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, ""LIGHTBLUE"GX:RP - Citizen Login", ""WHITE"Welcome back!\nYour account has been detected as registered.\nPlease fill in your password:", "Login", "Quit");
- }
- else
- {
- ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, ""LIGHTBLUE"GX:RP - Immigration Office", ""WHITE"Welcome!\nYour account has not been registered.\nPlease choose and enter a password:", "Register", "Quit");
- }
- return 1;
- }
- forward RegisterAccount(playerid);
- public RegisterAccount(playerid)
- {
- PlayerInfo[playerid][ID] = cache_insert_id();
- ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, ""LIGHTBLUE"GX:RP - Registration Successful", ""WHITE"The registration progress is complete.\nYou will now be taken to the citizen login.", "Continue", "");
- return 1;
- }
- forward LoadAccount(playerid);
- public LoadAccount(playerid)
- {
- PlayerInfo[playerid][ID] = cache_insert_id();
- cache_get_field_content(1, "Name", PlayerInfo[playerid][Name]);
- cache_get_field_content(2, "Password", PlayerInfo[playerid][Password]);
- PlayerInfo[playerid][Cash] = cache_get_field_content_int(3, "Cash");
- SetSpawnInfo( playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0 );
- SpawnPlayer(playerid);
- return 1;
- }
- stock playerName(name[MAX_PLAYER_NAME])
- {
- for(new i; i < MAX_PLAYER_NAME; i++)
- {
- if(name[i] == '_') name[i] = ' ';
- }
- return name;
- }
- forward SaveAccount(playerid);
- public SaveAccount(playerid)
- {
- new query[126];
- mysql_format(dbHandle, query, sizeof(query), "UPDATE `players` SET `Name`='%s', `Password`='%s', `Cash`=%d", PlayerInfo[playerid][Name], PlayerInfo[playerid][Password], GetPlayerMoney(playerid));
- mysql_tquery(dbHandle, query, "RegisterAccount", "i", playerid);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment