Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Какой тип константы закреплен за кодами клавиш?

Страниц (1): [1]
 

1. lavpochta - 29 Марта, 2021 - 01:05:24 - перейти к сообщению
Здравствуйте.
А кто-нибудь знает тип констант закрепленных за кодами клавиш?
Я спрашиваю это в связи с тем, как мне можно было бы в функцию нажатия клавиши передавать значение кода клавиши через переменную, например key(kbSkill), где kbSkill хочу, чтобы могло быть равно одной из констант F1, F2,...F10,.... в зависимости от имитируемого события
Про то чтобы, передать key(код клавиши) я знаю.
2. Zireael - 29 Марта, 2021 - 03:13:55 - перейти к сообщению
Объявите свои константы.
CODE:
#define F1 112
#define F2 113

pause(3000);
_key(F1);
_key(F2);

function _key(int vk_code)
{
key(vk_code);
}

https://kibor-bot.com/stat/codekeys.php
3. lavpochta - 29 Марта, 2021 - 05:54:20 - перейти к сообщению
Хотелось бы понять в принципе, есть ли такая возможность - присваивать коды клавиатурных константант?

На подобии вашего решения можно и грубее сработать:
CODE:

string Sobitie;//Код события
int kbSkill;//Код клавиши
if (Sobitie="F10") then kbSkill=<код клавиши F10>;
if...//Событие 2
if...//Событие 3
key(kbSkill);


Я так подозреваю, что дело в том, что у функций key, keydown, keyup параметр в скобках () "полиморфичен" - то есть можно принять в виде параметра любой текст между скобок,.только отсеит не прошедшие объявленные внутри функции варианты.
И все константы не глобальны, а локально объявлены, поэтому мой вопрос по упрощению обращения к key не имеет положительного ответа?
4. Zireael - 29 Марта, 2021 - 06:02:31 - перейти к сообщению
 Цитата:
есть ли такая возможность - присваивать коды клавиатурных константант?

Нельзя. Ответ тот же:
 Цитата:
Объявите свои константы.
5. lavpochta - 29 Марта, 2021 - 06:17:26 - перейти к сообщению
Понял, спасибо
6. lavpochta - 04 Апреля, 2021 - 12:19:38 - перейти к сообщению
Здраствуйте, в продолжение работы функций key. Вот есть код:
CODE:


pause(4000);
ActiveSkill("F10");

function ActiveSkill(string KbSkill_)
{
string msgSkill;//Сообщение по скиллу
int keySkill1;//Код нажатой клавиши #1
int bInt1,eInt1;//Начало разброса паузы, конец разброса паузы (1с=1000мс)
int KolKey;//Кол-во нажатых клавиш: 1-одно короткое, 11-одно длинное, 2-нажатие при зажатой клавише

KolKey=1;
bInt1=100;
eInt1=150;
if (KbSkill_=="F10") {msgSkill="/Макрос Бафа ПЕРСОНАЖА/"; keySkill1=121; bInt1=20000; eInt1=22000; }
if (kolKey==1)
{
key(keySkill1); //ВОТ ТУТ ПРОГРАММА ВЫДАЕТ ОШИБКУ
}
}


Как выяснилось, этот код не будет работать.... key(keySkill1) не принимает значение в виде переменной int.
Осталось только объявить свои константы, как предлагалось:
#define F10 121
Этот код работает:

CODE:

#define F10 121

pause(4000);
_key(F10);

function _key(int vk_code)
{
key(vk_code);
}

Чего ж так странно, ведь в обоих случаях переменная int передается в key, только в первом случае она объявлена внутри функции, а во втором как параметр???
7. Zireael - 04 Апреля, 2021 - 12:27:52 - перейти к сообщению
 Цитата:
key(keySkill1) не принимает значение в виде переменной int.

Принимает.
 Цитата:
KolKey=1;
if (kolKey==1)
8. lavpochta - 04 Апреля, 2021 - 12:33:04 - перейти к сообщению
О, спасибо большое!

Powered by ExBB FM 1.0 Final