shape1
shape2
shape3
shape4
shape7
shape8

Команда на кнопку - Более подробно.


Michael_Bush

Новичок
Пользователь
11.02.2018
0
8
0
Доброго времени суток - дорогие друзья. Сегодня я более подробно постараюсь вам объяснить функцию которая вам поможет сделать команду на кнопку ( Как QuickBinder - для SA:MP ) И так. Приступим..
1. Первым делом на нужна сама команда - готовая или же новая.
Пример для новичков:
Код:
if (strcmp("/icoder", cmdtext, true, 10) == 0)
{
// Сюда можно поставить функцию SendClientMessage,Исключительно для Теста.
return 1;
}
2. После того как мы создали команду или же готовую команду которую мы хотим перевести на кнопку - то следуем в: public OnPlayerKeyStateChange
И вставляем код:
Код:
if (newkeys == ID)  // Где слово ID - Там должен стоять ID Вашей кнопки,узнать ID кнопки можно внизу
{
OnPlayerCommandText(playerid,"/icoder"); //Где написано слово "/icoder" - Туда вставляем название команды которую вы сделали или же взяли готовую.
}
3. После,всем известно что имеется процесс DC_CMD и ZCMD - так что приведем пример на DC_CMD & ZCMD.
Пример DC_CMD:

Код:
if (newkeys == ID)  // Где слово ID - Там должен стоять ID Вашей кнопки,узнать ID кнопки можно внизу
{
cmd:icoder(playerid, "");.
}
Но если у вас ZCMD вам придется использовать код через - cmd_cmdname(playerid, cmdparams)
4. Вызов команды на кнопку - в определенном месте
Пример:
Код:
if (newkeys == ID) // Где слово ID - Там должен стоять ID Вашей кнопки,узнать ID кнопки можно внизу
{
if(PlayerInfo[playerid][pPassport] >= 1) return SendClientMessage(playerid,COLOR_WHITE,"У вас уже есть пасспорт!"); // Пример функции
                }
else if(PlayerToPoint(playerid,Координаты)) OnPlayerCommandText(playerid,"/icoder");
}
Думаю вы все поняли,и вопросов и ошибок у вас не будет - теперь ID'ы Клавиш.
Код:
ID            Кнопка используемая пешком         Кнопка используемая в машине
1              TAB                                             ALT GR / LCTRL / NUM0
2              C                                                   H / CAPSLOCK
4              LCTRL / LMB                                   LALT 
8              SPACE                                            W
16            ENTER                                            ENTER
32            LSHIFT                                      S
64            -                                                    E
128          RMB                                               SPACE
256          -                                                    Q
320✝        NUM1 / MMB                                   2
512          NUM1 / MMB                                   2 / NUMPAD +
1024        LALT                                               -
2048        NUM8✝✝                                      NUM8
4096        NUM2✝✝                                      NUM2
8192        NUM4                                      NUM4
16384      NUM6                                             NUM6
65536      Y                                                    Y
131072    N                                                    N
262144    H                                                    H
Есть ошибки? Сообщи - исправим.
На этом я заканчиваю свой урок,спасибо за внимание - P.S Если хотите научиться чему-нибудь но этого урока на форуме нету? Просто напиши в тему какой урок ты бы хотел видеть и я напишу тебе его в подробностях.
Автор урока: !#Bush :) ( Я )
Время создания урока: 20 минут.
 
Последнее редактирование модератором:

Batka1337

Хацкер-программист
Пользователь
08.12.2014
363
154
0
26
PlayerToPoint это не стандартная функция, надо было бы написать об этом. По стандарту есть только IsPlayerInRangeOfPoint.

 

noname_idk

Гуру
Пользователь
19.07.2015
4 046
7
787
0
Скриптер
@Batka1337, более того, реализация данной функции не самая удачная, а потому она намного медленнее основной IsPlayerInRangeOfPoint.