Сейчас 21:08:08 Понедельник, 25 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
[Программа] JASS NewGen Pack
Ty3uKДата: Пятница, 02 Марта 2012, 14:16:05 | Сообщение # 1
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:

Jass New Gen Pack 5d Updated!

Всем доброго времени суток! Недавно я натолкнулся на парочку апдейтов (апдейт AdicHelper от августа 2011 и JassHelper от февраля 2012) и решил закинуть их в сборку от Драгона. Программы оставил на месте, просто привел в порядок оба парсера, а так же перевел меню дополнений (актуально для незнающих). Также добавлена подсветка и автодополнение некоторых ключевых слов (полный список здесь). Особых и глобальных апдейтов, как видите, нет, но тем, кто пишет на cJass / vJass, это понадобится. Ознакомиться со списком изменений вы можете здесь: JassHelper и AdicHelper. vJass я не юзаю, а вот о новых возможностях Адика доложу примером:
Бтв, такой цикл[code=jass]do {
unit target = FirstOfGroup(g)
exitwhen target == null
//code
}[/code]теперь не пашет - его Адик в кривой вайл трансформирует. Но новые фичи с циклом for (like стандартный Си-обработчик) перебивают эту фигню.

Ну и напоследок для "нубов" (не люблю это слово, всем без обид) - есть функция автоматической очистки локалок, радуемся.



Добавлено (29 Сентябрь 2012, 12:12:56)
---------------------------------------------

Небольшое обновление библиотеки подсветки синтаксиса tesh.dll


Вы также можете скачать библиотеку подсветки и автодополнения отдельно.
Файл копируем в папку tesh директории Вашего JNGP.



╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек


Сообщение отредактировал Ty3uK - Пятница, 02 Марта 2012, 14:16:46
 

DreiiДата: Пятница, 02 Марта 2012, 14:21:05 | Сообщение # 2
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
а статик локалки работайут?

 

SirNikolasДата: Пятница, 02 Марта 2012, 14:21:50 | Сообщение # 3
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (Ty3uK)
надеюсь, лавочку не прикроют -_-
С чего бы вдруг?!
Quote (RGhost.ru)
Скачан 1 раз
Ушел тестить.


 

Ty3uKДата: Пятница, 02 Марта 2012, 14:24:06 | Сообщение # 4
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Dreii, да

Добавлено (02 Март 2012, 14:23:25)
---------------------------------------------
Особенно порадовало упрощенное создание Инита через callback (ну в примере видно)

Добавлено (02 Март 2012, 14:24:06)
---------------------------------------------
SirNikolas, недооформленно trollface


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Пятница, 02 Марта 2012, 14:46:52 | Сообщение # 5
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Цитата (Ty3uK)
[code=jass]do { ... }[/code]
[code=jass]loop { ... }[/code]


 

Ty3uKДата: Пятница, 02 Марта 2012, 14:48:54 | Сообщение # 6
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
SirNikolas, я знаю, но местами тогда придется много кода переписывать

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Пятница, 02 Марта 2012, 15:20:30 | Сообщение # 7
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Ругается на vJASS'овские for/endfor из-за cJASS'овских #for/#endfor.


 

Ty3uKДата: Пятница, 02 Марта 2012, 15:22:10 | Сообщение # 8
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
SirNikolas, //!nocjass //!endnocjass
откуда инфа про карту?


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Пятница, 02 Марта 2012, 15:33:41 | Сообщение # 9
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Цитата (Ty3uK)
//!nocjass //!endnocjass
Забавно, но лучше было бы решение вроде[code=jass]static if CJASS then
//...
endif[/code], т. е. компилируемое из-под vJass.


 

Ty3uKДата: Пятница, 02 Марта 2012, 15:38:56 | Сообщение # 10
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
SirNikolas, где?! О_О

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Пятница, 02 Марта 2012, 19:52:26 | Сообщение # 11
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Цитата (SirNikolas)
компилируемое из-под vJass
Все, понял.[code=jass]//! nocjass
//! novjass
//! endnocjass
//cJASS включен
//! nocjass
//! endnovjass
//cJASS выключен
//! endnocjass[/code]


 

Ty3uKДата: Пятница, 02 Марта 2012, 21:26:06 | Сообщение # 12
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Ну я в таких фичах vJass не шарю :)

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

lawsonДата: Пятница, 02 Марта 2012, 22:18:38 | Сообщение # 13
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Ух ты, наконец какое - то разнообразие циклов.

Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!


Сообщение отредактировал lawson - Пятница, 02 Марта 2012, 22:18:50
 

Ty3uKДата: Суббота, 03 Марта 2012, 07:26:50 | Сообщение # 14
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Там не только циклы. Колбэк мне жутко понравился

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Воскресенье, 04 Марта 2012, 15:58:16 | Сообщение # 15
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
А еще есть [code=jass]callback onInit() { ... }[/code]

 

