EvilAvil
Караульный смерти
offline
Опыт:
3,721Активность: |
Wave generation
Wave GenerationВступление:Данная система может быть использована в таких жанрах как: TD, Defense, Survival, Rpg, Aeon, Aos, CreepWars и во всех где требуется динамично создавать врагов.
В системе есть множество достойнств например:Скорость работы: система не тормозит даже на компьютерах с тактовой частотой 1ггц.
Обширность волн: система поддерживает до 8000 волн одновременно от 1 до 999 юнитов в каждой (также бесконечные волны). Удобство использования: чтобы создать волну достаточно просто задать нужные параметры. Приятный вид: юниты не создаются кучей, а аккуратно и быстро появляются по одному. Разносторонее применение: систему можно использовать во всех картах, где имеются юниты. Но конечно в системе присутствуют и недостатки:Боссов приходится создавать отдельной волной.
Инструкция:Если вы хотите использовать эту наработку в своей карте скопируйте Custome Code карты и создайте (или опять же скопируйте) триггер WaveInI, ну и добавить меня в благодарности :)
ник: Avilll или EvilAvil как Вам удобнее. Успехов !
» WGen
Это основная функция с которой вам придётся работать, с помошью неё вы сможете сгенерировать любую волну.
WGen (gg_rct_1,'hfoo',999,-333,-555,Player(13)) 1. gg_rct_1 Регион, где будут создаватся юниты 2. 'hfoo' Тип создаваемых юнитов 3. 999 Число создаваемых юнитов на волну. (если 999 юнитов и болша волна становится вечной) 4. -333 Координата цели по оси X 5. -555 Координата цели по оси Y 6. Player(13) Игрок которому будут принадлежать созданные юниты
» Код:
((код jass
globals
integer array sput [8000] integer array spnu [8000] integer array spx [8000] integer array spy [8000] player array sppl [8000] rect array spre [8000] integer splast=0 timer t=CreateTimer() endglobals function WGen takes rect re,integer ut,integer nu,integer x,integer y,player pl returns nothing
splast=splast+1 sput[splast]=ut spnu[splast]=nu spre[splast]=re sppl[splast]=pl spx[splast]=x spy[splast]=y endfunction function WNull takes integer num returns nothing
sput[num]=0 spnu[num]=0 sput[num]=sput[splast] spnu[num]=spnu[splast] spre[num]=spre[splast] sppl[num]=sppl[splast] splast=splast-1 endfunction function Wave takes nothing returns nothing if splast>0 location l unit u integer A real x,y A=0;loop;exitwhen A>splast x=GetRandomReal(GetRectMinX(spre[A]),GetRectMaxX(spre[A])) y=GetRandomReal(GetRectMinY(spre[A]),GetRectMaxY(spre[A])) l=Location(x,y);x=0;y=0 u=CreateUnitAtLoc(sppl[A],sput[A],l,bj_UNIT_FACING) IssuePointOrder(u,"attack",spx[A],spy[A]) u=null;l=null if spnu[A]<999 spnu[A]=spnu[A]-1;if spnu[A]<1;WNull(A);endif else spnu[A]=999 endif A=A+1;endloop;A=0; RemoveLocation(l) endif TimerStart(t,2,false,function Wave) endfunction )) Отредактировано EvilAvil, 16.07.2011 в 01:17. |
15.07.2011, 18:40 | #1
+0/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
Мешанина сжасса и жасса - заведомая хрень. bj - заведомая хрень. один рект и тип юнита на волну - нывыпоняли. |
15.07.2011, 18:43 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
EvilAvil
Караульный смерти
offline
Опыт:
3,721Активность: |
тыкни где тут cJass предложения по улучшению > критики |
15.07.2011, 18:47 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
facepalm. отсутствие local, call и set, semicolons using -> cjass.
Предложения? Делаешь все красиво, через структуры, с возможностью спавна в нескольких ректах нескольких типов юнитов в одной волне, убираешь все бж и оптимизируешь, доводишь до полноценной системы в общем. |
15.07.2011, 19:52 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
EvilAvil
Караульный смерти
offline
Опыт:
3,721Активность: |
лишняя писанина, всё и так работает таки не проще ли создать просто несколько волн ? (не думаю, что кто то сможет использовать однавременно более 8к волн) насчёт структур, да мысль |
15.07.2011, 20:01 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
prog
offline
Опыт:
32,865Активность: |
EvilAvil, возможность не писать local,call, set это ТОЛЬКО БЛАГОДАРЯ CJASS
если это та штука которую ты мне кидал в скайпе, то реализовано так себе |
15.07.2011, 21:07 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
silumin
offline
Опыт:
11,153Активность: |
EvilAvil, уже не свежо... Подобную наработку я делал оч давно, правда по некоторым причинам удалил с сайта, но это не важно.
Я использовал текст-программу в которой можно было задавать: кол-во волн, относительная задержка каждой волны, типы юнитов в одной волне и их кол-во, позиции накоторых будут создаваться юниты. И это была версия с функционалом, реализованным на 60-70%... Вот пример текст-программы: Цитата:
|
|
15.07.2011, 21:14 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
EvilAvil
Караульный смерти
offline
Опыт:
3,721Активность: |
таки не удобно же ... я создавал для упрощения создания волн не для расширения функционала ... |
16.07.2011, 00:23 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Master_chan
Полуночный командир
offline
Опыт:
15,660Активность: |
Моё мнение что это не нужно. Создайте систему с кнопкой "Сделать доту" и получите поток говнокарт по типу "Дота но с моей мега фишечкой".
За системы буду признавать только именно системы как то дгуи или полноэкранный инвентарь. А не одну функцию выполненную черти как и ориентированную на сказочных ... персонажей (каких тут кстати в достатке). |
16.07.2011, 01:47 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
EvilAvil
Караульный смерти
offline
Опыт:
3,721Активность: |
Чего и добиваюсь.
Допустим я обычный пользователь, в моих руках лишь небольшие познания в редакторе и триггерах но огромное желание сделать свою карту. Что я буду делать ? Годами учится и познавать чтобы создать одну из ? Нет мне нужна кнопка ! И я сделаю им такую кнопку для TD и HD. |
16.07.2011, 02:11 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
пока-что твоя кнопка коричневого цвета. |
16.07.2011, 03:01 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
EvilAvil
Караульный смерти
offline
Опыт:
3,721Активность: |
бывает что уж |
16.07.2011, 03:16 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Helpmeplz
offline
Опыт:
11,738Активность: |
либо пиши все только на vJass либо только на cJass. код нечитабельный.
названия настраиваемых переменных должны говорить о том для чего они служат. чтобы не заглядывать в "мануал системы" каждый раз когда присваиваешь этой переменной значение. |
16.07.2011, 04:03 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
EvilAvil
Караульный смерти
offline
Опыт:
3,721Активность: |
sput = sp+unit type
spnu = sp+number spx = sp+x spy = sp+y sppl = sp+player spre = sp+rect splast = sp+last таки недостаточно понятные названия ? |
16.07.2011, 11:11 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
SomeFire
Всего 20 символов...
offline
Опыт:
26,884Активность: |
EvilAvil, тем, кто разбирается в jass, твоя система не нужна, т.к. сами себе могут сделать. А тем, кто не может сделать, надо всё разжевывать. |
16.07.2011, 12:17 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
EvilAvil
Караульный смерти
offline
Опыт:
3,721Активность: |
SomeFire, мануал довольно подробный и система просто в установке(писал именно для тех кто не разбирается в jass (смотрим ап пост)) |
16.07.2011, 16:22 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Elf_Stratigo
offline
Опыт:
4,699Активность: |
EvilAvil:
то что ничего не произойдёт пока не будет вызвана функция Wave нигде не сказано причём дальше это самое будет происходить без какой либо возможности контроля с очень большой вероятностью у jass-новичка не будет cjass
следующей проблемой станет дублирование декларации переменной с именем t ну а читаемости нету никакой: блоки кода не выделены, развилки оформлены по разному, имена не несут какого-либо смысла
далее идёт утечка точки, которая создаётся зачемто... имхо, реализация ужас
ха, спалил обнуление инта под конец))))
рандом кста не делает появление аккуратным, ну ни как, только разве что рандомным, но не аккуратным Отредактировано Elf_Stratigo, 16.07.2011 в 19:02. |
16.07.2011, 18:56 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
EvilAvil
Караульный смерти
offline
Опыт:
3,721Активность: |
исправлю не заметил встань в очередь ) придётся переделать чисто на vJass ._." |
16.07.2011, 22:38 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
prog
offline
Опыт:
32,865Активность: |
EvilAvil, vjass новичка тоже не будет) |
16.07.2011, 23:04 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
EvilAvil
Караульный смерти
offline
Опыт:
3,721Активность: |
думаю мануал и gui триггер, помогут как то исправить положение |
17.07.2011, 01:36 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|