Относительно краткий пример создания системы магазина строго на CSimpleFrame/CSimpleRegion фреймах используя UjAPI и Frame API.
Алгоритмы, Наработки и Способности
7 876
20
Вышла новая версия!
Прокрутить к ресурсу
Карта обновлена под UjAPI v1.0.37.137.

О системе

Относительно краткий пример создания ListBox фрейма используя UjAPI и Frame API.
Главным бонусом UjAPI в данной наработке является полноценный API специально добавленный для обработки ListBox фреймов, который позволяет просто на просто отказаться от fdf, а так же позволяет не только добавлять…
Алгоритмы, Наработки и Способности
4 633
20
Вышла новая версия!
Прокрутить к ресурсу
Карта обновлена под UjAPI v1.0.37.137.
Ресурс предназначенный для логирования изменений в проекте UjAPI, а так же для краткого ознакомления со внесёнными изменениями.
90 2 144
20
Вышла новая версия!
Прокрутить к ресурсу

v1.0.37.137

  1. Новые Типы:
    type sprite extends agent
  2. Новые Константы:
    constant camerafield CAMERA_FIELD_NEARZ = ConvertCameraField(7)
    constant camerafield CAMERA_FIELD_LOCAL_PITCH = ConvertCameraField(8)
    constant camerafield CAMERA_FIELD_LOCAL_YAW = ConvertCameraField(9)
    constant camerafield CAMERA_FIELD_LOCAL_ROLL = ConvertCameraField(10) Not implemented yet
  3. Новые Нативные Функции:
    native GetDoodadAnimationOffsetPercent takes doodad whichDoodad returns real

    native GetSpecialEffectSprite takes effect whichEffect returns sprite
    native GetSpecialEffectAnimationOffsetPercent takes effect whichEffect returns real

    native GetTrackableSprite takes trackable whichTrackable returns sprite
    native GetTrackableAnimationOffsetPercent takes trackable whichTrackable returns real

    native GetWidgetSprite takes widget whichWidget returns sprite
    native GetWidgetAnimationOffsetPercent takes widget whichWidget returns real

    native GetDestructableSprite takes destructable whichDestructable returns sprite
    native GetDestructableAnimationOffsetPercent takes destructable whichDestructable returns real

    native GetItemSprite takes item whichItem returns sprite
    native GetItemAnimationOffsetPercent takes item whichItem returns real

    native GetUnitSprite takes unit whichUnit returns sprite
    native GetUnitAnimationOffsetPercent takes unit whichUnit returns real

    native LaunchProjectileAt takes projectile whichProjectile, real x, real y, real z returns nothing
    native GetProjectileSprite takes projectile whichProjectile returns sprite
    native GetProjectileAnimationOffsetPercent takes projectile whichProjectile returns real
    native SetProjectileTargetPointX takes projectile whichProjectile, real x returns nothing
    native SetProjectileTargetPointY takes projectile whichProjectile, real y returns nothing
    native SetProjectileTargetPointZ takes projectile whichProjectile, real z returns nothing
    native SetProjectileTargetPositionLoc takes projectile whichProjectile, location loc returns nothing

    native GetFrameSprite takes framehandle whichFrame returns sprite
    native GetFrameSpriteAnimationOffsetPercent takes framehandle whichFrame returns real

    native CreateSprite takes boolean isUber returns sprite
    native AttachSpriteToTarget takes sprite whichSprite, sprite targetSprite, string attachPointName returns sprite
    native AddSpriteToTarget takes string modelName, sprite targetSprite, string attachPointName returns sprite
    native GetSpriteChildrenCount takes sprite whichSprite returns integer
    native GetSpriteChildById takes sprite whichSprite, integer index returns sprite
    native RemoveSprite takes sprite whichSprite returns nothing
    native IsSpriteUber takes sprite whichSprite returns boolean
    native GetSpriteX takes sprite whichSprite returns real
    native GetSpriteY takes sprite whichSprite returns real
    native GetSpriteZ takes sprite whichSprite returns real
    native GetSpriteHeight takes sprite whichSprite returns real
    native GetSpritePositionLoc takes sprite whichSprite returns location
    native SetSpritePositionEx takes sprite whichSprite, real x, real y, real z returns nothing
    native SetSpritePosition takes sprite whichSprite, real x, real y returns nothing
    native SetSpritePositionLoc takes sprite whichSprite, location loc returns nothing
    native SetSpriteX takes sprite whichSprite, real x returns nothing
    native SetSpriteY takes sprite whichSprite, real y returns nothing
    native SetSpriteZ takes sprite whichSprite, real z returns nothing
    native SetSpriteHeight takes sprite whichSprite, real height returns nothing
    native GetSpriteScreenX takes sprite whichSprite returns real
    native GetSpriteScreenY takes sprite whichSprite returns real
    native GetSpriteScale takes sprite whichSprite returns real
    native SetSpriteScale takes sprite whichSprite, real scale returns nothing
    native GetSpriteTimeScale takes sprite whichSprite returns real
    native SetSpriteTimeScale takes sprite whichSprite, real timescale returns nothing
    native SetSpritePlayerColour takes sprite whichSprite, playercolor color returns nothing
    native GetSpriteColour takes sprite whichSprite returns integer
    native SetSpriteColour takes sprite whichSprite, integer colour returns nothing
    native SetSpriteAlpha takes sprite whichSprite, integer alpha returns nothing
    native SetSpriteVertexColour takes sprite whichSprite, integer red, integer green, integer blue, integer alpha returns nothing
    native SetSpriteMatrixScale takes sprite whichSprite, real x, real y, real z returns nothing
    native ResetSpriteMatrix takes sprite whichSprite returns nothing
    native SetSpriteOrientationEx takes sprite whichSprite, real yaw, real pitch, real roll, integer eulerOrder returns nothing
    native GetSpriteYaw takes sprite whichSprite returns real
    native SetSpriteYaw takes sprite whichSprite, real yaw returns nothing
    native GetSpriteFacing takes sprite whichSprite returns real
    native SetSpriteFacing takes sprite whichSprite, real facing returns nothing
    native GetSpritePitch takes sprite whichSprite returns real
    native SetSpritePitch takes sprite whichSprite, real pitch returns nothing
    native GetSpriteRoll takes sprite whichSprite returns real
    native SetSpriteRoll takes sprite whichSprite, real roll returns nothing
    native SetSpriteOrientation takes sprite whichSprite, real yaw, real pitch, real roll returns nothing
    native SetSpriteMaterialTexture takes sprite whichSprite, string textureName, integer materialId, integer textureIndex returns nothing
    native SetSpriteTexture takes sprite whichSprite, string textureName, integer textureIndex returns nothing
    native SetSpriteReplaceableTexture takes sprite whichSprite, string textureName, integer textureIndex returns nothing
    native SetSpriteModel takes sprite whichSprite, string modelName returns nothing
    native SetSpriteModelEx takes sprite whichSprite, string modelName, integer playerColour returns nothing
    native GetSpriteModelObjectPositionX takes sprite whichSprite, string whichObject returns real
    native GetSpriteModelObjectPositionY takes sprite whichSprite, string whichObject returns real
    native GetSpriteModelObjectPositionZ takes sprite whichSprite, string whichObject returns real
    native GetSpriteModelObjectPositionLoc takes sprite whichSprite, string whichObject returns location
    native GetSpriteCurrentAnimationId takes sprite whichSprite returns integer
    native GetSpriteCurrentAnimationName takes sprite whichSprite returns string
    native SetSpriteAnimationWithRarityByIndex takes sprite whichSprite, integer animIndex, raritycontrol rarity returns nothing
    native SetSpriteAnimationWithRarity takes sprite whichSprite, string animationName, raritycontrol rarity returns nothing
    native SetSpriteAnimationByIndex takes sprite whichSprite, integer animIndex returns nothing
    native SetSpriteAnimation takes sprite whichSprite, string animationName returns nothing
    native QueueSpriteAnimationByIndex takes sprite whichSprite, integer animIndex returns nothing
    native QueueSpriteAnimation takes sprite whichSprite, string animationName returns nothing
    native GetSpriteAnimationOffsetPercent takes sprite whichSprite returns real
    native SetSpriteAnimationOffsetPercent takes sprite whichSprite, real percent returns nothing
  4. Исправлена критическая ошибка при использовании GetFrameName на фрейме у которого не было инициализировано имя.
  5. CORNER_FLAG переименован в BORDER_FLAG.
  6. Get/SetFrameCornerFlags переименованы в Get/SetFrameBorderFlags.
  7. Get/SetFrameCornerSize переименованы в Get/SetFrameBorderSize.
  8. UnitEnableAttack теперь полностью отключает атаку юниту.
  9. UnitEnableAttack теперь скрывает иконку заклинания атаки, но не скрывает иконку урона.
  10. GetFrameUnderMouse переименован в GetFrameUnderCursor.
  11. GetFrameUnderCursor теперь так же работает с любым типом CSimpleFrame и его дочерними типами.
    Пометка: приоритет: CSimpleFrame, CLayer (под курсором), CLayer (подсвеченный/в фокусе).
  12. SetFrameSpriteModel/SetFrameSpriteModelEx более не ломают анимации использованным моделям.
  13. Исправлена GetEventDamageTarget возвращающая неверные значения.
  14. Исправлена CreateAbility всегда возвращающая null.
  15. Все внутренние функции оперирующие на координатах теперь используют референсы, вместо указателей.
    Пометка: эта информация больше для меня, так как эти изменения никак не должны отразиться на игре.
  16. SetSpecialEffectAnimationOffsetPercent теперь возвращает nothing вместо boolean.
  17. SetTrackableAnimationOffsetPercent теперь возвращает nothing вместо boolean.
  18. SetWidgetAnimationOffsetPercent теперь возвращает nothing вместо boolean.
  19. SetDestructableAnimationOffsetPercent теперь возвращает nothing вместо boolean.
  20. SetItemAnimationOffsetPercent теперь возвращает nothing вместо boolean.
  21. SetUnitAnimationOffsetPercent теперь возвращает nothing вместо boolean.
  22. SetProjectileAnimationOffsetPercent теперь возвращает nothing вместо boolean.
  23. SetFrameSpriteAnimationOffsetPercent теперь возвращает nothing вместо boolean.
  24. SetSpecialEffectColour теперь возвращает nothing вместо boolean.
  25. SetSpecialEffectAlpha теперь возвращает nothing вместо boolean.
  26. SetSpecialEffectVertexColour теперь возвращает nothing вместо boolean.
  27. SetSpecialEffectYaw теперь возвращает nothing вместо boolean.
  28. SetSpecialEffectFacing теперь возвращает nothing вместо boolean.
  29. SetSpecialEffectPitch теперь возвращает nothing вместо boolean.
  30. SetSpecialEffectRoll теперь возвращает nothing вместо boolean.
  31. SetTrackableColour теперь возвращает nothing вместо boolean.
  32. SetTrackableAlpha теперь возвращает nothing вместо boolean.
  33. SetTrackableVertexColour теперь возвращает nothing вместо boolean.
  34. SetTrackableOrientationEx теперь возвращает nothing вместо boolean.
  35. SetTrackableYaw теперь возвращает nothing вместо boolean.
  36. SetTrackableFacing теперь возвращает nothing вместо boolean.
  37. SetTrackablePitch теперь возвращает nothing вместо boolean.
  38. SetTrackableRoll теперь возвращает nothing вместо boolean.
  39. SetProjectileColour теперь возвращает nothing вместо boolean.
  40. SetProjectileAlpha теперь возвращает nothing вместо boolean.
  41. SetProjectileVertexColour теперь возвращает nothing вместо boolean.
  42. SetProjectileOrientationEx теперь возвращает nothing вместо boolean.
  43. SetProjectileYaw теперь возвращает nothing вместо boolean.
  44. SetProjectileFacing теперь возвращает nothing вместо boolean.
  45. SetProjectilePitch теперь возвращает nothing вместо boolean.
  46. SetProjectileRoll теперь возвращает nothing вместо boolean.
  47. Исправлена TimerIsPaused возвращающая значения TimerIsPeriodic.
  48. Добавлены новые оффсеты в AntiHack.
  49. Исправлена ошибка по которой AntiHack перестал работать после первого срабатывания.
  50. Добавлена проверка целостности WorldFrame в AntiHack.
  51. Удалён лимит в 1024 символа у string литералов.
    Пометка: чтобы пользоваться этим изменением в JNGP нужно как-то обновить pjass, чтобы он позволял писать более 1024 символов в строке.
  52. Исправлены SetProjectileModel/SetProjectileModelEx не устанавливающие модель.
  53. LaunchTargetProjectile переименован в LaunchProjectileTarget.
  54. Исправлено TimerSetPeriodic.
  55. Все PositionLocation переименованы в PositionLoc, чтобы они совпадали с именами на ванилле.
  56. Все PositionEx переименованы в PositionWithZ, чтобы они совпадали с именами на ванилле.
  57. Все ModelObjectPosition(X/Y/Z) переименованы в ModelObject(X/Y/Z).
  58. Исправлена критическая ошибка при использовании UnitAddGroupEx.

UjAPI

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

v1.0.37.137

  1. Новые Типы:
    type sprite extends agent
  2. Новые Константы:
    constant camerafield CAMERA_FIELD_NEARZ = ConvertCameraField(7)
    constant camerafield CAMERA_FIELD_LOCAL_PITCH = ConvertCameraField(8)
    constant camerafield CAMERA_FIELD_LOCAL_YAW = ConvertCameraField(9)
    constant camerafield CAMERA_FIELD_LOCAL_ROLL = ConvertCameraField(10) Not implemented yet
  3. Новые Нативные Функции:
    native GetDoodadAnimationOffsetPercent takes doodad whichDoodad returns real

    native GetSpecialEffectSprite takes effect whichEffect returns sprite
    native GetSpecialEffectAnimationOffsetPercent takes effect whichEffect returns real

    native GetTrackableSprite takes trackable whichTrackable returns sprite
    native GetTrackableAnimationOffsetPercent takes trackable whichTrackable returns real

    native GetWidgetSprite takes widget whichWidget returns sprite
    native GetWidgetAnimationOffsetPercent takes widget whichWidget returns real

    native GetDestructableSprite takes destructable whichDestructable returns sprite
    native GetDestructableAnimationOffsetPercent takes destructable whichDestructable returns real

    native GetItemSprite takes item whichItem returns sprite
    native GetItemAnimationOffsetPercent takes item whichItem returns real

    native GetUnitSprite takes unit whichUnit returns sprite
    native GetUnitAnimationOffsetPercent takes unit whichUnit returns real

    native LaunchProjectileAt takes projectile whichProjectile, real x, real y, real z returns nothing
    native GetProjectileSprite takes projectile whichProjectile returns sprite
    native GetProjectileAnimationOffsetPercent takes projectile whichProjectile returns real
    native SetProjectileTargetPointX takes projectile whichProjectile, real x returns nothing
    native SetProjectileTargetPointY takes projectile whichProjectile, real y returns nothing
    native SetProjectileTargetPointZ takes projectile whichProjectile, real z returns nothing
    native SetProjectileTargetPositionLoc takes projectile whichProjectile, location loc returns nothing

    native GetFrameSprite takes framehandle whichFrame returns sprite
    native GetFrameSpriteAnimationOffsetPercent takes framehandle whichFrame returns real

    native CreateSprite takes boolean isUber returns sprite
    native AttachSpriteToTarget takes sprite whichSprite, sprite targetSprite, string attachPointName returns sprite
    native AddSpriteToTarget takes string modelName, sprite targetSprite, string attachPointName returns sprite
    native GetSpriteChildrenCount takes sprite whichSprite returns integer
    native GetSpriteChildById takes sprite whichSprite, integer index returns sprite
    native RemoveSprite takes sprite whichSprite returns nothing
    native IsSpriteUber takes sprite whichSprite returns boolean
    native GetSpriteX takes sprite whichSprite returns real
    native GetSpriteY takes sprite whichSprite returns real
    native GetSpriteZ takes sprite whichSprite returns real
    native GetSpriteHeight takes sprite whichSprite returns real
    native GetSpritePositionLoc takes sprite whichSprite returns location
    native SetSpritePositionEx takes sprite whichSprite, real x, real y, real z returns nothing
    native SetSpritePosition takes sprite whichSprite, real x, real y returns nothing
    native SetSpritePositionLoc takes sprite whichSprite, location loc returns nothing
    native SetSpriteX takes sprite whichSprite, real x returns nothing
    native SetSpriteY takes sprite whichSprite, real y returns nothing
    native SetSpriteZ takes sprite whichSprite, real z returns nothing
    native SetSpriteHeight takes sprite whichSprite, real height returns nothing
    native GetSpriteScreenX takes sprite whichSprite returns real
    native GetSpriteScreenY takes sprite whichSprite returns real
    native GetSpriteScale takes sprite whichSprite returns real
    native SetSpriteScale takes sprite whichSprite, real scale returns nothing
    native GetSpriteTimeScale takes sprite whichSprite returns real
    native SetSpriteTimeScale takes sprite whichSprite, real timescale returns nothing
    native SetSpritePlayerColour takes sprite whichSprite, playercolor color returns nothing
    native GetSpriteColour takes sprite whichSprite returns integer
    native SetSpriteColour takes sprite whichSprite, integer colour returns nothing
    native SetSpriteAlpha takes sprite whichSprite, integer alpha returns nothing
    native SetSpriteVertexColour takes sprite whichSprite, integer red, integer green, integer blue, integer alpha returns nothing
    native SetSpriteMatrixScale takes sprite whichSprite, real x, real y, real z returns nothing
    native ResetSpriteMatrix takes sprite whichSprite returns nothing
    native SetSpriteOrientationEx takes sprite whichSprite, real yaw, real pitch, real roll, integer eulerOrder returns nothing
    native GetSpriteYaw takes sprite whichSprite returns real
    native SetSpriteYaw takes sprite whichSprite, real yaw returns nothing
    native GetSpriteFacing takes sprite whichSprite returns real
    native SetSpriteFacing takes sprite whichSprite, real facing returns nothing
    native GetSpritePitch takes sprite whichSprite returns real
    native SetSpritePitch takes sprite whichSprite, real pitch returns nothing
    native GetSpriteRoll takes sprite whichSprite returns real
    native SetSpriteRoll takes sprite whichSprite, real roll returns nothing
    native SetSpriteOrientation takes sprite whichSprite, real yaw, real pitch, real roll returns nothing
    native SetSpriteMaterialTexture takes sprite whichSprite, string textureName, integer materialId, integer textureIndex returns nothing
    native SetSpriteTexture takes sprite whichSprite, string textureName, integer textureIndex returns nothing
    native SetSpriteReplaceableTexture takes sprite whichSprite, string textureName, integer textureIndex returns nothing
    native SetSpriteModel takes sprite whichSprite, string modelName returns nothing
    native SetSpriteModelEx takes sprite whichSprite, string modelName, integer playerColour returns nothing
    native GetSpriteModelObjectPositionX takes sprite whichSprite, string whichObject returns real
    native GetSpriteModelObjectPositionY takes sprite whichSprite, string whichObject returns real
    native GetSpriteModelObjectPositionZ takes sprite whichSprite, string whichObject returns real
    native GetSpriteModelObjectPositionLoc takes sprite whichSprite, string whichObject returns location
    native GetSpriteCurrentAnimationId takes sprite whichSprite returns integer
    native GetSpriteCurrentAnimationName takes sprite whichSprite returns string
    native SetSpriteAnimationWithRarityByIndex takes sprite whichSprite, integer animIndex, raritycontrol rarity returns nothing
    native SetSpriteAnimationWithRarity takes sprite whichSprite, string animationName, raritycontrol rarity returns nothing
    native SetSpriteAnimationByIndex takes sprite whichSprite, integer animIndex returns nothing
    native SetSpriteAnimation takes sprite whichSprite, string animationName returns nothing
    native QueueSpriteAnimationByIndex takes sprite whichSprite, integer animIndex returns nothing
    native QueueSpriteAnimation takes sprite whichSprite, string animationName returns nothing
    native GetSpriteAnimationOffsetPercent takes sprite whichSprite returns real
    native SetSpriteAnimationOffsetPercent takes sprite whichSprite, real percent returns nothing
  4. Исправлена критическая ошибка при использовании GetFrameName на фрейме у которого не было инициализировано имя.
  5. CORNER_FLAG переименован в BORDER_FLAG.
  6. Get/SetFrameCornerFlags переименованы в Get/SetFrameBorderFlags.
  7. Get/SetFrameCornerSize переименованы в Get/SetFrameBorderSize.
  8. UnitEnableAttack теперь полностью отключает атаку юниту.
  9. UnitEnableAttack теперь скрывает иконку заклинания атаки, но не скрывает иконку урона.
  10. GetFrameUnderMouse переименован в GetFrameUnderCursor.
  11. GetFrameUnderCursor теперь так же работает с любым типом CSimpleFrame и его дочерними типами.
    Пометка: приоритет: CSimpleFrame, CLayer (под курсором), CLayer (подсвеченный/в фокусе).
  12. SetFrameSpriteModel/SetFrameSpriteModelEx более не ломают анимации использованным моделям.
  13. Исправлена GetEventDamageTarget возвращающая неверные значения.
  14. Исправлена CreateAbility всегда возвращающая null.
  15. Все внутренние функции оперирующие на координатах теперь используют референсы, вместо указателей.
    Пометка: эта информация больше для меня, так как эти изменения никак не должны отразиться на игре.
  16. SetSpecialEffectAnimationOffsetPercent теперь возвращает nothing вместо boolean.
  17. SetTrackableAnimationOffsetPercent теперь возвращает nothing вместо boolean.
  18. SetWidgetAnimationOffsetPercent теперь возвращает nothing вместо boolean.
  19. SetDestructableAnimationOffsetPercent теперь возвращает nothing вместо boolean.
  20. SetItemAnimationOffsetPercent теперь возвращает nothing вместо boolean.
  21. SetUnitAnimationOffsetPercent теперь возвращает nothing вместо boolean.
  22. SetProjectileAnimationOffsetPercent теперь возвращает nothing вместо boolean.
  23. SetFrameSpriteAnimationOffsetPercent теперь возвращает nothing вместо boolean.
  24. SetSpecialEffectColour теперь возвращает nothing вместо boolean.
  25. SetSpecialEffectAlpha теперь возвращает nothing вместо boolean.
  26. SetSpecialEffectVertexColour теперь возвращает nothing вместо boolean.
  27. SetSpecialEffectYaw теперь возвращает nothing вместо boolean.
  28. SetSpecialEffectFacing теперь возвращает nothing вместо boolean.
  29. SetSpecialEffectPitch теперь возвращает nothing вместо boolean.
  30. SetSpecialEffectRoll теперь возвращает nothing вместо boolean.
  31. SetTrackableColour теперь возвращает nothing вместо boolean.
  32. SetTrackableAlpha теперь возвращает nothing вместо boolean.
  33. SetTrackableVertexColour теперь возвращает nothing вместо boolean.
  34. SetTrackableOrientationEx теперь возвращает nothing вместо boolean.
  35. SetTrackableYaw теперь возвращает nothing вместо boolean.
  36. SetTrackableFacing теперь возвращает nothing вместо boolean.
  37. SetTrackablePitch теперь возвращает nothing вместо boolean.
  38. SetTrackableRoll теперь возвращает nothing вместо boolean.
  39. SetProjectileColour теперь возвращает nothing вместо boolean.
  40. SetProjectileAlpha теперь возвращает nothing вместо boolean.
  41. SetProjectileVertexColour теперь возвращает nothing вместо boolean.
  42. SetProjectileOrientationEx теперь возвращает nothing вместо boolean.
  43. SetProjectileYaw теперь возвращает nothing вместо boolean.
  44. SetProjectileFacing теперь возвращает nothing вместо boolean.
  45. SetProjectilePitch теперь возвращает nothing вместо boolean.
  46. SetProjectileRoll теперь возвращает nothing вместо boolean.
  47. Исправлена TimerIsPaused возвращающая значения TimerIsPeriodic.
  48. Добавлены новые оффсеты в AntiHack.
  49. Исправлена ошибка по которой AntiHack перестал работать после первого срабатывания.
  50. Добавлена проверка целостности WorldFrame в AntiHack.
  51. Удалён лимит в 1024 символа у string литералов.
    Пометка: чтобы пользоваться этим изменением в JNGP нужно как-то обновить pjass, чтобы он позволял писать более 1024 символов в строке.
  52. Исправлены SetProjectileModel/SetProjectileModelEx не устанавливающие модель.
  53. LaunchTargetProjectile переименован в LaunchProjectileTarget.
  54. Исправлено TimerSetPeriodic.
  55. Все PositionLocation переименованы в PositionLoc, чтобы они совпадали с именами на ванилле.
  56. Все PositionEx переименованы в PositionWithZ, чтобы они совпадали с именами на ванилле.
  57. Все ModelObjectPosition(X/Y/Z) переименованы в ModelObject(X/Y/Z).
  58. Исправлена критическая ошибка при использовании UnitAddGroupEx.
Ресурс является перечислением нового API для снарядов, добавленных в проекте UjAPI.
1 480
20
Вышла новая версия!
Прокрутить к ресурсу
API обновлено и переименовано в Projectile.
Относительно краткий пример создания пик системы строго на CSimpleFrame/CSimpleRegion фреймах (за исключением превью героя) используя UjAPI и Frame API.
Алгоритмы, Наработки и Способности
18 1 130
20
Спрайтфреймы любого вида перекрываются мировым фреймом, потому близзарды и добавили "чёрные полосы" - пока что я не нашёл лечения этой проблемы...
CSimpleTop (то где обитают все симплфреймы и т.д.) имеет приоритет выше, верно.
31
Пытаюсь состряпать кастомный интерфейс (ничего необычного, просто поотключать часть кнопок стандартного интерфейса и передвинуть остальную). Вторые сутки мучаюсь с портретом.
Идея была проста:
создать SIMPLEFRAME, с помощью функции SetFrameTextureEx сделать из фрейма рамочку. В нее поместит портрет персонажа.
Как оказалось портрет всегда отображается слоем ниже SIMPLEFRAME.
Функция SetFramePriority не помогает. Она может установить порядок отрисовки двух SIMPLEFRAME, но не Портрета.
Далее я начал пробовать все подряд. Делал портрет дочерним по отношению к SIMPLEFRAME, к другим фреймам - бестолку.
По итогу нашел костыльное решение.
Создать после SIMPLEFRAME, новый фрейм типа BACKDROP - он всегда отображается поверх SIMPLEFRAME, задать ему прозрачную текстуру.
Делаем портрет дочерним по отношению к BACKDROP - и вуаля, теперь портрет сверху нашей рамочки.
code
...
	framehandle UI;
    framehandle Backdrop;

    HideOriginFrames(true);
    
    Backdrop = CreateFrameByType( "SIMPLEFRAME", "PortraitBackdrop", GetOriginFrame( ORIGIN_FRAME_GAME_UI, 0 ), "", 0 );
    ClearFrameAllPoints( Backdrop );
    SetFrameSize( Backdrop, 0.1, 0.1 ); 
    SetFrameAbsolutePoint(Backdrop, FRAMEPOINT_BOTTOMLEFT, 0.0, 0.0);
    SetFrameTextureEx( Backdrop, 0, "UI\\Widgets\\Glues\\GlueScreen-Button1-BackdropBackground-Disabled.blp", false, "UI\\Widgets\\Glues\\GlueScreen-Slider-BackdropBorder.blp",  0 );
    
    Backdrop = CreateFrameByType( "BACKDROP", "DummyFrameAnchorForPortrait", GetOriginFrame( ORIGIN_FRAME_GAME_UI, 0 ), "", 0 );
    ClearFrameAllPoints( Backdrop );
    SetFrameSize( Backdrop, 0.1, 0.1 ); 
    SetFrameAbsolutePoint(Backdrop, FRAMEPOINT_BOTTOMLEFT, 0.0, 0.0);
    SetFrameTexture(Backdrop, "empty.blp", 0, false);
    
    UI = GetOriginFrame( ORIGIN_FRAME_PORTRAIT, 0 );
    ShowFrame(UI, true);
    SetFrameParent(UI, Backdrop);
    ClearFrameAllPoints( UI );
    SetFrameSize( UI, 0.09, 0.09 ); 
    SetFrameAbsolutePoint(UI, FRAMEPOINT_BOTTOMLEFT, 0.005, 0.005);
Но есть проблема... портрет как-то не хочет отображаться нормально, когда под ним есть другой фрейм.
Загруженные файлы
20
Нажатия кнопок - обрабатываются пакетами, я не делал блок пика на 1 персонажа, хотя наверное стоило. Правится достаточно легко.
--По поводу резкой смены анимации, постараюсь исправить, ибо я знаю причину, а если точнее использовани Ex фукнции в обоих случаях было плохим решением.
SetFrameSpriteModel/SetFrameSpriteModelEx реально создают эту странную проблему, буду пытаться решить.-- Исправлено на следующую версию.
По поводу анимаций и освящения, да, такая проблема есть, но как её решить мне не известно. | С освещением проблему особо не решить.
Когда выпущу апдейт ужапи, обновлю тут карту тоже с фиксами пик системы + новым и правильным кодом.
Спасибо за информацию.
31
Импортировал код в свою карту, подправил изменившиеся функции и потестировал,
видео

если не использовать функцию SetFrameSpriteAnimationWithRarity на спрайте, некоторые модели при появлении на экране начинают заливать его белым светом.
нажатие на кнопку фреймов имеет какую-то задержку. Можно быстро прожать дважды и получить двух героев.
У себя пока что временно поправил проверкой, получал ли данный игрок уже героя или нет.
В самом конце видео можно заметить что герои очень резко переходят от анимации "walk" к "stand", прям явным рывком.
По моим наблюдениям, это появляется после создания спрайта,
и использования функции SetFrameSpriteModelEx/SetFrameSpriteModel(), конкретно при передать корректного пути модели в функцию.
31
Исправлена функция SetFrameSpriteMaterialScale на SetFrameSpriteMatrixScale.
еще я так понимаю поменялись порядок и количество аргументов в функции SetFrameTextureEx()