Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <a_mysql>
- new MySQL:g_SQL;
- enum eP{
- u_id,
- u_name[MAX_PLAYER_NAME],
- u_pass[128],
- u_sex,
- u_lvl,
- bool:p_auth
- };
- new uS[MAX_PLAYERS][eP];
- enum {
- DIALOG
- };
- main(){
- print("Load GameMode...");
- }
- public OnPlayerSpawn(playerid){
- SetPlayerScore(playerid, uS[playerid][u_lvl]);
- DeletePVar(playerid, "F4_class_fix");
- SetPlayerPos(playerid, 1736.7968, -1949.6409, 14.1172);
- SetPlayerFacingAngle(playerid, 280.0);
- ResetPlayerMoney(playerid);
- GivePlayerMoney(playerid, 0);
- GivePlayerWeapon(playerid, 24, 1000);
- return true;
- }
- new old_s = -1;
- forward UpdateTimers();
- public UpdateTimers(){
- new h, m, s;
- gettime(h, m, s);
- if(old_s != s){
- old_s = s;
- new uni_str[11];
- format(uni_str, sizeof(uni_str), " %02d:%02d:%02d", h, m, s);
- SendClientMessageToAll(0xCCEEFF, uni_str);
- }
- return true;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){
- switch(dialogid){
- case DIALOG: return true;
- case DIALOG+1:{
- if(response){
- if(strlen(inputtext) < 6) return ShowPlayerDialog(playerid, DIALOG+1, DIALOG_STYLE_PASSWORD, "{CCEEFF}Авторизация", "{FFFFFF}Аккаунт {00FF00}зарегистрирован{FFFFFF}, введите пароль для авторизации:\n{FF0000} * Пароль должен содержать минимум 6 символов.\n{808080} * Пароль не должен содержать русских символов.\n * Пароль не верный.", "{00FF00}>", "{FF0000}X");
- for(new i = strlen(inputtext); i != -1; --i)
- switch(inputtext[i]){
- case 'А'..'Я', 'а'..'я', ' ':
- return ShowPlayerDialog(playerid, DIALOG+1, DIALOG_STYLE_PASSWORD, "{CCEEFF}Авторизация", "{FFFFFF}Аккаунт {00FF00}зарегистрирован{FFFFFF}, введите пароль для авторизации:\n{808080} * Пароль должен содержать минимум 6 символов.\n{FF0000} * Пароль не должен содержать русских символов.\n{808080} * Пароль не верный.", "{00FF00}>", "{FF0000}X");
- }
- if(strlen(inputtext) && !strcmp(inputtext, uS[playerid][u_pass])) return LoadAccount(playerid);
- else ShowPlayerDialog(playerid, DIALOG+1, DIALOG_STYLE_PASSWORD, "{CCEEFF}Авторизация", "{FFFFFF}Аккаунт {00FF00}зарегистрирован{FFFFFF}, введите пароль для авторизации:\n{808080} * Пароль должен содержать минимум 6 символов.\n * Пароль не должен содержать русских символов.\n{FF0000} * Пароль не верный.", "{00FF00}>", "{FF0000}X");
- }
- else return Kick(playerid);
- }
- case DIALOG+2:{
- if(response){
- if(strlen(inputtext) < 6) return ShowPlayerDialog(playerid, DIALOG+2, DIALOG_STYLE_INPUT, "{CCEEFF}Регистрация", "{FFFFFF}Аккаунт {FF0000}не зарегистрирован{FFFFFF}, введите пароль для регистрации:\n{FF0000} * Пароль должен содержать минимум 6 символов.\n{808080} * Пароль не должен содержать русских символов.", "{00FF00}>", "{FF0000}X");
- for(new i = strlen(inputtext); i != -1; --i)
- switch(inputtext[i]){
- case 'А'..'Я', 'а'..'я', ' ':
- return ShowPlayerDialog(playerid, DIALOG+2, DIALOG_STYLE_INPUT, "{CCEEFF}Регистрация", "{FFFFFF}Аккаунт {FF0000}не зарегистрирован{FFFFFF}, введите пароль для регистрации:\n{808080} * Пароль должен содержать минимум 6 символов.\n{FF0000} * Пароль не должен содержать русских символов.", "{00FF00}>", "{FF0000}X");
- }
- strmid(uS[playerid][u_pass], inputtext, 0, strlen(inputtext), strlen(inputtext)+1);
- ShowPlayerDialog(playerid, DIALOG+3, DIALOG_STYLE_MSGBOX, "{CCEEFF}Регистрация", " выберите пол персонажа:", "{00FF00}М", "{FF0000}Ж");
- //LoadAccount(playerid);
- }
- else return Kick(playerid);
- }
- case DIALOG+3:{
- if(response) uS[playerid][u_sex] = 1, SendClientMessage(playerid, 0x00FF00FF, "Выбран мужской пол (1).");
- else uS[playerid][u_sex] = 2, SendClientMessage(playerid, 0x00FF00FF, "Выбран женский пол (2).");
- new query[512];
- mysql_format(g_SQL, query, sizeof query, "INSERT INTO `users` (`u_name`, `u_pass`, `u_sex`) VALUES ('%e', '%s', '%d')", uS[playerid][u_name], uS[playerid][u_pass], uS[playerid][u_sex]);
- mysql_tquery(g_SQL, query);
- LoadAccount(playerid);
- }
- default: return false;
- }
- return true;
- }
- public OnGameModeInit(){
- g_SQL = mysql_connect("127.0.0.1", "root", "", "database");
- if (g_SQL == MYSQL_INVALID_HANDLE || mysql_errno(g_SQL) != 0) return print(" MySQL > Ошибка подключения.");
- else print(" MySQL > Подключено.");
- SetTimer("UpdateTimers", 250, 1);
- SetGameModeText("Blank Script");
- DisableInteriorEnterExits();
- AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
- AddStaticVehicle(560, 1764.4136,-1938.8630,13.5764, 259.9205, 9,39);
- return true;
- }
- public OnPlayerRequestClass(playerid, classid){
- SetSpawnInfo(playerid, 111, 0, 2026.1704, 1343.6394, 10.8203, 266.7928, 24, 330, 0, 0, 0, 0);
- if(!GetPVarInt(playerid, "class_fix")){
- if(GetPVarInt(playerid, "F4_class_fix")) return SpawnPlayer(playerid);
- TogglePlayerSpectating(playerid, true);
- SetTimerEx("TogglePlayerSpectatingOff", 500, 0, "i", playerid);
- }
- else DeletePVar(playerid, "class_fix"), SpawnPlayer(playerid);
- return true;
- }
- public OnPlayerConnect(playerid){
- SetPVarInt(playerid, "class_fix", 1);
- TogglePlayerSpectating(playerid, true);
- uS[playerid][p_auth] = false;
- SetTimerEx("SetPlayerCameraPosForReqClass", 100, 0, "i", playerid);
- return true;
- }
- forward LoadAccount(playerid);
- public LoadAccount(playerid){
- TogglePlayerSpectating(playerid, false);
- uS[playerid][p_auth] = true;
- new str[76];
- mysql_format(g_SQL, str, sizeof(str), "SELECT * FROM `users` WHERE `u_name` = '%e' LIMIT 1", uS[playerid][u_name]);
- mysql_query(g_SQL, str);
- cache_get_value_name_int(0, "u_id", uS[playerid][u_id]);
- cache_get_value_name_int(0, "u_sex", uS[playerid][u_sex]);
- cache_get_value_name_int(0, "u_lvl", uS[playerid][u_lvl]);
- //
- return true;
- }
- forward SetPlayerCameraPosForReqClass(playerid);
- public SetPlayerCameraPosForReqClass(playerid){
- SetPlayerCameraPos(playerid, -10000, -10000, -10000);
- SetPlayerCameraLookAt(playerid, -10000, -10000, -10000);
- GetPlayerName(playerid, uS[playerid][u_name], MAX_PLAYER_NAME);
- new str[76];
- mysql_format(g_SQL, str, sizeof(str), "SELECT * FROM `users` WHERE `u_name` = '%e' LIMIT 1", uS[playerid][u_name]);
- mysql_query(g_SQL, str);
- if(cache_num_rows() > 0){
- cache_get_value_name(0, "u_pass", uS[playerid][u_pass], 128);
- ShowPlayerDialog(playerid, DIALOG+1, DIALOG_STYLE_PASSWORD, "{CCEEFF}Авторизация", "{FFFFFF}Аккаунт {00FF00}зарегистрирован{FFFFFF}, введите пароль для авторизации:\n{808080} * Пароль должен содержать минимум 6 символов.\n * Пароль не должен содержать русских символов.\n * Пароль не верный.", "{00FF00}>", "{FF0000}X");
- }
- else ShowPlayerDialog(playerid, DIALOG+2, DIALOG_STYLE_INPUT, "{CCEEFF}Регистрация", "{FFFFFF}Аккаунт {FF0000}не зарегистрирован{FFFFFF}, введите пароль для авторизации:\n{808080} * Пароль должен содержать минимум 6 символов.\n * Пароль не должен содержать русских символов.", "{00FF00}>", "{FF0000}X");
- }
- forward TogglePlayerSpectatingOff(playerid);
- public TogglePlayerSpectatingOff(playerid){
- TogglePlayerSpectating(playerid, false),
- SetPVarInt(playerid, "F4_class_fix", GetPVarInt(playerid, "F4_class_fix")+1);
- }
Advertisement
Add Comment
Please, Sign In to add comment