Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <a_mysql>
- #include <zcmd>
- #define MYSQL_HOST "127.0.0.1"
- #define MYSQL_USER "root"
- #define MYSQL_DATEBASE "users"
- #define MYSQL_PASSWORD ""
- #define dlogin 1188
- #define dregister 119
- new mysql,Name[126],IP[126];
- native WP_Hash(buffer[], len, const str[]); //whirlpool, for hashing our password
- public OnFilterScriptInit()
- {
- print("mysql strted");
- mysql = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DATEBASE, MYSQL_PASSWORD);
- mysql_log(LOG_ALL);
- return 1;
- }
- enum Info
- {
- ID,
- Password[129],
- Ip,
- AdminLevel,
- VIP,
- Cash,
- WantedLevel,
- LastSkinID,
- RegisteredDate,
- Kicked,
- Armour,
- PTScore,
- DMScore,
- WarnedTimes,
- JailedTimes,
- MutedTimes,
- Boost,
- AutoLogin,
- Godmode,
- bool:SavedPos,
- posX,
- posY,
- posZ,
- PAngle,
- }
- new pInfo[MAX_PLAYERS][Info];
- public OnPlayerSpawn(playerid)
- {
- new query[128];
- GetPlayerName(playerid, Name, 24);
- GetPlayerIp(playerid, IP[playerid], 16);
- mysql_format(mysql, query, sizeof(query),"SELECT `ID`, `password` FROM `players` WHERE `username` = '%e' LIMIT 1", Name[playerid]);
- mysql_tquery(mysql, query, "CheckACC", "i", playerid);
- return 1;
- }
- forward CheckACC(playerid);
- public CheckACC(playerid)
- {
- new rows, fields;
- cache_get_data(rows, fields, mysql);
- if(rows)
- {
- cache_get_field_content(0, "PASS", pInfo[playerid][Password], mysql, 129);
- pInfo[playerid][ID] = cache_get_field_content_int(0, "ID");
- ShowPlayerDialog(playerid, dlogin, DIALOG_STYLE_INPUT, "Login", "In order to play, you need to login", "Login", "Quit");
- }
- else
- {
- ShowPlayerDialog(playerid, dregister, DIALOG_STYLE_INPUT, "Register", "In order to play, you need to register.", "Register", "Quit");
- }
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case dlogin
- {
- if(!response) Kick(playerid);
- new hpass[129];
- new query[100];
- WP_Hash(hpass, 129, inputtext);
- if(!strcmp(hpass, pInfo[playerid][Password]))
- {
- mysql_format(mysql, query, sizeof(query), "SELECT * FROM `players` WHERE `Username` = '%e' LIMIT 1", Name[playerid]);
- mysql_tquery(mysql, query, "OnAccountLoad", "i", playerid);
- }
- else
- {
- ShowPlayerDialog(playerid, dlogin, DIALOG_STYLE_INPUT, "Login", "In order to play, you need to login\nWrong password!", "Login", "Quit");
- }
- }
- case dregister:
- {
- if(!response) return Kick(playerid);
- if(strlen(inputtext) < 6) return ShowPlayerDialog(playerid, dregister, DIALOG_STYLE_INPUT, "Register", "In order to play, you need to register.\nYour password must be at least 6 characters long!", "Register", "Quit");
- new query[300];
- WP_Hash(pInfo[playerid][Password], 129, inputtext);
- mysql_format(mysql, query, sizeof(query), "INSERT INTO `players` (`Username`, `Password`, `IP`, `AdminLevel`, `VIP`, `Money`, `PosX` ,`PosY`, `PosZ`) VALUES ('%e', '%s', '%s', 0, 0, 0, 0.0, 0.0, 0.0)", Name[playerid], pInfo[playerid][Password], IP[playerid]);
- mysql_tquery(mysql, query, "OnAccountRegister", "i", playerid);
- }
- }
- return 1;
- }
- forward OnAccountLoad(playerid);
- forward OnAccountRegister(playerid);
- public OnAccountLoad(playerid)
- {
- pInfo[playerid][AdminLevel] = cache_get_field_content_int(0, "Admin");
- pInfo[playerid][VIP] = cache_get_field_content_int(0, "VIP");
- // pInfo[playerid][posX] = cache_get_field_content_float(0, "posX");
- // pInfo[playerid][posY] = cache_get_field_content_float(0, "posY");
- // pInfo[playerid][posZ] = cache_get_field_content_float(0, "posZ");
- SendClientMessage(playerid, -1, "Successfully logged in");
- return 1;
- }
- public OnAccountRegister(playerid)
- {
- pInfo[playerid][ID] = cache_insert_id();
- printf("New account registered. ID: %d", pInfo[playerid][ID]);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- new query[128], Float:pos[3];
- GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
- mysql_format(mysql, query, sizeof(query), "UPDATE `players` SET `Admin`=%d, `VIP`=%d, `Money`=%d, `posX`=%f, `posY`=%f, `posZ`=%f WHERE `ID`=%d",\
- pInfo[playerid][AdminLevel], pInfo[playerid][VIP],pos[0], pos[1], pos[2], pInfo[playerid][ID]);
- mysql_tquery(mysql, query, "", "");
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment