![]() |
#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. |
||
![]() |
|
![]() |
#2681 | ||
Новичок
Регистрация: 30.04.2009
Адрес: г. Омск
Сообщений: 15
Репутация: 1
|
|
||
![]() |
|
![]() |
#2682 | ||
Новичок
Регистрация: 16.08.2009
Сообщений: 2
Репутация: 0
|
Всем ку=( У меня карта ну... больших размеров(хорошо что комп позволяет) и вот, у меня на середине карты пишет: достигнуто максимальное допустимое значение декораций"! Я знаю на 100% что как-то можно увеличить лимит обьектов на карте если похимичить в свойствах редактора.. я весь интернет облазил и ниче не нашол. может кто знает как это сделать?
Добавлено через 20 минут P.S. после прочтения сайта хгм мой мозг чють не лопнул. Кстат, я со всеми тригерами разобрался кроме одного... я никак не могу понять зачем нужен тригеры: For Each (Integer "A,BVariable) DO (Action,MultipleAction) -что значит целое численное А или В? я долго гадал наф это нуно так и не понял! Ппц... У мну много вопросов. р Последний раз редактировалось WhiteDeil; 16.08.2009 в 12:37. Причина: Добавлено сообщение |
||
![]() |
|
![]() |
#2683 | ||
Игрок
Регистрация: 23.09.2006
Адрес: На Краю Времени
Сообщений: 631
Репутация: 239
|
Цитата:
По поводу второго вопроса я пас. С триггерами был знаком, но больно давно ![]()
__________________
"Carry on, you will always remember Carry on, nothing equals the splendor Now your life's no longer empty Surely heaven waits for you" |
||
![]() |
|
![]() |
#2684 | ||
Новичок
Регистрация: 09.06.2009
Сообщений: 30
Репутация: 2
|
WhiteDeil, http://xgm.ru/files.php?do=search&ti...esc&perpage=50
Добавлено через 1 минуту 2 вопрос - http://xgm.ru/forum/showthread.php?t=20405 Последний раз редактировалось °Silenser°; 18.08.2009 в 21:53. Причина: Добавлено сообщение |
||
![]() |
|
![]() |
#2685 | ||
Новичок
Регистрация: 16.08.2009
Сообщений: 2
Репутация: 0
|
спс... терь не придется создавать по 100 триггеров. Никто не знает как заставить лес падать как только 4 воина встанут на руны (именно 4 а не 1-3 воина) и так чтоб он обратно возрастал где-то в промежутке 30-50сек? у мну или лес не падает либо тут-же вырастает!
|
||
![]() |
|
![]() |
#2686 | ||
Предвестник
Регистрация: 02.05.2007
Адрес: Ростов-на-Дону (")0_0(")
Сообщений: 170
Репутация: 257
|
WhiteDeil,
Вот карта-пример. В ней удовлетворены все твои нужды. Для того чтобы "убить лес" (зона с 4 башнями), нужно поставить Праудмура, Джайну, Келя и Артеса на квадратную поляну перед ними. Лес регенится в промежутке от 30 до 50 секунд. Варик 1.24
__________________
Как из маминой, из спальни, ололо ПЫЩЬ ПЫЩЬ риальнэ... WarCraft III : SURViVAL Map Project Последний раз редактировалось Хорус; 21.08.2009 в 14:45. |
||
![]() |
|
![]() |
#2687 | ||
Новичок
Регистрация: 19.12.2007
Сообщений: 50
Репутация: 6
|
|||
![]() |
|
![]() |
#2688 | ||
Новичок
Регистрация: 30.04.2009
Адрес: г. Омск
Сообщений: 15
Репутация: 1
|
°Silenser°, вот я не совсем согласен с тем что сказано в статье про утечки. Редактор триггеров - это полный аналог jass. Только в нем есть свои + и -, как и в jass. На самом деле в редакторе триггеров можно сделать так, чтобы не было утечек. В статье сказано, что "Periodic Event" вызывает утечки, и что любой юнит даже после смерти продолжает занимать место в памяти. Например я хочу, чтобы волны юнитов шли через каждые 30 сек. Как это сделать по другому? Просто вместо "Periodic Event" сделать "Elapsed Time" (хотя событие можно поставить любое) и поставить цикл:
"For each (Integer A) from 1 to 10000 (к примеру), do actions" Цикл - Действия Боевая единица - Create Units... Wait 30 seconds Это уже не будет вызывать утечек потому, что это цикл. Далее нужно создать целочисленную переменную (назовем ее N и присвоим ей начальное значение = 1), и каждой переменной обозначать каждый последующий создаваемый в цикле отряд. Set N = (N+1) Получится, что первый отряд закодирован 1, второй - 2, третий - 3 и т.д. После этого сделать триггер, который будет контролить момент, когда отряд будет уничтожен и сделать в нем действие "Remove unit from the game". Вот и все. Никаких утечек. Можно еще проще сделать: обозначать переменной не отряд, а каждого отдельного юнита (допустим, если я хочу сделать отряд из 3-х юнитов, то завести на каждого юнита по переменной). Правда в этом случае придется увеличить число триггеров. Но все же утечек не будет. |
||
![]() |
|
![]() |
#2689 | ||
Новичок
Регистрация: 19.12.2007
Сообщений: 50
Репутация: 6
|
Нет.
Цитата:
Легче оптимайзить так (Нужен JNGP): Код:
scope RemoveDiedUnits initializer init private function cond takes nothing returns boolean return not IsUnitType(GetDyingUnit(),UNIT_TYPE_HERO) // чтоб случайно героя не удалить, а то не воскреснет endfunction private function remove takes nothing returns nothing local unit u=GetDyingUnit() call TriggerSleepAction(60.) // скок ждать после смерти call RemoveUnit(u) set u=null endfunction private function init takes nothing returns nothing local trigger t=CreateTrigger() call TriggerRegisterAnyUnitEventBJ(t,EVENT_PLAYER_UNIT_DEATH) call TriggerAddCondition(t,Condition(function cond)) call TriggerAddAction(t,function remove) endfunction endscope |
||
![]() |
|
![]() |
#2690 | ||
Новичок
Регистрация: 30.04.2009
Адрес: г. Омск
Сообщений: 15
Репутация: 1
|
Nekit1234007, насчет "нет" и "дубизм" - пустые слова, ты доказательства выложи, тогда может быть соглашусь. А я вообще-то спрашивал на счет утечек памяти, а ты про них вообще ничего не сказал. И еще, если ты знаешь как создавать через jass, то дай ссылку, где про него можно поподробнее прочитать, либо напиши на мыло.
|
||
![]() |
|
![]() |
#2691 | ||
Новичок
Регистрация: 19.12.2007
Сообщений: 50
Репутация: 6
|
Plastilines, перевод твоего трига в жасс:
Код:
function Trig_SpawnCreeps_Actions takes nothing returns nothing set bj_forLoopAIndex = 1 set bj_forLoopAIndexEnd = 10000 loop exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd call CreateNUnitsAtLoc( 1, 'hfoo', Player(0), GetRectCenter(GetPlayableMapRect()), bj_UNIT_FACING ) call TriggerSleepAction( 30.00 ) set bj_forLoopAIndex = bj_forLoopAIndex + 1 endloop endfunction //=========================================================================== function InitTrig_SpawnCreeps takes nothing returns nothing set gg_trg_SpawnCreeps = CreateTrigger( ) call TriggerAddAction( gg_trg_SpawnCreeps, function Trig_SpawnCreeps_Actions ) endfunction Код:
function spawnUnits takes nothing returns nothing call CreateUnit(Player(0),'hfoo',0.,0.,270.) endfunction function InitTrig_SpawnCreeps takes nothing returns nothing call TimerStart(CreateTimer(),30.,true,function spawnUnits) endfunction Последний раз редактировалось Nekit1234007; 15.12.2010 в 18:42. |
||
![]() |
|
![]() |
#2692 | ||
Новичок
Регистрация: 30.04.2009
Адрес: г. Омск
Сообщений: 15
Репутация: 1
|
Во! Это уже более понятный ответ
![]() |
||
![]() |
|
![]() |
#2694 | ||
Новичок
Регистрация: 11.09.2009
Сообщений: 11
Репутация: 0
|
Цитата:
не увидел обнуления локалки типа триггер А ещё лучше делать событие без бж (имхо цикл лучше,но можно каждому событие отдельно прописывать) Код:
private function init takes nothing returns nothing local trigger t=CreateTrigger() local integer i = 0 loop exitwhen i > 12 call TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_DEATH, null) set i = i+1 endloop call TriggerAddCondition(t,Condition(function cond)) call TriggerAddAction(t,function remove) set t = null endfunction Последний раз редактировалось DragonSpirit; 14.09.2009 в 09:12. |
||
![]() |
|
![]() |
#2695 | ||
Новичок
Регистрация: 19.12.2007
Сообщений: 50
Репутация: 6
|
А мне сдесь не надо чтобы эти функи были в самом верху.
![]() Нет смысла, триггер работает всегда, удаляться не будет. ![]() З.Ы. ты с хгм я тебя знаю =) |
||
![]() |
|
![]() |
#2696 | ||
Новичок
Регистрация: 11.09.2009
Сообщений: 11
Репутация: 0
|
Nekit1234007, я тебя тоже =)
локалки всегда нужно обнулять(производные от хэндла),т.к помимо самого триггера в памяти будет висеть ещё и ссылка на него.... всё равно я предпочитаю библиотеки ![]() |
||
![]() |
|
![]() |
#2697 | ||
Новичок
Регистрация: 19.09.2009
Сообщений: 2
Репутация: 0
|
я не профи по редактору вот и спрашиваю:как мне зделать так чтобы такая та группа появилась там и бежала туда а вторая появилась там и бежала сюда и так неограниченное число раз
![]() Последний раз редактировалось foxford; 19.09.2009 в 13:21. |
||
![]() |
|
![]() |
#2698 | ||
Новичок
Регистрация: 11.09.2009
Сообщений: 11
Репутация: 0
|
foxford, поподробнее плиз
|
||
![]() |
|
![]() |
#2699 | ||
Новичок
Регистрация: 24.09.2009
Сообщений: 1
Репутация: 0
|
Помогите пожалуйста, у меня в редакторе отсутствует функция Game Cache - Save (Last Created Game Cache). Не могу кампанию создать =((
Есть только: Хэш-таблица - Save Gamecache Handle, но я не уверен то ли это и вообще не умею ей пользоваться =(( |
||
![]() |
|
![]() |
|
|