~ X ~ писал: Очень печально что за годы хотения ты сам не мог допилить такую несложную вещь. (
Если вещь простая, отчего же этого не сделал сам автор? Значит не такая уж она и простая. А если вещь сложная, тогда никто тем более не будет связываться.
Цитата:
~ X ~ писал: Например, нельзя это пихать в save/restore потому что... там лимиты.
Лимиты везде есть. А раз так, значит сделать вообще ничего нельзя.
Ghoul [BB] писал: Может быть, ещё бы опытом с ~ X ~ поделился, как их в ХДМ поставить?
Что ты, прости меня, несёшь? Банальная копипаста же. И будут в XDM эти боты. Другой вопрос, что надо ещё дописать им взаимодействие с игровыми событиями, посредством втыкания вызовов Bot_Event (или как его там правильно) в разные места в коде серверной дллки. Чтобы боты могли реагировать на выстрелы, прыжки других игроков/ботов, звуки, действия... Написать свои собственные стейты и отредактировать старые применительно к XDM...
Ты или прикидываешься лалкой, или действительно не понимаешь, что АБСОЛЮТНО ВЕСЬ код ZBot 1.5 доступен для скачивания и копипасты? Бери и воруй с гитхаба, никто не запрещает. Вон, БУзер в своё время украл код рендерера из Тенебры, и получилась Паранойя. Так же и Мастер может сделать. И получится XDM с новыми ботами.
Есть, правда, один нюанс: Мастер любит всё без коммерческих копирайтов. А ZBot - это очень и очень проприетарная вещица, т.к. в свободном доступе полных сорцев нету, только реверс-инжинированные из ReGameDLL. Но, Вальва сама выложила значительную часть этих сорцев в папку game_shared в HLSK на гитхабе. Так что, возможно, есть способ легально юзать этих ботов в некоммерческом моде, удалив CS-специфичный код.
XaeroX я перефразирую. Не украл, а позаимствоал и адаптировал под халфу. У меня интернет неожиданно отвалился (аж целых 20 минут не было, спасибо Ростелекому), я ведь хотел исправить слово в исходном посте
Добавлено 19-01-2018 в 00:51:
Цитата:
XaeroX писал: канделябром
Канделябром из винного погреба в Шато ДюКлер! Надо бы первый DX пройти заново для настроения. Пардон за оффтоп.
Добавлено 19-01-2018 в 01:13:
Нужны ZBot в XDM? Никто не мешает скопипастить их. Они лучше чем Parabot в плане стрельбы. В плане навигации почти такие же, единственное, они не могут выучить некоторые финты игроков, т.к. действуют по нав-зонам, а у паработов есть клетки (cells), которые постоянно апдейтятся в процессе игры. И они могут учиться как друг у друга, так и у живых игроков.
Ku2zoff
Ну никто Ваньку и не валяет. Эти сорцы и у меня на диске наверное уже год как пылятся. Но проблема-то как раз в том, что им надо взаимодействовать с игровыми событиями. Я Мастера просил неоднократно на ZBOT перейти, но он отказывался. Не припомню в чём именно была причина, но то, что их не так уж просто научить игровым событиям, ты и сам признаёшь. Возможно, и Мастер тоже так решил.
Тем не менее, я лично пока не готов их копипастить т.к. во-первых, идут постоянные дописывания кода во многих местах, во-вторых, код ХДМ местами довольно специфичен и там не всегда есть совместимость с чем-то другим (надо адаптировать) ну и в-третьих, никто не знает кода ХДМ лучше самого творца, чтобы эффективно и быстро имплементировать ботов. Ну вот простой пример: Мастер отказался от UtilRemove(). И нет бы совсем эту функцию вырезать. Нет. Её так же можно с кодом копипастить откуда-то, но потом этот код где-нибудь при каком-то условии крэшанётся. Пример самый характерный. И Вот это тоже надо учитывать.
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
Ghoul [BB] писал: Ну вот простой пример: Мастер отказался от UtilRemove()
Ну я же говорю 18 лет страдания хернёй не проходят даром. Ну не поворачивается у меня язык назвать это по другому.
Добавлено 18-01-2018 в 21:45:
Я тут посмотрел на UTIL_Remove в XDM.
Сперва покажу оригинал
C++ Source Code:
1
void UTIL_Remove( CBaseEntity *pEntity )
2
{
3
if ( !pEntity )
4
return;
5
6
pEntity->UpdateOnRemove();
7
pEntity->pev->flags |= FL_KILLME;
8
pEntity->pev->targetname = 0;
9
}
Что тут делается? Вызывается виртуальная (ну или в оригинале не виртуальная, не помню уже) функция, с целью произвести очистительные работы и ставится флаг, дающий движку понять, что эдикт можно освободить. Теперь XDM
C++ Source Code:
1
void UTIL_Remove(CBaseEntity *pEntity)
2
{
3
if (pEntity == NULL)
4
return;
5
6
if (pEntity->IsRemoving())
7
{
8
DBG_PRINTF("Error: UTIL_Remove() called on already removed entity!\n");
9
return;
10
}
11
if (pEntity->IsPlayer())
12
{
13
DBG_PRINTF("Error: UTIL_Remove() called on player!\n");
// we can't pEntity->m_iExistenceState = ENTITY_EXSTATE_VOID;
64
}
65
#endif
66
}
Видите в середине попытки записать SetThink::Sub_Remove и прямой вызов SUB_Remove. А знаете что делает SUB_Remove? А он вызывает функцию Destroy, названную в честь нашего друга Georg Destroy. А Destroy вызывает - ТА-ДАААМ UTIL_Remove. И вот у нас получается уже интересный случай рекурсии. Тоесть автор настолько запутался во всём этом, что принял решение вообще отказаться от UTIL_Remove. Вот вам наглядная иллюстрация моим словам - всё это можно смело выкинуть, оно нахрен не нужно. Там где достаточно одной строчки - городится фабрика или вообще рекурсивные вызовы.
Добавлено 18-01-2018 в 21:49:
Забыл добавить самое интересное. Отказ от UTIL_Remove это чьи-то фантазии, ибо в сорцах с Moddb ничего такого не наблюдается даже и близко.
Дядя Миша писал: Забыл добавить самое интересное. Отказ от UTIL_Remove это чьи-то фантазии, ибо в сорцах с Moddb ничего такого не наблюдается даже и близко.
Ну отчего же?
Там, где раньше было UTIL_Remove теперь используется или Util_SubRemove() или Destroy().
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
Дядя Миша писал: Ну приведи пример таких участков кода про которые можно однозначно сказать "да это же из тенебры, ха-ха".
Ты сам писал, что БУзер заимствовал код из тенебры:
Цитата:
Дядя Миша писал:
Цитата:
FiEctro писал: Копипасть из паранойи. Больше никак.
тогда уж из Тенебры, как из первоисточника.
Вот здесь писал. Или это неправда, и БУзер не заимствовал код из Тенебры? И даже не использовал его как образец?
Добавлено 19-01-2018 в 12:09:
Цитата:
Ghoul [BB] писал: Но проблема-то как раз в том, что им надо взаимодействовать с игровыми событиями. Я Мастера просил неоднократно на ZBOT перейти, но он отказывался.
Ну возьми, и перейди сам, ёлки. Заверни все вызовы ботов в #ifdef, чтобы можно было собрать сервер без них в случае чего, для дебага. Не понимаю, в чём сложность почитать сорцы ReGameDLL и найти места вызовов эвентов для ботов. В ветке hlzbot-random-weapons много где вставлены эти вызовы. Для тебя не составило труда написать 40 с лишним пушек в ХЛВЕ, но ты боишься попытаться вставить новых ботов в XDM. Знаешь, я в далёком 2007-м году, летом-осенью, вставил по тутору Ботмана Bot #10 в свои сорцы. При том, что у меня даже студии не было. Компилил компилятором от БУзера и редактировал в блокноте. И оно собиралось и работало. Да я кодить не умел вообще, нисколечко. Мог написать клон барника, заменяя строчки. Хочешь новых ботов, а Мастер не хочет - делай сам. Тутора (как для Bot #10) нет, но есть сорцы, которые виндиффом можно просканировать и найти отличия.
Дядя Миша писал: Так яж аб чём и говорю - после декомпиляции вот така фигня случается.
Ты считаешь, что декомпиляция портит ещё и анимации (кроме съезжающих текстур) ?
Ku2zoff
Всё нормально, всё нормально. Сделаем ботов в своё время, если Мастер не будет. Пойми, у меня задач других полно по горло, я один тута. Поимаешь?! Один сижу тута, как сыч, перед этим компуктером. На всё времени просто нету. Вот ненавязчиво и намекнул тебе помочь Мастеру их туда впердолить. Не то что это мегасложно или вообще невозможно, это муторно и долго, а человек, однажды прошедший путь, имхо, сможет этот же путь повторно пройти чуть быстрее.
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
Ghoul [BB] общеизвестный факт. Из милки декомпилятор портит сильнее, кратист - слабее, но портят оба. Потому что анимации и координаты текстур пишутся с потерями.
Дядя Миша писал: И ты на основании этого утверждения сделал вывод, что параноя это копипаста тенебры?
Вон оно что. Значит, я ошибся. Но, тем не менее, БУзер всё равно на что-то ориентировался.
Цитата:
Дядя Миша писал: Из милки декомпилятор портит сильнее, кратист - слабее, но портят оба.
Это из серии про барников, ёрзающих ногами по полу, когда они нажимают кнопки? И про съезжающие руки во вьюмоделях? Однако. Кратист, на моей памяти только текстурные координаты смещал всегда. После нескольких операций компила-декомпила у стандартных халфовских моделек очень сильно съезжают в сторону рожы:
Ku2zoff писал: Но, тем не менее, БУзер всё равно на что-то ориентировался.
Ну естественно ориентировался. Естественно ориентировался на Тенебру, т.к. там был код декалей. Но нельзя сказать, что там что-то цельнотянутое.
Важна идея.
Цитата:
Ku2zoff писал: Это из серии про барников, ёрзающих ногами по полу, когда они нажимают кнопки?
Да, оно самое.
Цитата:
Ku2zoff писал: И про съезжающие руки во вьюмоделях?
Не сталкивалсо как-то.
Цитата:
Ku2zoff писал: Однако. Кратист, на моей памяти только текстурные координаты смещал всегда.
Это вы ненаблюдательные просто. Анимация херится, но увидеть можно лишь, сравнив с оригиналом и в замедленном темпе. Т.е. малозаметно.
thambs
первое. Да твои барники тоже ёрзают при ходьбе, ты просто не приглядывался. Там почти незаметно, но всё же.