BossArturKA

Untitled

Jun 26th, 2018
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 8.08 KB | None | 0 0
  1. #include <a_samp>
  2. #include    <a_mysql>
  3. new MySQL:g_SQL;
  4. enum eP{
  5.     u_id,
  6.     u_name[MAX_PLAYER_NAME],
  7.     u_pass[128],
  8.     u_sex,
  9.     u_lvl,
  10.     bool:p_auth
  11. };
  12. new uS[MAX_PLAYERS][eP];
  13. enum {
  14.     DIALOG
  15. };
  16. main(){
  17.     print("Load GameMode...");
  18. }
  19. public OnPlayerSpawn(playerid){
  20.     SetPlayerScore(playerid, uS[playerid][u_lvl]);
  21.     DeletePVar(playerid, "F4_class_fix");
  22.     SetPlayerPos(playerid, 1736.7968, -1949.6409, 14.1172);
  23.     SetPlayerFacingAngle(playerid, 280.0);
  24.     ResetPlayerMoney(playerid);
  25.     GivePlayerMoney(playerid, 0);
  26.     GivePlayerWeapon(playerid, 24, 1000);
  27.     return true;
  28. }
  29. new old_s = -1;
  30. forward UpdateTimers();
  31. public UpdateTimers(){
  32.     new h, m, s;
  33.     gettime(h, m, s);
  34.     if(old_s != s){
  35.         old_s = s;
  36.         new uni_str[11];
  37.         format(uni_str, sizeof(uni_str), "  %02d:%02d:%02d", h, m, s);
  38.         SendClientMessageToAll(0xCCEEFF, uni_str);
  39.     }
  40.     return true;
  41. }
  42. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){
  43.     switch(dialogid){
  44.         case DIALOG: return true;
  45.         case DIALOG+1:{
  46.             if(response){
  47.                 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");
  48.                 for(new i = strlen(inputtext); i != -1; --i)
  49.                 switch(inputtext[i]){
  50.                     case 'А'..'Я', 'а'..'я', ' ':
  51.                     return ShowPlayerDialog(playerid, DIALOG+1, DIALOG_STYLE_PASSWORD, "{CCEEFF}Авторизация", "{FFFFFF}Аккаунт {00FF00}зарегистрирован{FFFFFF}, введите пароль для авторизации:\n{808080} * Пароль должен содержать минимум 6 символов.\n{FF0000} * Пароль не должен содержать русских символов.\n{808080} * Пароль не верный.", "{00FF00}>", "{FF0000}X");
  52.                 }
  53.                 if(strlen(inputtext) && !strcmp(inputtext, uS[playerid][u_pass])) return LoadAccount(playerid);
  54.                 else ShowPlayerDialog(playerid, DIALOG+1, DIALOG_STYLE_PASSWORD, "{CCEEFF}Авторизация", "{FFFFFF}Аккаунт {00FF00}зарегистрирован{FFFFFF}, введите пароль для авторизации:\n{808080} * Пароль должен содержать минимум 6 символов.\n * Пароль не должен содержать русских символов.\n{FF0000} * Пароль не верный.", "{00FF00}>", "{FF0000}X");
  55.             }
  56.             else return Kick(playerid);
  57.         }
  58.         case DIALOG+2:{
  59.             if(response){
  60.                 if(strlen(inputtext) < 6) return ShowPlayerDialog(playerid, DIALOG+2, DIALOG_STYLE_INPUT, "{CCEEFF}Регистрация", "{FFFFFF}Аккаунт {FF0000}не зарегистрирован{FFFFFF}, введите пароль для регистрации:\n{FF0000} * Пароль должен содержать минимум 6 символов.\n{808080} * Пароль не должен содержать русских символов.", "{00FF00}>", "{FF0000}X");
  61.                 for(new i = strlen(inputtext); i != -1; --i)
  62.                 switch(inputtext[i]){
  63.                 case 'А'..'Я', 'а'..'я', ' ':
  64.                     return ShowPlayerDialog(playerid, DIALOG+2, DIALOG_STYLE_INPUT, "{CCEEFF}Регистрация", "{FFFFFF}Аккаунт {FF0000}не зарегистрирован{FFFFFF}, введите пароль для регистрации:\n{808080} * Пароль должен содержать минимум 6 символов.\n{FF0000} * Пароль не должен содержать русских символов.", "{00FF00}>", "{FF0000}X");
  65.                 }
  66.                 strmid(uS[playerid][u_pass], inputtext, 0, strlen(inputtext), strlen(inputtext)+1);
  67.                 ShowPlayerDialog(playerid, DIALOG+3, DIALOG_STYLE_MSGBOX, "{CCEEFF}Регистрация", " выберите пол персонажа:", "{00FF00}М", "{FF0000}Ж");
  68.  
  69.                 //LoadAccount(playerid);
  70.             }
  71.             else return Kick(playerid);
  72.         }
  73.         case DIALOG+3:{
  74.             if(response) uS[playerid][u_sex] = 1, SendClientMessage(playerid, 0x00FF00FF, "Выбран мужской пол (1).");
  75.             else uS[playerid][u_sex] = 2, SendClientMessage(playerid, 0x00FF00FF, "Выбран женский пол (2).");
  76.             new query[512];
  77.             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]);
  78.             mysql_tquery(g_SQL, query);
  79.             LoadAccount(playerid);
  80.         }
  81.         default: return false;
  82.     }
  83.     return true;
  84. }
  85. public OnGameModeInit(){
  86.     g_SQL = mysql_connect("127.0.0.1", "root", "", "database");
  87.     if (g_SQL == MYSQL_INVALID_HANDLE || mysql_errno(g_SQL) != 0) return print(" MySQL > Ошибка подключения.");
  88.     else print(" MySQL > Подключено.");
  89.     SetTimer("UpdateTimers", 250, 1);
  90.     SetGameModeText("Blank Script");
  91.     DisableInteriorEnterExits();
  92.     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  93.     AddStaticVehicle(560, 1764.4136,-1938.8630,13.5764, 259.9205, 9,39);
  94.     return true;
  95. }
  96. public OnPlayerRequestClass(playerid, classid){
  97.     SetSpawnInfo(playerid, 111, 0, 2026.1704, 1343.6394, 10.8203, 266.7928, 24, 330, 0, 0, 0, 0);
  98.     if(!GetPVarInt(playerid, "class_fix")){
  99.         if(GetPVarInt(playerid, "F4_class_fix")) return SpawnPlayer(playerid);
  100.         TogglePlayerSpectating(playerid, true);
  101.         SetTimerEx("TogglePlayerSpectatingOff", 500, 0, "i", playerid);
  102.     }
  103.     else DeletePVar(playerid, "class_fix"), SpawnPlayer(playerid);
  104.     return true;
  105. }
  106. public OnPlayerConnect(playerid){
  107.     SetPVarInt(playerid, "class_fix", 1);
  108.     TogglePlayerSpectating(playerid, true);
  109.     uS[playerid][p_auth] = false;
  110.     SetTimerEx("SetPlayerCameraPosForReqClass", 100, 0, "i", playerid);
  111.     return true;
  112. }
  113. forward LoadAccount(playerid);
  114. public LoadAccount(playerid){
  115.     TogglePlayerSpectating(playerid, false);
  116.     uS[playerid][p_auth] = true;
  117.     new str[76];
  118.     mysql_format(g_SQL, str, sizeof(str), "SELECT * FROM `users` WHERE `u_name` = '%e' LIMIT 1", uS[playerid][u_name]);
  119.     mysql_query(g_SQL, str);
  120.     cache_get_value_name_int(0, "u_id", uS[playerid][u_id]);
  121.     cache_get_value_name_int(0, "u_sex", uS[playerid][u_sex]);
  122.     cache_get_value_name_int(0, "u_lvl", uS[playerid][u_lvl]);
  123. //
  124.  
  125.    
  126.     return true;
  127. }
  128. forward SetPlayerCameraPosForReqClass(playerid);
  129. public SetPlayerCameraPosForReqClass(playerid){
  130.     SetPlayerCameraPos(playerid, -10000, -10000, -10000);
  131.     SetPlayerCameraLookAt(playerid, -10000, -10000, -10000);
  132.     GetPlayerName(playerid, uS[playerid][u_name], MAX_PLAYER_NAME);
  133.     new str[76];
  134.     mysql_format(g_SQL, str, sizeof(str), "SELECT * FROM `users` WHERE `u_name` = '%e' LIMIT 1", uS[playerid][u_name]);
  135.     mysql_query(g_SQL, str);
  136.     if(cache_num_rows() > 0){
  137.         cache_get_value_name(0, "u_pass", uS[playerid][u_pass], 128);
  138.         ShowPlayerDialog(playerid, DIALOG+1, DIALOG_STYLE_PASSWORD, "{CCEEFF}Авторизация", "{FFFFFF}Аккаунт {00FF00}зарегистрирован{FFFFFF}, введите пароль для авторизации:\n{808080} * Пароль должен содержать минимум 6 символов.\n * Пароль не должен содержать русских символов.\n * Пароль не верный.", "{00FF00}>", "{FF0000}X");
  139.     }
  140.     else ShowPlayerDialog(playerid, DIALOG+2, DIALOG_STYLE_INPUT, "{CCEEFF}Регистрация", "{FFFFFF}Аккаунт {FF0000}не зарегистрирован{FFFFFF}, введите пароль для авторизации:\n{808080} * Пароль должен содержать минимум 6 символов.\n * Пароль не должен содержать русских символов.", "{00FF00}>", "{FF0000}X");
  141. }
  142. forward TogglePlayerSpectatingOff(playerid);
  143. public TogglePlayerSpectatingOff(playerid){
  144.     TogglePlayerSpectating(playerid, false),
  145.     SetPVarInt(playerid, "F4_class_fix", GetPVarInt(playerid, "F4_class_fix")+1);
  146. }
Advertisement
Add Comment
Please, Sign In to add comment