Вы просматриваете: Главная > Мануалы > Добавление новых рас для Warcraft 3 TFT (или создание своего мода)

Добавление новых рас для Warcraft 3 TFT (или создание своего мода)

Это даже не мануал, а что-то вроде заготовки для создания своих модов.

В тексте ниже я попытался как можно подробнее рассказать, как сам делал моды. Надеюсь, это поможет :)

Ссылка на архив с заготовкой: https://yadi.sk/d/zKRH7YBk3Rehs5

Краткая инструкция по редактированию мода или заготовка для модов

Основная информация

– Принцип работы: файл races.exe подгружает races.mpq в игру. Его можно назвать любым именем. Например, МойМод.exe будет подгружать архив МойМод.mpq. Более подробно о принципе работы лаунчера в файле launchers.txt

– races.sph – файл картинки в формате gif, которая будет отображаться при старте игры.

Процесс

Я делал так: открывал races.w3n в редакторе, во вкладке “Нестандартные данные” редактировал юнитов, здания и прочее, а также их параметры. (новые и отредактированные данные отмечены синим цветом) Затем запоминал или записывал переменные героев, рабочих и главной базы (как узнать переменный показано на картинке Peremennye.png). Сохранял файл, переименовывал его в races.mpq. Далее открывал его с помощью MPQEditor’а (есть в папке “Программы”), закидывал туда данные интеллекта (тоже создаются в редакторе, есть в папке AI_скрипты) и основной скрипт фракций Scripts/blizzard.j (в папке “В_файл_Races.mpq” показано в каком порядке там все должно быть, также можно открыть оригинал и посмотреть.)

И запускал игру.

О скрипте Blizzard.j

Этот скрипт помещается в папку Scripts в нашем races.mpq. С ним я знаком совсем мало, знаю только как добавлять новые фракции: Для начала я придумывал свою переменную, например NAGA и просто клонировал уже существующие (Например, Human – люди) и вставлял свою переменную туда. Как это сделано можно увидеть на примере моего скрипта в папке В_файл_Races.mpq.

Например, я хочу создать расу троллей. Придумываю переменную Troll. Далее ищу в моем файле-примере поиском:

//globals from BanditsSetup:
constant boolean LIBRARY_BanditsSetup=true
//endglobals from BanditsSetup

В данном случае Bandits – переменная бандитов. Я просто клонирую этот блок и вместо Bandits втавляю Troll. Получается так:

//globals from TrollSetup:
constant boolean LIBRARY_TrollSetup=true
//endglobals from TrollSetup

Если рассмотреть кусок скрипта вместе с бандитами, то это выглядит так:

//globals from BanditsSetup:
constant boolean LIBRARY_BanditsSetup=true
//endglobals from BanditsSetup
//globals from TrollSetup:
constant boolean LIBRARY_TrollSetup=true
//endglobals from TrollSetup

Далее забиваю в поиск Bandits и ищу дальше. Нахожу:

group udg_banditstownhall= CreateGroup()

Делаю также – клонирую и меняю значение на свое:

group udg_trolltownhall= CreateGroup()

Ищем дальше. Теперь нам попадается такая “конструкция”:

//library BanditsSetup:

function BanditsSetup__Init takes nothing returns nothing
local integer c= s__CustomRace_create(“Bandits” , RACE_ORC , 0.8)
call s__CustomRace_setTownHall(c,’n60X’) // Lager Naemnikow
call s__CustomRace_addWorkerType(c,’n60Y’ , s__CustomRace_NEAR_MINE , 5) // Glinyany Golem
call s__CustomRace_addHeroType(c,’H60I’) // Glavar
set s__CustomRace_aiscript[(c)]=(“bandits.ai”) // INLINED!!
endfunction

//library BanditsSetup ends

Клонируем ее тоже. Здесь мы видим те самые переменные юнитов, похожие на те, которые запоминали в редакторе. Я также везде заменяю Bandits на Troll.
Здесь вместо юнитов бандитов вставляем юнитов, которых запоминали. Я же здесь после строк напишу комментарии, какая строка что означает.
Получается так:

//library TrollSetup:

function TrollSetup__Init takes nothing returns nothing
local integer c= s__CustomRace_create(“Troll” , RACE_ORC , 0.8) // – Здесь Troll – наша переменная, RACE_ORC – раса, которую будем
выбирать, чтобы играть за троллей, 0.8 – фора, которую выставляем, чтобы играть за троллей.

call s__CustomRace_setTownHall(c,’n60X’) // Здесь ‘n60X’ это переменная главной базы, смотрим в редакторе.

call s__CustomRace_addWorkerType(c,’n60Y’ , s__CustomRace_NEAR_MINE , 5) // Здесь ‘n60Y’ – рабочий.

call s__CustomRace_addHeroType(c,’H60I’) // Здесь ‘H60I’ – Герой.
call s__CustomRace_addHeroType(c,’H60K’) // Здесь ‘H60K’ – Второй герой и так далее.

set s__CustomRace_aiscript[(c)]=(“troll.ai”) // Файл интеллекта, используемый нашей фракцией.
(В редакторе мы должны экспортировать свой файл интеллекта в .ai файл и поместить в races.mpq, чтобы он работал)

endfunction

//library BanditsSetup ends

Заключение

Вроде объяснил все что вспомнил. Надеюсь, это поможет вам в создании своих модов. Желаю удачи!

Ваш Petunindan.

Метки: , , , , , , ,

10 комментариев к “Добавление новых рас для Warcraft 3 TFT (или создание своего мода)”

  1. Den:

    Также можете использовать мой мод как основу для своих :twisted:

  2. Ev3nt:

    MM Engine круче, в нём больше возможностей. :mrgreen:

    • Den:

      Спасибо, ознакомился, классная штука! Как я понял, он еще собственный интерфейс для новых расс поддерживает. Надо будет с ним поиграться :razz:

      • Ev3nt:

        Рад помочь, именно ваш мод вдохновил меня на создание MM Engine :D

      • Жду новых модов от вас на MM Engine, не терпится увидеть всё в новом свете!

        • Den:

          Большое спасибо! Именно такие комментарии и вдохновляют на дальнейшую работу. Свой мод с расами обновил, но все уперлось в интеллект. Стандартный бот больно уж скучный, поэтому пытался внедрить разные модули на улучшенный интеллект типа AMAI, ZycatAI, HonestAI, но объединить два разных Blizzard.j так и не удалось. Можно, конечно, просто заменить стандартные расы новыми, но это будет уже не то, разнообразие исчезнет.

          • Ev3nt:

            Я пытался реализовать соединение 2-х Blizzard.j. Прогресс был, но он пока на другом компьютере, а так, в версии MM Engine 0.7 изменено название BJ на mme.j и есть выделенное место под кастомные триггеры(Jass код).

            P.s там же упрощенная версия создания рас, нужно изменить всего 3 строчки :D

          • Ev3nt:

            Ах да, попробуйте сыграть в такие моды как Ragnarok, Consequence, они сделаны на том же движке, что и MM Engine, но у них имеется система аддонов, которая планируется вскоре добавиться и в MM Engine. А вот моя группа, где всегда вы можете найти новые версии модов
            https://vk.com/warcraftiii_the_mod_makers

        • Den:

          О, спасибо! Буду следить за новостями, очень интересно поиграть и в другие моды. Попробую перенести свой мод на MM Engine, очень он меня заинтересовал, спасибо вам :razz:

          • Ev3nt:

            И вам спасибо, буду рад сыграть в ваш мод :mrgreen:


Оставить отзыв

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

EnglishFrenchGermanRussian