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

Дайджесты за январь-февраль

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

Январь Февраль

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

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

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

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

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

Подробнее

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

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

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

AddonReloader для аддон-мейкеров


ramirez

Рекомендуемые сообщения

Привет.

У меня тут есть аддон, который умеет включать/выключать и перегружать любые аддоны из общего списка нажатием одной кнопки. Он сильно девелоперский, перегружен неочевидными функциями, весь в латинице, и простым игрокам он больше навредит, чем поможет, поэтому будет он аттачем. Велкам тестить.

Инструкция по эксплуатации:

- Распаковать в data/Mods/Addons.

- После входа в игру в правом нижнем углу экрана появится маленькая пчело-кнопка. Это нормальное состояние аддона.

- Правый клик по пчело-кнопке открывает/закрывает список аддонов, доступных для манипуляций. Стандартные нивальские там тоже есть. Весь список посортирован по алфавиту, хотя это несильно помогает. Свои аддоны можно найти по префиксу UserAddon/ в названии, они там ближе к концу списка.

- В списке: левый клик по названию аддона селектит/деселектит этот аддон. Поселектить можно сразу несколько аддонов. Поселекченность аддонов в списке сохраняется в рамках текущей сессии игры.

- клик по квадратику слева от названия аддона включает/выключает этот аддон. Состояние аддонов сохраняется между сессиями, то есть выключенный однажды аддон при следующем входе в игру останется выключенным.

- Левый клик по пчело-кнопке перезагружает все поселекченные аддоны сразу, неважно открыт список или нет.

- В списке: правый клик по названию аддона тут же на месте однократно перегружает аддон без всякого селекшена.

- Аддон пишет в mods.txt строчку про включение/выключение и перезагрузку.

- Очень сильно пытался прикрутить хот-кеи, но разрабы перекрыли там весь кислород, так что не вышло, и похоже оно вообще не возможно.

Alert:

- Далеко не все стандартные аддоны можно безнаказанно перезагружать, некоторые после перезагрузки тупо перестают работать, поэтому аккуратнее.

- Не рекомендуется использовать этот менеджер аддонов с каким-либо еще одновременно, так как аддоны не умеют оповещать друг друга о своем состоянии, и потому менеджеры могут разойтись во мнениях, какой аддон включен, а какой - нет.

- Данный аддон восстанавливает сохраненное состояние, реагируя на EVENT_AVATAR_CREATED, поэтому возможно некоторые аддоны, которые на инициализации спят, и включаются только этим менеджером, могут проспать этот эвент.

Вроде все. Пользуйтесь на здоровье.

Ссылка на комментарий
Поделиться на другие сайты

Посмотрим.

Вообще, уже есть вещь получше - Менеджер аддонов.

P.S. А почему бы не "будить" включаемые аддоны командой userMods.SendEvent("EVENT_AVATAR_CREATED") ?

Ссылка на комментарий
Поделиться на другие сайты

Да, я видел, но там вроде что-то глючило последний раз... Этим я сам пользуюсь, тут одним кликом все перегружается, для разработки самое оно.

P.S. Так ведь неизвестно, поймает аддон после включения этот эвент или нет. Лучше делать аддоны "перезагрузкоустойчивыми", тогда не придется нигде хачить.

Ссылка на комментарий
Поделиться на другие сайты

Шикарно!

Пчелка маст-хэв! =) Однозначно.

Такой вопрос: а зачем крестик и уголок? Обе кнопки, вроде, делают одно и тоже, не?

И еще какой-то незнакомый описатель TextureAtlas. Интересно =)

p.s.Заметил, если перегрузить, например, Chat, при выходе в меню он больше не будет прятаться. Т.е., подписывается на скрытие он при EVENT_AVATAR_CREATED? о_0 Может, действительно выполнять userMods.SendEvent("EVENT_AVATAR_CREATED") для перезагружаемого аддона при условии isLoaded?

Ссылка на комментарий
Поделиться на другие сайты

Крестик и уголок - просто баловался с артом. Правый клик в пчело-кнопку тоже, в общем, закрывает. Там вообще много перегрузки.

Текстурки переэкспортил и выложил новую версию. Теперь файлов меньше.

Quote:
p.s.Заметил, если перегрузить, например, Chat,...

Да, видимо, разрабам критично что-то где-то прописывать именно на старте. Ну, сами себе буратины, что можно сказать. =) Не надо там ничего слать, это читерство, да и не сработает для чата все равно.

Ссылка на комментарий
Поделиться на другие сайты

Quote:
Лучше делать аддоны "перезагрузкоустойчивыми", тогда не придется нигде хачить.

Обычно, это просто невозможно. Потому, что в функции Init() нельзя пользоваться библиотекой avatar, и другими библиотеками, от неё зависящими (group, и др.).
Поэтому, во всех более-менее серъёзных аддонах, код загрузки разбит на 2 функции - первая это Init(), и вторая (я зову её PostInit(), обычно) вызывается по событию EVENT_AVATAR_CREATED. И вот она уже работает с аватаром, и другими библиотеками.

Если не разбивать загрузку на 2 такие функции, а попытаться воспользоваться библиотекой avatar прямо в Init(), то в логе ошибок появится ошибка "Avatar not found", и выполнение функции прервётся.

UPD: Блин, я туплю!!! Сейчас наткнулся в DarkDPSMeter на функцию avatar.IsExist(). Попробовал её. Она в Init() ошибки НЕ вызывает.
Значит, в Init() нельзя пользоваться НЕ библиотекой avatar, а только теми функциями, для работы которых нужен ID аватара, например, функция avatar.GetId().

Так что, "перезагрузкоустойчивый" аддон делается так: Например, если в аддоне есть Init() и PostInit(), вызываемый по EVENT_AVATAR_CREATED, тогда, делаем такой фикс - в самом конце Init() дописываем:

Code:
if avatar.IsExist() then
PostInit()
end

Ну, или, если используется "промышленный" способ подписки на события, как в DarkDPSMeter, то этот же код будет примерно таким (только что дописал это в DarkDPSMeter):

Code:
if avatar.IsExist() then
onEvent ["EVENT_AVATAR_CREATED"] ()
end

Всё это работает как надо, только что протестировал :)
Ссылка на комментарий
Поделиться на другие сайты

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...

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

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