Life is Feudal - инструкция по созданию модов

Написал Admiral, 29 июля 2016 в 13:35

В данной статье вы познакомитесь с базовыми принципами создания модов в Life is Feudal. Какими знаниями нужно обладать, что редактировать и как это повлияет на саму игру. Читайте и создавайте свои собственные неповторимые модификации.

Life is Feudal - инструкция по созданию модов

Как создавать моды в игре Life is Feudal? Для начала вы должны обладать базовыми навыками использования компьютера, а также, для примера, знать как работать с информацией в SQL базе данных. Автор инструкции - Maegfaer.

Связь между сервером и клиентом.

Возникает множество вопросов на тему "Почему, когда я поменял в серверной базе данных/XML файлах параметр Х, в игре ничего не изменилось?" Поэтому для начала разберемся с этой загадкой.

Основная проблема тут в понимании связи между клиентом и сервером игры. Большинство людей думает, что сервер к примеру, определяет вместимость хранилища и отправляет эту информацию в клиент игры. Но это работает не так, так как в противном случае это бы значительно увеличило время загрузки сервера. При каждом присоединении к серверу, вам нужно было бы загружать всю эту информацию.

Вместо этого игровая информация, такая как вместимость хранилища определяется как в серверной части, так и в клиентской. Клиент пользуется своей собственной информацией, чтобы отображать такие значения, как вместимость хранилища. Он также откажется принять данные от сервера, если они будут превышать значение указанное в клиенте. При этом сервер еще и не был задействован. Поэтому изменения только серверной части не работают.

Серверная часть будут задействована, когда клиент будет принимать посылаемые данные. Данные также посылаются с клиента на сервер и происходит проверка не превышает ли значение вместимости хранилища на серверной части. Если данные проходят, команда выполняется, если нет - то сервер отвечает клиенту, что данные были отклонены.

Итак, какие можно сделать выводы: за сервером остается решающие слово, но клиент очень часто говорит раньше. Все это работает по такому принципу, чтобы уменьшить количество информации передаваемой между клиентом и сервером.

Это значит, что большинство модификаций нужно делать как на серверной части, так и на клиентской, чтобы все заработало.

Что делать с patch.sql файлом

В серверных файлах есть файл с названием patch.sql. Этот файл содержит в себе SQL запросы к официальным патчам. Этот файл выполняется каждый раз при перезапуске сервера и он может отменить все ваши модификации.

По моему опыту этот файл нужно запускать только один раз после каждого патча и после этого его можно удалить. Его переделывают после  каждого патча. Также вы можете отредактировать patch.sql и удалить все конфликтующие элементы, если вам не понраву удаление всего файла целиком.


Как сделать

В этой части мы обсудим самые простые модификации, те что требуют изменений только в базе данных и XML файлах. Все относящиеся к делу XML файлы можно найти в папке Data серверной и клиентской части

Как изменить вместимость контейнера и какие объекты можно в нем хранить
keyboard_arrow_down
keyboard_arrow_up

Для этого нужно модифицировать таблицу objects_types и файл objects_types.xml

Измените MaxContSize чтобы изменить общий вес предметов, которые можно хранить.

Чтобы изменить объекты, которые можно хранить, вам нужно изменить Length (длину) контейнера (в некоторых случаях длину объекта). Каждый объект обладает своей собственной длинной, если его длина превышает длину контейнера, игра отклонит запрос.


Как изменить время клайма объекта
keyboard_arrow_down
keyboard_arrow_up
Это модификация только серверной части.

Измените Owner Timeout колонку в objects_types таблице. При этом НОЛЬ означает, что времени клайма нету. Значение указываются в секундах


Как сделать объекты такими, чтобы их можно было заклаймить
keyboard_arrow_down
keyboard_arrow_up

Для начала установите для обхекта время клайма как написано выше.
В серверной и клиентской части модифицируйте skill_types.xml и найдите там следующую строку:




Под ней вы найдете строку:



Там вы увидите равнение с айди объекта. Само айди объекта вы сможете найти в таблицах базы данных или же в objects_types.xml. После этого вводим в нужную строку айди объекта.


Как изменить вес объекта
keyboard_arrow_down
keyboard_arrow_up

В objects_types таблице и в клиентской части в objects_types.XML файле измените UnitWeight


Как разрешить зданию стать домом
keyboard_arrow_down
keyboard_arrow_up
В objects_types таблице измените MaxStackSize, чтобы установить количество игроков, которые могут устанавливать здание как дом одновременно. Минимальное значение 1

В серверной и клиентской части, отредактируйте skill_types.xml и найдите строку:


Под ней вы найдете строку, которая начинается:


найдите айди необходимого вам здания в базе данный или в objects_types.xml и введите значение после знака равно.


Как изменить количество опыта получаемого при использовании способностей
keyboard_arrow_down
keyboard_arrow_up
Откройте skill_types.xml (скорей всего только в серверной части) и найдите строку:


Под способностью, которую вы хотите модифицировать. Далее изменяем множитель.


Как изменить приветственное сообщение
keyboard_arrow_down
keyboard_arrow_up
Это модификация клиентской части. Откройте cm_messages.xml  и измените


Как изменить значение защиты брони
keyboard_arrow_down
keyboard_arrow_up
Откройте cm_equipTypes.xml в серверной части. Для каждой части брони вы увидите следующее, где значение это множитель уменьшения урона (damage reduction multiplier):
  
   
   


Эти значения являются базовыми и в игре уровень качества является процентным увеличителем базового значения. То есть качество 100 удваивает множитель уменьшения урона.


Как изменить рецепты и требования к ним
keyboard_arrow_down
keyboard_arrow_up
В базе данный таблица recipe (рецептов) и recipe_requirements (требований) являются зависимыми, как в клиентской части recipe.xml и recipe_requirements.xml

Из recipe.xml:
   313
      Claymore
      
      453
      4
      30
      575
      5
      30
      1
313 это уникальный айди рецепта и его требования будут относится к этому айди. StartingToolsID относится к objects_types базовых инструментов для отдельных случаев. SkillTypeID это айди способностей необходимых для данного предмета. SkillLvl минимальный уровень способностей. Quantity количество произведенных объектов за раз.
Как вы понимаете это лишь базовые принципы мододелания в Lif is Feudal и более серьезные изменения потребуют от вас больших знаний. Творите.

Комментарии (3)
Stelsio +1
супер 
Как поднять уровень террейна,
на своем локальном сервере,
через ДатаБазу?
Например, нужно насыпать квадрат 100х100,
с уровня 4.0 до уровня 20.0
- в игре это займет уйму времени...
Заранее спс за ответ.
Grimo forward JackLondon +1
таблица geo_patch параметр Altitude
уровень выше моря начинается с 5000 т.е. чтоб поднять до 20.0 задаем значение 5020
опустить таким образом уровень земли нельзя.