Лауреат премии 2023 года
Данный ресурс работает ТОЛЬКО с патчами 1.24e/1.26а/1.27a/1.27b/1.28f
Как пользоваться?
- Распакуйте все файлы из архива, желательно в отдельную папку, вот так:
- Запустите UjAPI.exe.
- Если же у вас приложение не запускается, то скачайте и установите: .NET Framework 4.7.2.
- Если же ни в игре, ни в World Editor UjAPI не работает, то скачайте и установите: C++ Redistributable 2012
- Установите путь для Warcraft 3, вот так:
- Можно указать и на Frozen Throne.exe или же на Warcraft III.exe (но рекомендуется использовать именно war3.exe для патчей 1.27б и ниже).
- На патче 1.28.5(f) рекомендуется использовать непосредственно Warcraft III.exe.
- Установите путь для World Editor, вот так:
- Рекомендуется использовать JNGP версии Прометея: скачать
- Пароль от архива: JNGP
- Готово, вы можете теперь смело запускать как игру, так и World Editor через UjAPI Launcher.
- Для использования оконного режима в Warcraft III нажмите галочку на "Additional command line arguments" и в появившееся окно, пропишите -window, вот так:
Полезные файлы
Для лаунчера | Информационные |
---|---|
.NET Framework 4.7.2 | Список всех функций |
C++ Redistributables 2012 | Новые типы/функции |
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован Unryze
v1.0.30.110
type agentdatafield extends handle
type buffstringfield extends agentdatafield
constant native ConvertBuffStringField takes integer i returns buffstringfield
native EnableUnitInventory takes unit whichUnit, boolean enable returns nothing
native IsUnitInventoryEnabledEx takes unit whichUnit returns boolean
native EnableUnitInventoryEx takes unit whichUnit, boolean enable returns nothing
native EnableUnitMovement takes unit whichUnit, boolean enable returns nothing
native IsUnitMovementEnabledEx takes unit whichUnit returns boolean
native EnableUnitMovementEx takes unit whichUnit, boolean enable returns nothing
native EnableUnitAttack takes unit whichUnit, boolean enable returns nothing
native IsUnitAttackEnabledEx takes unit whichUnit returns boolean
native EnableUnitAttackEx takes unit whichUnit, boolean enable returns nothing
native SetUnitControl takes unit whichUnit, integer flagValue, boolean isSetFlagValue, boolean ismove, boolean isattack, boolean isinventory returns nothing
native SetUnitLocustFlag takes unit whichUnit, integer flag, integer mode returns nothing
native CreateAbility takes integer abilityId returns ability
native SetAbilityOwner takes ability whichAbility, unit whichUnit returns nothing
native GetBuffIntegerField takes buff whichBuff, abilityintegerfield whichField returns integer
native SetBuffIntegerField takes buff whichBuff, abilityintegerfield whichField, integer value returns boolean
native GetBuffBooleanField takes buff whichBuff, abilittybooleanfield whichField returns boolean
native SetBuffBooleanField takes buff whichBuff, abilittybooleanfield whichField, boolean value returns boolean
native GetBuffRealField takes buff whichBuff, abilityrealfield whichField returns real
native SetBuffRealField takes buff whichBuff, abilityrealfield whichField, real value returns boolean
native CreateBuff takes integer buffId returns buff
native SetBuffOwner takes buff whichBuff, unit whichUnit returns nothing
native ResetBuffFieldData takes buff whichBuff returns boolean Acts same as ResetAbilityFieldData, but for buffs.
In very early stages of development, may be unstable for now.
native UnitAddBuff takes unit whichUnit, buff whichBuff returns boolean Does not add duplicates!
native UnitAddBuffEx takes unit whichUnit, buff whichBuff, boolean checkForDuplicates returns boolean
native UnitAddBuffById takes unit whichUnit, integer buffId returns boolean Does not add duplicates!
native UnitAddBuffByIdEx takes unit whichUnit, integer buffId, boolean checkForDuplicates returns boolean
native UnitEnableInventory takes unit whichUnit, boolean enable, boolean ignoreErrorMessages returns nothing
native UnitEnableMovement takes unit whichUnit, boolean enable, boolean ignoreErrorMessages returns nothing
native UnitEnableAttack takes unit whichUnit, boolean enable, boolean ignoreErrorMessages returns nothing
native IsUnitTruesightImmune takes unit whichUnit returns boolean
native CreateBuilding takes player whichPlayer, integer unitTypeId, real x, real y, real facing returns unit
native CreateBuildingEx takes player whichPlayer, integer unitTypeId, real x, real y, real facing, boolean isAutoBuild, boolean workersCanAssist returns unit
native UnitGetConstructionProgress takes unit whichUnit returns real
native UnitGetConstructionRemainingTime takes unit whichUnit returns real
native UnitSetConstructionRemainingTime takes unit whichUnit, real time returns nothing
native UnitGetUpgradeProgress takes unit whichUnit returns real
native UnitGetUpgradeRemainingTime takes unit whichUnit returns real
native UnitSetUpgradeRemainingTime takes unit whichUnit, real time returns nothing
native HandleListGetDoodadCount takes handlelist whichHandleList returns integer
native HandleListGetDoodadByIndex takes handlelist whichHandleList, integer index returns doodad
native HandleListGetFilterDoodad takes nothing returns doodad
native HandleListGetEnumDoodad takes nothing returns doodad
native HandleListEnumDoodadsInRange takes handlelist whichHandleList, real x, real y, real radius, boolexpr filter returns nothing
native HandleListEnumDoodadsInRangeOfLoc takes handlelist whichHandleList, location whichLocation, real radius, boolexpr filter returns nothing
native HandleListEnumDoodadsInRect takes handlelist whichHandleList, rect whichRect, boolexpr filter returns nothing
native HandleListEnumUnitAbilities takes handlelist whichHandleList, unit whichUnit, boolexpr filter returns nothing
native HandleListEnumUnitBuffs takes handlelist whichHandleList, unit whichUnit, boolexpr filter returns nothing
Пометка: это происходило по причине того, что я использовал метод игры "воскрешения" героя, который банально "восстанавливал" пассивные способности, что и вызывало умножение на 2.
Отредактирован Unryze
v1.0.30.111
v1.0.30.112
Пометка: данный метод был использован для теста некоторых баффов, которые требуют кастера, например баффы аур.
v1.0.31.114
constant unitrealfield UNIT_RF_DEFENSE_BASE = ConvertUnitRealField('udfb') Get Only
constant unitweaponintegerfield UNIT_WEAPON_IF_ATTACK_DAMAGE_BASE_MINIMUM = ConvertUnitWeaponIntegerField('udm1') Get Only
constant unitweaponintegerfield UNIT_WEAPON_IF_ATTACK_DAMAGE_BASE_MAXIMUM = ConvertUnitWeaponIntegerField('udh1') Get Only
v1.0.31.115
v1.0.31.116
v1.0.32.118
native CreateIllusionFromUnitEx takes unit whichUnit, boolean copyPassives returns unit
native GetAbilityOwningItem takes ability whichAbility returns item
native ShowUnitAbilityEx takes unit whichUnit, integer abilityId, boolean show, boolean checkDuplicates returns nothing
native DisableUnitAbilityEx takes unit whichUnit, integer abilityId, boolean hide, boolean disable, boolean checkDuplicates returns nothing
native EnableUnitAbilityEx takes unit whichUnit, integer abilityId, boolean show, boolean enable, boolean checkDuplicates returns nothing
v1.0.33.121
constant originframetype ORIGIN_FRAME_ITEM_BUTTON_COOLDOWN_INDICATOR = ConvertOriginFrameType(47)
constant originframetype ORIGIN_FRAME_ITEM_BUTTON_AUTOCAST_FRAME = ConvertOriginFrameType(48)
constant originframetype ORIGIN_FRAME_ITEM_BUTTON_CHARGES_FRAME = ConvertOriginFrameType(49)
constant originframetype ORIGIN_FRAME_ITEM_BUTTON_CHARGES_TEXT = ConvertOriginFrameType(50)
native SetProjectileMatrixScale takes projectile whichProjectile, real x, real y, real z returns nothing
native SetWidgetMatrixScale takes widget whichWidget, real x, real y, real z returns nothing
native ResetWidgetMatrix takes widget whichWidget returns nothing
native SetDestructableMatrixScale takes destructable whichDestructable, real x, real y, real z returns nothing
native ResetDestructableMatrix takes destructable whichDestructable returns nothing
native SetItemMatrixScale takes item whichItem, real x, real y, real z returns nothing
native ResetItemMatrix takes item whichItem returns nothing
native IsUnitAutoOrientationEnabled takes unit whichUnit returns boolean
native UnitEnableAutoOrientation takes unit whichUnit, boolean enable returns nothing
native GetUnitYaw takes unit whichUnit returns real
native SetUnitYaw takes unit whichUnit, real yaw returns boolean
native GetUnitPitch takes unit whichUnit returns real
native SetUnitPitch takes unit whichUnit, real pitch returns boolean
native GetUnitRoll takes unit whichUnit returns real
native SetUnitRoll takes unit whichUnit, real roll returns boolean
native SetUnitMatrixScale takes unit whichUnit, real x, real y, real z returns nothing
native ResetUnitMatrix takes unit whichUnit returns nothing
native SetUnitOrientation takes unit whichUnit, real yaw, real pitch, real roll returns nothing
native SetUnitOrientationEx takes unit whichUnit, real yaw, real pitch, real roll, integer eulerOrder returns nothing
native ResetFrameSpriteMatrix takes framehandle whichFrame returns nothing
Пометка: эта ошибка была "представлена" когда был оптимизирован метод запуска 1.28f.
v1.0.33.122
Пометка 1: Дополнительные проверки наверное были перебором и скорее всего не нужны.
Пометка 2: Возможно эти проверки в будущем будут возвращены как настраиваемые.
v1.0.34.124
native AntiHackEnableEx takes boolean enable, boolean isModuleCheck, boolean isProcessCheck returns nothing
native AntiHackEnableModuleCheck takes boolean enable returns nothing
native AntiHackEnableProcessCheck takes boolean enable returns nothing
v1.0.35.127
constant originframetype ORIGIN_FRAME_TRAINABLE_BUTTON = ConvertOriginFrameType(51)
constant originframetype ORIGIN_FRAME_CARGO_BUTTON = ConvertOriginFrameType(52)
constant originframetype ORIGIN_FRAME_GROUP_BUTTON = ConvertOriginFrameType(53)
native RemoveProjectile takes projectile whichProjectile returns nothing
Пометка: это событие происходит каждое обновление экрана для фрейма, я НЕ советую использовать это событие, если только оно именно необходимо.
Пометка: эта система банально ищет схожие/идентичные события и удаляет их из цикла посылаемых пакетов.
v1.0.35.128
Пометка: IsEventAttack теперь работает правильно, UnitDamageTarget всегда считается "магической" атакой, однако если установлен буль isAttack, то добавится 0x100 флаг - "урон при попадании" (то бишь старая проверка на атаку).
v1.0.35.129
v1.0.36.132
native GetStringCount takes nothing returns integer
native IsUnitTargetable takes unit whichUnit returns boolean
native SetUnitTargetable takes unit whichUnit, boolean targetable returns nothing
native GetFrameTextColourEx takes framehandle whichFrame, integer stateId returns integer 0 = font | 1 = highlighted | 2 = disabled | 3 = shadow
native GetFrameTextColour takes framehandle whichFrame returns integer
native SetFrameTextColourEx takes framehandle whichFrame, integer stateId, integer colour returns nothing
Пометка: это очень старая критическая ошибка самой игры.
Пометка 1: другие игроки МОГУТ контролировать юнитов этого игрока, так что ошибка локальная.
Пометка 2: эта ошибка оказалась не связанной с выдачей контролей игроков.
v1.0.36.133
Apos - фаталит если кастер не докастовал способность и жертва разложилась.
v1.0.36.134
v1.0.37.137
type sprite extends agent
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
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
Пометка: приоритет: CSimpleFrame, CLayer (под курсором), CLayer (подсвеченный/в фокусе).
Пометка: эта информация больше для меня, так как эти изменения никак не должны отразиться на игре.
Пометка: чтобы пользоваться этим изменением в JNGP нужно как-то обновить pjass, чтобы он позволял писать более 1024 символов в строке.
v1.0.37.138
Пометка: ошибка происходила из-за обрезания старого кода, новый метод не был идеален для более простых типов агентов.
Пометка: эта ошибка происходила случайно на определённых картах.
v1.0.38.140
native MathRealModulo takes real dividend, real divisor returns real
native MathIntegerModulo takes integer dividend, integer divisor returns integer
Note: I actually registered these natives long time ago, but forgot to add them to common.j.
native GetSpriteModel takes sprite whichSprite returns string
native GetSpecialEffectModel takes effect whichEffect returns string
native GetTrackableModel takes trackable whichTrackable returns string
native GetDestructableVariation takes destructable whichDestructable returns integer
native SetDestructableVariation takes destructable whichDestructable, integer variation returns nothing
native SetDestructableVariationEx takes destructable whichDestructable, integer variation, boolean ignoreStateCheck returns nothing ignoreStateCheck will skip checking for dead/alive variations of the model.
native IsDestructableBlighted takes destructable whichDestructable returns boolean
native SetDestructableBlighted takes destructable whichDestructable, boolean flag returns nothing
native SetDestructablePositionWithZ takes destructable whichDestructable, real x, real y, real z returns nothing
native SetDestructableZ takes destructable whichDestructable, real z returns nothing
native GetDestructableModel takes destructable whichDestructable returns string
native GetItemModel takes item whichItem returns string
native SetUnitVisibleByPlayer takes unit whichUnit, player whichPlayer, boolean flag returns nothing
native SetUnitDetectableByPlayer takes unit whichUnit, player whichPlayer, boolean flag returns nothing
native GetUnitModel takes unit whichUnit returns string
native GetProjectileModel takes projectile whichProjectile returns string
native GetFrameSpriteModel takes framehandle whichFrame returns string
native GetUnitLocustFlag takes unit whichUnit returns integer
v1.0.39.142
type renderstage extends handle
constant native ConvertRenderStage takes integer i returns renderstage
constant renderstage RENDER_STAGE_SKYBOX = ConvertRenderStage(0)
constant renderstage RENDER_STAGE_TERRAIN = ConvertRenderStage(1)
constant renderstage RENDER_STAGE_FOG_OF_WAR = ConvertRenderStage(2)
constant renderstage RENDER_STAGE_TERRAIN_SHADOW = ConvertRenderStage(3)
constant renderstage RENDER_STAGE_WATER_SHADOW = ConvertRenderStage(4)
constant renderstage RENDER_STAGE_BLIGHT = ConvertRenderStage(5)
constant renderstage RENDER_STAGE_WEATHER = ConvertRenderStage(6)
constant renderstage RENDER_STAGE_SELECTION_CIRCLE = ConvertRenderStage(7)
constant renderstage RENDER_STAGE_INDICATOR = ConvertRenderStage(8)
constant renderstage RENDER_STAGE_FOOTPRINT = ConvertRenderStage(9)
constant renderstage RENDER_STAGE_DOODAD = ConvertRenderStage(10)
constant renderstage RENDER_STAGE_SPRITE = ConvertRenderStage(11)
constant renderstage RENDER_STAGE_SELECTION_SPRITE = ConvertRenderStage(12)
constant renderstage RENDER_STAGE_DECORATION = ConvertRenderStage(13)
constant renderstage RENDER_STAGE_WATER = ConvertRenderStage(14)
constant renderstage RENDER_STAGE_SELECTION_BOX = ConvertRenderStage(15)
constant renderstage RENDER_STAGE_TEXTURE = ConvertRenderStage(16)
constant renderstage RENDER_STAGE_OCCLUSION_MASK = ConvertRenderStage(17)
constant renderstage RENDER_STAGE_BUILDING = ConvertRenderStage(18)
constant renderstage RENDER_STAGE_UBERSPLAT = ConvertRenderStage(19)
constant renderstage RENDER_STAGE_LIGHTNING = ConvertRenderStage(20)
constant renderstage RENDER_STAGE_TEXTTAG = ConvertRenderStage(21)
native GetFPS takes nothing returns real
native GetAttackSpeedMinBonus takes nothing returns real
native SetAttackSpeedMinBonus takes real value returns nothing
native GetAttackSpeedMaxBonus takes nothing returns real
native SetAttackSpeedMaxBonus takes real value returns nothing
native GetMoveSpeedMinAllowed takes nothing returns real
native SetMoveSpeedMinAllowed takes real value returns nothing
native GetMoveSpeedMaxAllowed takes nothing returns real
native SetMoveSpeedMaxAllowed takes real value returns nothing
native IsSelectionEnabled takes nothing returns boolean
native EnableSelection takes boolean enable returns nothing
native IsSelectionCircleEnabled takes nothing returns boolean
native EnableSelectionCircle takes boolean enable returns nothing
native IsTargetIndicatorEnabled takes nothing returns boolean
native EnableTargetIndicator takes boolean enable returns nothing
native IsRenderStage takes renderstage renderStage returns boolean
native EnableRenderStage takes renderstage renderStage, boolean enable returns nothing
native IsStatbarEnabled takes nothing returns boolean
native EnableStatbar takes boolean enable returns nothing
native HandleListGetSpriteCount takes handlelist whichHandleList returns integer
native HandleListGetSpriteByIndex takes handlelist whichHandleList, integer index returns sprite
native HandleListGetFilterSprite takes nothing returns sprite
native HandleListGetEnumSprite takes nothing returns sprite
native SaveSpriteHandle takes hashtable table, integer parentKey, integer childKey, sprite whichsprite returns boolean
native SaveDoodadHandle takes hashtable table, integer parentKey, integer childKey, doodad whichDoodad returns boolean
native SaveTextFileHandle takes hashtable table, integer parentKey, integer childKey, textfilehandle whichFile returns boolean
native LoadSpriteHandle takes hashtable table, integer parentKey, integer childKey returns sprite
native LoadDoodadHandle takes hashtable table, integer parentKey, integer childKey returns doodad
native LoadTextFileHandle takes hashtable table, integer parentKey, integer childKey returns textfilehandle
Попробовал запустить на предыдущей, 1.0.38.140, крита не словил...
Теперь искать, где фаталит...