Как да използвам правилно персонализирана стойност в Warcraft 3 Map Editor - Създаване на карта - Различни
Помислете за горното с пример - нека се опитаме да направим няколко заклинания, като използваме персонализирани единични стойности.
Така:
Задача 1 Нека направим нещо като Ancient apparition ultimate от DotA. В определената зона вражеските единици губят способността да възстановяват здравето по някакъв начин за няколко секунди и всяка секунда губят няколко точки за здраве. Ако здравето на единица падне под определен процент, единицата се убива от колелото. Когато се хвърли няколко пъти, последният заклинател ще се счита за убиец и ще се добави продължителността на измръзването. Единиците под тази магия трябва да имат ефект до смъртта или изтичането на магията.
Проблем 2 Нека направим нещо по-просто. В посочената зона вражеските герои губят част от своята ловкост за няколко секунди. Множественият актьор увеличава продължителността на пиявицата сръчност. Единиците под това заклинание трябва да имат ефект до изтичане на заклинанието.
Да започваме.
Вземете Blizzard и Pillars of Fire като фиктивни способности - заменете любителите и премахнете всички стандартни визуални ефекти.
Общ:
ObjectCounter (Integer) - тази променлива ще бъде броячът на мерните единици, върху които се фокусираме. Когато се появи нова единица, данните от която искаме да вземем предвид, ние увеличаваме тази променлива с 1 и присвояваме на тази променлива персонализираната стойност на единицата. Моля, обърнете внимание, че първо ще проверим дали единицата вече има номер, т.е. персонализираната стойност трябва да бъде 0.
GroupForspells (Отделяне, масив) - тук ще съхраняваме единици за различни заклинания, например в група 1 ще има единици за заклинание A, в група 2 - единици за заклинание B и т.н. Можете да създавате противоположни групи и дори масиви от различни групи, засега това.
Име (низ, масив) - масив от променливи за съхраняване на имена на единици, можем да дадем име на всеки, когато пожелаем, ако искаме.
PointCaster (point) - точка, чието изтичане ще трябва да бъде премахнато по време на заклинание.
За задача 1 създайте следното:
HPdrain (реално, масив) - стойностите на "замразеното здраве" на единици, в случай на измръзване ние поставяме текущото състояние на всяка единица в тази променлива.
HPdrainDur (цяло число, масив) - масив от продължителността на заклинанието. Мерните единици ще се променят в зависимост от това каква честота е задействането на правописа. Тъй като интервалът на задействане за тази задача е 0,03, така че заклинанието да продължи 1 секунда - даваме продължителност от 33 единици.
HPDrainCaster (бойна единица, масив) - в тази променлива всяко звено си спомня този, който последно му е изпратил измръзване, тоест от кого да умре, ако здравето падне под критичното ниво.