Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* --------------- Регистрация аккаунтов MySQL R8 R34 ----------------------- */
- /* Автор: Jaws1(Jeff_Hardy) */
- #include <a_samp>
- main();
- #include <a_mysql>
- #include <sscanf2>
- // ------------ Данные сервера в клиенте
- #define mysql_host "localhost"
- #define mysql_user "root"
- #define mysql_base "newr34"
- #define mysql_pass ""
- // ----------- Прочее
- #define serverNmae "MySQL R8 R34" // название
- #define BASE_USERS "users" // название базы данных
- #define isValidPass 30 // валидность пароля
- #define getpl(%0) plname[%0]
- #define send(%0,%1) SendClientMessage(%0, -1, %1)
- // ----------- PVars
- #define SPVI SetPVarInt
- #define SPVS SetPVarString
- #define SPVF SetPVarFloat
- #define GPVI GetPVarInt
- #define GPVS GetPVarString
- #define GPVF GetPVarFloat
- // ----------- Стили диалогов
- #define ds_msg 0
- #define ds_input 1
- #define ds_list 2
- #define ds_pass 3
- // ----------- ID диалогов
- #define d_none 0
- new plname[MAX_PLAYERS][MAX_PLAYER_NAME]; // записываем ник игрока при коннекте
- enum plInfo
- {
- ORM:ORMID,
- plID, // ид аккаунта
- name[MAX_PLAYER_NAME], // ник игрока
- pass[isValidPass], // пароль игрока
- level, // скин игрока
- }
- new Pi[MAX_PLAYERS][plInfo];
- public OnGameModeInit()
- {
- /* MySQL R8 */
- mysql_connect(mysql_host, mysql_user, mysql_base, mysql_pass);
- mysql_log(LOG_DEBUG);
- /* MySQL R8 */
- SetGameModeText("MySQL R8 R34");
- AddPlayerClass(0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
- return 1;
- }
- public OnGameModeExit()
- {
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- SetPlayerVirtualWorld(playerid, playerid), SetPlayerInterior(playerid, 0);
- SetPlayerCameraPos(playerid, 1925.9149,-841.7464,150.9362);
- SetPlayerCameraLookAt(playerid, 1595.1147,-1173.6073,167.9245);
- SetPlayerPos(playerid, 1684.9298,-1216.7500,167.5547);
- SetPlayerFacingAngle(playerid, 266.1046);
- for(new i = 0; i < 21; i++) send(playerid, "");
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- GetPlayerName(playerid, plname[playerid], MAX_PLAYER_NAME);
- for(new plInfo:e; e < plInfo; ++e) Pi[playerid][e] = 0; // обнуляем числа при коннекте
- GetPlayerName(playerid, Pi[playerid][name], MAX_PLAYER_NAME);
- new ORM:ormid = Pi[playerid][ORMID] = orm_create(BASE_USERS);
- orm_addvar_int(ormid, Pi[playerid][plID], "id");
- orm_addvar_string(ormid, Pi[playerid][name], MAX_PLAYER_NAME+1, "name");
- orm_addvar_string(ormid, Pi[playerid][pass], isValidPass, "pass");
- orm_addvar_int(ormid, Pi[playerid][level], "level");
- orm_setkey(ormid, "name"), orm_select(ormid, "onPlayerLoadUsers", "d", playerid); // загружаем все параметры с бд
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- if(GPVI(playerid, "isPlAutothed")) // если игрок авторизирован
- {
- orm_update(Pi[playerid][ORMID]); // сохраняет все параметры игрока при дисконнекте
- for(new plInfo:e; e < plInfo; ++e) Pi[playerid][e] = 0; // обнуляем числа при дисконекте
- orm_destroy(Pi[playerid][ORMID]);
- }
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- new str[50];
- if(!GPVI(playerid, "isPlAutothed")) return 1;
- SetPlayerScore(playerid, Pi[playerid][level]);
- SetPlayerSkin(playerid, 3), SetPlayerColor(playerid, -1);
- SetPlayerPos(playerid, 1639.0121,-2239.9082,13.4998), SetPlayerFacingAngle(playerid, 129.8660);
- SetPlayerInterior(playerid, 0), SetPlayerVirtualWorld(playerid, 0);
- format(str, 50, "{3fda07}~ Добро пожаловать в наш штат, %s.", getpl(playerid)), send(playerid, str);
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- if(!GPVI(playerid, "isPlAutothed")) { send(playerid, "{ff6347}** Вы не авторизированы на сервере."); return 0; }
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- return false;
- }
- 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 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)
- {
- if(!GPVI(playerid, "isPlAutothed")) return 1;
- 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[])
- {
- switch(dialogid)
- {
- case 1:
- {
- if(!response) return Kick(playerid);
- if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 1, ds_input, "[ Авторизация игрового аккаунта ] ", " {ffffff}Добро пожаловать на сервер "serverNmae"\n{3fda07}Аккаунт с вашин ником уже зарегистрирован!", "Далее", "Закрыть"); // ERROR_OK Аккаунт зарегистрирован
- if(!strcmp(inputtext, Pi[playerid][pass], false, isValidPass)) // спавним игрока при корректном вводе пароля
- {
- for(new i = 0; i < 40; i++) send(playerid, "");
- SPVI(playerid, "isPlAutothed", true), SpawnPlayer(playerid);
- }
- else return ShowPlayerDialog(playerid, 1, ds_input, "[ Авторизация игрового аккаунта ] ", " {ffffff}Добро пожаловать на сервер "serverNmae"\n{3fda07}Аккаунт с вашин ником уже зарегистрирован!", "Далее", "Закрыть"); // ERROR_OK Аккаунт зарегистрирован
- return 1;
- }
- case 2:
- {
- if(!response) return Kick(playerid);
- if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 2, ds_input, "[ Регистрация игрового аккаунта ]", " {ffffff}Добро пожаловать на сервер "serverNmae"\n{ff6347}Аккаунт с вашим ником не зарегистрирован, \n нажмите {3fda07}Далее {ff6347}чтобы продолжить.\n{ffffff}Введите пароль(от 1 до 30):", "Регистр.", "Закрыть"); // ERROR_NO_DATA Аккаунт в базе не найден
- onPlayerRegister(playerid, inputtext);
- return 1;
- }
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- /* Регисnрация аккаунтов MySQL R8 R34 */
- stock onPlayerRegister(playerid, password[])
- {
- format(Pi[playerid][name], MAX_PLAYER_NAME, "%s", getpl(playerid)); // записываем ник при реестре
- format(Pi[playerid][pass], isValidPass, "%s", password); // записываем пароль при реестре
- Pi[playerid][level] = 1;
- orm_insert(Pi[playerid][ORMID], "onPlayerRegisterCallback", "d", playerid);
- return 1;
- }
- forward onPlayerLoadUsers(playerid);
- public onPlayerLoadUsers(playerid)
- {
- switch(orm_errno(Pi[playerid][ORMID]))
- {
- case ERROR_OK: ShowPlayerDialog(playerid, 1, ds_input, "[ Авторизация игрового аккаунта ] ", " {ffffff}Добро пожаловать на сервер "serverNmae"\n{3fda07}Аккаунт с вашин ником уже зарегистрирован!", "Далее", "Закрыть"); // ERROR_OK Аккаунт зарегистрирован
- case ERROR_NO_DATA: ShowPlayerDialog(playerid, 2, ds_input, "[ Регистрация игрового аккаунта ]", " {ffffff}Добро пожаловать на сервер "serverNmae"\n{ff6347}Аккаунт с вашим ником не зарегистрирован, \n нажмите {3fda07}Далее {ff6347}чтобы продолжить.\n{ffffff}Введите пароль(от 1 до 30):", "Регистр.", "Закрыть"); // ERROR_NO_DATA Аккаунт в базе не найден
- }
- orm_setkey(Pi[playerid][ORMID], "id");
- return 1;
- }
- forward onPlayerRegisterCallback(playerid);
- public onPlayerRegisterCallback(playerid) return SPVI(playerid, "isPlAutothed", true), SpawnPlayer(playerid);
- /* Регисnрация аккаунтов MySQL R8 R34 */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement