![]() |
|
TNF сервер и частично документация |
![]() |
|
Опции темы | Опции просмотра |
![]() |
#1 |
Lost Overseer
Специализация: ест детей.
Регистрация: 29.01.2010
Сообщений: 1,000
Вес репутации: 644 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
что представляет из себя глобал сейчас?
одномерную матрицу ячеек(класс cell), "замосченую" на всю рабочую область глобальной карты. у каждой ячейки есть следущие свойства : координаты - cell.X | cell.Y - имею вид WorldX \ 10 | WorldY \ 10. это обусловлено тем, что каждая ячейка имеет размерность 10х10 рх ("большой сектор на глобале - 50х50 рх) родительские координаты - cell.ParantX | cell.ParantY (знаю что опечатался) - используется для больших карт(размерность > 1) размерность ячейки - cell.SizeX | cell.SizeY - используется для больших карт(центр саттера, например). задается мануально. дикость - cell.Wildness - уровень дикости, может быть кажется 0 - 255 флаги биома - cell.BiomFlags - используется для хранение информации о соседних биомах такого же типа, если они есть. тип биома - cell.BiomType - определяет какой тип местности присушь данной ячейке группа локаций биома - cell.BiomMapPid - базовое значение группы локаций для генерации. контент - cell.Content - класс CellContent - !NULL , если в ячейке существует локация. CellContent - включает в себя : MapId - айди карты Type - тип локации - статичная, энкаунтер. Visibility - видиость локации ( типы местности - биомы загружаются из фаила global_parse.txt в корне сервера единожды. фаил имеет запись вида Код:
тип ячейки + \t + тип ячейки + \t + ... + \n(в конце строки ;) ) Код:
#define BIOM_TYPE_WATER (-1) //only for parse used #define BIOM_TYPE_WASTELAND (0) #define BIOM_TYPE_RUINS (1) #define BIOM_TYPE_FOREST (2) #define BIOM_TYPE_RIVER (3) #define BIOM_TYPE_RAILROAD (4) #define BIOM_TYPE_ROAD (5) #define BIOM_TYPE_LAKE (6) #define BIOM_TYPE_MOUNTAIN (7) на каждый тип ландшафта отведено жесткое количество карт Код:
#define LOCATION_BIOM_RANGE (50) Код:
#define LOCATION_BIOM_SHIFT (5) Код:
LOCATION_BIOM_START + (LOCATION_BIOM_RANGE * biomType) Код:
we ns ne se sw nw ens nwe swe wns
__________________
Jet Rock's |
![]() |
![]() |
![]() |
#2 |
Lost Overseer
Специализация: ест детей.
Регистрация: 29.01.2010
Сообщений: 1,000
Вес репутации: 644 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Для того, что бы включить "новую" глобальную карту после генерации мира, нужно выполнить
Код:
%globalmap_group testbioms Формат текстовый, представляет из себя двумерную матрицу. Элементы разделены между собой табуляциями(или пробелама, запамятовал), строки - символом конца строки \n . Есть возможность конвертировать графическую карту в текстовый формат : будет дополнено
__________________
Jet Rock's Последний раз редактировалось PowerMagic; 10.02.2015 в 01:38. |
![]() |
![]() |
![]() |
#3 |
Lost Overseer
Специализация: ест детей.
Регистрация: 29.01.2010
Сообщений: 1,000
Вес репутации: 644 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
К слову, отдельно хочется отметить, что можно на ходу генерировать глобальную карту, если "отключить" графику(например поставить однотонную картинку на фон).
Результат может быть очень интересный : как случайная карта на каждую сессию, так и со временем расширяемый мир или просто изменения местности в зависимости от действий игроков.
__________________
Jet Rock's |
![]() |
![]() |
![]() |
#4 |
Senior Member
Специализация: Вне команды
Регистрация: 09.02.2010
Сообщений: 339
Вес репутации: 233 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Скажу больше, можно и картинку генерировать на ходу
![]()
__________________
011000100110100101101110011110010110000101101110 |
![]() |
![]() |
Данный человек сказал спасибо binyan за этот пост: |
kalda (15.02.2015)
|
![]() |
#5 |
Lost Overseer
Специализация: ест детей.
Регистрация: 29.01.2010
Сообщений: 1,000
Вес репутации: 644 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
не сомневаюсь даже =)))
из старых идей : заменить буквенные обозначения на пиктограммы. это наверно самый простой способ. а так-то шейдер написать и передавать в него карту местности и карту высот. звучит как "как нарисовать сову?" ![]()
__________________
Jet Rock's |
![]() |
![]() |