Xash3D: Баги/Недоработки

 

gfdjr5

[NULL]
25.11.2012
563
0
0
Награды
0
Дядя Миша сказал(а):
В ксаше есть перехват обработчика исключений, однако конфиг в аварийной ситуации я не сохраняю намеренно. А вдруг именно манипуляции с переменными привели к крашу? А мы их сохраним.
Да, такое, конечно, тоже может встретиться
Но есть такая вещь, как проверка на успешность предыдущей инициализации
То есть, допустим, при старте есть у нас в конфиге вар lastinitok, в значение которого пишется true при "чистом" выходе и остаётся false при вылете
Соответственно, если lastinitok при загрузке конфига на старте = false - сброс конфига на дефолтный, а так - сохранять значения переменных после каждого внесения изменения, ну или хотя бы при старте коннекта сохранить его
Ну, или такая идея. Иметь два файла конфига - постоянный и сессионный. В постоянном хранится конфиг как сейчас, а в сессионном сохранять значения, изменённые относительно постоянного. Если "чистый" выход - сохранять сессионный как новый постоянный. Иначе он будет сброшен при следующем перезапуске постоянным конфигом.
Но это пока предложения. Не хочется иметь такие недоработки, если честно. Да и обычно с "кривых" настроек конфига ГС не падал, просто какой-то функционал перестаёт работать, если задано неправильное значение или корректируется сервером. А вот внезапный "invalid packet id" или непрекэшированная модель приводят к крашу, и конфиг не сохраняется. Ну и сейчас Ксаш всё ещё частенько произвольно отваливается при загрузке уровней, а лично у меня и произвольно зависает со всей системой. Да и ГС в меню в простое может стопнуть ось (не знаю, как там новые билды).
 
Последнее редактирование:
 

mittorn

Active member
22.04.2010
1 223
15
38
Награды
0
1. XashXT клиент
2. 3030
3. Респавн или загрузка не происходит, пока зажата одна из клавиш перемещения
4. Выявлено на android с наэкранным управлением, где вместе с ещё одним багом оно ломает респавн совсем. Даже если на сервере включен принудительный. Проблема возможно касается и сервера.
 
 
Команда форума
28.03.2010
15 384
242
63
Награды
0
Кубань
2 gfdjr5: ты бы проверился штоле на вирусы. И еще скачай autoruns.exe от SysInternals. Мне она в своё время очень помогла.

[ADDED=Дядя Миша]1437774350[/ADDED]
ЗЫ, kill на клиенте я помоему намеренно выключил, штобы не читерили.
А то бегают такие суицидники, мешают приличным людям фраги набивать.
 
Последнее редактирование:
 

mittorn

Active member
22.04.2010
1 223
15
38
Награды
0
2 gfdjr5:
Что за ось такая? Хря? У меея даже андройд ни разу не крашнул.

[ADDED=mittorn]1437774471[/ADDED]
2 Дядя Миша:
Значит у себя включу обратно

[ADDED=mittorn]1437774631[/ADDED]
А то неприятно делать это вручную.
 
Последнее редактирование:
 

gfdjr5

[NULL]
25.11.2012
563
0
0
Награды
0
Дядя Миша сказал(а):
2 gfdjr5: ты бы проверился штоле на вирусы. И еще скачай autoruns.exe от SysInternals. Мне она в своё время очень помогла.
Да вот, совсем-совсем недавно провериться пришлось. Дай, думаю, проверю спидхак под Ксашем. Скачал откуда-то с "доверенного источника", но, к сожалению, не один не смог, т.к. это, всё-таки не ГС и память здесь патчить нужно по другому адресу. Сходил за чаем. Возвращаюсь - на рабочем столе творится дикая вакханалия и куча новых процессов в диспетчере. Пришлось всё вычищать. Сейчас всё в норме. Да и исполнительные файлы целые. Никакой подозрительной активности не имеется. Поэтому со 100% гарантией утверждаю, что дело не вирусах

Дядя Миша сказал(а):
ЗЫ, kill на клиенте я помоему намеренно выключил, штобы не читерили.
А то бегают такие суицидники, мешают приличным людям фраги набивать.
Лучше сервером контроллить. Клиент же эту команду на сервер пошлёт, а тот уже решит, можешь/должен ли ты иметь возможность умереть. Или я что-то недопонял?

[ADDED=gfdjr5]1437776149[/ADDED]
Но ладно, с вылетами/зависаниями - закрыл/перезагрузился и открыл заново. Вот конфиг сброшенный после этого заново настраивать - это неприятно.

[ADDED=gfdjr5]1437776766[/ADDED]
И как я понял, зависает только у меня
Поэтому причина не в движке и можно не париться
 
Последнее редактирование:
 

Cybermax

Супер Модератор
Команда форума
11.03.2008
2 747
28
48
Награды
0
4) Недоработка движка, тянущаяся ещё с исходников Quake (GoldSource тоже этим болеет). Заключается в том, что движок сохраняет бинды и некоторые прочие настройки в config.cfg, но только при "чистом" выходе из игры. Если игра зависнет или вылетит - конфиг не будет сохранён и придётся вводить всё заново при перезаходе
Да, такое, конечно, тоже может встретиться
Но есть такая вещь, как проверка на успешность предыдущей инициализации
То есть, допустим, при старте есть у нас в конфиге вар lastinitok, в значение которого пишется true при "чистом" выходе и остаётся false при вылете
Соответственно, если lastinitok при загрузке конфига на старте = false - сброс конфига на дефолтный, а так - сохранять значения переменных после каждого внесения изменения, ну или хотя бы при старте коннекта сохранить его
Зачем все так усложнять, если есть команда writecfg в стим хл но нет в Ксаш. Настроил конфиг под себя, в консоли writecfg имяконфига.cfg и сохраняется все в нем. Хоть autoexec.cfg хоть васяпупкин_нагибатор.cfg. Как по мне оптимальный вариант без геморроя просто необходимый для сетевой игры.

[ADDED=Cybermax]1437777521[/ADDED]
>>Лучше сервером контроллить. Клиент же эту команду на сервер пошлёт, а тот уже решит, можешь/должен ли ты иметь возможность умереть.
Хотя бы в Ксаше оставьте клиенту решать делать kill или продолжать мучатся. Почему за клиентов все должен решать какой-то сервер. Что за
 
Последнее редактирование:
 

gfdjr5

[NULL]
25.11.2012
563
0
0
Награды
0
Cybermax сказал(а):
Зачем все так усложнять, если есть команда writecfg в стим хл но нет в Ксаш. Настроил конфиг под себя, в консоли writecfg имяконфига.cfg и сохраняется все в нем. Хоть autoexec.cfg хоть васяпупкин_нагибатор.cfg. Как по мне оптимальный вариант без геморроя просто необходимый для сетевой игры.
Консоль отладки предназначена, прежде всего, для отладки, и ориентирована на разработчика, а не на рядового пользователя.
Ничего плохого в том, что бы иметь оба варианта, не вижу

Cybermax сказал(а):
Хотя бы в Ксаше оставьте клиенту решать делать kill или продолжать мучатся. Почему за клиентов все должен решать какой-то сервер. Что за
Действительно, зачем? А пускай они сами свою позицию считают и присылают в пакете её. И стрельбу тоже. Пусть сразу шлют, по кому попали, с чего и сколько дмг нанесли. И статы все пусть на себе держат. Пароли, email-ы, уровни, деньги и прочее. Вот игрок перед тобой, и вот он уже на другом конце карты. И с того же конца карты тебе в лоб через все стены прилетела пуля от пистолета и нанесла тебе 9999999 повреждения, когда у противника в руках был нож.
 
Последнее редактирование:
 

Cybermax

Супер Модератор
Команда форума
11.03.2008
2 747
28
48
Награды
0
Консоль отладки предназначена, прежде всего, для отладки, и ориентирована на разработчика, а не на рядового пользователя.
Ничего плохого в том, что бы иметь оба варианта, не вижу
Вот сказал бы ты мне это во времена когда я ходил по клубам. А вообще фича нужная. Настроил один раз под себя конфиг и сохранил. Хоть 100500 конифгов. Всегда есть defaul.tcfg также можно в autoexeс.cfg прописать exec default.cfg при необходимости.

Действительно, зачем? А пускай они сами свою позицию считают и присылают в пакете её. И стрельбу тоже. Пусть сразу шлют, по кому попали, с чего и сколько дмг нанесли. И статы все пусть на себе держат. Пароли, email-ы, уровни, деньги и прочее
Не надо утрировать, это пошло. Я написал про команду которая есть в стим хл, почему принцип её работы должен отличаться в Ксаш?
 
 

Ku2zoff

Member
12.08.2010
314
6
18
Награды
0
28
>>Да и обычно с "кривых" настроек конфига ГС не падал, просто какой-то функционал перестаёт работать, если задано неправильное значение или корректируется сервером.
Запусти мод под WON-версией, а потом под Steam. Он у тебя успешно крэшнится при старте карты, или через несколько секунд после старта, предварительно сильно полагав. Так и не будет запускаться, пока не впишешь квару lightgamma значение 2.0 или выше. Ну и лично у меня в моде маленькая пакость есть, приводящая к вылету, если в конфиге указана несуществующая в папке мода модель игрока. Всё забываю исправить.
 
 

xawari

senior developer
14.02.2014
15
0
0
Награды
0
www.netheaven.ru
Дядя Миша сказал(а):
А, то я перепутал с блудспрайт. Вот его я действительно приводил в соответствие.

зачем мне отладчик, если у меня код движка выполняется в голове?
Я и так знаю где вылет, что к нему привело и какие моды затронет багфикс.
Вон Хвидер уже 10 лет ковыряет свой XDM отладчиком, а он всё глючнее и глючнее становится. Я на минутку к нему в код заглянул - штук 15 застарелых багов профиксил, а он мне даже спасибо не сказал.
Какой ты жыадный - спасибо в readme тебе мало...
Кстати, где ты их профиксил и когда? У меня SVN не наблюдается.

[ADDED=xawari]1437909434[/ADDED]
PS: баг с камерой от 3го лица профикшен? settings.scr, наконец, читается?

