Вопросы

Как сделать рандомный админ пародь с буквами и цифрами? Чтобы было по типу "Ваш пароль к админ.доступу: (2 рандомные маленькие английские буквы.), (4 рандомные цифры).

Поделиться сообщением


Ссылка на сообщение

17 ответов на этот вопрос

  • 0

@R0m4ik, ничего вставлять не нужно.

 

Вы немного неправильно вставили то, что Вам было дано. Код генерации пароля вставьте туда, где вам нужно получить случайный пароль администратора:

new randPassword[7] = "";
randPassword[0] = getLowerLatinLetter();
randPassword[1] = getLowerLatinLetter();
randPassword[2] = getDigit();
randPassword[3] = getDigit();
randPassword[4] = getDigit();
randPassword[5] = getDigit();

А функции вставьте, например, в конец в начало игрового мода:

stock getLowerLatinLetter()
{
	return 97 + random(26);
}

stock getUpperLatinLetter()
{
	return 65 + random(26);
}

stock getDigit()
{
	return 48 + random(10);
}

Все остальное Вам было дано лишь в пример - можете удалить.

Поделиться сообщением


Ссылка на сообщение
  • 0

@R0m4ik просто 2 массива с хаглавными буквами и числами, и рандомная генерация индекса.

Поделиться сообщением


Ссылка на сообщение
  • 0
22 минуты назад, keyl сказал:

@R0m4ik просто 2 массива с хаглавными буквами и числами, и рандомная генерация индекса.

А как? Я просто не умею

Если что вот моя команда выдачи админки 

CMD:madmin(playerid, params[])
{
    new string[256];
        if(PlayerLogged[playerid] == 0) return 1;
        if(PlayerInfo[playerid][pAdmin] < 10 || AdminLogged[playerid] == false) return 1;
        new admin[MAX_PLAYER_NAME];
        GetPlayerName(playerid, admin, sizeof(admin));
        {
        if(sscanf(params, "ud", params[0],params[1])) return SendMes(playerid, COLOR_WHITE, "Ââåäèòå: /madmin [playerid] [level(1-7)]");
            if(params[1] > 13 || params[1] < 0) return SendClientMessage(playerid, COLOR_GREY, "Óðîâåíü àäìèíêè äîëæåí áûòü îò 1 äî 10.");
            if(params[1] == 0) return PlayerInfo[params[0]][pAdmin] = params[1],AdminLogged[params[0]] = false,SendMes(playerid,0x3bd1d1ff, " Âû íàçíà÷èëè %s àäìèíèñòðàòîðîì óðîâíÿ {FF0000}0.", sendername(params[0])),SendMes(params[0],0x3bd1d1ff, " Âû áûëè íàçíà÷åíû àäìèíèñòðàòîðîì óðîâíÿ {FF0000}0");
                format(string, 128, "%s íàçíà÷èë íîâîãî àäìèíèñòðàòîðà %s", sendername(playerid), PlayerInfo[playerid][pSendername]);
                SendAdminMessage(COLOR_YELLOW, string);
        format(totalstring, 100, " Âû íàçíà÷èëè %s àäìèíèñòðàòîðîì óðîâíÿ {FF0000}%d.", sendername(params[0]), params[1]);
                SendClientMessage(playerid,0x3BD1D1FF, totalstring);
                format(totalstring, 100, " Âû áûëè íàçíà÷åíû àäìèíèñòðàòîðîì óðîâíÿ {FF0000}%d",params[1]);
                SendClientMessage(params[0],0x3BD1D1FF, totalstring);
                PlayerInfo[params[0]][pAdmin] = params[1];
                SendMes(params[0], 0xF272DDFF, " Âàø ïàðîëü ê àäìèí.äîñòóïó: {FFFFFF}%s",PlayerInfo[playerid][pDostup]);
        }
        if(!strcmp(admin, "", true))
        {
        if(sscanf(params, "ud", params[0],params[1])) return SendMes(playerid, COLOR_WHITE, "");
            if(params[1] == 0) return PlayerInfo[params[0]][pAdmin] = params[1],AdminLogged[params[0]] = false,SendMes(playerid,0x3bd1d1ff, " Âû íàçíà÷èëè %s àäìèíèñòðàòîðîì óðîâíÿ {FF0000}0.", sendername(params[0])),SendMes(params[0],0x3bd1d1ff, " Âû áûëè íàçíà÷åíû àäìèíèñòðàòîðîì óðîâíÿ {FF0000}0");
                format(string, 128, "%s íàçíà÷èë íîâîãî àäìèíèñòðàòîðà %s", sendername(playerid), PlayerInfo[playerid][pSendername]);
                SendAdminMessage(COLOR_YELLOW, string);
                format(totalstring, 100, " {3bd1d1}Âû íàçíà÷èëè %s àäìèíèñòðàòîðîì óðîâíÿ {FF0000}%d.", sendername(params[0]), params[1]);
                SendClientMessage(playerid,0x3BD1D1FF, totalstring);
                format(totalstring, 100, " {3bd1d1}Âû áûëè íàçíà÷åíû àäìèíèñòðàòîðîì óðîâíÿ {FF0000}%d",params[1]);
                SendClientMessage(params[0],0x3BD1D1FF, totalstring);
                PlayerInfo[params[0]][pAdmin] = params[1];
                SendMes(params[0], 0xF272DDFF, " Âàø ïàðîëü ê àäìèí.äîñòóïó: {FFFFFF}%s",PlayerInfo[playerid][pDostup]);
        }
        if(!strcmp(admin, "", true))
        {
        if(sscanf(params, "ud", params[0],params[1])) return SendMes(playerid, COLOR_WHITE, "");
            if(params[1] == 0) return PlayerInfo[params[0]][pAdmin] = params[1],AdminLogged[params[0]] = false,SendMes(playerid,COLOR_WHITE, " Âû íàçíà÷èëè %s àäìèíèñòðàòîðîì óðîâíÿ {FF0000}0.", sendername(params[0])),SendMes(params[0],0x3bd1d1ff, " Âû áûëè íàçíà÷åíû àäìèíèñòðàòîðîì óðîâíÿ {FF0000}0");
                format(string, 128, "%s íàçíà÷èë íîâîãî àäìèíèñòðàòîðà %s", sendername(playerid), PlayerInfo[playerid][pSendername]);
                SendAdminMessage(COLOR_YELLOW, string);
                format(totalstring, 100, " Âû íàçíà÷èëè %s àäìèíèñòðàòîðîì óðîâíÿ {FF0000}%d.", sendername(params[0]), params[1]);
                SendClientMessage(playerid,0x3BD1D1FF, totalstring);
                format(totalstring, 100, " Âû áûëè íàçíà÷åíû àäìèíèñòðàòîðîì óðîâíÿ {FF0000}%d",params[1]);
                SendClientMessage(params[0],0x3BD1D1FF, totalstring);
                PlayerInfo[params[0]][pAdmin] = params[1];
                SendMes(params[0], 0xF272DDFF, " Âàø ïàðîëü ê àäìèí.äîñòóïó: {FFFFFF}%s",PlayerInfo[playerid][pDostup]);
        }
        return 1;
}

Поделиться сообщением


Ссылка на сообщение
  • 0

Ребят ну помогите кто нибудь

 

Поделиться сообщением


Ссылка на сообщение
  • 0
17 минут назад, R0m4ik сказал:

Ребят ну помогите кто нибудь

 

https://pawno-rus.ru/topic/645-generator-paroley/

Поделиться сообщением


Ссылка на сообщение
  • 0

К чему такие сложности? Открываем таблицу ASCII символов. Строчные буквы латинского алфавита имеют номера 97 - 122 (26 букв). Цифры имеют номера 48-57 (10 цифр). Соответственно...

  1. Для того, чтобы сгенерировать случайную букву, достаточно получить случайное число из диапазона 0 - 25 функцией random и прибавить к нему 97, что даст случайное число из диапазона 97 - 122.
  2. Для того, чтобы сгенерировать случайную цифру, достаточно получить случайное число из диапазона 0 - 9 функцией random и прибавить к нему 48, что даст случайное число из диапазона 48 - 57.

Теперь ближе к практике. Вам необходимо видеть строку из 4 случайных латинских строчных букв и 2 цифр. Создаем массив на 7 ячеек (первые 4 - под буквы, 2 - под цифры и последняя ячейка под хранение символа конца строки).

new randPassword[7] = "";

Далее начинаем заполнять на основе информации из нумерованного списка.

new randPassword[7];
randPassword[0] = 97 + random(26); // буква из диапазона 97 .. (97 + 25)
randPassword[1] = 97 + random(26); // буква из диапазона 97 .. (97 + 25)
randPassword[2] = 97 + random(26); // буква из диапазона 97 .. (97 + 25)
randPassword[3] = 97 + random(26); // буква из диапазона 97 .. (97 + 25)
randPassword[4] = 48 + random(10); // цифра из диапазона 48 .. (48 + 9)
randPassword[5] = 48 + random(10); // цифра из диапазона 48 .. (48 + 9)

Ну, и используйте теперь randPassword как строку с паролем. Например,

new string[29 + (-2+7) + 1];
format(string, sizeof string, "Ваш пароль администратора: %s", randPassword);
SendClientMessage(playerid, -1, string);

Для удобства понимания можно создать функции, которые будут возвращать символ цифры или латинской буквы.

stock getLowerLatinLetter() { // возврат строчного латинского символа
	return 97 + random(26);
}

stock getUpperLatinLetter() { // возврат прописного латинского символа
	return 65 + random(26);
}

stock getDigit() { // возврат символа цифры
	return 48 + random(10);
}

Это позволит в дальнейшем использовать следующий вариант формирования пароля:

new randPassword[7];
randPassword[0] = getLowerLatinLetter();
randPassword[1] = getLowerLatinLetter();
randPassword[2] = getLowerLatinLetter();
randPassword[3] = getLowerLatinLetter();
randPassword[4] = getDigit();
randPassword[5] = getDigit();

* Все случайные числа - псевдослучайны.

** Строчные буквы - это маленькие, а прописные - большие.

Поделиться сообщением


Ссылка на сообщение
  • 0
23 минуты назад, Снеговик сказал:

К чему такие сложности? Открываем таблицу ASCII символов. Строчные буквы латинского алфавита имеют номера 97 - 122 (26 букв). Цифры имеют номера 48-57 (10 цифр). Соответственно...

  1. Для того, чтобы сгенерировать случайную букву, достаточно получить случайное число из диапазона 0 - 25 функцией random и прибавить к нему 97, что даст случайное число из диапазона 97 - 122.
  2. Для того, чтобы сгенерировать случайную цифру, достаточно получить случайное число из диапазона 0 - 9 функцией random и прибавить к нему 48, что даст случайное число из диапазона 48 - 57.

Теперь ближе к практике. Вам необходимо видеть строку из 4 случайных латинских строчных букв и 2 цифр. Создаем массив на 7 ячеек (первые 4 - под буквы, 2 - под цифры и последняя ячейка под хранение символа конца строки).


new randPassword[7] = "";

Ну, и начинаем заполнять на основе информации из нумерованного списка.


new randPassword[7];
randPassword[0] = 97 + random(26); // буква из диапазона 97 .. (97 + 25)
randPassword[1] = 97 + random(26); // буква из диапазона 97 .. (97 + 25)
randPassword[2] = 97 + random(26); // буква из диапазона 97 .. (97 + 25)
randPassword[3] = 97 + random(26); // буква из диапазона 97 .. (97 + 25)
randPassword[4] = 48 + random(10); // цифра из диапазона 48 .. (48 + 9)
randPassword[5] = 48 + random(10); // цифра из диапазона 48 .. (48 + 9)

Ну, и используйте теперь randPassword как строку с паролем. Например,


new string[29 + (-2+7) + 1];
format(string, sizeof string, "Ваш пароль администратора: %s", randPassword);
SendClientMessage(playerid, -1, string);

Для удобства понимания можно создать функции, которые будут возвращать символ цифры или латинской буквы.


stock getLowerLatinLetter() { // возврат строчного латинского символа
	return 97 + random(26);
}

stock getUpperLatinLetter() { // возврат прописного латинского символа
	return 65 + random(26);
}

stock getDigit() { // возврат символа цифры
	return 48 + random(10);
}

Это позволит в дальнейшем использовать следующий вариант формирования пароля:


new randPassword[7];
randPassword[0] = getLowerLatinLetter();
randPassword[1] = getLowerLatinLetter();
randPassword[2] = getLowerLatinLetter();
randPassword[3] = getLowerLatinLetter();
randPassword[4] = getDigit();
randPassword[5] = getDigit();

* Все случайные числа - псевдослучайны.

** Строчные буквы - это маленькие, а прописные - большие.

А почему не устроил вариант от "m1n1vv" ? 

Отредактировано пользователем LoX_1337

Поделиться сообщением


Ссылка на сообщение
  • 0

@LoX_1337, а его вариант я и не смотрел :) Лень поглотила меня.

 

upd. Его вариант немного не удовлетворяет требованиям автора сей темы. Подозреваю, что @R0m4ik не захочет переделывать вариант @m1n1vv под себя. Приношу глубочайшие извинения пользователю @R0m4ik, если я недооценил его.

Поделиться сообщением


Ссылка на сообщение
  • 0
2 минуты назад, Снеговик сказал:

@LoX_1337, а его вариант я и не смотрел :) Лень поглотила меня.

Будьте внимательнее, а то потеряйте слишком много времени. :dada:

Поделиться сообщением


Ссылка на сообщение
  • 0

C:\Users\Roma\Desktop\REVENT RP BY SOSED\gamemodes\justice.pwn(357) : error 021: symbol already defined: "randPassword"

Поделиться сообщением


Ссылка на сообщение
  • 0

@R0m4ik, удалите:

new randPassword[7];

 

Поделиться сообщением


Ссылка на сообщение
  • 0

Убрал теперь это C:\Users\Roma\Desktop\REVENT RP BY SOSED\gamemodes\justice.pwn(357) : error 010: invalid function or declaration

 

Поделиться сообщением


Ссылка на сообщение
  • 0

@R0m4ik, прикладывайте код с указанием номеров строк.

Поделиться сообщением


Ссылка на сообщение
  • 0
21 минуту назад, Снеговик сказал:

@R0m4ik, прикладывайте код с указанием номеров строк.

А как?

Заметка от Cawfee , создано

Как пользоваться тегом "Код"?

Поделиться сообщением


Ссылка на сообщение
  • 0

Ребят помогите чё здесь не так?

 

C:\Users\Roma\Desktop\REVENT RP BY SOSED\gamemodes\justice.pwn(357) : error 010: invalid function or declaration
  
new randPassword[7] = "";
randPassword[0] = getLowerLatinLetter();
randPassword[1] = getLowerLatinLetter();
randPassword[2] = getDigit();
randPassword[3] = getDigit();
randPassword[4] = getDigit();
randPassword[5] = getDigit();

stock getLowerLatinLetter()
{
	return 97 + random(26);
}

stock getUpperLatinLetter()
{
	return 65 + random(26);
}

stock getDigit()
{
	return 48 + random(10);
}

		new string[29 + (-2+7) + 1];
		format(string, sizeof string, " {F272DD}Ваш пароль к админ.доступу: {FFFFFF}%s", randPassword);
		SendClientMessage(playerid, -1, string);

 

 

Отредактировано пользователем R0m4ik

Поделиться сообщением


Ссылка на сообщение
  • 0

@Снеговик Вопрос а что сюда вставлять?

 

new randPassword[7] = "";

 

Отредактировано пользователем R0m4ik

Поделиться сообщением


Ссылка на сообщение
  • 0

 

15 минут назад, Снеговик сказал:

@R0m4ik, ничего вставлять не нужно.

 

Вы немного неправильно вставили то, что Вам было дано. Код генерации пароля вставьте туда, где вам нужно получить случайный пароль администратора:


