|
Ray
Модератор
Откуда: Донецк,Украина Регистрация: Янв. 2004
Всего: 746 сообщений
|
Сегодня речь пойдёт о формате *.msk Отсюда такие вопросы: 1) Кто-нибудь кроме Павла игрался с масками? Вернее изменял ли? (Я не уверен, но думаю что Павел просто исспользовал маски из первого фолла. Если это не так, то исправь.) 2)Есть ли дока по этому формату? 3)Нужна ли кому нибудь дока по этому формату. Точнее, стоит ли мне этим заниматься или есть более перспективная область. 4)Нужен ли редактор (Тоже самое, надо ли над этим работать)?
----- Не бывает невозможных задач – бывает мало времени.
|
Отправлено: 22:47 - 2 Апр., 2005
|
|
Pavel
Модератор
Откуда: Одесса Украина Регистрация: Май 2004
Всего: 368 сообщений
|
Маска - это файл содержащий информацию о не возможности прохождении по карте мира. Структура очень простая. 0 - проходим, 1 - нет. Если сделать маску для полностью проходимого куска карты, то у нас получиться 88 нулей. Есть интересное свойство у маски. Если она начинается с f, а все маски фаллаута начинаются с f, то при открытии любого начала маски (пришли на побережье) будут открыты квадраты тумана на два тайла карты мира (это максимальная длина моря от левого нижнего угла до Сан-Франциско). Соответсвенно, если расположить маску посередине материка, то подходе с левой или правой стороны к границе маски, мы сразу откроем часть карты левее маски. Если же, сделать просто непроходимость (не начинается с f ни с одна строка*, то можно сделать непроходимость, и при этом проблем с туманом не будет). Есть предположение, что каждому пикселю соответсвует значение проходимо/не проходимо. Это я не проверял, но похоже на то. Если в процессе игры зайти в город и подменить маску, то при выходе из города новая маска будет уже стоять на карте мира. 1) Да. Очень нудное занятие. При работе вручную примерно создать маску можно, но точно не получилась не одна. 2) Я доку не писал и не встречал. 3) На твое усмотрение. Разбирать там мало чего. 4) Редактор, конечно, не помешает, но имеет ли смысл делать его. Ведь ни кто кроме меня пока в нем не нуждался. И каким образом совместить видимую часть материка и моря с отображением 1 и 0 ? Ведь в если делать редактор для удобного вбивания вручную, то это не имеет смысла, а еще пару месяцев, и маски и так будут готовы. Единственный вариант создания редактора, так это совмещение в реальном размере фрмки тайла карты мира и проведение по ней границы (линии), слева от которой все будет заполнено единицами а справа нулями. Просто сейчас почти готова новая карта мира, с четким соответствием пейзажу 1-го фаллаута и правой территории Калифорнии. Так что сделать непроходимую территорию можно в последнюю очередь. * - под строкой понимается начало новой строки непроходимости на карте мира, по оси У.
----- В жизни нельзя быть уверенным на 100%, ведь никогда не знаешь когда...
|
Отправлено: 0:14 - 3 Апр., 2005
|
|
Ray
Модератор
Откуда: Донецк,Украина Регистрация: Янв. 2004
Всего: 746 сообщений
|
По поводу редактора у меня была именно такая идея. Это не очень сложно, главное раскопать формат. Хотя я понимаю, что это пока ни кому не нужно, но мало ли... Просто было интересно, сталкивался ли кто нибудь с этим. Пока не будет более перспективной области на досуге буду ковыряться. Когда уже надоедает всё, можно и поизучать неизвестные форматы. (по своему опыту скажу - дюже интересно P.S. А о структуре - на первый взгляд не похоже, что всё так просто.
----- Не бывает невозможных задач – бывает мало времени.
|
Отправлено: 0:35 - 3 Апр., 2005
|
|
Pavel
Модератор
Откуда: Одесса Украина Регистрация: Май 2004
Всего: 368 сообщений
|
Вообще буду премного благодарен, если сделаешь редактор. строк в файле 3390, причем это последняя и пустая. В маске 304 строки по У карты мира. Если часть строк не заполнять (вообще оставить пустыми), то двиг будет считать их априори заполнеными 1, т.е. не проходимыми.
----- В жизни нельзя быть уверенным на 100%, ведь никогда не знаешь когда...
|
Отправлено: 1:42 - 3 Апр., 2005
|
|
Perceptron
Модератор
Откуда: Ivanovo Регистрация: Май 2003
Всего: 502 сообщения
|
Абель этим занимался. Даже сваял комплект для создания *.msk файлов из готовых BMP-шных масок - Msk Tools. Как только напишу кратенькую инструкцию, выложу.
|
Отправлено: 21:34 - 3 Апр., 2005
|
|
Ray
Модератор
Откуда: Донецк,Украина Регистрация: Янв. 2004
Всего: 746 сообщений
|
2 Perceptron: Спасибо, что сказал. А то б я делал не нужную работу, которая уже сделана. Вопрос снят.
----- Не бывает невозможных задач – бывает мало времени.
|
Отправлено: 22:25 - 3 Апр., 2005
|
|
Tehnokrat
Модератор
Откуда: Новосибирск Регистрация: Окт. 2003
Всего: 489 сообщений
|
>> А то б я делал не нужную работу, которая уже сделана Ну эт смотря какой редактор делать. Вот если визуальный редактор глобальной карты, позволяющий изменять не только проходимость но и вероятности встреч и т.п. из файла worldmap.txt, то неплохая была бы утиля.
----- Прошлое можно узнать, но нельзя изменить. Будущее можно изменить, но нельзя узнать.
|
Отправлено: 23:36 - 3 Апр., 2005
|
|
Perceptron
Модератор
Откуда: Ivanovo Регистрация: Май 2003
Всего: 502 сообщения
|
>Спасибо, что сказал. А то б я делал не нужную работу, которая уже сделана. Вопрос снят. Ну как тебе сказать снят... Есть кое-что, что меня смущает... Абель утверждает, что MSK - битовая маска для одного тайла карты мира. 1 - непроходимо, 0 - проходимо. Один тайл - 350x300 точек, итого 105000 точек - делим на 8, получаем 13125 байт (по одному биту на точку). А размер файла MSK - 13200 байт. Еще 75 байт - это 600 бит, т.е. две вертикальные линии. Что это такое - я не в курсе. Спрошу у Абеля, но, как видишь, не все так просто.
|
Отправлено: 23:47 - 3 Апр., 2005
|
|
Ray
Модератор
Откуда: Донецк,Украина Регистрация: Янв. 2004
Всего: 746 сообщений
|
Ладно. Ясно, что ничего не ясно. Будем разбираться. 2 Tehnokrat: Я подумаю.
----- Не бывает невозможных задач – бывает мало времени.
|
Отправлено: 23:54 - 3 Апр., 2005
|
|
Perceptron
Модератор
Откуда: Ivanovo Регистрация: Май 2003
Всего: 502 сообщения
|
Как я и обещал - MSK Tools.
|
Отправлено: 0:39 - 4 Апр., 2005
|
|
Wasteland Ghost
Маленькое Злое Привидение
Откуда: Россия, Самара Регистрация: Дек. 2002
Всего: 2251 сообщение
|
АБель говорит истинную правду :). Это именно битовая маска. Единственное замечание: frm тайла карты мира имеет размер 350 x 300 = 10500, а файл msk - 352 x 300 = 105600. Это связано, как понимаете, с "добиванием" строки до целого числа байт.
|
Отправлено: 10:31 - 4 Апр., 2005
|
|
Perceptron
Модератор
Откуда: Ivanovo Регистрация: Май 2003
Всего: 502 сообщения
|
Ммм... строка... целое... Я, конечно, программист, но чевой-то не врубаюсь. А можно для глупых?
|
Отправлено: 0:28 - 5 Апр., 2005
|
|
Ray
Модератор
Откуда: Донецк,Украина Регистрация: Янв. 2004
Всего: 746 сообщений
|
Да и я, вообще-то, тоже будующий программер, но и до меня слабо доходит. Разве в файле нельзя записать данные разных типов? Да и вообще есть ли смысл подгонять под целое число байт, что делать с теми, за счет которых подганялось. Просто пустые? И ещё. Если 01 - непроходимо, 00 - проходимо (или наоборот), то что означают значения FC, F8, FE, E0. Если всё остальное обнулить, все равно есть непроходимые зоны.
----- Не бывает невозможных задач – бывает мало времени.
|
Отправлено: 0:50 - 5 Апр., 2005
|
|
Wasteland Ghost
Маленькое Злое Привидение
Откуда: Россия, Самара Регистрация: Дек. 2002
Всего: 2251 сообщение
|
Каждому пикселю тайла карты мира ставится в соответствие один бит из файла msk. Если этот бит равен нулю, то по этому пикселю можно пройти, если единице - то нельзя. Теперь о хранении данных. На пальцах :). В памяти данные хранятся в переменных (ячейках, регистрах, whatever :), размер которых кратен 1 байту. Если мы 350 поделим на 8 это будет 43,75 байта. Т.е. 43 байта и ещё 6 бит. Логично эти два бита добить нулями. Это гораздо проще, чем пытаться сэкономить на спичках и сразу тут же писать следующую строку. Работать с такой записью будет очень неудобно. Стало быть, итог такой: каждая строка тайла, а это 350 бит, хранится в 44 байтах. Два последних бита добиваются нулями.
|
Отправлено: 13:45 - 5 Апр., 2005
|
|
|
|