[UjAPI] Конкурс Наработок 2024

Приём работ закрыт
Уважаемые пользователи XGM, представляю вашему вниманию конкурс наработок на UjAPI!
Да сразятся ваша фантазия в купе с умелой реализацией против идей других участников!
37 1 202
20
EugeAl, творческая составляющая - это дополнительная оценка, разделять смысла нет, упор на 80+% будет именно на код и идею.
23
Эммм... тут ведь конкурс наработок на UjAPI
А будут оценивать ещё и образ, модели, текст, звук и оформление.
Мб тогда резон переделать конкурс в конкурс карт? Чтоб уж точно понятно было, что делать.
Просто кодовая наработка на то и наработка, что исключает из себя импортный визуал и не требует детального описания, ведь она не для демо визуала, а для механики
30
Пожалуй стоит описать весь существующий нынче функционал.

Документация

Редактор

Мнением большинства для работы был выбран JNGP: Rebuild от PT153. Главное не забудьте после установки удалить папку AdicHelper в корне редактора.

GUI

Братьев наших меньших мы тоже не забыли и добавили поддержку GUI для UjAPI. А так же все нативки из common.j, что позволит их использовать в проектах, не расчитанных на UjAPI.

Для установки просто поместите umswe.mpq с заменой в
Jass New Gen Pack\umswe\umswe.mpq

JetBrains

Если у вас есть одна из ниже перечисленных IDE, то можете установить JASS. В недавнем обновлении был добавлен автокомплит, кстати.
Нижеперечисленные IDE
  • IntelliJ IDEA (Ultimate, Community)
  • Android Studio
  • AppCode
  • Aqua
  • CLion
  • Code With Me Guest
  • DataGrip
  • DataSpell
  • GoLand
  • JetBrains Client
  • JetBrains Gateway
  • MPS
  • PhpStorm
  • PyCharm (Professional, Community)
  • Rider
  • RubyMine
  • RustRover
  • WebStorm
  • Writerside

VSCode

Все плагины к ней являются форком jass. Можете просто руками заменить common.j и пользоваться новыми нативками.
  • ujass форк jass, в котором добавлена подстветка нативок и BJ.
31
ну блин... а я только подумывал забросить прототип на ужопе...

UjAPI - AngelScript

Ресурс предназначенный для под-проекта UjAPI - AngelScript (это интерпретируемый язык программирования, разработанный специально для использования в качестве скриптового языка в приложениях).
В данном ресурсе будет вестись логирование изменений, а так же всяческие описания, примеры и прочее.
Программы
26 1 288
20
Вышла новая версия!
Прокрутить к ресурсу

AngelScript v1.0.4.16

1. Базовый код AngelScript обновлён до 2.36.1.
2. Добавлено std:sleep_ns(uint64_t) как внутреннее API, которое принимает nanoseconds.
3. Добавлено std:sleep_us(uint64_t) как внутреннее API, которое принимает microseconds.
4. Добавлено std:sleep_ms(uint64_t) как внутреннее API, которое принимает milliseconds.
5. Добавлено std:sleep(double) как внутреннее API, которое принимает float/double.
6. TriggerSleepAction теперь использует std::sleep(double), раннее ничего не делало.
7. Изменены << и <<= операторы с Логических в Арифметические.
8. Изменены >>, >>> и >>= операторы с Логических в Арифметические.
9. Добавлен оператор <<< как Логическия операция.

AngelScript Parser 1.0.3.14

1. AngelScript base code updated в 2.36.1.
2. Добавлено std:sleep_ns(uint64_t) как внутреннее API, которое принимает nanoseconds.
3. Добавлено std:sleep_us(uint64_t) как внутреннее API, которое принимает microseconds.
4. Добавлено std:sleep_ms(uint64_t) как внутреннее API, которое принимает milliseconds.
5. Добавлено std:sleep(double) как внутреннее API, которое принимает float/double.
6. TriggerSleepAction теперь использует std::sleep(double), раннее ничего не делало.
7. Изменены << и <<= операторы с Логических в Арифметические.
8. Изменены >>, >>> и >>= операторы с Логических в Арифметические.
9. Добавлен оператор <<< как Логическия операция.
10. Добавлена опция RunTimers в settings.ini, это контролирует будут ли созданы и запущены таймеры.
Ресурс предназначенный для логирования изменений в проекте UjAPI, а так же для краткого ознакомления со внесёнными изменениями.
90 2 143
20
Вышла новая версия!
Прокрутить к ресурсу

v1.1.15.218

UjAPI.dll

1. Новые Константы:
	constant frameeventtype				FRAMEEVENT_FRAME_ITEM_CHANGED								= ConvertFrameEventType(10)
	constant controlstyleflag 			CONTROL_STYLE_DRAW											= ConvertControlStyleFlag(32)
2. Новые Нативные Функции:
	native BitwiseShiftLeftLogical							takes integer i, integer bitsToShift returns integer
	native BitwiseShiftRightLogical							takes integer i, integer bitsToShift returns integer
	//
	native CountUnitAbilities								takes unit whichUnit, boolean alsoCountBuffs returns integer
	native CountUnitBuffs									takes unit whichUnit returns integer
	//
	native GetBuffOwningAbility								takes buff whichbuff returns ability // experimental
	native SetBuffOwningAbility								takes buff whichBuff, ability whichAbility returns nothing // experimental
	//
	native SetProjectileSourceAbility						takes projectile whichProjectile, ability whichAbility returns nothing
	//
	native GetFrameChildrenCountEx							takes framehandle whichFrame, integer listId returns integer // listId: CFrames: 0 for default | 1 for layouts (will return CLayer) | CSimpleFrames 0 - 6 | CSimpleRegions any number, as they only have 1 child node.
	native GetFrameChildEx									takes framehandle whichFrame, integer listId, integer index returns framehandle
	native GetFrameTextAlignmentValue						takes framehandle whichFrame, integer id returns real // CSimpleFontString: 0 - x, 1 - y | CTextFrame: 0 - x, 1 - y, 2 - x Shadow, 3 - y Shadow, 4 = FontJustificationOffset
	native SetFrameTextAlignmentValue						takes framehandle whichFrame, integer id, real offset returns nothing
	native GetTriggerFrameTargetFrame						takes nothing returns framehandle
3. Исправлена поддержка отрицательных чисел с сеттерами цифровых полей, ранее они обрабатывались без знака.
4. CListBox API теперь работает с CMenu.
5. CListBox API теперь работает с CPopupMenu.
6. CListBox API теперь работает с CRadioGroup.
7. GetFrameTextColourEx теперь работает с CListBoxItem.
8. SetFrameTextColourEx теперь работает с CListBoxItem.
9. SetFrameFont теперь работает с CTimerTextFrame.
10. SetFrameFont теперь работает с CListBoxItem.
11. SetFrameTextAlignment теперь работает с CTimerTextFrame.
12. SetFrameTextAlignment теперь работает с CListBoxItem.
13. SetFrameTextVerticalAlignment теперь работает с CTimerTextFrame.
14. SetFrameTextVerticalAlignment теперь работает с CListBoxItem.
15. SetFrameTextHorizontalAlignment теперь работает с CTimerTextFrame.
16. SetFrameTextHorizontalAlignment теперь работает с CListBoxItem.
17. FRAMEEVENT_POPUPMENU_ITEM_CHANGED теперь работает с CListBox.
18. AddFrameListItem теперь работает с CRadioGroup.
19. FRAMEEVENT_POPUPMENU_ITEM_CHANGED теперь работает с CRadioGroup.
20. Исправлено SetLightningTargetX устанавливающее x источника, вместо цели.
21. Исправлено SetLightningTargetY устанавливающее y источника, вместо цели.
22. Исправлено SetLightningTargetZ устанавливающее z источника, вместо цели.
23. Исправлено SetLightningTargetPositionLoc устанавливающее позицию источника, вместо цели.
24. Исправлено GroupContainsUnit всегда возвращающее true.
25. Перенесён весь внутренний код jFramea API во FrameAPI. Это пометка для себя, данное изменение не должно повлиять ни на что.
26. Исправлено BlzSetUnitMaxMana устанавливающее максимальное здоровье вместо маны.
27. Исправлено не работающее SetFrameTextHorizontalAlignment.
28. Исправлено SetFrameTextColourEx для CSimpleFontString.

Launcher

1. CLI теперь может обрабатывать эти warcraft 3 комманды: d3d, opengl, swtnl, classic, datadir, gametype, fullscreen.
2. Добавлена опция Dev Mode для AngelScript.
3. Добавлена опция Console для AngelScript.
4. Добавлена опция No Warnings для AngelScript.
5. Добавлена опция "dev" CLI команда для AngelScript.
6. Добавлена опция "console" CLI команда для AngelScript.
7. Добавлена опция "nowarnings" CLI команда для AngelScript.
8. Добавлен модуль FastMenu.dll в Modules.
9. Добавлена опция Fast Menu для Launcher.
10. Добавлена -fastmenu CLI команда для Launcher.

UjAPI

UjAPI — полноценная модификация для Warcraft III версий 1.24e/1.26а/1.27a/1.27b/1.28f кардинально расширяющая функционал игры, добавляющая новые native-функции и типы доступные в редакторе, исправляющая известные проблемы (утечки, неработающие функции и т.п.)
Дополнительно планируется интегрировать и другие проекты, такие как UjAPI - AngelScript, War3 LUA.
В данный момент для тестов и нахождения недочётов доступен альфа-релиз.
Лауреат премии 2023 года
347 7 866
20
Вышла новая версия!
Прокрутить к ресурсу

