Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // includes
- #include <a_samp>
- #include <a_mysql>
- #include <Pawn.CMD>
- // defines
- #define MYSQL_HOST "localhost"
- #define MYSQL_USER "root"
- #define MYSQL_DB "db1"
- #define MYSQL_PASS ""
- #define SCM SendClientMessage
- // new
- new mysql_id;
- new Random_Skin_Male[] = {
- 292, 293
- };
- new Random_Skin_Female[] = {
- 12, 138
- };
- // enums
- enum {
- D_LANGUAGE, D_REG, D_REG_SEX,
- D_LOGIN,
- D_ATM,
- D_SETTINGS,
- };
- enum player_info {
- ID,
- Name[MAX_PLAYER_NAME],
- Password[24],
- Language, // 1 - Russian, 2 - English
- Sex,
- Skin,
- };
- new pInfo[MAX_PLAYERS][player_info];
- main(){}
- public OnGameModeInit() {
- mysql_id = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DB, MYSQL_PASS);
- SetGameModeText(" ");
- return true;
- }
- public OnGameModeExit() {
- mysql_close(mysql_id);
- return true;
- }
- public OnPlayerRequestClass(playerid, classid) {
- if(GetPVarInt(playerid, "Is_Authed")) return SpawnPlayer(playerid);
- return true;
- }
- public OnPlayerConnect(playerid) {
- GetPlayerName(playerid, pInfo[playerid][Name], MAX_PLAYER_NAME);
- //
- new query[40+MAX_PLAYER_NAME];
- mysql_format(mysql_id, query, sizeof(query), "SELECT * FROM `accounts` WHERE `Name`='%s'", pInfo[playerid][Name]);
- mysql_function_query(mysql_id, query, true, "@_FindPlayerInTable", "i", playerid);
- return true;
- }
- public OnPlayerDisconnect(playerid, reason) {
- RemovePlayerInfo(playerid);
- DeletePVar(playerid, "Is_Authed");
- return true;
- }
- public OnPlayerSpawn(playerid) {
- SetPlayerPos(playerid, 0.0, 0.0, 5.0);
- SetPlayerSkin(playerid, pInfo[playerid][Skin]);
- return true;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- return true;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return true;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return true;
- }
- public OnPlayerText(playerid, text[])
- {
- return true;
- }
- public OnPlayerCommandText(playerid, cmdtext[]) {
- return 0;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- return true;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- return true;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- return true;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- return true;
- }
- public OnPlayerLeaveCheckpoint(playerid)
- {
- return true;
- }
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- return true;
- }
- public OnPlayerLeaveRaceCheckpoint(playerid)
- {
- return true;
- }
- public OnRconCommand(cmd[])
- {
- return true;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- return true;
- }
- public OnObjectMoved(objectid)
- {
- return true;
- }
- public OnPlayerObjectMoved(playerid, objectid)
- {
- return true;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- return true;
- }
- public OnVehicleMod(playerid, vehicleid, componentid)
- {
- return true;
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- return true;
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- return true;
- }
- public OnPlayerSelectedMenuRow(playerid, row)
- {
- return true;
- }
- public OnPlayerExitedMenu(playerid)
- {
- return true;
- }
- public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
- {
- return true;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
- if(newkeys & 1024) { // alt
- if(IsPlayerInRangeOfPoint(playerid, 5.0, 0.0, 0.0, 5.0)) {
- if(pInfo[playerid][Language] == 1)
- return ShowPlayerDialog(playerid, D_ATM, DIALOG_STYLE_LIST, "Банкомат", "1. Пополнить счёт\n2. Снять со счёта", "Выбрать", "Отмена");
- else ShowPlayerDialog(playerid, D_ATM, DIALOG_STYLE_LIST, "ATM", "1. Deposit\n2. Withdraw", "Choose", "Cancel");
- }
- }
- return true;
- }
- public OnRconLoginAttempt(ip[], password[], success)
- {
- return true;
- }
- public OnPlayerUpdate(playerid)
- {
- return true;
- }
- public OnPlayerStreamIn(playerid, forplayerid)
- {
- return true;
- }
- public OnPlayerStreamOut(playerid, forplayerid)
- {
- return true;
- }
- public OnVehicleStreamIn(vehicleid, forplayerid)
- {
- return true;
- }
- public OnVehicleStreamOut(vehicleid, forplayerid)
- {
- return true;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
- switch(dialogid) {
- case D_LANGUAGE: {
- if(!response)
- return Kick(playerid);
- pInfo[playerid][Language] = listitem+1;
- Show_Register(playerid);
- return true;
- }
- case D_REG: {
- if(!response) return Kick(playerid);
- if(!(0 <= strlen(inputtext) <= 24)) return Show_Register(playerid);
- strmid(pInfo[playerid][Password], inputtext, 0, 64, 255);
- if(pInfo[playerid][Language] == 1)
- return ShowPlayerDialog(playerid, D_REG_SEX, DIALOG_STYLE_LIST,
- "Выберете ваш пол",
- "1. Мужской\n2. Женский",
- "Далее", "Отмена");
- else ShowPlayerDialog(playerid, D_REG_SEX, DIALOG_STYLE_LIST,
- "Choose your sex",
- "1. Male\n2. Female",
- "Next", "Exit");
- return true;
- }
- case D_REG_SEX: {
- if(!response)
- return Kick(playerid);
- pInfo[playerid][Sex] = listitem + 1;
- pInfo[playerid][Skin] = (listitem == 0) ?
- (Random_Skin_Male[random(sizeof(Random_Skin_Male))]) :
- (Random_Skin_Female[random(sizeof(Random_Skin_Female))]);
- CreateNewAccount(playerid);
- return true;
- }
- case D_LOGIN: {
- if(!response)
- return Kick(playerid);
- if(!(0 <= strlen(inputtext) <= 24))
- return Show_Login(playerid);
- if(!strcmp(pInfo[playerid][Password], inputtext)) {
- new query[44+24];
- mysql_format(mysql_id, query, sizeof(query), "SELECT * FROM `accounts` WHERE `Password`='%s'", inputtext);
- mysql_function_query(mysql_id, query, true, "@_LoadAccount", "i", playerid);
- } else {
- SetPVarInt(playerid, "Wrong_Pass", GetPVarInt(playerid, "Wrong_Pass") + 1);
- SCM(playerid, -1, "You have entered the wrong password many times, so they were kicked.");
- Show_Login(playerid);
- if(GetPVarInt(playerid, "Wrong_Pass") >= 3)
- return Kick(playerid);
- }
- return true;
- }
- case D_SETTINGS: {
- if(!response) return true;
- switch(listitem) {
- case 0: {
- if(pInfo[playerid][Language] == 1)
- return SCM(playerid, -1, "Вы сменили язык на Английский.");
- else SCM(playerid, -1, "You changed your language to Russian.");
- }
- }
- pInfo[playerid][Language] = listitem+1;
- return true;
- }
- }
- return true;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return true;
- }
- // publics, forwards, stocks
- @_FindPlayerInTable(playerid);
- @_FindPlayerInTable(playerid) {
- new rows, fields;
- cache_get_data(rows, fields);
- if(!rows) ShowPlayerDialog(playerid, D_LANGUAGE, DIALOG_STYLE_LIST,
- "Choose a language",
- "1. Русский\n2. English",
- "Далее", "Отмена");
- else {
- cache_get_field_content(0, "Password", pInfo[playerid][Password], mysql_id, 24);
- pInfo[playerid][Language] = cache_get_field_content_int(0, "Language", mysql_id);
- Show_Login(playerid);
- }
- return true;
- }
- Show_Register(playerid) {
- if(pInfo[playerid][Language] == 1) {
- ShowPlayerDialog(playerid, D_REG, DIALOG_STYLE_INPUT,
- "Регистрация",
- "Введите ваш будущий пароль в окно ниже",
- "Далее", "Отмена");
- } else {
- ShowPlayerDialog(playerid, D_REG, DIALOG_STYLE_INPUT,
- "Registration",
- "Enter your future password in the window below",
- "Next", "Exit");
- }
- return true;
- }
- Show_Login(playerid) {
- if(pInfo[playerid][Language] == 1) {
- ShowPlayerDialog(playerid, D_LOGIN, DIALOG_STYLE_INPUT,
- "Авторизация",
- "Введите ваш пароль в окно ниже",
- "Далее", "Отмена");
- } else {
- ShowPlayerDialog(playerid, D_LOGIN, DIALOG_STYLE_INPUT,
- "Authorization",
- "Enter your password in the window below",
- "Next", "Exit");
- }
- return true;
- }
- @_LoadAccount(playerid);
- @_LoadAccount(playerid) {
- pInfo[playerid][ID] = cache_get_field_content_int(0, "ID", mysql_id);
- pInfo[playerid][Sex] = cache_get_field_content_int(0, "Sex", mysql_id);
- pInfo[playerid][Skin] = cache_get_field_content_int(0, "Skin", mysql_id);
- if(pInfo[playerid][Language] == 1)
- return SCM(playerid, -1, "Вы успешно авторизовались.");
- else SCM(playerid, -1, "You have been successfully authorized.");
- SetPVarInt(playerid, "Is_Authed", true);
- DeletePVar(playerid, "Wrong_Pass");
- SpawnPlayer(playerid);
- return true;
- }
- RemovePlayerInfo(playerid) {
- pInfo[playerid][ID] = EOS; pInfo[playerid][Password] = EOS; pInfo[playerid][Language] = EOS; pInfo[playerid][Sex] = EOS; pInfo[playerid][Skin] = EOS;
- }
- Show_Settings(playerid) {
- if(pInfo[playerid][Language] == 1) {
- static const frm_setting[] = "\
- 1. Сменить язык [Русский]";
- new str_setting[sizeof(frm_setting)];
- format(str_setting, sizeof(str_setting), frm_setting);
- ShowPlayerDialog(playerid, D_SETTINGS, DIALOG_STYLE_LIST,
- "Настройки",
- str_setting,
- "Выбрать", "Отмена");
- } if(pInfo[playerid][Language] == 2) {
- static const frm_setting[] = "\
- 1. Change language [English]";
- new str_setting[sizeof(frm_setting)];
- format(str_setting, sizeof(str_setting), frm_setting);
- ShowPlayerDialog(playerid, D_SETTINGS, DIALOG_STYLE_LIST,
- "Settings",
- str_setting,
- "Choose", "Cancel");
- }
- return true;
- }
- CreateNewAccount(playerid) {
- new query[107+MAX_PLAYER_NAME+24];
- mysql_format(mysql_id, query, sizeof(query),
- "INSERT INTO `accounts` (`Name`, `Password`, `Language`, `Sex`, `Skin`) VALUE ('%s', '%s', '%d', '%d', '%d')",
- pInfo[playerid][Name], pInfo[playerid][Password], pInfo[playerid][Language], pInfo[playerid][Sex], pInfo[playerid][Skin]);
- mysql_function_query(mysql_id, query, false, "", "");
- SetPVarInt(playerid, "Is_Authed", true);
- SpawnPlayer(playerid);
- return true;
- }
- // commands
- cmd:settings(playerid, params[]) {
- Show_Settings(playerid);
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement