Берги, если бы физ. движок не требовал сторонней библиотеки, он бы безусловно победил. Ну и конечно в плане применения он так же ограничен на фоне фреймов (хотя ты и сам знаешь я не дикий фанат фреймов). Объективно обе работы хороши, мой фаворит всё же физ. движок, но увы.
Таренас, на будущее, нужно советовать потенциальным участникам всё же писать в треде, добавлять "мимо кассы" - был бы нечестный поступок в сторону участников.
Vampir_kolik, указатели в скриптовом языке? Чтобы ты и себе и собрату отстрелил пятую точку? Потоков как таковых там нет, точно так же как на луа их нет. Движок AS делегирует на псевдопотоки. А ручного управления потоками я лично не давал. Ну и в целом для этого есть гугл: Документация и API: www.angelcode.com/angelscript/sdk/docs/manual/group_api _multithread_functions.html (нужно удалить пробелы между _ _.
rsfghd, на конкурс ты можешь выставлять эту работу спокойно, да и другую тоже, этим я никого ограничивать не собираюсь. А по поводу запуска карты, не знаю к сожалению, ибо у кого были проблемы (включая меня) их уже нет. всё что можно было прооптимизировать - я оптимизировал.
SсRealm, что за тотальную стену ереси ты написал (если это была не вне сезонная перво-апрельская шутка только).
Для не особо понимающих поясняю, что "отдельный" патч игры сделать банально не получится, ибо нет исходников, и то, что ты якобы "описал" - это басни/сказочки.
Расскажи мне тогда, что такое KK/m16/W3CE и другие мелкие проекты, каждый из которых выполняет всё так же как и я?
Я очень надеюсь что ты так не смешно пошутил и впредь изучишь книгу шуток.
Ikobot, видать нужно было добавить то, что и так было ожидаемо:
AS > lua > Jass > GUI в плане приоритета (хотя как это было не наглядно не понимаю, ибо упор на НОВЫЙ функционал, новый Язык - тоже к этому относится).
И чем же установка AS - сложная? Скачиванием модуля и парой кликов опций? Серьёзно?
Ну и конечно же, качество кода важнее даже указанного приоритета, просто у более приоритетных языков будут бонусы, что оценивать будет как минимум один человек, который в этом разбирается...
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, это контролирует будут ли созданы и запущены таймеры.
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.
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.
Makeba, редактирование World Editor'a ужасно геморройное занятие, так что скорее нет, чем да. Ибо мне тяжко вообще оправдать трудочасы на него, учитывая все его проблемы, да и когда есть тот же w3x2lni.
PT153, ты готов писать описания 2000 нативкам, которые по факту своими именами поясняю то, за что они отвечают? Или я должен работу целой компании (в которой людям ещё и платят) делать в одиночку ещё и за "а мы попросим, но потом не прочитаем". Толку от этого комьюнити, если оно само не хочет ничего делать?
PT153, GetHeroMaxLevelExperienceNeeded возвращает сколько нужно ещё опыта до достижения уровня.
GetHeroExperienceNeeded - внутри движка требует юнита, чтобы проверить данные и провести пересчёты, ибо юнит может иметь флаг RoC и просчёт опыта будет по-другому.
//----- (6F207760) --------------------------------------------------------
int __stdcall Game::Data::GetExperienceNeededForLevel(int a1)
{
int v1; // esi
unsigned int v2; // eax
v1 = a1;
v2 = (unsigned int)Engine::Config::ReadInteger((int)"Misc", (int)"MaxHeroLevel", 0) - 1;
if ( a1 - 1 > v2 )
v1 = (v2 & ~((a1 - 1) >> 31)) + 1;
return sub_6F00B0E0(v1 - 1);
}
int __thiscall CUnit::GetLevelExperienceNeeded(uint32_t *this, int a1) // unit, level
{
int result; // eax
if ( this[124] )
result = Game::Data::GetExperienceNeededForLevel(a1);
else
result = 0;
return result;
}
int32_t CUnit::GetHeroExperienceNeeded( CUnit* unit, int32_t level )
{
return ( pOffsets[ Enum::Offsets::GetHeroXPNeeded ] && CUnit::IsOkay( unit ) && CUnit::IsHero( unit ) && !CUnit::IsTower( unit ) ) ? this_call<int32_t>( pOffsets[ Enum::Offsets::GetHeroXPNeeded ], unit, level ) : NULL;
}
Индексации видать у них под капотом даже для уровней идут с нуля. Ты можешь идти оспаривать эту логику с Blizzard, мои ручки умыты.
Юнита в целом можно убрать, но нужно тогда менять оффсет, а мне немного лень, да и так в целом правильнее~.
DracoL1ch, Если точнее, то любая аура автоматически накладывается на нового созданно юнита, если он входит в АоЕ ауры. То бишь не на карту, а при подходе юнита в рейндж юнита с аурой.
Пруф:
А тут смена обновления тика таймера ауры (ауры обновляются лишь при конце тика таймера) с 2 сек на .1 сек.
» Unryze Jass API / [UjAPI] Конкурс Наработок 2024
» Unryze Jass API / [UjAPI] Конкурс Наработок 2024
Ред. Unryze
» Unryze Jass API / [UjAPI] Конкурс Наработок 2024
» Unryze Jass API / [UjAPI] Конкурс Наработок 2024
Ред. Unryze
» Unryze Jass API / UjAPI - AngelScript
» Unryze Jass API / [UjAPI] Конкурс Наработок 2024
» WarCraft 3 / [UjAPI] Chest Puzzle
» WarCraft 3 / [UjAPI] Chest Puzzle
» WarCraft 3 / FPS Unlocker
Froscher, ;)
» Unryze Jass API / [UjAPI] Конкурс Наработок 2024
» WarCraft 3 / Скрытая геройская способность( без даммика)
» WarCraft 3 / Как изменить инконку у способности во время игры?
» WarCraft 3 / Как изменить инконку у способности во время игры?
» WarCraft 3 / Как изменить инконку у способности во время игры?
Ред. Unryze
» Unryze Jass API / [UjAPI] Конкурс Наработок 2024
Ред. Unryze
» Unryze Jass API / [UjAPI] Конкурс Наработок 2024
Ред. Unryze
» Unryze Jass API / UjAPI - AngelScript
AngelScript v1.0.4.16
AngelScript Parser 1.0.3.14
» Unryze Jass API / UjAPI - Что нового?
v1.1.15.218
UjAPI.dll
Launcher
Ред. Unryze
» Unryze Jass API / UjAPI
v1.1.15.218
UjAPI.dll
Launcher
» Unryze Jass API / UjAPI - AngelScript
» Unryze Jass API / UjAPI
» Unryze Jass API / UjAPI
Ред. Unryze
» Unryze Jass API / UjAPI
GetHeroExperienceNeeded - внутри движка требует юнита, чтобы проверить данные и провести пересчёты, ибо юнит может иметь флаг RoC и просчёт опыта будет по-другому.
» WarCraft 3 / Проблема с ACac
Ред. Unryze
» WarCraft 3 / Проблема с ACac