|
Опкоды, Формулы, Клиент Разбор и изучение взаимодействия клиента с сервером |
|
Опции темы | Поиск в этой теме | Опции просмотра |
18.04.2011, 23:05 | #81 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Все, большое спасибо TOM_RUS, добил я LFR и даже чистку кэша сделал. Действительно, клиент смотрит в списке всех членов группы и если их нет - ставит лидера как обычного игрока...
Жалко только что этот аддон на 3.3.5а не пашет, хотелось проверить и верность посылки недокументированных данных тоже... |
18.04.2011, 23:20 | #82 | |
MaNGOS Dev
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
|
Цитата:
|
|
19.04.2011, 21:17 | #84 |
MaNGOS Dev
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
|
|
24.04.2011, 18:11 | #85 | |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Цитата:
GameTooltip:AddLine(format(UNSPENT_TALENT_POINTS, talentPoints)); GameTooltip:AddLine(format("LFM: %s", tostring(isLFM))); у меня их нет в пакете. Продолжаю доставать народ вопросами. Сохраняется ли статус очередей ЛФГ/ЛФР при логауте? Что шлет сервер в ответ на CMSG_LFG_GET_STATUS? Нет ли у кого сниффа? Сколько раз можно кикнуть претендента в группу? В трине зашито 5, это верно? |
|
24.04.2011, 18:49 | #86 | |
Ученый
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
|
Цитата:
2) -- 3) видимо сколько угодно, только задержка между киками все больше и больше становится. |
|
24.04.2011, 18:52 | #87 | ||
Умный
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
|
Цитата:
Цитата:
1 - тот, кого хотим кикнуть 2 - тот, кто кикает. А т.к проголосовать первый против себя не может, то и кикнуть его нельзя, пока не наберутся новенькие. Возможно, что группа просто распадется. |
||
24.04.2011, 20:18 | #88 | |
MaNGOS Dev
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
|
Цитата:
Код:
void __cdecl LFGHandler__ReadPlayerInfo(CDataStore *a1, LFGGroupList *groupList, LFGInfoPlayer *playerInfo) { unsigned int v3; // ebx@1 int v4; // ebx@8 bool v5; // ecx@8 LFGInfoGroup *groupInfo3; // ecx@9 LFGInfoGroup *groupInfo; // eax@12 DWORD v8; // eax@13 DWORD v9; // ebx@13 LFGInfoGroup *groupInfo2; // eax@18 DWORD v11; // eax@23 WGUID groupGuid; // [sp+Ch] [bp-18h]@15 WGUID v13; // [sp+14h] [bp-10h]@13 int playerFlags; // [sp+1Ch] [bp-8h]@1 unsigned __int8 v15; // [sp+23h] [bp-1h]@8 v3 = 0; playerFlags = 0; CDataStore__GetInt32(a1, (int)&playerFlags); if ( playerFlags & 1 ) { CDataStore__GetInt8(a1, (int)&playerInfo->Level); CDataStore__GetInt8(a1, (int)&playerInfo->Class); CDataStore__GetInt8(a1, (int)&playerInfo->Race); do CDataStore__GetInt8(a1, (int)&playerInfo->Spec[v3++]); while ( v3 < 3 ); CDataStore__GetInt32(a1, (int)&playerInfo->Armor); CDataStore__GetInt32(a1, (int)&playerInfo->SpellDamage); CDataStore__GetInt32(a1, (int)&playerInfo->SpellHeal); CDataStore__GetInt32(a1, (int)&playerInfo->CritMelee); CDataStore__GetInt32(a1, (int)&playerInfo->CritRanged); CDataStore__GetInt32(a1, (int)&playerInfo->CritSpell); CDataStore__GetFloat(a1, (int)&playerInfo->MP5); CDataStore__GetFloat(a1, (int)&playerInfo->MP5_Combat); CDataStore__GetInt32(a1, (int)&playerInfo->AttackPower); CDataStore__GetInt32(a1, (int)&playerInfo->Agility); CDataStore__GetInt32(a1, (int)&playerInfo->Health); CDataStore__GetInt32(a1, (int)&playerInfo->Mana); CDataStore__GetInt32(a1, (int)&playerInfo->TalentPoints); CDataStore__GetFloat(a1, (int)&playerInfo->Unk1); CDataStore__GetInt32(a1, (int)&playerInfo->Defence); CDataStore__GetInt32(a1, (int)&playerInfo->Dodge); CDataStore__GetInt32(a1, (int)&playerInfo->Block); CDataStore__GetInt32(a1, (int)&playerInfo->Parry); CDataStore__GetInt32(a1, (int)&playerInfo->Haste); CDataStore__GetInt32(a1, (int)&playerInfo->Expertise); } if ( playerFlags & 2 ) CDataStore__GetString(a1, (int)playerInfo->comment, 0x100u); if ( playerFlags & 4 ) { v4 = playerInfo->IsLFM; v15 = 0; CDataStore__GetInt8(a1, (int)&v15); v5 = v15 != 0; playerInfo->IsLFM = v15; if ( (v4 != 0) != v5 ) { groupInfo3 = playerInfo->groupInfo; if ( groupInfo3 ) { sub_556EF0(groupInfo3, playerInfo); sub_556E60(playerInfo->groupInfo, playerInfo); } } } if ( playerFlags & 8 ) { groupInfo = playerInfo->groupInfo; if ( groupInfo ) { v9 = groupInfo->groupGuid.guid_low; v13.guid_high = groupInfo->groupGuid.guid_high; v8 = 0; } else { v9 = 0; v8 = 0; v13.guid_high = 0; } groupGuid.guid_low = v8; groupGuid.guid_high = v8; CDataStore__GetInt64(a1, (int)&groupGuid); if ( v9 != groupGuid.guid_low || v13.guid_high != groupGuid.guid_high ) { sub_556F90(groupList, playerInfo); if ( groupGuid ) { v13 = groupGuid; groupInfo2 = (LFGInfoGroup *)GetInfo(&groupList->something, groupGuid.guid_low, &v13); } else { groupInfo2 = 0; } playerInfo->groupInfo = groupInfo2; if ( groupInfo2 ) { sub_556E60(groupInfo2, playerInfo); } else { if ( playerInfo->Index < 0 ) { v13.guid_high = groupList->group.numGroupMembers; ReallocGroupMembers(&groupList->group, v13.guid_high + 1); v11 = v13.guid_high; groupList->group.GroupMembers[v13.guid_high] = playerInfo; playerInfo->Index = v11; } } } } if ( playerFlags & 0x10 ) CDataStore__GetInt8(a1, (int)&playerInfo->Roles); if ( playerFlags & 0x20 ) CDataStore__GetInt32(a1, (int)&playerInfo->AreaId); if ( playerFlags & 0x40 ) CDataStore__GetInt8(a1, (int)&playerInfo->Status); if ( playerFlags & 0x80 ) { CDataStore__GetInt64(a1, (int)&playerInfo->instanceGuid); CDataStore__GetInt32(a1, (int)&playerInfo->encountersCompletedMask); } } |
|
03.05.2011, 12:18 | #89 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Очередная порция вопросов:
- приходит ли игроку, выбравшему при включении в очередь ЛФГ, только одну роль, предложение выбрать роль при его включении в группу? - группа создается всегда сразу из 5 чел, или может создаться из 3х и ждать остальных? - что становится с группой если после создания за 2 минуты кто-то не выбрал роль? распускается или просто выкидывается из очереди? |
03.05.2011, 12:40 | #90 |
Умный
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
|
1.Нет. Предложение будет тогда, когда кто-то ливнет и придется подтверждать свою роль.
2.Да 3. Роль выбирается в менюшке. Ты наверное имел ввиду, что будет с группой если отклонить предложение телепортация. Если да, то при отклонении оставшаяся группа(группа - человек, который не принял) идет в начало очереди |
03.05.2011, 12:43 | #91 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
спасибо, но по 3 вопросу я имел ввиду именно то что написал. при включении в группу посылается менюшка с требованием подтвердить роль. на нее надо ответить за 2 минуты. если кто-то не ответит - что будет?
|
03.05.2011, 12:59 | #92 | |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
Цитата:
Другой вариант — выбор роли в рейде, но и там нет таймера и есть кнопка «закрыть», а вызывается окошко у всего рейда через RC-подобный пункт в меню у ассиста, и ввели это, насколько я помню, только в катаклизме. |
|
03.05.2011, 13:34 | #93 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
хорошо, тогда пойдем с начала. при каком раскладе посылается LFG_ROLECHECK_MISSING_ROLE (второй uint32 в SMSG_LFG_JOIN_RESULT = 3). сообщение клиента при этом Someone didn't selected a role after 2 min.
|
03.05.2011, 14:13 | #94 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
|
03.05.2011, 14:44 | #95 | |
MaNGOS Dev
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
|
Цитата:
Менюшка с выбором роли появляется только если игрока пригласили в группу вручную, и то помоему только если у игрока несколько доступных ролей (ну еще после того как кто-то ливнул группу, тоже подтверждение роли идет). При автоматическом инвайте просто появляется подтверждение о телепортации в подземелье без выбора роли (роль выбирается сервером). Последний раз редактировалось TOM_RUS; 03.05.2011 в 14:53. |
|
03.05.2011, 20:35 | #96 | |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Цитата:
PS не вижу никаких проблем сделать (опционально конечно) телепортацию и прочие фенечки для LFR рейдов, так же как у близзов для LFG. код абсолютно тот же, строчек 20 добавить всего. как народ считает, стоит делать? |
|
03.05.2011, 20:42 | #97 |
Умный
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
|
Просто в чат пойдет надпись, что игрок не выбрал ни одной роли. Если в рейде, то помимо надписи ничего не будет, а если в ЛФг - в очередь не встанет.
|
04.05.2011, 06:59 | #99 | |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Цитата:
кстати, очередной вопрос. за что кладется аура дезертира из ЛФГ группы? за просто лив, лив в инсте, еще какие прегрешения? Добавлено через 32 секунды я и просто патча делать не буду. а это, если будет, то опцией в конфиге. |
|
04.05.2011, 09:35 | #100 | |
Ученый
Регистрация: 03.03.2010
Адрес: Сибирь, 58°14′00″ с. ш. 92°29′00″ в. д.
Сообщений: 288
Сказал(а) спасибо: 79
Поблагодарили 37 раз(а) в 14 сообщениях
Записей в дневнике: 18
|
Цитата:
по поводу дебафа 1) если игрок свалил до 1 пула босса то вешается дебаф 2) если игрок убил любого босса и сваливает то дебафа на нём нет 3) если игрок слёг от босса (то есть вся пати померла во время пула) и игрок валит после реса то так же дебафа нет |
|
04.05.2011, 09:38 | #101 | |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Цитата:
В других случаях не знаю, не сталкивался. Но это 100% дезертир (кинул группу не пройдя инст). |
|
04.05.2011, 09:45 | #102 |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
|
Поправка, дебафф дезертир накладывается на игрока если он свалил из группы раньше некоторого времени. Не помню точно, кажется минут 20-30.
Расчет идет так: игрок портнулся в инст, пошел отсчет времени t1 Игрок ливает из группы, вычисляется timedif = константа - t1. Если timedif больше 0, то игрок получает дебаф дезертир на время timedif, если меньше или равно 0, никакого дебафа не будет. Константа это и есть некоторое время в минутах, по истечению которого игрок не считается дезертиром. |
Пользователь сказал cпасибо: | KiriX (04.05.2011) |
04.05.2011, 10:03 | #104 |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
|
сейчас сервера все лежат, техобслуживание. Сегодня же среда -)
после часа зайду проверю |
04.05.2011, 11:50 | #105 |
MaNGOS Dev
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
|
Помоему если ливаешь раньше того, как кулдаун на использование случайного поиска подземелий кончается (15 мин), вешается дебаф.
|
04.05.2011, 13:41 | #107 |
Умный
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
|
это до какого боса можно дойти меньше чем за 5 мин ?
В общем немного не так, сейчас зашел проверил. После сбора группы и входа в инст запускается таймер 15 минут Если ливнуть в течении этих 15 минут, получаешь дебаф на 30 мин. Насчет боса не знаю, возможно как утверждает Fedia22, если дойти до боса и убить его раньше чем 15 минут, то таймер сбросится, это хз, не проверял Последний раз редактировалось NeatElves; 04.05.2011 в 14:25. |
07.05.2011, 19:46 | #110 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Что становится с игроком, отказавшимся принять предложение в группу? Выкидывается из очереди вообще, опускается в самый зад, просто ничего?
Статистика по очереди (среднее время ожидания, число хилов-танков) показывается общая на сервер, или по разным типам подземелий своя статистика? |
07.05.2011, 19:50 | #111 | |
MaNGOS Dev
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
|
Цитата:
2. Без понятия, скорее всего по типам. |
|
08.05.2011, 07:22 | #112 | |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Цитата:
Опять же - если группа еще не создана, 1 отказался - всех из очереди или только его (или вообще создается группа без отказантов и кидается в очередь групп?) В трине статистика вообще по каждому подземелью ведется... Ну тогда и я так же сделаю. |
|
08.05.2011, 08:05 | #113 | ||
Умный
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
|
Цитата:
Цитата:
|
||
08.05.2011, 08:23 | #114 |
Ученый
|
|
08.05.2011, 20:44 | #115 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
куда надо возвращать игрока после
1) успешного окончания подземелья 2) выхода игрока из группы (в случаях окончания, середины, начала - как я понял из обсуждения, по ауре. сделаем). 3) кика его оттуда же 4) ухода в оффлайн |
08.05.2011, 20:51 | #116 |
Ученый
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
|
Возвращает туда где остановился, перед телепортом в инст. (Еще заметил в 3.3.5 , что если останавливался допустим лицом к чему то , то после инста появлялся задом, т.е разварачивало всегда.. ну это не так уж и важно)
|
08.05.2011, 20:56 | #117 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
|
08.05.2011, 21:04 | #118 |
Умный
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
|
|
08.05.2011, 21:12 | #119 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
|
11.05.2011, 22:32 | #120 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Когда лидер ставит группу ("вступить группой") в очередь в случайное подземелье, кому приходит сообщение о постановке? всем или только лидеру?
После постановки группы в очередь, запускается ли проверка ролей? Если запускается - всем или всем кроме лидера? Когда лидер убирает группу из очереди - кому приходит сообщение (см выше ? |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопросы по использованию Git | anvd24 | Новичкам | 21 | 25.01.2012 09:17 |
Вопросы по базе | Mediv | MaNGOSZero (1.12.X) | 10 | 13.04.2011 04:31 |
Вопросы от новичка | Archon64 | MaNGOSZero (1.12.X) | 6 | 04.05.2010 13:25 |