Результаты поиска
|
|
#136 | Тема: Profiles 2.0 и прочие вкусности
У вас недостаточно прав для просмотра данного сообщения.
Аниме - такая вещь, которая балансирует на грани "надоевшего" и "нового" из-за Наруто в основном. © [DUOS] GUI Must Die v1.1 | Arena Multiboard
|
#137 | Тема: Profiles 2.0 и прочие вкусности
У вас недостаточно прав для просмотра данного сообщения.
Аниме - такая вещь, которая балансирует на грани "надоевшего" и "нового" из-за Наруто в основном. © [DUOS] GUI Must Die v1.1 | Arena Multiboard
|
#138 | Тема: Учимся рационально Enum'ить декорации
Всем доброго утра/дня/вечера/ночи. Недавно я учил свои заклинания корректно работать с окружающим миром, и конечно же встал вопрос: а как же можно делать выборку дектораций без локальных ректов? Напомню, что основополагающая функция выбора дектораций - это функция [jass]native EnumDestructablesInRect takes rect r, boolexpr filter, code actionFunc returns nothing[/jass] она собирает декорации в определенном ректе. Все сразу же подумали "ну а что такого-то в локальных ректах? создаем, удаляем, эка невидаль". Ан нет, мои друзья, ректы сильно грузят процессор (доходит до такого, что спелл без утечек начинает лагать как первый опыт гуишника по созданию "ультрамегагиперкрутого заклинания"). Я нашел выход (возможно, их может быть и несколько, мне пришел в голову только один). О нем ниже.
Итак, какой же способ я придумал? А все очень просто - мы выбираем все декорации на карте с помощью статичного глобального ректа bj_mapInitialPlayableArea, высчитываем расстояние между взятой декорацией и точкой, от которой идет отсчет, и, если она удовлетворяет нашим требованиям - мы производим с ней действия. Немного полистав учебник геометрии и вспомнив из векторной геометрии, как можно вычислить расстояние между координатами, я написал такую функцию: которая возвращает нам расстояние между координатами. Итак, ядро у нас есть, давайте накинем на него "мяска". Полный листинг своего спелла я приводить не буду (вы можете увидеть его в моей карте Simple Shooter под названием MK209), приведу лишь необходимую часть кода: Итак, что мы сделали? Занесли кастера в переменную, выбрали все декорации на карте и после сравнения расстояния убили все декорации в радиусе 300. от юнита. "Систему" можно совершенствовать как угодно (например, через сравнение GetDestructableTypeId() сравнивать тип декорации и уничтожать только деревья), все ограничено только вашей фантазией. К... Кхм... "Статье" я приложил карту-пример. Спасибо всем за внимание, до новых встреч
Maxim Karelov aka Ty3uK © 2012
Сообщение отредактировал Ty3uK - Чт, 15.03.12, 12:40
Аниме - такая вещь, которая балансирует на грани "надоевшего" и "нового" из-за Наруто в основном. © [DUOS] GUI Must Die v1.1 | Arena Multiboard
|
#139 | Тема: Учимся рационально Enum'ить декорации
nikikin, что?
Аниме - такая вещь, которая балансирует на грани "надоевшего" и "нового" из-за Наруто в основном. © [DUOS] GUI Must Die v1.1 | Arena Multiboard
|
#140 | Тема: Footman Arena
Зачем же мы ввели тег галереи изображений? Пользуйтесь им
Аниме - такая вещь, которая балансирует на грани "надоевшего" и "нового" из-за Наруто в основном. © [DUOS] GUI Must Die v1.1 | Arena Multiboard
|
#141 | Тема: Шапка.
Есть предложение сделать информер в шапке с возможностью скрытия (он будет уезжать в верх и скрываться по нажатию на кнопку)
Аниме - такая вещь, которая балансирует на грани "надоевшего" и "нового" из-за Наруто в основном. © [DUOS] GUI Must Die v1.1 | Arena Multiboard
|
#142 | Тема: JASP
JASP - небольшой препроцессор скрипта, который запускается перед парсерами cJass и vJass. Пока что возможностей мало, но и самой программе отроду всего 4 дня. Ниже о возможностях. Возможности Возможностей пока очень мало, а именно - две. Первая - упрощенное объявление локальных переменных внутри кода. Рассмотрим пример:
[jass]function Test takes nothing returns nothing new timer t; endfunction[/jass] мы объявляем новый локальный таймер короткой коммандой. После парсинга это ожидаемо првератится в [jass]function Test takes nothing returns nothing local timer t = CreateTimer() endfunction[/jass] Внимание! знак ; (точка с запятой) обязателен в коне строки, иначе парсер не поймет код. На данный момент возможно объявление следующих типов подобным образом: [jass]new timer new group new force new region new trigger new dialog new leaderboard new multiboard new quest new texttag new camerasetup new hashtable[/jass] Так же возможно объявление нескольких переменных на одной строке. [jass]new timer t; new group g; new hashtble h;[/jass] превратится в [jass]local timer t = CreateTimer() local group g = CreateGroup() local hashtable h = InitHashtable()[/jass] Вторая возможность - использование блока совместимости кода. Например, вы пользуетесь cJass и при помощи библиотеки cj_typesEx объявили переменную [jass]timer t = new timer;[/jass] Вместе с JASP получится кракозябра. Дабы не переписывать весь код был введен блок "непарсинга": [jass]$JASP_NOPARSE_BEGIN timer t = new timer; $JASP_NOPARSE_END$[/jass] превратится без изменений в [jass]timer t = new timer;[/jass] Пока что у этого блока есть один недостаток: парсер считывает его даже при закомментировании, поэтому не стоит делать так [jass]//$JASP_NOPARSE_BEGIN timer t = new timer; //$JASP_NOPARSE_END$[/jass] ибо это засчитается как "непарс" блок.
Что планируется дальше Дальше думаю запилить объявление единичной глобалки в коде функции и адаптацию блока for / endfor (vJass) под cJass парсер, т.к. они конфликтуют (за идею спасибо SirNikolas'y). Пример преобразования глобалок: [jass]global region r[/jass]уйдет в главный блок глобалок
Сообщение отредактировал Ty3uK - Пн, 02.04.12, 15:05
Аниме - такая вещь, которая балансирует на грани "надоевшего" и "нового" из-за Наруто в основном. © [DUOS] GUI Must Die v1.1 | Arena Multiboard
|
#143 | Тема: JASP
Я написал, что это замена cJass и vJass?
Аниме - такая вещь, которая балансирует на грани "надоевшего" и "нового" из-за Наруто в основном. © [DUOS] GUI Must Die v1.1 | Arena Multiboard
|
#144 | Тема: JASP
Скажем так, это третий элемент в цепи cJass + vJass
Аниме - такая вещь, которая балансирует на грани "надоевшего" и "нового" из-за Наруто в основном. © [DUOS] GUI Must Die v1.1 | Arena Multiboard
|
#145 | Тема: JASP
Даст, когда я добавлю больше возможностей. И, бтв, в JASP уже есть кое-что от паскаля- директивы flush, free и repeat untilДобавлено (09.04.12, 08:04) --------------------------------------------- А я пока и не говорю за новые возможности. Я стараюсь максимально упростить написание кода. Пока что
Аниме - такая вещь, которая балансирует на грани "надоевшего" и "нового" из-за Наруто в основном. © [DUOS] GUI Must Die v1.1 | Arena Multiboard
|
#146 | Тема: Моя идея про jass
Что тут придумывать? Таких языков куча, гуглим. Самый известный- 1С
Аниме - такая вещь, которая балансирует на грани "надоевшего" и "нового" из-за Наруто в основном. © [DUOS] GUI Must Die v1.1 | Arena Multiboard
|
#147 | Тема: проверьте код :)
А запилить одним таймером религия не позволяет? И функции загрузки значений какие-то странные D:
Аниме - такая вещь, которая балансирует на грани "надоевшего" и "нового" из-за Наруто в основном. © [DUOS] GUI Must Die v1.1 | Arena Multiboard
|
#148 | Тема: ХВАТИТ ЭТО ТЕРПЕТЬ
У вас недостаточно прав для просмотра данного сообщения.
Аниме - такая вещь, которая балансирует на грани "надоевшего" и "нового" из-за Наруто в основном. © [DUOS] GUI Must Die v1.1 | Arena Multiboard
|