RU/xmlNodeGetChildren

From Multi Theft Auto: Wiki

Возвращает все аттрибуты выбранного XML узла.

Синтаксис

Эта функция возвращает всех потомков XML узла.

Синтаксис

table/xmlnode xmlNodeGetChildren ( xmlnode parent, [ int index ] )

Синтаксис ООП Помогите! Я не понимаю, что это!

Метод: xmlnode:getChildren(...)
Переменная: .children

Обязательные параметры

  • parent: XML узел из которого получаем потомков.

Не обязательные параметры

  • index: Если вы хотите получить одного потомка, введите его индекс(порядковый номер, счет от 0). Т.е. что-бы получить первого потомка, пишите 0, что-бы получить третьего потомка пишите 2, и т.д.

Возвращает

Если index не указан, возвращает таблицу со всеми потомками. Если index указан, возвращает соответствующего по счету потомка. Если узлов не найдено, возвращает пустую таблицу. В случае неправильного регистра, возвращает false.

Пример

Click to collapse [-]
Server

Предположим вы создали .xml файл со случайными приветственными сообщениями:

<messages>
    <message>Добро пожаловать на ДМ сервер, наслаждайтесь пребыванием здесь.</message>
    <message>Добро пожаловать. Будьте уверены вы получите бесплатную пиццу от Мэтта!</message>
    <message>Вечеринка на пляже ЛС, будьте там</message>
</messages>

Для того что-бы показать случайное сообщение из списка, входящим пользователям, используйте код:

addEventHandler("onResourceStart", getResourceRootElement(),
    function()
        local xml = xmlLoadFile("welcome.xml")             -- открываем XML файл
        local messageNodes = xmlNodeGetChildren(xml)       -- получаем всех потомков корневого узла(<messages>)
        g_WelcomeMessages = {}                             -- создаем новую глобальную переменную, для хранения сообщений в ней
        for i,node in ipairs(messageNodes) do              -- пробегаем все узлы сообщений
            g_WelcomeMessages[i] = xmlNodeGetValue(node)   -- получаем текст из узла
        end
        xmlUnloadFile(xml)                                 -- закрываем XML файл
    end
)

addEventHandler("onPlayerJoin", getRootElement(),
    function()
        local numMessages = #g_WelcomeMessages                        -- получаем количество сообщений
        local message = g_WelcomeMessages[math.random(numMessages)]   -- выбираем случайное сообщение
        outputChatBox(message, source, 0, 255, 0)                     -- выводит сообщение зашедшему игроки
    end
)

Смотрите также