Zanozus
Уехал учиться
offline
Опыт:
8,512Активность: |
сори, значит совпадение. =) |
03.07.2011, 16:17 | #21
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Helpmeplz
offline
Опыт:
11,738Активность: |
голосовал конечно же за 16GB.
красиво, интересно. сделал заметку для нового героя в impossible siege 2. у Nerevar слишком просто. больше нечего сказать. |
03.07.2011, 17:22 | #22
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
prog
offline
Опыт:
32,865Активность: |
16GB
достаточно оригинально и эффектно, вызывает желание пойти сделать карту, в которую вписалась бы подобная способность Nerevar по сути - обычный дамми-каст, ничего кроме воспоминаний об унылых картах где надо перебить 100500 мобов не вызывает |
03.07.2011, 17:24 | #23
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FKoFF
Venomancer 89lvl. Europe
offline
Опыт:
5,975Активность: |
Конечно у 16GB достойный спелл, однако слова Manhun1, о том что это смогут реализовать единицы - ложь, не такой уж и сложный этот спелл, что впрочем не мешает ему быть достаточно зрелищным и интересным на вид.
одно замечание по исполнению - слишком много лишних функций (string hash) которая так же как I2S не имеет смысла (I2S("pew")=='pew')
В связи с этим:
Jass: 4\5 Реализация Задумки: 5\5, ибо рационально. Зрелищность: 4.3\5, Потому как есть один косяк. Ракеты не имеют инерции, тобишь когда цель умирает, ракеты вдруг начинают плавную посадку, хотя угол между ракетой и целью был под 270 градусов считая с горизонтального нуля. Идея: 3\5, потому как все достаточно банально; обычный DD спелл, однако изысканное исполнение не слабо повышает его цену. Итого: 4+5+4.3+3 \ 20 = 4\5 Спелл Nerevar
Код:
заставляют ощущать неопытность автора.
Так же строка:
Автор по всей видимости даже не подозревает о том что команда I2R бессмысленна, и что целые числа вполне можно вписывать без неё в формулы оперирующие real числами.
Так же бессмысленна local group g=CreateGroup() потому как лишние объекты нам ненужны, а шансы коллизии групп при моментальном их очищении равны нулю.
""
(GetWidgetLife(f) > 0.405)
"" IsUnitType(f,UNIT_TYPE_DEAD)==false работает быстрее и не срабатывает если юнит находится под реинкарнацией. Далее следим за комментариями:
((код jass
call GroupEnumUnitsInRange(g, tx, ty, 300, null)
loop set f = FirstOfGroup(g) exitwhen f == null if IsPlayerEnemy(GetOwningPlayer(caster), GetOwningPlayer(f)) and (GetWidgetLife(f) > 0.405) and IsUnitType(f, UNIT_TYPE_STRUCTURE) != true and IsUnitType(f, UNIT_TYPE_MECHANICAL) != true and IsUnitType(f, UNIT_TYPE_ANCIENT) != true and IsUnitType(f, UNIT_TYPE_MAGIC_IMMUNE) != true then set remove=LoadInteger(udg_ah,GetHandleId(f),S2I("remove"))+1 set t=CreateTimer() t в последствии не обнуляется; == утечка. set id=GetHandleId(t) call UnitAddAbility( f , 'A001' ) call SetUnitAbilityLevel(f,'A001', level ) call SaveInteger(udg_ah,GetHandleId(f),S2I("remove"),remove) 'remove' было бы более быстрым, потому как это было бы сразу интегерное число, в которое, к слову, и превращается S2I("remove") call SaveUnitHandle(udg_ah,id,1,f) call TimerStart(t,6.,false,function fire_rocket_m) щито это за дьявольский бред выше? Не проще ли написать отдельную НОРМАЛЬНУЮ функцию на добавление абилы юниту? call GroupRemoveUnit(g, f) else call GroupRemoveUnit(g, f) endif call GroupRemoveUnit(g,f) следует вынести вообще за пределы ифзена. endloop )) Но это еще не все; автор пользуется техникой смещения массивов на хэштаблице, это все равно что катить машину в ручную, когда у неё есть колеса и топливо. Jass: 1.3\5, все описано выше
Реализация задумки: 1.\5, стун и пожар можно сделать на джасс без использования дамми юнитов и лишних абил, а соответственно колоссально увеличить производительность этих моментов. Зрелищность: 2.\5, это мы уже видели неоднократно. Идея: 2.\5, лишний бал за то что есть чувство меры, впрочем стун + поджег + снятие защиты уже достаточно много. итого 1.3+1.+2.+2. \ 20 = 1.5\5; провальная работа.
Голос за 16GB |
03.07.2011, 17:42 | #24
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nerevar
I'll be back!
offline
Опыт:
18,352Активность: |
Я так сделал потому что отследить точно время между началом и концом полета ракеты нельзя(т.к. у неё имеется траектория движения),если я буду заставлять юнита,который использует Ракетный удар,то он не будет давать стана,т.к. канальный)
Этот таймер запускается отнюдь не для добавления абилы юниту, а для нормального её удаления через 6 секунд(за её удаление отвечает переменная remove(допустим что перезарядки у абилы не было бы,тогда запустив 1 ракету,за ней через 2 секунды другую,обе бы сняли защиту юниту,причём защита бы вернулась после 6 секунд после добавления в первой ракете,несмотря на то,что она должна была провисеть,пока не закончатся 6 секунд второй ракеты),в итоге эта переменная не даёт такому случиться.
S2I("remove") я использую лишь потому,что в карте таких стаковых магий может быть несколько,чтобы отделить каждую такую переменную для каждого скила.
Про "технику смещения массивов на хэштаблице" я не понял - поясни пожайлуста.
В конце обнуляется переменная,разве нельзя её несколько раз использовать?
Разве можно передать для уровня реальное число,которое может быть и 19.172 и каким хочешь? |
03.07.2011, 20:27 | #25
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FKoFF
Venomancer 89lvl. Europe
offline
Опыт:
5,975Активность: |
Nerevar:
int = целое число, 22-level*2 тоже операция с целыми числами. Вопрос - зачем используется i2r? Nerevar: бред по той простой причине что ты сразу после блока объявления локальных переменных создаешь этих самых дамми. суть ошибки в том что должно быть
Nerevar:
щито это за дьявольский бред выше? Не проще ли написать отдельную НОРМАЛЬНУЮ функцию на добавление абилы юниту? я имел ввиду отдельную функцию на временное добавление абилы. и хэндл юнита должен использоваться совершенно по другому.. ознакомься с тем, как это должно выглядеть:
» Нормальная АПИшная функция
Nerevar:
я про set remove=LoadInteger(udg_ah,GetHandleId(f),S2I("remove"))+1 Nerevar:
хм, не заметил, мои извинения.
должно выглядеть так:
Отредактировано FKoFF, 03.07.2011 в 21:48. |
03.07.2011, 21:18 | #26
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
silumin
offline
Опыт:
11,153Активность: |
Оба спелла мрачные, неинтересные и до жути банальные.
16Gb:Идея: 10/35. Обычный дамми с "наведением" на цель, только "размноженный". Падение ракеты в случайную точку, если цель уничтожена - минус, имхо. Внешний вид: 15/35. Захватывает именно массовостью и не более. Нет изюминки. Взрывы можно было "прикрутить" более красивые. Исполнение: 15/30. Бегло просмотрел код, не разбираясь в тонкостях. Написано аккуратно, но нечитаемо. Настройки "спрятаны" в коде. Слишком "объёмная" реализация. Итого: 40/100 NerevarИдея: 1/35. Для дуели можно было бы поднапрячь фантазию, а так - банальщина. Внешний вид: 5/35. Ракета слишком велика относительно отряда. Если 16Gb поскупился на взрывы, то Nerevar явно переборщил. Исполнение: 5/30. Банальная идея - банальное исполнение. Использование BJ. Ничего сложного. Итого: 11/100 Общий итог:Оба спелла слишком банальны и неинтересны. Чисто техническая победа 16Gb над Nerevar. |
03.07.2011, 21:41 | #27
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nerevar
I'll be back!
offline
Опыт:
18,352Активность: |
-Почему хэндл юнита вообще не нужен? Ведь получается,что я веду для каждого юнита на карте свою переменную,отвечающую за удаление,которая распологается в хт по адресу хэндла юнита.У тебя он же,судя по коду,тоже используется,только для учёта длительности.Используешь просто другой способ. -Про "технику смещения массивов на хэштаблице" я не слыxал ни разу - просто,поломав голову над нормальным удалением абилы,нашел такое решение. |
03.07.2011, 21:48 | #28
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FKoFF
Venomancer 89lvl. Europe
offline
Опыт:
5,975Активность: |
Nerevar, приглядись какой childkey используешь ты, и какой рациональней использовать для полной MUIшности. И подумай зачем я время отсчитываю, если мог бы отсчитывать что угодно другое ) |
03.07.2011, 21:50 | #29
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nerevar
I'll be back!
offline
Опыт:
18,352Активность: |
Я не вижу практически никакой разницы в наших методах - можно и мой сделать под твой образец,только передаваемый параметр duration можно было сразу вписать во время таймера,запустив его однократным,а дальше при окончании таймера делать мои действия.Различие лишь в том,что твоя функция будет вызываться каждые 0.1 секунды на протяжении duration(что не является необходимым),а моя функция будет вызываться один раз в конце его действия. |
03.07.2011, 22:05 | #30
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FKoFF
Venomancer 89lvl. Europe
offline
Опыт:
5,975Активность: |
Nerevar:
Удобство в том что ячейка по хэндлу юнита занята рационально, не булем а таймером; к тому же чилдкий использованный мной дает возможность дать юниту хоть 100 разных спеллов на разное время и не будет конфликта между ними, потому как их таймеры будут работать на разные чилдкеи, в твоем же случае тебе придется изобретать какие то дурацкие i2s("remove") и прочий мусор. Но это ладно, еще момент - даже если у юнита уже есть таймер - ты создаешь еще один, увеличивая нагрузку, в моем же случае лишь меняются уровни абил и добавляется время действия, что несомненно удобнее (именно для этого в хэндле хранится таймер). |
03.07.2011, 22:13 | #31
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nerevar
I'll be back!
offline
Опыт:
18,352Активность: |
-Булем у меня ничего не занято. -Можно просто заменить "какие то дурацкие i2s("remove")" на передаваемое в функцию название абилы - и не будет никаких конфликтов между ними. -Зачем ты в своей функции используешь таймер с периодом в 0.1?Почему его нельзя однократно запустить на duration? |
03.07.2011, 22:25 | #32
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
elfloo
offline
Опыт:
1,119Активность: |
16GB. однозначно)) Легко настроить даже несведущим людям, впечатляет массовость картинки и изящная траектория движения. +) |
03.07.2011, 22:56 | #33
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
LOR_D
offline
Опыт:
8,450Активность: |
У ~16GB спелл намного красивее и интерснее и удобочитаемо. |
03.07.2011, 23:27 | #34
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FKoFF
Venomancer 89lvl. Europe
offline
Опыт:
5,975Активность: |
Nerevar:
для того что бы в нужный момент увеличивать длительность, если требуется. |
04.07.2011, 00:53 | #35
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FEARSTARTER
desert eagle
offline
Опыт:
19,284Активность: |
Идеи спелов у обоих так себе, слишком банально. Но у 16GB порадовало исполнение, выглядит красиво, ракеты летят плавно и правильно по XYZ с любых растояний, еще забавно мигает тимколор, незнаю у кого там че но столько дамми, а никакой нагрузки на комп я не почувствовал вобще. Не очень понравилось что когда ракеты летят вдоль земли прямо, то не попадают в юнитов, а летят насквозь пока сами не рванут.
|
04.07.2011, 01:56 | #36
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
SID69
DET
offline
Опыт:
19,693Активность: |
Однозначно за 16GB, там хоть видна работа и старание, а у Nerevar все как-то просто выглядит, то что можно сделать ну максимум за пол часа!
|
04.07.2011, 15:38 | #37
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
sheff4
offline
Опыт:
1,371Активность: |
16GB красивее, но не доработки, по моему мнению ракеты летят в доль карты по не проходимой зоне, атаковать можно всех даже юнит атакует сам себя) |
04.07.2011, 18:22 | #38
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
WaterMan
J.R.R.
offline
Опыт:
17,019Активность: |
16GB имхо, в разы лучше. Хотя от его работы тоже не в восторге. |
04.07.2011, 19:04 | #39
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Oxygen D
Вернулся
offline
Опыт:
5,180Активность: |
|
20.07.2011, 00:39 | #40
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|