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

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

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

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

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

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

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

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

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

Подробнее

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

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

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

Немного о UserMods


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

Разрабы предоставили нам UserMods.* с несколькими функциями. Разберемся, как это работает.

Вот пример:

local userMuds = {}
local debugCowmon = {}

function debugCowmon.ToWs(astr)
return "WSTR_"..astr
end

function userMuds.TestFunc()
return "test"
end

local meta = {}
function meta.__index(op, key)
if key == "ToWString" then
return debugCowmon.ToWs
end
return nil
end
setmetatable(userMuds, meta)

Вызов:

LogInfo(userMuds.TestFunc()) --вызов в обход __index
LogInfo(userMuds.ToWString("testAstring")) --вызов с __index
LogInfo(userMuds.OpenURL("http:\\ya.ru")) --ошибка скрипта (обращние к нулю)

Что тут происходит? Для начала мы создаем 2 новые переменные, представим, что это категории UserMods (нам доступен) и debugCommon (нам недоступен). Как же разарбы дают нам доступ к "своим" функциям?

Если для common.* определены все ключи функций, то для UserMods определена только __index. Далее, если бы ключ при вызове функции был найден (в данном примере это UserMods.TestFunc()), она вызвалась бы в обход __index, но в нашем случае вызывается __index (которая должна возвратить адес функции по ключу), и в ней происходит переопределение userMods.ToWString --> debugCommon.ToWs().

Сори, если не ясно. Писал на сонную голову, завтра поправлю.

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

ничего не поняла.. ты скажи можно вызвать функции к которым доступ закрыт? )))

народ писал что есть много функций которые в АПИ неописаны вообще

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

  • 5 месяцев спустя...
Гость
Ответить в этой теме...

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

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

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

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

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

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

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

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