0
20
3 дня назад
0

» Unryze Jass API / UjAPI - AngelScript

В данный момент не дома, AngelScript не был создан для WE, ошибка тоже странная, буду дома гляну сам.
По парсеру - там отдельная ошибка, точнее мой косяк, я когда добавлял новые типы именно в парсере забыл добавить их регистрацию, обновлю его скоро.
0
20
1 неделю назад
0

» Unryze Jass API / UjAPI - Jass vs lua vs AngelScript

Вышла новая версия!
Исправлен тестовый код AngelScript под последнюю версию, где более нет нужды в FourCC ибо теперь есть поддержка равкодов.
Исправлен карта в архиве.
0
20
1 неделю назад
0

» Unryze Jass API / UjAPI

EugeAl, карты есть, но меня это особо не заботит. Установка и так проще некуда, а твоя затея буквально странная… ибо не нужно менять никакие .exe файлы, и вообще ужапи должна ставиться в отдельную папку. 2024 год, тяжело разархивировать файлы в папку (это вся установка) и указать путь к игре/редактору (как-то с Magos люди справлялись). Ну и закончим тем, что вдруг у кого-то несколько сборок (как у меня) и автоматом выберется не та? Да и опять же, можно буквально копипастнуть путь напрямую, а не искать по папкам.
Ну блин, реально несерьёзно как-то заявлять о сложности установки.
0
20
1 неделю назад
0

» Unryze Jass API / UjAPI

Borodach, а документация на джасс от Близзард была? Я что-то не помню… а, вспомнил, нет, не было.
И опять же, минимальное знание английского языка - уже служит документацией, но, если ты готов расписать 2000+ нативок, еще и документацией, я готов на это посмотреть.
1
20
2 недели назад
1

» IntelliJASS / Переменные

EugeAl, да, `set someInts[1000] = 5000 первая установка значения так же инициализирует индексы от 0 до X` Как я и указал индексы от 0 до 1023 (ибо размер 1024) будут заполнены нулями, а индекс 1000 примет значение 5000.
Уйму статей потому я и опровергал в Jass Mythbusters, и потому был дан резкий ответ, чтобы последующие мифы не рождались.
2
20
2 недели назад
Отредактирован Unryze
2

» IntelliJASS / Переменные

globals
	integer array someInts // массив пустой, get любого индекса вернёт 0, по указанным выше причинам.
endglobals

function TestArrayStuff takes nothing returns nothing
	set someInts[1000] = 5000 // первая установка значения так же инициализирует индексы от 0 до X по мере возрастания 1/2/4/8/16/32/64 то есть после 64 индекса расти будет по 64. И того выделиться размер в 1024, то бишь от 0 до 1023.
endfunction
Поясняю, в Jass нельзя именно инициализировать массив, ибо он растёт автоматически, у него нет требования указания строго размера как допустим в AS:
array<unit> U_SelectionSelArr( 12 );
Ты путаешь вещи, и писать "проверено" - не проверив / не зная внутренности движка - и есть "дезинформация", ибо ответ твой был в корне неверный.
Ну и закончим опять же этим кодом:
//----- (6F459730) --------------------------------------------------------
int __thiscall JassVM::GetArrayValueById(uint32_t *this, unsigned int a2)
{
  int result; // eax

  if ( a2 < this[2] )
    result = *(uint32_t *)(this[3] + 4 * a2);
  else
    result = 0;
  return result;
}
Даже без знания ЯП у тебя лишь 2 варианта:
  1. a2 (индекс) меньше числа (размера) - то вернуть это число по индексу a2.
  2. a2 (индекс) больше или равен числу (размеру) - то вернуть 0.
Ну ты и опирался на 2) не понимая почему так.
1
20
2 недели назад
1

» IntelliJASS / Переменные

EugeAl, ещё раз, посмотри мои скрины глазами, а не пятой точкой. То, что "null" применимо к string - не значит, что это СТОИТ использовать, джассу то пофиг, ибо строки по сути в переменной хранят индекс на текст, а не сам текст. Потому 0 = null = "", но когда это дело нужно транслировать допустим в AS, то начинаются отстрелы задниц, когда строки сравнивают с null, что недопустим в AS.
Повторяю на более простом языке, когда у тебя массив только объявлен, то размер равен нулю, так как индекс 0 >= размеру, то возвращается всегда 0, не потому что в нём есть значение, а потому что 0 - это стандартное значение. На кой болт ты споришь - непонятно.
И повторюсь в третий раз, ВЫВОД 0 НЕ ОЗНАЧАЕТ ЧТО У НАС БЫЛА ИНЦИАЛИЗАЦИЯ, то, что игра не отстреливает - как раз причина проверки индекса против размера.
Надеюсь столько повторений хватит.
1
20
2 недели назад
1

» IntelliJASS / Переменные

Открою секрет, массив не иницилизирован пока не используется set, а 0 возвращается так как это стандартное значение. 0 в string = "" или же null.
Измерение свечками - это конечно прикольно, но не стоит распространять дезинформацию, не проведя тестов/не изучив внутренности. :(
Загруженные файлы
0
20
2 недели назад
0

» Unryze Jass API / UjAPI - Что нового?

Вышла новая версия!

v1.1.14.215

1. Исправлена SetTextTagText не работающая с текстами отличными от TRIGSTR_ из-за предидущего исправления.
2. Исправлена Get/SetBlendMode с CSimpleFontString.
2
20
2 недели назад
2

» Unryze Jass API / UjAPI

Вышла новая версия!

v1.1.14.215

1. Исправлена SetTextTagText не работающая с текстами отличными от TRIGSTR_ из-за предидущего исправления.
2. Исправлена Get/SetBlendMode с CSimpleFontString.
0
20
2 недели назад
0

» WarCraft 3 / Фатальная ошибка у артилерии

SсRealm, так мою наработку ещё никто не оскорблял... ;(
0
20
2 недели назад
0

» IntelliJASS / Функции

ScorpioT1000, ExecuteCode не медленнее, ибо не нужно лишний раз искать function id по имени. Ну и ExecuteFuncEx тоже быстрее ExecuteFunc, опять же, решать выдуманную проблему костылём < снять ОП лимит и не мучаться.
0
20
2 недели назад
0

» WarCraft 3 / Фатальная ошибка у артилерии

EugeAl, Любой вид сфер вызывает краш артиллерии, фикс этого краша я не с проста делал. Говоря проще, игра берёт сферу и пытается запустить её по логике артиллерии (позиция функции и аргументы отличаются) и получается краш. Фикс как в рефе - банально считывает модельку сферы и меняет модель, не меняя более ничего.
Загруженные файлы
0
20
2 недели назад
Отредактирован Unryze
0

» IntelliJASS / Функции

ScorpioT1000, ExecuteCode уже это выполняет. Да и на ужапи есть вот что:
native IsOperationLimitEnabled							takes nothing returns boolean
native EnableOperationLimit								takes boolean enable returns nothing
native GetOperationLimit								takes nothing returns integer
native SetOperationLimit								takes integer opLimit returns nothing
Либо ставим лимит выше в 10 или выше раз или просто его полностью снимаем и забиваем на все проблемы.
1
20
2 недели назад
1

» Unryze Jass API / UjAPI - Что нового?

Вышла новая версия!

v1.1.14.214

1. Изменение типов:
	type effect												extends war3image
	type trackable											extends war3image
2. Новые Константы:
	constant abilityintegerfield		ABILITY_IF_BUTTON_POSITION_SPELLBOOK_X						= ConvertAbilityIntegerField('asbx') // Ability Instance only
	constant abilityintegerfield		ABILITY_IF_BUTTON_POSITION_SPELLBOOK_Y						= ConvertAbilityIntegerField('asby') // Ability Instance only
3. Новые Нативные Функции:
	native GetMouseMoveEventScreenAxisEnabled				takes nothing returns boolean
	native SetMouseMoveEventScreenAxisEnabled				takes boolean enable returns nothing // Enables GetTriggerPlayerMouseScreenX/Y, default: on.
	native GetMouseMoveEventWorldAxisEnabled				takes nothing returns boolean
	native SetMouseMoveEventWorldAxisEnabled				takes boolean enable returns nothing // Enables GetTriggerPlayerMouseWorldX/Y/Z, default: off.
	native GetMouseMoveEventDelay							takes nothing returns integer
	native SetMouseMoveEventDelay							takes integer delay returns nothing // delay is in ticks (ms), default: 10
	//
	native IsHandleDestroyed								takes handle whichHandle returns boolean // this returns internal state of the object, whenever it's nullptr or CAgentBaseAbs was removed.
	//
	native GetWar3ImageSprite								takes war3image whichWar3Image returns sprite
	native IsWar3ImageVisible								takes war3image whichWar3Image returns boolean
	native SetWar3ImageVisible								takes war3image whichWar3Image, boolean visible returns nothing
	native IsWar3ImageInvulnerable							takes war3image whichWar3Image returns boolean
	native SetWar3ImageInvulnerable							takes war3image whichWar3Image, boolean invulnerable returns nothing
	native GetWar3ImageX									takes war3image whichWar3Image returns real
	native GetWar3ImageY									takes war3image whichWar3Image returns real
	native GetWar3ImageZ									takes war3image whichWar3Image returns real
	native GetWar3ImagePositionLoc							takes war3image whichWar3Image returns location
	native SetWar3ImagePositionLoc							takes war3image whichWar3Image, location whichLocation returns nothing
	native SetWar3ImagePosition								takes war3image whichWar3Image, real x, real y returns nothing
	native SetWar3ImagePositionWithZ						takes war3image whichWar3Image, real x, real y, real z returns nothing
	native SetWar3ImageX									takes war3image whichWar3Image, real x returns nothing
	native SetWar3ImageY									takes war3image whichWar3Image, real y returns nothing
	native SetWar3ImageZ									takes war3image whichWar3Image, real z returns nothing
	native ResetWar3ImageZ									takes war3image whichWar3Image returns nothing // returns Z control to game.
	native GetWar3ImageHeight								takes war3image whichWar3Image returns real
	native SetWar3ImageHeight								takes war3image whichWar3Image, real height returns nothing
	native GetWar3ImageScreenX								takes war3image whichWar3Image returns real
	native GetWar3ImageScreenY								takes war3image whichWar3Image returns real
	native GetWar3ImageVertexColour							takes war3image whichWar3Image returns integer
	native SetWar3ImageVertexColour							takes war3image whichWar3Image, integer red, integer green, integer blue, integer alpha returns nothing
	native GetWar3ImageTimeScale							takes war3image whichWar3Image returns real
	native SetWar3ImageTimeScale							takes war3image whichWar3Image, real timeScale returns nothing
	native GetWar3ImageScale								takes war3image whichWar3Image returns real
	native SetWar3ImageScale								takes war3image whichWar3Image, real scale returns nothing
	native GetWar3ImageFacing								takes war3image whichWar3Image returns real
	native SetWar3ImageFacing								takes war3image whichWar3Image, real facing, boolean isInstant returns nothing
	native SetWar3ImageMatrixScale							takes war3image whichWar3Image, real x, real y, real z returns nothing
	native ResetWar3ImageMatrix								takes war3image whichWar3Image returns nothing
	native SetWar3ImageOrientationEx						takes war3image whichWar3Image, real yaw, real pitch, real roll, integer eulerOrder returns nothing
	native SetWar3ImageOrientation							takes war3image whichWar3Image, real yaw, real pitch, real roll returns nothing
	native GetWar3ImageYaw									takes war3image whichWar3Image returns real
	native SetWar3ImageYaw									takes war3image whichWar3Image, real yaw returns nothing
	native GetWar3ImagePitch								takes war3image whichWar3Image returns real
	native SetWar3ImagePitch								takes war3image whichWar3Image, real pitch returns nothing
	native GetWar3ImageRoll									takes war3image whichWar3Image returns real
	native SetWar3ImageRoll									takes war3image whichWar3Image, real roll returns nothing
	native GetWar3ImageModelObjectX							takes war3image whichWar3Image, string whichObject returns real
	native GetWar3ImageModelObjectY							takes war3image whichWar3Image, string whichObject returns real
	native GetWar3ImageModelObjectZ							takes war3image whichWar3Image, string whichObject returns real
	native GetWar3ImageModelObjectPositionLoc				takes war3image whichWar3Image, string whichObject returns location
	native GetWar3ImageCurrentAnimationId					takes war3image whichWar3Image returns integer
	native GetWar3ImageCurrentAnimationName					takes war3image whichWar3Image returns string
	native SetWar3ImageAnimationWithRarityByIndex			takes war3image whichWar3Image, integer animIndex, raritycontrol rarity returns nothing
	native SetWar3ImageAnimationWithRarity					takes war3image whichWar3Image, string animationName, raritycontrol rarity returns nothing
	native SetWar3ImageAnimationByIndex						takes war3image whichWar3Image, integer animIndex returns nothing
	native SetWar3ImageAnimation							takes war3image whichWar3Image, string animationName returns nothing
	native QueueWar3ImageAnimationByIndex					takes war3image whichWar3Image, integer animIndex returns nothing
	native QueueWar3ImageAnimation							takes war3image whichWar3Image, string animationName returns nothing
	native GetWar3ImageAnimationOffsetPercent				takes war3image whichWar3Image returns real
	native SetWar3ImageAnimationOffsetPercent				takes war3image whichWar3Image, real percent returns nothing
	//
	native SetAbilityOwningAbility							takes ability whichAbility, ability whichSpellbook returns nothing
	native SetAbilityOwningItem								takes ability whichAbility, item whichItem returns nothing
	//
	native GetFrameBlendMode								takes framehandle whichFrame, integer textureId returns blendmode // 0 for CSimpleRegions.
	native SetFrameBlendMode								takes framehandle whichFrame, integer textureId, blendmode whichBlendMode returns nothing
	native GetFrameHighlight								takes framehandle whichFrame, integer highlightId returns framehandle // Gets highlights of CControl
	native GetFrameHighlightTexture							takes framehandle whichFrame, integer highlightId returns string // If highlighframe type is sent, it will modify itself instead, if ccontrol or its children, then it will check possible highlights.
	native SetFrameHighlightTexture							takes framehandle whichFrame, integer highlightId, string texturePath, blendmode blendMode returns nothing // 0 - FOCUS | 1 - ON HOVER
4. Исправлена GetUnitStringField всегда возвращающая "Default String" с UNIT_SF_HERO_ABILITY_LIST.
5. Исправлена UNIT_SF_ABILITY_LIST всегда возвращающая "Default String" с UNIT_SF_HERO_ABILITY_LIST.
6. GetTriggerPlayerMouseWorldX/Y/Z теперь отключено по стандарту для сохранения 12 байтов нетКода. Используйте SetMouseMoveEventWorldAxisEnabled для того, чтобы включить эту опцию.
7. Исправлена OnCommandBarProcessKey не работающая со спеллбуками.
8. Исправлена обработка TRIGSTR_ в SetTextTagText.
9. Добавлен хук на CGameState::ToHandle.
10. Исправлена критическая ошибка с картами содержащими w3i от версии 1.29 и выше. Критическая ошибка связана с максимальным индексом игрока.
11. SetFramePriority более не работает с CSimpleRegions, так как они не имеют приоритет, а эта функция меняла blendmode.
5
20
2 недели назад
5

» Unryze Jass API / UjAPI

Вышла новая версия!

v1.1.14.214

1. Изменение типов:
	type effect												extends war3image
	type trackable											extends war3image
2. Новые Константы:
	constant abilityintegerfield		ABILITY_IF_BUTTON_POSITION_SPELLBOOK_X						= ConvertAbilityIntegerField('asbx') // Ability Instance only
	constant abilityintegerfield		ABILITY_IF_BUTTON_POSITION_SPELLBOOK_Y						= ConvertAbilityIntegerField('asby') // Ability Instance only
3. Новые Нативные Функции:
	native GetMouseMoveEventScreenAxisEnabled				takes nothing returns boolean
	native SetMouseMoveEventScreenAxisEnabled				takes boolean enable returns nothing // Enables GetTriggerPlayerMouseScreenX/Y, default: on.
	native GetMouseMoveEventWorldAxisEnabled				takes nothing returns boolean
	native SetMouseMoveEventWorldAxisEnabled				takes boolean enable returns nothing // Enables GetTriggerPlayerMouseWorldX/Y/Z, default: off.
	native GetMouseMoveEventDelay							takes nothing returns integer
	native SetMouseMoveEventDelay							takes integer delay returns nothing // delay is in ticks (ms), default: 10
	//
	native IsHandleDestroyed								takes handle whichHandle returns boolean // this returns internal state of the object, whenever it's nullptr or CAgentBaseAbs was removed.
	//
	native GetWar3ImageSprite								takes war3image whichWar3Image returns sprite
	native IsWar3ImageVisible								takes war3image whichWar3Image returns boolean
	native SetWar3ImageVisible								takes war3image whichWar3Image, boolean visible returns nothing
	native IsWar3ImageInvulnerable							takes war3image whichWar3Image returns boolean
	native SetWar3ImageInvulnerable							takes war3image whichWar3Image, boolean invulnerable returns nothing
	native GetWar3ImageX									takes war3image whichWar3Image returns real
	native GetWar3ImageY									takes war3image whichWar3Image returns real
	native GetWar3ImageZ									takes war3image whichWar3Image returns real
	native GetWar3ImagePositionLoc							takes war3image whichWar3Image returns location
	native SetWar3ImagePositionLoc							takes war3image whichWar3Image, location whichLocation returns nothing
	native SetWar3ImagePosition								takes war3image whichWar3Image, real x, real y returns nothing
	native SetWar3ImagePositionWithZ						takes war3image whichWar3Image, real x, real y, real z returns nothing
	native SetWar3ImageX									takes war3image whichWar3Image, real x returns nothing
	native SetWar3ImageY									takes war3image whichWar3Image, real y returns nothing
	native SetWar3ImageZ									takes war3image whichWar3Image, real z returns nothing
	native ResetWar3ImageZ									takes war3image whichWar3Image returns nothing // returns Z control to game.
	native GetWar3ImageHeight								takes war3image whichWar3Image returns real
	native SetWar3ImageHeight								takes war3image whichWar3Image, real height returns nothing
	native GetWar3ImageScreenX								takes war3image whichWar3Image returns real
	native GetWar3ImageScreenY								takes war3image whichWar3Image returns real
	native GetWar3ImageVertexColour							takes war3image whichWar3Image returns integer
	native SetWar3ImageVertexColour							takes war3image whichWar3Image, integer red, integer green, integer blue, integer alpha returns nothing
	native GetWar3ImageTimeScale							takes war3image whichWar3Image returns real
	native SetWar3ImageTimeScale							takes war3image whichWar3Image, real timeScale returns nothing
	native GetWar3ImageScale								takes war3image whichWar3Image returns real
	native SetWar3ImageScale								takes war3image whichWar3Image, real scale returns nothing
	native GetWar3ImageFacing								takes war3image whichWar3Image returns real
	native SetWar3ImageFacing								takes war3image whichWar3Image, real facing, boolean isInstant returns nothing
	native SetWar3ImageMatrixScale							takes war3image whichWar3Image, real x, real y, real z returns nothing
	native ResetWar3ImageMatrix								takes war3image whichWar3Image returns nothing
	native SetWar3ImageOrientationEx						takes war3image whichWar3Image, real yaw, real pitch, real roll, integer eulerOrder returns nothing
	native SetWar3ImageOrientation							takes war3image whichWar3Image, real yaw, real pitch, real roll returns nothing
	native GetWar3ImageYaw									takes war3image whichWar3Image returns real
	native SetWar3ImageYaw									takes war3image whichWar3Image, real yaw returns nothing
	native GetWar3ImagePitch								takes war3image whichWar3Image returns real
	native SetWar3ImagePitch								takes war3image whichWar3Image, real pitch returns nothing
	native GetWar3ImageRoll									takes war3image whichWar3Image returns real
	native SetWar3ImageRoll									takes war3image whichWar3Image, real roll returns nothing
	native GetWar3ImageModelObjectX							takes war3image whichWar3Image, string whichObject returns real
	native GetWar3ImageModelObjectY							takes war3image whichWar3Image, string whichObject returns real
	native GetWar3ImageModelObjectZ							takes war3image whichWar3Image, string whichObject returns real
	native GetWar3ImageModelObjectPositionLoc				takes war3image whichWar3Image, string whichObject returns location
	native GetWar3ImageCurrentAnimationId					takes war3image whichWar3Image returns integer
	native GetWar3ImageCurrentAnimationName					takes war3image whichWar3Image returns string
	native SetWar3ImageAnimationWithRarityByIndex			takes war3image whichWar3Image, integer animIndex, raritycontrol rarity returns nothing
	native SetWar3ImageAnimationWithRarity					takes war3image whichWar3Image, string animationName, raritycontrol rarity returns nothing
	native SetWar3ImageAnimationByIndex						takes war3image whichWar3Image, integer animIndex returns nothing
	native SetWar3ImageAnimation							takes war3image whichWar3Image, string animationName returns nothing
	native QueueWar3ImageAnimationByIndex					takes war3image whichWar3Image, integer animIndex returns nothing
	native QueueWar3ImageAnimation							takes war3image whichWar3Image, string animationName returns nothing
	native GetWar3ImageAnimationOffsetPercent				takes war3image whichWar3Image returns real
	native SetWar3ImageAnimationOffsetPercent				takes war3image whichWar3Image, real percent returns nothing
	//
	native SetAbilityOwningAbility							takes ability whichAbility, ability whichSpellbook returns nothing
	native SetAbilityOwningItem								takes ability whichAbility, item whichItem returns nothing
	//
	native GetFrameBlendMode								takes framehandle whichFrame, integer textureId returns blendmode // 0 for CSimpleRegions.
	native SetFrameBlendMode								takes framehandle whichFrame, integer textureId, blendmode whichBlendMode returns nothing
	native GetFrameHighlight								takes framehandle whichFrame, integer highlightId returns framehandle // Gets highlights of CControl
	native GetFrameHighlightTexture							takes framehandle whichFrame, integer highlightId returns string // If highlighframe type is sent, it will modify itself instead, if ccontrol or its children, then it will check possible highlights.
	native SetFrameHighlightTexture							takes framehandle whichFrame, integer highlightId, string texturePath, blendmode blendMode returns nothing // 0 - FOCUS | 1 - ON HOVER
4. Исправлена GetUnitStringField всегда возвращающая "Default String" с UNIT_SF_HERO_ABILITY_LIST.
5. Исправлена UNIT_SF_ABILITY_LIST всегда возвращающая "Default String" с UNIT_SF_HERO_ABILITY_LIST.
6. GetTriggerPlayerMouseWorldX/Y/Z теперь отключено по стандарту для сохранения 12 байтов нетКода. Используйте SetMouseMoveEventWorldAxisEnabled для того, чтобы включить эту опцию.
7. Исправлена OnCommandBarProcessKey не работающая со спеллбуками.
8. Исправлена обработка TRIGSTR_ в SetTextTagText.
9. Добавлен хук на CGameState::ToHandle.
10. Исправлена критическая ошибка с картами содержащими w3i от версии 1.29 и выше. Критическая ошибка связана с максимальным индексом игрока.
11. SetFramePriority более не работает с CSimpleRegions, так как они не имеют приоритет, а эта функция меняла blendmode.
0
20
3 недели назад
0

» WarCraft 3 / Unlock Map Size

EugeAl, лишние телодвижения, да и порой людям лень. А так, если карта 40МБ+ то логичнее вытаскивать файлы в отдельный .mix, чтобы обновления кода не требовали перекачивания всей карты. Этот метод часто используют аниме карты, что хорошо. Но если платформа буквально отрубит .mix поддержку, как тот же GPlay или если играть на 1.29 (где .mix не работает), то будет нужно как-то снимать лимит веса карт. :)
0
20
4 недели назад
0

» WarCraft 3 / WFE - Warcraft Feature Extender

V1ole, Для начала советую почитать это: xgm.guru/p/wc3/wfetool/comments/view/521735 ибо я более чем уверен, что ты пытаешься устанавливать опции на дефолтном профиле, для чего он не предназначен.
Далее нужно нажать "сохранить" и в целом всё. Как пользоваться программой после создания профиля расписано в самом посте.
3
20
4 недели назад
3

» Unryze Jass API / UjAPI - AngelScript

Вышла новая версия!

v1.0.2.6

1, Добавлена поддержка мульти-строки для строк, что позволит избавиться от нужды """.
2. Исправлены исключения/ошибки в тяжело нагруженных строками картах, это было решено путём кэша строк на стороне AngelScript.

v1.0.2.7

1. Исправлена поддержка 1.27a/1.27b/1.28f.

v1.0.2.9

1. Добавлена поддержка литералов, то бишь 'I000' вместо FourCC( "I000" ).
2. Улучшена поддержка литералов с 1 или 4 символов до 1 до 8 символов, то бишь 'I0' and 'I000000I' оба будут валидны.
3. Исправлена критическая ошибка при присваивании нулевой строки в строку.
	Пометка: это по большей части связано с LoadStr.
4. "main" функция более не вызывается в лобби.
7
20
1 месяц назад
Отредактирован Unryze
7

» WarCraft 3 / Как работает RemoveUnit() ?

KillUnit - устанавливает текущее значение хп на 0 и вызывает событие смерти и устанавливает юниту флаг смерти, который можно проверить через UnitAlive нативку из common.ai, даст false.
RemoveUnit - не трогает текущее хп, оно скрывает текущего юнита и создаёт внутренний таймер очистки данных. Однако оно не меняет стейт юнита. UnitAlive нативка из common.ai и тут должна дать false.

Однако, ни одна из переменных не меняет значение сохранённое в переменную, то бишь Unit всегда будет иметь какой-то хендл, который является индексом объекта. Сами же объекты обычно утилизируются игрой, потому указатель на этот объект останется активным.
Если простым языком, то ни KillUnit, ни RemoveUnit не меняют что под капотом, ибо в Джасс мы работаем с псевдоданными и используем индексы (ссылки) для работы с объектами.
И повторно ответив на твой вопрос, проверка через GetUnitState - не является де факто "подтверждением" существования юнита или же его жизни. (Можно убить юнита и насильно поставить здоровье > 0) или же установить герою отрицательное значение силы, и игра будет думать, что хп 4 миллиарда, и т.д. и т.п.
Хочешь 100% вариант? То при любом RemoveUnit - обнуляй переменную или же используй UnitAlive из common.ai. То бишь Unit = null. KillUnit же, позволяет воскрешать героя, а с юнитами - отвечает за труп.
0
20
1 месяц назад
Отредактирован Unryze
0

» IntelliJASS / Операторы

ScorpioT1000, learn.microsoft.com/ru-ru/cpp/cpp/multiplicative-operators-and-t... вообще правильнее называть операцию "модуль", которая по итогу -> "оставшаяся часть от деления". На деле что ты, что nazarpunk и DevilVsLife трактовали тоже самое другими словами. Потому есть универсальное слово "модуль". :)
1
20
1 месяц назад
1

» Slasty: Candy Tower / Devlog 3. Денежки с Яндекс.Игр

Hellfim, всегда можно не "нерфить", а сделать отдельный режим, где всё и будет "занерфлено" для более казуальных игроков. На бумаге конечно звучит проще, чем на деле, но можно те или иные аспекты ИИ/сложности делать "модулями" как во многих играх, собственно так и будете делать что хотите, но и для простых смертных тоже что-то съедобное. (Но как по мне, если игра не доставляет никакого соревнования - это скукота, но таких "ценителей" меньшинство).
Удачи с проектом! :)
0
20
1 месяц назад
0

» Unryze Jass API / UjAPI - Что нового?

Вышла новая версия!

v1.1.13.210

1. Исправлена внутренняя ошибка Id2S.
	Пометка: эта ошибка ломала Buff API для слк-оптимизированных карт.
2
20
1 месяц назад
2

» Unryze Jass API / UjAPI

Вышла новая версия!

v1.1.13.210

1. Исправлена внутренняя ошибка Id2S.
	Пометка: эта ошибка ломала Buff API для слк-оптимизированных карт.
1
20
1 месяц назад
1

» Unryze Jass API / UjAPI

DarkLigthing, если совсем делать нечего, то при желании - возможно. Но страдать такой вакханалией я не особо горю. :)