Advertisement
Guest User

Dini Registration System

a guest
Apr 2nd, 2013
290
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 10.41 KB | None | 0 0
  1. #define FILTERSCRIPT
  2. #include <a_samp>
  3. #include <Dini>
  4. #if defined FILTERSCRIPT
  5. #undef MAX_PLAYERS
  6. #define MAX_PLAYERS 30 //Укажите тут число, равное числу слотов на вашем сервере.
  7. new Death[MAX_PLAYERS];
  8. new Online[MAX_PLAYERS];
  9. new pname[25], Float:X, Float:Y, Float:Z;
  10. new string1[29];
  11. public OnPlayerConnect(playerid)
  12. {
  13.     GetPlayerName(playerid, pname, sizeof(pname));
  14.     format(string1, 29, "%s.txt", pname);
  15.     if(!dini_Exists(string1))
  16.     {
  17.         ShowPlayerDialog(playerid, 1234, DIALOG_STYLE_INPUT, "Регистрация", "Чтобы зарегистрироваться:\n - Придумайте пароль\n - Впишите его ниже.", "Готово", "Выход");
  18.         return 1;
  19.     }
  20.     else if(dini_Exists(string1))
  21.     {
  22.         ShowPlayerDialog(playerid, 1235, DIALOG_STYLE_INPUT, "Логин", "Введите свой пароль ниже.", "Готово", "Выход");
  23.         return 1;
  24.     }
  25.     return 1;
  26. }
  27. public OnPlayerSpawn(playerid)
  28. {
  29.     GetPlayerName(playerid, pname, sizeof(pname));
  30.     format(string1, 29, "%s.txt", pname);
  31.     SetPlayerSkin(playerid, dini_Int(string1, "Skin"));
  32.     return 1;
  33. }
  34. public OnPlayerDisconnect(playerid, reason)
  35. {
  36.     Online[playerid] = 0;
  37.     dini_BoolSet(string1, "Online", Online[playerid]);
  38.     GetPlayerName(playerid, pname, sizeof(pname));
  39.     format(string1, 29, "%s.txt", pname);
  40.     dini_IntSet(string1, "Money", GetPlayerMoney(playerid));
  41.     dini_IntSet(string1, "Score", GetPlayerScore(playerid));
  42.     GetPlayerPos(playerid, X, Y, Z);
  43.     dini_FloatSet(string1, "X", X);
  44.     dini_FloatSet(string1, "Y", Y);
  45.     dini_FloatSet(string1, "Z", Z);
  46.     dini_IntSet(string1, "Death", Death[playerid]);
  47.     dini_IntSet(string1, "Skin", GetPlayerSkin(playerid));
  48.     return 1;
  49. }
  50.  
  51. public OnPlayerDeath(playerid, killerid, reason)
  52. {
  53.     GetPlayerName(playerid, pname, sizeof(pname));
  54.     format(string1, 29, "%s.txt", pname);
  55.     Death[playerid]++;
  56.     SetPlayerScore(killerid, GetPlayerScore(killerid)+1);
  57.     GetPlayerPos(playerid, X, Y, Z);
  58.     dini_IntSet(string1, "Skin", GetPlayerSkin(playerid));
  59.     dini_FloatSet(string1, "X", X);
  60.     dini_FloatSet(string1, "Y", Y);
  61.     dini_FloatSet(string1, "Z", Z);
  62.     return 1;
  63. }
  64.  
  65. public OnPlayerUpdate(playerid)
  66. {
  67.     GetPlayerName(playerid, pname, sizeof(pname));
  68.     format(string1, 29, "%s.txt", pname);
  69.     dini_IntSet(string1, "Money", GetPlayerMoney(playerid));
  70.     dini_IntSet(string1, "Score", GetPlayerScore(playerid));
  71.     dini_IntSet(string1, "Death", Death[playerid]);
  72.     dini_IntSet(string1, "Skin", GetPlayerSkin(playerid));
  73.     return 1;
  74. }
  75. public OnPlayerCommandText(playerid, cmdtext[])
  76. {
  77.     if(strcmp(cmdtext, "/changepass", true) == 0)
  78.     {
  79.         ShowPlayerDialog(playerid, 1236, DIALOG_STYLE_INPUT, "Смена пароля", "Введите текущий пароль", "Готово", "Выход");
  80.         return 1;
  81.     }
  82.     if(strcmp(cmdtext, "/gotooldpos", true) == 0)
  83.     {
  84.         GetPlayerName(playerid, pname, sizeof(pname));
  85.         format(string1, 29, "%s.txt", pname);
  86.         SetPlayerPos(playerid, dini_Float(string1, "X"), dini_Float(string1, "Y"), dini_Float(string1, "Z"));
  87.         return 1;
  88.     }
  89.     if(strcmp(cmdtext, "/mystats", true) == 0)
  90.     {
  91.         new stats[256], fass[256];
  92.         GetPlayerName(playerid, pname, sizeof(pname));
  93.         format(string1, 29, "%s.txt", pname);
  94.         strcat(stats, "Ваш ник: %s (%d)\n");
  95.         strcat(stats, "Ваши очки: %d\n");
  96.         strcat(stats, "Ваши смерти: %d\n");
  97.         strcat(stats, "Ваши деньги: %d\n");
  98.         strcat(stats, "Ваш скин: %d\n");
  99.         strcat(stats, "Ваш статус: {00ff00}Онлайн");
  100.         format(fass, 256, stats, pname, playerid, dini_Int(string1, "Score"), dini_Int(string1, "Death"), dini_Int(string1, "Money"), dini_Int(string1, "Skin"));
  101.         ShowPlayerDialog(playerid, 292, DIALOG_STYLE_MSGBOX, "Ваша статистика", fass, "Ок", "");
  102.         return 1;
  103.     }
  104.     if(strcmp(cmdtext, "/pstats", true) == 0)
  105.     {
  106.         ShowPlayerDialog(playerid, 293, DIALOG_STYLE_INPUT, "Статистика игрока", "Введите ID/Имя игрока", "Ок", "Выход");
  107.         return 1;
  108.     }
  109.     return 0;
  110. }
  111. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  112. {
  113.     GetPlayerName(playerid, pname, sizeof(pname));
  114.     format(string1, 29, "%s.txt", pname);
  115.     if(dialogid == 293)
  116.     {
  117.         if(response)
  118.         {
  119.             if(Numbers(inputtext))
  120.             {
  121.                 if(IsPlayerConnected(strval(inputtext)))
  122.                 {
  123.                     new string23[29], pname2[25];
  124.                     GetPlayerName(strval(inputtext), pname2, sizeof(pname2));
  125.                     format(string23, 29, "%s.txt", pname2);
  126.                     new stats[256], fass[256];
  127.                     strcat(stats, "Ник: %s (%d)\n");
  128.                     strcat(stats, "Очки: %d\n");
  129.                     strcat(stats, "Смерти: %d\n");
  130.                     strcat(stats, "Деньги: %d\n");
  131.                     strcat(stats, "Скин: %d\n");
  132.                     strcat(stats, "Статус: {00ff00}Онлайн");
  133.                     format(fass, 256, stats, pname2, strval(inputtext), dini_Int(string23, "Score"), dini_Int(string23, "Death"), dini_Int(string23, "Money"), dini_Int(string23, "Skin"));
  134.                     ShowPlayerDialog(playerid, 292, DIALOG_STYLE_MSGBOX, "Cтатистика игрока", fass, "Ок", "");
  135.                 }
  136.                 else SendClientMessage(playerid, 0xFF0000FF, "Данный игрок оффлайн");
  137.             }
  138.             else
  139.             {
  140.                 new string12[29];
  141.                 format(string12, 29, "%s.txt", inputtext);
  142.                 if(dini_Exists(string12))
  143.                 {
  144.                     new stats[256], fass[256];
  145.                     strcat(stats, "Ник: %s\n");
  146.                     strcat(stats, "Очки: %d\n");
  147.                     strcat(stats, "Смерти: %d\n");
  148.                     strcat(stats, "Деньги: %d\n");
  149.                     strcat(stats, "Скин: %d\n");
  150.                     if(dini_Bool(string12, "Online") == 1) strcat(stats, "Статус: {00ff00}Онлайн");
  151.                     else if(dini_Bool(string12, "Online") == 0) strcat(stats, "Статус: {ff0000}Оффлайн");
  152.                     format(fass, 256, stats, dini_Get(string12, "Name"), dini_Int(string12, "Score"), dini_Int(string12, "Death"), dini_Int(string12, "Money"), dini_Int(string12, "Skin"));
  153.                     ShowPlayerDialog(playerid, 292, DIALOG_STYLE_MSGBOX, "Cтатистика игрока", fass, "Ок", "");
  154.                 }
  155.                 else SendClientMessage(playerid, 0xFF0000FF, "Данный игрок не найден");
  156.             }
  157.         }
  158.         else return 1;
  159.     }
  160.     if(dialogid == 1234)
  161.     {
  162.         if(response)
  163.         {
  164.             if(strval(inputtext) > 10)
  165.             {
  166.                 SendClientMessage(playerid, 0xFF0000FF, "Пароль должен быть меньше 10 символов");
  167.                 ShowPlayerDialog(playerid, 1234, DIALOG_STYLE_INPUT, "Регистрация", "Чтобы зарегистрироваться:\n - Придумайте пароль\n - Впишите его ниже.", "Готово", "Выход");
  168.                 return 1;
  169.             }
  170.             else
  171.             {
  172.                 new password[10], string2[100];
  173.                 GetPlayerPos(playerid, X, Y, Z);
  174.                 Death[playerid] = 0;
  175.                 dini_Create(string1);
  176.                 format(password, 10, "%s", inputtext);
  177.                 format(string2, 100, "Ваш пароль - %s", inputtext);
  178.                 dini_Set(string1, "Name", pname);
  179.                 dini_Set(string1, "Password", inputtext);
  180.                 dini_IntSet(string1, "Money", GetPlayerMoney(playerid));
  181.                 dini_IntSet(string1, "Score", GetPlayerScore(playerid));
  182.                 dini_IntSet(string1, "Death", Death[playerid]);
  183.                 dini_IntSet(string1, "Skin", GetPlayerSkin(playerid));
  184.                 dini_FloatSet(string1, "X", X);
  185.                 dini_FloatSet(string1, "Y", Y);
  186.                 dini_FloatSet(string1, "Z", Z);
  187.                 dini_BoolSet(string1, "Online", Online[playerid]);
  188.                 SendClientMessage(playerid, 0x00FF00FF, "Вы успешно зарегистрированы");
  189.                 SendClientMessage(playerid, 0x00FF00FF, string2);
  190.                 return 1;
  191.             }
  192.         }
  193.         else ShowPlayerDialog(playerid, 1234, DIALOG_STYLE_INPUT, "Регистрация", "Чтобы зарегистрироваться:\n - Придумайте пароль\n - Впишите его ниже.", "Готово", "Выход");
  194.     }
  195.     if(dialogid == 1235)
  196.     {
  197.         if(response)
  198.         {
  199.             new pw[200];
  200.             format(pw, sizeof(pw), "%s", dini_Get(string1, "Password"));
  201.             if(strcmp(inputtext, pw) != 0)
  202.             {
  203.                 SendClientMessage(playerid, 0xFF0000FF, "Пароль не верный");
  204.                 ShowPlayerDialog(playerid, 1235, DIALOG_STYLE_INPUT, "Логин", "Введите свой пароль ниже.", "Готово", "Выход");
  205.                 return 1;
  206.             }
  207.             else
  208.             {
  209.                
  210.                 SetPlayerMoney(playerid, dini_Int(string1,"Money"));
  211.                 SetPlayerScore(playerid, dini_Int(string1,"Score"));
  212.                 dini_Int(string1, "Death");
  213.                 SendClientMessage(playerid, 0x00FF00FF, "Пароль верный. Вы успешно вошли");
  214.                 Online[playerid] = 1;
  215.                 dini_BoolSet(string1, "Online", Online[playerid]);
  216.                 return 1;
  217.             }
  218.         }
  219.         else ShowPlayerDialog(playerid, 1235, DIALOG_STYLE_INPUT, "Логин", "Введите свой пароль ниже.", "Готово", "Выход");
  220.     }
  221.     if(dialogid == 1236)
  222.     {
  223.         if(response)
  224.         {
  225.             new pw[200];
  226.             format(pw, sizeof(pw), "%s", dini_Get(string1, "Password"));
  227.             if(strcmp(inputtext, pw) != 0)
  228.             {
  229.                 SendClientMessage(playerid, 0xFF0000FF, "Пароль не верный.");
  230.                 return 1;
  231.             }
  232.             else
  233.             {
  234.                 SendClientMessage(playerid, 0x00FF00FF, "Пароль верный");
  235.                 ShowPlayerDialog(playerid, 1237, DIALOG_STYLE_INPUT, "Смена пароля", "Введите новый пароль", "Готово", "Выход");
  236.             }
  237.         }
  238.     }
  239.     if(dialogid == 1237)
  240.     {
  241.         if(response)
  242.         {
  243.             if(strval(inputtext) > 10)
  244.             {
  245.                 SendClientMessage(playerid, 0xFF0000FF, "Пароль должен быть меньше 10 символов");
  246.                 ShowPlayerDialog(playerid, 1237, DIALOG_STYLE_INPUT, "Смена пароля", "Введите новый пароль", "Готово", "Выход");
  247.                 return 1;
  248.             }
  249.             else
  250.             {
  251.                 new password[10], string3[100];
  252.                 format(password, 10, "%s", inputtext);
  253.                 format(string3, 100, "Ваш новый пароль - %s", inputtext);
  254.                 dini_Set(string1, "Password", inputtext);
  255.                 SendClientMessage(playerid, 0x00FF00FF, "Вы успешно сменили пароль");
  256.                 SendClientMessage(playerid, 0x00FF00FF, string3);
  257.                 return 1;
  258.             }
  259.         }
  260.     }
  261.     return 1;
  262. }
  263. stock SetPlayerMoney(playerid, money)
  264. {
  265.     ResetPlayerMoney(playerid);
  266.     GivePlayerMoney(playerid, money);
  267.     return 0;
  268. }
  269. stock Numbers(string[])
  270. {
  271.     for (new i = 0, j = strlen(string); i < j; i++)
  272.     {
  273.         if (string[i] > '9' || string[i] < '0') return 0;
  274.     }
  275.     return 1;
  276. }
  277. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement