Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 9 из 9
  1. #1
    Аватар для Pawn.Dima
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.04.2020
    Сообщений
    37
    Репутация:
    0 ±

    по рандомное нажатие кнопок

    Здравствуйте был уже вопрос по поводу нажатие кнопок от "xL1ke" и там "DeimoS" показал как сделать рандомное нажатие кнопок но у меня выскочила ошибка то что переменная не где не используется

    PHP код:
    new random_keys[] = { 12481632128512102481921638465536131072262144, -128128 };
    new 
    keys_name[sizeof(random_keys)][] = { "TAB""C""ЛКМ""Прыжок""Enter""Lshift""ПКМ""NUM 1/СКМ""NUM4",  "NUM6",  "Y",  "N",  "H",  "G",  "W",  "S" };
    new 
    key_pressed[MAX_PLAYERS] = -1
    там где нужно нажатие
    PHP код:
    key_pressed[playerid] = random(sizeof(random_keys));
    new 
    string[sizeof(keys_name[])+14];
    format(stringsizeof(string), "Нажмите на \"%s\""keys_name[key_pressed[playerid]]);
    SendClientMessage(playerid, -1string); 
    PHP код:
    public OnPlayerKeyStateChange(playeridnewkeysoldkeys

        if(
    newkeys == key_pressed[playerid]) 
        { 
            
    SendClientMessage(playerid, -1"Кнопка угадана!");
            
    key_pressed[playerid] = random(sizeof(random_keys));
            new 
    string[sizeof(keys_name[])+14];
            
    format(stringsizeof(string), "Нажмите на \"%s\""keys_name[key_pressed[playerid]]);
            
    SendClientMessage(playerid, -1string);
            return 
    1;
        } 
        return 
    1

    ошибка
    PHP код:
    C:\Users\Admin\Desktop\Новая папка\gamemodes\neww.pwn(10002) : warning 203symbol is never used"random_keys"
    Pawn compiler 3.2.3664              Copyright (c1997-2006ITB CompuPhase


    1 Warning

    как сделать правильно? подскажите

  2. #2
    Аватар для tnc
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.09.2019
    Сообщений
    121
    Репутация:
    26 ±
    Лучше структурировать это все в один массив:

    1. #if !defined MAX_KEY_NAME
    2. const MAX_KEY_NAME = 64;
    3. #endif
    4.  
    5. enum e_keyboard_key_info
    6. {
    7. // kki = keyboard_key_info
    8. kkiKey,
    9. kkiName[MAX_KEY_NAME]
    10. }
    11.  
    12. new const g_keyboard_key_info[][e_keyboard_key_info] =
    13. {
    14. { KEY_ACTION, "TAB" },
    15. { KEY_CROUCH, "C" },
    16. { KEY_FIRE, "LCTRL / LMB (Left Mouse Button)" },
    17. { KEY_SPRINT, "SPACE" },
    18. { KEY_SECONDARY_ATTACK, "ENTER" },
    19. { KEY_JUMP, "LSHIFT" },
    20. { KEY_HANDBRAKE, "RMB (Right Mouse Button)" }
    21. // ...
    22. }


    P.S: используйте константы для keys.

  3. #3
    Аватар для Pawn.Dima
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.04.2020
    Сообщений
    37
    Репутация:
    0 ±
    А пример использования можно?

  4. #4
    Аватар для Pawn.Dima
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.04.2020
    Сообщений
    37
    Репутация:
    0 ±
    Помогите пожалуйста то что выше написали я не пойму как это все реализовать с переменными проще было как у Deimos”a”

  5. #5
    Аватар для tnc
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.09.2019
    Сообщений
    121
    Репутация:
    26 ±
    1. new rand_index = random(sizeof(g_keyboard_key_info));
    2.  
    3. printf("key: %d", g_keyboard_key_info[rand_index][kkiKey]);
    4. printf("key name: ", g_keyboard_key_info[rand_index][kkiName]);

  6. #6
    Аватар для Pawn.Dima
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.04.2020
    Сообщений
    37
    Репутация:
    0 ±
    Хорошо вечером попробую спасибо)

  7. #7
    Аватар для SteveStage
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.10.2019
    Адрес
    Планета Земля
    Сообщений
    318
    Репутация:
    7 ±
    Цитата Сообщение от tnc Посмотреть сообщение
    1. new rand_index = random(sizeof(g_keyboard_key_info));
    2.  
    3. printf("key: %d", g_keyboard_key_info[rand_index][kkiKey]);
    4. printf("key name: ", g_keyboard_key_info[rand_index][kkiName]);
    1. new rand_index = random(sizeof(g_keyboard_key_info));
    2.  
    3. printf("key: %d", g_keyboard_key_info[rand_index][kkiKey]);
    4. printf("key name: %s", g_keyboard_key_info[rand_index][kkiName]);

  8. #8
    Аватар для Shaolinka
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.01.2020
    Сообщений
    69
    Репутация:
    8 ±
    //delll
    Последний раз редактировалось Shaolinka; 14.10.2020 в 01:08. Причина: забувся чота

  9. #9
    Аватар для execution
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.03.2018
    Сообщений
    255
    Репутация:
    24 ±
    Цитата Сообщение от Shaolinka Посмотреть сообщение
    PHP код:
    new rand_index random(sizeof g_keyboard_key_info) + 1;
     
    printf("key: %d"g_keyboard_key_info[rand_index][kkiKey]);
    printf("key name: %s"g_keyboard_key_info[rand_index][kkiName]); 
    чтобы вывело и максимальное
    В твоём случае, оно выйдет за пределы массива.
    Допустим, размер g_keyboard_key_info = 10. Функция random(sizeof g_keyboard_key_info ) - будет генерировать рандомное число от 0 до 9 (где - 9 и есть максимальное), и когда оно даст 9 и добавить твою единицу - будет выход за пределы массива.

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •