|
|
#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. |
||
|
|
|
|
|
#1861 | ||
|
Юзер
Регистрация: 07.06.2007
Сообщений: 307
Репутация: 14
|
угу... метод 2 мне определенно нравится... не уверен, что на 100% понял как конкретно ты предлагаешь это запустить (что-то башка сегодня туго работает ), но идея мне ясна... надо подумать... вот что нашел за пару минут в гугле: Уравнение окружности: (параметрические координаты) для окружности с центром (j, k) и дариусом r: x(t) = r cos(t) + j ; y(t) = r sin(t) + k Вот только что такое параметрические координаты? Нифига не помню... второй курс был так давно... на этой странице нифига больше не написано... углы в радианах или градусах? Или пофигу? В общем думаю
Последний раз редактировалось Malcolmishe; 25.03.2008 в 20:42. |
||
|
|
|
|
|
#1862 | ||
|
Заблокирован
Регистрация: 12.05.2006
Адрес: Где-то в этой галактике..
Сообщений: 0
Репутация: 14
Предупреждения: 400 |
Из поста 1854 карту кто-нить качал? Хотелось бы услышать отзывы и критику
|
||
|
|
|
|
|
#1863 | ||
|
Юзер
Регистрация: 07.06.2007
Сообщений: 307
Репутация: 14
|
скачал, ща посмотрю. А зачем ты их паролишь?
|
||
|
|
|
|
|
#1864 | ||
|
Заблокирован
Регистрация: 12.05.2006
Адрес: Где-то в этой галактике..
Сообщений: 0
Репутация: 14
Предупреждения: 400 |
Malcolmishe
Ты знаешь, я сам не особо понял что я написал..ща вот сижу и сам думаю...в каком-то порыве написал это)) Но чувство, что если это сделать, то оно будет работать) Ща вникну в твою функцию, отпишусь Добавлено через 48 секунд Да н езнаю..чтоб левые люди не качали))Только с форума) Ведь мне по ка оценка нужна, а не распространение Добавлено через 5 минут http://edu.ioffe.ru/register/?doc=physica/lect.ch3.tex Вот это надо вкурить и все будет понятно..я ща попробую пока наваять более менее правильную систему триггеров с этой формулой Добавлено через 8 минут Вопрос!! Косинус и синус умеет джасс считать??И как это записывать? Последний раз редактировалось 3D Designer; 25.03.2008 в 20:42. Причина: Добавлено сообщение |
||
|
|
|
|
|
#1865 | ||
|
Юзер
Регистрация: 07.06.2007
Сообщений: 307
Репутация: 14
|
Ок, тачай. И я тоже попробую. Потом сравним.
|
||
|
|
|
|
|
#1866 | ||
|
Заблокирован
Регистрация: 12.05.2006
Адрес: Где-то в этой галактике..
Сообщений: 0
Репутация: 14
Предупреждения: 400 |
x=r*cos(a)
y=r*sin(a) Исходя из этого мы можем легко находить координаты точек, куда должен двигаться юнит!!! Ура геометрии!! Осталось проверить, поддерживает ли этот бред джасс Добавлено через 1 минуту Иначе ща нету смысла делать что-то Добавлено через 2 минуты Хотя..можно посчитать уже готовые значения на каждые 0, 5 ,10, 15 градусов..но тогда уже проще делать просто областями и не заморачиваться. Добавлено через 13 минут Я пока ничего не делаю..до выяснения этих моментов. Последний раз редактировалось 3D Designer; 25.03.2008 в 20:59. Причина: Добавлено сообщение |
||
|
|
|
|
|
#1867 | ||
|
Юзер
Регистрация: 14.06.2005
Сообщений: 188
Репутация: 20
|
Великое уравнение окружности знать надо (x^2+y^2=R^2) =)) и не обязательно лезть в полярные координаты:
Код:
function Trig_Go_Actions takes nothing returns nothing
if udg_i == 0 then - верхняя полуокружность
set udg_t = ( udg_t + 100.00 )
if ( udg_t >= udg_R ) then
set udg_i = 1
else
set udg_y = SquareRoot(udg_R*udg_R - udg_t * udg_t)
endif
endif
if udg_i == 1 then - нижняя полуокружность
set udg_t = ( udg_t - 100.00 )
if ( udg_t <= -udg_R ) then
set udg_i = 0
else
set udg_y = -SquareRoot(udg_R*udg_R - udg_t * udg_t)
endif
endif
call IssuePointOrderLocBJ( gg_unit_hfoo_0000, "move", Location(udg_t, udg_y))
endfunction
//===========================================================================
function InitTrig_Go takes nothing returns nothing
set gg_trg_Go = CreateTrigger( )
call TriggerRegisterTimerEventPeriodic( gg_trg_Go, 0.50 )
call TriggerAddAction( gg_trg_Go, function Trig_Go_Actions )
endfunction
Ну, вот собсно карта: http://slil.ru/25618450 |
||
|
|
|
|
|
#1868 | ||
|
Заблокирован
Регистрация: 12.05.2006
Адрес: Где-то в этой галактике..
Сообщений: 0
Репутация: 14
Предупреждения: 400 |
GadenbIsh
Гымс))Прикольно, работает. Ток че-то смысла кода я не очень понял..ну да ладно..примерно понятно. |
||
|
|
|
|
|
#1869 | ||
|
Юзер
Регистрация: 14.06.2005
Сообщений: 188
Репутация: 20
|
Алгоритм прост.
Есть две переменные т (считай х) и у. А также i. Если i = 0 то описываем верхнюю полуокружность, если = 1, то нижнюю. Каждую 0.50 секунды увеличиваем х на шаг. высчитываем y по формуле: y = Корень(R^2 - t^2) У нас есть координаты следующей точки.. Отправляем туда юнита Так он опишет первую вернхюю полуокружность. Когда сравняется с радиусом (т.е. полуокрожность описана), то делаем i = 1 и начинаем вычитать из t шаг, а Y высчитывать по той же формуле только с минусом. Когда T<-R, тогда мы описали нижнюю и пора бы описать верхнюю, i снова меняется на 0 и все идет сначала. |
||
|
|
|
|
|
#1870 | ||
|
Юзер
Регистрация: 07.06.2007
Сообщений: 307
Репутация: 14
|
GadenbIsh
скачал. В джасе я почти 0, так что как сделано не понял. В принципе работает, но юнит выписывает скорее не окружность, а эллипс, вытянутый наискосок. И в левом нижнем и правом верхнем краях делает довольно резкий поворот. вот что получилось у меня: http://ifolder.ru/5881342 без джаса, но через периодик евент. К тому же не оптимизировано. Судя потому, что я читал на хгм мой вариант через часок-другой игры может капитально засрать память. Я особо в подробности не вдавался, но на сколько понял, оптимизировать не так уж трудно. Добавлено через 2 минуты Причем неожиданно для себя сделал сие творение без всяких синусов и косинусов. Просто полярные кородинаты и прибавление постоянной величины к углу. Чтобы переменную "угол" не зашкалило, каждый раз, когда она становится равна 360 задаю ей значение 0 Последний раз редактировалось Malcolmishe; 25.03.2008 в 22:08. Причина: Добавлено сообщение |
||
|
|
|
|
|
#1872 | ||
|
Юзер
Регистрация: 07.06.2007
Сообщений: 307
Репутация: 14
|
А моя версия как? Совсем нубская, или я не безнадежен?
3D Designer интересно всетаки посмотреть твой вариант. |
||
|
|
|
|
|
#1873 | ||
|
Заблокирован
Регистрация: 12.05.2006
Адрес: Где-то в этой галактике..
Сообщений: 0
Репутация: 14
Предупреждения: 400 |
|||
|
|
|
|
|
#1875 | ||
|
Заблокирован
Регистрация: 12.05.2006
Адрес: Где-то в этой галактике..
Сообщений: 0
Репутация: 14
Предупреждения: 400 |
GadenbIsh
Я прост ов джассе не 0, а даже -1))) Раз так, ща попробую замутить. Скоро баиньки, так может седня-может завтра выложу |
||
|
|
|
|
|
#1876 | ||
|
Юзер
Регистрация: 07.06.2007
Сообщений: 307
Репутация: 14
|
Гыыы. Я тоже хотел через синусы сделать, правда немного иначе чем ты. Я собирался сделать с событием "юнит входит в регион" и регион обозначать координатами, но как оказалось в события нельзя вставлять переменные. Так что оставалось делать через периодик с проверкой. Зато случайно заметил/вспомнил/сообразил, что можно просто к углу прибавлять...
О! Только что придумал! Можно делать регион в редакторе и перемещать его в целевую точку, и только тогда уже запускать триггер с событием "юнит входит в регион"... может сработать. |
||
|
|
|
|
|
#1878 | ||
|
Заблокирован
Регистрация: 12.05.2006
Адрес: Где-то в этой галактике..
Сообщений: 0
Репутация: 14
Предупреждения: 400 |
Malcolmishe
Ты знаешь, очень даже логично у тебя получилось!! Довольно просто и понятно! ПОлучается радиус окружности можно изменять, меняя у Wait параметр, а ...количество сторон параметром angle=angle+X!! Круть! |
||
|
|
|
|
|
#1879 | ||
|
Юзер
Регистрация: 07.06.2007
Сообщений: 307
Репутация: 14
|
Неа, фигушки! С регионом не работает!!
![]() Добавлено через 8 минут 3D Designer не, радус надо менять не вэйтом. Там вообще вэйта нет, есть периодик эвент. И чем меньше там будет число, тем менее "дерганым" будет движение (т.е. будут меньше остановки). А радиус надо менять, меняя параметр "радиус" во всех полярных координатах. А на счет сторон - ты прав. Вот только с оптимизацией бяда. Добавлено через 14 минут ой! И правда! ![]() Добавлено через 19 минут А как лучше проверку сделать? Я думал может что-то типа "юнит остановился" или "юнит закончил выполнять приказ", но ничего такого не нашел... Добавлено через 3 часа 41 минуту 3D Designer Поигрался в твою мапу. Ну вроде ниче так. Я вообще не особо ценитель РТС, за очень редким исключением, и варя - одно из них. По большей части варя мне в свое время приглянулась из-за элементов РПГ и шикарнейшего редактора, позволяющего не только новые ландшафты рисовать, но создавать почти все, что в голову взбредет. Так что для меня почти все melee мапы практически одинаковы. И твоя не хуже большинсва. Вот. Последний раз редактировалось Malcolmishe; 26.03.2008 в 02:25. Причина: Добавлено сообщение |
||
|
|
|
|
|
#1880 | ||
|
Юзер
Регистрация: 22.12.2007
Адрес: Мясокомбинат
Сообщений: 214
Репутация: 63
|
Цитата:
Кто нибудь киньте ссылку на карту ЛСкой Заранье спс
__________________
Стреляю по Собакам и Кроликам http://www.tf2items.com/id/sahab95 |
||
|
|
|
|
|
|