XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Барахолка
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Vedun

offline
Опыт: 2,809
Активность:
Заклинания War3
Заклинание "Порочный круг".
В указанном создаётся круг из рун. Через него не могут пройти ни враги, ни вы, ни ваши союзники. Руны атакуют ваших врагов. Круг может служить как защитой для вас, так и тюрьмой для ваших врагов. Действие круга длиться 15, 30 и 45 секунд (зависит от вашего уровня).
Так как заклинание написано на JASS, можно создавать сколько угодно Кругов и все они исчезнут вовремя.

Vedun добавил:
Вот заклинание...

Отредактировано MapMan, 03.06.2006 в 05:29.
Старый 02.06.2006, 12:08
Toadcop

offline
Опыт: 54,313
Активность:
Vedun молодец =) ! может кому то понадобитьса ;)
Старый 02.06.2006, 12:11
Vedun

offline
Опыт: 2,809
Активность:
Toadcop, спасибо! Но если кто не заметил - там есть небольшая ошибка: из круга могут выходить обычные юниты. Я это исправил. Кидаю новый файл.
Прикрепленные файлы
Тип файла: w3x Porochniy Krug.w3x (39.0 Кбайт, 70 просмотров )
Старый 02.06.2006, 13:07
remal
нечто
offline
Опыт: 2,087
Активность:
1
Код:
if udg_Level == 1 then
set l = 15
endif
if udg_Level == 2 then
set l = 30
endif
if udg_Level == 3 then
set l = 45
endif
заменяется на
Код:
set l = udg_Level * 15


2
УТЕЧКИ!!! 370 локаций на каждый каст

3
что мешет передавать юнита-катера (или цель - не разбирался) в ПАРАМЕТРАХ функции? зачем использовать глобальную переменную?

4
set loc = PolarProjectionBJ(udg_C, 300.00, ( I2R(s))) зачем преобразовывать к дробному числу?

5
используй декорации с картами путей и не ставь их 360 штук. можно обойтись значительно меньшим кол-вом

6
переменная int нигде не используется, кроме как в set int= (s * 36 )

7
что мешает делать условия выхода так:
exitwhen s > 10
???
зачем использовать лишнюю переменную

8
Код:
if udg_Level == 1 then
set l = 15
endif
if udg_Level == 2 then
set l = 30
endif
if udg_Level == 3 then
set l = 45
endif
даже если и оставить такой вариант, то это в любом случае надо заменить на
Код:
if udg_Level == 1 then
set l = 15
elseif udg_Level == 2 then
set l = 30
elseif udg_Level == 3 then
set l = 45
endif



9
и научись оформлять код нормально! отступы ставить надо не через заднюю точку.
Старый 02.06.2006, 13:54
Vedun

offline
Опыт: 2,809
Активность:
Я всё таки не профи. Вообще недавно JASS начал изучать!

Vedun добавил:
А за примечания - спасибо!

Vedun добавил:
И ещё... remal, как, на самом деле, код оформлять? Я, когда в Дельфях писал, ничё не оформлял, привычка осталась.
Старый 02.06.2006, 14:42
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Vedun, когда накладываются два круга происходит горестный баг - вторая фигура уже мало чем напоминает круг.. Еще кастовать можно за пределы карты - нотгут.
А как понять оформлять?
Сокращай к минимуму кол-во текста, пусть будет побольше циклов. А то там у тебя много лишнего, что можно уместить в один повтор.
Старый 02.06.2006, 14:51
NETRAT

offline
Опыт: 83,712
Активность:
Vedun внешние jass редакторы используешь? В большинстве из них есть функция indent text - для выставления отступов перед строками(автоформатирование)
Старый 02.06.2006, 15:36
Vedun

offline
Опыт: 2,809
Активность:
NETRAT, я не использую jass редаторов, всё пишу вручную. Просто некоторые функции я конвертировал из обычных триггеров World Editor'а.

remal, я попытался удалить утечки и вобще подправить код, что получилось снова скидываю. Я не смог убрать один баг: некоторые руны в круге сами по себе передвигаются на другое место, хотя модель руны остаётся на месте (передвижение можно отследить по кругу выбора). Получается некрасиво. Может кто поможет, а?
Прикрепленные файлы
Тип файла: w3x Porochniy Krug.w3x (38.9 Кбайт, 48 просмотров )

Отредактировано Vedun, 02.06.2006 в 16:47.
Старый 02.06.2006, 16:16
DioD

offline
Опыт: 45,134
Активность:
Боянисто, если руни двигаются, значит их слишком многа.
Старый 02.06.2006, 16:55
Vedun

offline
Опыт: 2,809
Активность:
Чё значит много? Я их всего 10 штук поставил!
Старый 02.06.2006, 17:06
DioD

offline
Опыт: 45,134
Активность:
Значит питчинг сизе у них большой, а стоят они близко
Старый 02.06.2006, 17:15
NETRAT

offline
Опыт: 83,712
Активность:
Верно - физический размер слишком большой - или измени его или дай рунам способность москитов
Старый 02.06.2006, 18:01
Vedun

offline
Опыт: 2,809
Активность:
Щас испробуем! Сенкью!

Vedun добавил:
Не катит физический размер! А вот с мокитами вышло!
Старый 02.06.2006, 18:41
J
expert
offline
Опыт: 48,447
Активность:
Vedun я полность переделал твой спел, сделал его таким каким он мне радует глаз, но джазом я не владею, потому я сделал его на тригах, потому его может использовать только 1 юнит. сделай так чтобы его могли использовать сразу несколько...

Porochniy Krug_переделанный v1.2

Отредактировано Jon, 03.06.2006 в 13:36.
Старый 02.06.2006, 21:18
Vedun

offline
Опыт: 2,809
Активность:
Jon, реально! Но нужно сделать небольшой промежуток времени: когда используешь заклинание от мага летит снаряд, нужно подождать, пока он долетит до нужного места и использовать заклинание. Я его создал то для практики, без всяких эффектов.

Vedun добавил:
Но ты забыл ещё кое что: в оригинале внутри круга можно спрятать своего героя, что бы его не атаковали.

Vedun добавил:
Если сегодня доделать успею - перешлю.

Vedun добавил:
Jon, а идею с юнитом-эффектом сам придумал, или кто подсказал? Мне такое в голову не приходило...
Старый 02.06.2006, 21:51
J
expert
offline
Опыт: 48,447
Активность:
Цитата:
Jon, а идею с юнитом-эффектом сам придумал, или кто подсказал? Мне такое в голову не приходило...

Я почти ВСЕГДА использую в спелах юнит-эфект
Цитата:
Но ты забыл ещё кое что: в оригинале внутри круга можно спрятать своего героя, что бы его не атаковали.

не забыл, если внутри вражеские юниты то для этого (наносит урон всем кто в круге = 180урона)
а если юниты снаруже то обращаю внимание на это (все руны взрываясь наносят урон = 60)

Ты почитай хорактеристику спела, так как я там добавил еще половину...
Старый 02.06.2006, 22:19
Vedun

offline
Опыт: 2,809
Активность:
Я заметил, что повреждения союзникам не наносяться. Но как это поймёт тот, кто не разбирается в тригах? Можно добавить на своих юнитов в круге какой-нибудь эффект (типа щита).
И ещё. Я сам недавно начал JASS учить, и не могу перевести в код действие: Pick every unit in Unit Group. Не знаешь, кот может помочь разобраться?
Старый 03.06.2006, 10:55
J
expert
offline
Опыт: 48,447
Активность:
надо создать отдельную функцию в которой должны находится действия которые будут внутри этого действия, и с помощью кода:
запустить ее
Код:
call ForGroupBJ( GetUnitsInRectAll(GetPlayableMapRect()), function <имя твоей функции> )

GetPlayableMapRect() - это в каком регионе будут происходить действия, подсталяй какой хошь.
Старый 03.06.2006, 10:59
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Vedun Pick every unit in Unit Group реализован через цикл. Первеведи триггер в текст, разберешся (Правка\Конвертировать в текст). Для юнита из группы в цикле используется переменная EnumUnit.

FellGuard добавил:
Кстати, Jon, у тебя тот же баг, что и у Vedunа. Если кастовать спелл возле границы карты - юниты-руны собираются в кучу. Апроблему может решить TurnCollisionsForUnit Off - триггеры,
аналог в джассе - SetUnitPathing(unit, false)

Отредактировано FellGuard, 03.06.2006 в 11:23.
Старый 03.06.2006, 11:11
Vedun

offline
Опыт: 2,809
Активность:
Jon, у тебя там есть условие типа Boolean, когда я пытаюсь сделть условие (юнит не равен) == true (это в общем виде), Ворлд Едитор выдаёт несоответствие типов.
Старый 03.06.2006, 11:15
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 18:42.