Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Author: B-Matt
- Script version: v1.0.0
- Changelog: 4.4.2013. (Created)
- WEB: https://gas-locator.com
- */
- #include <a_samp>
- #include <a_mysql>
- #define NEW_SKIN 299
- #define MYSQL_HOST "localhost"
- #define MYSQL_USER "root"
- #define MYSQL_PASS ""
- #define MYSQL_BASE "sa-mp"
- main()
- {
- print("\n----------------------------------");
- print(" MySQL Gamemode by B-Matt");
- print("----------------------------------\n");
- }
- //Player Enum
- enum pInfo
- {
- pSQLid,
- pPass[50],
- pMoney
- }
- new PlayerInfo[MAX_PLAYERS][pInfo];
- //Global vars
- new dbHandle, query[1000];
- // NAME: GetName
- // PURPOSE: Getting player name.
- stock GetName(playerid)
- {
- new pName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pName, sizeof(pName));
- return pName;
- }
- // NAME: OnGameModeInit
- // PURPOSE: Connecting gamemode with MySQL database,
- // setting playerclass and setting gamemode text.
- public OnGameModeInit()
- {
- SetGameModeText("MySQL Script v1.0");
- AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
- dbHandle = mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_BASE,MYSQL_PASS); //We connect our gamemode with MySQL database
- mysql_debug(1);
- return 1;
- }
- // NAME: OnGameModeExit
- // PURPOSE: Disconnecting gamemode with MySQL
- // database and turning of gamemode.
- public OnGameModeExit()
- {
- mysql_close();
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- SetSpawnInfo( playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 26, 36, 28, 150, 0, 0 );
- }
- // NAME: OnPlayerConnect
- // PURPOSE: Getting player name from database. Then we are
- // going to 'CheckPlayer' for checking player in database.
- public OnPlayerConnect(playerid)
- {
- mysql_format(1, query, "SELECT * FROM `players` WHERE `Name` = '%e' LIMIT 0,1", GetName(playerid));
- mysql_function_query(1, query, true, "CheckPlayer", "i", playerid);
- return 1;
- }
- // NAME: CheckPlayer
- // PURPOSE: Checking is player in a database (login) or not (register).
- forward CheckPlayer(playerid);
- public CheckPlayer(playerid)
- {
- new rows, fields, string[128];
- cache_get_data(rows, fields);
- if(!rows)
- {
- format(string, sizeof(string), "{FFFFFF}Welcome {A3FF00}%s{FFFFFF} on my server. Input your password and register account.", GetName(playerid));
- ShowPlayerDialog(playerid, 0, DIALOG_STYLE_PASSWORD, "Registration", string, "Registration", "Quit");
- }
- else
- {
- new temp[12];
- cache_get_row(0, 1, temp); PlayerInfo[playerid][pSQLid] = strval(temp);
- cache_get_row(0, 2, PlayerInfo[playerid][pPass]);
- cache_get_row(0, 3, temp); PlayerInfo[playerid][pMoney] = strval(temp);
- format(string, sizeof(string), "{FFFFFF}Welcome back {A3FF00}%s{FFFFFF}, your account is ready for use. Input your password and login.", GetName(playerid));
- ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "Login", string, "Login", "Quit");
- }
- return 1;
- }
- // NAME: OnAccountCreate
- // PURPOSE: When MySQL query finish he will come here and insert MySQL id.
- forward OnAccountCreate(playerid);
- public OnAccountCreate(playerid)
- {
- PlayerInfo[playerid][pSQLid] = mysql_insert_id();
- return 1;
- }
- // NAME: OnPlayerDisconnect
- // PURPOSE: When player disconnects we'll update our database with new data.
- public OnPlayerDisconnect(playerid, reason)
- {
- mysql_format(1, query, "UPDATE `players` SET `Money` = '%d' WHERE `Name` = '%e' LIMIT 1", GetPlayerMoney(playerid), GetName(playerid));
- mysql_function_query(1, query, false, "", "");
- 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[])
- {
- 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;
- }
- // NAME: OnDialogResponse
- // PURPOSE: Our dialogs. 0 is for registration dialog and 1 is for login dialog.
- // When player input his data we'll insert that data in our database.
- // If player is registered we will check if password is valid and then continue.
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case 0:
- {
- new pName[MAX_PLAYER_NAME+1], pass[50];
- if(!response) return Kick(playerid);
- if(strlen(inputtext) > 50) return SendClientMessage(playerid, -1, "Your password is too long!");
- mysql_real_escape_string(GetName(playerid),pName);
- mysql_real_escape_string(inputtext,pass);
- format(query, sizeof(query), "INSERT INTO `Players` (Name, Password, Money) VALUES ('%s', '%s', '%d')", pName, pass, 1000);
- mysql_function_query(dbHandle, query, false, "OnAccountCreate", "i", playerid);
- SpawnPlayer(playerid);
- GivePlayerMoney(playerid, 1000);
- }
- case 1:
- {
- new string[128];
- if(!response) return Kick(playerid);
- if(strcmp(inputtext, PlayerInfo[playerid][pPass], true) == 0)
- {
- SpawnPlayer(playerid);
- GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
- }
- else
- {
- format(string, sizeof(string), "{FFFFFF}Welcome {A3FF00}%s{FFFFFF} your account is ready for use.\n Input your password and login.\n {FF0000}Wrong password{FFFFFF}!", GetName(playerid));
- ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "Login", string, "Login", "Quit");
- }
- }
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement