[Статья]Создание триггерных скилов:Удаление точки
|
|
#1
Создание триггерных скилов:Удаление точки для тех,кто ниже среднего
Итак,я подготовил вторую статейку по созданию скилов.В ней я хотел бы показать работу с CS:call RemoveLocation.Для тех,кто не знает что это,я постараюсь пояснить.Как вы знаете,в разделе спецэффекты есть строка:"удалить спецэффект".Точка,это тот же спецэффект,на который надо ссылаться,работая с позицией,и,чтоб не было лагов,его надо удалять.Но тут возникает проблема,нет строки удалить точку,тут нам помогает частичка Jass`а - CS.Если перевести,получится: приказ удалить точку.Что-то в этом роде.То бишь мы приказываем игре удалить нужную точку.В точности этот CS пишется так: CS:call RemoveLocation(udg_Имя переменной). В:Для чего это нужно? О:Чтоб уменьшить количество лагов! К примеру вы используете движение юнита в течении 5 сек,с периодичностью 0.04.То бишь: Code С-каждые 0.04 Д-Двигать Unit к позиции Unit смешение на -5 угол поворота Unit Так вы двигаете юнита в переменной Unit назад.Другим триггером вы выключаете этот.Наш пример создаёт 25000 утечек в виде локации.Это не вызовет больших лагов,но подумайте сколько у вас может быть ссылок на точки и частоту применения в игре этих скилов?Не очень перспективка намечается,не правда ли?)) Итак,почему 25000? в каждой секунде 100 долей секунд,в нашем случае их 500.(500/0.04=12500)*2.Почему *2?Так вы создаёте две точки.Всмотритесь,"Д-Двигать Unit к позиции Unit смешение на -5 угол поворота Unit".Позиция отсчёта точки,это первая точка,а сама точка которая будет рассчитана - вторая. Итак,что нам надо сделать что бы этого не было.Сначала создаём две переменные тип точка.Я назову свои переменные Location1 и Location2,установим их. Code С-каждые 0.04 Д-Установить Location1 равно позиция Unit Д-Установить Location2 равно Location1 смешение на -5 по отношению к угол поворота Unit Д-Двигать Unit к Location2 CS:call RemoveLocation(udg_Location1) CS:call RemoveLocation(udg_Location2) Итак,каждые 0.04 секунды мы устанавливаем что Location1 это позиция нашего юнита,а Location2 это его позиция со смешением на -5 от его угла поворота.После мы ссылаемся на нужную нам локацию,то бишь на Location2.Понимаем,что эти точки нам уже не нужны и убираем с помощью CS. Заканчиваем с теорией,переходим к практике.Открывайте ваш скил,который мы делали и удаляем утечки в нём.Вот,что получилось у меня: Розовым я показал где устанавливал переменные Красным - где удалял Зелёным показаны их применения А для тех,кто не понял или не смог пример. Итак,ещё пару слов.В данном скиле удаление точек не так важно,но там,где их количество очень велико - необходимо.К примеру взять наше движение,если бы там был не 1 юнит,а 100 в массиве?)Кстати о массивах.Если возникнет надобность удалять переменную с массивом используйте CS:call RemoveLocation(udg_Имя переменной[bj_forLoopAIndex]).Это для каждого числа А в цикле.С остальным,я думаю,вы разберётесь) Пока что это всё.Надеюсь всё было понятно,автор статьи:SunCreep
|
#2
SunCreep, Молодец :). Подшил в оглавление Добавлено (22.07.11, 12:50) ---------------------------------------------
Quote (SunCreep) Д-Установить Location1 равно позиция Unit Д-Установить Location2 равно Location1 смешение на -5 по отношению к угол поворота Unit Code local location loc = Location(GetUnitX(u)+r*Cos(angle*.0174532) ,GetUnitY(u)+r*Sin(angle*.0174532) ) Зачем две локи ? Добавлено (22.07.11, 12:53) --------------------------------------------- Советую автору выучить Jass затем писать такие статьи
Ползут 2 пирожка. Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D
|
#3
H_A_PK, Quote (H_A_PK) Советую автору выучить Jass затем писать такие статьи блин,яб с радостью,но как я уже говорил,jass в основе своей это синтаксис английских слов,если бы у меня был сборник всех действий jass`а,я бы может и смог его выучить. Кстати по подробнее об Quote (H_A_PK) local location loc = Location(GetUnitX(u)+r*Cos(angle*.0174532) ,GetUnitY(u)+r*Sin(angle*.0174532) ) Что это всё значит?Ты просто подключил локальную переменную,но что это за значения.И почему нельзя делать две локации,типа перегружу карту переменными?
|
#4
Quote (SunCreep) блин,яб с радостью,но как я уже говорил,jass в основе своей это синтаксис английских слов,если бы у меня был сборник всех действий jass`а,я бы может и смог его выучить. Кстати по подробнее об common.j и blizard.j анигилируйся :о Quote (SunCreep) Что это всё значит?Ты просто подключил локальную переменную,но что это за значения.И почему нельзя делать две локации,типа перегружу карту переменными? это строка делает, что ты делал двумя
Ползут 2 пирожка. Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D
|
#5
Quote (H_A_PK) common.j и blizard.j Дак я имел в виду нормальную базу,а не это,там действительно за инигелируешься)) Quote (H_A_PK) это строка делает, что ты делал двумя Кэп где-то рядом.Я о числах,что это вообще такое?
|
#6
Quote (SunCreep) Я о числах,что это вообще такое? .0174532 = Пи/180 радиана это тригонометрия точка на оружности
Ползут 2 пирожка. Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D
|
#7
H_A_PK, я так подумал.Я пожалуй пока что буду делать так,как умею и поднимать тех,кто не умеет не как до своего уровня,благо я не чё не умею,почти.А исправляться и подниматься на уровень выше буду когда постигну тригонометрию,благо не так долго осталось.
|
#8
Quote (SunCreep) H_A_PK, я так подумал.Я пожалуй пока что буду делать так,как умею и поднимать тех,кто не умеет не как до своего уровня,благо я не чё не умею,почти.А исправляться и подниматься на уровень выше буду когда постигну тригонометрию,благо не так долго осталось. Quote (H_A_PK) Советую автору выучить Jass затем писать такие статьи там не нужна тригонометрия
Ползут 2 пирожка. Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D
|
#9
H_A_PK, я уже говорил об этом Quote (SunCreep) сборник всех действий jass`а если бы какой-нить хороший человек составил русскую таблицу,с пояснением каждого действия. я бы начал как с GuI,а потом бы уже переходил на все эти функции и библиотеки.
|
#10
Статья зачет.. В дальнейшим поможет мне.
Расцвет Тернокса: ~{*The Kingdom*}~
|
#11
Quote (SunCreep) если бы какой-нить хороший человек составил русскую таблицу,с пояснением каждого действия. я бы начал как с GuI,а потом бы уже переходил на все эти функции и библиотеки. конвентировать триггер, вот тебе и пояснение каждого действие. Например: Боевая единица - Убить Юнита (юнит), превратиться в "call UnitKill(юнит)", сразу понятно что делает это действие на жассе. А далее необходимо читать только статьи. А то что ты говоришь:Quote (SunCreep) если бы какой-нить хороший человек составил русскую таблицу,с пояснением каждого действия. идиотизм полнеший
Ползут 2 пирожка. Первый: Я тебя щас трахну. Второй: Почему? Первый: Потому что я с яйцами :D
|
#12
Я здесь недавно,так что ты ещё успеешь осознать всю суть моих высказываний.Собственно очень часто в них Quote (H_A_PK) идиотизм полнеший )
|
#13
А для тех кто ниже слабого?)
|
#14
pashok11, ну Quote (pashok11) для тех кто ниже слабого есть тема по типу "вопрос - ответ",так что все интересующие вопросы получат ответ.
|