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

borivit

Граждане
  • Постов

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

  • Посещение

Информация о borivit

Дополнительные поля

  • Профиль Гильдии
    ни где не состою
  • Владение инструментами плагиностроения
    tes3_constrctor - средний уровень(сделал 2 плагина) и lua - недавно начал изучать
  • Конфигурация компьютера
    Dell Latitude E7470

Достижения borivit

Мимопроходимец

Мимопроходимец (1/14)

  1. Здравствуйте, у меня возникает странная ошибка при перемещении вещей из инвентаря игрока в контейнер. Вот код: local mumia_1 = tes3.getObject("A_RZZ_mumia_1") local equip = {} -- создаём новую пустую таблицу for i, node in pairs(tes3.player.object.equipment) do -- запоминаем id и ссылки на надетые на ГГ вещи equip[node.object.id] = node end for i, stack in pairs(tes3.player.object.inventory) do if (stack.object) then local obj_id = stack.object.id if (equip[obj_id] or string.find(obj_id,'Gold_')) then goto continue end tes3.transferItem{from=tes3.player, to=mumia_1.id, item=obj_id, count=stack.count, playSound=true} end ::continue:: end Вот ошибка: Может кто знает в чем может быть дело. В оригинальной игре таких ошибок не возникает. Я вообще не понимаю при чем здесь mesh штанов т.к эти штаны не перемещаются, но они экипированы на игроке. P.S.: Когда меняю файл меша, то ошибка исчезает...очень странно P.S.2: Жаль что тема умерла...кстати с addItem вообще выкидывает из игры и даже не ясно почему.
  2. Отвечаю сам себе, может кому пригодится:) Сделал вот такую функцию на базе той что написал mintmike: Теперь можно делать списки из кнопок:)
  3. Здравствуйте, я снова с вопросом:) У меня не создаются кнопки в скрол панели. Это на базе вашей функции создающей окна. Просто в конце ваше функции добавил этот код. А это я запускаю окно: Это функция которая должна вывести окно со скрол панелькой, но выводится только окно, в нем есть createThinBorder, createVerticalScrollPane - это тоже вроде есть в виде линии т.е. пустой список и соответственно кнопок нет. Я пробовал createTextSelect вместо createButton, но результат тот же. Может у меня есть ошибка. В логах ошибок нет.
  4. Значит, я не зря сегодня скачал последнюю версию MFR:) завтра буду пробовать P.S.: в последней версии все работает:)
  5. В доках оч. скупое описание того как сделать такой фильтр, попробую вашу идею:) Сегодня пытался запустить мой плагин на сборке MFR3.2, но так и не смог заставить его сохранять данные и чтобы он не выдавал эту ошибку: Error in event callback: Data Files\MWSE\mods\rzz_cwa\main.lua:69: attempt to call field 'hasSpell' (a nil value) local function addRZZSpell() --добавление заклинания RZZ local hasSpell = tes3.hasSpell({ reference = tes3.player, spell = "A_RZZ_Enter" }) --ругается на эту строку if (not hasSpell) then tes3.addSpell({ reference = tes3.player, spell = "A_RZZ_Enter" }) end end И что самое итересное - на стандартной игре все работает великолепно. Я ничего не понимаю, может у вас возникнут идеи почему так выходит... P.S.: Я так понял что данные не сохраняет из-за этой ошибки, но в чем там ошибка...
  6. Доброе утро. Глюки я вылечил:) Но появился вопрос как правильно использовать функцию tes3ui.showInventorySelectMenu Идея такая, нужно показать в контейнере только те ингредиенты которые имеют определенный магический эффект, но у меня ничего не заработало. Если можно, сделайте пример. И еще, можно ли добавить закладки в инвентарь контейнера? И если да, то будут ли они прокручиваться, если их много? И как их добавить?
  7. Благодарю:) Я пытаюсь поставить пометку и после телепортировать главного героя, но пометка телепортируется вместе с ним. Как это можно исправить?
  8. Рассказываю что у меня получилось:) 1. Заменить меню контейнера на свое при его активации local function eActivate(e) if (e.target.object.id == "A_RZZ_chest_tomb") then if (not RZZ_activate) then timer.delayOneFrame(function() if tes3ui.menuMode then tes3ui.leaveMenuMode() end --закрываем контейнер myMenuShow() --Открываем меню end) return false end RZZ_activate = nil --метка активации контейнера end end event.register("activate", eActivate) 2. Открыть контейнер при нажатии кнопки своего меню local function abrirRZZ() local tomb = tes3.getReference("A_RZZ_chest_tomb") cerrarMenu() --закрываем свое меню timer.delayOneFrame(function() RZZ_activate = true --метка активации контейнера tes3.player:activate(tomb) --открываем контейнер end) end 3. Убрать helpMenu т.е. окошко всплывающее при наведении прицела на предмет local function onUIObjectTooltip(e) if string.find(e.reference.id,'muestra') then --выборка нужных предметов e.tooltip.absolutePosAlignX = 4 e.tooltip.absolutePosAlignY = 4 else e.tooltip.absolutePosAlignX = nil e.tooltip.absolutePosAlignY = nil end end event.register("uiObjectTooltip", onUIObjectTooltip) Теперь оталось выяснить как отследить запуск заклинания, как запустить проклятие, как остановить выполнение заклинания, как телепортироваться в нужное место и тогда я свой плагин полностью переведу на lua:)
  9. Это не совсем то что я имел ввиду. Видимо я не правильно изложил вопрос. Мне нужно при активации контейнера получить вместо окна с содержимым контейнера, мое окно с кнопками. Я здесь нашел такую функцию: local tomb = tes3.getReference("A_RZZ_chest_tomb") --контейнер tes3.player:activate(tomb) --открывает содержиме контейнера это работает как activate в tes3 конструкторе, но у меня не получается запретить показ или закрыть меню с содержимым при стандартной активации т.е. как отследить меню контейнера при его активации и сразу же его закрыть? или может можно его запретить по событию? Кстати -> myObject:clearActionFlag(flagIndex) - это не помогло. И я никак не могу понять как правильно заполнять поле buttons и callbackParams tes3ui.showMessageMenu({ id = ..., buttons = ..., callbackParams = ..., cancels = ..., cancelText = ..., cancelCallback = ..., header = ..., message = ..., customBlock = ..., page = ..., pageSize = ... }) Благодарю, еще не попробовал, но обязательно испытаю:) Как работает menu:destroy? Я почему-то не могу найти описания. Я заметил что когда запущено мое меню и меню контейнера, то если я закрываю свое меню, закрывается и меню контейнера. P.S.: я нашел описание myObject:destroy(), но мне это не очень помогло, я так понимаю что вместо myObject нужна переменная с объектом окна, но как найти id окна контейнера, а потом получить его объект я пока незнаю или может я не в ту сторону копаю.
  10. Завтра буду дома, попробую. Но у меня такая же история и с weaponType хотя здесь проще т.к. почти все id имеют указание на тип оружия и можно просто искать нужное через id. P.S.: А можно ли как-то вытянуть все значения и ключи относящиеся к объекту? Чтобы можно было увидеть какие есть у объекта свойства и соответственно тогда будет понятно как их узнать. P.S.S.: Только что до читался что через for можно посмотреть все ключи и значения. Завтра попробую. О результатах напишу.
  11. Здравствуйте, если еще есть кто живой в этой теме, то может быть он мне поможет разобраться. Я перебираю объекты в инвентаре, выбираю там броню и пытаюсь узнать класс брони(легкая, средняя, тяжелая), но у меня в результате выдает nil. Может кто может мне объяснить что я делаю не так. for i, stack in pairs(tes3.player.object.inventory) do if (stack.object) then if (stack.object.objectType == tes3.objectType.armor) then tes3.messageBox{ message = "armorClass=" .. tostring(stack.object.armorWeightClass)} end end end
×
×
  • Создать...