Переделана обработка OnDamage, дабы избежать новую проблему, из-за которой юниты становились неуязвимыми.
Пометка: это было связано с предыдущим исправлением 0-левого урона.
Исправлена обработка пустой строки, которая вызывала тихое закрытие игры.
Пометка: это произошло из-за внутренней рекурсии, которую я же и создал, если получаемый текст был пустой или равен nullptr.
Исправлена обработка пустой строки, которая вызывала тихое закрытие игры.
Пометка: это произошло из-за внутренней рекурсии, которую я же и создал, если получаемый текст был пустой или равен nullptr.
Не миф, но всё же любопытно, оказывает ли хоть какое-то влияние constant перед native/function?
По моим проверкам - нет, я склоняюсь к тому, что они были скорее визуальным индикатором, что мол "в эти значения может писать только игра", не более того. Скорость вызова всегда одинаковая.
Проведён большой рефакторинг кода, полностью переписаны все методы логирования на утилизацию нового std::format для полного отброса строк C-стиля.
Пометка: это изменение повлекло увеличение веса на 200кб, так как std::format достаточно увесистый.
BlzSetItemName теперь полноценно реализован с его SetItemStringField эквивалентом.
BlzSetItemDescription теперь полноценно реализован с его SetItemStringField SetItemStringField эквивалентом.
BlzGetItemDescription теперь полноценно реализован с его SetItemStringField SetItemStringField эквивалентом.
BlzSetItemTooltip теперь полноценно реализован с его SetItemStringField SetItemStringField эквивалентом.
BlzGetItemTooltip теперь полноценно реализован с его SetItemStringField SetItemStringField эквивалентом.
BlzSetItemExtendedTooltip теперь полноценно реализован с его SetItemStringField SetItemStringField эквивалентом.
BlzGetItemExtendedTooltip теперь полноценно реализован с его SetItemStringField SetItemStringField эквивалентом.
BlzSetItemIconPath теперь полноценно реализован с его SetItemStringField SetItemStringField эквивалентом.
BlzGetItemIconPath теперь полноценно реализован с его SetItemStringField SetItemStringField эквивалентом.
BlzSetUnitName теперь полноценно реализован с его SetItemStringField SetUnitStringField эквивалентом.
BlzSetHeroProperName теперь полноценно реализован с его SetItemStringField SetUnitStringField эквивалентом.
GetDestructableName теперь будет возвращать нестандартное значение, если оно существует.
GetItemName теперь будет возвращать нестандартное значение, если оно существует.
GetUnitName теперь будет возвращать нестандартное значение, если оно существует.
GetHeroProperName теперь будет возвращать нестандартное значение, если оно существует.
Исправлено неправильное поведение события OnDamaged когда входящий урон был равен нулю, так как игра посылала общий указатель, который подвергался изменению через SetEventDamage, тем самым ломая почти всю игру.
Исправлена критическая ошибка от RemoveDoodad.
GetUnitPrimaryStat переименован в GetHeroPrimaryAttribute.
SetUnitPrimaryStat переименован в SetHeroPrimaryAttribute.
GetItemAbility переименован в GetItemAbilityById.
HandleListGetHandleByTypeId переименован в HandleListGetHandleById.
HandleListEnumByTypeId переименован в HandleListEnumById.
HandleListEnumByTypeIdEx переименован в HandleListEnumByIdEx.
HandleListForEachByTypeId переименован в HandleListForEachById.
HandleListForEachByTypeIdEx переименован в HandleListForEachByIdEx.
BlzItemAddAbility теперь полноценно реализован с его UjAPI эквивалентом ItemAddAbilityById.
BlzItemRemoveAbility теперь полноценно реализован с его UjAPI эквивалентом ItemRemoveAbilityById.
Проведён большой рефакторинг кода, полностью переписаны все методы логирования на утилизацию нового std::format для полного отброса строк C-стиля.
Пометка: это изменение повлекло увеличение веса на 200кб, так как std::format достаточно увесистый.
BlzSetItemName теперь полноценно реализован с его SetItemStringField эквивалентом.
BlzSetItemDescription теперь полноценно реализован с его SetItemStringField SetItemStringField эквивалентом.
BlzGetItemDescription теперь полноценно реализован с его SetItemStringField SetItemStringField эквивалентом.
BlzSetItemTooltip теперь полноценно реализован с его SetItemStringField SetItemStringField эквивалентом.
BlzGetItemTooltip теперь полноценно реализован с его SetItemStringField SetItemStringField эквивалентом.
BlzSetItemExtendedTooltip теперь полноценно реализован с его SetItemStringField SetItemStringField эквивалентом.
BlzGetItemExtendedTooltip теперь полноценно реализован с его SetItemStringField SetItemStringField эквивалентом.
BlzSetItemIconPath теперь полноценно реализован с его SetItemStringField SetItemStringField эквивалентом.
BlzGetItemIconPath теперь полноценно реализован с его SetItemStringField SetItemStringField эквивалентом.
BlzSetUnitName теперь полноценно реализован с его SetItemStringField SetUnitStringField эквивалентом.
BlzSetHeroProperName теперь полноценно реализован с его SetItemStringField SetUnitStringField эквивалентом.
GetDestructableName теперь будет возвращать нестандартное значение, если оно существует.
GetItemName теперь будет возвращать нестандартное значение, если оно существует.
GetUnitName теперь будет возвращать нестандартное значение, если оно существует.
GetHeroProperName теперь будет возвращать нестандартное значение, если оно существует.
Исправлено неправильное поведение события OnDamaged когда входящий урон был равен нулю, так как игра посылала общий указатель, который подвергался изменению через SetEventDamage, тем самым ломая почти всю игру.
Исправлена критическая ошибка от RemoveDoodad.
GetUnitPrimaryStat переименован в GetHeroPrimaryAttribute.
SetUnitPrimaryStat переименован в SetHeroPrimaryAttribute.
GetItemAbility переименован в GetItemAbilityById.
HandleListGetHandleByTypeId переименован в HandleListGetHandleById.
HandleListEnumByTypeId переименован в HandleListEnumById.
HandleListEnumByTypeIdEx переименован в HandleListEnumByIdEx.
HandleListForEachByTypeId переименован в HandleListForEachById.
HandleListForEachByTypeIdEx переименован в HandleListForEachByIdEx.
BlzItemAddAbility теперь полноценно реализован с его UjAPI эквивалентом ItemAddAbilityById.
BlzItemRemoveAbility теперь полноценно реализован с его UjAPI эквивалентом ItemRemoveAbilityById.
у меня 68 версия не могу зайти через вфе или с инжектом в карту как я понял не видит расширителя для карт свыше 8 мб. без вфе заходит
не сохраняет настройки
подскажите пожалуйста
Здесь не должно быть WFEConfigBase, нужно сменить имя и нажать "+" и сохранения далее будут работать. Снятие лимита сломано, да, оно пофикшено для следующих версий, пока что можно использовать это: github.com/UnryzeC/WC3_UnlockMapSize
Я всё ещё не вижу пруфов, что в открытом коде нет бекдоров. А также, что вскода собранна именно из этого кода.
Открытый код не гарантирует что там нет бекдоров и т.п, но он хотя бы предоставляет возможность всем участникам это проверить, в том числе с использованием автоматизированных средств проверки, а собирать можно из исходников
Чтобы проверить код, нужно иметь айсикью +- выше хлебушка, чем большинство людей не обладает, а вот те, кто захотят эксплоитить уязвимости этого кода, им будет это сделать куда проще. Потому "супер-секретные" или "гиганты" монетизации (тот же треклятый Denuvo) не Open-Source, ибо они тогда утеряют весь свой смысл.
Не везде опенсорс = гарант и не везде оно даст тебе плюсы, чаще даст палки в колёса. Твоя дискуссия - банально трёп и полемика, что-то ты доказать "патылся", а потом тебя занесло в дебри, может хватит уже? :D
Новые Нативные Функции:
native GetWheelDelta takes nothing returns integer
native GetVisionMax takes nothing returns real
native SetVisionMax takes real value returns nothing
Исправлена критическая ошибка от GetAbilityStringField при применении на заклинание у которого "одно" описание на все уровни, то бишь когда нет описаний на каждый уровень отдельно.
Пометка: эта проблема связана с SLK оптимизацией.
Добавлен метод реаллокации для описаний заклинаний с несколькими уровням, у которых отсутствуют тексты для всех уровней.
Пример: "Ubertip=text", это значит, что заклинание на всех уровнях разделяет "text" как подсказку, однако внутри движка выделяется лишь 1 индекс.
Пере-пере-исправлено SetDestructableZ, эта функция вновь сломалась из-за другого фикса для виджетов.
Исправлены CreateBuff/UnitAddBuff/UnitAddBuffEx/UnitAddBuffById/UnitAddBuffByIdEx, которые не работали с SLK-оптимизированными картами.
Добавлен хук на CreateImage, теперь эта функция использует CreateImageSimple как базу, чтобы смена размера более не ломала изображение.
Новые Нативные Функции:
native GetWheelDelta takes nothing returns integer
native GetVisionMax takes nothing returns real
native SetVisionMax takes real value returns nothing
Исправлена критическая ошибка от GetAbilityStringField при применении на заклинание у которого "одно" описание на все уровни, то бишь когда нет описаний на каждый уровень отдельно.
Пометка: эта проблема связана с SLK оптимизацией.
Добавлен метод реаллокации для описаний заклинаний с несколькими уровням, у которых отсутствуют тексты для всех уровней.
Пример: "Ubertip=text", это значит, что заклинание на всех уровнях разделяет "text" как подсказку, однако внутри движка выделяется лишь 1 индекс.
Пере-пере-исправлено SetDestructableZ, эта функция вновь сломалась из-за другого фикса для виджетов.
Исправлены CreateBuff/UnitAddBuff/UnitAddBuffEx/UnitAddBuffById/UnitAddBuffByIdEx, которые не работали с SLK-оптимизированными картами.
Добавлен хук на CreateImage, теперь эта функция использует CreateImageSimple как базу, чтобы смена размера более не ломала изображение.
На самом деле я тоже не понял суть того примера с .js файлом.
Я понимаю если бы разница была маленькая, но когда текст не сливается с разметкой - это явно удобнее. Да и при желании тексту через IntelliJ намного проще сменить расцветку, чем оверрайдить 100500 вещей в ВСкоде.
» Unryze Jass API / UjAPI
v1.1.0.156
Пометка: это было связано с предыдущим исправлением 0-левого урона.
» Unryze Jass API / UjAPI - Что нового?
v1.1.0.155
Пометка: это произошло из-за внутренней рекурсии, которую я же и создал, если получаемый текст был пустой или равен nullptr.
» Unryze Jass API / UjAPI
v1.1.0.155
Пометка: это произошло из-за внутренней рекурсии, которую я же и создал, если получаемый текст был пустой или равен nullptr.
» Unryze Jass API / UjAPI
v1.1.0.154
» Unryze Jass API / UjAPI - Что нового?
v1.1.0.154
» Unryze Jass API / UjAPI - Что нового?
v1.1.0.153
» Unryze Jass API / UjAPI
v1.1.0.153
» WarCraft 3 / Jass MythBusters
» Unryze Jass API / UjAPI - Что нового?
v1.1.0.152
constant destructablestringfield DESTRUCTABLE_SF_MODEL = ConvertDestructableStringField('bfil')
native GetDestructableStringField takes destructable whichDestructable, destructablestringfield whichField returns string
native SetDestructableStringField takes destructable whichDestructable, destructablestringfield whichField, string value returns boolean
native ItemAddAbility takes item whichItem, ability whichAbility returns boolean
native ItemRemoveAbility takes item whichItem, ability whichAbility returns boolean
native ItemAddAbilityId takes item whichItem, integer abilCode returns boolean
native ItemRemoveAbilityId takes item whichItem, integer abilCode returns boolean
native GetProjectileSourceAbility takes projectile whichProjectile returns ability
» Unryze Jass API / UjAPI
v1.1.0.152
constant destructablestringfield DESTRUCTABLE_SF_MODEL = ConvertDestructableStringField('bfil')
native GetDestructableStringField takes destructable whichDestructable, destructablestringfield whichField returns string
native SetDestructableStringField takes destructable whichDestructable, destructablestringfield whichField, string value returns boolean
native ItemAddAbility takes item whichItem, ability whichAbility returns boolean
native ItemRemoveAbility takes item whichItem, ability whichAbility returns boolean
native ItemAddAbilityId takes item whichItem, integer abilCode returns boolean
native ItemRemoveAbilityId takes item whichItem, integer abilCode returns boolean
native GetProjectileSourceAbility takes projectile whichProjectile returns ability
» WarCraft 3 / WFE - Warcraft Feature Extender
» WarCraft 3 / Visual Studio Code: WarCode
Ред. Unryze
» Unryze Jass API / UjAPI - Что нового?
v1.0.40.147
native GetWheelDelta takes nothing returns integer
native GetVisionMax takes nothing returns real
native SetVisionMax takes real value returns nothing
Пометка: эта проблема связана с SLK оптимизацией.
Пример: "Ubertip=text", это значит, что заклинание на всех уровнях разделяет "text" как подсказку, однако внутри движка выделяется лишь 1 индекс.
Ред. Unryze
» Unryze Jass API / UjAPI
v1.0.40.147
native GetWheelDelta takes nothing returns integer
native GetVisionMax takes nothing returns real
native SetVisionMax takes real value returns nothing
Пометка: эта проблема связана с SLK оптимизацией.
Пример: "Ubertip=text", это значит, что заклинание на всех уровнях разделяет "text" как подсказку, однако внутри движка выделяется лишь 1 индекс.
Ред. Unryze
» WarCraft 3 / Visual Studio Code: WarCode
» WarCraft 3 / Visual Studio Code: WarCode
» WarCraft 3 / Visual Studio Code: WarCode
» WarCraft 3 / WFE - Warcraft Feature Extender
» Unryze Jass API / UjAPI
» Unryze Jass API / UjAPI - Что нового?
v1.0.39.145
» Unryze Jass API / UjAPI
v1.0.39.145
» Unryze Jass API / UjAPI - Что нового?
v1.0.39.144
» Unryze Jass API / UjAPI
v1.0.39.144
Ред. Unryze
» Unryze Jass API / UjAPI
Ред. Unryze
» WarCraft 3 / Visual Studio Code: ujass