18.07.2005, 21:31 | #1 | ||
Мастер
Регистрация: 03.04.2007
Адрес: Сайтама
Сообщений: 391
Репутация: 92
|
Создание карт, модов для WarCraft 3
Прежде чем задать вопрос прочитайте следующее: Полезные ссылки, программы и прочее..., Оглавление "Библиотеки Творцов" Данная тема предназначена для решения каких либо проблем или помощи в создании карт и модов для игры Warcraft 3. Немного о наборе инструментов, которые понадобятся нам в создании и редактировании: WorldEditor Скрытый текст: Автор: Blizzard Entertainment Тип: Редактор мира Warcraft 3 Способ распространения: На диске с игрой Язык: Русский Версия: 1.21b О программе: Официальный редактор карт для вара очень удобен и вполне не сложен. Редактор похож на своего предшественника StarEdit (редактор мира StarCraft), но он все равно отличается большой функциональностью и интерфейсом. Больше информации можно узнать на WikpediaАльтернативные редакторы:Прочие программы:
Полезные ссылки: Последний раз редактировалось Emix; 04.01.2011 в 10:42. |
||
|
20.02.2009, 16:41 | #2383 | ||
Юзер
Регистрация: 14.01.2009
Адрес: И целого мира мало.
Сообщений: 166
Репутация: 40
|
Я нащёл чото,но это не учебник ,а ГРОМАДНАЯ статья.
Скрытый текст: |
||
|
21.02.2009, 09:57 | #2385 | ||
Юзер
Регистрация: 14.01.2009
Адрес: И целого мира мало.
Сообщений: 166
Репутация: 40
|
Как импортировать модель
Итак, ты скачал откуда-нибудь модель, предназначенную для war3 и не знаешь что с ней делать. Разберемся, что и в каком порядке нужно делать. Модель состоит из нескольких файлов: 1. Сама по себе модель *.mdx 2. Возможно, специальная модель портрет *_portrait.mdx 3. Могут быть еще несколько файлов *.blp (текстуры). Обычно еще прилагается файл с инструкцией. Но когда-то я и сам не смог разобраться даже с инструкциями. Так что продолжаем. Итак, у тебя имеется архив с моделью. Сделай следующее: 1. Создай новый каталог 2. Разархивируй в него архив с моделью. Теперь в архиве находятся несколько файлов или даже каталогов - наша модель Далее, идем в редактор и делаем следующее: 1. Через меню запускаешь Модуль-> Менеджер импорта (f12) 2. Открывается окном менеджера. Через меню делаешь команду Файл->Импорт файла Имопртируешь в менеджер все файлы, которые находятся в каталоге с моделью и подкаталогах, созданных при архивации Обычно модели стыкуются с текстурами только если имеется определенная структура каталогов. И эту структуру нужно повторить в менеджере импорта. Проделай следующее: 1. В менеджере импорта выбери файл с моделью (он имеет расширение mdx) 2. Два раза щелкни на файле (или нажми enter) 3. Нажми флажок "Нестандартный путь" 4. У тебя будет написано war3mapImported\<model>.mdx Измени название на <model>.mdx 5. Нажми ok. Теперь твоя импортированная модель будет храниться как бы в корневике сценария (ведь сценарий - это своеобразный архив). Если имеется еще одна модель с портретом (у нее будет название *_portrait.mdx) - сделай с ней то же самое. Теперь нужно решить, куда импортировать текстуры. Помнишь я говорил, что должна сохраняться структура? Так вот, допустим, что наша текстура распаковалась в папку textures\<имя текстуры>.blp Тогда мы должны прописать для импортированной текстуры в менеджере импорта точно такой же нестандартный путь: textures\<имя текстуры>.blp Изменять пути к текстурам - по тому же алгоритму, по которому мы меняли пути к модели . В менеджере импорта раскидываешь все файлы в нужные каталоги . Далее, очень важно: сохрани сценарий. Только теперь в редакторе объектов назначать в качестве модели только что импортированную (выбираешь модель из списка imported). И при этом можно будет сразу же посмотреть эту модель. Если ты попробуешь использовать импортированную модель до того, как сценарий будет сохранен, то при размещении в редакторе вместо модели ты увидишь черный квадрат. Запоздалое сохранение не поможет. Если это произошло - сохрани сценарий, выйди из редактора и снова войди. Возможен случай, когда пути прописаны как я сказал, но модель все равно не отображается. Можно попробовать отыскать ошибку. Открываешь файл mdx при помощи блокнота. Там будет абра-кадабра, но ближе к началу будет имется список использованных текстур и пути, которые необходимо прописать. (это всё с хгм) |
||
|
22.02.2009, 23:47 | #2386 | ||
Новичок
Регистрация: 06.03.2008
Сообщений: 14
Репутация: 2
|
подскажите плз как делать умения, а именно мне нужно умение подобное "Мощи Гор", тоесть например...ну был обычный голем а на каком небудь лвле у него появлялась умение чтобы превратится в огненного+(соотвецтвенно) улучшение характеристик на %(тоесть у него увеличивается сила на 5%,10% и т.п.)...ну вот вообщем чтобы менялся облик и характеристики (эт я щас само сабой о герое говарю)
|
||
|
22.02.2009, 23:55 | #2387 | ||
Юзер
Регистрация: 14.01.2009
Адрес: И целого мира мало.
Сообщений: 166
Репутация: 40
|
Цитата:
|
||
|
23.02.2009, 09:19 | #2388 | ||
Игрок
Регистрация: 18.02.2009
Адрес: Пустота
Сообщений: 844
Репутация: 133
|
У "Мощи" таких изменений не предусмотренно, а вот у перевоплощения - самое оно.
__________________
~~~~~~~~~~~Дело нередко кажутся погаными. Но по моему личному опыту, обычно все гораздо хуже.~~~~~~~~~~~ |
||
|
25.02.2009, 16:00 | #2389 | ||
Новичок
Регистрация: 24.08.2006
Сообщений: 49
Репутация: 1
|
Два вопроса
1)Как сделать что герои разных кланов возрождались в определённой области и с каждым уровнем время возрастало?
2)Как сделать арену как в Петросянщине? Тоесть качаться только ночью.
__________________
На 20 % круче |
||
|
25.02.2009, 18:31 | #2390 | ||
Юзер
Регистрация: 14.01.2009
Адрес: И целого мира мало.
Сообщений: 166
Репутация: 40
|
Цитата:
Тригер: 1.Событие>юннит(Тут не забудь об условить кажодого подвласного героя,тоесть моздать переменную типа "Боевая еденица" и опять массив 1-Важно!!!)умирает.(и можеш назвать премен. "Hero"). 2.Условие>xD 3.Действие>установить "Timer_Dead_Hero" как "Timer_Dead_Hero"+5(к это пример,тоесть в 1 раз будет 5 секунд,а за каждый последующий будет бульше,так что ставь вместо "5" сколько тебе надо). Запустить таймер с истечением времени в "Timer_Dead_Hero"массив-номер игрока>владелец>умирающий юннит,так же используй такой же массив для "Timer_Dead_Hero".(можно не "Timer_Dead_Hero" а "Timer_Spawn_Hero",так логичней) Тригер #2: Событие>Таймер истекает.(Hero с масивом). Условие>)))) Действие>Герой>Мнгноменно оживить Hero в указаной области. Добавлено через 1 час 46 минут Короче сделай так если не нужен таймер 1.Событие>юннит(Тут не забудь об условить кажодого подвласного героя,тоесть моздать переменную типа "Боевая еденица" и опять массив 1-Важно!!!)умирает.(и можеш назвать премен. "Hero"). 2.Условие>xD 3.Действие>установить "Timer_Dead_Hero" как "Timer_Dead_Hero"+5(к это пример,тоесть в 1 раз будет 5 секунд,а за каждый последующий будет бульше,так что ставь вместо "5" сколько тебе надо). Ждать "Timer_Dead_Hero" Действие>Герой>Мгновенно оживить Hero в указаной области Добавлено через 1 час 50 минут Так: Надо просто в действие так: Если время больше 18:00 и меньше 6:00 то ничего не делать иначе двигать его в область арены.(это когда он вощёл в нужную тебе область). Последний раз редактировалось Krovosos_777; 25.02.2009 в 20:22. Причина: Добавлено сообщение |
||
|
27.02.2009, 13:25 | #2392 | ||
Новичок
Регистрация: 06.02.2009
Адрес: Нижний Новгород
Сообщений: 57
Репутация: -24
|
http://rghost.ru/131419 - вот моя будущая мапа, там мало что готово, но основы положены, там довольно интересная система респа крипов и героев, без ошибочная (имхо , так что качай и разбирайся
|
||
|
27.02.2009, 14:20 | #2395 | ||
Юзер
Регистрация: 14.01.2009
Адрес: И целого мира мало.
Сообщений: 166
Репутация: 40
|
RazArt, Я вижу с переменными у тебя ни когда не было проблем,и ты всегда был таким опытным "новичком"(сарказм).
Так вот вспомни времена когда ты понятие не имел чо такое "Переменная"............... .....хотя впринципе мне понятен ход твоих мыслей,я тоже учился таким способом-тоесть открывал карты и сидел по 10 часов пыхтел(понямал чо и как),так и научился всему чо знаю ща,а balda13 тож советую так сделать. |
||
|
27.02.2009, 14:23 | #2396 | ||
Новичок
Регистрация: 06.02.2009
Адрес: Нижний Новгород
Сообщений: 57
Репутация: -24
|
Ну что такое переменные я ещё лет в 12 узнал...
А вообще, ну что собстно сложного в моей системе? Там просто "много букаф", а так там всё предельно просто, правда я думаю лучше CV заменить на глобалку... |
||
|
27.02.2009, 14:30 | #2397 | ||
Юзер
Регистрация: 14.01.2009
Адрес: И целого мира мало.
Сообщений: 166
Репутация: 40
|
RazArt, Я тож в 12 и мну ща 13.
Ну разве не видно что он новичок.Ё моё эт почти тоже самое что и.........ну незнаю.....например выучить всю квантомую физику сидя на скале,всего с 3 шоколадками на всю оставшуюся жизнь...хотя нет...например обьяснять что такое переменная китайцу на русском....и только со временем он поймёт....что такое переменные......или..........что вы сбежали из психушки))))))))))............... Ой Блин извеняюсь за оффтоп. Последний раз редактировалось Krovosos_777; 27.02.2009 в 17:10. |
||
|
27.02.2009, 14:30 | #2398 | ||
Новичок
Регистрация: 06.02.2009
Адрес: Нижний Новгород
Сообщений: 57
Репутация: -24
|
Да кста, я не был опытным новичком, я был легко поддающимся обучению...
Вы только что написали бред... Эх... лан, если он реально не знает что такое переменные, то, balda13, вам сюда... Последний раз редактировалось RazArt; 27.02.2009 в 14:40. Причина: Добавлено сообщение |
||
|
27.02.2009, 14:46 | #2399 | ||
Юзер
Регистрация: 14.01.2009
Адрес: И целого мира мало.
Сообщений: 166
Репутация: 40
|
Кстати у мну вопрос набежал,а начал изучать основы JASS.
Вот тут такая проблема,в одном спеле чел должен появлять в случайной облости вокруг героя,но такого нет вот код: Скрытый текст: В строке GetRandomReal(0.00, 360.00)) указываеться рандом,но он не действует,в чём проблема,а то вроде всё правельно. |
||
|
27.02.2009, 15:32 | #2400 | ||
Новичок
Регистрация: 06.02.2009
Адрес: Нижний Новгород
Сообщений: 57
Репутация: -24
|
Как энто нет? Вот пример, на гуи кста, но я не советую его юзать, так как от полярок есть утечки, а советую заменить на это, надеюсь разберёшься в коде:
Код:
function XPolarOffset takes location loc, real dist, real angle returns real local real x = GetLocationX(loc) + dist * Cos(angle * bj_DEGTORAD) return x endfunction function YPolarOffset takes location loc, real dist, real angle returns real local real y = GetLocationY(loc) + dist * Sin(angle * bj_DEGTORAD) return y endfunction function Trig_Casting_Actions takes nothing returns nothing local unit caster = GetSpellAbilityUnit() local unit target = GetSpellTargetUnit() local real distanse = GetRandomReal(150.00, 300.00) local real angle = GetRandomReal(0, 360.00) local location UnitLoc = GetUnitLoc(target) if GetSpellAbilityId() == 'A000' then call CreateNUnitsAtLoc( 1, 'hfoo', GetOwningPlayer(caster), Location(XPolarOffset(UnitLoc,distanse,angle), YPolarOffset(UnitLoc,distanse,angle)), bj_UNIT_FACING ) endif set caster = null set target = null set UnitLoc = null endfunction function InitTrig_Casting takes nothing returns nothing set gg_trg_Casting_3 = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_Casting_3, EVENT_PLAYER_UNIT_SPELL_CAST ) call TriggerAddAction( gg_trg_Casting_3, function Trig_Casting_Actions ) endfunction Вот пример, без утечек имхо (используя те 2 функции вместо полярок) Последний раз редактировалось RazArt; 27.02.2009 в 15:59. Причина: Добавлено сообщение |
||
|
|