Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //---------------------------- Includes ----------------------------------------
- #include <a_samp>
- #include <sscanf2>
- #include <streamer>
- #include <zcmd>
- #include <foreach>
- #include <a_mysql>
- native WP_Hash(buffer[], len, const str[]);
- #define COLOR_RED 0xFF0000AA
- #define COLOR_BLUE 0x0000BBAA
- #define COLOR_YELLOW 0xFFFF00AA
- #define COLOR_TOMATO 0xFF6347AA
- #define COLOR_WHITE 0xFFFFFFAA
- #define COLOR_ORANGE 0xFF9900AA
- #define COLOR_GREY 0xAFAFAFAA
- #define COLOR_GREEN 0x33AA33AA
- #define COLOR_PINK 0xFFC0CBAA
- #define DIALOG_LOGIN 1
- #define DIALOG_REGISTER 2
- #define DIALOG_STATS 3
- //enumeration where you store your player data / any data.
- enum playerInfo
- {
- ID,
- Name[MAX_PLAYER_NAME],
- Password[129], // let it be 129, don't change it
- Score,
- Money,
- Kills,
- Deaths,
- Admin,
- VIP
- };
- new PlayerData[MAX_PLAYERS][playerInfo];
- /*Tables
- CREATE TABLE IF NOT EXISTS `player` (`id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,`name` varchar(25),`password` varchar(129),`score` int(11) NOT NULL DEFAULT '0',`money` int(11) NOT NULL DEFAULT '0',`kills` int(11) NOT NULL DEFAULT '0',`deaths` int(11) NOT NULL DEFAULT '0',`admin` int(11) NOT NULL DEFAULT '0',`vip` int(11) NOT NULL DEFAULT '0' */
- //SQL
- new PlayerIsLogged[MAX_PLAYERS];
- new connection = -1;
- main()
- {
- print("\n==================================");
- print(" MYSQL BASES GAMEMODE ");
- print(" By ZigGamerX And Jithu ");
- print(" 2018 ");
- print("==================================\n");
- }
- public OnGameModeInit()
- {
- //Enable/Disables & Others
- SetGameModeText("Blank");
- //MYSQL
- mysql_log(LOG_ERROR | LOG_WARNING, LOG_TYPE_HTML); // for checking logs
- connection = mysql_connect("localhost", "name", "db", "password");
- "CREATE TABLE IF NOT EXISTS `player` (`id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,`name` varchar(25),`password` varchar(129),`score` int(11) NOT NULL DEFAULT '0',`money` int(11) NOT NULL DEFAULT '0',`kills` int(11) NOT NULL DEFAULT '0',`deaths` int(11) NOT NULL DEFAULT '0',`admin` int(11) NOT NULL DEFAULT '0',`vip` int(11) NOT NULL DEFAULT '0'";
- return 1;
- }
- public OnGameModeExit()
- {
- for(new i = 0; i < MAX_PLAYERS; i++) // loop ahhh fucking part
- {
- OnPlayerDisconnect(i, 1); // it will be like the player is disconnecting.
- }
- mysql_close(connection); // closes the connection handle
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- //Reset player's stats for evading bugs
- PlayerData[playerid][Score] = 0;
- PlayerData[playerid][Money] = 0;
- PlayerData[playerid][Kills] = 0;
- PlayerData[playerid][Deaths] = 0;
- PlayerData[playerid][Admin] = 0;
- PlayerData[playerid][VIP] = 0;
- new query[128];
- GetPlayerName(playerid, PlayerData[playerid][Name], MAX_PLAYER_NAME);
- // SELECT * FROM `tablename` WHERE `string` = '%e' , %e can be used only in MySQL.
- mysql_format(connection, query, sizeof(query), "SELECT * FROM `player` WHERE `name` = '%e' LIMIT 1", PlayerData[playerid][Name]);
- mysql_tquery(connection, query, "OnAccountCheck", "i", playerid); // function , mysql_tquery(connection handle, variable, function name, params, ....);
- PlayerIsLogged[playerid] = 0;
- return 1;
- }
- forward OnAccountCheck(playerid); // creating public function
- public OnAccountCheck(playerid)
- {
- if(cache_num_rows() > 0) // This means that ' The data exists ', ' if(cache_num_rows() > 0) means if the data exists in the table
- {
- PlayerData[playerid][ID] = cache_get_field_content_int(0, "id");
- cache_get_field_content(0, "password", PlayerData[playerid][Password], connection, 129);
- PlayerData[playerid][Score] = cache_get_field_content_int(0, "score");
- PlayerData[playerid][Money] = cache_get_field_content_int(0, "money");
- PlayerData[playerid][Kills] = cache_get_field_content_int(0, "kills");
- PlayerData[playerid][Deaths] = cache_get_field_content_int(0, "deaths");
- PlayerData[playerid][Admin] = cache_get_field_content_int(0, "admin");
- PlayerData[playerid][VIP] = cache_get_field_content_int(0, "vip");
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "LOGIN TYPE:", "Login", "Leave");
- }
- else // if the data doesn't exists
- {
- ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Register", "REGISTER TEXT:", "Register", "Leave");
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- //MYSQL ACCCOUNT
- new query[128];
- GetPlayerName(playerid, PlayerData[playerid][Name], MAX_PLAYER_NAME);
- if(PlayerIsLogged[playerid] == 0) return 0;
- mysql_format(connection, query, sizeof(query), "UPDATE `player` SET `score` = '%i',`money` = '%i',`kills` ='%i',`deaths` = '%i',`admin` = '%i',`vip` = '%i' WHERE `name` = '%e' LIMIT 1", GetPlayerScore(playerid), GetPlayerMoney(playerid), PlayerData[playerid][Kills], PlayerData[playerid][Deaths], PlayerData[playerid][Admin], PlayerData[playerid][VIP], PlayerData[playerid][Name]);
- mysql_tquery(connection, query);
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- //mysql Account save
- if(killerid == INVALID_PLAYER_ID) return 0;
- if(PlayerIsLogged[killerid] == 0) return 0;
- if(PlayerIsLogged[playerid] == 0) return 0;
- PlayerData[killerid][Kills]++;
- PlayerData[playerid][Deaths]++;
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- public OnPlayerCommandPerformed(playerid, cmdtext[], success)
- {
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- return 1;
- }
- public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid,bodypart)
- {
- return 1;
- }
- 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[])
- {
- //Account MYSQL
- switch(dialogid)
- {
- case DIALOG_LOGIN:
- {
- if(!response) return Kick(playerid);
- new hashed_pass[129];
- WP_Hash(hashed_pass, sizeof(hashed_pass), inputtext);
- if(strcmp(hashed_pass, PlayerData[playerid][Password]) == 0) // if the player types correct password
- {
- PlayerIsLogged[playerid] = 1; // the player is logged in,
- }
- else // if the player types wrong password
- {
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "LOGIN TEXT:", "Login", "Leave");
- }
- }
- case DIALOG_REGISTER:
- {
- if(!response) return Kick(playerid);
- if(strlen(inputtext) <= 3) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Register", "REGISTER TEXT:", "Register", "Leave");
- new query[256];
- mysql_format(connection, query, sizeof(query), "INSERT INTO `player` (`name`, `password`) VALUES ('%e', '%e')", PlayerData[playerid][Name], PlayerData[playerid][Password]);
- mysql_tquery(connection, query, "OnAccountCreate", "i", playerid);
- }
- }
- return 1;
- }
- forward OnAccountCreate(playerid);
- public OnAccountCreate(playerid)
- {
- PlayerData[playerid][ID] = cache_insert_id();
- PlayerIsLogged[playerid] = 1; // sets the player to logged in.
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- stock GetName(playerid)
- {
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, sizeof(name));
- return name;
- }
- //Commands
- CMD:admins(playerid, params[])
- {
- new string[128];
- for(new i = 0; i <MAX_PLAYERS; i++)
- {
- if(PlayerData[i][Admin] >= 1)
- {
- GetPlayerName(i, PlayerData[i][Name], MAX_PLAYER_NAME);
- format(string, sizeof(string), "{FFFF00}------------------Online Administrators-------------------\nAdmin: %s, Level: %i", PlayerData[i][Name], PlayerData[i][Admin]);
- SendClientMessage(playerid, -1, string);
- }
- else
- {
- SendClientMessage(playerid, -1, "{FF0000}No administrators online.");
- }
- }
- return 1;
- }
- CMD:stats(playerid, params[])
- {
- new playerID;
- if(sscanf(params, "i", playerID)) return SendClientMessage(playerid, -1, "{FFFF00}Usage: /stats <playerid>");
- if(IsPlayerConnected(playerID))
- {
- new string[256];
- GetPlayerName(playerid, PlayerData[playerID][Name], MAX_PLAYER_NAME);
- format(string, sizeof(string), "{FFFF00}Username: %s\nScore: %i\nMoney: %i\nKills: %i\nDeaths: %i,Admin Level: %i,VIP Level: %i", PlayerData[playerID][Name], GetPlayerScore(playerID), GetPlayerMoney(playerID), PlayerData[playerID][Kills], PlayerData[playerID][Deaths], PlayerData[playerID][Admin], PlayerData[playerID][VIP]);
- ShowPlayerDialog(playerid, DIALOG_STATS, DIALOG_STYLE_MSGBOX, "Player's Stats", string, "Close", "");
- }
- return 1;
- }
Add Comment
Please, Sign In to add comment