ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм. Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
 
  |  
|   » Структура данных X-Tension | страница 2 |  
 
	
		 | 
		 | 
		 | 
	 
	| 
Канал X-Tension/X-BTF: «Структура данных X-Tension» |  
	| 
	 |  
	 |  
	
		Laster
   155 EGP
    Репутация: 16 Сообщения: 133  Откуда: Нижний Новгород Зарегистрирован: 29.06.2004
      | 
         | 
		Shaddie в любом случае результат будет интересен и полезен - идея отличная.   
        	  | 
		 
		
		| 
		
		 | 
         
     |  
	
		Argonaut
   260 EGP
     Рейтинг канала: 1(9) Репутация: 43 Сообщения: 185  Откуда: Челябинск Зарегистрирован: 27.04.2004
      | 
         | 
		А если провести такой эксперимент:
 
новые сектора не добавлять, а сменить порядок (примерно тоже, что делал Shaddie, заменяя координаты сектора и врата).
 
 
Карта у нас вписывается в координаты [0,0]-[19,9].
 
А если выйти за эти пределы??? Например, все сектора, что выше "Black Hole Sun", вытянуть в прямую. Далее, на восток.
 
Получится ли дотянуть до [27,6]?
 
 
Цель эксперимента - узнать, есть ли какие-нить ограничения по размерам карты. 
        	 _________________ Объявление
 
Отдам малыша Ксенона в хорошие руки. Денег не предлагать.  | 
		 
		
		| 
		
		 | 
         
     |  
	
		Shaddie
   556 EGP
        Рейтинг канала: 6(438) Репутация: 118 Сообщения: 261  Откуда: Томск Зарегистрирован: 09.09.2004
       | 
         | 
		
	  | DF : | 
	 
	
	  | 
 004018B2 8B 55 F8 0F BF 02 83 C2 02
 | 
	 
 
 
Ошибка. offset 004018B2 неправильно, должен offset 000018B2 и смотреть в exe-шнике. Правильно?
 
Если можно опиши поподробнее. 
        	  | 
		 
		
		| 
		
		 | 
         
     |  
	
		Laster
   155 EGP
    Репутация: 16 Сообщения: 133  Откуда: Нижний Новгород Зарегистрирован: 29.06.2004
      | 
         | 
		
	  | Shaddie : | 
	 
	
	  | 
Игра запускается, но при начале новой игры вылетает в винду. Я тоже думаю, что точка входа в байткод, где то прописана, может быть 001.obj или в exe-шнике. Наскоком найти не удалось.
 | 
	 
 
 
 
А сохраненные игры как ведут себя?
 
 Если сейвы запускаются нормально – можно предположить, что интерпретатор лопатит весь файл 001.obj. Блоки данных и блоки команд узнает по каким-то маркерам и как-то там их уже сам распределяет и связывает (адреса указателей и переходов в байткоде относительны…)… Но важно другое, а именно, что если данное предположение верно, изначально адреса начала блоков нигде не прописаны (я думаю,  в любом случае не в екзешнике). Тогда в случае с новой игрой(предположения): 
 
1) в байткоде стоит защита от вмешательства в данные для новой игры(выброс в win) 
 
2) некорректное добавление данных (где-то что-то упустили)… 
        	  | 
		 
		
		| 
		
		 | 
         
     |  
	
		DF
   300 EGP
     Рейтинг канала: 5(118) Репутация: 47 Сообщения: 478 
  Зарегистрирован: 06.09.2003
      | 
         | 
		
	  | Цитата: | 
	 
	
	  | 
А дальше в том месте не копал?
 | 
	 
 
 
Все, что знаю, выложил.
 
	  | Цитата: | 
	 
	
	  | 
Ошибка. offset 004018B2 неправильно, должен offset 000018B2 и смотреть в exe-шнике. Правильно? 
 | 
	 
 
 
Неправильно. Смотреть надо в памяти софтайсом. Туда ставить брейкпойнт.
 
	  | Цитата: | 
	 
	
	  | 
1) в байткоде стоит защита от вмешательства в данные для новой игры(выброс в win) 
 | 
	 
 
 
Нет там никакой защиты, крейсера на ура захватывались   Просто надо менять корректно.
 
Кстати по внешнему виду приведенных здесь структур у меня создалось впечатление, что это тоже скрипты (последовательно запихивают в стек данные, а потом все это перегоняется из стека еще куда-нибудь). 
        	 _________________ По моему так.  | 
		 
		
		| 
		
		 | 
         
     |  
	
		Laster
   155 EGP
    Репутация: 16 Сообщения: 133  Откуда: Нижний Новгород Зарегистрирован: 29.06.2004
      | 
         | 
		
	  | DF : | 
	 
	
	  
Нет там никакой защиты, крейсера на ура захватывались   Просто надо менять корректно.
 | 
	 
 
 
 
Я имел в виду не замену, а добавление… 
        	  | 
		 
		
		| 
		
		 | 
         
     |  
	
		Shaddie
   556 EGP
        Рейтинг канала: 6(438) Репутация: 118 Сообщения: 261  Откуда: Томск Зарегистрирован: 09.09.2004
       | 
         | 
		Результаты по добавлению сектора:
 
  1. Начал новую игру – проблем не было.
 
  2. Побывал в секторе The Wall – все нормально.
 
  3. Прилетел в сектор Emperor Mines – южные ворота появились, на карте сектора они отображались, на галактической карте нет (наверно причина та же что и в X2).
 
  4. При выборе южных ворот проблем с озвучкой не было: просто борт. комп. сказал “Ворота”. Название сектора отобразилось правильно (“Way to system: New sector”).
 
  5. Залетел в южные ворота и оказался в полностью пустом секторе (северных ворот не было). Карта сектора открывалась, но была пустой. Карта галактики не открылась.
 
Возможно, проблема в том, что в идентификаторе сектора значение ZZZZ я поставил наугад (0023). Если кто хочет поэкспериментировать с ZZZZ, то порядок действий:
 
  1. Изменяем для Emperor Mines offset 86920:
 
0012000F0009000A00010029002F меняем на 0014000F0009000A00010029002F.
 
  2. Удаляем блок информации (размер файла должен уменьшиться) для The Wall с 57132 по 5721F включительно (всего 238 байт):
 
0009000F00100002000436200002000B
 
1FA80002FFF2F42800100010002F0009
 
000F00100002000747480002FFEE4680
 
000200089D7800100010002F0009000F
 
001000020014AE880002FFFF42280002
 
000EC47800100010002F0009000F0010
 
0002FFF60A0000020000A1B800020015
 
A95000100010002F0009000F00100002
 
00227A900002000B7D68000200089D78
 
00100010002F0009000F00100002FFE5
 
D7E80002FFEF45F80002000179580010
 
0010002F0009000F00100002FFF60A00
 
0001B9B00002FFFD4A4000100010002F
 
0009000F001000020012C4B00002FFEB
 
5F880002FFF85FA800100010002F
 
  3. Удаляем блок информации (размер файла должен уменьшиться) для The Wall с 562E4 по 56301 включительно (всего 30 байт):
 
0009000A000F0002001F06F800020006
 
A0E00002FFBD8D1000100010002F
 
  4. Вставляем блок данных нового сектора (всего 268 байт), начиная с 562C6:
 
0009000A000F0002000374C400020003
 
74C40002000374C400100010002F000A
 
0019000B002F000A002F000A00090014
 
000B002F000A002F00100009000A0010
 
0009000200132BD0000900100010002F
 
0009000A00100009000200010FE00009
 
00100010002F0009000A000F00090002
 
00071F70000900100010002F0009000A
 
000A00090002FFED0EC8000900100010
 
002F000D002F000B000100C9000A000D
 
0002000BD6780002000BD6780002000B
 
D678000F0016002F000100D500010089
 
0001009D0002D77B1340000209E829D0
 
000220130F40000C0010002F000A000D
 
00020F360B00000206B49D200002EF04
 
C560000D000F002F000C000B000B002F
 
000A00100009000AZZZZ002F
 
  5. Вставляем следующие строки в файл 44001.txt:
 
1010801 “Way to system: New sector”
 
1020801 “New sector”
 
1030801 “New sector text”
 
 
Сообщите о том, что подставляли и что получилось. 
        	  | 
		 
		
		| 
		
		 | 
         
     |  
	
		Shaddie
   556 EGP
        Рейтинг канала: 6(438) Репутация: 118 Сообщения: 261  Откуда: Томск Зарегистрирован: 09.09.2004
       | 
         | 
		Может поможет (разобраться с идентификатором сектора) следующая информация:
 
VV - наличие ворот:
 
 N - Север - Верхние ворота;
 
 E - Восток - Правые ворота;
 
 S - Юг - Нижние ворота;
 
 W - Запад - Левые ворота
 
000A  N
 
000B  S
 
000C  NS
 
000D  W
 
000E  NW
 
000F  SW
 
0010  NSW
 
0011  E
 
0013  ES
 
0012  NE
 
0014  NES
 
0015  EW
 
0016  NEW
 
0017  ESW
 
0018  NESW
 
 
__VV__YY__XX____ZZZZZZZZ____  Наименование сектора         [YY,XX] <BeginData-EndData>
 
 
000C00100010000A00010020002F  Light Of Heart               [07,07] <335F6-34635>
 
000C00110010000A00010023002F  Montalaar                    [08,07] <34636-354CB>
 
001600120010000A0001002B002F  Rolks Legacy                 [09,07] <354CC-36239>
 
001300100013000A0001002F002F  Eighteen Billion             [07,10] <3623A-37017>
 
000E00110013000A0001002B002F  Ianamus Zura                 [08,10] <37018-38A31>
 
001300110012000A0001002C002F  New Income                   [08,09] <38A32-39C3B>
 
001500120011000A0001002D002F  Great Trench                 [09,08] <39C3C-3AF0B>
 
000E00120012000A00010020002F  Ceo's Doubt                  [09,09] <3AF0C-3BAB7>
 
000F000F0010000A00010027002F  Aladna Hill                  [06,07] <3BAB8-3C74D>
 
000C000B001B000A00010020002F  Bluish Snout                 [02,18] <3C74E-3D3B1>
 
0013000A001B000A00010024002F  Menelaus' Paradise           [01,18] <3D3B2-3E553>
 
000C000D0019000A00010031002F  Family Njy                   [04,16] <3E554-3FBAF>
 
0015000C001A000A00010024002F  Hila's Joy                   [03,17] <3FBB0-40967>
 
000B0009001C000A00010022002F  Xenon Sector                 [00,19] <40968-41139>
 
0013000C0019000A00010026002F  Ghinn's Escape               [03,16] <4113A-42499>
 
0014000E000C000A0026002F      Split Fire                   [05,03] <4249A-42D9D>
 
0015000F000E000A0001002F002F  Nopileo's Memorial           [06,05] <42D9E-4373D>
 
000E000E0019000A00010024002F  Thyn's Abyss                 [05,16] <4373E-447DD>
 
0015000F0017000A00010023002F  Treasure Chest               [06,14] <447DE-4542D>
 
000E000F0018000A00010020002F  Black Hole Sun               [06,15] <4542E-463B3>
 
0015000F0015000A00010021002F  Nyana's Hideout              [06,12] <463B4-4767F>
 
0015000F0016000A00010026002F  Omicron Lyrae                [06,13] <47680-48C6D>
 
0014000F0014000A0001002F002F  Scale Plate Green            [06,11] <48C6E-49A7F>
 
000F000E0014000A0001002B002F  PTNI Headquarters            [05,11] <49A80-4B5AF>
 
0012000E0013000A0028002F      Profit Center Alpha          [05,10] <4B5B0-4C341>
 
0010000E000F000A0026002F      Thuruk's Beard               [05,06] <4C342-4D591>
 
00120012000C000A00010035002F  Trinity Sanctum              [09,03] <4D592-4F143>
 
0012000D0012000A0001002B002F  Patriarch's Keep             [04,09] <4F144-50025>
 
000F000C0012000A0001002D002F  Cho's Defeat                 [03,09] <50026-51429>
 
00150012000F000A00010028002F  Lucky Planets                [09,06] <5142A-52B1B>
 
000F000D0013000A0024002F      Two Grand                    [04,10] <52B1C-53AE1>
 
00150012000E000A0028002F      Shore of Infinity            [09,05] <53AE2-546DD>
 
0018000B000B000A0024002F      The Hole (AMEC Headquarters) [02,02] <546DE-555DB>
 
0014000A000D000A0023002F      Profit Share                 [01,04] <555DC-562C5>
 
0010000C000B000A0027002F      The Wall                     [03,02] <562C6-57361>
 
0014000B0009000A0023002F      Cloudbase North West         [02,00] <57362-57E01>
 
0018000C000A000A0022002F      Argon Prime                  [03,01] <57E02-58D4B>
 
0016000F000F000A00010025002F  Hatikvah`s Faith             [06,06] <58D4C-59623>
 
00170009000E000A0024002F      Teladi Gain                  [00,05] <59624-5A4B1>
 
0018000B000A000A00010021002F  Herron's Nebula              [02,01] <5A4B2-5B28B>
 
0010000A000E000A0001003A002F  Seizewell                    [01,05] <5B28C-5CAC3>
 
000E000A001C000A00010022002F  Xenon Sector                 [01,19] <5CAC4-5D7D9>
 
0018000D000A000A0022002F      Home of Light                [04,01] <5D7DA-5E38F>
 
00150009000A000A0001002C002F  Rolk's Drift                 [00,01] <5E390-5FF05>
 
0012000B000D000A0028002F      Spaceweed Drift              [02,04] <5FF06-60E53>
 
000C000C000E000A0025002F      Blue Profit                  [03,05] <60E54-61DD7>
 
001300090009000A00010026002F  Kindom End                   [00,00] <61DD8-63C0D>
 
0010000B000C000A00010027002F  Atreu's Clouds               [02,03] <63C0E-65A9D>
 
000F0009000F000A0022002F      Family Whi                   [00,06] <65A9E-669C7>
 
000F000B0010000A00010028002F  Family Pride                 [02,07] <669C8-686A5>
 
0010000D000D000A0001002C002F  Olmancketslat's Treaty       [04,04] <686A6-68E0D>
 
0018000D000B000A0026002F      President's End              [04,02] <68E0E-69A6B>
 
00100010000C000A0026002F      Emperor's Ridge              [07,03] <69A6C-6AD07>
 
0014000C000F000A00010020002F  Chin's Fire                  [03,06] <6AD08-6BCBD>
 
0014000A0009000A0023002F      Three Worlds                 [01,00] <6BCBE-6CA11>
 
0012000E000E000A00010026002F  Company Pride                [05,05] <6CA12-6E595>
 
000F000C000D000A0021002F      Bala Gi's Joy                [03,04] <6E596-6EA09>
 
0015000C0011000A00010025002F  Tharka's Sun                 [03,08] <6EA0A-6F7F5>
 
000F000A000B000A0027002F      Antigone Memorial            [01,02] <6F7F6-7082F>
 
00150012000D000A0001002C002F  Preacher's Refuge            [09,04] <70830-71CE3>
 
0010000E000D000A00010024002F  Brennan's Triumph            [05,04] <71CE4-72849>
 
0016000C0010000A00010042002F  Chin's Clouds                [03,07] <7284A-74069>
 
0014000B000F000A00010021002F  Thuruk's Pride               [02,06] <7406A-754D7>
 
000C000A000C000A00010025002F  Rolk's Fate                  [01,03] <754D8-76D21>
 
000C000D000F000A0027002F      Family Chin                  [04,06] <76D22-77D8D>
 
0014000C0009000A0023002F      Ringo Moon                   [03,00] <77D8E-78805>
 
00150009000B000A0026002F      Queens Space                 [00,02] <78806-79901>
 
00160010000B000A0024002F      Duke's Domain                [07,02] <79902-7A897>
 
0010000F000C000A0027002F      Priest's Pity                [06,03] <7A898-7BEC3>
 
00120010000A000A0025002F      Empire's Edge                [07,01] <7BEC4-7CE71>
 
0010000B000E000A0025002F      Greater Profit               [02,05] <7CE72-7E097>
 
00170009000D000A00010022002F  Ceo's Buckzoid               [00,04] <7E098-7F447>
 
00170009000C000A00010026002F  Menelaus' Frontier           [00,03] <7F448-80977>
 
0017000A000A000A0023002F      Power Circle                 [01,01] <80978-81561>
 
0012000F000D000A0028002F      Danna's Chance               [06,04] <81562-81EA9>
 
0017000F000A000A00010021002F  Paranid Prime                [06,01] <81EAA-839DD>
 
0016000E000A000A0001006F002F  Ore Belt                     [05,01] <839DE-85663>
 
0012000F0009000A00010029002F  Emperor Mines                [06,00] <85664-8692D>
 
0014000D0009000A0028002F      Red Light                    [04,00] <8692E-87D97>
 
000C0011000C000A00010035002F  Pontifex' Realm              [08,03] <87D98-88EBD>
 
0018000D000C000A00010029002F  Elena's Fortune              [04,03] <88EBE-89A59>
 
0013000E0018000A00010029002F  Xenon Sector                 [05,15] <89A5A-8AA03>
 
000E00100014000A00010039002F  Xenon Sector                 [07,11] <8AA04-8B9D1>
 
0014000E0009000A00010023002F  Cloudbase South West         [05,00] <8B9D2-8CC9F>
 
000C000A000F000A00010020002F  Family Zein                  [01,06] <8CCA0-8DED5>
 
0014000C000C000A00010021002F  Farnham's Legend             [03,03] <8DED6-8E92B>
 
000C000D000E000A0028002F      Ceo's Sprite                 [04,05] <8E92C-8FA79>
 
0017000F000B000A00010021002F  Priest Rings                 [06,02] <8FA7A-90E4B>
 
000E000C001B000A0001002D002F  Ocean Of Fantasy             [03,18] <90E4C-92A53>
 
000E000E000B000A0023002F      Cloudbase South East         [05,02] <92A54-93B31>
 
 
Есть ли у кого соображения по поводу последних байтов в ИС? 
        	  | 
		 
		
		| 
		
		 | 
         
     |  
	
		Argonaut
   260 EGP
     Рейтинг канала: 1(9) Репутация: 43 Сообщения: 185  Откуда: Челябинск Зарегистрирован: 27.04.2004
      | 
         | 
		Про последние 2 байта пока не понимаю.
 
 
	  | Shaddie : | 
	 
	
	  
Может поможет (разобраться с идентификатором сектора) следующая информация:
 
VV - наличие ворот:
 
 N - Север - Верхние ворота;
 
 E - Восток - Правые ворота;
 
 S - Юг - Нижние ворота;
 
 W - Запад - Левые ворота
 | 
	 
 
 
Насчет VV есть чуть соображений:
 
Опять эта пресловутая девятка!
 
Если сразу ее отнять, то получим следующую зависимость:
 
каждый бит отвечает за свои ворота:
 
1 бит - 0000 0001 - N
 
2 бит - 0000 0010 - S
 
3 бит - 0000 0100 - W
 
4 бит - 0000 1000 - E
 
Ну и их сочетание конечно.
 
Вот за что отвечают другие биты?
 
Если туда тоже биты подставить? Хотя они скорее всего игнорируются. 
        	 _________________ Объявление
 
Отдам малыша Ксенона в хорошие руки. Денег не предлагать.  | 
		 
		
		| 
		
		 | 
         
     |  
	
		Shaddie
   556 EGP
        Рейтинг канала: 6(438) Репутация: 118 Сообщения: 261  Откуда: Томск Зарегистрирован: 09.09.2004
       | 
         | 
		
	  | Argonaut : | 
	 
	
	  
Если сразу ее отнять, то получим следующую зависимость:
 
каждый бит отвечает за свои ворота:
 
1 бит - 0000 0001 - N
 
2 бит - 0000 0010 - S
 
3 бит - 0000 0100 - W
 
4 бит - 0000 1000 - E
 
Ну и их сочетание конечно.
 
 | 
	 
 
 
Интересное замечание и похоже верное, а я что не догадался. Попробую то же самое проделать с ZZZZ для ИС. 
        	  | 
		 
		
		| 
		
		 | 
         
     |  
	
		Argonaut
   260 EGP
     Рейтинг канала: 1(9) Репутация: 43 Сообщения: 185  Откуда: Челябинск Зарегистрирован: 27.04.2004
      | 
         | 
		
	  | Argonaut : | 
	 
	
	  
А если провести такой эксперимент:
 
новые сектора не добавлять, а сменить порядок (примерно тоже, что делал Shaddie, заменяя координаты сектора и врата).
 
Карта у нас вписывается в координаты [0,0]-[19,9].
 
А если выйти за эти пределы??? Например, все сектора, что выше "Black Hole Sun", вытянуть в прямую. Далее, на восток.
 
Получится ли дотянуть до [27,6]?
 
Цель эксперимента - узнать, есть ли какие-нить ограничения по размерам карты.
 | 
	 
 
 
 
Провел в субботу этот эксперимент. Вот результаты:
 
все сектора (кроме "Гетсу Фан" и Враж. сектора [17,0]) "вытянул" в линию, на восток. Для этого сменил их координаты на [16,6]-[25,6]. Установил в секторах ворота E-W (код #0015), в том числе и в секторе "Черная Дыра Солнце (Black Hole Sun)" [15,6].
 
В последнем секторе "Вражеский сектор" [25,6] ворота на восток тоже были установлены. К тому же для проверки "замкнутости" вселенной были установлены западные ворота в секторе "Шахты Императора" [0,6].
 
 
Начал игру с начала и полетел в сектор "Черная Дыра Солнце (Black Hole Sun)" [15,6]. Просматривая карту галактики, находясь в этом секторе, заметил, что отображаются только западные ворота, хотя на самом деле присутствовали и восточные.
 
Полетев дальше на восток, попадаю во вражеский сектор, далее в "Бездну Тина (Thyn's Abbyss)", "Семья Ниу (Family Njy)", "Побег Гинна (Ghinn's Escape)". Галактическая карта не отображается. Точнее отбражается ее восточная часть, управление картой отсутствует. Отсутствуют также измененные сектора. Вместо названия секторов только "Sector 16-06"..."Sector 19-06". Описание сектора отсутствует. Расса, население, планеты, солнца отображаются правильно.
 
 
Пролетев еще далше, оказываюсь в секторе "Шахты Императора"!!!!!
 
Следовательно, возникает мысль:
 
1) вселенная замкнута. Улетев на восток, можешь появиться с запада;
 
2) максимальный размер карты - 20x10 (с [0,0]до [19,9]). На текущий момент построить сектор за этими пределами не удастся, он просто будет игнорироваться. Надо найти место, где снимается/изменяется это ограничение (если оно вообще есть).
 
 
(дописано позже)
 
В воскресение выяснил следующее: находясь с перемещенных секторах, карту галактики можно "двигать". Например, когда я был в секторе "16-06", масштаб карты не менялся. Но если "сдинуться" влево, в сектор "Черная Дыра Солнце (Black Hole Sun)" [15,6], то все функции управления картой появляются.
 
Замечено также, что находясь в "последнем правом" секторе [19,6], сдинуть карту галактики вправо не возможно. Тоже самое с сектором "Шахты Императора" (влево по карте не сместиться, даже если ты там только что пролетел).
 
 
Замечен еще один баг. Из сектора "Шахты Императора" нельзя попасть обратно, в сектор "19-06". При влете в ворота весь экран плавно становиться белым. Вход в сектор озвучивается (что грит, не понял, надо будет русскую озвучку воткнуть). Управление практически всем отсутствует. При нажатии кнопки "." (карта сектора), можно разглядеть надпись "Навигационный спутник отсутствует" (или как там это пишеться?). Также "разглядел" при выводе личной инфы (кнопка "p"), "Местонахождение: Конец Королевства"!!???... Похоже, координата вычитается не верно. При ошибке пытается подставить сектор [0,0], но не корректно. Причем, при одном-двух таких "просмотрах" игра виснет намертво. Тоже самое происходит, если начать игру заново и сразу попытаться пролететь сквозь эти ворота.
 
 
Название сектора и описание подставить не удалось. Даже прописав в файлах "44001.txt" и/или "44101.txt" - 1020718 "Бездна Тинна" и т.п.
 
 
Есть мысль, что где-то храниться карта галактики с данными о воротах и еще с чем нибудь (возможно прописаны коды названия сектора и описания, что берутся из файлов "44xxx.txt". 
        	 _________________ Объявление
 
Отдам малыша Ксенона в хорошие руки. Денег не предлагать.  | 
		 
		
		| 
		
		 | 
         
     |  
	
		Shaddie
   556 EGP
        Рейтинг канала: 6(438) Репутация: 118 Сообщения: 261  Откуда: Томск Зарегистрирован: 09.09.2004
       | 
         | 
		
	  | Argonaut : | 
	 
	
	  | 
Провел в субботу этот эксперимент.
 | 
	 
 
 
Молодец. А у меня на выходных не было времени покопаться.
 
	  | Argonaut : | 
	 
	
	  | 
Галактическая карта не отображается. Точнее отбражается ее восточная часть, управление картой отсутствует. Отсутствуют также измененные сектора.
 | 
	 
 
 
Я думаю причина этого бага та же что и в X2, но там ее вроде решили (кажется CheckerTwo), надо бы к нему обратиться.
 
	  | Argonaut : | 
	 
	
	  
1) вселенная замкнута.
 
2) максимальный размер карты - 20x10 (с [0,0]до [19,9]).
 | 
	 
 
 
Первый пункт очень интересен. А по поводу второго у меня были подозрения.
 
	  | Argonaut : | 
	 
	
	  | 
Название сектора и описание подставить не удалось. Даже прописав в файлах "44001.txt" и/или "44101.txt" - 1020718 "Бездна Тинна" и т.п.
 | 
	 
 
 
Ты как пробовал? Например, для сектора "Thyn's Abyss" в твоем случае, нужно не добавлять новые строки, а просто изменить: 1010617  "Way to system: Thyn's Abyss" на 1010718  "Way to system: Thyn's Abyss" и перенести эту строчку так чтобы соблюдалась последовательность 1010716 -> 1010717 ->1010718. Так же сделать для 1020617 и 1030617. Потом все это повторить для всех остальных секторов. 
        	  | 
		 
		
		| 
		
		 | 
         
     |  
	
		Shaddie
   556 EGP
        Рейтинг канала: 6(438) Репутация: 118 Сообщения: 261  Откуда: Томск Зарегистрирован: 09.09.2004
       | 
         | 
		Выяснил следующие:
 
  1. Принадлежность сектора той или иной расе.
 
Задается тем, какой расе принадлежит торговая станция. Если торговая станция в секторе отсутствует, сектор принадлежит пиратам. У ксенонов торговая станция - это станция в виде X.
 
  2. Уточнение для структуры идентификатора подтипа станций.
 
Для станций состоит из 8 байтов: 0001 XXXX 00YY 00ZZ. 
 
XXXX - собственно идентификатор подтипа станции. YY - принадлежность станции определенной расе: 0A - Argon; 0B - Boron; 0C - Split; 0D - Paranid; 0E - Teladi; 0F - Xenon; 10 - Pirate; 11 - Goner; 12 - станция принадлежит вам. ZZ - точно сказать не могу но похоже на класс станции.
 
Так вот XXXX – это так же идентификатор из файла 44001.txt. Для получения идентификатора необходимо перевести из hex в dec, умножить на 10 и прибавить 1, далее ищем идентификатор в файле 44001.txt.
 
 Пример: 0001 013E 000A 0009 - Free Argon Trading Station. 013E -> 318 -> 3180 -> 3181.
 
 
Вот полный список идентификаторов подтипов для станций:
 
00C9  2011  Solar Power Plant
 
00CA  2021  Ore Mine
 
00CB  2031  Silicon Mine
 
00CC  2041  Weapon component factory
 
00CD  2051  Crystal Fab
 
00CE  2061  Quantum Tube Fab
 
00CF  2071  Chip plant
 
00D0  2081  Computer Plant
 
00D6  2141  Wheat Farm
 
00D7  2151  Cattle Ranch
 
00D9  2171  Rimes Fact
 
00DA  2181  Cahoona Bakery
 
00DB  2191  Space Fuel Distillery
 
00E0  2241  Plankton Farm
 
00E1  2251  Bio Gas Factory
 
00E2  2271  Stott Mixery
 
00E3  2281  BoFu Chemical Lab
 
00EA  2341  Scruffin Farm
 
00EB  2351  Chelt Space Aquarium
 
00ED  2371  Massom Mill
 
00EE  2381  Rastar Refinery
 
00F4  2441  Soyfarm
 
00F5  2451  Snail Ranch
 
00F6  2463  Rudder-optimization
 
00F7  2471  Space Jewellery
 
00F8  2481  Soyery
 
00FE  2541  Flower Farm
 
00FF  2551  Teladianium foundry
 
0100  2561  Dream farm
 
0101  2571  Sun oil refinery
 
0102  2581  Bliss Place
 
0105  2611  Alpha IRE Forge
 
0106  2621  Beta IRE Forge
 
0107  2631  Gamma IRE Forge
 
0108  2641  Alpha PAC Forge
 
0109  2651  Beta PAC Forge
 
010A  2661  Gamma PAC Forge
 
010B  2671  Alpha HEPT Forge
 
010C  2681  Beta HEPT Forge
 
010D  2691  Gamma HEPT Forge
 
010F  2711  Shield Prod Facility 1 MW Shield
 
0110  2721  Shield Prod Facility 5 MW Shield
 
0111  2731  Shield Prod Facility 25 MW Shield
 
0112  2741  Shield Prod Facility 125 MW Shield
 
0119  2811  Space Missile Factory Mosquito Missile
 
011A  2821  Space Missile Factory Wasp Missile
 
011B  2831  Space Missile Factory Dragonfly Missile
 
011C  2841  Space Missile Factory Silkworm Missile
 
011D  2851  Space Missile Factory Hornet Missile
 
0136  3101  Fed. Argon Shipyard
 
013E  3181  Free Argon Trading Station
 
013F  3191  Argon Equipment Dock
 
0140  3201  Royal Boron Shipyard
 
0148  3281  Boron Trading Station
 
0149  3291  Boron Equipment Dock
 
014A  3301  Split Shipyard
 
0152  3381  Split Trading Port
 
0153  3391  Split Equipment Dock
 
0154  3401  Paranid Shipyard
 
015C  3481  Paranid Trading Dock
 
015D  3491  Paranid Equipment Dock
 
015E  3501  Teladi Shipyard
 
0166  3581  Teladi Trading Station
 
0167  3591  Teladi Space Equipment Dock
 
0170  3681  Unknown Xenon Station (в виде X)
 
0171  3691  Unknown Xenon Station (Shipyard)
 
0176  3741  Goner Temple
 
0178  3761  Pirate Anarchy Port
 
0185  3891  Satellite Factory
 
0187  3911  SQUASH Mine Factory
 
0188  3921  Lasertower Factory
 
0189  3931  Drone Factory 
        	  | 
		 
		
		| 
		
		 | 
         
     |  
	
		Рыб
   1242 EGP
       Рейтинг канала: 3(36) Репутация: 340 Сообщения: 7461 
  Зарегистрирован: 05.06.2001
      | 
         | 
		Может этот ZZ это индетификатор класса станции, определяющий, каким образом станция отображается на радаре? Вполне возможно, что этот "класс" влияет не только на параметры отображения, но и на менее очевидные, но важные вещи, например - поиск станции для закупки ресурса. Т.е. если транспортник ищет ресурс первого уровня, то он будет искать фабрику исключительно среди фабрик соответствующего класса  . 
        	  | 
		 
		
		| 
		
		 | 
         
     |  
	
		Shaddie
   556 EGP
        Рейтинг канала: 6(438) Репутация: 118 Сообщения: 261  Откуда: Томск Зарегистрирован: 09.09.2004
       | 
         | 
		Вчера меня озарила   , а что если 3 непонятных значения в блоке данных по солнцу (по записи похожие на координаты), есть ни что иное как цвет солнца заданный RGB. Решил проверить. Получилось несколько другой результат, а именно: эти три значения являются значениями чего-то похожего на фильтр цветов RGB накладываемого на основную палитру цветов объектов в текущем секторе. Например, если установить значения R=0, G=0 и B=255 (больше FF не пробовал), то увидим что все объекты отображаются с большим преобладанием синего цвета. Аналогично для значений R и G, только будут преобладать красные или зеленые оттенки цветов.
 
Таким образом, для солнца структура записи объекта:
 
BGR + К + ИТ[4] + Р, где Р - разделитель (002F); ИТ – идентификатор типа 4 байта (для солнца 000C 0010); К – блок координат; BGR – значения фильтра от 6 до 12 байт (именно в таком порядке Blue Green Red). Замечание: для записи значений фильтра используется та же система, что и для записи координат, за исключением “длинного” 4 байтового варианта (общий формат записи координат).
 
Пример: 0001 00EB 0001 00E3 0001 0052 0002 E218 8350 0002 01CA 38B0 0002 0A38 BAD0 000C 0010 002F – солнце 2 (первое с конца файла) в секторе Argon Prime. Здесь цвета фильтра следующие: Blue=00EB=235, Green=00E3=227 и Red=0052=82.
 
To all кто обращал внимание, солнца всегда одного цвета? 
        	  | 
		 
		
		| 
		
		 | 
         
     |  
	
		Shaddie
   556 EGP
        Рейтинг канала: 6(438) Репутация: 118 Сообщения: 261  Откуда: Томск Зарегистрирован: 09.09.2004
       | 
         | 
		Про расстояния.
 
Будем считать, что координаты измеряются в УЕ   . Вопрос: какой курс УЕ по отношению к 1 километру?   Определил по формуле Расстояние = SQRT((X1-X2)^2 + (Y1-Y2)^2 + (Y1-Y2)^2), где [X1,Y1,Z1] - координаты первого объекта (брал координаты моего корабля), a  [X2,Y2,Z2] - координаты второго объекта (координаты станции). Получил расстояние в УЕ и разделил его на расстояние в км. У меня получилось, что 1 км=222970 УЕ (приблизительно). То есть для получения расстояния между двумя объектами нужно подставить их координаты в формулу и результат разделить на 222970.
 
Получается:
 
Расстояние от центра до ворот = 7 200 000 УЕ = 32.29 км;
 
Расстояние между воротами через центр = 14 400 000 УЕ = 64.38 км;
 
Расстояние между воротами по диагонали = 10 182 338 УЕ = 45.67 км.
 
Если ошибся - поправте.
 
Замечание: при изменении координат объектов нужно учитывать, что если два объекта будут довольно близко друг к другу, то при генерации новой игры они просто не появятся (пару раз у меня такое было). Так что если кто занимается написанием софтины для редактирования карты   , может в нее заложить проверку расстояний по выше приведенной формуле. 
        	  | 
		 
		
		| 
		
		 | 
         
     |  
	
		Рыб
   1242 EGP
       Рейтинг канала: 3(36) Репутация: 340 Сообщения: 7461 
  Зарегистрирован: 05.06.2001
      | 
         | 
		Насчёт светил:
 
1. Они являются точками в опеределённых местах сектора и до них вполне можно долететь.
 
2. "Физически" их в секторе нет, т.е. сквозь них можно пролетать. Цвет у них у всех одинаковый - просто яркая белая точка со свечением вокруг.
 
3. Указанное выше значение RGB возможно задаёт так называемую пространственную составляющую света (ambient), которая одинакого влияет на все объекты сцены независимо от направления или расположения остальных источников освещения. Также вполне возможно, что это цвет для так называемого направленного источника освещения, что наиболее вероятно в том случае, если значение задаётся для каждого светила, но в этом случае в дополнение к RGB должен быть обязательно указан вектор направления света.
 
 
Насчёт расстояний:
 
В XT используются какие-то внутренние системы единиц измерения. Сам смог определить следующее - от центра сектора до ворот расстояние ровно 32км, что во внутренних единицах измерения равно ровно 7200000 единиц, т.е. один метр равен 225 внутренних единиц.
 
Если стоять ровно в центре сектора, то это будет координата (0,0,0). На север будет идти положительное направление оси X, на восток - Y, вверх - Z (вечером уточню). 
        	  | 
		 
		
		| 
		
		 | 
         
     |  
	
		Argonaut
   260 EGP
     Рейтинг канала: 1(9) Репутация: 43 Сообщения: 185  Откуда: Челябинск Зарегистрирован: 27.04.2004
      | 
         | 
		
 
Вроде видел объекты в каком-то секторе, освещенные красноватым оттенком. Цвет звезды не помню.
 
Использование данного фильтра вполне логично.
 
 
 
Да, я тоже этом подсчетом занимался.
 
Причем у меня получилось 2 коэффициента.    
 
1) по координатам на карте = 225'000 (между воротами должно быть 64 км.)
 
2) то, что показывает радар в корабле до выделенного объекта = ?
 
Значение сейчас не помню, можно дома поискать (примерно то, что ты получил). Оба коэффициента очень близки, но не равны (почему, не понятно).
 
 
P.S. Расстояние = SQRT((X1-X2)^2 + (Y1-Y2)^2 + (Z1-Z2)^2)   
 
 
добавлено:
 
	  | Рыб : | 
	 
	
	  | 
Также вполне возможно, что это цвет для так называемого направленного источника освещения, что наиболее вероятно в том случае, если значение задаётся для каждого светила, но в этом случае в дополнение к RGB должен быть обязательно указан вектор направления света.
 | 
	 
 
 
Нет. Источник - всенаправленный. Вектор не нужен. 
        	 _________________ Объявление
 
Отдам малыша Ксенона в хорошие руки. Денег не предлагать.  | 
		 
		
		| 
		
		 | 
         
     |  
	
		Рыб
   1242 EGP
       Рейтинг канала: 3(36) Репутация: 340 Сообщения: 7461 
  Зарегистрирован: 05.06.2001
      | 
         | 
		Не, в каждом секторе XT есть как минимум один источник света имеющий направление, это очевидно из того, что станции явно освещены с одной стороны и тёмные с другой. Скорее всего в секторе присутствует один direction источник света, но так же присутствует и пространственная составляющая света, которая определяет цветовую характеристику теневых частей объектов.
 
 
Можно допустить, что в секторе присутствует всего один источник направленного света с характеристикой RGB(255, 255, 255) и каким-то хранимым или предопределённым по некому алгоритму направлением, а RGB светил вляюют только на "суммарную" составляющую пространственного света сектора. 
        	  | 
		 
		
		| 
		
		 | 
         
     |  
	
		Argonaut
   260 EGP
     Рейтинг канала: 1(9) Репутация: 43 Сообщения: 185  Откуда: Челябинск Зарегистрирован: 27.04.2004
      | 
         | 
		Согласен.
 
Есть объемное освещение и точечное.
 
Точечное, в принципе, бывает строго направленным (прожектор) и всенаправленным (солнце в космических масштабах). Разница между ними только в том, что первый освещает группу объектов (на которые он направлен), а второй - все объекты. От любого точечного источника будет как тень, так и неосвещенная поверхность. А вот при объемном освещении, любая поверхность объекта будет освещена в одинаковой степени.
 
 
У нас присутствует как объемное (в малой степени), так и точечные всенаправленные (звезды) источники света. "Прожектора" я по крайней мере не встречал.
 
Цветовая составляющая должна принадлежать точечному источнику (и скорее всего так оно и есть). Объемному конечно тоже, но у нас скорее всего этим пренебрегли.
 
 
P.S. Кто занимался 3D-моделированием, сразу меня поймет. Там все эти источники света есть. И даже больше (различные вариации). 
        	 _________________ Объявление
 
Отдам малыша Ксенона в хорошие руки. Денег не предлагать.  | 
		 
		
		| 
		
		 | 
         
     |  
	 |  
	
		| 
		
		 | 
	 
     |  
	| 
	  Канал X-Tension/X-BTF: «Структура данных X-Tension» |  
	
		| 
		
		 | 
	 
 
      
        | К списку каналов | Наверх страницы  |  
Цитата не в тему:  Этот бот еще и в аське со мной ругаться успевает. (Harley про Viking'a)
 
  |  
        |   » Структура данных X-Tension | страница 2 |  
       
      
 |