new randPassword[7] = "";
randPassword[0] = getLowerLatinLetter();
randPassword[1] = getLowerLatinLetter();
randPassword[2] = getDigit();
randPassword[3] = getDigit();
randPassword[4] = getDigit();
randPassword[5] = getDigit();

А функции вставьте, например, в конец в начало игрового мода:


stock getLowerLatinLetter()
{
	return 97 + random(26);
}

stock getUpperLatinLetter()
{
	return 65 + random(26);
}

stock getDigit()
{
	return 48 + random(10);
}

Все остальное Вам было дано лишь в пример - можете удалить.

@Снеговик  Спасибо вам огромное всё отлично функционирует!

Заметка от keyl , создано

2.8. Если вы нашли ответ на свой вопрос, рекомендуется поощрить автора лучшего ответа поднятием репутации, а также обязательно пометить ответ на вопрос лучшим.  Как пометить ответ лучшим?

Устное предупреждение.

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Mister Odin
      От Mister Odin
       
      new
       g_teleport_list[39][E_TELEPORT_LIST] = {  {"Спавн пгт.Батырево", 1802.3612, 2508.4824, 15.8887},  {"Спавн г.Арзамас", -113.5887, 977.7222, 12.0346},     {"Спавн г.Южный", 2744.2770, -2446.7246, 21.8988},     {"Центральный банк", 1852.020385,2040.791381,15.892713},  {"Рублёвка", -837.7783, 888.6161, 12.7232},  {"Казино", 1332.4252, 2358.7014, 17.6641},  {"Битва за контейнеры", 614.5167, 1722.3566, 12.0709},  {"Автосалон низкого класса", 2493.9616, -722.9544, 12.3315},  {"Автосалон среднего класса", 1407.7449, 455.4801, 13.1630},  {"Автосалон высокого класса", -14.0637, 2614.5664, 10.9892},   {"Мотосалон Harley Davidson", 785.720153, 750.465087, 12.000024},  {"Автошкола", 1909.174438,2227.679687,15.708162},  {"Военкомат", 1916.778564,2302.411376,15.574637},  {"Правительство области", -139.140975,593.789611,12.145712},  {"Отдел полиции №1 (ГИБДД)", 1906.805786,-2234.382812,11.257631},  {"Отдел полиции №2 (УМВД)", 2581.309326,-2416.139892,21.960090},  {"Отдел ФСБ", 1823.904663,2095.636718,15.848405},  {"Городская больница г.Арзамас", -285.797210,581.851562,12.120290},   {"СМИ", -317.708038,821.221679,13.051450},  {"Воинская часть", 1703.197265,1678.025878,15.279437},  {"Арзамасская ОПГ", 438.705322,1046.505126,12.002637},  {"Батыревская ОПГ", 1941.203857,2161.006591,15.705187},  {"Лыткаринская ОПГ", -2346.002441,75.257041,21.002962},  {"Шахта", 2381.5727, 1726.4451, -2.1506},  {"Завод", -1062.6697, 2204.1894, 38.0964},  {"Инкосация", 1864.1374, 2011.7136, 15.8546},  {"Транспортная Компания", 2362.1115, 1972.5627, 15.5530},  {"База механиков", 1840.918090,-118.025146,15.695312},  {"Курьерская служба доставки", 2764.509765,-2396.882568,21.890625},  {"Аренда автобуса(Южный)", 2771.041992,-2454.780761,21.845964},  {"Аренда автобуса(Арзамас)", -127.487670,943.652648,12.142824},   {"Аренда автобуса(Батырево)", 1798.986328,2529.591552,15.664262},  {"Гоночная трасса", -1568.7784, 1611.8305, 36.3971},  {"Дом на горе", -789.5397, -456.7479, 741.1422},  {"СТО и тюнинг-ателье", 1856.1375, -122.3266, 15.6888},  {"Аренда транспорта пгт.Батырево", 1763.641723,2255.673339,15.865348},  {"Аренда транспорта г.Арзамас", -36.923530,1360.673583,12.002090},  {"Аренда транспорта г.Южный", 1966.599975,-2603.943603,10.820312},  {"Тайный интерьер в Лыткарино", -2424.5818, 2846.3291, 40.7908} };