Пользуюсь программой REFORGEDUIMAKER, и такое вот в первый раз. Для примера сразу код из проги :
Карта в конце загрузки вылетает с ошибкой просто.
globals 
framehandle Frame09 = null 
trigger TriggerFrame09 = null 
framehandle Frame010 = null 
trigger TriggerFrame010 = null 
endglobals 
 
library REFORGEDUIMAKER initializer init 
private function init takes nothing returns nothing 


set Frame09 = BlzCreateFrame("CheckListBox", BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0),0,0) 
 call BlzFrameSetAbsPoint(Frame09, FRAMEPOINT_TOPLEFT, 0.462190, 0.577694) 
 call BlzFrameSetAbsPoint(Frame09, FRAMEPOINT_BOTTOMRIGHT, 0.711460, 0.551540) 

set Frame010 = BlzCreateFrameByType("TEXT", "name", Frame09, "", 0) 
call BlzFrameSetAbsPoint(Frame010, FRAMEPOINT_TOPLEFT, 0.474490, 0.571537) 
call BlzFrameSetAbsPoint(Frame010, FRAMEPOINT_BOTTOMRIGHT, 0.575280, 0.558460) 
call BlzFrameSetText(Frame010, "|cffFFCC00Text Frame|r") 
call BlzFrameSetEnable(Frame010, false) 
call BlzFrameSetScale(Frame010, 1.00) 
call BlzFrameSetTextAlignment(Frame010, TEXT_JUSTIFY_TOP, TEXT_JUSTIFY_LEFT) 
endfunction 
endlibrary

Answer

Тут не в краше при загрузке дело а именно в этой строчке, я перенёс твой код в отдельное событие нажатия ESC и оставил там 1 строчку, 1 всего лишь, и получаю тот же самый результат "краша", хотя у меня это зависание, какой итог хочешь получить, рамку поставить для текста, тебе сделать этот код? ну там 1 строчку поменять и 3 добавить, результат будет как на картинке

Views: 73

1
Голосов: 1
rsfghd 486533 - 1 week ago 1
Голосов: 1
а если убрать call BlzFrameSetScale(Frame010, 1.00)?
0
Голосов: 0
EviLInside 486534 - 1 week ago 0
Голосов: 0
а если убрать call BlzFrameSetScale(Frame010, 1.00)?
не помогло
1
Голосов: 1
Bergi 486539 - 1 week ago 1
Голосов: 1
EviLInside, Дождись, вечером проверю
1
Голосов: 1
МрачныйВорон 486543 - 1 week ago (изм. ) 1
Голосов: 1
когда крашит? во время сейв/лоад?

при старте или позже вы можете загрузить ток, создать фреймы, зарегистрировать на них события, таймеры итд. А когда сохраняете и грузите игру, то в переменных типа фрейм уже нет тех данныХ .дебаг покажет по хэндлу что они есть, но на самом деле нет. события фреймов не работают. А таймеры, вызывающие любые действия нативки set,get приводят к вылету, тк фреймов нет. Их надо заново пересоздать. И при загрузке нужно еще заново грузить ток
но в переменных можно хранить другие объекты хэндл, строку, число итд. они не ломаются в отличии от фреймов. в булеан храним состояние фрейма, в строках различную инфу и путь иконок, в числах какую-нибудь инфу по фреймам. При загрузке просто в переменные типа фреймы новые фреймы пересоздаем, заново регистрируем. Поищи где еще есть переменные.

тошнит уже от этих статей по фреймам. смотреть уже на них не могу)
2
Голосов: 2
rsfghd 486545 - 1 week ago 2
Голосов: 2
МрачныйВорон, отличные статьи успокойся, спасибо за них)
3
Голосов: 3
Bergi 486550 - 6 days ago 3
Голосов: 3
Ну у меня без ошибки, а просто зависает на мертво, при загрузке этой части кода
Зависает из за строки
set Frame09 = BlzCreateFrame("CheckListBox", BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0),0,0)
заменил её на
Frame09 = BlzCreateFrameByType("CheckListBox", "", BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0), "", 0)
пока что ничего не происходит

В общем оно всё очень кривое, конкретно не создаётся этот "CheckListBox", попробуйте в этом месте создать любой прозрачный бекдроп визуаль будет тоже самое, по поводу REFORGEDUIMAKER, не пользовался, но слышал что вещь крайне кривая, да и судя по кода что она генерирует, там ничего особенного, лучше делать это без каких либо программ просто кодом, помог как смог, мб другой кто что подскажет
0
Голосов: 0
EviLInside 486588 - 6 days ago 0
Голосов: 0
Ну у меня без ошибки, а просто зависает на мертво, при загрузке этой части кода
Зависает из за строки
set Frame09 = BlzCreateFrame("CheckListBox", BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0),0,0)
заменил её на
Frame09 = BlzCreateFrameByType("CheckListBox", "", BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0), "", 0)
пока что ничего не происходит

В общем оно всё очень кривое, конкретно не создаётся этот "CheckListBox", попробуйте в этом месте создать любой прозрачный бекдроп визуаль будет тоже самое, по поводу REFORGEDUIMAKER, не пользовался, но слышал что вещь крайне кривая, да и судя по кода что она генерирует, там ничего особенного, лучше делать это без каких либо программ просто кодом, помог как смог, мб другой кто что подскажет
Не знаю что ставить в ответ но ты правильно сказал проблема в set Frame09 = BlzCreateFrame("CheckListBox", BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0),0,0). И мне кажется это крашится если маленький размер далее выдаю. Если для себя интересно чекните в размере проблемы, либо тут я ошибся либо реально в этом дело, пока ответ не буду ставить, по сути какой то треш, но ранее у меня всё в порядке было с этой прогой , ничего не крашилось, делал куда более мощные фреймы)

МрачныйВорон, у тебя крутая статья, но полностью пока её не вывожу, слишком много инфо ) я имел ввиду во время старта карты (сказал загрузки , может смутило)
1
Голосов: 1

ANSWER
Bergi 486589 - 6 days ago 1
Голосов: 1
Тут не в краше при загрузке дело а именно в этой строчке, я перенёс твой код в отдельное событие нажатия ESC и оставил там 1 строчку, 1 всего лишь, и получаю тот же самый результат "краша", хотя у меня это зависание, какой итог хочешь получить, рамку поставить для текста, тебе сделать этот код? ну там 1 строчку поменять и 3 добавить, результат будет как на картинке
Uploaded files