v1.1.15.218

UjAPI.dll

1. Новые Константы:
	constant frameeventtype				FRAMEEVENT_FRAME_ITEM_CHANGED								= ConvertFrameEventType(10)
	constant controlstyleflag 			CONTROL_STYLE_DRAW											= ConvertControlStyleFlag(32)
2. Новые Нативные Функции:
	native BitwiseShiftLeftLogical							takes integer i, integer bitsToShift returns integer
	native BitwiseShiftRightLogical							takes integer i, integer bitsToShift returns integer
	//
	native CountUnitAbilities								takes unit whichUnit, boolean alsoCountBuffs returns integer
	native CountUnitBuffs									takes unit whichUnit returns integer
	//
	native GetBuffOwningAbility								takes buff whichbuff returns ability // experimental
	native SetBuffOwningAbility								takes buff whichBuff, ability whichAbility returns nothing // experimental
	//
	native SetProjectileSourceAbility						takes projectile whichProjectile, ability whichAbility returns nothing
	//
	native GetFrameChildrenCountEx							takes framehandle whichFrame, integer listId returns integer // listId: CFrames: 0 for default | 1 for layouts (will return CLayer) | CSimpleFrames 0 - 6 | CSimpleRegions any number, as they only have 1 child node.
	native GetFrameChildEx									takes framehandle whichFrame, integer listId, integer index returns framehandle
	native GetFrameTextAlignmentValue						takes framehandle whichFrame, integer id returns real // CSimpleFontString: 0 - x, 1 - y | CTextFrame: 0 - x, 1 - y, 2 - x Shadow, 3 - y Shadow, 4 = FontJustificationOffset
	native SetFrameTextAlignmentValue						takes framehandle whichFrame, integer id, real offset returns nothing
	native GetTriggerFrameTargetFrame						takes nothing returns framehandle
3. Исправлена поддержка отрицательных чисел с сеттерами цифровых полей, ранее они обрабатывались без знака.
4. CListBox API теперь работает с CMenu.
5. CListBox API теперь работает с CPopupMenu.
6. CListBox API теперь работает с CRadioGroup.
7. GetFrameTextColourEx теперь работает с CListBoxItem.
8. SetFrameTextColourEx теперь работает с CListBoxItem.
9. SetFrameFont теперь работает с CTimerTextFrame.
10. SetFrameFont теперь работает с CListBoxItem.
11. SetFrameTextAlignment теперь работает с CTimerTextFrame.
12. SetFrameTextAlignment теперь работает с CListBoxItem.
13. SetFrameTextVerticalAlignment теперь работает с CTimerTextFrame.
14. SetFrameTextVerticalAlignment теперь работает с CListBoxItem.
15. SetFrameTextHorizontalAlignment теперь работает с CTimerTextFrame.
16. SetFrameTextHorizontalAlignment теперь работает с CListBoxItem.
17. FRAMEEVENT_POPUPMENU_ITEM_CHANGED теперь работает с CListBox.
18. AddFrameListItem теперь работает с CRadioGroup.
19. FRAMEEVENT_POPUPMENU_ITEM_CHANGED теперь работает с CRadioGroup.
20. Исправлено SetLightningTargetX устанавливающее x источника, вместо цели.
21. Исправлено SetLightningTargetY устанавливающее y источника, вместо цели.
22. Исправлено SetLightningTargetZ устанавливающее z источника, вместо цели.
23. Исправлено SetLightningTargetPositionLoc устанавливающее позицию источника, вместо цели.
24. Исправлено GroupContainsUnit всегда возвращающее true.
25. Перенесён весь внутренний код jFramea API во FrameAPI. Это пометка для себя, данное изменение не должно повлиять ни на что.
26. Исправлено BlzSetUnitMaxMana устанавливающее максимальное здоровье вместо маны.
27. Исправлено не работающее SetFrameTextHorizontalAlignment.
28. Исправлено SetFrameTextColourEx для CSimpleFontString.

Launcher

1. CLI теперь может обрабатывать эти warcraft 3 комманды: d3d, opengl, swtnl, classic, datadir, gametype, fullscreen.
2. Добавлена опция Dev Mode для AngelScript.
3. Добавлена опция Console для AngelScript.
4. Добавлена опция No Warnings для AngelScript.
5. Добавлена опция "dev" CLI команда для AngelScript.
6. Добавлена опция "console" CLI команда для AngelScript.
7. Добавлена опция "nowarnings" CLI команда для AngelScript.
8. Добавлен модуль FastMenu.dll в Modules.
9. Добавлена опция Fast Menu для Launcher.
10. Добавлена -fastmenu CLI команда для Launcher.