-
Постов
3 118 -
Зарегистрирован
-
Посещение
Тип контента
Загрузки
Форумы
Статьи и объявления
Гардероб
Маунты
Сообщения Allods Team
Трекер ошибок
Магазин
Галерея
Сообщения, опубликованные icreator
-
-
fragments[ i + 1 ]:SetVal( "item", v.item )
then, Valued Object wil be show TOOLTIP?
-
try last version - must work
if not work - attach mods.txt here
- 1
-
нашла форму:
WidgetsManagerForm
Code:local w = stateMainForm:GetChildUnchecked("WidgetsManagerForm", false)
w:Show(true)
она не высветилась ((
там куча вложенных форм и прочего
-
просьба сделать так:
Code:SLASH_COMMANDS = { [1] ="\/am", [2] = "\/фь" }...
addon._R [ "EVENT_UNKNOWN_SLASH_COMMAND" ] = function( event )
if addon.SLASH_COMMANDS [FrWS( event.text )] then W( "MainPanel" ):Show( not W( "MainPanel" ):IsVisible() ) end
end
чтобы можно было не переключать кодировку на русскую вызвать окно. ну или локализацию сделать
-
что бы хотелось чтобы у нас в API было и прочие пожелания (просьба этут тему прикрепить чтобы она вниз не уходила)
1.сделайте пожалуйста в API функцию показа и гашения толтипов. Например в вашем коде вместо
common.SendEvent( "SCRIPT_HIDE_CONTEXT_TOOLTIP", tooltipParams )
чтобы можно было написать что-то вроде этого:
common.SCRIPT_HIDE_CONTEXT_TOOLTIP( tooltipParams )
Ведь тултипы работаю у системных аддонов через события - а мы не можем события им послать. Я выкручиваюсь так - посылаю ValuedObject в системный ЧАТ.
2. сделайте пожалуйста функцию widget:GetChildren() - чтобы она выдавала ВСЕХ потомков а не только именованных. Имя у безымянного виджета можно задавать так: "__ТипВиджета". А то не получается например сделать масштабирование всего виджета вместе с его потомками
3. сделайте поощрения в КРИ разработчикам аддонов - вам проще чем нанимать народ
-
ValuedObject - как с чего делать? ктонить разобрался?
-
кстати если вам влом свои интерфейс делать - окошки там иконки, кнопки - можно взять готовый прямо из системных аддонов:
Code:Global( "sysRGNaddomName", "RollGreedNeed" ) --- имя системного аддона и его главной формы
addon.GetWidgets = function( self )
local wtSysName = sysRGNaddomName
--- скопирум виджеты с ситемного аддона
local wSys = stateMainForm:GetChildChecked(wtSysName, false):GetChildChecked( "MainPanel", false )
local wDesc = wSys:GetWidgetDesc()
--- и создадим такие же в нашей главной форме
mainForm:CreateWidgetByDesc( wDesc ):SetName( "MainPanel" )
local myWiidget = mainForm:GetChildChecked( "MainPanel", false )
все - теперь вся структура скопирована и можно выгрузить системный аддон и пользовать готовые виджеты
в описании аддона надо всеже главную форму создать:
AddonDesc.(UIAddon).xdb
Code:<Forms><Item>
<Form href="MainForm.(WidgetForm).xdb#xpointer(/WidgetForm)" />
<Id>MainForm</Id>
</Item>
</Forms>
<MainFormId>MainForm</MainFormId>
- 1
-
еще интересное замечание - если системный ( ну и видимо пользовательский) аддон выгружен, то его виджеты есть в системе, но они не показываются по :Show():
Code:userMods.StateUnloadManagedAddon( "RollGreedNeed" )
local w = stateMainForm:GetChildChecked("RollGreedNeed", false)
--- вывести список детей в логфайл
getAllChildrensOfWidget("rgn",w)
w:Show(true)
-
как сделать всплывающую подсказку?
тип такой:
Code:onReaction [ "button_greed_over" ] = function( reactionParams )local tooltipParams = {}
if reactionParams.active then
tooltipParams.tooltip = TOOLTIP_SIMPLEDESC
tooltipParams.name = GetText( "GreedOverHeader" )
tooltipParams.desc = GetText( "GreedOver" )
userMods.SendEvent( "SCRIPT_REQUEST_CONTEXT_TOOLTIP", tooltipParams )
else
userMods.SendEvent( "SCRIPT_HIDE_CONTEXT_TOOLTIP", tooltipParams )
end
end
-
а в чем отличие в описаниях функций:
1
Code:function SetConfig( name, value )2
Code:function DnD.GetWidgetID( wtWidget )3
Code:function DnD:IsDragging()4
Code:choice.makeChoice = function( self, rollId, NGP)3 и 4 - это типа как методы объекта?
-
азбука морзе - там я так понимаю вообще нужно 3 эмоции )) .. так что...
а ввобще прога должна сама подстраиваться под общедоступные эмоции - может просто адаптировать?
-
-
суть в том что если в Менеджере не стоит галочка -то есть аддон не загружать, но аддон все равно стартует по автозапуску!!! при этом он может напортачить и потом его Менеджер выгрузит. предложение: все аддоны делать без автозапуска:
Code:<AutoStart>false</AutoStart>но тогда у всех пользователей должен стоять Менеджер и он должен запускать вновь установленные аддоны сам и галочку ставить
-
может есть событие при открывании/закрывании окон? надо бы разрабам дать задание чтобы сделали - чтобы любые окна интерфейса ловить - аукцион и пр
-
нет дело не в том, а в том что есть имя у виджета или нет - ведь если виджет без имени на него ссылку никак не получить - поэтому он и не сжимается
причем даже можно у всех виджетов сжедать одно и тоже имя:
Code:<WidgetPanel><Name>wp</Name>
...
поэтому ВСЕ виджеты (и их дети) должны иметь ИМЯ чтобы они корректно сжимались
единственно что я не смогла сжать - это кнопки
Code:<WidgetButton><Name>Button1</Name>
<Header>
<Prototype href="Button/ButtonRegular.Prototype.(WidgetButton).xdb#xpointer(/WidgetButton)" />
</Header>
...
-
widgetsSystem:SetShrinkRatio( 0.8 )
у обычных виджетов этого нету и она весь интерфейс сжимает - причем сжатие еще хуже чем у моего - все едет и не совпадает... может надо совместно их использовать? Тем более что widgetsSystem:SetShrinkRatio() вызывает событие EVENT_UPDATE_SHRINK_RATIO - хотя его может вызывать и наш пользовательский wtScale()
myWidget:SetShrinkRatio( 0.8 ) - вызывает ошибку
-
это уже другой аддон будет )) хотя его можно сделать..
-
Quote:SetShrinkRatio()
a Tiled textures too? -
ну я и персонажами 4 ур им пользуюсь.. такая ошибка говорит о том, что в данный момент окно аукциона закрытое - то есть его нету - некуда выставлять лоты короче.
-
для отладки и просто для других целей - как сделать вывод в окно чата.
создаем 2 функции
Code:------------------------------------------------------------------
---- output in Chat. created by icreator(EDS) 2011/01/23
--- initial ref
--- Chat...Chat
local wtChat = nil
local chatRows = 0 --- for clear buffer after show messages
function LogToChat(message, color, fontSize)
if not wtChat and not errMess.Chat then
---- если окно еще не искали и ошибки при этом не было. а если уже ошибка была то не искать
--- найдем окно чата
--- Chat..Chat
local w
w = stateMainForm:GetChildUnchecked("Chat", false)
if not w then
--- главня форма не найдена - найден по ребенку
w = stateMainForm:GetChildUnchecked("Chat", true)
else
w = w:GetChildUnchecked("Chat", true)
end
wtChat = w
end
if not wtChat or not wtChat.PushFrontValuedText then
if not errMess.Chat then
errMess.Chat = "can't find Chat window"
LogError(errMess.Chat)
end
return
end
local valuedText = common.CreateValuedText()
--- fontname=\"AllodsWest\"
local format = "<body alignx='left' fontname='AllodsSystem' fontsize='"..(fontSize or 14)
format = format.."' shadow='1' ><rs class='color'><r name='text'/></rs></body>"
valuedText:SetFormat(userMods.ToWString(format))
if color then
valuedText:SetClassVal( "color", color )
else
valuedText:SetClassVal( "color", "LogColorYellow" )
end
if not common.IsWString( message ) then message = userMods.ToWString(message) end
---message = ToWS(chatRows.. ":".. FromWS(message))
valuedText:SetVal( "text", message )
---wtChat:PopBack() --- ++
chatRows = chatRows + 1
wtChat:PushFrontValuedText( valuedText )
---wtChat:PushFrontRawText( message ) --- текст не видно ((
end
--- call by "EVENT_SECOND_TIMER" - for clear messages from chat
function ClearChat( size )
for i=1, size or math.ceil( chatRows / 30 ) + 1 do
if chatRows < 1 then break end
chatRows = chatRows - 1
wtChat:PopBack()
end
end
------------------------------------------------------------------------------------
вызов для вывода 1 строчки делаем так:
Code:LogToChat({ text = "Привки ВСЕМ!", color = "LogColorGreen" })а вот для того чтобы потом очистить окно чата от этих строчек делаем вызов по таймеру:
Code:local delay = 20function OnEventSecondTimer( params )
--- очистить то что было в чат послано, чтобы не раздувать размер массива строк в окне чата - иначе он тормозит жутко потом
if delay< 0 then ClearChat() else delay = delay - 1 end
end
тогда чат не будет тормозить из-за того что массив его строчек раздувается до бесконечности
-
добавила масштабирование ВСЕХ элементов интерфейса - будьте осторожны ))
-
и вызов:
Code:wtScale(stateMainForm, 0.7, 0.8, true)уменьшит ВСЕ элементы системного интерфейса!!!!
я так себе в TargetsManager сделала!
однако как я заметила все текстуры, иконки и картинки, вставленные через
Code:<BackLayer href="w.(WidgetLayerTiledTexture).xdb#xpointer(/WidgetLayerTiledTexture)" />не корректно отображаются - короче они не отрегулировались. кто-нибудь знает почему? Может быть надо все делать через:
Code:<BackLayer href="w.(WidgetLayerSimpleTexture).xdb#xpointer(/WidgetLayerSimpleTexture)" />
а как рамку у поля ввода сделать тогда правильно? которые у меня в AucEDSman есть
-
вот с помощью подпрограмм можно все элементы интерфейса посжимать/переместить
Code:function wtResize( w, dX, dY )
local place = w:GetPlacementPlain()
place.sizeX = place.sizeX + dX
place.sizeY = place.sizeY + dY
w:SetPlacementPlain(place)
end
function wtScale( w, scaleX, scaleY, andChildrens )
local place = w:GetPlacementPlain()
place.posX = math.ceil(place.posX * scaleX)
place.sizeX = math.ceil(place.sizeX * scaleX)
place.highPosX = math.ceil(place.highPosX * scaleX)
place.posY = math.ceil(place.posY * scaleY)
place.sizeY = math.ceil(place.sizeY * scaleY)
place.highPosY = math.ceil(place.highPosY * scaleY)
w:SetPlacementPlain(place)
if andChildrens then
--- всех детишек тоже
for _, wCh in w:GetNamedChildren() do
wtScale( wCh, scaleX, scaleY, andChildrens )
end
end
end
function wtMove( w, shiftX, shiftY, highShiftX, highShiftY )
local place = w:GetPlacementPlain()
place.posX = place.posX + shiftX
place.posY = place.posY + shiftY
if highShiftX then place.highPosX = place.highPosX + highShiftX end
if highShiftY then place.highPosY = place.highPosY + highShiftY end
w:SetPlacementPlain(place)
end
-
убрана ошибка выставления лота с другим количеством (когда аддон работал и вы еще докупили товар из ЛР) и добавлен цвет редкости вещей в окошке сообщений
Можно ли создать такой аддон?
в Вопросы и ответы
Опубликовано
в TargetsManager есть для группы и масштабирование всего