[ Обновленные темы · Новые сообщения · Участники · Поиск · RSS ]
Результаты поиска
4erveR
Модераторы
Сообщений: 1511
Реп: 77 / Инв: 13
Для начала нужно создать скрипт для карты:
1. Качаем исходники скриптов и компилятор
2. Берем оттуда исходник скрипта любой карты (лучше мультиплеерной, Multi*.lua)
3. Прописываем путь к нашей карте в параметрах функции LoadLevel. Но помните: имя файла карты должно быть только из зарегистрированных игрой, иначе будет ошибка (подробнее)! На имена папок и скриптов это ограничение не распространяется.
4. Если в скрипте есть еще код кроме вызова LoadLevel внутри InitialiseLevel, удаляем его при отсутствии необходимости.
5. Сохраняем исходник с новым именем, компилим и кидаем lub в папку data/scripts

После создания скрипта нужно изменить файл local.xom, который находится по следующему пути:
Код
Worms Forts Under Siege\data\frontend\Local.xom


1. В XomView 2.9+ выбираем WF режим и открываем файл.
2. Открываем раздел ContainerResources
3. Выбираем любой пункт из FE.Level.*, где название соответствует нужному вам типу (н-р FE.Level.Multi.* для мультиплеерных карт)
4. ПКМ, Export .xom, сохраняем файл
5. ПКМ, Insert Cntr, выбираем тот файл
6. Выбираем появившуюся копию
Код
XResourceDetails::XContainerResourceDetails [241] "FE.Level.Attract1"
LevelDetails [1387]
LevelName = FE.B.Name.G.Mission3
ScriptName = G3multi
LevelType = 4
Brief =
Image = SS.Greek3
LevelNumber = 47
Lock =
LongestWins = False
AIPathNodeStartYOffset = 0.00
AIPathNodeCollisionStep = 20.00
80

7. Вписываем имя скрипта (ScriptName)
8. Меняем картинку (Image), название (LevelName) и порядковый номер (LevelNumber)
9. Сохраняем результаты (Save Xom).

 
4erveR
Модераторы
Сообщений: 1511
Реп: 77 / Инв: 13
Карта для WF состоит из трех основных частей:
1. 3DМодель в формате XOM. (визуализация)
2. XFortsExportedData - контейнер в котором сохранены:
- Epochs (Эпоха) - тема музыки и заданий
Код
0-Medieval
1-Oriental
2-Egypt
3-Greek

- Sky (Небо) - одно из 20 небосводов
Код
0-Medieval(Day)
1-Medieval(Evening)
2-Medieval(Night)
3-Greek(Evening)
4-Greek(Day)
5-Greek(Night)
6-Oriental(Day)
7-Oriental(Evening)
8-Oriental(Night)
9-Egypt(Day)
10-Egypt(Evening)
11-Egypt(Night)
12-Coliseum of Doom Sky (day)
13-Unused Red Sky,Water Sky (evening)
14-Mordred And Morgana (Hell)
15-A Quest (Day)
16-Pahraoh enough! Sky (day)
17-The Kingdom is Born (Night)
18-Tower of Power Sky (evening)
19-Chess Mate Sky (evening)

- wfRef (управляющие спауны) - точки для позициирования червей, ящиков и эффектов.
- buildHere (Позиция зданий) - состоит из некоторых параметров:

  • Имя
  • Позиция
  • Наличие Звезды
  • Тип здания:
    Код

    0 - Tower
    1 - Keep
    2 - Castle
    3 - Citadel
    4 - Test
    5  - Hospital
    6  - Weapon Factory
    7  - Laboratory
    8  - Statue
    14 - Stronghold
    15 - Light
    -1 - Free

  • Неизвестный Байт
  • Неизвестное имя
  • Команда (0-4 значения, 4- общее)
  • Неизвестное число
  • Ссылки (связи с другими зданиями)

- pSphere (сферический объект взаимодействия)
- pCube (кубический объект взаимодействия)
- wfEffect (сами эффекты)

3. Коллизионная модель - модель поверхности в игре, т.е. все по чем червяки могут ползать и врезаться, не падая.
4. Анимация, запускаемая скриптами.

Вот краткий обзор того, что из себя представляет карта.

А теперь о некоторых нюансах:
1. Чтобы создать пирамиду (начальное здание), нужно присвоить объекту 14 тип (Stronghold) и номер одной из 4-х команд. На карте к примеру 4 таких пирамиды с типами команд: 0,1,2,3.
2. Фанарем можно соединять здания, но тут есть некоторые особенности:
- если второй в цепочке фанарь находится на неровной или не существующей поверхности, то работают лишь крайние 1-й и 3-й.
- если фанаря два, но один стоит выше ограниченной высоты, то с верхнего можно будет включить нижний, но нельзя с нижнего верхний
- если цепочка стоит на ровной местности, все фанари образуют одну цепь и работают лишь крайние.
3. Нейтральные здания. Если создать здание и выбрать номер команды - 4, то здание не будет никому принадлежать, и каждый сможет им воспользоваться.

P.S. В общем все, если чего узнаем нового, отпишусь.
 
4erveR
Модераторы
Сообщений: 1511
Реп: 77 / Инв: 13
Как изменить карту уровня:
1. Открываешь старый уровень в XomView удаляешь ненужные xom ветви, а в нужных заменяешь модель XShape через Import 3DS.
2. Потом делаешь 3DS коллизионную модель (поверхностную) в любом 3D редакторе, и так же импортируешь в XCollisionGeometry через Import 3DS.
3. Ну и расставляешь здания, через WF Build режим. (важно чтобы было 4 пирамиды с разными индексами).
4. Сохраняешь карту в папку MP c теми же именами.

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

Удалять ветви стоит с осторожностью, т.к. XomView еще не совершенен, при удалении делает ошибки, оставляя некоторые байты, приходится вручную фиксить XGroup.

Цитата AlexBond
Чтобы делать свою карту, заменяй работающую по частям, я так чтобы найти ошибку в моей карте, 57 раз тестировал добавляя каждый кусочек в карту и запуская игру... Так что это не простая задача, и только упорство тебе помогут.
 
