главная турниры статьи wiki карта сайта логин

Автор Тема: Создание эры  (Прочитано 3035 раз)

0 Пользователей и 1 Гость просматривают эту тему.


ShuricK

  • Эксперт
  • level 3
  • ***
  • Сообщений: 369
  • Shas'La Kel'Shan
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Opera 9.80 Opera 9.80
    • ICQ клиент - 574278280
    • Просмотр профиля

  • Раса: Механизм
Создание эры
« : Май 09, 2010, 14:39:46 »
            Coздание новой эры в Весноте 1.8
   Все аддоны в новой версии веснота располагаются в папке battle for wesnoth/userdata/data/add-ons.
Каждый aддон хранится в отдельной папке со своим именем.Внутри такой папки хранится файл _main.cfg.Иногда этот файл располагают прямо в data/add-ons как <имя_аддона>.cfg.Первоначальные данные веснот берет из этого файла.Минимальное содержание этого файла таково (для файла <имя_аддона.cfg>):

   [binary_path]
      path=data/add-ons/Colosseum3p  
   [/binary_path]

   #ifdef MULTIPLAYER
      {~add-ons/Colosseum3p}
   #endif

   (Прим.: в случае с _main.cfg нужно точно указывать загружаемые файлы.Имхо проще так как написано выше)
   Оба абзаца просто указывают, где расположено ваше дополнение.Фактически все файлы, расположенные в данной папке, будут загружены в память во время загрузки.То есть если в одном из файлов будет определение новой эры, веснот достанет его и введет эру в игру.Определение эры:
   
[era]
    id=era_default
    name= _ "Default"

    {RANDOM_SIDE}
    {multiplayer/factions/loyalists-default.cfg}
    {multiplayer/factions/rebels-default.cfg}
    {multiplayer/factions/northerners-default.cfg}
    {multiplayer/factions/undead-default.cfg}
    {multiplayer/factions/knalgans-default.cfg}
    {multiplayer/factions/drakes-default.cfg}

    {QUICK_4MP_LEADERS}
[/era]

   id - внутренне имя эры, name - отображаемое имя эры.{RANDOM_SIDE} - преопределенный обязательный  макрос, позволяющий компьютеру отображать и осуществлять случайный выбор расы.{QUICK_4MP_LEADERS} - макрос, который доступных лидеров с очками движения меньше 5 дает трейт быстрый.Второй макрос не обязателен, но желателен. Между этими макросами лежит список файлов, из которых веснот должен импортировать определения фракций:
   
[multiplayer_side]
    id=Loyalists
    name= _"Loyalists"
    image="units/human-loyalists/lieutenant.png"
    {MAGENTA_IS_THE_TEAM_COLOR}
    type=Lieutenant
    leader=Lieutenant,Swordsman,Pikeman,Javelineer,Shock Trooper,Longbowman,White Mage,Red Mage
    random_leader=Lieutenant,Swordsman,Pikeman,Javelineer,Longbowman,Red Mage
    recruit=Cavalryman,Horseman,Spearman,Fencer,Heavy Infantryman,Bowman,Mage,Merman Fighter
    terrain_liked=Gg, Ww, Wo
    [ai]
        recruitment_pattern=fighter,fighter,fighter,archer,mixed fighter,scout
    [/ai]
[/multiplayer_side]

   id и name - аналогично эре, image - изображение для расы.{MAGENTA_IS_THE_TEAM_COLOR} - макрос, определяющий спектр цветов стороны для данной расы.type - задает лидера по умолчанию,leader - задает весь список доступных лиеров,random_leader - задает список доступных лидеров для случайного выбора,recruit - задает список доступных для вербовки юнитов.terrain_liked подсказывает компьютеру, какой террейн любит данная раса(посмотреть коды местностей можно в редакторе, включив соответствующую опцию).recruitment_pattern определяет порядок вербовки юнитов компьютером.Замечу, что веснот должен должен загрузить определения самих юнитов раньше загрузки фракций.Проще говоря, тег [unit_type], который определяет новый тип юнита, должен встретиться раньше тега [multiplayer_side].
   Собственно, определение нового юнита:
   
   [unit_type]
      id=Blood Bat
      name= _ "Blood Bat"
      race=bats
      image="units/undead/bloodbat-se-3.png"
      {MAGENTA_IS_THE_TEAM_COLOR}
      ellipse="misc/ellipse"
      hitpoints=27
      movement_type=smallfly
      movement=9
      experience=70
      level=1
      alignment=chaotic
      advances_to=Dread Bat
      undead_variation=bat
      cost=21
      usage=scout
      description= _ "Blood Bats are so-named because of their ruddy hue, which some mark as a symbol of their preferred diet. These creatures are fast and can drain the blood of those they attack, thereby gaining some of the health lost by their victims."+{SPECIAL_NOTES}+{SPECIAL_NOTES_DRAIN}
      die_sound=bat-flapping.wav
    [defense]
        village=60
    [/defense]
    [resistance]
        cold=70
    [/resistance]
   [attack]
        name=fangs
        description=_"fangs"
        icon=attacks/fangs-animal.png
        type=blade
        range=melee
        damage=5
        number=3
        [specials]
            {WEAPON_SPECIAL_DRAIN}
        [/specials]
    [/attack]
[/unit_type]

   Прокомментирую некоторые моменты.id - внутреннее имя, которе нужно указывать в списке recruit.ellipse - подсветка под юнитом ввиде эллипса цвета команды.movement_type определяет также параметр защиты и некоторые резисты.Теги [defense] и [resistance] только корректируют эти параметры.Параметр range принимает любые значение, причем не обязательно melee или ranged.Вы можете написать что-нибудь типа big_distance, веснот ошибок по этому поводу выдавать не будет, просто отвечать на эту атаку будет только юнит, имеющий атаку с параметром range=big_distance.Также есть еще анимация, которую я опустил, так как по сложности создание анимации превосходит само создание эры и занимает большую часть описания юнита.К тому же имхо горазо проще создавать юниты таким способом:
   [unit_type]
   [base_unit]
      id=Cavalryman
   [/base_unit]
   id=NEW
   name=_"NEW"
   <параметр>=<новое значение>
   [/unit_type]
   
   В таком случае за основу берется уже существующий юнит (указывается в теге base_unit) и изменяются конкретные значения.Все, что не указана, берется из исходного юнита.В случае с атакой, если вы прописываете новую атаку, все старые убираются.
   По этому шаблону создам эру всего с одной стороной и одним юнитом - мышкой, обладающей только дальней атакой со свойством берсерк.Эру назову просто - test.
   Итак, в папке userdata/data/add-ons создаю файл ERA.cfg:

   [binary_path]
      path=data/add-ons/ERA
   [/binary_path]

   #ifdef MULTIPLAYER
      {~add-ons/ERA}
   #endif
   
   В этой папке кладу файл test_era.cfg:
   
[+units]
   {~add-ons/ERA/test_bat.cfg}
[/units]

#ifdef MULTIPLAYER
[era]
   id=test
   name=_"test"
   require_era=no
   
   {RANDOM_SIDE}
   {~add-ons/ERA/test_fraction.cfg}
[/era]
#endif

Комментарий: команда #ifdef MULTIPLAYER говорит, что этот блок работает только в мультиплейере.
тег [+unit] - наиболее частый способ включить описание юнита раньше описания эры и фракции.

Далее создал test_fraction.cfg:

[multiplayer_side]
   id=test
   name=_"test"
   {MAGENTA_IS_THE_TEAM_COLOR}
   type=New_Bat
   leader=New_Bat
   random_leader=New_Bat
   recruit=New_Bat
[/multiplayer_side]

   В созданном test_bat.cfg прописал следующее:
   
   [unit_type]
   [base_unit]
      id=Blood Bat
   [/base_unit]
      id=New_Bat
      name=_"Bat"
      [attack]
         name=test_attack
         description=_"test attack"
         type=impact
         range=ranged
         damage=6
         number=2
         [special]
            {WEAPON_SPECIAL_BERSERK}
         [/special]
      [/attack]
   [/unit_type]
      
      
   
   
   
« Последнее редактирование: Июнь 06, 2010, 12:56:14 от ShuricK »