|
|
|
|
[Вопрос] Оптимизация спелла, где используются группы
|
|
lawson | Дата: Пятница, 23 Сентября 2011, 17:08:21 | Сообщение # 126 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (FatalBlade) return nothing или return boolean? Это ведь Conditions да, returns boolean
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Пятница, 23 Сентября 2011, 17:08:57 |
|
|
|
FatalBlade | Дата: Пятница, 23 Сентября 2011, 17:08:49 | Сообщение # 127 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Quote (Ty3uK) rghost.ru/22731051 блэйд, это тебе спс
|
|
|
|
SirNikolas | Дата: Пятница, 23 Сентября 2011, 17:11:22 | Сообщение # 128 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (SirNikolas) Писал в Notepad++, так что могут быть ошибки. boolean
|
|
|
|
Mep3aB4uK | Дата: Пятница, 23 Сентября 2011, 17:11:40 | Сообщение # 129 |
9 уровень
Группа: Проверенные
Сообщений: 1019
Награды: 0
Репутация: 135
Блокировки:
| FatalBlade, Скачай JNGP, хуже не будет. Только улучшит твои знания в жассе и некоторые проблемы(которые трудно решить в простом WE).
|
|
|
|
FatalBlade | Дата: Пятница, 23 Сентября 2011, 17:15:00 | Сообщение # 130 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Он мне 1 раз чуть карту не запорол. Перестали работать события с малым периодом и спецэффекты которые создаются в точках.
|
|
|
|
[DUОS] | Дата: Пятница, 23 Сентября 2011, 17:16:44 | Сообщение # 131 |
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
| :с Почему сразу подсаживать на извращения-то?Добавлено (23 Сентябрь 2011, 17:16:44) ---------------------------------------------
Quote (Faion) Бывает так что нью ген запарывает мапы. В этом Феня молодец.
|
|
|
|
FatalBlade | Дата: Пятница, 23 Сентября 2011, 17:22:17 | Сообщение # 132 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| SirNikolas, там куча ошибок) Причём даже непонятно почему))
|
|
|
|
SirNikolas | Дата: Пятница, 23 Сентября 2011, 17:29:52 | Сообщение # 133 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| В функции таймера опечатка: LoadUnitHande -> LoadUnitHandle В функции действий я объявил две переменные с именем u. Исправление:Code function Trig_Explode_Corpses_Actions takes nothing returns nothing local unit u = GetTriggerUnit() local group g = CreateGroup() local timer t = CreateTimer() local integer id = GetHandleId(t) local unit u2 call GroupEnumUnitsInRange(udg_Group, GetWidgetX(u), GetWidgetY(u), 900., null) loop set u2 = FirstOfGroup(udg_Group) exitwhen u2 == null call GroupRemoveUnit(udg_Group, u2) if GetWidgetLife(u2) <= .0 and IsUnitType(u2, UNIT_TYPE_HERO) == false then call GroupAddUnit(g, u2) endif endloop call SaveAgentHandle(udg_Hash, id, 0, g) call SaveInteger(udg_Hash, id, 1, GetUnitAbilityLevel(u, 'A0QT')) call SaveAgentHandle(udg_Hash, id, 2, u) call TimerStart(t, .4, false, function Trig_Explode_Corpses_Timer) set g = null set t = null set u = null set u2 = null endfunction
|
|
|
|
FatalBlade | Дата: Пятница, 23 Сентября 2011, 17:34:09 | Сообщение # 134 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Quote (SirNikolas) В функции действий я объявил две переменные с именем u. Исправление: Это я заметил, и изменил, но есть ещё)Добавлено (23 Сентябрь 2011, 17:34:09) ---------------------------------------------
Quote (SirNikolas) В функции таймера опечатка: LoadUnitHande -> LoadUnitHandle А вот это я пропустил)
|
|
|
|
[DUОS] | Дата: Пятница, 23 Сентября 2011, 17:34:21 | Сообщение # 135 |
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
| Туз, твой код я подредактил. Ты брал в радиусе 180 от кастера, а не от мёртвых. А вообще молодец Code function Trig_Spell_Conditions takes nothing returns boolean return GetSpellAbilityId() == 'A000' endfunction
function Damage takes nothing returns boolean if IsUnitType(GetFilterUnit(),UNIT_TYPE_DEAD) == false then call UnitDamageTarget(GetTriggerUnit(),GetFilterUnit(),200.,true,false,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS) endif return false endfunction
function Dead_Pick takes nothing returns boolean local unit caster = GetTriggerUnit() local unit fu = GetFilterUnit() local group g = CreateGroup() local filterfunc f = Filter(function Damage) if IsUnitType(fu,UNIT_TYPE_DEAD) then call GroupEnumUnitsInRange(g,GetUnitX(fu),GetUnitY(fu),180.,f) call DestroyEffect(AddSpecialEffect("Objects\\Spawnmodels\\Human\\HumanLargeDeathExplode\\HumanLargeDeathExplode.mdl", GetUnitX(GetFilterUnit()), GetUnitY(GetFilterUnit()))) endif call DestroyGroup(g) call DestroyFilter(f) set g = null set fu = null set f = null set caster = null return false endfunction
function Trig_Spell_Actions takes nothing returns nothing local unit caster = GetTriggerUnit() local group g = CreateGroup() local filterfunc f = Filter(function Dead_Pick) call GroupEnumUnitsInRange(g,GetUnitX(caster),GetUnitY(caster),900.,f) call DestroyGroup(g) call DestroyFilter(f) set g = null set f = null set caster = null endfunction
//=========================================================================== function InitTrig_Spell takes nothing returns nothing set gg_trg_Spell = CreateTrigger() call TriggerRegisterAnyUnitEventBJ(gg_trg_Spell,EVENT_PLAYER_UNIT_SPELL_EFFECT) call TriggerAddCondition(gg_trg_Spell,Condition(function Trig_Spell_Conditions)) call TriggerAddAction(gg_trg_Spell,function Trig_Spell_Actions) endfunction
|
|
|
|
SirNikolas | Дата: Пятница, 23 Сентября 2011, 17:36:14 | Сообщение # 136 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (FatalBlade) Это я заметил и изменил Надеюсь, ты ее обнулил в конце?
|
|
|
|
FatalBlade | Дата: Пятница, 23 Сентября 2011, 17:38:00 | Сообщение # 137 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Кстати хотел спросить. Ты ведь без дамми делал? Типа урон наносится от самого героя... Если герою сразу после каста абилки, но ещё до вызова второй функции кинут Стан, или слип, урон будет нанесён?
Да и где хэш инициировать? В Map Initialization или в триггере с событием call TriggerRegisterTimerEventSingle( gg_trg_Data, 1.00 )Добавлено (23 Сентябрь 2011, 17:38:00) ---------------------------------------------
Quote (SirNikolas) Надеюсь, ты ее обнулил в конце? да
Сообщение отредактировал FatalBlade - Пятница, 23 Сентября 2011, 17:37:41 |
|
|
|
Ty3uK | Дата: Пятница, 23 Сентября 2011, 17:38:36 | Сообщение # 138 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Да, будет. Да и там настолько маленький период ожидания, что это еще подгадать сильно надо
|
|
|
|
SirNikolas | Дата: Пятница, 23 Сентября 2011, 17:39:27 | Сообщение # 139 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (FatalBlade) урон будет нанесён? Да.Quote (FatalBlade) где хэш инициировать? Вообще-то можно где угодно, главное, чтобы один раз, но я предпочитаю Map initialization.
|
|
|
|
[DUОS] | Дата: Пятница, 23 Сентября 2011, 17:39:43 | Сообщение # 140 |
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
| Quote (FatalBlade) урон будет нанесён? Code if UnitDamageTarget(GetTriggerUnit(),GetFilterUnit(),200.,true,false,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS) then // урон нанесён else // урон не нанесён endif
|
|
|
|
SirNikolas | Дата: Пятница, 23 Сентября 2011, 17:46:16 | Сообщение # 141 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (Ty3uK) это еще подгадать сильно надо Я ради прикола делал ИИ, чтобы Смотрящая в Ночь своим скачком от всяких заклинаний, вроде Молота Бурь, уклонялась. Выглядит забавно)
|
|
|
|
FatalBlade | Дата: Пятница, 23 Сентября 2011, 18:00:32 | Сообщение # 142 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| оффтоп Дуос, помнишь про спелл который я тебя просил оптимизировать? Ты его будешь делать? Или покажи плз как его оптимизировать, потому что он НАМНОГО сложнее чем это взрывание труповДобавлено (23 Сентябрь 2011, 18:00:32) --------------------------------------------- Как я понял фильтр это то же самое что и условие?
|
|
|
|
SirNikolas | Дата: Пятница, 23 Сентября 2011, 18:09:03 | Сообщение # 143 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (FatalBlade) фильтр - это то же самое, что и условие? Нет. Но чем они различаются, не знает никто. Так что юзаем фильтр для фильтров группы, а условия - для условий триггеров.
|
|
|
|
FatalBlade | Дата: Пятница, 23 Сентября 2011, 18:35:34 | Сообщение # 144 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Ок спс всем У меня есть ещё вопрос по похожему спелл, поэтому задам его тут. Вот у меня есть спелл который тоже вычисляет трупов вокруг героя, и на их месте создаёт ядовитые облака, то есть дамми с моделью зелёного облака (импорт) и со скилом Immolation, которые живут 30 секунд, нанося урон всему что попадает в облако. В данном случае надо создать 3 группы, 1 глобалка и 2 локалки? Ведь я же создаю ещё и даммиков, которых потом надо удалить. Или как?
|
|
|
|
[DUОS] | Дата: Пятница, 23 Сентября 2011, 20:52:58 | Сообщение # 145 |
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
| Прочтите это, потом, основываясь на этом знании, давайте какие-то советы (во избежание бреда).
|
|
|
|
|
|
|
|
|
|
|