Парочка другая вопросов <3
|
|
DarkCote | Дата: Пятница, 28 Октября 2011, 10:38:11 | Сообщение # 1 |
Кот
Группа: Проверенные
Сообщений: 948
Награды: 0
Репутация: 176
Блокировки:
| У меня опять возник вопрос Вот создаю я дамми юнита после применения способности и он "идёт" в конкретном направлении. Как сделать так, что если он соприкасается с противником, то *происходит какое-то действие*? Объясните лучше на примере триггеров, желательно русских
Сообщение отредактировал DarkCote - Пятница, 28 Октября 2011, 19:27:08 |
|
|
|
Ty3uK | Дата: Пятница, 28 Октября 2011, 10:57:05 | Сообщение # 2 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Пикаешь периодическим таймером юнитов в области 100 от дамми. Если там есть юниты- то делаешь что надо
|
|
|
|
DarkCote | Дата: Пятница, 28 Октября 2011, 11:10:02 | Сообщение # 3 |
Кот
Группа: Проверенные
Сообщений: 948
Награды: 0
Репутация: 176
Блокировки:
| Ty3uK, какой лучше евери взять? Ну чтобы без лагов в случае массового применения?
|
|
|
|
Ty3uK | Дата: Пятница, 28 Октября 2011, 11:18:36 | Сообщение # 4 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| .04
|
|
|
|
DarkCote | Дата: Пятница, 28 Октября 2011, 19:29:37 | Сообщение # 5 |
Кот
Группа: Проверенные
Сообщений: 948
Награды: 0
Репутация: 176
Блокировки:
| Чтобы не мучать форум многочисленными темами буду сливать вопросы сюда Вопрос №2: У меня в игре лагает лёд, а точнее его система. Пожалуйста не сливайтесь ссылками на ту старую тему про лёд, ибо там ссылки на наработки всё равно не рабочие. Вот скрины моего льда: Что с ним не так? Как добиться максимальной оптимизации вообще без кода?
|
|
|
|
Ty3uK | Дата: Пятница, 28 Октября 2011, 19:56:52 | Сообщение # 6 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| DarkCote, могу написать эту системку в несколько строчек, которые ты уже через кастом скрипт будешь вставлять где надо
|
|
|
|
DarkCote | Дата: Пятница, 28 Октября 2011, 19:58:22 | Сообщение # 7 |
Кот
Группа: Проверенные
Сообщений: 948
Награды: 0
Репутация: 176
Блокировки:
| Ty3uK, мне надо именно триггеры Просто карта не TFTшная, а кастом скрипты вроде являются функцией фрозена... Вродебы))
|
|
|
|
Ty3uK | Дата: Пятница, 28 Октября 2011, 20:01:39 | Сообщение # 8 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| DarkCote, нифига. Фрозен использует новые типы глобалок, объекты и прочее. я писал мультиборд на хэше, который был как карта для ROC
|
|
|
|
DarkCote | Дата: Пятница, 28 Октября 2011, 20:03:41 | Сообщение # 9 |
Кот
Группа: Проверенные
Сообщений: 948
Награды: 0
Репутация: 176
Блокировки:
| Ty3uK, тобишь твой кастом скрипт прокатит в роке?
|
|
|
|
Ty3uK | Дата: Пятница, 28 Октября 2011, 20:07:18 | Сообщение # 10 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| DarkCote, конечно
Добавлено (28 Октябрь 2011, 20:05:57) --------------------------------------------- Code local integer i = 0 local real x local real y loop exitwhen i > 12 set x = GetWidgetX(udg_Hero[i]) + 20. * Cos(GetRandomReal(1, 360.) * .017) set y = GetWidgetY(GetOrderedUnit()) + 20. * Sin(GetRandomReal(1, 360.) * .017) call SetUnitPosition(udg_Hero[i], x, y) endloop на каждую новую строчку новый кастомскрипт. Зато без утечекДобавлено (28 Октябрь 2011, 20:07:18) --------------------------------------------- Но это смещение будет в рандомном направлении. Если нужно направление героя, то GetRandomReal(1., 360.) замени на GetUnitFacing(udg_Hero[i])
Сообщение отредактировал Ty3uK - Пятница, 28 Октября 2011, 20:06:25 |
|
|
|
SirNikolas | Дата: Воскресенье, 30 Октября 2011, 19:30:18 | Сообщение # 11 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Ty3uK, впиши еще в код условие на terraintype.
|
|
|
|
Ty3uK | Дата: Воскресенье, 30 Октября 2011, 19:48:46 | Сообщение # 12 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Я ему уже в аське кидал. Проверку на террайн тип и через таймер
|
|
|
|
DarkCote | Дата: Понедельник, 31 Октября 2011, 02:35:56 | Сообщение # 13 |
Кот
Группа: Проверенные
Сообщений: 948
Награды: 0
Репутация: 176
Блокировки:
| Вопрос №3 Внизу скриншот триггера, который имеет утечку. Но вот только какую и как её исправить? После второго применения появляются лаги, с каждым разом всё больше.
|
|
|
|
SirNikolas | Дата: Понедельник, 31 Октября 2011, 15:34:47 | Сообщение # 14 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Code constant function Trig_Hero_Samogon_Ability takes nothing returns integer return 'A000' endfunction
function Trig_Hero_Samogon_Conditions takes nothing returns boolean return GetSpellAbilityId() == Trig_Hero_Samogon_Ability() endfunction
function Trig_Hero_Samogon_Timer takes nothing returns nothing if udg_Hero_Samogon_Phase == 0 then set udg_SpellUnit[14] = CreateUnit(Player(0), udg_SpellUnitSAMOGON[udg_Hero_Samogon_Level], udg_Hero_Samogon_Real[0], udg_Hero_Samogon_Real[1], .0) set udg_Hero_Samogon_Phase = 1 call TimerStart(udg_Hero_Samogon_Timer, .25, false, function Trig_Hero_Samogon_Timer) elseif udg_Hero_Samogon_Phase == 1 then call PauseUnit(udg_Hero_Samogon_Unit, true) call IssueTargetOrderById(udg_SpellUnit[14], 851983, udg_Hero_Samogon_Real[2], udg_Hero_Samogon_Real[3]) set udg_Hero_Samogon_Phase = 2 call TimerStart(udg_Hero_Samogon_Timer, 1., false, function Trig_Hero_Samogon_Timer) else call PauseUnit(udg_Hero_Samogon_Unit, false) call RemoveUnit(udg_SpellUnit[14]) endif endfunction
function Trig_Hero_Samogon_Actions takes nothing returns nothing set udg_Hero_Samogon_Unit = GetTriggerUnit() set udg_Hero_Samogon_Real[0] = GetWidgetX(udg_Hero_Samogon_Unit) set udg_Hero_Samogon_Real[1] = GetWidgetY(udg_Hero_Samogon_Unit) set udg_Hero_Samogon_Real[2] = GetSpellTargetX() set udg_Hero_Samogon_Real[3] = GetSpellTargetY() set udg_Hero_Samogon_Level = GetUnitAbilityLevel(udg_Hero_Samogon_Unit, Trig_Hero_Samogon_Ability()) set udg_Hero_Samogon_Phase = 0 call TimerStart(udg_Hero_Samogon_Timer, .03, false, function Trig_Hero_Samogon_Timer) endfunction
function InitTrig_Hero_Samogon_Actions takes nothing returns nothing local trigger trig = CreateTrigger() call TriggerRegisterPlayerUnitEvent(trig, Player(0), EVENT_PLAYER_UNIT_SPELL_EFFECT, null) call TriggerAddCondition(trig, Condition(function Trig_Hero_Samogon_Conditions)) call TriggerAddAction(trig, function Trig_Hero_Samogon_Actions) set trig = null endfunction Вот. Конвертируй триггер в текст, замени код на этот. Также нужно создать переменные Hero_Samogon_Unit (юнит), Hero_Samogon_Real (массив действительных), Hero_Samogon_Level (целочисленная), Hero_Samogon_Phase (целочисленная) и Hero_Samogon_Timer (таймер). Во второй строке замени 'A000' на raw-код способности (его можно узнать, нажав Ctrl+D в Редакторе Объектов).
|
|
|
|