Ru-MaNGOS

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

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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.08.2011, 12:41   #1
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

Ну вот...реалм-сервер дошел до стадии когда необходимы ключи сессий клиентов.
т.к. ключи будут передаваться( планируется ) по дополнительному каналу между логин и реалм серверами встает вопрос о защите этого канала. Кто что использует? Городить свои грабли или воспользоваться уже существующими ( в сис-ме вов ) алгоритмами? Мне конечно быстрее SARC4 втулить и кодировать содержимое пакета целиком.
  Ответить с цитированием
Старый 08.08.2011, 13:12   #2
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

у меня используется тот же метод, что у близзов между клиентом и сервером.
реалм выступает как обычный клиент и так же авторизовывается на логон сервере как обычный клиент обычным аккаунтом (у этих аккаунтов в базе флаг выставлен только isRealmAccount). так же формируется сессионый ключ. единственная разница что я шифрую весь пакет целиком, а не только заголовок.
RomanRom2 вне форума   Ответить с цитированием
Старый 08.08.2011, 14:34   #3
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

на логин сервере ( для обычных клиентов ) нет транспортного слоя (с криптозащитой пакетов) , то есть все прозрачно...если вводить шифрование по тому же каналу, то либо каждый раз проверять клиент-сервер( не шифровать - шифровать), либо в бизнес логике шифровать...
аккаунты реалмов также решил хранить как обычные, только увеличить gmlevel до 5
и все таки вы шифруете избирательно или в бизнес логике? Да и есть ли разделение?
мне, например, логичнее выделить отдельный порт и таким образом физически разделить сервера отдельно, клиенты отдельно.
  Ответить с цитированием
Старый 09.08.2011, 23:15   #4
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

2mAdloVe
@SuppressWarnings("unused") можно добавить перед описанием класса
  Ответить с цитированием
Старый 10.08.2011, 00:31   #5
mAdloVe
Новичок
 
Аватар для mAdloVe
 
Регистрация: 24.03.2010
Сообщений: 23
Сказал(а) спасибо: 7
Поблагодарили 5 раз(а) в 4 сообщениях
mAdloVe На верном пути
По умолчанию

to Minimajack: знаю, но тогда можно упустить лишнее т.к. будет отключено во всем классе
mAdloVe вне форума   Ответить с цитированием
Старый 11.08.2011, 01:12   #6
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

кто то пробовал использовать ленивую загрузку данных из БД?
прикрутил сервер, дошел до загрузки персонажа - нужны шаблоны итемов из БД.
Добавил хранилище шаблонов итемов, при запуске загружаю все шаблоны, получаю тормоза при запуске и пожирание памяти на те данные, которые могут и не понадобиться - вывод? Либо использовать ленивую загрузку и при массовом реконнекте получать тормоза ( все же один запрос быстрее, чем туча мелких), либо оставить все как есть.
  Ответить с цитированием
Старый 11.08.2011, 02:36   #7
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

старт моего WorldServer:


это снифы 1.х, заселенки нет, три тестовых моба.
61704к памяти сожрано.

если ничего этого не грузить, то 40 с чем то мегабайт. вывод: шаблоны итемов, кричеров, геймобъектов... вон дохера всего - жрут примерно 20 мегабайт.
сервер запустился ровно за 4 секунды.

Цитата:
Сообщение от Minimajack Посмотреть сообщение
при запуске загружаю все шаблоны, получаю тормоза при запуске и пожирание памяти на те данные, которые могут и не понадобиться - вывод?
вывод - кривые руки и говнокод.

ленивая загрузки приведет к тому, что на каждый нерезолвенный объект надо лезть в базу. память все равно будет жрать в итоге. только получим тормоза, размазанные во времени. иными словами лаги, от которых все умные люди почему то стараются избавляться

память сейчас стоит не то что копейки, а можно на сданные бутылки ее набрать и носовать в свой "сервер" по самое небалуйся. зачем ее ТАК экономить?
RomanRom2 вне форума   Ответить с цитированием
Старый 11.08.2011, 10:23   #8
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

не пытаюсь экономить не памяти - пытаюсь сократить время запуска.
  Ответить с цитированием
Старый 11.08.2011, 11:06   #9
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

ну я вижу что не пытаетесь сэкономить память - что то много 22 мегабайта под одни только шаблоны итемов. у меня 21 мегабайт под все шаблоны, включая листы тренеров/вендоров/квестов/лута.

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

по моему на скорость не стоит обращать внимание, конечно же в разумных пределах. разницу между 10ю и 30ю секундами я считаю разумным пределом. 5 минут конечно уже нет. но:

1. хоть память и дешевая, но какие то шаги к ее экономии все же предпринимать нужно.
2. в наших задачах важнее всего экономить процессор. вполне очевидно, что ему легче брать данные из кеша (загруженные все шаблоны в память), чем каждый раз лазить за ними куда то, не важно даже куда. лазить.

я думаю так.
RomanRom2 вне форума   Ответить с цитированием
Старый 11.08.2011, 11:50   #10
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

537 Byte на все поля шаблона
в среднем 21 Byte на имя (SELECT AVG(CHARACTER_LENGTH(name)) FROM mangos.item_template)
итого ~20Mb чистых - 2 метра overhead на HashMap
Да понятно, что скорость загрузки не особо важна...просто пока делаешь мелкие опкоды, надоедает ждать рестарта для проверки.
1. согласен, принимаются разумные методы
2. уже не важно, вынес дополнительный параметр в конфиг и забыл.
ззы порезал шаблон, экономия полтора метра

Последний раз редактировалось Minimajack; 11.08.2011 в 12:34.
  Ответить с цитированием
Старый 11.08.2011, 12:58   #11
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

как 21 байт??? откуда 21? почему не 20 или не 22?
ну ребята, ну так вы долго будете в песочницах сидеть и никогда не повзрослеете.

место для данных должно выделяться динамически и ровно столько, сколько они занимают. зачем, например, для кричера 6 под имя выделять 21 байт, если достаточно 7?
RomanRom2 вне форума   Ответить с цитированием
Старый 11.08.2011, 14:05   #12
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
как 21 байт??? откуда 21? почему не 20 или не 22?
ну ребята, ну так вы долго будете в песочницах сидеть и никогда не повзрослеете.

место для данных должно выделяться динамически и ровно столько, сколько они занимают. зачем, например, для кричера 6 под имя выделять 21 байт, если достаточно 7?
Роман я выше привел запрос в БД, откуда получил средний размер длинны имени( кол-во байт ), т.к. данные загружаются все, полезный занимаемый объем будет = (суммарный размер полей шаблона + средняя длинна имени) * кол-во записей.
Кстати в БД полная запись в среднем занимает по 2 Кб.
Реальным данным выделяется столько сколько нужно. Просто так было проще подсчитать средний размер шаблона и потери на дополнительные расходы.
я не знаю как проще объяснить

Последний раз редактировалось Minimajack; 11.08.2011 в 14:11.
  Ответить с цитированием
Пользователь сказал cпасибо:
RomanRom2 (11.08.2011)
Старый 16.08.2011, 14:19   #13
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

в процессе написания реалмсервера допустил ошибки...сижу пишу тесты
пока нашел косяк в TimeBitFileds...
правильный вариант:
Может кто либо подсказать "необходимые" опкоды для входа в мир? И какими на начальном этапе можно пожертвовать?
  Ответить с цитированием
Старый 16.08.2011, 15:58   #14
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

на классике А9 достаточно
RomanRom2 вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Старый 16.08.2011, 16:25   #15
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

спасибо, но этого явно маловато.
реализовано около 25 опкодов (A9 не входит) , включая пинг, туториалдата, и т.п. пока клиент ждет чего то еще...

т.к. буду тестировать все опкоды возможно где то еще прокол, заодно и junit поближе узнаю
  Ответить с цитированием
Старый 16.08.2011, 16:42   #16
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

блин, я же сказал, А9 только нужен.
RomanRom2 вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Старый 17.08.2011, 18:07   #17
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

спасибо еще раз. В мир впустило.
нашелся первый пациент для кеширование и наблюдения CMSG_NAME_QUERY...
  Ответить с цитированием
Старый 17.08.2011, 20:02   #18
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

что то я не уловлю хода мысли. это запросы на имена плееров, которые и так онлайн и которых "увидел" клиент. что там еще кешировать, наблюдать, спамить и бдить?

Последний раз редактировалось RomanRom2; 17.08.2011 в 20:05.
RomanRom2 вне форума   Ответить с цитированием
Старый 17.08.2011, 20:14   #19
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

  Ответить с цитированием
Старый 17.08.2011, 20:46   #20
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
что то я не уловлю хода мысли. это запросы на имена плееров, которые и так онлайн и которых "увидел" клиент. что там еще кешировать, наблюдать, спамить и бдить?
На офе этот опкод даже на выборе чаров ходит постоянно
TOM_RUS вне форума   Ответить с цитированием
Старый 17.08.2011, 21:37   #21
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

Цитата:
Сообщение от TOM_RUS Посмотреть сообщение
На офе этот опкод даже на выборе чаров ходит постоянно
скорее всего. этот опкод из разряда "межмаповых" запросов и обрабатывается на центральном компоненте реалма. у себя я называю его CharServer. и поскольку клиент с какого то момента, не помню точно с какого, уже в процессе загрузки начал "спрашивать" сервер о таких межмаповых блоках информации, то ничего удивительного.

Цитата:
Сообщение от LordJZ Посмотреть сообщение
CMSG_CHAR_ENUM же может создать побольше нагрузку, если с нескольких аккаунтов посылать. В нем запрос идет по вторичном ключу (или вообще без ключа). Им валятся TrinityCore-based сервера, правда, в основном из-за говнокода в MySQL Async.
у меня только в первый раз этот опкод лезет в базу, как только залогинился. т.е. в моем случае наверное надо постоянно коннект-логин-чарлист-дисконнект делать. но за такое я баню

Цитата:
Сообщение от LordJZ Посмотреть сообщение
Позвольте, зачем?
тестировать сервер, эмулировать нагрузку. как мне еще сэмулировать на одном реалме 2000 леммингов, фармящих голд и куда то бегающих? я же не близзард, 2000 одновременно желающих потестировать сервак я врят ли наберу. на первых порах
RomanRom2 вне форума   Ответить с цитированием
Старый 17.08.2011, 22:03   #22
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
...
у меня только в первый раз этот опкод лезет в базу, как только залогинился. т.е. в моем случае наверное надо постоянно коннект-логин-чарлист-дисконнект делать. но за такое я баню
...
Я про использование бота или аналога, конечно.
LordJZ вне форума   Ответить с цитированием
Старый 17.08.2011, 22:06   #23
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
.... но за такое я баню
У вас есть ограничение на опкод, в мангосе нет. Потому и возник вопрос собственно. Кеш или бан.
Имхо 1 опкод -> 1 запрос в БД уже плохо. Лучше на низком уровне ввести счетчик частых опкодов или таймаут, и банить акк за n-попыток.
Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
тестировать сервер, эмулировать нагрузку. как мне еще сэмулировать на одном реалме 2000 леммингов, фармящих голд и куда то бегающих? я же не близзард, 2000 одновременно желающих потестировать сервак я врят ли наберу. на первых порах
у rsa плайербот в репо...это конечно немного не то, но реального бота писать - сами понимаете не "реально"( по крайней мере 2000 штук запустить точно), сори за тавтологию...
возможно провести статистику на работающем сервере; опкоды, запросы к БД и всем этим умноженным напрячь для теста...
недавно наткнулся на TDD (нужда заставила), так вот отлично помогает. Фактически без клиента, есть возможность протестировать любой компонент системы на наборе тестовых данных. Возможно реально увеличить нагрузку на "сервер" без запуска клиента вов.
  Ответить с цитированием
Старый 17.08.2011, 23:14   #24
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

Цитата:
Сообщение от Minimajack Посмотреть сообщение
у rsa плайербот в репо...это конечно немного не то, но реального бота писать - сами понимаете не "реально"( по крайней мере 2000 штук запустить точно), сори за тавтологию...
да всё реально. вход в мир - не проблема. механизм шаблонов с командами - сделан. команд нагенерить - не проблема. 2000 экземпляров ботов запустить - тоже не проблема. трудоемко? да. особенно бой с юнитами. но всё реально. клиенты вов не нужны.

Цитата:
Сообщение от Minimajack Посмотреть сообщение
возможно провести статистику на работающем сервере; опкоды, запросы к БД и всем этим умноженным напрячь для теста...
возможно. но нужны реальные данные.

впрочем до этого еще далеко...
RomanRom2 вне форума   Ответить с цитированием
Старый 17.08.2011, 20:23   #25
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

ну да, для начала надо только лишь авторизоваться с валидным аккаунтом, зайти в чарлист, создать себе что нибудь и войти в мир. хороший бот будет. мне нужен такой
RomanRom2 вне форума   Ответить с цитированием
Старый 17.08.2011, 20:31   #26
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
ну да, для начала надо только лишь авторизоваться с валидным аккаунтом, зайти в чарлист, создать себе что нибудь и войти в мир. хороший бот будет. мне нужен такой
pseuwow - есть в открытом доступе
  Ответить с цитированием
Старый 17.08.2011, 20:36   #27
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

нуу... это не совсем то что нужно. точнее даже совсем не то.
мне придется писать самому. половина уже написана - собственно вход в чарлист - эдакий прототип собственного клиента.
RomanRom2 вне форума   Ответить с цитированием
Старый 17.08.2011, 20:43   #28
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от Minimajack Посмотреть сообщение
это запрос на имя, класс и расу игрока(3.3.5а)....дело в том, что можно нагрузить БД-сервер отсылая фейковые запросы. Их кол-во ничем не регулируется, и не кешируется результат...
имхо можно не кисло напрячь сервер( устороить DOS ).
CMSG_CHAR_ENUM же может создать побольше нагрузку, если с нескольких аккаунтов посылать. В нем запрос идет по вторичном ключу (или вообще без ключа). Им валятся TrinityCore-based сервера, правда, в основном из-за говнокода в MySQL Async.
Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
...
хороший бот будет. мне нужен такой
Позвольте, зачем?
LordJZ вне форума   Ответить с цитированием
Старый 18.08.2011, 02:43   #29
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

не нужно никаких скиллов, спеллов, групп. он тупо должен бегать - читай слать мув-пакеты, а это уже нехилая нагрузка. и вступать в бой. генерировать дамаг_инфо с каким то значением. убивать моба. собирать лут. бежать к вендору продавать всё. фармить голд. всё. больше ничего не нужно. остается прописать несколько тропинок к скоплениям мобов в разных локациях. все это реализовывать просто, трудоемко, но просто.

от темы не отошли. мы обсуждаем фазу тестирования.
RomanRom2 вне форума   Ответить с цитированием
Старый 19.08.2011, 12:40   #30
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

2RomanRom2
У вас в эмуляторе аналогично присутствует дополнительное поле игрового объекта с TypeMask? Что то в его наличии я вообще не вижу смысла ( при наличии HighGuid ).
  Ответить с цитированием
Старый 19.08.2011, 13:38   #31
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию

Цитата:
Сообщение от Minimajack Посмотреть сообщение
2RomanRom2
У вас в эмуляторе аналогично присутствует дополнительное поле игрового объекта с TypeMask? Что то в его наличии я вообще не вижу смысла ( при наличии HighGuid ).
high guid может быть одинаковым у разных типов объектов.
TOM_RUS вне форума   Ответить с цитированием
Старый 19.08.2011, 14:36   #32
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

Цитата:
Сообщение от Minimajack Посмотреть сообщение
2RomanRom2
У вас в эмуляторе аналогично присутствует дополнительное поле игрового объекта с TypeMask? Что то в его наличии я вообще не вижу смысла ( при наличии HighGuid ).
ну здрасьте, приехали...

во первых это не TypeMask, а OBJECT_TYPE

используется в базовом классе объекта. для юнита например:
BaseObject.ObjectType:= TYPE_OBJECT + TYPE_UNIT;
и передается в А9, который вы никак не хотите раскурить, все наскоками у вас как то с ним.

во вторых, причем тут HIGHGUID? это совершенно отдельное поле в А9. вы путаете теплое с зеленым.

в третьих, одна маленькая уточняющая деталь: я не делаю эмулятор. я делаю сервер это немного разные подходы
RomanRom2 вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Старый 19.08.2011, 14:18   #33
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

наверное наоборот? Это у одинаковых типов - может быть разный HighGuid.
Код:
  case HIGHGUID_UNIT:         return TYPEID_UNIT;
    case HIGHGUID_PET:          return TYPEID_UNIT;
  Ответить с цитированием
Старый 19.08.2011, 14:55   #34
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

1. к сожалению, написание корректной обработки А9 требует нормального формирования гуидов...а на вопрос такой натолкнулся, в связи с наличием как TypeID так и TypeMask, так вот TypeID - как OBJECT_TYPE используется согласен, внедрен в объекты.
А вот TypeMask то зачем?
2. А9 да...раскурить окончательно надо
3. исправлюсь )


согласен OBJECT_TYPE не соответствует HIGHGUID ( фактически только из-за TYPE_CONTAINER, TYPE_ITEM)
но я про TypeMask поле в объектах

Последний раз редактировалось Minimajack; 19.08.2011 в 15:04.
  Ответить с цитированием
Старый 19.08.2011, 15:05   #35
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

Цитата:
Сообщение от Minimajack Посмотреть сообщение
1. к сожалению, написание корректной обработки А9 требует нормального формирования гуидов...а на вопрос такой натолкнулся, в связи с наличием как TypeID так и TypeMask, так вот TypeID - как OBJECT_TYPE используется согласен, внедрен в объекты.
нет нет и еще раз нет.
еще раз - вы путаете мягкое с зеленым.

TypeID это TypeID и используется он как TypeID и никак по другому. OBJECT_TYPE_ID у близзов это называется. OBJECT_TYPE это совершенно другое.

OBJECT_TYPE_ID - обозначает код типа объекта, информация по которому будет передаваться далее в А9
OBJECT_TYPE - это свойство базового объекта в partial данных. в апдейтполях.

Цитата:
Сообщение от Minimajack Посмотреть сообщение
А вот TypeMask то зачем?
2. А9 да...раскурить окончательно надо
3. исправлюсь )
раскурите уже А9 наконец. это фундаментальная основа, без нее вы ни сервер и его эмулятор не напишете.
RomanRom2 вне форума   Ответить с цитированием
Старый 19.08.2011, 15:08   #36
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

TYPE_OBJECT != 2 ^ ID_OBJECT ?
  Ответить с цитированием
Старый 19.08.2011, 15:23   #37
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

странный вопрос. вы же сами можете проверить это.
да, не равно.
RomanRom2 вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Старый 19.08.2011, 17:38   #38
zergtmn
MaNGOS Dev
 
Аватар для zergtmn
 
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
zergtmn Обладатель прекрасной аурыzergtmn Обладатель прекрасной ауры
По умолчанию

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
странный вопрос. вы же сами можете проверить это.
да, не равно.
Может мои глаза меня обманывают, но как раз получается, что равно.

Код:
enum TypeMask
{
    TYPEMASK_OBJECT         = 0x0001, // 1 << TYPEID_OBJECT,
    TYPEMASK_ITEM           = 0x0002, // 1 << TYPEID_ITEM,
    TYPEMASK_CONTAINER      = 0x0004, // 1 << TYPEID_CONTAINER,
    TYPEMASK_UNIT           = 0x0008, // 1 << TYPEID_UNIT,
    TYPEMASK_PLAYER         = 0x0010, // 1 << TYPEID_PLAYER
    TYPEMASK_GAMEOBJECT     = 0x0020, // 1 << TYPEID_GAMEOBJECT
    TYPEMASK_DYNAMICOBJECT  = 0x0040, // 1 << TYPEID_DYNAMICOBJECT
    TYPEMASK_CORPSE         = 0x0080, // 1 << TYPEID_CORPSE
};
zergtmn вне форума   Ответить с цитированием
Старый 19.08.2011, 21:32   #39
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

Цитата:
Сообщение от zergtmn Посмотреть сообщение
Может мои глаза меня обманывают, но как раз получается, что равно.
ваши глаза вас обманывают. типов объектов несколько больше, чем привели вы. чуть выше я привел их все. проверьте на значениях выше TYPE_CORPSE. ни на какие размышления не наводит?

а то что приведенное вами совпадение имеет место быть, это всего лишь выдавание желаемого за действительное. это напоминает мне очень старую байку:
RomanRom2 вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Lordronn (19.08.2011)
Старый 19.08.2011, 22:32   #40
zergtmn
MaNGOS Dev
 
Аватар для zergtmn
 
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
zergtmn Обладатель прекрасной аурыzergtmn Обладатель прекрасной ауры
По умолчанию

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
ваши глаза вас обманывают. типов объектов несколько больше, чем привели вы. чуть выше я привел их все. проверьте на значениях выше TYPE_CORPSE. ни на какие размышления не наводит?
Я ничего не утвердаю. Я вижу закономерность и надеюсь, что кто-то, копавший поглубже опровергнет или скажет "это совпадение", приведя весомые аргументы.

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
проверьте на значениях выше TYPE_CORPSE
Ваши данные:
ID_AIGROUP = $8;
ID_AREATRIGGER = $9;
TYPE_AIGROUP = $100;
TYPE_AREATRIGGER = $200;

Проверяем:
TYPE_AIGROUP = 1 << ID_AIGROUP; // 1 << 8 = 100h
TYPE_AREATRIGGER = 1 << ID_AREATRIGGER; // 1 << 9 = 200h

Последний раз редактировалось zergtmn; 19.08.2011 в 22:40.
zergtmn вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
RomanRom2 (19.08.2011)
Ответ


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

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



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


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