Ctrl+A и Ctrl+D в машине, возможно ли это? -
Johhnyllll - 01.07.2016
Здравствуйте, не давно я наткнулся на такую проблему, Ctrl+A и Ctrl+D совершенно не работают, в
Wiki Keys ничего про них нету, а в
GetPlayerKeys есть такая цитата: "
С обновления 0.3.7, кнопки "A" и "D" не признаны когда вы будете в транспортном средстве. Однако кнопки "W" и "S" могут быть обнаружены с параметром "Keys"."
Но, я зашел на один проект Crime-RPG, там такая-же система какая я хочу сделать, и у них всё работает!!!!
Если у них работает, значит и у меня должно, и их сервер так-же находится на версий 0.3.7 R2.
Нашел такое решение:
![](https://pp.vk.me/c633223/v633223400/3bc50/HfbEvzGgYqg.jpg)
Не знаю если я применил её коректно, но всё-же, логи выдаёт странные:
PHP Code:
[16:32:28] [chat] [Nick_Name]: CTRL
[16:32:29] 1 0 0
[16:32:34] [chat] [Nick_Name]: CTRL+W
[16:32:35] 1 0 0
[16:32:35] 1 0 0
[16:32:39] [chat] [Nick_Name]: CTRL+S
[16:32:39] 1 0 0
[16:32:39] 1 0 0
[16:32:43] [chat] [Nick_Name]: CTRL+A
[16:32:44] 1 0 0
[16:32:48] [chat] [Nick_Name]: CTRL+D
[16:32:49] 1 0 0
[16:33:26] [chat] [Nick_Name]: CTRL+S+D
[16:33:26] 1 0 0
[16:33:28] 1 0 128
[16:33:41] [chat] [Nick_Name]: CTRL+S+A
[16:33:44] 1 0 -128
P.S: После каждой упоминаний, например "CTRL+A" я нажимал комбинацию клавиш которую говорил.
Надеюсь на вашу помощь...
Если что-то не понятное напишите об этом..
//Update
Забыл сказать, у меня почему-то работает лишь вариант с CTRL+S+A/D, а чисто CTRL+A/D не работают
Re: Ctrl+A и Ctrl+D в машине, возможно ли это? -
ZiGGi - 01.07.2016
PHP Code:
public OnPlayerUpdate(playerid)
{
new keys, updown, leftright;
GetPlayerKeys(playerid, keys, updown, leftright);
if (keys & KEY_ACTION) {
if (leftright == KEY_LEFT) {
SendClientMessage(playerid, -1, "left");
} else if (leftright == KEY_RIGHT) {
SendClientMessage(playerid, -1, "right");
}
}
return 1;
}
Re: Ctrl+A и Ctrl+D в машине, возможно ли это? -
Johhnyllll - 01.07.2016
Quote:
Originally Posted by ZiGGi
PHP Code:
public OnPlayerUpdate(playerid)
{
new keys, updown, leftright;
GetPlayerKeys(playerid, keys, updown, leftright);
if (keys & KEY_ACTION) {
if (leftright == KEY_LEFT) {
SendClientMessage(playerid, -1, "left");
} else if (leftright == KEY_RIGHT) {
SendClientMessage(playerid, -1, "right");
}
}
return 1;
}
|
Спасибо, в OnPlayerUpdate всё прекрасно работает, а вот в OnPlayerKeyStateChange, опять-же, всё работает на комбинацию CTRL+S+A/D
![Sad](images/smilies/sad.gif)
![Sad](images/smilies/sad.gif)
![Sad](images/smilies/sad.gif)
![Cry](images/smilies/cry.gif)
Вообщем понятие не имею как это решить
Re: Ctrl+A и Ctrl+D в машине, возможно ли это? -
ZiGGi - 02.07.2016
Quote:
Originally Posted by Johhnyllll
|
Никак.
Re: Ctrl+A и Ctrl+D в машине, возможно ли это? -
Johhnyllll - 02.07.2016
Quote:
Originally Posted by ZiGGi
Никак.
|
Есть же проект, Crime RPG, у них всё работает CTRL+A/D, ну ладно, всё ровно спасибо)
Re: Ctrl+A и Ctrl+D в машине, возможно ли это? -
ZiGGi - 02.07.2016
Quote:
Originally Posted by Johhnyllll
Есть же проект, Crime RPG, у них всё работает CTRL+A/D, ну ладно, всё ровно спасибо)
|
И с чего ты взял, что у них сделано через OnPlayerKeyStateChange?
UPD: Достаточно зайти на страницу
OnPlayerKeyStateChange и прочитать следующее:
Quote:
Directional keys do not trigger OnPlayerKeyStateChange (up/down/left/right). They can only be detected with GetPlayerKeys (in OnPlayerUpdate or a timer).
|
Что означает, что кнопки перемещения не вызывают OnPlayerKeyStateChange, и что эти кнопки могут быть определены с помощью GetPlayerKeys в OnPlayerUpdate или таймере.
Re: Ctrl+A и Ctrl+D в машине, возможно ли это? -
coloN - 02.07.2016
gettime()+1
И проверять на время при открытии
Re: Ctrl+A и Ctrl+D в машине, возможно ли это? -
Johhnyllll - 02.07.2016
Quote:
Originally Posted by coloN
gettime()+1
И проверять на время при открытии
|
Зачем проверять время если есть /timestamp?
Или я не понял тебя...