4erveR
Модераторы
Сообщений: 1511
Реп: 77 / Инв: 13
Q: Как импортировать изображение в игру?
A: С помощью XomView - надо найти в структуре xom-файла пункт XImage, затем нажать Import Image и выбрать импортируемое изображение (Export Image - экспортировать изображение из xom'а).

Q: В каком формате надо брать изображение?
A: TGA

Q: В каком xom-файле хранятся элементы интерфейса меню и HUD'а?
A: Меню - data\bundles\bundle03, 04, 173, 174; HUD - bundle05 + 06, 07, 09, 10 (специфические элементы эпох)

Q: Как импортировать изображение с альфа-каналом (прозрачностью)?
A: Пересохранить файл ("Сохранить как") через Corel PaintShop Pro (X7 portable) или Photo-Paint (X6 portable) как 32-битный несжатый TGA.
Прикрепления: 5144709.png (15.7 Kb)
 
4erveR
Модераторы
Сообщений: 1511
Реп: 77 / Инв: 13
Скрипт берет имя 4-го червя, и если оно в виде:
Код
WormName,0,1,2,3

То черви получат шляпы, каждый со своим индексом, а последний червь получит имя WormName.

Вот сам скрипт.
Код


function splithat(name)    
    local result = {"name","0","0","0","0"}
    local delimiter = ","
    local from = 1
    local ind = 1
    local delim_from, delim_to = string.find( name, delimiter, from )
    if delim_from ~= nil then
   while delim_from do
    result[ind] = string.sub( name, from , delim_from-1 )   
    from = delim_to + 1
    ind = ind + 1
    delim_from, delim_to = string.find( name, delimiter, from )
   end
   result[ind] = string.sub( name, from )   
    end
    return result
end

function SetHat(PlayerIndex,hatindex,index)
   WFHats = {   
     "Hat.Medieval1","Hat.Medieval2","Hat.Medieval3","Hat.Medieval4",
     "Hat.Egyptian1","Hat.Egyptian2","Hat.Egyptian3","Hat.Egyptian4",
     "Hat.Roman1","Hat.Roman2","Hat.Roman3","Hat.Roman4",
     "Hat.Oriental1","Hat.Oriental2","Hat.Oriental3","Hat.Oriental4",
     "Hat.Witch","Hat.Wizard","Hat.Guinevere","Hat.Helen" }
      local Worm = GetWormData(PlayerIndex,index)   
   Worm.HatOverride = WFHats[tonumber(hatindex)+1]
end

function SetDifficulty()

      local Worm
   local hats
   local indexplayer = 0
   local player = GetPlayerData(indexplayer)
   while player.PlayerIndex ~= -1 do      
    Worm = GetWormData(player.PlayerIndex,3)    
    if string.find(Worm.Name,",") ~= nil then
     hats = splithat(Worm.Name)
     Worm.Name = hats[1]
     SetHat(player.PlayerIndex,hats[2],0)
     SetHat(player.PlayerIndex,hats[3],1)
     SetHat(player.PlayerIndex,hats[4],2)
     SetHat(player.PlayerIndex,hats[5],3)
    end
    indexplayer = indexplayer+1
       player = GetPlayerData(indexplayer)
   end
end


Проверено, работает даже в онлайне!!!
 
4erveR
Модераторы
Сообщений: 1511
Реп: 77 / Инв: 13
Особенность функции LoadLevel (by AlexBond):

LoadLevel вызывается в начале скрипта, она дает игре путь к файлу с картой. Опытным путем установлено, что имя файла должно быть только из зарегистрированных игрой, иначе будет ошибка!!!

Пример вызова функции
Код

function InitialiseLevel()
        LoadLevel("landscapes/MP/DM03.xom",true)   
end


Для чего нужен второй параметр неизвестно...
 
4erveR
Модераторы
Сообщений: 1511
Реп: 77 / Инв: 13
раз тут обсуждали в основном моддинг, переместил в форум по моддингу вф
 
4erveR
Модераторы
Сообщений: 1511
Реп: 77 / Инв: 13
Цитата AlexBond ()
В общем контейнеры *.aud со звуками расшифровали

Добавлю приписку [Решено] и закрою тему тогда уж. Моддинг звуков можно обсуждать здесь.
 
4erveR
Модераторы
Сообщений: 1511
Реп: 77 / Инв: 13
Теперь таки есть - последние версии XomView. Приписываю [Решено].
 
4erveR
Модераторы
Сообщений: 1511
Реп: 77 / Инв: 13
Unaited, в твоем стиле не работает зачеркнутый текст:
 
4erveR
Модераторы
Сообщений: 1511
Реп: 77 / Инв: 13
ivan210303mitenkov, данный форум о WF, а графика туда импортируется через XomView. Из-за особенностей формата xom 32-битные картинки (с альфа-каналом/прозрачностью) импортируются только будучи пересохраненными через софт от Corel.
 
4erveR
Модераторы
Сообщений: 1511
Реп: 77 / Инв: 13
Рассказываем об интересных находках из вашего игрового опыта.

Перенесено с wormsforts.ucoz.ru:
Цитата Tekilla
Заметил интересную вещь. Однажды в своей безумной манере форэвэр-элоун-мультиплеера набрал фортификациями целых 9 звёзд, тогда как у "противника" было всего 3 - и меня внезапно объявили победителем через несколько ходов, тогда как Чуда построено не было.

Цитата AlexBond
Так и есть, 9 звезд дают автоматическую победу, еще в игре есть ограничение на количество зданий. Максимально на карте может быть 60-64 здания, если будет больше игра рушется.

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

Цитата Binkac
Осторожно, много Кэпа.

Обожаю Носорога... И с червей, и с построек он может выбить 600+ HP (если не ошиаюсь, то одно прикосновение сшибает с червя 120 HP, но практически его не толкает), что очень пригождается на последней миссии и вообще тогда, когда срочно нужно разломать какую-либо крепость, не говоря уже о мелких башнях.

"Правило Крыши": Если у здания будет разрушена крыша, то с него нельзя будет стрелять, даже если само здание ещё живое и шевелится. Очень помогает если надо, например, срочно обезвредить вражескую Цитадель - можно просто уронить прямо на середину крыши Бегемота. Butthurt случается даже у ИИ.

ИИ (по крайней мере "самые умные", то есть с мозгом 5-го уровня) редко заботятся о своих червях, хоть и догадываются снимать их с крыш. Пока у ИИ не останется либо один червяк, либо два полудохлых, он даже не попытаеся вернуть к жизни своих бойцов (с помощью Лазарета).

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


Цитата 4erver
Заметил странный баг - при выборе стационарного оружия бочки поблизости не рендерятся
 
4erveR
Модераторы
Сообщений: 1511
Реп: 77 / Инв: 13
Сюда выкладываем свои интересные находки в файлах игры, к примеру остатки чего-то нереализованного/удалённого.

Перенесено с wormsforts.ucoz.ru:
Цитата Tekilla
Я на знаю, делал ли кто-нибудь такое до меня, но всегда жутко бесила путаница в иконках зданий. Вы, я думаю, замечали (особенно те, кто рассматривал графические файлы), что у Чуда в игре иконка Оплота (или как там ещё переводят: "твердыня", "крепость"?), а у Оплота - какая-то неведомая амфора. Я взял и поменял - поставил иконки на верные места. Дело пяти минут, но если это интересно и кому-то переставлять вручную лень, могу поделиться файлами.
Чуть позже скриншоты пришлю.

Интересно, что есть парочка неиспользованных иконок, среди них есть и средневековый паб, видимо единственное "Team17 Lost&Found" в игре, которое АлексБонд всё же представил в виде крепости. Что из себя должно было представлять всё остальное - загадка.

P.S. прошу прощения, если всё, что я сказал - ни для кого не новость и давно уже всё везде сделали.

Цитата 4erver
Tekilla, другие - не знаю, но я даже не обращал внимания.. заскринь, интересно всё ж.

Цитата AlexBond
Вообще как я понял team17 планировала делать ферму, мастерскую осадных орудий, гильдию массонов и рынок.

Я так понимаю чтобы прокачивать каждый вид орудий в отдельности, например ферма - животное оружие(носорог, бегемот и т.п.) Но вот Гильдия массонов... понятия не имею для чего =)

