Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* * * * * INFO * * * * */
- /*
- Date started: 17-11-2013
- Time: 10:20 AM
- Creator: Voxel
- Server Name: SQLBASE
- Database: SQLite
- Version: 0.1
- Website: www.sa-mp.com
- */
- /* * * * * INCLUDES * * * * */
- #include <a_samp>
- /* * * * * DEFINES * * * * */
- #define MAX_INI_ENTRY_TEXT 80
- //INFO
- #define Web "www.sa-mp.com"
- #define Version "v0.1"
- #define Creator "Voxel"
- #define Name "SQL BASE""
- #define CName "SQLB"
- #define chat "{FFFFFF}*"
- //COLORS
- #define COL_WHITE "{FFFFFF}"
- #define COL_GREY "{C3C3C3}"
- #define COL_GREEN "{37DB45}"
- #define COL_RED "{F81414}"
- #define COL_YELLOW "{F3FF02}"
- #define COL_ORANGE "{F9B857}"
- #define COL_BLUE "{0049FF}"
- #define COL_PINK "{FF00EA}"
- #define COL_LIGHTBLUE "{00C0FF}"
- #define COL_LGREEN "{C9FFAB}"
- /* * * * * NATIVES * * * * */
- native WP_Hash(buffer[], len, const str[]);
- /* * * * * ENUMERATORS * * * * */
- enum USER_DATA
- {
- USER_ID,
- USER_NAME[MAX_PLAYER_NAME],
- USER_PASSWORD[129],
- USER_ADMIN,
- USER_VIP,
- USER_MONEY,
- USER_SCORE,
- USER_KILLS,
- USER_DEATHS,
- USER_KD,
- bool: USER_LOGGED_IN
- };
- /* * * * * GLOBAL VARIABLES * * * * */
- new User[MAX_PLAYERS][USER_DATA];
- new DB: Database;
- /* * * * * MAIN * * * * */
- main()
- {
- print("=====================================");
- print("| SQL BASE |");
- print("| *INITIATED* |");
- print("| Version: v0.1 |");
- print("| Creator: Voxel |");
- print("=====================================");
- }
- public OnFilterScriptInit()
- {
- SetGameModeText("SQLBASE"Version"");
- Database = db_open("server.db");
- db_query(Database, "CREATE TABLE IF NOT EXISTS users (userid INTEGER PRIMARY KEY AUTOINCREMENT, username VARCHAR(24) COLLATE NOCASE, password VARCHAR(129), admin INTEGER DEFAULT 0 NOT NULL, vip INTEGER DEFAULT 0 NOT NULL, money INTEGER DEFAULT 0 NOT NULL, score INTEGER DEFAULT 0 NOT NULL, kills INTEGER DEFAULT 0 NOT NULL, deaths INTEGER DEFAULT 0 NOT NULL, kd INTEGER DEFAULT 0 NOT NULL)");
- AddPlayerClass(1, 2528.9143,-1667.7504,15.1689,91.2860,0,0,0,0,0,0);
- return 1;
- }
- public OnFilterScriptExit()
- {
- db_close(Database);
- print("=====================================");
- print("| SQL BASE |");
- print("| *SHUT DOWN* |");
- print("| Version: v0.1 |");
- print("| Creator: Voxel |");
- print("=====================================");
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- for(new i; i < _: USER_DATA; ++i) User[playerid][USER_DATA: i] = 0;
- GetPlayerName(playerid, User[playerid][USER_NAME], MAX_PLAYER_NAME);
- new Query[71], DBResult: Result;
- format(Query, sizeof(Query), "SELECT password FROM users WHERE username = '%s' LIMIT 0, 1", DB_Escape(User[playerid][USER_NAME]));
- Result = db_query(Database, Query);
- if(db_num_rows(Result))
- {
- db_get_field_assoc(Result, "password", User[playerid][USER_PASSWORD], 129);
- ShowPlayerDialog(playerid, 0, DIALOG_STYLE_PASSWORD, ""COL_BLUE"SGZM"COL_WHITE" Login pannel", ""chat" Please login to play on "COL_BLUE"Survival Games Zombie Mode\n"COL_WHITE"Enter your "COL_BLUE"password"COL_WHITE":", "Login", "Exit");
- }
- else ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, ""COL_BLUE"SGZM"COL_WHITE" Register pannel", ""chat" Please register to play on "COL_BLUE"Survival Games Zombie Mode\n"COL_WHITE"Enter a "COL_BLUE"password"COL_WHITE":", "Register", "Exit");
- db_free_result(Result);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- if(User[playerid][USER_LOGGED_IN] == true)
- {
- new Query[128];
- format(Query, sizeof(Query), "UPDATE users SET admin = %d, vip = %d, money = %d, score = %d, kills = %d, deaths = %d, kd = %d WHERE username = '%s'", User[playerid][USER_ADMIN], User[playerid][USER_VIP], GetPlayerMoney(playerid), GetPlayerScore(playerid), User[playerid][USER_KILLS], User[playerid][USER_DEATHS], User[playerid][USER_KD], DB_Escape(User[playerid][USER_NAME]));
- db_query(Database, Query);
- }
- for(new i; i < _: USER_DATA; ++i) User[playerid][USER_DATA: i] = 0;
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- return 1;
- }
- /* * * * * DIALOGS * * * * */
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == 0)
- {
- if(response)
- {
- if(!inputtext[0]) return ShowPlayerDialog(playerid, 0, DIALOG_STYLE_PASSWORD, ""COL_BLUE"SGZM"COL_WHITE" Login pannel", ""chat" Please login to play on "COL_BLUE"Survival Games Zombie Mode\n "COL_WHITE"Enter your "COL_BLUE"password"COL_WHITE":", "Login", "Exit");
- new buf[129];
- WP_Hash(buf, 129, inputtext);
- if(!strcmp(buf, User[playerid][USER_PASSWORD], false))
- {
- new Query[75], DBResult: Result;
- format(Query, sizeof(Query), "SELECT * FROM users WHERE username = '%s' LIMIT 0, 1", DB_Escape(User[playerid][USER_NAME]));
- Result = db_query(Database, Query);
- if(db_num_rows(Result))
- {
- db_get_field_assoc(Result, "userid", Query, 7);
- User[playerid][USER_ID] = strval(Query);
- db_get_field_assoc(Result, "admin", Query, 3);
- User[playerid][USER_ADMIN] = strval(Query);
- db_get_field_assoc(Result, "vip", Query, 3);
- User[playerid][USER_VIP] = strval(Query);
- db_get_field_assoc(Result, "money", Query, 10);
- User[playerid][USER_MONEY] = strval(Query);
- db_get_field_assoc(Result, "score", Query, 7);
- User[playerid][USER_SCORE] = strval(Query);
- db_get_field_assoc(Result, "kills", Query, 10);
- User[playerid][USER_KILLS] = strval(Query);
- db_get_field_assoc(Result, "deaths", Query, 10);
- User[playerid][USER_DEATHS] = strval(Query);
- db_get_field_assoc(Result, "kd", Query, 10);
- User[playerid][USER_KD] = strval(Query);
- User[playerid][USER_LOGGED_IN] = true;
- GivePlayerMoney(playerid, User[playerid][USER_MONEY]);
- SetPlayerScore(playerid, User[playerid][USER_SCORE]);
- SendClientMessage(playerid, 0x00FF00FF, ""chat" "COL_LIGHTBLUE"You have successfully logged in to your account!");
- }
- db_free_result(Result);
- }
- else
- {
- SendClientMessage(playerid, -1, ""chat" "COL_RED"Incorrect password!");
- ShowPlayerDialog(playerid, 0, DIALOG_STYLE_PASSWORD, ""COL_BLUE"SGZM"COL_WHITE" Login pannel", ""chat" Please login to play on "COL_BLUE"Survival Games Zombie Mode\n"COL_WHITE"Enter your "COL_BLUE"password"COL_WHITE":", "Login", "Exit");
- }
- }
- else Kick(playerid);
- return 1;
- }
- if(dialogid == 1)
- {
- if(response)
- {
- if(!IsValidPassword(inputtext))
- {
- SendClientMessage(playerid, -1, ""chat" "COL_RED"The password is invalid, Valid characters are: A-Z, a-z, 0-9");
- ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, ""COL_BLUE"SERVER NAME"COL_WHITE" Register pannel", ""chat" Please register to play on "COL_BLUE"SERVER NAME\n"COL_WHITE"Enter a "COL_BLUE"password"COL_WHITE":", "Register", "Exit");
- return 1;
- }
- if(strlen(inputtext) < 3 || strlen(inputtext) > 24)
- {
- SendClientMessage(playerid, -1, ""chat" "COL_RED"The password is invalid, Its lenght should be 3-24 characters");
- ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, ""COL_BLUE"SERVER NAME"COL_WHITE" Register pannel", ""chat" Please register to play on "COL_BLUE"SERVER NAME\n"COL_WHITE"Enter a "COL_BLUE"password"COL_WHITE":", "Register", "Exit");
- return 1;
- }
- new Query[208];
- WP_Hash(User[playerid][USER_PASSWORD], 129, inputtext);
- format(Query, sizeof(Query), "INSERT INTO users (username, password) VALUES ('%s', '%s')", DB_Escape(User[playerid][USER_NAME]), DB_Escape(User[playerid][USER_PASSWORD]));
- db_query(Database, Query);
- User[playerid][USER_LOGGED_IN] = true;
- SendClientMessage(playerid, 0x00FF00FF, ""chat" "COL_LIGHTBLUE"You have just registered to our server! You have been automatically logged in!");
- }
- else Kick(playerid);
- return 1;
- }
- return 1;
- }
- /* * * * * STOCKS * * * * */
- /* * * * * DB ESCAPE * * * * */
- stock DB_Escape(text[])
- {
- new ret[ 80 * 2 ], ch, i, j;
- while((ch = text[i++]) && j < sizeof(ret))
- {
- if(ch == '\'')
- {
- if(j < sizeof(ret) - 2)
- {
- ret[j++] = '\'';
- ret[j++] = '\'';
- }
- }
- else if(j < sizeof(ret))
- {
- ret[j++] = ch;
- }
- else
- {
- j++;
- }
- }
- ret[sizeof(ret) - 1] = '\0';
- return ret;
- }
- stock IsValidPassword(const password[])
- {
- for(new i = 0; password[i] != EOS; ++i)
- {
- switch(password[i])
- {
- case '0'..'9', 'A'..'Z', 'a'..'z': continue;
- default: return 0;
- }
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement