Ru-MaNGOS

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

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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.05.2011, 12:30   #1
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию PKT v3.0 View

Проект на гитхабе:
https://github.com/Johnson7/pkt30view

Скриншот:


Возможности программы:

- Открывает .pkt файл формата 3.0, описание формата тут
- По умолчанию отображает пакеты в шестнадцатеричном представлении.
- Можно задавать имена для пакетов и имя функции на языке lua для парсинга пакета
- позволяет задавать имена опкодов и парсеры специфичные для конкретного билда wow.
Для этого необходимо создать в папке где находится екзешник - папку с номером билда wow от которого сделан сниф
Внутри папки создать 2 файла: opcodes.txt и parsers.lua

формат файла opcodes.txt :
Код:
опкод1, название_опкода1, имя_луа_функции1
опкод2, название_опкода2, имя_луа_функции2
в файле parsers.lua содержатся функции парсинга
Код:
function имя_луа_функции1()
end

function имя_луа_функции2()
end
при выделении строки в списке программы вызывается функция из загруженного lua файла соответсвующая опкоду, которая задается в файле opcodes.txt, если функция не задана, то соответственно ничего не вызывается.

В скрипте lua помимо стандартных доступны 2 библиотеки: packet и output

для packet доступны следующие функции:
Код:
length()		- возвращает длину данных пакета
decompress()		- распаковать compressed пакет

read8()			- читает BYTE
read16()		- читает WORD
read32()		- читает DWORD
readfloat()		- читает float
readguid()		- читает GUID (8 байт)
readpackedguid()	- читает упакованый GUID
readstring([len])	- читает строку длиной len, если вызывать без параметра,
			читает строку до завершающего 0 или конца пакета
для output :
Код:
print(string)
println(string)

Приглашаются все желающие для совместной разработки


В аттаче последня сборка
Миниатюры
Нажмите на изображение для увеличения
Название: screen.jpg
Просмотров: 2323
Размер:	113.0 Кб
ID:	991  
Вложения
Тип файла: zip pkt30view_.zip (318.4 Кб, 1056 просмотров)

Последний раз редактировалось Йоха; 21.05.2011 в 09:16.
Йоха вне форума   Ответить с цитированием
9 пользователя(ей) сказали cпасибо:
ANTOMA (30.05.2011), Den (06.05.2011), KiriX (17.05.2011), Konctantin (10.05.2011), Mayss (15.05.2011), Ranger (17.05.2011), SilverIce (13.05.2011), srv38 (10.05.2011), sven (16.05.2011)
Старый 06.05.2011, 13:43   #2
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

нууууууу....через vine запустилось, тестовый файлик открыл.
но на lich.pkt, sindragosa.pkt - висяк, при повторном открытии крэш
брал сниф тут http://ru-mangos.ru/showpost.php?p=21601&postcount=6
http://ru-mangos.ru/showpost.php?p=21605&postcount=9
  Ответить с цитированием
Старый 06.05.2011, 13:57   #3
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

lich.pkt имеет неизвестный формат, я его не смог открыть и другим вьювером

У него в хидере версия пкт не так записана, не 00 30, а 30 00.

Мой вьювер не открывает файлы с неправильным заголовком, но при это ничего не зависает.
Поменял в хекс-редакторе версию - все отлично открывается

Насчет повторного открытия, да возможен краш, ресурсы не освобождаются перед открытием.

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

Последний раз редактировалось Йоха; 06.05.2011 в 14:04.
Йоха вне форума   Ответить с цитированием
Старый 06.05.2011, 14:06   #4
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

багрепорты в любой версии нужны
  Ответить с цитированием
Старый 06.05.2011, 15:52   #5
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Кстати, если есть баги которые поправить не имеется возможности, то лучше их написать в первой топике, дабы все видели.
Lordronn вне форума   Ответить с цитированием
Старый 06.05.2011, 16:17   #6
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

да погодите вы с багами, сперва надо привести проект в порядок, а потом уже заниматься исправлением
Йоха вне форума   Ответить с цитированием
Старый 06.05.2011, 18:44   #7
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

еще вопрос....
2011_4_20-17_20.pkt
пакет №90
optionalDataLength = 536870912, то есть 29 бит = 1, вно это же блин 512 Mb O.o явно ошибка сниффера или я что то путаю?
  Ответить с цитированием
Старый 06.05.2011, 20:31   #8
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от Minimajack Посмотреть сообщение
еще вопрос....
2011_4_20-17_20.pkt
пакет №90
optionalDataLength = 536870912, то есть 29 бит = 1, вно это же блин 512 Mb O.o явно ошибка сниффера или я что то путаю?
эм, это как получено optionalDataLength = 536870912 ?

в pkt файлах длина пакета и длина доп. данных хранится в типе данных int (32 бита) при чем там биты ? это же не разбор пакетов от сервера.

Этого не может быть в принципе, дело в том что я для доступа к данным файла использую файлмапинг, и смещение до следующего пакета считается как
Код:
ptr += (sizeof(PKT_CHUNK) + pChunk->dataLength + pChunk->optionalDataLength);
Если бы в поле optionalDataLength было такое число, то смещение уехало бы фиг знает куда и вызвало бы ошибку доступа к памяти

Последний раз редактировалось Йоха; 06.05.2011 в 21:12.
Йоха вне форума   Ответить с цитированием
Старый 06.05.2011, 20:54   #9
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

2^29 = 536,870,912
доп. данных хранится в типе данных uint или разницы, число со знаком или без, нет? О.о

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

Ищи глюки у себя в вайне или еще хз в чем
Все там в норме, добавил еще одну колонку:
Код:
m_lv.InsertColumn(6, _T("OtionalDataLength"), LVCFMT_LEFT, 100);
и в обработчике уведомления LVN_GETDISPINFO:
Код:
case 6:
sprintf_s(column, "%d", chunk->optionalDataLength);
Миниатюры
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 840
Размер:	175.4 Кб
ID:	916  

Последний раз редактировалось Йоха; 10.05.2011 в 13:05.
Йоха вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
ANTOMA (30.05.2011), Konctantin (10.05.2011)
Старый 06.05.2011, 22:11   #11
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Может лучше заменить 2 последние колонки на одну? Просто в поле Length писать размер data (без опкода).
Lordronn вне форума   Ответить с цитированием
Старый 06.05.2011, 22:33   #12
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от Lordronn Посмотреть сообщение
Может лучше заменить 2 последние колонки на одну? Просто в поле Length писать размер data (без опкода).
OptionalData никакого отношения к данным пакета не имеет, в снифе Length равен длине данных + 4, независимо от направления, потому что по формату, длина опкода выравнена до 4 байт. Какой смысл к реальной длине данных из пакета прибавлять бог весть что ?

Добавлено через 13 минут
Цитата:
Сообщение от Minimajack Посмотреть сообщение
2^29 = 536,870,912
доп. данных хранится в типе данных uint или разницы, число со знаком или без, нет? О.о
пакет 89, судя по размеру, был "large", а следующий за ним 90. Возможно ты как-то криво обрабатываешь сниф, я не знаю что даже предположить. Расскажи как у тебя получилось такое число ?

Последний раз редактировалось Йоха; 06.05.2011 в 23:20.
Йоха вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Старый 06.05.2011, 23:01   #13
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Цитата:
OptionalData никакого отношения к данным пакета не имеет, в снифе Length равен длине данных + 4, независимо от направления, потому что по формату, длина опкода выравняна до 4 байт. Какой смысл к реальной длине данных из пакета прибавлять бог весть что ?
Я думал что в поле "длина" идет длина даты + 4 байта на опкод.

Тогда какой смысл в последней колонке?
Lordronn вне форума   Ответить с цитированием
Старый 06.05.2011, 23:04   #14
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от Lordronn Посмотреть сообщение
Я думал что в поле "длина" идет длина даты + 4 байта на опкод.
так и есть

Цитата:
Сообщение от Lordronn Посмотреть сообщение
Тогда какой смысл в последней колонке?
просто для проверки, почитай что пишет Minimajack

в OptionalData у меня пишется ип адрес:порт, в этом снифе типа:
195.12.246.210:3724
что равняется ровно 19 байтам (завершающий 0 для строки не пишется)
В чем не трудно убедиться посчитав количество символов вручную.

Последний раз редактировалось Йоха; 06.05.2011 в 23:14.
Йоха вне форума   Ответить с цитированием
Старый 07.05.2011, 01:06   #15
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

Йоха звыняй...таки я накосячил

зы вот такие имба пакетики
  Ответить с цитированием
Старый 10.05.2011, 12:58   #16
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Сделал нормальный проект для VS10, пересобрал библиотеку lua в виде статической библиотеки так же в VS10.
Обновил шапку, выложил исходник проекта, луа инклуды и либы, а так же wtl, если вдруг кто не знаю где ее взять.
Это все что нужно для сборки. В итоге получается самостоятельный экзешник без всяких добавочных длл.
Йоха вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
ANTOMA (30.05.2011), Konctantin (10.05.2011)
Старый 10.05.2011, 13:01   #17
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

давай на гитхаб...
__________________
Konctantin вне форума   Ответить с цитированием
Старый 10.05.2011, 13:03   #18
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Есть где-нибудь в двух словах описалово как создать новый проект на гитхабе ?

Меня сегодня лень одолела...
Йоха вне форума   Ответить с цитированием
Старый 10.05.2011, 13:08   #19
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

Зайди в аську...

посмотри инструкцию тут: http://ru-mangos.ru/showthread.php?t=891
__________________

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

аккаунт вроде создался, ключи тоже. Теперь надо создать репозитарий, но в этом мануале описана работа под линуксом... в котором я понимаю чуть меньше чем ничего.
Йоха вне форума   Ответить с цитированием
Старый 10.05.2011, 13:34   #21
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

да без разницы, просто пути по другому указываются... тебе их можно не писать, а просто ПКМ -> Git Bash Here и все, а в остальном так же
__________________
Konctantin вне форума   Ответить с цитированием
Старый 10.05.2011, 15:12   #22
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

ключи кое-как победил. создался пустой репозитарий, как туда добавить файлы то ?

у меня есть локальная папка pkt30view, как ее содержимое добавить на github ?

Добавлено через 1 час 22 минуты
блин, я наверно совсем тупой, но уже скоро конец дня, а я так и не догнал как добавить проект на сервер.
Туда добавился только readme, как остальное засунуть я хз

Последний раз редактировалось Йоха; 10.05.2011 в 14:39.
Йоха вне форума   Ответить с цитированием
Старый 10.05.2011, 15:31   #23
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

Код:
git init
git remote add origin ssh://username@example.com/var/git/example.git
touch changelog
git add changelog
git commit -a -m "Initital commit"
git push origin master
__________________
Konctantin вне форума   Ответить с цитированием
Старый 10.05.2011, 15:37   #24
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

в результате на сервере оказывается только 1 файл - changelog

я уже двадцать раз и так и сяк пробовал

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

Последний раз редактировалось Йоха; 10.05.2011 в 15:41.
Йоха вне форума   Ответить с цитированием
Старый 10.05.2011, 15:40   #25
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию

Цитата:
Сообщение от Йоха Посмотреть сообщение
в результате на сервере оказывается только 1 файл - changelog

я уже двадцать раз и так и сяк пробовал
Код:
git add .
TOM_RUS вне форума   Ответить с цитированием
Старый 10.05.2011, 15:49   #26
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Всем спасибо за помощь, подскажите на последок еще одну вещь, вот я что-то дописываю, как мне все изменения закинуть на сервер ?
Йоха вне форума   Ответить с цитированием
Старый 10.05.2011, 15:52   #27
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию

Цитата:
Сообщение от Йоха Посмотреть сообщение
Всем спасибо за помощь, подскажите на последок еще одну вещь, вот я что-то дописываю, как мне все изменения закинуть на сервер ?
Код:
git add .
git commit -m "bla bla bla"
git push origin master

Последний раз редактировалось TOM_RUS; 10.05.2011 в 15:54.
TOM_RUS вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Йоха (10.05.2011)
Старый 10.05.2011, 16:51   #28
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

Или использовать Git GUI, там все визуально понятно...
__________________
Konctantin вне форума   Ответить с цитированием
Старый 10.05.2011, 16:57   #29
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Обновил шапку.
Добавил меню "Закрыть файл", исправлен краш при открытии файла если уже до этого был открыт другой файл.
Йоха вне форума   Ответить с цитированием
Старый 10.05.2011, 17:34   #30
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

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

На мой взгляд более целесообразно хранить все функции в одном файле:
Какие мне видятся плюсы такого подхода:
- загружается модуль целиком при открытии снифа, можно инициализировать каки-нибудь переменные, выполнить некоторые стартовые процедуры общие для всего модуля. Собственно модуль луа живет пока открыт файл.
- загружается файл один раз, компилируется в памяти - меньше накладных расходов на дисковое ио, и на компиляцию скриптов.

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

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

Кстати есть еще неплохая библиотека для объединения lua с C++
luabind
alien вне форума   Ответить с цитированием
Старый 10.05.2011, 19:45   #33
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

я видел эту библиотеку в том числе, просто дело в том что штатные средства lua для встраивания настолько тривиальны что я думаю переписать вызовы без всяких сторонних библиотек/классов. Просто класс luawrapper я увидел одним из первых ну и что первое попалось под руку то и использовал
Йоха вне форума   Ответить с цитированием
Старый 10.05.2011, 20:24   #34
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

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

ну да, я просто не знал как это правильно называется в луа
Йоха вне форума   Ответить с цитированием
Старый 10.05.2011, 21:16   #36
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   #37
Йоха
Умный
 
Регистрация: 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   #38
Fedia22
Ученый
 
Аватар для Fedia22
 
Регистрация: 03.03.2010
Адрес: Сибирь, 58°14′00″ с. ш. 92°29′00″ в. д.
Сообщений: 288
Сказал(а) спасибо: 79
Поблагодарили 37 раз(а) в 14 сообщениях
Записей в дневнике: 18
Fedia22 На верном пути
По умолчанию

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

нет, это не делфи 100%
Йоха вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
KiriX (11.05.2011)
Старый 11.05.2011, 10:43   #40
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

Нет как нестранно это C++ с использованием luabind.
Ну или если уж совсем точно то c++, Qt, boost, luabind )
Правда от Qt в данном коде нечего нету )
alien вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
KiriX (11.05.2011)
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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


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


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


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