AlexKARASb
Learning cpp
offline
Опыт:
22,103Активность: |
LostCoast, угу
ADOLF, создать глобалку какого типа? что в нее занести? если я правильно ткнул пальцем в небо то наверно globals unit Caster end globals Вай вай вай как вы этому научились? неможет же быть что также пальцем в небо О.О |
31.01.2010, 00:41 | #41
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Garret
Недоброе творится
offline
Опыт:
3,893Активность: |
задроты такие задроты... Раз этот цикл выполняется "чуточку быстрее", то также можно было избавиться и от квадратного корня... А вообще я предпочитаю (фанфары! сейчас польются ушаты... кхм, нелицеприятной жидкости) просто создавать событие на на вхождение юнита в радиус и делать всё в нём... (сейчас даже сделал тестик на ста юнитах - с событием 50-60 фпс, с пиком посекундным 40-50 фпс, а при добавлении действия к триггеру / добавления буллэкспа с простым возвращением лжи фпс падал аж до 50-60 фпс в первом случае и до (омг!) 0.5 во втором случае). Хотя мб у меня просто руки кривые и я не прав, мб умные люди пояснят. Именно! Был хитрый тест. Юниты двигались параллельно, благодаря чему постоянно пикались. В условиях, когда никто постоянно не пикается (как в первом случае и как у автора темы), фпс примерно один и тот же, разве что (на мой хитрый взгляд :D) во втором способе чуть-чуть медленнее. Однако данные условия могут вдруг окзазаться не искусственными, к примеру, для создания какого-либо спецэффекта с множеством маленьких снарядов. А ещё лучшим я считаю сделать группу / массив (надо будет проверить, что быстрее), которая по одному таймеру будет пикаться и юниты в ней будут перемещаться. (для группы вешание аттачей идёт также через массивы, а индекс массива через юзердату) Жду злостного мочилова моих решений xD |
31.01.2010, 03:37 | #42
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
AlexKARASb
Learning cpp
offline
Опыт:
22,103Активность: |
Garret, друг я тя оч прошу тема для обьяснения, а не для сравнения что быстрее, длиннее или еще что-то подобное -.-
|
31.01.2010, 11:04 | #43
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
SRes
1110101000
offline
Опыт:
9,997Активность: |
Перебор через цикл - удобно, по скорости явно не тормознуто, гемороя в 100500 раз меньше. Прошу кого-либо провести ТОЧНЫЕ тесты скорости ForGroup и цикл. Если разница будет в бедные 10 милисек, то задумайтесь, господа, это давно неважно. |
31.01.2010, 11:36 | #44
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
Самый предельно быстрый способ это невыбор юнитов в статичную группу через подгружаемые функции.
хотелось бы отметить что нативки быстрее переменных (касается статичных вроде Filter Condition Player)
при триггере с событиями на вхождение в радиус вы теряете как минимум 50% производительности так как события будут срабатывать всегда по два нагружая ядро.
если тебе нужны точные результаты сам и протестируй. |
31.01.2010, 12:04 | #45
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
AlexKARASb
Learning cpp
offline
Опыт:
22,103Активность: |
через цикл разобрался как делать, а через дополнительную функцию Энейна чет не выходит =\
+ и слова Адольфа:"дейсвия тригера переноси через глобалки ", тоже не дохоят до моей тугодоходящей головы Ну да ладно думаю через месяцок другой поближе узнаю jass и вернусь к этому вопросу, а пока буду использовать циклы. Думаю тему можно закрывать. Спасибо всем за помощь |
31.01.2010, 13:23 | #46
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Enein
Silenced by ZlaYa1000
offline
Опыт:
43,681Активность: |
цикл как минимум намного медленней да?.. :/ |
31.01.2010, 13:46 | #47
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
SRes
1110101000
offline
Опыт:
9,997Активность: |
Цитата:
Допустим, откуда такая инфа ? Поэтому я и попросил дать точные цифры, мне это не надо - но чтобы вы убедились. Цитата:
Нелогично, переменная жрет немного памяти, а нативка вызывает функцию. |
||
31.01.2010, 14:33 | #48
+0/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
AlexKARASb
Learning cpp
offline
Опыт:
22,103Активность: |
что б не плодить тем при создании контейнера globals endglobals, внутри записывая переменные, их нужно предварительно создать в редакторе триггеров? |
31.01.2010, 16:03 | #49
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
XOR
offline
Опыт:
38,284Активность: |
Нет разумеется, оно наоборот предназначенно для удобства |
31.01.2010, 16:09 | #50
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
AlexKARASb
Learning cpp
offline
Опыт:
22,103Активность: |
ясно спасибо |
31.01.2010, 16:10 | #51
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
AlexKARASb
Learning cpp
offline
Опыт:
22,103Активность: |
Извиняюсь если для этого не создал тему(думаю что это продолжение этой)
Вот при этом таймере с циклом » раскрыть ffunction JTKTimerMove takes nothing returns nothing local timer t=GetExpiredTimer() local integer i = GetHandleId(t) local unit Dummy = LoadUnitHandle(udg_Hash,i,2) local group gr = CreateGroup() local real XC = LoadReal(udg_Hash,i,0) local real YC = LoadReal(udg_Hash,i,1) local real Angle = LoadReal(udg_Hash,i,3) local real XN = GetUnitX(Dummy) local real YN = GetUnitY(Dummy) local effect e=AddSpecialEffect("Abilities\\Spells\\Human\\FlameStrike\\FlameStrike1.mdl",XN+20*Cos(Angle),YN+20*Cos(Angle)) local unit tr call SetUnitX(Dummy, XN+30*Cos(Angle)) call SetUnitY(Dummy,YN+30*Sin(Angle)) call SaveReal(udg_Hash,i,4,XN) call SaveReal(udg_Hash,i,5,YN) call GroupEnumUnitsInRange(gr,XN,YN,300,null) loop set tr = FirstOfGroup(gr) exitwhen tr == null if IsUnitEnemy(tr,Player(0)) then call UnitDamageTarget(Dummy,tr,5,true,false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC, null) call GroupRemoveUnit (gr, tr) else call GroupRemoveUnit (gr, tr) endif endloop if SquareRoot((XN-XC)*(XN-XC)+(YN-YC)*(YN-YC))>3000 then call DestroyEffect(e) set e = null call KillUnit(Dummy) call DestroyGroup(gr) set gr = null call FlushChildHashtable(udg_Hash, i) call PauseTimer(t) call DestroyTimer(t) set t = null endif call TriggerSleepAction(1) call DestroyEffect(e) set e = null endfunction боже какой я кривой код слепил как проверить удалился ли эффект? |
31.01.2010, 22:38 | #52
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
XOR
offline
Опыт:
38,284Активность: |
Принтф. Проверка не убил ли слип поток выводом текста. |
31.01.2010, 22:48 | #53
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
AlexKARASb
Learning cpp
offline
Опыт:
22,103Активность: |
XiMiKs, Принтф это что?
тоесть сделать текстовое сообщение после вейта? эх ;( не удалился |
31.01.2010, 22:53 | #54
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
XOR
offline
Опыт:
38,284Активность: |
Да |
31.01.2010, 22:55 | #55
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
AlexKARASb
Learning cpp
offline
Опыт:
22,103Активность: |
омг омг омг
спасибо всем за большую помощь задержка какая у меня =)) Энейн очень помог спасибо тебе да и всем остальным Карта не запускалась ТУПО из-за того что я не сохранял ее перед запуском ;) незнаю может лишнее, мне кажется это тонкую часть обьявления глобалок как сохранение кинуть в статью если не ошибаюсь ADOLF'a |
05.02.2010, 00:09 | #56
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|