Вот список всех строений (жирным, то что есть в игре):
"Tower"
"Keep"
"Castle"
"Citadel"
"Wall"
"Hospital"
"Refinery"
"ScienceLab"
"Wonder"

"Farm"
"SiegeWorkshop"
"Storehouse"
"MasonsGuild"
"Market"
"Stronghold"

Гильдия масонов - это каменщики... Возможно с этим зданием можно было возрождать порушенные здания...

Цитата Tekilla
Масоны - "вольные каменщики", а masonry - каменная кладка. А, возможно, оно влияло бы на Божественное Оружие, хотя маловероятно - всё же в таком случае больше подошли бы соборы\храмы\святилища. А иконка у MasonsGuild, к слову, с масонской символикой!

Фото (средневековье, как пример), можете сравнить с стандартными:
 
4erveR
Модераторы
Сообщений: 1511
Реп: 77 / Инв: 13
Параметры (ключи) запуска:

Оконный режим - /WIN
Software Keyboard (?) - /KEY
Отключить видео - /NOMOVIES
Отключить музыку - /NOMUSIC
Отключить голоса - /SHUTUP
Смена разрешения - /RES=WxH (W - ширина, H - высота)

Соотношение сторон нельзя задать через ключи, т.к.:
Цитата AlexBond
Соотношение сторон делается вживлением ассемблерного кода, по другому нельзя этого достичь...
Для этого и нужен лаунчер.
 
4erveR
Модераторы
Сообщений: 1511
Реп: 77 / Инв: 13
Общая схема переноса такая (english):

Tutorial how get Map from Game to WF:
1. Get 3DScreeens from your game level (for get all geometry of map)
2. Rotate and join all screen to One Map
3. Delete same patrs and not used details
4. Attach all objects to one Mesh.
5. Resize map to Size WF (Export object from WF map)
6. Make copy for collision geometry
7. Resize collision geometry to size of WF.
8. Join same points and make low Geometry for collision.
9. Set defauld texture and export Collision map to 3DS.
10. Main map. Dettach objects to MatID (unique textures)
11. Convert all texture to TGA.
12. Remap textures to TGA.
13. Save Object with unique texture to 3ds.
14. Import to XShape 3ds Object.
15. Make group from XShapes
16. Replace Geometry WF map to your Group
17. Import XCollisionGeometry from 3ds.
 
4erveR
Модераторы
Сообщений: 1511
Реп: 77 / Инв: 13
firsacho
Цитата firsacho ()
все GUI

скорее так
 
4erveR
Модераторы
Сообщений: 1511
Реп: 77 / Инв: 13
Цитата firsacho ()
тег $CUT$ вручную каждый раз вписывается при создании новости?

да, вручную. если не вписывать - будет автообрезка по заданному числу символов (могут быть незакрытые теги).
 
4erveR
Модераторы
Сообщений: 1511
Реп: 77 / Инв: 13
Переношу из темы "Идеи для карт" (by AlexBond) с wormsforts.ucoz.ru:

 
4erveR
Модераторы
Сообщений: 1511
Реп: 77 / Инв: 13
Переношу из темы "Map Ideas for WF" (by Woitek) с wormsforts.ucoz.ru:

 
4erveR
Модераторы
Сообщений: 1511
Реп: 77 / Инв: 13
Переношу из темы "Идеи для модов" (by 4erver) с wormsforts.ucoz.ru:

 
Поиск: