Ru-MaNGOS

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

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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.07.2011, 13:53   #1
mAdloVe
Новичок
 
Аватар для mAdloVe
 
Регистрация: 24.03.2010
Сообщений: 23
Сказал(а) спасибо: 7
Поблагодарили 5 раз(а) в 4 сообщениях
mAdloVe На верном пути
Сообщение [DEV] StormCore (Java WoW Emu)

Вот, решил начать писать emu пресловутой игры на Java, так как данная игра и язык представляют для меня большой интерес. Хочется совместить приятное с полезным и углублять свои знания в Java. Может кого-нибудь заинтересует моя задумка...
На данный момент удалось реализовать аутентификацию с реалм сервером.
Выкладываю исходники своего творения. Прошу строго не судить.

[HIDE="Устарело"]
Проект переехал с http://github.com/ШтормКоре в http://github.com/JMaNGOS
git clone git://github.com/JMaNGOS/storm.git

В данный момент проект storm заморожен.

UPDATE:
storm закрыт полностью все наработки перебрались в JMaNGOS
[/HIDE]

В свою очередь все наработки были перенесены в новый проект "JMaNGOS". И сейчас все работы ведутся над "JMaNGOS".
Проект http://github.com/JMaNGOS
git clone git://github.com/JMaNGOS/JMaNGOS.git

Последний раз редактировалось mAdloVe; 14.09.2013 в 18:42. Причина: возвращение проекта
mAdloVe вне форума   Ответить с цитированием
Старый 08.08.2011, 13:12   #81
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

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

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

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

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

кто то пробовал использовать ленивую загрузку данных из БД?
прикрутил сервер, дошел до загрузки персонажа - нужны шаблоны итемов из БД.
Добавил хранилище шаблонов итемов, при запуске загружаю все шаблоны, получаю тормоза при запуске и пожирание памяти на те данные, которые могут и не понадобиться - вывод? Либо использовать ленивую загрузку и при массовом реконнекте получать тормоза ( все же один запрос быстрее, чем туча мелких), либо оставить все как есть.
  Ответить с цитированием
Старый 11.08.2011, 02:36   #86
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   #87
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

не пытаюсь экономить не памяти - пытаюсь сократить время запуска.
  Ответить с цитированием
Старый 11.08.2011, 11:06   #88
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   #89
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   #90
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   #91
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   #92
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

в процессе написания реалмсервера допустил ошибки...сижу пишу тесты
пока нашел косяк в TimeBitFileds...
правильный вариант:
Может кто либо подсказать "необходимые" опкоды для входа в мир? И какими на начальном этапе можно пожертвовать?
  Ответить с цитированием
Старый 16.08.2011, 15:58   #93
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   #94
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

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

т.к. буду тестировать все опкоды возможно где то еще прокол, заодно и junit поближе узнаю
  Ответить с цитированием
Старый 16.08.2011, 16:42   #95
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   #96
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

спасибо еще раз. В мир впустило.
нашелся первый пациент для кеширование и наблюдения CMSG_NAME_QUERY...
  Ответить с цитированием
Старый 17.08.2011, 20:02   #97
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   #98
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

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

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

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

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

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

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
.... но за такое я баню
У вас есть ограничение на опкод, в мангосе нет. Потому и возник вопрос собственно. Кеш или бан.
Имхо 1 опкод -> 1 запрос в БД уже плохо. Лучше на низком уровне ввести счетчик частых опкодов или таймаут, и банить акк за n-попыток.
Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
тестировать сервер, эмулировать нагрузку. как мне еще сэмулировать на одном реалме 2000 леммингов, фармящих голд и куда то бегающих? я же не близзард, 2000 одновременно желающих потестировать сервак я врят ли наберу. на первых порах
у rsa плайербот в репо...это конечно немного не то, но реального бота писать - сами понимаете не "реально"( по крайней мере 2000 штук запустить точно), сори за тавтологию...
возможно провести статистику на работающем сервере; опкоды, запросы к БД и всем этим умноженным напрячь для теста...
недавно наткнулся на TDD (нужда заставила), так вот отлично помогает. Фактически без клиента, есть возможность протестировать любой компонент системы на наборе тестовых данных. Возможно реально увеличить нагрузку на "сервер" без запуска клиента вов.
  Ответить с цитированием
Старый 17.08.2011, 23:14   #107
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, 23:48   #108
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
возможно. но нужны реальные данные.
именно о
Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
да всё реально. вход в мир - не проблема. механизм шаблонов с командами - сделан. команд нагенерить - не проблема. 2000 экземпляров ботов запустить - тоже не проблема. трудоемко? да. особенно бой с юнитами. но всё реально. клиенты вов не нужны.
я и имел ввиду...
"реальный бот" должен "передвигатся по карте"( не застревать, слать мовмент пакеты), кучковаться в группы( мовмент, аура, аура стак, мап апдайт ), использовать скилы - вот главный подвох...
такое простой генерацией команд не получится сделать для 2000 клиентов.
зы Разве что воспроизвести со снифов (движение, группы, спелы )...тогда и выдумывать ничего не надо (десяток рейдов, полтишок групп - зато все реально, можно собрать статистику....а если еще и нейросеть обучить на классы - сделать AI-like player Bot)
ззы уж совсем отошли от темы, мечты-мечты
  Ответить с цитированием
Старый 18.08.2011, 02:43   #109
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

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

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

2RomanRom2
У вас в эмуляторе аналогично присутствует дополнительное поле игрового объекта с TypeMask? Что то в его наличии я вообще не вижу смысла ( при наличии HighGuid ).
  Ответить с цитированием
Старый 19.08.2011, 13:38   #111
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:18   #112
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

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

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

странный вопрос. вы же сами можете проверить это.
да, не равно.
RomanRom2 вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Старый 19.08.2011, 17:38   #118
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, 18:44   #119
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

у плеера получается другая маска TYPEMASK_PLAYER || TYPEMASK_UNIT
дальше не смотрел...
  Ответить с цитированием
Старый 19.08.2011, 19:04   #120
zergtmn
MaNGOS Dev
 
Аватар для zergtmn
 
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
zergtmn Обладатель прекрасной аурыzergtmn Обладатель прекрасной ауры
По умолчанию

ну так и получается у плеера
Код:
TYPEMASK_OBJECT | TYPEMASK_UNIT | TYPEMASK_PLAYER
или
Код:
(1 << TYPEID_OBJECT) | (1 << TYPEID_UNIT) | (1 << TYPEID_PLAYER)
Совпадение?

Последний раз редактировалось zergtmn; 19.08.2011 в 20:04.
zergtmn вне форума   Ответить с цитированием
Ответ


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

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



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


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