Перейти к содержанию

Дайджест за июль-сентябрь

Обновления гайдов и аддонов

Сентябрь Август Июль

Мониторинг серверов и редактор аддонов

Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.

Мониторинг серверов Редактор аддонов

Бот статистики для Telegram

Удобная аналитика в телефоне.

Подробнее

Подсказки из игры на вашем сайте

Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.

Подробнее

Апдейтер аддонов

Представляем вам программу для автообновления аддонов и делимся подробностями.

Подробнее Скачать

icreator

Пользователь
  • Постов

    3 118
  • Зарегистрирован

  • Посещение

Весь контент icreator

  1. автооткрывание не нужно - нужно по команде игрока - как сделано в аддоне BoxAutoOpener r02
  2. 1 а зачем если есть разница в высоте меж твоим и ихним кораблем 2 так есть же уже давно 3 а экран не будет сильно перегружен? тоесть сделать чтобы в окне с оборудкой не показывалась карта?
  3. бывает бывает - я примерчик написала ты его запусти
  4. а как ты по своей реакции запустишь умение например? и потом я так и не смогла прибиньдить клавиши на виджет а никто не сказал как - вернее инфо была, но по ней ничего не получилось
  5. аватар схватил юзабельное устойство onEvent.EVENT_AVATAR_USED_OBJECT_CHANGED = function() ---EVENT_AVATAR_USED_OBJECT_CHANGED local info = avatar.GetActiveUsableDeviceInfo() --exObj("dev",info) --local newDev = info and device.GetUsableDeviceType(info.id) if info then showButtons( false ) else showButtons( true ) end end
  6. да у Setras просо комплекс неполноценности раз он по пустякам на пену исходит )
  7. ActionsMod у меня их восстанавливает после закрытия карты. прямо видно когда ИМ загружается - он кнопки ставит а потом их кто-то переставляет я выгрузила ActionsMod - и все норм стало - никто кнопки кроме ИМ не перестанвликает
  8. так панель быстрых клавиш ты с помощью ИМ перетащил? а если поставить PopUpChat?
  9. при зоходе переключи билды - они должны восстановиться
  10. прикольно но не понятно - галочки что делают? выделения както сумбурно если в майн форм много виджетов...
  11. приложи его плиз - не получается у меня такой создать или что - кнопки не пашут и все тут
  12. для того чтобы создать вот такое меню нужно написать вот такой код (он уже есть в примере кстати его даже писать не надо) local mnu --[[ *********** памятка по классу menu заначение поля хранится в: .value получить данные - при начальном создании меню или когда делается показ меню - Update(): .valGet = function(item) or table[item.name] - результат будет записан в .value при изменении данных пользователем: .valOnSet = function(item) функция вызываемая после изменения данных в меню ( после нажатия на пункт меню) для показа значения в поле меню: 1. изменение значениея до форматировани - наклейки для значений .valLabels = function(item) or table[item.value] - результат запишется в локальную VAL = 2. выбираем формат для показа данных по VAL для SetFormat(): .valFormats = table[VAL] 3. изменяем занчениие еще раз (Обычно это для локализации нужно): .valShapes = function(VAL) or table[VAL] - результат выводится в поле по :SetVal() для ярлыкоа пунктов меню: .label - тектовое значение .labelShapes = function(label) or table[label] - меняет ярлык - обычно для локализации если у поля нет своей функции то она берется общая из самого меню: if item.valGet then elseif item.parent.valGet then end if item.labelShapes then elseif item.parent.labelShapes then end если это пункт без значений - как оманда то функция по клику хранится в: .onclick = function( item ) --- порядок вызова внешних функций при нажатии на пункт меню / изменении данных local onclick = item.onclick or item.valOnSet or obj.valOnSet or obj.onclick if onclick then onclick( item, pars ) end ]] -- тут задаем функцию обработки значений перед выводом в поле меню local function valGet(item) item.value = get_PS( item.name ) end -- тут функция для обработки действий пользователя - нажатие меню, редактировани ип р local function valOnSet( item ) local n, v = item.name, item.value set_PS(n, v) item.parent:ItemFade( item, v == OFF and 0.7 or 1) if type(v) ~= "table" then LogToChat(n.." = "..v) else LogToChat("see mods.txt") exObj( n, v ) end end local function setLocalize(item) valOnSet( item ) SetGameLocalization(item.value) mnu:Update() end ------------------------------------------------------------------------------- function mainMenuToggle( pars ) if mnu then ---exObj("pars",pars) if not DnD:isSetted( mnu.wtMenu ) then --- если окно еще не передвигали и не запомнили с новыми координатами, --- то задаим свои wtChain( mnu.wtMenu, pars.reaction.widget , 10, 10 ) end mnu:Show( true ) else ---LogInfo("mainMenu.ShowToggle - mnu = nil") end end function AOCommand( pars ) if pars.command == "cmd1" then LogToChat("You select FIRST command") elseif pars.command == "cmd2" then LogToChat("You select command 2") end end ---------------------------------------------------------------- ------ INIT ---------------------------------------------------------------- function menuUpdate() if mnu then mnu:Update() end end -- тут задаем форматирование для некоторых значений в меню -- переменные ON, OFF, NEED, GREED, SAME, PASS, SORT_NONE, SORT_ASC, SORT_DESC уже заданы как глобальные в Globals.lua -- функция L() - задана в Locales.lua - это локализация аддона -- get_PS() set_PS() - это функции для взятия/установки параметров конфигурации (настроек аддона) -- некоторые функции вызываемые при нажатии меню записаны в главном файле Main.lua local valFormats = { [names[NEED]] = "<html alignx='right' fontsize='14'><tip_red><r name='value'/></tip_red></html>", [names[GREED]] = "<html alignx='right' fontsize='14'><tip_green><r name='value'/></tip_green></html>", [names[sAME]] = "<html alignx='right' fontsize='14'><tip_golden><r name='value'/></tip_golden></html>", [names[PASS]] = "<html alignx='right' fontsize='14'><tip_blue><r name='value'/></tip_blue></html>", [names[ON]] = "<html alignx='right' fontsize='14'><tip_green><r name='value'/></tip_green></html>", [names[OFF]] = "<html><log_dark_white><body alignx='right' fontsize='14'><r name='value'/></body></log_dark_white></html>", } --- списки значений, которые будут прокручиваться как значения некоторых полей local onoff = { ON, OFF } local png = { NEED, GREED, SAME, PASS } local pngOFF = { NEED, GREED, SAME, PASS, OFF } local loczList = { ["rus"]=1, ["eng"]=1, ["ger"]=1 } local sortVals = { SORT_NONE, SORT_ASC, SORT_DESC } local allTypes = { fm = L("Friends on Me"), em = L("Enemies on Me"), tm = L("last Targets of Me") , tg = L("Targets of Group"), eg = L("Enemies on Group"), tb = L("Targets memo Board"), ta = L("Targets Assist"), la = L("Leader Assist"), gp = L("My Group"), } local dfltSRTCT = { actName = "??", cell = "??", icon = "??"} function GUIinit() local pr = get_PS( "mfPrior" ) if mainForm and pr then mainForm:SetPriority( pr ) end local strucMenu = { { token = "_", label = "COMMANDS", }, --- создать разделитель { name = "load", label = "Load Settings", onclick = fromConfig }, --- создать пункт меню { name = "save", label = "Save Settings", onclick = toConfig }, { token = "_", label = "SETTINGS", }, --- создать пункт меню с установкой значения по списку { name = "locz", label = "Localize", valOnSet = setLocalize, type = "_txt", menuItems = loczList, offset = 15, tip = "" }, --- создать пункт меню с установкой значения по переключению значений { name = "wcc", label = "Wrong Char Class", type = "_txt", valLabels = names, listVals = png, chars = 10, tip = "для переключения нажмите на пункт меню" }, --- color set { name = "color_bar1", label = "Color of BAR1", type = "_clr", tip = "нажмите чтобы задать цвет" }, { name = "junk", label = "Junk", type = "_txt", valLabels = names, listVals = pngOFF, chars = 10, tip = L("choice for junk items") }, { name = "sjunk", label = "Auto Sell Junk", type = "_txt", valLabels = names, listVals = onoff }, { name = "wjunk", label = "Wipe Junk Cheaper", type = "_edl", chars=3, tip=L("Wipe junk items if its selling cost less then value") }, --- создать ввод со сложным списком - таблицей значений { name ="AUTOTARGETlist", label = "AUTOTARGET List", type ="_lst", list = { itemSizeX = 300, type = "_txt", labels = allTypes, vals = sortVals, valLabels = names, defaultVal = SORT_ASC, edited = true, --- можно редактировать список numberKeys = true, --- список состоит из нумерованных списков - очередность элементов влияет на результаты и их можно менять местами }, offset = 15, tip = L("Список панелей с типом сортировки для автоматического выбора цели") }, { name ="SHORTCUTS", label = L("SHORTCUTS"), type ="_lst", list = { type = "_lst", labels = nil, vals = nil, defaultVal = dfltSRTCT, edited = true, --- можно редактировать список numberKeys = nil, --- список состоит из нумерованных списков - очередность элементов влияет на результаты и их можно менять местами mouse_left_click = function ( item, pars ) exObj("item", item) exObj("pars", pars) end, list = { type = "_edl", labels = nil, vals = nil, defaultVal = nil, edited = nil, --- можно редактировать список numberKeys = nil, --- список состоит из нумерованных списков - очередность элементов влияет на результаты и их можно менять местами mouse_left_click = function ( item, pars ) exObj("item", item) exObj("pars", pars) end, }, }, tip = L("SHORTCUTS settings") }, { token = "_", label = "", }, { token = "_3", label = "------***------", }, { name = "prior", label = "Inteface Priority", type = "_edl", chars=5 }, { name = "reset", label = "Reset to Config.txt", onclick = reset_PS }, } mnu = menu{ strucMenu = strucMenu, priority = 500, mouse_overRun = true, fadeOn = 100, fadeOff = 600, valGet = valGet, --- функция для получения значений для полей меню labelShapes = L, --- просто локализация valOnSet = valOnSet, --- функция, которая запомнит изменения сделанные пользователем и выполняет соотвествующие реакции valFormats = valFormats, --- форматы представления (цвет шрифт...) для разных значений valShapes = L, --- просто локализация itemSizeX = 300, } mnu:init({}) DnD:Init( mnu.wtMenu, mnu.wtMenu, false) end
  13. вранье вранья )) а я говорила что убивает? нет
  14. сделайте аддон вот с таким обработчиком событий и вы увидите результат. имя аддона на А - чтобы он первым событие обрабатывал onEvent.EVENT_EFFECT_FINISHED = function( pars ) local wt = pars.wtOwner wt:DestroyWidget() end
  15. ладно секрет в том что (по-моему еще никто не догадался до того что) разного рода эффекты виджетов генерируют событие которое леит на все АДДОНЫ!! даже из системных на пользовательские таким образом можно поймать PlayEffect - нажатие на кнопку или еще что-то из системного аддона! onEvent.EVENT_EFFECT_FINISHED = function( pars ) local wt = pars.wtOwner local name = wt:GetName() LogToChat( name ) end так вот сюда прилетят события на все PlayEffect в результате если чужой аддон убил этот виджет то все остальные аддоны, которые проверяют виджет на принадлежность себе по GetInstanceId() выдадут ошибку... как с этим бороться? function GetInstanceId( wt ) return wt:IsValid() and wt:GetInstanceId() or wt:Show( false ) and nil end это тоже что-то не помогает
  16. удобно с клавиатуры которая на панель настроена переключаться чем лезть еще кудато. нет?
  17. Ну ладно вижу дело идет к тому что мой секрет скоро раскроется - судя по поднятой теме по убиенным виджетам... вот кто скажет как я ловлю нажатия кнопок на быстрой панели в EnhancedActionPanel? А? подсказка навиду уже
  18. это нужно не мне это нужно всем кто хочет красивый интерфейс вот уже и Error: addon InspectAPI: Widgets::LuaGetInstanceId: Empty widget, details: int __cdecl Widgets::LuaGetInstanceId(struct lua_State *) тоже этим заразился )
  19. кому это интересно сюда обсуждать: убитый виджет
  20. фига там - иногда прилетает такая ошибка на все аддоны (
  21. IsValid ! нашлась функция ну капец они иназвали
  22. если я убью виджет wt:WidgetDestroy() то что самое интересно он остается на виду - им можно управлять екоторое время но вот GetInstanceId() дает ошибку Info: addon TargetsManager: pars.wtOwner = userdata: 23E74538 --- {userdata} Info: addon TargetsManager: [{meta}] = { Info: addon TargetsManager: ["GetBackgroundColor"] = function: 3542E0B0, --- {function} Info: addon TargetsManager: ["Enable"] = function: 3532E458, --- {function} Info: addon TargetsManager: ["GetRotation"] = function: 38F88F10, --- {function} Info: addon TargetsManager: ["PlayRotationEffect"] = function: 23945828, --- {function} Info: addon TargetsManager: ["SetFocus"] = function: 3BFCE458, --- {function} Info: addon TargetsManager: ["SetBackgroundTexture"] = function: 3509E420, --- {function} Info: addon TargetsManager: ["IsFocused"] = function: 410D6FB8, --- {function} Info: addon TargetsManager: ["GetNamedChildren"] = function: 0A9B5F80, --- {function} Info: addon TargetsManager: ["GetFade"] = function: 4051B408, --- {function} Info: addon TargetsManager: ["SetForegroundClearMaskEffect"] = function: 3F6A84B0, --- {function} Info: addon TargetsManager: ["SetForegroundColor"] = function: 38E79108, --- {function} Info: addon TargetsManager: ["SetPriority"] = function: 3E34F060, --- {function} Info: addon TargetsManager: ["GetParent"] = function: 41065680, --- {function} Info: addon TargetsManager: ["GetName"] = function: 45078B40, --- {function} Info: addon TargetsManager: ["SetTransparentInput"] = function: 3922EEC0, --- {function} Info: addon TargetsManager: ["Show"] = function: 44207760, --- {function} Info: addon TargetsManager: ["GetRealRect"] = function: 23E33C38, --- {function} Info: addon TargetsManager: ["AddChild"] = function: 3BFB36B8, --- {function} Info: addon TargetsManager: ["PlayMoveEffect"] = function: 4CFFE0C0, --- {function} Info: addon TargetsManager: ["__towatch"] = function: 2625B810, --- {function} Info: addon TargetsManager: ["GetChildChecked"] = function: 34F9DC20, --- {function} Info: addon TargetsManager: ["SetBackgroundColor"] = function: 25164D88, --- {function} Info: addon TargetsManager: ["GetForegroundColor"] = function: 4416E3B0, --- {function} Info: addon TargetsManager: ["GetPriority"] = function: 442C3920, --- {function} Info: addon TargetsManager: ["PlayResizeEffect"] = function: 3498ADA8, --- {function} Info: addon TargetsManager: ["_Show"] = function: 40F561A0, --- {function} Info: addon TargetsManager: ["GetPath"] = function: 23B79BD0, --- {function} Info: addon TargetsManager: ["SetBackgroundClearMaskEffect"] = function: 3E309238, --- {function} Info: addon TargetsManager: ["GetInstanceId"] = function: 35260548, --- {function} Info: addon TargetsManager: ["SetPlacementPlain"] = function: 23362C98, --- {function} Info: addon TargetsManager: ["DestroyWidget"] = function: 38522048, --- {function} Info: addon TargetsManager: ["IsEnabled"] = function: 353CC1C0, --- {function} Info: addon TargetsManager: ["FinishFadeEffect"] = function: 4125E590, --- {function} Info: addon TargetsManager: ["GetAddonType"] = function: 28DE6118, --- {function} Info: addon TargetsManager: ["SetForegroundBlendEffect"] = function: 352459D0, --- {function} Info: addon TargetsManager: ["SetBackgroundBlendEffect"] = function: 4B34F358, --- {function} Info: addon TargetsManager: ["SetForegroundTexture"] = function: 3B4A74D0, --- {function} Info: addon TargetsManager: ["GetTransparentInput"] = function: 3B541B40, --- {function} Info: addon TargetsManager: ["IsVisible"] = function: 43C9DAE0, --- {function} Info: addon TargetsManager: ["IsEqual"] = function: 411B9890, --- {function} Info: addon TargetsManager: ["SetName"] = function: 44E2EEB0, --- {function} Info: addon TargetsManager: ["GetChildUnchecked"] = function: 391D03D8, --- {function} Info: addon TargetsManager: ["FinishMoveEffect"] = function: 43C3BE50, --- {function} Info: addon TargetsManager: ["SetFade"] = function: 209601D0, --- {function} Info: addon TargetsManager: ["IsVisibleEx"] = function: 406047A8, --- {function} Info: addon TargetsManager: ["FinishRotationEffect"] = function: 355034F8, --- {function} Info: addon TargetsManager: ["FinishResizeEffect"] = function: 4118B710, --- {function} Info: addon TargetsManager: ["GetWidgetDesc"] = function: 34D687E0, --- {function} Info: addon TargetsManager: ["GetPlacementPlain"] = function: 3529D1F0, --- {function} Info: addon TargetsManager: ["IsValid"] = function: 34F42480, --- {function} Info: addon TargetsManager: ["Rotate"] = function: 38100750, --- {function} Info: addon TargetsManager: ["SetOnShowNotification"] = function: 451B9910, --- {function} Info: addon TargetsManager: ["PlayFadeEffect"] = function: 45325FF8, --- {function} Info: addon TargetsManager: } Info: addon TargetsManager: pars.wtOwner = userdata: 34E909D0 --- {userdata} Info: addon Example3: dscPanel destroyed Info: addon Example3: after destroyed Error: addon AddonsTools: Widgets::LuaGetInstanceId: Empty widget, details: int __cdecl Widgets::LuaGetInstanceId(struct lua_State *) почему у разрабов нет такой просто функции wt:IsDestoyed()
×
×
  • Создать...

Важная информация

Пользуясь сайтом, вы принимаете Условия использования