![]() |
Страницы (2): [1] 2 » Показать все 17 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Вопрос по ботам (https://hlfx.ru/forum/showthread.php?threadid=1516)
Вопрос по ботам
HPB_bot как и все боты основывается на коде игрока, т.е. бот - это игрок + ИИ. Так вот в HPB_bot есть такая функция:
1 | // this is the LINK_ENTITY_TO_CLASS function that creates a player (bot) |
2 | void player( entvars_t *pev ) |
3 | { |
4 | static LINK_ENTITY_FUNC otherClassName = NULL; |
5 | if (otherClassName == NULL) |
6 | otherClassName = (LINK_ENTITY_FUNC)GetProcAddress(h_Library, "player"); |
7 | if (otherClassName != NULL) { |
8 | (*otherClassName)( pev ); |
9 | } |
10 | else { |
11 | errorMsg( "Can't get player() function from MOD!" ); |
12 | printf("Parabot - Can't get player() function from MOD!\n" ); |
13 | Sleep(5000); |
14 | exit(0); |
15 | } |
16 | } |
Попробуй так:
GetProcAddress( GetModuleHandle(NULL), "player");
__________________
XaeroX не помогло. Пишет Can't get player() function from MOD! Надо как-то по-другому.
Ну можешь тупо вбить код макроса LINK_ENTITY_TO_CLASS вместо всего этого...
З.Ы. вы не отвечаете на мой ответ
LLAPb ну захотелось мне так сделать. Сначала полтора часа вырезал из ботов поддержку модов(DMC,TFC,CS,HW,OP4). Потом за час интегрировал.
Ku2zoff ктож с ботами сохраняется
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша вы наверное не поняли. Когда подключена сторонняя дллка ботов, то когда играешь в одиночную игру, после сохранения и последующей загрузки все брашевые энтити(func_tracktrain, func_door) "зависают", т.е. не продолжают движение, а монстры тупо стоят на месте и ни на что не реагируют. Если вспомнить Akimbot, с ними было примерно то же, только энтити сразу не работали. В поздних версиях HPB_bot всё отлично работает(вспомним Ретрибьюшн). Ну а я взял себе в качестве ботов для мода Parabot. Они основываются на хрензнаеткаком HPB_bot'e, который появился раньше чем СДК 2.0
Может есть вариант решения проблемы типа операций с классом CBasePlayer? Или придётся малость переписывать класс бота, чтобы он наследовал класс игрока(как bot10)?
Ku2zoff халфа овладевает серверной дллкой, примерно как бумер крестьянами во дворе, экспорты тчинков при загрузке вызываются напрямую. И стоит ли удивляться, что халфа вызывая соответствующие экспорты из дллки бота не может добится адекватных результатов.
В Xash я всчячески пытался избавиться от указателей на функции типа Think, которые потом вызываются экспортом. Но это ИМХО чересчур радикальный метод.
Надо все эти экспорты тчинков добавить в дллку бота и связать с тчинками сервера.
Тогда по идее все должно заработать.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
В общем, с функцией игрока я разобрался.
otherClassName = (LINK_ENTITY_FUNC)GetProcAddress("папкамода/dlls/server.dll", "player"); |
Ku2zoff и охота тебе чужих ботов ковыять? лучше своих напиши
KutuZoffBot их назовем
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
Ну __asm int 3 это када совсем жопа
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша а я, наоборот, эту команду юзаю чаще всех. Мне удобнее сразу все нужные переменные в окне Watch посмотреть, чем вбивать их в строку форматирования ALERT'a
__________________
Временная зона GMT. Текущее время 16:00. | Страницы (2): [1] 2 » Показать все 17 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024