Ty3uKДата: Понедельник, 02 Апреля 2012, 13:58:46 | Сообщение # 16
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Спасибо :)

Добавлено (02 Апрель 2012, 13:58:46)
---------------------------------------------
Ник, замени пожалуйста ссылочку в первом посте на постоянную


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

HexingДата: Понедельник, 02 Апреля 2012, 17:00:39 | Сообщение # 17
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
а где про каллбэки почитать можно?

 

Ty3uKДата: Понедельник, 02 Апреля 2012, 17:07:38 | Сообщение # 18
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Нигде. Коллбэк просто транслируется в инитфунку либы или скопа, создавая локальный триггер и добавляя ему действие, код которого находился в блоке коллбэка

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Понедельник, 02 Апреля 2012, 17:36:27 | Сообщение # 19
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Причем несколько callback'ов, реагирующие на одно событие, но имеющие разные условия, создают всего один триггер.

 

Ty3uKДата: Понедельник, 02 Апреля 2012, 18:05:03 | Сообщение # 20
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Не знал, спасибо :)

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

HexingДата: Вторник, 03 Апреля 2012, 15:39:02 | Сообщение # 21
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
блин, тузик, наделал делов:
[code=jass]void Reward(int xp, int gold) {
int i = 0;
whilenot(i == 10) {
if(heroes[i]!=null) {
AddHeroXP(heroes[i], xp, true);
texttag tt = CreateTextTag();
SetTextTagText(tt, "+"+I2S(xp), 0.0480);
SetTextTagPos(tt, GetUnitX(heroes[i])-25.0, GetUnitY(heroes[i]), 0.0);
SetTextTagColor(tt, 200, 0, 200, 255);
SetTextTagLifespan(tt, 8.0);
SetTextTagPermanent(tt, false);
SetTextTagVelocity(tt, GetRandomReal(-0.01,0.01), GetRandomReal(0.02,0.04));
SetPlayerState(Player(i), PLAYER_STATE_RESOURCE_GOLD, GetPlayerState(Player(i), PLAYER_STATE_RESOURCE_GOLD)+gold);
}
i++;
}
tt=null;
} [/code]
превращается в:
Цитата
[code=jass]function Reward takes integer xp,integer gold returns nothing
local integer i=0
local texttag cjlocgn_00000000
loop
exitwhen ( i == 10 )
if ( s__heroes[i] != null ) then
call AddHeroXP(s__heroes[i], xp, true)
set cjlocgn_00000000=CreateTextTag()
call SetTextTagText(cjlocgn_00000000, "+" + I2S(xp), 0.0480)
call SetTextTagPos(cjlocgn_00000000, GetUnitX(s__heroes[i]) - 25.0, GetUnitY(s__heroes[i]), 0.0)
call SetTextTagColor(cjlocgn_00000000, 200, 0, 200, 255)
call SetTextTagLifespan(cjlocgn_00000000, 8.0)
call SetTextTagPermanent(cjlocgn_00000000, false)
call SetTextTagVelocity(cjlocgn_00000000, GetRandomReal(- 0.01, 0.01), GetRandomReal(0.02, 0.04))
call SetPlayerState(Player(i), PLAYER_STATE_RESOURCE_GOLD, GetPlayerState(Player(i), PLAYER_STATE_RESOURCE_GOLD) + gold)
endif
set i=i + 1
endloop
set tt=null
endfunction[/code]

тобишь он не переименовывает set tt=null на set cjlocgn_00000000=null
пофиксите, или я старый jngp скачаю лучше, ато привык же уже расставлять переменные прямо в коде


 

Ty3uKДата: Вторник, 03 Апреля 2012, 15:46:14 | Сообщение # 22
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
flush locals в помощь. И такая кака случается только если ты объявляешь локалки в блоках иф зен, фор, луп и иже с ними

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Вторник, 03 Апреля 2012, 15:47:25 | Сообщение # 23
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Вместо "tt = null;" пиши "flush locals".

 

Ty3uKДата: Вторник, 03 Апреля 2012, 15:48:15 | Сообщение # 24
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
И мне интересно, как я должен фиксить? Я асм не знаю. Но флюш локалс тебя спасет

Добавлено (03 Апрель 2012, 15:48:15)
---------------------------------------------
Бтв, при наличии соответствующей галочки в меню cJass эта директива не нужна. Но это к слову


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Вторник, 03 Апреля 2012, 15:57:57 | Сообщение # 25
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Ну вот, я же говорил, что флаш локалз глючит. Она не обнуляет тексттэги.

Hexing, а вообще, если сравнивать с Си, в твоем коде под переменную tt память бы выделялась и освобождалась 10 раз. Поэтому лучше приучатся не объявлять переменные в циклах.


 

  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz