Total Annihilation
http://totalannihilation.getbb.ru/

Программа Total Annihilation Plus (TAP)...
http://totalannihilation.getbb.ru/viewtopic.php?f=16&t=1430
Страница 9 из 10

Автор:  [bl] [ 10 июн 2013 17:17 ]
Заголовок сообщения:  Re: Программа Total Annihilation Plus (TAP)...

Это несколько не так просто. Дело в том, что отправка комбинации кнопок, это отправка 4-х сообщений в игру:
1. Нажать Ctrl
2. Нажать В
3. Отпустить В
4. Отпустить Ctrl

В общем-то можно поставить в очередь обработки все 4 кнопки, но тут есть тонкость обработки этих кнопок самим ddraw.dll (TA Demo Recorder). Вот пример его кода:
Код:
      case WM_KEYDOWN:
         if ((GetAsyncKeyState(VK_LCONTROL)&0x8000)>0 && (GetAsyncKeyState(VK_LSHIFT)&0x8000)==0)
         {
            if (0x53==(int)wParam)        //ctrl+s
            {
               SelectOnlyInScreenWeaponUnit(MOVEUNITSELECTABLE);

Немного поясню код: когда приходит событие нажатия кнопки (WM_KEYDOWN), то ddraw.dll ещё проверяет нажаты ли Ctrl и Shift через функцию GetAsyncKeyState(). А насколько я знаю, эта функция работает вне событий игры, она как бы считывает состояние кнопок сразу с устройства. И вот как сделать имитацию нажатия кнопки - я не знаю (попытки были, но не получалось). :(

Автор:  [bl] [ 10 июн 2013 17:36 ]
Заголовок сообщения:  Re: Программа Total Annihilation Plus (TAP)...

Версия 0.5.3:
  • Уменьшен размер TAP.exe промерно в 4 раза, переделка парсера настроек
  • Переделан код перехвата кнопок: Z перехватывается

Автор:  Norfolk [ 10 июн 2013 18:25 ]
Заголовок сообщения:  Re: Программа Total Annihilation Plus (TAP)...

[bl] писал(а):
Об этой проблеме предупреждал последний пункт Рекомендаций из первого сообщения.
Пока не удалось найти место, где сохраняется статус открытого диалога для ввода сообщения. Как только найду - сразу реализую возможность. Но ещё будет проблема с вводом текста для маркера, который ставится через DemoRecorder, его диалоги существует вне кода Total Annihilation.
Пока могу посоветовать только отключение Activation Key или снятие выделения с активного юнита.

так может по однократному энтеру - отключить хоткеи, по повторному -включить?
Конечно такой метод может запороться если где-то ты нажмешь энтер а чат не откроется(хотя с ходу не могу назать таких моментов, разве что при открытом меню)

Автор:  [bl] [ 14 июн 2013 10:38 ]
Заголовок сообщения:  Re: Программа Total Annihilation Plus (TAP)...

Удалось найти переменную в игре, которая отвечает за открытый диалог ввода сообщения в чат или открытое меню в игре. :super: Дело за тестированием. Скоро будет новая версия.

Автор:  gBopKuH [ 14 июн 2013 11:57 ]
Заголовок сообщения:  Re: Программа Total Annihilation Plus (TAP)...

[bl] писал(а):
Удалось найти переменную в игре, которая отвечает за открытый диалог ввода сообщения в чат или открытое меню в игре. :super: Дело за тестированием. Скоро будет новая версия.

Лучше бы с cntr+B нашел вариант.

Автор:  KruFFT [ 14 июн 2013 12:33 ]
Заголовок сообщения:  Re: Программа Total Annihilation Plus (TAP)...

[bl]
Ну привет. Если это ты :)))
подтверди ка: 980...

Автор:  [bl] [ 14 июн 2013 14:35 ]
Заголовок сообщения:  Re: Программа Total Annihilation Plus (TAP)...

KruFFT
755. Нашел меня тут, не спрячешься :) Помочь что ли хочешь? :this: Отдать бы тебе разработку, а то времени не хватает на неё. :bore:

gBopKuH
Ctrl+B реализуется не в ТА, это сделано в ddraw.dll. Версий ddraw.dll довольно много разных и я не представляю пока с чего начинать его ковырять. Если только когда нибудь.

Автор:  gBopKuH [ 14 июн 2013 14:47 ]
Заголовок сообщения:  Re: Программа Total Annihilation Plus (TAP)...

[bl] писал(а):
KruFFT
755. Нашел меня тут, не спрячешься :) Помочь что ли хочешь? :this: Отдать бы тебе разработку, а то времени не хватает на неё. :bore:

gBopKuH
Ctrl+B реализуется не в ТА, это сделано в ddraw.dll. Версий ddraw.dll довольно много разных и я не представляю пока с чего начинать его ковырять. Если только когда нибудь.

можно реализовать именно так
1. Нажать Ctrl
2. Нажать В
3. Отпустить В
4. Отпустить Ctrl

Автор:  [bl] [ 14 июн 2013 16:53 ]
Заголовок сообщения:  Re: Программа Total Annihilation Plus (TAP)...

Я выше уже отмечал, что пробовал делать подобное, ещё в первых версиях TAP, и ничего хорошего из этого не вышло. Это сложно сделать именно для ТА, потому что в ней есть своя функция обработки кнопок, потом в ddraw.dll есть своя и мне пришлось добавить ещё и свою в ТАР. Этот бутерброд всех обработчиков довольно трудно подружить между собой. Если я найду возможность это сделать - сделаю, но это пока в очень низком приоритете. И мне непонятно, чем же так сложна комбинация Ctrl+B, ведь одной рукой нажимается?

Автор:  KruFFT [ 14 июн 2013 17:53 ]
Заголовок сообщения:  Re: Программа Total Annihilation Plus (TAP)...

А чего помощь нужна? Ты мне исходники то дай поглядеть? :) Ты наверно уже все сделал.

Страница 9 из 10 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/