Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Опкоды, Формулы, Клиент (http://mangos.ytdb.ru/forumdisplay.php?f=9)
-   -   Кластер внутри мапы? (http://mangos.ytdb.ru/showthread.php?t=7763)

RomanRom2 12.12.2013 02:59

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

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

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

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

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

и вот пересекая границу заметил странное притормаживание клиента (блин, Alienware m17x R4, SSD, 32gb, ну чего ж еще надо). отлетел обратно - снова притормозило. опять пролетаю - замечаю, как на горе горел костер, когда я находится на территории элвина. и как костер (ГО) дестроится, когда я перелетаю в степи и ловлю подтормаживание клиента.

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

ну и если присматриваться ОЧЕНЬ внимательно, видно, как "старый" ландшафт фейдом заменяется "новым" и чуть чуть "не там". в движении даже не поймешь.

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

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

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

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

в свое время плотно сидя на разборе снифов, именно тот же набор опкодов, во время world port как при логине (ну почти тот же) меня натолкнул на мысль о кластеризации игрового пространства и тогда то она и родилась.

Amaru 12.12.2013 11:32

не знаю, как насчет зон, но разные карты у близзов точно обрабатываются на разных серверах.
когда половина ру сервов лежали, при попытке портануться в шатры выдавало вот такое
http://img194.imageshack.us/img194/1204/cmjc.png

Цитата:

Сообщение от RomanRom2 (Сообщение 32292)
и вот как то однажды, прокачивая травничество, случайно вылетел из элвинфореста в бёрнинг степс.

и вот пересекая границу заметил странное притормаживание клиента (блин, Alienware m17x R4, SSD, 32gb, ну чего ж еще надо). отлетел обратно - снова притормозило. опять пролетаю - замечаю, как на горе горел костер, когда я находится на территории элвина. и как костер (ГО) дестроится, когда я перелетаю в степи и ловлю подтормаживание клиента.

ну это вполне может быть зоновой аурой фазирования, которая кастуется в зависимости от квест статусов. и он начинает получать кучу огромнейших криэйт пакетов и аура апдейтов, с выходом каты значительно потяжелевших.
видели create часть SMSG_UPDATE_OBJECT пандор? это нечто
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 175 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.

Цитата:

ну и если присматриваться ОЧЕНЬ внимательно, видно, как "старый" ландшафт фейдом заменяется "новым" и чуть чуть "не там". в движении даже не поймешь.

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

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

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

RomanRom2 12.12.2013 13:08

Цитата:

Сообщение от Amaru (Сообщение 32297)
не знаю, как насчет зон, но разные карты у близзов точно обрабатываются на разных серверах.

ага. в этом точно не приходится сомневаться, мне это как никому другому понятно :)

Цитата:

Сообщение от Amaru (Сообщение 32297)
ну это вполне может быть зоновой аурой фазирования, которая кастуется в зависимости от квест статусов. и он начинает получать кучу огромнейших криэйт пакетов и аура апдейтов, с выходом каты значительно потяжелевших.

Цитата:

Сообщение от Amaru (Сообщение 32297)
это очень похоже на SMSG_PHASE_SHIFT - подмену terrain, появившееся с каты

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

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

TOM_RUS 12.12.2013 21:10

Да, там реконнект происходит при пересечении realm only и cross server зон, это давно известно. Можно даже в netstat глянуть, ip меняются :)

А кто нибудь пытался провернуть это на 3.3.5 клиенте? :) То что при логине это прокатывает и так известно, а вот сделать редирект уже после входа в мир кто-то побовал? :)

RomanRom2 12.12.2013 21:28

а опкоды в 3.3.5 для этого есть? :)
если так, обязательно займусь, ибо мувемент у меня в программе.

TOM_RUS 12.12.2013 21:29

Цитата:

Сообщение от RomanRom2 (Сообщение 32305)
а опкоды в 3.3.5 для этого есть? :)
если так, обязательно займусь, ибо мувемент у меня в программе.

Ну теми что при логине используются можно попробовать.
Код:

    SMSG_CONNECT_TO                                = 0x50D,
    CMSG_CONNECT_TO_FAILED                          = 0x50E,
    SMSG_SUSPEND_COMMS                              = 0x50F,
    CMSG_SUSPEND_COMMS_ACK                          = 0x510,
    SMSG_RESUME_COMMS                              = 0x511,
    CMSG_AUTH_CONTINUED_SESSION                    = 0x512,
    CMSG_DROP_NEW_CONNECTION                        = 0x513,


Amaru 13.12.2013 10:26

Цитата:

Сообщение от TOM_RUS (Сообщение 32304)
Да, там реконнект происходит при пересечении realm only и cross server зон, это давно известно. Можно даже в netstat глянуть, ip меняются :)

А кто нибудь пытался провернуть это на 3.3.5 клиенте? :) То что при логине это прокатывает и так известно, а вот сделать редирект уже после входа в мир кто-то побовал? :)

Учитывая, что есть пиратки с кросс-серверным бг, походу прокатывает

RomanRom2 13.12.2013 14:24

вах, даже так :)
это чего у них, реалмлист стало быть есть? целая сеть реалмов-пираток, объедененных в реалмлист?
да, ну и как бы механика БГ тут не при делах, это ж обычный ворлд порт.

Amaru 13.12.2013 16:08

Цитата:

Сообщение от RomanRom2 (Сообщение 32308)
вах, даже так :)
это чего у них, реалмлист стало быть есть? целая сеть реалмов-пираток, объедененных в реалмлист?
да, ну и как бы механика БГ тут не при делах, это ж обычный ворлд порт.

Ну а чего там сложного. Слить все базы чаров в одну с разными хай-гуидами, и держать отдельный сервер для бг

RomanRom2 13.12.2013 18:15

да понятно что технически ничего сложного. вопрос в том, что это кто-то все организовал.

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

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

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

TOM_RUS 13.12.2013 18:33

Цитата:

Сообщение от RomanRom2 (Сообщение 32311)
но одно другому не мешает, гуиды мне кажется генерятся новые. посмотрю, о результатах доложусь.

Я очень сомневаюсь что генерятся новые гуиды при входе в межсерверную зону, легко проверить с помощью команды
Код:

/dump UnitGUID("player")

RomanRom2 13.12.2013 19:51

да, вы правы, гуиды не меняются. вот пруф:

сниф:
5595.WOWEMUTEAM.Warsong-5595-new-bg.0024417E44.PKT, 4236 kb [5595]

смена карт по снифу:
Код:

[General - Orgrimmar], map=1, zone=1637
NEW_WORLD: 529 684.013977 681.219971 -12.915900 0.805031
[General - Arathi Basin], map=529, zone=3358
NEW_WORLD: 1 2000.017456 -4795.296875 56.764965 0.000000
[General - Orgrimmar], map=1, zone=1637

вход в мир:
Код:

--- NEW OBJECT [182/268]---------------------------------------------------------------
update type = UPDATE_TYPE_CREATE_PLAYER_ACTIVE, ofs=30DD
GUID 00000000002F169E
object type = (4) PLAYER, ofs=30DE
create flags: 0x71, 0x00002000, 0x504ABB5D
Pos: x=1964.503296, y=-4748.942383, z=54.399590, f=1.957998
(int) fallen_time=00000000
flag1 0x2000 (MOVEFLAG_FALLING): 0.000000, -0.377599, 0.925969, 0.000000
Speed: Walk=2.500000, Run=7.000000, RunBack=4.500000, Swim=4.722222, SwimBack=2.500000, TurnRate=3.141593
flag0 (0x10) = 00000001
BitMask blocks = 41
0    0_OBJECT_FIELD_GUID__1                  002F169E (3085982)
2    2_OBJECT_FIELD_TYPE                    00000019 (25)

вход в Arathi Basin:
Код:

--- NEW OBJECT [182/240]---------------------------------------------------------------
update type = UPDATE_TYPE_CREATE_PLAYER_ACTIVE, ofs=30DD
GUID 00000000002F169E
object type = (4) PLAYER, ofs=30DE
create flags: 0x71, 0x00002000, 0x504B9D53
Pos: x=684.013977, y=681.219971, z=-12.915900, f=0.805031
(int) fallen_time=00000000
flag1 0x2000 (MOVEFLAG_FALLING): 0.000000, 0.693089, 0.720852, 0.000000
Speed: Walk=2.500000, Run=7.000000, RunBack=4.500000, Swim=4.722222, SwimBack=2.500000, TurnRate=3.141593
flag0 (0x10) = 00000001
BitMask blocks = 41
0    0_OBJECT_FIELD_GUID__1                  002F169E (3085982)
2    2_OBJECT_FIELD_TYPE                    00000019 (25)


RomanRom2 16.12.2013 23:04

в общем, у вневременного острова, как ни старался - эффект не воспроизводится.

TOM_RUS 16.12.2013 23:13

У них зоны есть нескольких типов кросс серверности:
1) вообще не кросс серверные (даже если в одной группе/рейде), например Штормград и Оргриммар
2) кросс серверные только если в группе/рейде (Пандария)
3) кросс серверные даже без группы/рейда (низко уровневые зоны)

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

HuntsMan 08.01.2014 00:54

Цитата:

Ну а чего там сложного. Слить все базы чаров в одну с разными хай-гуидами, и держать отдельный сервер для бг
Проще перекачивать объекты игроков между обычным сервером и сервером бг (да и правильнней это наверное будет). А вообще, насколько мне известно, нынешние пиратки сделали кросс бг не через реконнекты, а обычным проксированием.

RomanRom2 10.01.2014 14:47

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

TOM_RUS 10.01.2014 18:12

Цитата:

Сообщение от RomanRom2 (Сообщение 32360)
ну как перекачивать... а если и там и там есть объекты с одинаковым гуидом? сами чары. или их итемы. а что будет с энчантами? ну с ними то хрен с ними, ну будет показываться другое имя, а тот, кто заинчантил тебе итем. но тем не менее, дизайн какой то кривой в этом случае. я бы на ревью задеклайнил :)

Там же разные high guid вроде у всех, у итемов тоже скорее всего.

RomanRom2 11.01.2014 01:03

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


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

ru-mangos.ru - Русское сообщество MaNGOS