Данный ресурс работает ТОЛЬКО с патчами 1.24e/1.26а/1.27a/1.27b/1.28f и требует UjAPI
Как пользоваться?
- Перенесите AngelScript.dll в папку Modules в папке UjAPI.
- Запустите UjAPI.exe и отметьте чекбокс "Load Library" в секции AngelScript.
- Запустите игру.
- Наслаждайтесь.
Как программировать?
- Создайте war3map.as файл, в этом файле вы будете писать код.
- Добавьте файл через менеджер импорта или же MPQ по пути Scripts\\war3map.as или же просто war3map.as.
- Запустите UjAPI со включённой опцией AngelScript.
- Наслаждайтесь.
В чём особенность AngelScript?
- Строгая типизация как в Jass.
- Возможность создавать свои объекты/классы.
- Современные парадигмы и их особенности.
- Возможность программировать код по кускам за счёт "#include".
- Скорость сравнимая с lua, без её проблем.
- И многое другое.
Парсер/Проверка синтаксиса и простое выполнение:
- Скачать: файлы.
Пометка: common.j и blizzard.as рекомендуется вручную брать из последнего релиза UjAPI.mpq - Перетащите ваш файл в приложение.
- В консоль выведутся предупреждения/ошибки.
Подсветка для AngelScript:
Пример кода:
expand
#include "Scripts\\blizzard.as" // это подключит blizzard.as (транспилированный blizzard.j) в проект.
void SomeFunction( )
{
print( "SomeFunction\n" );
}
void main( )
{
TimerStart( CreateTimer( ), 1.f, false, @SomeFunction ); // @ используется для создания делегата, в данном случае ссылки на функцию.
TimerStart( CreateTimer( ), 1.f, false, function( )
{
print( "OnSomeTimerAction\n" );
} ); // Данный вид написания тоже валиден, в данном случае мы используем лямбду (анонимную функцию).
// Пример лямбды с триггером.
trigger tTest = CreateTrigger( );
player p = Player( 0 );
TriggerRegisterPlayerEvent( tTest, p, EVENT_PLAYER_ARROW_LEFT_DOWN ); // ConvertPlayerEvent(261)
TriggerAddCondition( tTest, Filter(
function( )
{
print( "OnSomeStupidCond\n" );
return true;
}
)
);
TriggerAddAction( tTest,
function( )
{
print( "OnSomeStupidAct\n" );
}
);
}
void config( )
{
// Логика этой функции в точности копирует поведение функции config в Jass, потому тут показывать нечего.
}
тогда уж и github.com/wronex/sublime-angelscript но разве оно не ставится прямо из приложения?
Edited by Unryze
v1.0.1.2
v1.0.2.6
v1.0.2.7
v1.0.2.9
Edited by Алексей Андреич
Через MPQ-редактор все нормально.
Так же прогнав код из примере через парсер получил сообщения об ошибке:
без UjAPI происходит тоже самое. Как и в обычном WE. И не только со скриптами. Пытался заменить текстуру ландшафта - та же проблема. Переустановка JNGP не дала результатов. Чуть позже проверю на другой машине, надеюсь, поможет.
Тогда только жду обновление парсера. Спасибо.
Edited by Makeba
Edited by Unryze
AngelScript v1.0.4.16
AngelScript Parser 1.0.3.14
Edited by Vampir_kolik
Edited by Unryze