HLFX.Ru Forum
Показать все 5 сообщений этой темы на одной странице

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=5025)


Отправлено FreeSlave 13-07-2017 в 15:34:

Question Отображение названий глав в списке сохранений

Как сабж реализовать в стороннем моде?
В Half-Life и Opposing Force при открытии меню Load game в списке отображаются названия глав. В модах я такого не помню, там отображаются названия файлов карт (без расширения). Пробовал ставить message у worldspawn - не помогло.

__________________
I'm on github
I'm on opendesktop.org


Отправлено XaeroX 13-07-2017 в 15:56:

FreeSlave
Ну очевидно же - это вшито в движок, конкретно для халфы и опфора.
В ретрибушене тоже показываются названия глав, но только лишь потому, что там карты называются c0a0, c1a0 и т.п.
И ещё сейчас придёт Дядя Миша и расскажет про pfnSaveGameComment в ксаше.

__________________

xaerox on Vivino


Отправлено a1batross 13-07-2017 в 16:01:

XaeroX не только в Ксаше, в голдсорсе тоже.


Отправлено FreeSlave 13-07-2017 в 16:06:

XaeroX, спасибо.
Я думал, в ретрибьюшене оно так только для того, чтоб карты не показывались в списке мультиплеерных. А оказывается ещё и для лейблов сэйвов.

__________________
I'm on github
I'm on opendesktop.org


Отправлено Дядя Миша 13-07-2017 в 17:37:

Я смотрю народ про эти сохранения вообще не вкурсе. Хотя казалось бы. Начнём стого, что эта табличка впервые появилась в кваке (а может и в дууме, но мне лень провирять).

C++ Source Code:
1
level_t		levels[] =
2
{
3
  {"start", "Entrance"},	// 0
4
 
5
  {"e1m1", "Slipgate Complex"},				// 1
6
  {"e1m2", "Castle of the Damned"},
7
  {"e1m3", "The Necropolis"},
8
  {"e1m4", "The Grisly Grotto"},
9
  {"e1m5", "Gloom Keep"},
10
  {"e1m6", "The Door To Chthon"},
11
  {"e1m7", "The House of Chthon"},
12
  {"e1m8", "Ziggurat Vertigo"},
13
 
14
  {"e2m1", "The Installation"},				// 9
15
  {"e2m2", "Ogre Citadel"},
16
  {"e2m3", "Crypt of Decay"},
17
  {"e2m4", "The Ebon Fortress"},
18
  {"e2m5", "The Wizard's Manse"},
19
  {"e2m6", "The Dismal Oubliette"},
20
  {"e2m7", "Underearth"},
21
 
22
  {"e3m1", "Termination Central"},			// 16
23
  {"e3m2", "The Vaults of Zin"},
24
  {"e3m3", "The Tomb of Terror"},
25
  {"e3m4", "Satan's Dark Delight"},
26
  {"e3m5", "Wind Tunnels"},
27
  {"e3m6", "Chambers of Torment"},
28
  {"e3m7", "The Haunted Halls"},
29
 
30
  {"e4m1", "The Sewage System"},				// 23
31
  {"e4m2", "The Tower of Despair"},
32
  {"e4m3", "The Elder God Shrine"},
33
  {"e4m4", "The Palace of Hate"},
34
  {"e4m5", "Hell's Atrium"},
35
  {"e4m6", "The Pain Maze"},
36
  {"e4m7", "Azure Agony"},
37
  {"e4m8", "The Nameless City"},
38
 
39
  {"end", "Shub-Niggurath's Pit"},			// 31
40
 
41
  {"dm1", "Place of Two Deaths"},				// 32
42
  {"dm2", "Claustrophobopolis"},
43
  {"dm3", "The Abandoned Base"},
44
  {"dm4", "The Bad Place"},
45
  {"dm5", "The Cistern"},
46
  {"dm6", "The Dark Zone"}
47
};

Там же вкомпилено для хипнотика и рагуя, но я не стал их приводить - итак понятно.
Теперь про халфовскую:
C++ Source Code:
1
static TITLECOMMENT gTitleComments[] =
2
{
3
  { "T0A0", "#T0A0TITLE" },
4
  { "C0A0", "#C0A0TITLE" },
5
  { "C1A0", "#C1A0TITLE" },
6
  { "C0A1", "#C0A1TITLE" },
7
  { "C1A1", "#C1A1TITLE" },
8
  { "C1A2", "#C1A2TITLE" },
9
  { "C1A3", "#C1A3TITLE" },
10
  { "C1A4", "#C1A4TITLE" },
11
  { "C2A1", "#C2A1TITLE" },
12
  { "C2A2", "#C2A2TITLE" },
13
  { "C2A3", "#C2A3TITLE" },
14
  { "C2A4D", "#C2A4DTITLE" },	// These must appear before "C2A4" so all other map names starting with C2A4 get that title
15
  { "C2A4E", "#C2A4ETITLE" },
16
  { "C2A4F", "#C2A4FTITLE" },
17
  { "C2A4G", "#C2A4GTITLE" },
18
  { "C2A4", "#C2A4TITLE" },
19
  { "C2A5", "#C2A5TITLE" },
20
  { "C3A1", "#C3A1TITLE" },
21
  { "C3A2", "#C3A2TITLE" },
22
  { "C4A1A", "#C4A1ATITLE" },	// Order is important, see above
23
  { "C4A1B", "#C4A1BTITLE" },
24
  { "C4A1C", "#C4A1CTITLE" },
25
  { "C4A1D", "#C4A1DTITLE" },
26
  { "C4A1E", "#C4A1ETITLE" },
27
  { "C4A1", "#C4A1TITLE" },
28
  { "C4A2", "#C4A2TITLE" },
29
  { "C4A3", "#C4A3TITLE" },
30
  { "C5A1", "#C5A1TITLE" }
31
};

Вальва там конкретно напутала в эпизодах. По-хорошему имя для сейва должно было приходить из world->v.netname. Пример
C++ Source Code:
"chaptertitle" "T0A0TITLE"

Но вальва или не стала свиазываться, или для локализации или они в каких-то именах некоторых карта там чота напутоле, ну корочи вместо того чтобы брать эту строчку из pev->netname закодили вот эту вот дурацкую табличку. Обратите внимание, что табличка не учитывает какие-то диапазоны уровней. Только те карты, которые есть в списке. Как оно распространяется на последующие уровни я понятия не имею, никогда не интерисовался. А ксаш всегда брал название из world->v.message, хотя по идее надо переделать на world->v.netname и взять реальную мессагу из titles.txt

__________________
My Projects: download page

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

Цитата:

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


Временная зона GMT. Текущее время 22:51.
Показать все 5 сообщений этой темы на одной странице

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