Outpost 2 ទម្រង់ឯកសារ · bei.pm
ទ្រព្យសម្បត្តិយោងដែលបានពិពណ៌នានៅលើទំព័រនេះ គឺអាស្រ័យលើការវិភាគបច្ចេកទេសនៃទ្រព្យសម្បត្តិចិត្តវិញ្ញាណពី Dynamix, Inc. និង Sierra Entertainment។
ទ្រព្យសម្បត្តិចិត្តវិញ្ញាណនេះបច្ចុប្បន្នគឺជាផ្នែកនៃ Activision Publishing, Inc.- / Activision Blizzard, Inc.-មាស និងនៅសព្វថ្ងៃមានអង្គកាន់បន្ទុកដោយ Microsoft Corp.។
ព័ត៍មានបានប្រមូលផ្តុំតាមរយៈ Reverse Engineering និង ការវិភាគទិន្នន័យ ដើម្បីគោលបំណងក្នុងការថែរក្សា និងអន្តរកម្មជាមួយទិន្នន័យប្រវត្តិសាស្ត្រ។
មិនមានការប្រើប្រាស់ស្ដង់ដារដែលជាកម្មសិទ្ធិឬជាឯកសារសម្ងាត់ណាមួយទេ។
ល្បែងនេះអាចទិញបាននៅ gog.com ជាសម្រាប់ទាញយក។
អត្ថបទជួរដូចខាងក្រោមបានឯកភាពដឹងពីការស្រាវជ្រាវរបស់ខ្ញុំអំពីទម្រង់ទិន្នន័យនៅក្នុងហ្គេមយុទ្ធសាស្ត្រ "Outpost 2: Divided Destiny" ដែលត្រូវបានបង្ហាញនៅឆ្នាំ 1997 ដោយ Sierra និងអភិវឌ្ឍន៍ដោយ Dynamix។
ខ្ញុំបានអភិវឌ្ឍការវិភាគទិន្នន័យនៃហ្គេមនេះ ចាប់តាំងពីថ្ងៃទី ០១ ខែវិច្ឆិកា ឆ្នាំ ២០១៥ ដល់ថ្ងៃទី ១៤ ខែវិច្ឆិកា ឆ្នាំ ២០១៥។
នៅក្នុងព័ត៌មានដែលខ្ញុំអាចទទួលបានរហូតមកនេះ Dynamix - ដូចជាក្រុមហ៊ុនពាណិជ្ជកម្មច្រើនផ្សេងទៀត - មិនបានបង្កើតទម្រង់ទិន្នន័យពិសេសសម្រាប់ Outpost 2 ទេ ប៉ុន្តែបានប្រើនៅក្នុងការអភិវឌ្ឍន៍ផ្សេងៗដូចជាស៊េរី Mechwarrior (បានកែប្រែ)។
ក្រៅពីនេះ ក៏អាចកំណត់បានថា កម្លាំងនៃការបង្កើតទម្រង់ទិន្នន័យមានការកំណត់ ហើយជាញឹកញាប់គឺផ្អែកលើគំនិតដែលមានរយៈពេលយូរ និងទម្រង់ធម្មតាដូចជា JFIF និង RIFF។
សម្រាប់ការបកស្រាយតារាង និងទម្រង់ទិន្នន័យមានព័ត៌មានបន្ថែមនៅ អ្វីគឺអ្វី?។
ទិន្នន័យដែលបានបញ្ជាក់នៅទីនេះត្រូវបានយល់ថាជា Little Endian ជាទូទៅ។
សំរាប់ការបញ្ចប់ អាចនិយាយបានថាការប្រែជាថ្មីបានផ្តល់ឱ្យខ្ញុំពិតជាសប្បាយច្រើន ទោះបីវាមិនពេញលេញក៏ដោយ។
ធម្មតាសូមផ្តល់អនុសាសន៍ថាអ្នកគួរតែលេងហ្គេមនេះផ្ទាល់ ដោយវាផ្តល់នូវយុទ្ធសាស្ត្រ និងគន្លងលេងដែលចំពោះការលេងអគ្គិសនី។
ការណែនាំ
ទ្រង់ទ្រាយទិន្នន័យដែលប្រើប្រាស់ដោយ Outpost 2 មានរចនាប័ទ្មដូចជាទ្រង់ទ្រាយ JFIF / PNG - ប្លុកទិន្នន័យនីមួយៗមានក្បាល 8 បាយ។ ដូចនេះ ខ្ញុំក៏លែងចាំបាច់ឱ្យឯកសារមានក្បាលនីមួយៗនៅកន្លែងដែលពាក់ព័ន្ធ ហើយគ្រាន់តែឯកសារបញ្ហាប្រឈម។
ទ្រង់ទ្រាយគឺជាទ្រង់ទ្រាយដដែល; ទិន្នន័យដែលមានអត្ថប្រយោជន៍ត្រូវបានបញ្ចូលក្នុងនេះ។
អាសយដ្ឋាន | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | អក្សរ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
ទីតាំង | ប្រភេទទិន្នន័យ | ការបញ្ជាក់ | ការពន្យល់ |
---|---|---|---|
0x0000 | uint(32) | ម៉ាജិក បាយត్స్ | មានព័ត៌មានអំពីអ្វីដែលគួរត្រូវប្រទះឃើញនៅក្នុងឌាតាប្លុកក្រោយ។ តម្លៃដែលដឹងច្បាស់:
|
0x0004 | uint(24) | ប្រវែងប្លុក | មានព័ត៌មានអំពីទំហំ (ក្នុង Byte) នៃប្លុកទិន្នន័យដែលបន្ទាប់មក។ នៅទីនេះគឺមានន័យថា គឺជាទិន្នន័យនៃការប្រើប្រាស់ទាំងមូល - 8 Header-Byte មិនត្រូវបានរាប់បញ្ចូល។ |
0x0007 | uint(8) | បង់គោល? | មិនមានព័ត៌មានច្បាស់លាស់ថាប្លុកនេះមានគោលបំណងអ្វីទេ។ ក្នុងការប្រមូលផ្តុំតម្លៃនេះភាគច្រើនមានតម្លៃ 0x80 ហើយក្នុងឯកសារផ្សេងទៀតភាគច្រើនមានតម្លៃ 0x00។ វាបង្ហាញថា វាអាចជាកំណត់សំឡេងមួយ។ |
មេឌៀ
វ៉ូល្យូម គឺជាកុងតឺនរស់សម្រាប់ទិន្នន័យសម្រាប់ហ្គេម ដែលមានគំនិតស្រដៀងនឹងទ្រង់ទ្រាយសារពើភ័ណ្ឌ ដូចជា Tarball។ យ៉ាងហោចណាស់ នៅក្នុង Outpost 2 ទ្រង់ទ្រាយនេះគ្រាន់តែស្គាល់ថា ជាឯកសារ - គ្មានថតឯកសារ។ អាចមានការសម្តែងថា អាចប្រែប្រួលឯកសារ ដោយប្រើឈ្មោះឯកសារដែលសមស្រប។
វ៉ូល្យូម ត្រូវបានកំណត់ពី Volume-Header និងវ៉ូល្យូមប្លុកច្រើនដែលត correspond នឹងឯកសារពិតប្រាកដ។
"វ៉ូល្យូម" គឺជាឯកសារដែលមានបញ្ចប់ 'vol'
នៅក្នុងថតហ្គេម។
អាសយដ្ឋាន | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | អក្សរ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 56 | 4f | 4c | 20 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | V | O | L | . | . | . | . | . | . | . | . | . | . | . | . |
ទីតាំង | ប្រភេទទិន្នន័យ | ការបញ្ជាក់ | ការពន្យល់ |
---|---|---|---|
0x0000 | uint(32) | ម៉ាថិក បាយត์ | |
0x0004 | uint(24) | ប្រវែងប្លុក | |
0x0007 | uint(8) | កម្រាល |
ក្បាលបរិមាណ
អាសយដ្ឋាន | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | អក្សរ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 76 | 6f | 6c | 68 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | v | o | l | h | . | . | . | . | . | . | . | . | . | . | . | . |
ទីតាំង | ប្រភេទទិន្នន័យ | ការបញ្ជាក់ | ការពន្យល់ |
---|---|---|---|
0x0000 | uint(32) | ម៉ាថិក បាយត์ | |
0x0004 | uint(24) | ប្រវែងប្លុក | |
0x0007 | uint(8) | កម្រាល |
គេហៅថា Volume Header មិនមានទិន្នន័យប្រើប្រាស់នៅក្នុងខ្លួនវាទេ។
វាផ្តល់ជារង្វង់ប៉ុណ្ណោះ។
ជាទិន្នន័យដំបូងក្នុង Volume Header គួរត្រូវមាន Volume Strings; បន្ទាប់មកគឺជាព័ត៌មាន Volume។
ខ្សែភាពយន្តបរិមាណ
អាសយដ្ឋាន | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | អក្សរ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 76 | 6f | 6c | 69 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | v | o | l | i | . | . | . | . | . | . | . | . | . | . | . | . |
ទីតាំង | ប្រភេទទិន្នន័យ | ការបញ្ជាក់ | ការពន្យល់ |
---|---|---|---|
0x0000 | uint(32) | ម៉ាថិក បាយត์ | |
0x0004 | uint(24) | ប្រវែងប្លុក | |
0x0007 | uint(8) | កម្រាល |
អាសយដ្ឋាន | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | អក្សរ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 76 | 6f | 6c | 73 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | v | o | l | s | . | . | . | . | . | . | . | . | . | . | . | . |
ទីតាំង | ប្រភេទទិន្នន័យ | ការបញ្ជាក់ | ការពន្យល់ |
---|---|---|---|
0x0000 | uint(32) | ម៉ាថិក បាយត์ | |
0x0004 | uint(24) | ប្រវែងប្លុក | |
0x0007 | uint(8) | កម្រាល | |
0x0008 | uint(32) | ប្រវែង Payload | បង្ហាញអំពីចំនួន Bytes ដែលមាននៅក្នុងទិន្នន័យខាងក្រោមដែលជាទិន្នន័យប្រើប្រាស់ពិតប្រាកដ។ ទិន្នន័យដែលនៅសល់ក្នុងបញ្ជី Volume-Strings ត្រូវបានចាត់ទុកថាជា garbage។ នៅក្នុងឯកសារដែលមានកាលបរិច្ឆេទពេលក្រោយ ទិន្នន័យ 'នៅសល់' ទាំងនេះគឺ 0x00 ដែលអាចបង្ហាញពីកង្វល់ក្នុងការបង្កើតឧបករណ៍ក្នុងអំឡុងពេលអភិវឌ្ឍន៍ល្បែង នោះគឺមានន័យថា អ្នកអភិវឌ្ឍន៏បានយកចិត្តទុកដាក់ទៅលើការកំណត់តម្លៃដែលត្រឹមត្រូវរបស់ Buffer តែម្តង នៅពេលដែលវាមិនមានឥទ្ធិពលដល់ល្បែងនោះទេ ថាតើទិន្នន័យបានកំណត់តម្លៃឬអត់។ |
0x000c | uint(8)[] | បញ្ជីឈ្មោះឯកសារ | នេះគឺជាបញ្ជីឈ្មោះឯកសារដែលបានបញ្ចប់ដោយ 0-Byte ដែលគ្មានទំហំ ដែល - យ៉ាងហោចណាស់នៅក្នុងទិន្នន័យបច្ចុប្បន្ននេះ - គ្រាន់តែរំពឹងថាអក្សរ ASCII ។ មិនចាំបាច់ត្រូវការពិនិត្យយ៉ាងជ្រាលជ្រៅទិន្នន័យនេះនៅពេលបំបែកទិន្នន័យទេ ពីព្រោះនៅក្នុងព័ត៌មានវ៉ុល នោះមានការរោងចរណ៍នៃកន្លែងឈ្មោះឯកសារនៅពេលដែលត្រូវបានយោងដោយផ្ទាល់។ |
Volume Strings គឺជាបញ្ជីនៃឈ្មោះឯកសារ ដែលមានក្នុង volume នេះ។
ព័ត៌មានចំនួន
អាសយដ្ឋាន | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | អក្សរ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 76 | 6f | 6c | 69 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | v | o | l | i | . | . | . | . | . | . | . | . | . | . | . | . |
ទីតាំង | ប្រភេទទិន្នន័យ | ការបញ្ជាក់ | ការពន្យល់ |
---|---|---|---|
0x0000 | uint(32) | ម៉ាថិក បាយត์ | |
0x0004 | uint(24) | ប្រវែងប្លុក | |
0x0007 | uint(8) | កម្រាល |
ព័ត៌មានបរិមាណនឹងផ្តល់ព័ត៌មានលម្អិតអំពីឯកសារនានា។ វាជារបៀបមួយនៃការចុះបញ្ជី FAT (FAT = តារាងចំណាត់ថ្នាក់ឯកសារ)។
ចំនួនឯកសារនឹងត្រូវបានគណនាដោយការបែងចែកទំហំប្លុកដោយប្រវែងនៃការចុះបញ្ជី - ១៤ បាយ។
ការចុះបញ្ជីនីមួយៗមានសំណុំពីរបៀបដូចតទៅ៖
អាសយដ្ឋាន | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | អក្សរ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
ទីតាំង | ប្រភេទទិន្នន័យ | ការបញ្ជាក់ | ការពន្យល់ |
---|---|---|---|
0x0000 | uint(32) | ឈ្មោះឯកសារនិងការផ្លាស់ទី | បង្ហាញពីការបញ្ជាក់ថា នៅក្នុងបញ្ជីឈ្មោះឯកសារ (Volume-Strings) ឈ្មោះឯកសារនៅកន្លែងណា (!)។ វាគឺទាក់ទងទៅនឹងចំណុចចាប់ផ្តើមនៃប្លុកទិន្នន័យ។ |
0x0004 | uint(32) | អាដ្រាសទីប៊ីប័រ | បញ្ជាក់ពីទីតាំងនៅលើកំណត់មួយក្នុងឯកសារទាំងមូល។ |
0x0008 | uint(32) | ទំហំឯកសារ | បញ្ជាក់ពីទំហំឯកសារនៅក្នុងប៊ីត។ |
0x000c | uint(16) | គោលបំណង? | មានការបញ្ជាក់ព័ត៌មានបន្ថែមអំពីកូដស្នូលឯកសារ។
|
ប្លុកសមាសភាព
អាសយដ្ឋាន | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | អក្សរ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 56 | 42 | 4c | 48 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | V | B | L | H | . | . | . | . | . | . | . | . | . | . | . | . |
ទីតាំង | ប្រភេទទិន្នន័យ | ការបញ្ជាក់ | ការពន្យល់ |
---|---|---|---|
0x0000 | uint(32) | ម៉ាថិក បាយត์ | |
0x0004 | uint(24) | ប្រវែងប្លុក | |
0x0007 | uint(8) | កម្រាល |
ប្លុកប៉ុស្តិ៍មួយគឺជាកុងតែន័រ ដែលទទួលឯកសារ។ វាបានរួមបញ្ចូលទំហំឯកសារម្តងទៀត - ដោយសារតែកម្មវិធីប្លុក - យ៉ាងច្រើន ហើយបន្ទាប់មក នឹងមានទិន្នន័យប្រើប្រាស់ភ្លាមៗ។
ក្តារប៉ែនជ័រ
អាសយដ្ឋាន | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | អក្សរ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 50 | 42 | 4d | 50 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | P | B | M | P | . | . | . | . | . | . | . | . | . | . | . | . |
ទីតាំង | ប្រភេទទិន្នន័យ | ការបញ្ជាក់ | ការពន្យល់ |
---|---|---|---|
0x0000 | uint(32) | ប៊ីតម៉ាជិច | |
0x0004 | uint(24) | ប្រវែងប្លុក | |
0x0007 | uint(8) | សំបុត្រសញ្ជាក |
ជាត្បូងនោះគឺជារូបភាព Bitmap ដែលមានលក្ខណៈពិសេសសម្រាប់ Outpost-2។ វាបន្តអំឡុង 13 Tilesets ឈ្មោះថា "wells" (well0000.bmp
ដល់ well0012.bmp
), ដែលស្ថិតនៅក្នុងបរិមាណ maps.vol។
ក្នុងនោះ Tilesets / Wells មានអ្វីខ្លះ:
ឈ្មោះឯកសារ | មាតិការទាំងអស់ |
---|---|
well0000.bmp | រូបភាពខៀវទំហំ 32x32px - សមស្របសម្រាប់សាកល្បងថាតើកម្មវិធីភ្ជាប់រូបភាពរបស់ខ្លួនដំណើរការបានឬអត់ |
well0001.bmp | មានថ្មភ្លឺ, ភូតភ្នំលើថ្មភ្លឺ និងវ៉ារីយ៉ង់ច្រើននៃគំនូសប៉ះក្នុងថ្មភ្លឺ |
well0002.bmp | មាន 'Doodads' នៃថ្មភ្លឺ - គឺជាធាតុដែលអាចដាក់ជារចនាសម្ព័ន្ធ (ឬដាក់ដោយចេតនា) លើថ្មភ្លឺ, រួមមានសាឡាងផ្ការៀនផងដែរ |
well0003.bmp | មានរចនាសម្ព័ន្ធស្រដៀងក្រហមលើថ្មភ្លឺ |
well0004.bmp | មានថ្មអូស, ភូតភ្នំលើថ្មអូស និងវ៉ារីយ៉ង់ច្រើននៃគំនូសប៉ះក្នុងថ្មអូស |
well0005.bmp | មាន 'Doodads' នៃថ្មអូស - គឺជាធាតុដែលអាចដាក់ជារចនាសម្ព័ន្ធ (ឬដាក់ដោយចេតនា) លើថ្មអូស |
well0006.bmp | មានរចនាសម្ព័ន្ធស្រដៀងក្រហមលើថ្មអូស, រួមមានការផ្លាស់ប្តូរវិញពីថ្មភ្លឺទៅថ្មអូស |
well0007.bmp | មានឡាវាដែលមានរូបភាពសកម្មភាព 4-5 ស៊ុប |
well0008.bmp | មានអំបិល និងវ៉ារីយ៉ង់ច្រើននៃគំនូសប៉ះក្នុងអំបិល |
well0009.bmp | មាន 'Doodads' នៃអំបិល - គឺជាធាតុដែលអាចដាក់ជារចនាសម្ព័ន្ធ (ឬដាក់ដោយចេតនា) លើអំបិល |
well0010.bmp | មានការផ្លាស់ប្តូរពីអំបិលទៅថ្មភ្លឺ និងថ្មអូសចំនួន 48 |
well0011.bmp | មានកំពូលទឹកទឹកកករបស់ផែនទី, ជាមួយនឹងថ្មអូសជាប្រដាប់ដី |
well0012.bmp | មានកំពូលទឹកទឹកកករបស់ផែនទី, ជាមួយនឹងថ្មភ្លឺជាប្រដាប់ដី |
វាជាការល្អមួយសម្រាប់ការអនុវត្តន៍ឲ្យបានត្រឹមត្រូវ គឺមិនគួរបង្ហាញ Tiles មុនដើម្បីកណ្តាលសម្រាប់ការផ្ទុក ក្រោយពេលដែលទិន្នន័យសម្រាប់វដ្តថ្ងៃ/យប់ត្រូវតែត្រូវបានកែសម្រួល - ហើយមានទិន្នន័យច្រើនណាស់នឹងកើតមាន។
Tile គឺជាគំនូរ 8bpp ដែលមានកណ្តាលពណ៌បញ្ជីក្នុងទំហំ 32x32 ភីកសែល ដែលត្រូវបានរៀបចំជាទូទៅ។ នៅក្នុង Tileset ដែលបានបង្កើតឡើង អាចមានច្រើនជាងនេះ
កុងតឺន័រ Haupt មានរាងកាយពី 2 ផ្នែក៖ head
និង data
។
ក្បាលកម្រាល
អាសយដ្ឋាន | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | អក្សរ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 68 | 65 | 61 | 64 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | h | e | a | d | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
ទីតាំង | ប្រភេទទិន្នន័យ | ការបញ្ជាក់ | ការពន្យល់ |
---|---|---|---|
0x0000 | uint(32) | ប៊ីតម៉ាជិច | |
0x0004 | uint(24) | ប្រវែងប្លុក | |
0x0007 | uint(8) | សំបុត្រសញ្ជាក | |
0x0008 | uint(32) | កំណែ / ទង់? | នេះអាចជាការបញ្ជាក់អំពីកំណែរបស់ទ្រង់ទ្រាយឯកសារ; ក្នុងឯកសារទាំងអស់ដែលខ្ញុំមាននៅទីនេះមានតម្លៃ |
0x000c | uint(32) | ទទឹង (ដំណឹងនិងសមាឌទេ) | បង្ហាញពីទំហំផ្ទាំងរូបប្រភេទនៃឯកសាររូបភាព (ក្នុងប៊ីកសែល)។ នៅក្នុង Wells ទាំងអស់នៃ Outpost 2 តើតម្លៃ |
0x0010 | uint(32) | កម្ពស់ (ការបញ្ចូលទ្រង់ទ្រាយទេពកថា) | បង្ហាញពីកម្រិតនៃឯកសារូបភាព (នៅក្នុងពិច្ជារ៉េ). នៅក្នុងវេលទាំងអស់នៃ Outpost 2 ត្រូវរំពឹងថាទិន្នន័យនេះមានតម្លៃ |
0x0014 | uint(32) | ជំហានពណ៌? | ន័យនៃតម្លៃនេះមិនត្រូវបានដឹងទេ។ ព្រោះវាកាន់តែមានតម្លៃ |
0x0018 | uint(32) | ជំរាបសួរ ការពណ៌ជ្រាល 2? | ន័យនៃតម្លៃនេះមិនបានដឹងប្រាកដទេ។ អាចជាតម្លៃបណ្តាញ 'គោលដៅ' ។ |
បន្ទាប់ពីព័ត៌មានเหล่านี้ មានឯកសារពណ៌ដែលមានរូបរាងជា RIFF នៅក្នុងទ្រង់ទ្រាយស្តង់ដ៍។ ការបញ្ជាក់អំពីពណ៌នេះអាចរកឃើញបាន - ពីព្រោះពណ៌នឹងបង្ហាញនៅកន្លែងផ្សេងទៀត - នៅក្រោម ក្រុមពណ៌.
ទិន្នន័យកង្ហារនេះ
អាសយដ្ឋាន | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | អក្សរ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 64 | 61 | 74 | 61 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | d | a | t | a | . | . | . | . | . | . | . | . | . | . | . | . |
ទីតាំង | ប្រភេទទិន្នន័យ | ការបញ្ជាក់ | ការពន្យល់ |
---|---|---|---|
0x0000 | uint(32) | ប៊ីតម៉ាជិច | |
0x0004 | uint(24) | ប្រវែងប្លុក | |
0x0007 | uint(8) | សំបុត្រសញ្ជាក |
ចុងក្រោយនេះគឺជាព័ត៌មានពីពីកន្លែងដែលទិន្នន័យប៊ិចតមាននៅក្នុងទ្រង់ទ្រាយប្រព័ន្ធណែនាំពីខាងឆ្វេង-លើទៅខាងស្តាំ-ខាងក្រោម។
តម្លៃទិន្នន័យសម្រាប់គំនូសដែលជាទូទៅមានទ្រង់ទ្រាយ 8bpp-Bitmap នោះគឺស្មើនឹងសមាជិកនៃពណ៌ក្នុងក្រុមពណ៌។
ម៉ាស៊ីនលេងហ្គេមកំពុងគូសTiles ដោយ*ប្រហែល*តាមតម្រូវការ។
នេះហាក់ដូចជាអាស្រ័យលើវដ្តថ្ងៃ-យប់ ដែលមានការបំបែកជាប្រភេទ 32 រាងសម្រាប់Tiles មួយៗ។ នៅពេលនេះ មិនថាតើតម្លៃភ្លឺប្រាជ្ញាអង្កេត 'បន្តិច' ត្រូវបានដកចេញ។ តម្លៃពិតប្រាកដមិនអាចកំណត់បាននៅឡើយ ខ្ញុំកំពុងធ្វើការលើមូលដ្ឋានកំណត់តម្លៃ
v *= (daylight / 48) + 0.25;
ជាមួយទិន្នន័យHSV នៃPixel ខណៈដែល daylight ជាតម្លៃពី 0-31 និង v ជាតម្លៃពី 0-1។ ក្រៅពីនេះ ត្រូវគិតថានៅលើផែនទី មានដែនសំបូរដែលមាន 16 Tilesទៅឆ្វេង និងឆ្វេង (ដែលមានគោលបំណងសម្រាប់ការបង្កើតអង្គភាពក្នុងគោលដៅឥតមិនខាន)។
បន្ថែមពីនេះ វដ្តថ្ងៃ-យប់ត្រូវអាប់ដេតតែជួរដេកមួយនៃផែនទីសម្រាប់រាល់វគ្គហ្គេម។
វដ្តថ្ងៃ-យប់ដែលលឿនសូមមើលដូចខាងក្រោម៖
PRT
អាសយដ្ឋាន | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | អក្សរ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 43 | 50 | 41 | 4c | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | C | P | A | L | . | . | . | . | . | . | . | . | . | . | . | . |
ទីតាំង | ប្រភេទទិន្នន័យ | ការបញ្ជាក់ | ការពន្យល់ |
---|---|---|---|
0x0000 | uint(32) | ម៉ាថិច បាយត്സ് | |
0x0004 | uint(24) | ប្រវែងផ្លែត្រ | បង្ហាញចំនួនប៉ាលិតដែលអាចរកឃើញនៅក្នុងឯកសារនេះ - មិនមែនជាអង្កត់ប្លុកក្នុងប៉ុណ្ណា ប៉ុន្តែជាចំនួនប៉ាលិត។ |
0x0007 | uint(8) | តុចក់ | ប្រហែលជា ដូចជាធម្មតា Flags។ តែលោកខ្ញុំមិនដឹងពី Flags ទេ; ពីព្រោះតម្លៃទាំងអស់ដែលខ្ញុំដឹងមាន |
តើ PRT
មានន័យដូចម្តេចពិតប្រាកដខ្ញុំមិនដឹងទេ; តែអាចនឹងមានន័យដូចជា 'Palette and Ressource Table' - ព្រោះឯកសារនេះ - ដែលអាចរកបានជា op2_art.prt ក្នុង maps.vol - គឺជាឯកសារដែលមានលក្ខណៈដូច្នេះ ឬវាអាចពិពណ៌នាអំពីមុខងារនេះបានយ៉ាងល្អ។
ឯកសារនេះមានបញ្ជីស្ពាននានា បញ្ជីស្ពានទាំងអស់ដែលបានប្រើប្រាស់ Bitmaps ទាំងអស់ ការកំណត់ត្រាអនីមេ이션 និងទិន្នន័យមិនស្គាល់មួយចំនួន។ វាបន្តហើយបន្តនឹងទម្រង់ខុងតេនឌេរ ដែលក៏មានស្រាយតិចតួច ដោយមិនទាន់មានទិន្នន័យទាំងអស់ដែលអនុវត្តតាមគំរូនេះ។
ផ្នែក CPAL
(ដែលអាចមានន័យថា Paletten-Container) គ្រាន់តែបញ្ចូលទិន្នន័យស្ពាន តាមរយៈការបញ្ជាក់ពីចំនួនស្ពានដែលមាននៅក្នុងទម្រង់ 8-Bit ដែលធម្មតាមានទំហំ 1052 បាយ។
ការបញ្ជាក់ 1052 បាយនេះមិនត្រូវបានចាត់ទុកថាជាការកំណត់ទេ ព្រោះទម្រង់ស្ពានអាចមានទំហំស្ពាននានាដែលខុសគ្នា។ វាត្រូវបានអនុវត្តតែសំរាប់ទិន្នន័យដែលចេញផ្សាយជាមួយ Outpost 2 ប៉ុណ្ណោះ។
ក្រោយពីបញ្ជីស្ពាន គឺមានបញ្ជី Bitmaps ដែលតាមដានដោយគ្មានពាក្យដើម និងការបញ្ជីអនីមេ이션តាមបន្ទាប់។
ទាំងពីរនេះនឹងចាប់ផ្តើមជាមួយ uint(32) (ឬប៉ុន្តែ uint24+uint8 flags?) ដែលមានចំនួនកំណត់ត្រា។
ក្រុមពណ៌
អាសយដ្ឋាន | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | អក្សរ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 50 | 50 | 41 | 4c | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | P | P | A | L | . | . | . | . | . | . | . | . | . | . | . | . |
ទីតាំង | ប្រភេទទិន្នន័យ | ការបញ្ជាក់ | ការពន្យល់ |
---|---|---|---|
0x0000 | uint(32) | ម៉េក្សិច បាយត్స్ | |
0x0004 | uint(24) | ប្រវែងផ្លែទំព័រ | បង្ហាញចំនួនផ្លែឈើដែលអាចរកបាននៅក្នុងឯកសារនេះ - មិនមែនជាយូរនៃប្លុកក្នុងប៊ីតទេ។ |
0x0007 | uint(8) | ក្រឡាចេញ | អាចជា ដូចជា ជាប្រពៃណី គឺសញ្ញា។ ប៉ុន្តែខ្ញុំមិនបានដឹងអំពីសញ្ញាណណាមួយទេ; ពីព្រោះតម្លៃទាំងអស់ដែលខ្ញុំបានស្គាល់ |
ព័ត៌មានពីក្បាលគឺអានបានយ៉ាងងាយស្រួល។
វាមានទាំងមួយក្បាលនិងមួយផ្នែកទិន្នន័យ។
ក្បាលផ្លេត
អាសយដ្ឋាន | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | អក្សរ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 68 | 65 | 61 | 64 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | h | e | a | d | . | . | . | . | . | . | . | . | . | . | . | . |
ទីតាំង | ប្រភេទទិន្នន័យ | ការបញ្ជាក់ | ការពន្យល់ |
---|---|---|---|
0x0000 | uint(32) | ម៉េក្សិច បាយត్స్ | |
0x0004 | uint(24) | ប្រវែងផ្លែទំព័រ | បង្ហាញចំនួនផ្លែឈើដែលអាចរកបាននៅក្នុងឯកសារនេះ - មិនមែនជាយូរនៃប្លុកក្នុងប៊ីតទេ។ |
0x0007 | uint(8) | ក្រឡាចេញ | អាចជា ដូចជា ជាប្រពៃណី គឺសញ្ញា។ ប៉ុន្តែខ្ញុំមិនបានដឹងអំពីសញ្ញាណណាមួយទេ; ពីព្រោះតម្លៃទាំងអស់ដែលខ្ញុំបានស្គាល់ |
0x0008 | uint(32) | អ្វីជាកំណែប្លុកផ្លាត? | វាកំណត់ដោយប្រហែលថា កំណែរចនាប័ទ្មផ្លែតិនណាណាណាណា តើផ្លែតិននេះនិយមន័យទៅតាមកំណែណា។ ផ្លែតិន Outpost2 ទាំងអស់មានកំណែ |
ទិន្នន័យផ្លាស្ទិក
អាសយដ្ឋាន | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | អក្សរ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | 64 | 61 | 74 | 61 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | d | a | t | a | . | . | . | . | . | . | . | . | . | . | . | . |
ទីតាំង | ប្រភេទទិន្នន័យ | ការបញ្ជាក់ | ការពន្យល់ |
---|---|---|---|
0x0000 | uint(32) | ម៉េក្សិច បាយត్స్ | |
0x0004 | uint(24) | ប្រវែងប្លុក | |
0x0007 | uint(8) | ក្រឡាចេញ |
ផ្នែកទិន្នន័យមានការចុះបញ្ជីចូលពីប៉ាឡេតនីមួយៗ។ ចំនួនប៉ាឡេតនីមួយៗបង្កើតពីប្រវែងប្លុក / 4។
ការចុះបញ្ជីនីមួយៗមានរាងសាមញ្ញដូចខាងក្រោម;
អាសយដ្ឋាន | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | អក្សរ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | 04 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
ទីតាំង | ប្រភេទទិន្នន័យ | ការបញ្ជាក់ | ការពន្យល់ |
---|---|---|---|
0x0000 | uint(8) | កម្រងក្រហម | បង្ហាញពីភាគរយនៃក្រហមក្នុងពណ៌ |
0x0001 | uint(8) | ធាតុពណ៌បៃតង | បង្ហាញពីអត្រាពណ៌បៃតងនៅក្នុងពណ៌ |
0x0002 | uint(8) | បណ្ដុំខៀវ | បង្ហាញអត្រាអំពិលខៀវនៃពណ៌ |
0x0003 | uint(8) | អន្ដរាគមន៍ - ទង់? | វាមិនច្បាស់ថាតម្លៃនេះមានន័យអ្វីទេ ពីព្រោះវាហាក់ដូចជាមានតម្លៃជាមូលដ្ឋាន |
អំពីពណ៌ក្នុងប៉ាលេត គឺមានតែសេចក្តីថ្លែងបន្ថែមថា សម្រាប់ប៉ាលេតដែលត្រូវបានប្រើសម្រាប់ការបញ្ជូន សេចក្តីឱ្យដឹងដូចខាងក្រោមគឺត្រូវអនុវត្ត:
- ពណ៌ដំបូងគឺត ALWAYS មានភាពថ្លា មិនថាយ៉ាងណាដែលបានកំណត់ក្នុងតម្លៃនោះ។
-
ការបញ្ជូលពណ៌ក្នុងប៉ាលេត 1-24 គឺត្រូវបានរាប់ថាជាពណ៌អ្នកលេងក្នុងប៉ាលេត 1-8។
កន្លែងដែលពណ៌បន្តិចនោះមកពីអ្នកលេង 1 មិនច្បាស់សម្រាប់ខ្ញុំ។
ខ្ញុំសង្ស័យថាពណ៌ដែលនៅសល់គឺត្រូវបានកំណត់ឱ្យជាពណ៌ត្រឹមត្រូវ
រូបភាពប៊ីតម៉ាប
អាសយដ្ឋាន | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | អក្សរ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
ទីតាំង | ប្រភេទទិន្នន័យ | ការបញ្ជាក់ | ការពន្យល់ |
---|---|---|---|
0x0000 | uint(32) | ទទឹងដែលបានរៀបចំ | បង្ហាញពីទទឹងនៃបន្ទាត់ទិន្នន័យពិចលនៅក្នុងByte - ពីព្រោះវាត្រូវបានតំរូវឲ្យបង្វិលទៅកាន់ស៊ុម 4-Byte។ ដូច្នេះវាអាចធ្វើឲ្យមានភាពលឿនក្នុងការទៅរកបន្ទាត់រូបភាពជាក់លាក់មួយ។ ហេតុអ្វីបានជាតម្លៃនេះត្រូវបានរក្សាទុកឡែកពីគ្នា ទើបមានការគណនាអាចធ្វើបាន ហើយមិនច្បាស់តែម្ដង។ |
0x0004 | uint(32) | ការបម្រុង | បង្ហាញពីការបញ្ជាក់អំពីការផ្លាស់ប្តូរនៃជួរដំបូងក្នុងបទបញ្ជា Bitmap |
0x0008 | uint(32) | កម្ពស់ | បញ្ជាក់ពីកម្ពស់រូបភាពក្នុងផិកសែល |
0x000c | uint(32) | ទំហំពូក | បង្ហាញទំហំទ្បីនៃរូបភាពក្នុងភីគសែល |
0x0010 | uint(16) | ប្រភេទ | បង្ហាញពីប្រភេទរូបភាព។ នៅទីនេះគឺដូចជារូបភាព Bitmask:
|
0x0012 | uint(16) | គូសពណ៌ | កំណត់ថា តើផាឡេតណាដែលត្រូវប្រើពីឯកសារ PRT |
រចនាសម្ព័ន្ធទិន្នន័យនេះនៃឯកសារ PRT បង្ហាញពីរបៀបដែលប៊ីតម៉ាពេលត្រូវបានប្រើសម្រាប់Sprites ត្រូវបានកសាង។ ប៊ីតម៉ានេះគឺជាគ部分មួយ ដែលមានច្រើនត្រូវបានបង្កើតជាការចម្លងមួយនៃឯកសារអានីមេសន៍របស់Sprites ។
ទិន្នន័យរូបភាពជាក់លាក់គឺត្រូវបានលាក់នៅក្នុង
op2_art.BMP នៅក្នុងថតហ្គេម។
ហេតុអ្វីបានជាឯកសារប៊ីតម៉ានេះមានក្បាលប៊ីតម៉ា RIFF (ដែលគឺជាការបញ្ជាក់ដែលទាំងមូលមានភាពត្រឹមត្រូវ) គឺមិនច្បាស់។ មានសង្ឃឹមថា Outpost 2 ប្រើ API នៃប្រព័ន្ធដើម្បីបញ្ចូលក្រាហ្វិក
ដោយការបង្ហាញក្បាលនេះជាបណ្តោះអាសន្ន ហើយវាក៏ត្រូវបានជំនួសជាលក្ខណៈផ្ទៀងផ្ទាត់ដែលផ្លាស់ប្តូរ។
ទិន្នន័យប៊ីតនៅក្នុងឯកសារ BMP នៅទីតាំង Offset + uint32-Offset, ដែលអាចរកឃើញនៅក្នុងឯកសារ BMP នៅអាស័យដ្ឋាន 0x000A (RIFF-Bitmap-Datenoffset) គឺ អាចរកបាន ហើយវាក៏ត្រូវគ្នានឹងការរៀបចំជួរដេកពីខាងលើខាងឆ្វេងទៅខាងក្រោមផងដែរ។
គ្រាប់ប៊ីតមួយប៊ីត (1bpp) អាចគូរ បានដូចជា ថ្នាក់ទី 0 មានភាពโปร่งពេញ និងថ្នាក់ទី 1 ពីរ៉ែខ្មៅ/ប្រផេះមួយស្រាល ព្រោះគ្រាប់ប៊ីតមូដណែនាំ ត្រូវបានប្រើជាទូទៅសម្រាប់ស្រង៉ៃរថយន្ត និងអគារនៅក្នុងការអានីមេសន៍ ។
ដូច្នេះអ្នកអាចបន្ថែមរូបភាពច្រើនបាន។
អានីមេសិន
ឥឡូវនេះយើងមកដល់ថ្នាក់ខ្ពស់នៃវិន័យក្នុងទ្រង់ទ្រាយទិន្នន័យ Outpost 2៖
ការផ្លាស់ប្តូរ។
listes des animations seront introduites par un en-tête global, qui sert principalement à la vérification des données. Après cela, suivent les définitions concrètes des animations, qui se divisent en 3 niveaux :
-
ការផ្លាស់ប្តូរ
ការផ្លាស់ប្តូរ គឺជាអង្គភាពកំពូល; វាតំណាងឱ្យការផ្លាស់ប្តូរនៃអង្គភាពមួយ, អគារមួយ ឬ 'ការផ្លាស់ប្តូរជាផ្នែក' (ការប៉ះទង្គិចនៃកុមារសារពើភ័ណ្ឌ, អាកាសធាតុ, ការបំផ្ទុះ) នៅក្នុងស្ថានភាពចាប់ផ្ដើមមួយ។ -
រូបភាព
រូបភាព គឺជារូបភាពមួយក្នុងការផ្លាស់ប្តូរ។ ការផ្លាស់ប្តូរ អាចមានរូបភាពមួយឬច្រើន។ -
រូបភាពឆមាស
រូបភាពឆមាស គឺជាព័ត៌មានអំពីការដាក់បញ្ចូលថាប៊ីតម៉ាប់ជាក់លាក់មួយត្រូវបានគូសនៅទីតាំងជាក់លាក់នៃរូបភាពមួយក្រោមលក្ខខណ្ឌជាក់លាក់។ រូបភាពមួយអាចមានរូបភាពឆមាសមួយឬច្រើន។
បន្ទាប់មកគឺមានការកំណត់ការផ្លាស់ប្តូរប្រចាំមួយ។
អាសយដ្ឋាន | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | អក្សរ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
ទីតាំង | ប្រភេទទិន្នន័យ | ការបញ្ជាក់ | ការពន្យល់ |
---|---|---|---|
0x0000 | uint(32) | ចំនួនអាណិជ្ជកម្ម | មានកម្រិតទិន្នន័យអានីម៉ូសិនចំនួនប៉ុន្មាន? |
0x0004 | uint(32) | ចំនួនក្រាម | មានចំនួន Frames ទាំងអស់ដែលគួរត្រូវមានប៉ុន្មាន? |
0x0008 | uint(32) | ចំនួនក្រាបបន្ថែម | តើមានស៊ុបហ្វ្រាមនៅសរុបប៉ុន្មាន? |
0x000c | uint(32) | ចំនួនចំណាំជាជម្រើស | មានចំនួន "ការបញ្ចូលជាជម្រើស" ប៉ុន្មាន? |
អង់មីណេសិន
អាសយដ្ឋាន | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | អក្សរ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0010 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
0x0020 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
ទីតាំង | ប្រភេទទិន្នន័យ | ការបញ្ជាក់ | ការពន្យល់ |
---|---|---|---|
0x0000 | uint(32) | មិនស្គាល់ 1 | ព័ត៌មានមិនស្គាល់ |
0x0004 | uint(32) | ប្រអប់ទឹកដាក់: ដើម្បី | បង្ហាញពីចំណុចចាប់ផ្តើមបន្ទាត់ឆ្វេង (នៅក្នុងពិសាលភាព) នៃ Bounding Box ។ |
0x0008 | uint(32) | ប្រអប់ដាក់គែរ: លើ | បង្ហាញចំណុចដើមខាងលើ (ក្នុង pixel) របស់ Bounding Box។ |
0x000c | uint(32) | ប្រអប់កំណាត់: ទទឹង | បង្ហាញពីទទឹង (ក្នុងផិចសែល) នៃ Bounding Box ។ |
0x0010 | uint(32) | ប្រអប់កំណត់: កម្ពស់ | បង្ហាញពីកម្ពស់ (ជាប៉ិកសែល) នៃ Bounding Box ។ |
0x0014 | uint(32) | អ៊ីមភ្លើង: X | បង្ហាញពីកណ្ដាលអនាមិកនៅផ្នែកទន្លេ |
0x0018 | uint(32) | Offset: Y | បង្ហាញចំណុចកណ្តាលបញ្ឈរ នៃការបង្ហាញអាណីមេ이션 |
0x001c | uint(32) | អន្ដរាយ 2 | ព័ត៌មានមិនស្គាល់ |
0x0020 | uint(32) | ចំនួនក្រាម | បង្ហាញថាមានប៉ុន្មានស៊ុបទិន្នន័យរូបភាគក្នុងអានីមេសិននេះ |
0x0024 | uint(32) | ចំនួនវីនដូស | បញ្ជាក់អំពីចំនួនទ្វារដែលត្រូវប្រើនៅពេលគូស |
ទិន្នន័យនៃជាតិស្រទាប់ខ្ពស់បំផុត អានីមេישן គឺជាទិន្នន័យគ្រប់គ្រងដែលមានសំខាន់ - Boundingbox បង្ហាញពីសមាសភាពនៃកូអូរដីណាតថ្មីសម្រាប់យានយន្ត/អាគារ នៅពេលដែលវាត្រូវបានជ្រើសរើស ហើយក៏បង្ហាញផងដែរថាតើតំបន់ណាដែលអាចចុចបាន។
Offset កំណត់តំបន់ "ចំណុចសូន្យ"; ចំណុចដែលត្រូវកត់សម្គាល់លើកូអូរដីណាតក្នុងល្បែង ឬដកចេញ។ អ្នកអាចនិយាយថា Offset នៅទីនេះបង្ហាញពីចំណុចដើមនៃកូអូរដីណាត។
Windows ជាមួយនេះគឺដូចជាមួយ Offset ដែលមានតម្លៃ uint(32) ៤ ដែលបានកំណត់ តំបន់ដែលអាចប្រើបានសម្រាប់ Subframes។ ប៊ិចក្រៅ Windows មិនអាចគូរ បានទេ ប្រសិនបើវាត្រូវបានកំណត់សម្រាប់ Bitmap។
គ្រប់គ្រាន់
អាសយដ្ឋាន | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | អក្សរ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
ទីតាំង | ប្រភេទទិន្នន័យ | ការបញ្ជាក់ | ការពន្យល់ |
---|---|---|---|
0x0000 | uint(8) | ចំនួនសេវាកម្ម និង Toggle សម្រាប់ ជម្រើស ១, ២ | តម្លៃនេះមាន:
|
0x0001 | uint(8) | អនុញ្ញាត 1 និង Toggle សម្រាប់ ជម្រើស 3, 4 | តម្លៃនេះមាន:
|
0x0002 | uint(8) | ជាមួយជម្រើសទី ១ | មិនដែលដឹង |
0x0003 | uint(8) | ជម្រើស ២ | មិនដែលដឹង |
0x0004 | uint(8) | ជម្រើស ៣ | មិនដែលដឹង |
0x0005 | uint(8) | ជម្រើស ៤ | មិនដែលដឹង |
ស៊ុមរង
អាសយដ្ឋាន | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | អក្សរ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x0000 | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . | . |
ទីតាំង | ប្រភេទទិន្នន័យ | ការបញ្ជាក់ | ការពន្យល់ |
---|---|---|---|
0x0000 | uint(16) | Bitmap-Id | បង្ហាញថា ធ្វើដំណើរក្នុង Bitmap nào សម្រាប់ Subframe នេះ។ |
0x0002 | uint(8) | មិនស្គាល់ 1 | មិនដឹងទេ - ប៉ុន្តែខ្ញុំសង្ស័យខ្លាំងថា នេះគឺជាការចាត់ថ្នាក់តាមលំដាប់នៃការបង្ហាញ (Z-Layer)។ |
0x0003 | uint(8) | អត្តសញ្ញាណស៊ុមរង | បង្ហាញថា យើងស្ថិតនៅក្នុង Subframe មួយណា |
0x0004 | sint(16) | អាប់សេត - កណ្តាលខាងអុីស្ទរ៉ូ | បញ្ជាក់ថា កន្លែងណាដែលនៅក្នុងកម្រងនោះ ដែលគេត្រូវដាក់ស៊ុបទ្រង់ ឬក៏ត្រូវផ្លាស់ទីរូបភាពដោយប៉ុន្មានពីគុណមេត្រ នៅក្នុងទិសហូរយ៉ាងណា |
0x0006 | sint(16) | អរ៉ាស - ទិសផ្ទុយ | បង្ហាញពីទីតាំងដែលនៅក្នុងគ្រាប់បាល់ដែលគួរត្រូវបានដាក់ស្ពានតូច ឬចំនួនពីកន្លែងដែលគំនូសប៊ីតម៉ាប់ត្រូវបានផ្លាស់ទីឡើងវិញតាមទិសផុសវិនាទី។ |
នេះអាចឲ្យយើងភ្ជាប់ស៊ុមចេញជា១ៗ និងស៊ុមចេញសរុបសម្រាប់អនុម័តសម្រាប់សកម្មភាពមួយ ដែលបង្ហាញពីសកម្មភាពមួយដែលស្មុគស្មាញ នៅក្នុងសកម្មភាពដែលមានលេខកូដ 500។
អនិម៉េស្យុង 500
ការអានីមេសិន 500 បង្ហាញពីរបៀបដែលយានក្រុង Plymouth ដែលបានបម្រើជាមួយនឹងរ៉ែធម្មតា ត្រូវបានបញ្ចេញ។ វាជាអានីមេសិនមួយក្នុងចំនោមអានីមេសិនតិចតួចដែលប្រើប្រាស់មុខងារ Windowing។
ហើយដូចនេះ អានីមេសិនទាំងមូលអាចត្រូវបានប្រមូលផ្តុំ។
អាសូរ មានបញ្ហាមួយទៀតជាមួយទ្វារលើដែលត្រូវបញ្ចូលកាត់បន្ថយ ពីព្រោះនៅទីនេះ ប៊ីតដែលពាក់ព័ន្ធ មិនត្រូវបានកំណត់ក្នុងព័ត៌មានប្រភេទគ្រាប់រូបភាពទេ។
ទីនេះមានស្រាប់ស្រាប់គ្រាប់រូបភាពដ៏ស្រស់ស្អាតផ្សេងទៀតពីហ្គេម៖
ការបង្ហាញអ្នកប្រើ
ឥឡូវនេះ យើងកំពុងខ្វះចំពោះឧបករណ៍ប្រើប្រាស់របស់ហ្គេម ដែលមានរូបរាងក្នុងស្តង់ដារដែលមាន ម៉ែតាល់បួស។
ប៉ុន្តែ នៅទីនេះក៏អាចមើលឃើញថា Dynamix មិនត្រូវការបង្កើតការងារថ្មីឡើយ; នៅទីនេះ មិនត្រឹមតែគ្រាន់តែប្រើប្រាស់ API User32 និង GDI32 ដែលផ្តល់ដោយ Windows ទេ - ជាពិសេស ត្រូវបានប្រើប្រាស់ការគ្រប់គ្រងធនធានពី User32 ផងដែរ។
វាត្រូវបានអាចដកស្រង់ឧបករណ៍ទាំងនេះ ដោយឧបករណ៍ដូចជា Angus Johnson ដែលអភិវឌ្ឍន៍ជា Freeware Resource Hacker ឬបើអ្នកមានខ្លាចប្រើប្រាស់ Wine នៅលើ Linux / Mac OS អាចប្រើប្រាស់ wrestool ដែលមាននៅក្នុង icoutils ដើម្បីដកស្រង់ផងដែរ។
ឈ្មោះឯកសារ | មាតិកា |
---|---|
Outpost2.exe | មានតែរូបតំណាងនៃហ្គេមដែលបង្ហាញអំពីស្ថានីយ៍អាកាសនៅមុខ New Terra |
op2shres.dll | មានក្រាហ្វិកសម្រាប់ធាតុគ្រប់គ្រងដូចជាការបន្ថែមស៊ុម ប៊ូតុង ប៊ូតុងវិទ្យុ និងប្រអប់ចុចបន្ថែម។ វាក៏មានផ្ទាំងផ្ទាំងព័ត៌មានសម្រាប់រូបភាពរួមខាងក្រោយសម្រាប់អត្ថបទបេសកកម្មរឿង និងក្រាហ្វិកផ្ទាំងផ្ទាំងមុខ |
out2res.dll | មានការតុបតែងកន្លែងក្នុងហ្គេម សញ្ញាសម្រាប់ទម្រង់ធម្មតានិងពិសេស ផ្ទាំងផ្ទាំងផ្ទាំងការផ្ទុក ក្រាហ្វិកសម្រាប់សន្ទនានិង ក្រាហ្វិក សញ្ញាបនប្បញ្ញត្តិជាច្រើន បន្ថែមពីរូបភាពរាងកាយដែលមាននៅក្នុងថតហ្គេម |