Dima972511
Умник
Здравствуйте уважаемые пользователи p-i. Сегодня я решил выложить урок по работе с клавишами, в этом уроке я выложу все функции связанные с клавишами ну и расскажу о GameTextForPlayer.
Начнём пожалуй с паблика отвечающего за клавиши это
HTML:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) - где newkeys - нажатая клавиша, oldkeys - предыдущая нажатая клавиша, playerid - ид игрока
HTML:
if(newkeys & KEY_FIRE) // Что означает любая зажатая клавиша с клавишей огонь
if(newkeys == KEY_FIRE) // что означает единственная нажатая клавиша огонь(т.е работает если на клавиатуре зажата только клавиша огонь и не каких других)
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, "Хватить диамить!");
}
}
HTML:
GetPlayerKeys(playerid, нажатая клавиша, вверх или вниз, влево или в право);
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, "Вы нажали кнопку огня"); // Действие в данном случае выводим сообщение
}
Ну с клавишами пожалуй разобрались, теперь перейдём к 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 секунду игроку
Ну на этом всё, надеюсь вам будет полезен мой урок. Если заметите ошибки пишите исправлю.
