Jump to content
Korean Random
IzeBerg

Модлоадер в 9.10

Recommended Posts

Просто оставлю это тут. Теперь можно избавится от модлоадера CameraNode.

 

В 9.10 добавили модлоадер, Чтобы моды запустились досаточно поместить мод в папку scripts/client/gui/mods и название файла должно начинаться с mod_.

 

Если поставить в constants флаг IS_DEVELOPMENT на True, то будут грузится некомпилированные моды (*.py) с той-же маской имени.

 

Появилось некоторые методы, которые клиент вызывает у мода, например: init, fini, onAccountShowGUI... И в таком духе, найти их можно поиском в исходниках слова guiModsSendEvent или sendEvent. Чтобы они вызывались достаточно создать метод с соответствующим названием в моде.

Edited by IzeBerg
  • Upvote 7
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

CameraNode наше всё.. Тоже работает :gg:

 

Выше на начало тотального контроля смахивает... Хотя в некоторых моментах это и хорошо что вызовы есть, защита от запуска не из игры хоть будет хоть какая..

Edited by KACTET
  • Upvote 1
  • Downvote 6

Share this post


Link to post

Short link
Share on other sites

Спустя 5 лет это что мертвому припарки.


 

 

Выше на начало тотального контроля смахивает... Хотя в некоторых моментах это и хорошо что вызовы есть, защита от запуска не из игры хоть будет хоть какая..

 

Сам то понял что написал фигню? 

Share this post


Link to post

Short link
Share on other sites

вопрос, почему вылет клиента если я заменяю в модлоадере 

def _isValidMOD(scriptName):
    return scriptName.startswith('mod_') and scriptName.endswith(_MOD_NAME_POSTFIX)

на

def _isValidMOD(scriptName):
    return scriptName.startswith('') and scriptName.endswith(_MOD_NAME_POSTFIX)

а если ставить 

def _isValidMOD(scriptName):
    return scriptName.startswith(_MOD_NAME_POSTFIX) and scriptName.endswith('')

то ваще моды не видит

Share this post


Link to post

Short link
Share on other sites

ставь return True и не мучайся

ставил, тоже вылет

Share this post


Link to post

Short link
Share on other sites

 

 

А так?

def _isValidMOD(scriptName):
    return False if '__init__' in scriptName else True

скрипт грузит, а путь к конфигу найти не может

WARNING: [WARNING] (__init__, 51): There is problem while import gui mod ('gui.mods', 'Spam_message.json')
ERROR: [EXCEPTION] (__init__, 52):
Traceback (most recent call last):
  File "__init__", line 48, in _findValidMODs
  File "scripts/common/Lib/importlib/__init__.py", line 37, in import_module
ImportError: No module named Spam_message.json

Share this post


Link to post

Short link
Share on other sites

Ну тогда вот так.

def _isValidMOD(scriptName):
    return False if '__init__' in scriptName or not scriptName.endswith(_MOD_NAME_POSTFIX) else True
  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

 

Ну тогда вот так.

def _isValidMOD(scriptName):
    return False if '__init__' in scriptName or not scriptName.endswith(_MOD_NAME_POSTFIX) else True

спасибо, все гуд

Share this post


Link to post

Short link
Share on other sites

Спустя 5 лет это что мертвому припарки.

Ну мне из всего больше методы эти понравились. Не красиво это, делать "подмену" методов, а тут просто создал и клиент сам вызовет. Не хватает только handleKeyEvent/handleMouseEvent.

Share this post


Link to post

Short link
Share on other sites

 

Но ведь хуки не являются подменой...

 

Я не знаю точных определений, потому и в кавычках. Новичок же)

Но все-равно, не красиво.

Edited by IzeBerg

Share this post


Link to post

Short link
Share on other sites

Лучше бы они в добавок Framework замутили нормальный для использования прямо в модификации.

Share this post


Link to post

Short link
Share on other sites

Лучше бы они в добавок Framework замутили нормальный для использования прямо в модификации.

Документацию по своему творению, для начала.

Share this post


Link to post

Short link
Share on other sites

Документацию по своему творению, для начала.

 

Зачем? Нормальный FW вместо доков и все, а там чего хотят пусть делают.

Share this post


Link to post

Short link
Share on other sites

Запилили не для нас, но убирать не будут. Можно использовать.

 

Про тотальный контроль он похоже прав.

Нет, не прав.

 

вопрос, почему вылет клиента если я заменяю в модлоадере то ваще моды не видит

Используй дальше CameraNode зачем менять то что не должно менятся?

 

А по сути, в название добавить "mod_" и внутри чтото такое: клик это не слишком большие ограничения.

Главное теперь ненадо таскать CameraNode и __init__

Edited by POLIROID

Share this post


Link to post

Short link
Share on other sites

Документацию по своему творению, для начала.

 

Чего распаковку карабликов по папкам не сделал? Сижу допиливаю.

Share this post


Link to post

Short link
Share on other sites

Спустя 5 лет это что мертвому припарки.

 

Сам то понял что написал фигню?

Да я всегда же как не программист фигню пишу в понимании программиста :heh:

 

Скажи пожалуйста ты проверял? Этот лоадер нормально работает с обфусцированным и наложенным протектором от Ориона на мод?

ERROR: ImportError: No module named xfw_loader

Ещё буду разбираться..

Edited by KACTET

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...