Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Работаем с клавишами, форматируем текст и выводим сообщение на экран

Статус
В этой теме нельзя размещать новые ответы.

Dima972511

Умник
Здравствуйте уважаемые пользователи p-i. Сегодня я решил выложить урок по работе с клавишами, в этом уроке я выложу все функции связанные с клавишами ну и расскажу о GameTextForPlayer.​

Начнём пожалуй с паблика отвечающего за клавиши это
HTML:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) - где newkeys - нажатая клавиша, oldkeys - предыдущая нажатая клавиша, playerid - ид игрока
Рассмотрим примеры проверки на клавишу
HTML:
if(newkeys & KEY_FIRE) // Что означает любая зажатая клавиша с клавишей огонь
if(newkeys == KEY_FIRE) // что означает единственная нажатая клавиша огонь(т.е работает если на клавиатуре зажата только клавиша огонь и не каких других)
ID's ключей:
http://pawno-info.ru/threads/40411-ID-%D0%BA%D0%BB%D0%B0%D0%B2%D0%B8%D1%88-%D0%B4%D0%BB%D1%8F-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F

Расcмотрим пример текста по клавише:
HTML:
if(newkeys == KEY_FIRE) //Если нажатая клавиша была клавиша огонь
{
    if(oldkeys == KEY_FIRE) //Если преведущая клавиша была клавиша огонь
    {
        if(GetPlayerState(playerid) != 2) //Если игрок не в машине 
        {
            SendClientMessage(playerid, COLOR_WHITE, "Хватить диамить!");
     }
}
Ну чтож теперь перейдём к функциям(она 1):
HTML:
GetPlayerKeys(playerid, нажатая клавиша, вверх или вниз, влево или в право);
GetPlayerKeys записывает значение в переменные значит нам необходимо создать переменные рассмотрим пример:
HTML:
new Keys, ud, lr; //Создадим переменные где Keys - будет отвечать за нажатую клавишу, ud - за клавиши вверх/вниз, lr - за клавиши влево/вправо
if(ud == KEY_UP) //Если игрок нажал клавишу вверх
{
    SendClientMessage(playerid, COLOR_WHITE, "Вы нажали клавишу вверх"); // Действие в данном случае выводим сообщение
}
if(ud == KEY_DOWN) // Если игрок нажал клавишу вниз
{
    SendClientMessage(playerid, COLOR_WHITE, "Вы нажали клавишу вниз"); // Действие в данном случае выводим сообщение
}
if(lr == KEY_LEFT) // Если игрок нажал клавишу влево
{
    SendClientMessage(playerid, COLOR_WHITE, "Вы нажали клавишу влево"); // Действие в данном случае выводим сообщение
}
if(lr == KEY_RIGHT) //Если игрок нажал клавишу вправо
{
    SendClientMessage(playerid, COLOR_WHITE, "Вы нажали клавишу вправо"); // Действие в данном случае выводим сообщение
}
if(Keys == KEY_FIRE) // Если игрок нажал кнопку огонь
{
    SendClientMessage(playerid, COLOR_WHITE, "Вы нажали кнопку огня"); // Действие в данном случае выводим сообщение
}
Таким образом если вам требуется использовать клавишу где то в stock или public то вы можете воспользоватся GetPlayerKeys

Ну с клавишами пожалуй разобрались, теперь перейдём к GameTextForPlayer. Итак эта функция выводит сообщение игроку на точку экрана.
Пример:


Ну теперь объясню по функции
HTML:
GameTextForPlayer(playerid, "Тут пишем что выводим", тут пишем время в милисекундах(1 секунда = 1000 милисекунд), стиль текста);
Стили текста:
0.

1.

2.

3.

4.

5.

6.


Для того чтобы вывести какое-то значение переменной на экран можно воспользоватся format, объясняю
HTML:
format(строка которую надо отформатировать, размер, "Тут текст если надо вписать значение то пишем %d, %s, %i", тут переменные);
К примеру нам надо вывести текст время для этого делаем так
new time[0], time[1], time[2], string[128]; // Создаём переменные для записи
gettime(time[0], time[1], time[2]); // Узнаём время по типу час, минута, секунда
format(string, sizeof(string), "Hour: %d, Min: %d, Sec: %d", time[0], time[1], time[2]); // Форматируем стринг
GameTextForPlayer(playerid, string, 1000, 1); // Выводим сообщение указанное в стринг на экран на 1 секунду игроку
Ну и объясню по format где какое значение применять. %s - string, применяем если в переменной записывается какой то текст(ник и т.д), %d - применяем если переменная содержит целое число(2, 3, 4 и т.д), %i - применяем обычно при сложении/вычитание и т.д(к примеру PlayerInfo[playerid][pCash]*10// т.е умножаем переменную на 10). Ну как то так.

Ну на этом всё, надеюсь вам будет полезен мой урок. Если заметите ошибки пишите исправлю.​
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу