HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > Адская карта (WTF)
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



Адская карта (WTF)

Если среди вас есть специалисты по маппингу, то быть может мне кто-нибудь объяснит, почему вот эта простенькая карта убивает халфу в момент загрузки, а ксаш убивает при попытке выстрелить из ракетницы\при наборе impulse 101, а то и просто при убийстве об пол.
Тем не менее в мультиплеере всё работает как надо.
Мои версии по поводу происходящего:
1. недостаточно итераций физики при загрузке карты в сингле (2 против 16 в мульте)
2. старый баг HL SDK, при котором подобранное оружие потенциально продолжает тчинкать (можно без проблем вынести халфу, если разместить оружие на определенной высоте над info_player_start).
Других вариантов, у меня собственно нету.
Но тогда почему происходит вылет при убийстве игрока об землю?

Вложение: killbox.rar (66.0 кб)
Этот файл был скачан 418 раз.
Дядя Миша проверил это вложение на вирусы 22-06-2011 в 14:10

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 79465

Старое сообщение 22-06-2011 13:46
-
n00b
Житель форума

Дата регистрации: Nov 2010
Проживает: (void)
Сообщений: 128

Рейтинг



Почему так происходит не знаю, халва реально вылетает при загрузке, но в кс все грузится, и даже при убийстве об пол не вылетает.

Сообщить модератору | | IP: Записан
Сообщение: 79470

Старое сообщение 22-06-2011 14:24
- За что?
 Skaarj
Ctrl+S

Дата регистрации: Aug 2006
Проживает: Twisting Nether
Сообщений: 2377
Нанёс повреждений: 9 ед.

Рейтинг



Награды
  
[2 награды]


Когда в ХЛ запустил ДМ, отключил в консоле ДМ и прописал restart, то при убийстве об пол вылетело с ошибкой.
entity is not a player: 7

Халфа.
Protocol version 47
Exe version 1.1.2.0 (valve)
Exe build: 21:31:56 Oct 19 2006 (3647)

Сообщить модератору | | IP: Записан
Сообщение: 79475

Старое сообщение 22-06-2011 15:32
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



то что ошибка где-то в коде hl.dll это понятно. Вопрос - где именно

Добавлено 22-06-2011 в 19:36:

И как это баг был достигнут чисто мапперским путём - это куда интереснее.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 79478

Старое сообщение 22-06-2011 15:36
-
 Skaarj
Ctrl+S

Дата регистрации: Aug 2006
Проживает: Twisting Nether
Сообщений: 2377
Нанёс повреждений: 9 ед.

Рейтинг



Награды
  
[2 награды]


Декомпиль и смотри.

Сообщить модератору | | IP: Записан
Сообщение: 79480

Старое сообщение 22-06-2011 15:45
-
n00b
Житель форума

Дата регистрации: Nov 2010
Проживает: (void)
Сообщений: 128

Рейтинг



Цитата:
Дядя Миша писал:
(можно без проблем вынести халфу, если разместить оружие на определенной высоте над info_player_start).

Да да, там такое есть:

После перекомпила без этого сатчела, вылетать перестало.

Проверил под ксашем: при импульсах и выстреле из ракеты уменя он не падал, что не скажешь об убийстве об пол
Но даже пол смилостливился, когда я подсунул карту без сатчела.

А нет, вру. Оригинальная карта и на импульсе с ракетницей xash вешает, а перекомпилированая только об пол.

Добавлено 22-06-2011 в 21:08:

Своим ентэдитом вырезал из оригенальной карты этот глупый сатчел, халва вылетать перестала! Но xash её не запускает, говорит мол funny lump size при Mod_LoadPlanes. Это что за, здрасте?) Почему халва грузит а ксаш не хочет?

[ Вложение ]
oryjienadspawnom.jpg

Отредактировано n00b 22-06-2011 в 16:56

Сообщить модератору | | IP: Записан
Сообщение: 79482

Старое сообщение 22-06-2011 17:08
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
n00b писал:
говорит мол funny lump size при Mod_LoadPlanes

в ксаше есть детектор блушифтовских карт, которые отличаются от обычного BSP 30 тем занимательным фактом, что LUMP_PLANES и LUMP_ENTITIES попутаны мистаме.
Само детектирование происходит так:
C++ Source Code:
1
if( header->lumps[LUMP_ENTITIES].fileofs <= 1024 )
2
{
3
  // Blue-Shift ordering
4
  lumpofs = header->lumps[LUMP_PLANES].fileofs;
5
  lumplen = header->lumps[LUMP_PLANES].filelen;
6
}
7
else
8
{
9
  lumpofs = header->lumps[LUMP_ENTITIES].fileofs;
10
  lumplen = header->lumps[LUMP_ENTITIES].filelen;
11
}

Ксаш исходит из того простого соображения, что энтити всегда дописываются в конец карты и если ты их дописал в начало, то движок решит, что это блушифтовская карта (поскольку никаких других, ч0тких критериев попросту нету), и естественно поменяет лумпы местами, пытаясь загрузить энтити как планесы. Проверить данное предположение очень легко - выведи список карт, напротив твоей отредактированной ксаш с большой долей вероятности напишет Blue Shift.
Исправляй свой риппер.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 79487

Старое сообщение 22-06-2011 17:23
-
n00b
Житель форума

Дата регистрации: Nov 2010
Проживает: (void)
Сообщений: 128

Рейтинг




Я как раз по этому поводу думал, когда его делал. Почему лумпы записаны не в том порядке, в котором задефайнены. И будет ли плохо если я их запишу не так как было в карте. Оказалось будет.

Вот простым рипентом убрал этот сатчел, теперь все работает и в ксаше.

Вложение: killbox.rar (66.5 кб)
Этот файл был скачан 425 раз.

Сообщить модератору | | IP: Записан
Сообщение: 79490

Старое сообщение 22-06-2011 17:34
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
n00b писал:
Почему лумпы записаны не в том порядке, в котором задефайнены

потому что энтити, виз и лайтдату удобнее дописывать в конец, а сама система лумпов для того и создана, чтобы не заботится о реальном порядке их следования.
Цитата:
n00b писал:
Вот простым рипентом убрал этот сатчел, теперь все работает и в ксаше.

мог бы набрать в консоли entpatch и отредактировать killbox.ent - ксаш их грузит.

Добавлено 22-06-2011 в 22:42:

Кстати под спиритом этот баг проявится не должен

Добавлено 22-06-2011 в 22:59:

Да, кстати. Поскольку вы разыскали баг и дело оказалось в этом злополучном сатчеле, я расскажу как его исправить в своём моде:
Откройте weapons.cpp и найдите функцию
C++ Source Code:
void CBasePlayerItem::AttachToPlayer ( CBasePlayer *pPlayer )

В самый её конец надо добавить строчку
C++ Source Code:
SetThink(NULL);

Как вы уже наверное догадались, данная строчка отменяет дальнейшую работу тчинка по падению предмета на землю, приводя к непредсказуемым последствиям, при условии, что игрок уже взял этот предмет. Данный баг исправил еще BUzer в далеком 2005 году, за што ему спасибо.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 79493

Старое сообщение 22-06-2011 18:59
-
n00b
Житель форума

Дата регистрации: Nov 2010
Проживает: (void)
Сообщений: 128

Рейтинг



Дядя Миша писал:
мог бы набрать в консоли entpatch и отредактировать killbox.ent - ксаш их грузит.[/QUOTE]
Я про это в какой-то теме читал, но забыл.

Можешь обьяснить, почему из-за сатчела над спауном, такая жуть получается?

Добавлено 22-06-2011 в 23:08:

Цитата:
n00b писал:
Как вы уже наверное догадались, данная строчка отменяет дальнейшую работу тчинка по падению предмета на землю, приводя к непредсказуемым последствиям, при условии, что игрок уже взял этот предмет.


Ну теперь понятно, когда писал свой пост этого ещё небыло.

Сообщить модератору | | IP: Записан
Сообщение: 79496

Старое сообщение 22-06-2011 19:08
- За что?
IPwnMice
ALERRRT!!!
Девойс

Дата регистрации: May 2011
Проживает: Санкт-Петербург
Сообщений: 89
Возраст: 27

Рейтинг



Вылетает

За это сообщение IPwnMice получил предупреждение за флуд

Сообщить модератору | | IP: Записан
Сообщение: 80837

Старое сообщение 01-08-2011 12:38
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 17:31. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > Адская карта (WTF)
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024