Ru-MaNGOS

Вернуться   Ru-MaNGOS > Дополнения > Tools

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

Tools Обсуждение программ для MaNGOS

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.05.2011, 21:16   #1
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

Нет я не про это. У луа есть и методы в полноценном понимании и функции таблицы.
То есть вызов packet.read8() это вызов функции из таблицы, а packet:read8() вызов метода.

У меня например было так.
Код:
PacketParser::PacketParser(const Packet* aPkt)
{
    pkt=aPkt;
    L = lua_open();
    luaL_openlibs(L);
    luabind::open(L);
    module(L)
    [
        class_<PacketParser>("CPacket")
        .def("Opcode", &PacketParser::GetOpcode)
        .def("OpcodeName", &PacketParser::GetOpcodeName)
        .def("ReadInt32", &PacketParser::ReadInt32)
        .def("ReadUInt32", &PacketParser::ReadInt32)
        .def("ReadInt64", &PacketParser::ReadInt64)
        .def("ReadUInt64", &PacketParser::ReadInt64)
        .def("ReadString", &PacketParser::ReadString)
        .def("ReadByte", &PacketParser::ReadByte)
        .def("ReadBytes", &PacketParser::ReadBytes)
        .def("DeCompress", &PacketParser::DeCompress)
        .def("HexPrint", &PacketParser::HexPrint)

    ];
    globals(L)["Packet"] = this;
А в луа использовал вот так соответственно.
Код:
local addon_count=Packet:ReadInt32();

Последний раз редактировалось alien; 10.05.2011 в 21:20.
alien вне форума   Ответить с цитированием
Старый 11.05.2011, 08:27   #2
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от alien Посмотреть сообщение
Код:
PacketParser::PacketParser(const Packet* aPkt)
{
    pkt=aPkt;
    L = lua_open();
    luaL_openlibs(L);
    luabind::open(L);
    module(L)
    [
        class_<PacketParser>("CPacket")
        .def("Opcode", &PacketParser::GetOpcode)
        .def("OpcodeName", &PacketParser::GetOpcodeName)
        .def("ReadInt32", &PacketParser::ReadInt32)
        .def("ReadUInt32", &PacketParser::ReadInt32)
        .def("ReadInt64", &PacketParser::ReadInt64)
        .def("ReadUInt64", &PacketParser::ReadInt64)
        .def("ReadString", &PacketParser::ReadString)
        .def("ReadByte", &PacketParser::ReadByte)
        .def("ReadBytes", &PacketParser::ReadBytes)
        .def("DeCompress", &PacketParser::DeCompress)
        .def("HexPrint", &PacketParser::HexPrint)

    ];
    globals(L)["Packet"] = this;
странный синтаксис, это С# ?
Йоха вне форума   Ответить с цитированием
Старый 11.05.2011, 08:43   #3
Fedia22
Ученый
 
Аватар для Fedia22
 
Регистрация: 03.03.2010
Адрес: Сибирь, 58°14′00″ с. ш. 92°29′00″ в. д.
Сообщений: 288
Сказал(а) спасибо: 79
Поблагодарили 37 раз(а) в 14 сообщениях
Записей в дневнике: 18
Fedia22 На верном пути
По умолчанию

Fedia22 вне форума   Ответить с цитированием
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DBC Viewer TOM_RUS Tools 10 05.08.2011 11:11
C#, DBC Viewer и компания LordJZ Флудильня 13 02.11.2010 11:44


Текущее время: 00:22. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot