| [Статья]Создание триггерных скилов:Удаление точки | 
|  | 
| 
 
 
 #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) для тех кто ниже слабогоесть тема по типу "вопрос - ответ",так что все интересующие вопросы получат ответ.
 |