[ADDED=xawari]1437909969[/ADDED]
gfdjr5 сказал(а):
Да, такое, конечно, тоже может встретиться
Но есть такая вещь, как проверка на успешность предыдущей инициализации
То есть, допустим, при старте есть у нас в конфиге вар lastinitok, в значение
Счас ДМ скажет, что я троллю, но в XDM это есть. Причём позволяет dedicated-server автоматом перезапускать на последней карте. ;)
 
Последнее редактирование:
 
Команда форума
28.03.2010
15 384
242
63
Награды
0
Кубань
Счас ДМ скажет, что я троллю, но в XDM это есть.
Я надеюсь ты избавился от ent-файлов или хотя бы сменил им расширение?
Потому что энт-патчи, это общепризнанный стандарт в среде Q-движков, а не моё изобретение.
 
 

xawari

senior developer
14.02.2014
15
0
0
Награды
0
www.netheaven.ru
Дядя Миша сказал(а):
Я надеюсь ты избавился от ent-файлов или хотя бы сменил им расширение?
Потому что энт-патчи, это общепризнанный стандарт в среде Q-движков, а не моё изобретение.
Конечно. В тот самый момент когда мы это обсуждали.
Я ещё xash-specific совместимостей кое-где сделал, но баг с камерой и рандомным PVS пока остался.
 
 
Команда форума
28.03.2010
15 384
242
63
Награды
0
Кубань
2 xawari: ну выкладывай их сюда. Я планирую ближе к осени плотно заняться адекватной поддержкой мультиплеера. А кораблики до сих пор кверхногами плавают?
 
 

xawari

senior developer
14.02.2014
15
0
0
Награды
0
www.netheaven.ru
Местами - да. Теперь в ХЛ один из них кверху днищем. Я у себя везде SQB вычистил - мож, по этому.
Баг с камерой - просто включаешь вид от 3го лица - и завертится. Клавиша "z", вроде. Пропадают куски мира - как будто отсечение чего-то не понимает. Ещё надо будет с тобой пообщаться насчёт генерации user/auth ID. У меня на них инвалидация игроков завязана.
 
 

gfdjr5

[NULL]
25.11.2012
563
0
0
Награды
0
ДМ, исправишь?

build 3030 (есть и на более ранних, думаю, и в 3075 осталось)
Дубляция кода
filesystem.c
file_t *FS_Open( const char *filepath, const char *mode, qboolean gamedironly )

Код:
	if( host.type == HOST_NORMAL || host.type == HOST_DEDICATED )
   		  {
   		// some stupid mappers used leading '/' or '\' in path to models or sounds
   		if( filepath[0] == '/' || filepath[0] == '\\' ) filepath++;
   		if( filepath[0] == '/' || filepath[0] == '\\' ) filepath++;
   		  }
 
Последнее редактирование:
 
Команда форума
28.03.2010
15 384
242
63
Награды
0
Кубань
2 gfdjr5: это не дубляция кода. Это мне Кувертус прислал некоторые карты, где мапперы зачем-то ставили двойной слэш в начале пути к модели.
Причём прислал буквально за полчаса до очередного релиза. Я не стал там городить никаких циклов, а отделался вот таким говнокодом. Не трогай.
 
 

gfdjr5

[NULL]
25.11.2012
563
0
0
Награды
0
Дядя Миша сказал(а):
2 gfdjr5: это не дубляция кода. Это мне Кувертус прислал некоторые карты, где мапперы зачем-то ставили двойной слэш в начале пути к модели.
Причём прислал буквально за полчаса до очередного релиза. Я не стал там городить никаких циклов, а отделался вот таким говнокодом. Не трогай.
А то, что сейчас в коде там это именно два раза подряд прописано, норма?
 
 
Команда форума
28.03.2010
15 384
242
63
Награды
0
Кубань
2 gfdjr5: я же говорю, оно борется с двойным слэшем в начале пути. Каждая строчка убирает лишь один слэш. А две одинаковые строчки убирают двойной слэш.

Оффтоп
 
 

gfdjr5

[NULL]
25.11.2012
563
0
0
Награды
0
Дядя Миша сказал(а):
2 gfdjr5: я же говорю, оно борется с двойным слэшем в начале пути. Каждая строчка убирает лишь один слэш. А две одинаковые строчки убирают двойной слэш.
А, понял

Дядя Миша сказал(а):
Оффтоп
Оффтоп
 
 

gfdjr5

[NULL]
25.11.2012
563
0
0
Награды
0
В общем
Посидели мы тут с mittorn'ом ночь и исправили "эффект щита" под cs1.6
Теперь всё работает также, как и в GS и даже лучше

Как это работает
Оффтоп

Какие изменения внести в код
Оффтоп

[ADDED=gfdjr5]1438493570[/ADDED]
Также предоставлю собранный движок 3030 билда с фиксом
http://rghost.ru/6zyrdBC6X#

[ADDED=gfdjr5]1438493749[/ADDED]
Для теста вам нужен дистрибутив от 1.6 и клиент от 1.3
 
Последнее редактирование: