|
Патчи на рассмотрении Рассматриваемые к принятию патчи |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
07.03.2011, 15:11 | #1 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
[patch]real usage of MapDifficulty.dbc
Что-то тут совсем скучно стало. Попробую повеселить
собственно сабж. внимание! патч не полностью совместим с чистым ядром, но наложить вручную можно. при наличии интереса Team сделаю версию для clean core. https://github.com/rsa/mangos/commit...739a20c957e2dd оно же диффом https://github.com/rsa/mangos/commit...0c957e2dd.diff Что делает патч? Да в общем-то почти и ничего. Просто вместо использования специально подготавливаемого обрезка таблицы из темы, мы используем всю таблицу (а в ней есть некоторые данные, нужные серверу, так в частности верные сообщения при запрете входа в инстанс, а также флаг наличия кондиций для входа) ну и некоторые эти данные уже используются (хотя их использование в HandleAreaTriggerOpcode() с моей точки зрения грязный хак, но так уж сделано в оригинале). использование остальных данных уже требует custom патчей на календарь от LordJZ, верный расчет времени сброса инстансов и находящийся в наст. время в работе патч на CMSG_SET_SAVED_INSTANCE_EXTEND. |
07.03.2011, 15:57 | #2 |
MaNGOS Dev
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
|
Код:
- //uint32 textFlags; // 19 + uint32 mapDifficultyFlags; // 19 И вообще почему тема в разделе скриптов? Последний раз редактировалось TOM_RUS; 07.03.2011 в 16:00. |
07.03.2011, 16:48 | #3 | |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Цитата:
tempura, пожалуйста, перекинь если не трудно... |
|
07.03.2011, 17:27 | #4 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Насколько я помню "char* areaTriggerText" сам клиент выдает на TRANSFER_ABORT_DIFFICULTY
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
07.03.2011, 17:45 | #5 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
возможно и выдает, но не на TRANSFER_ABORT_DIFFICULTY точно, а на что именно - я не знаю. знал бы - естественно вставил бы его. получать при входе в HOR или яму сарона сообщение о недостаточном уровне как-то поднадоело, раз в ДБЦ есть совершенно легальное сообщение о требуемом квесте.
|
07.03.2011, 17:53 | #6 |
MaNGOS Dev
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
|
Код:
signed int __cdecl Packet_SMSG_TRANSFER_ABORTED(int _4D4, int a2, int a3, CDataStore *a4) { MapEntry *mapEntry; // edi@3 char *luaText2; // eax@10 MapDifficultyEntry *mapDiffEntry; // eax@13 char *luaText; // [sp-10h] [bp-4DCh]@5 signed int v9; // [sp-Ch] [bp-4D8h]@5 int v10; // [sp-8h] [bp-4D4h]@5 char buf[1024]; // [sp+4h] [bp-4C8h]@23 char a1[64]; // [sp+404h] [bp-C8h]@10 char v13[64]; // [sp+444h] [bp-88h]@17 char v14[64]; // [sp+484h] [bp-48h]@16 int mapId; // [sp+4C4h] [bp-8h]@1 unsigned __int8 v16; // [sp+4C8h] [bp-4h]@17 unsigned __int8 v17; // [sp+4C9h] [bp-3h]@10 char reason; // [sp+4CAh] [bp-2h]@1 unsigned __int8 diff; // [sp+4CBh] [bp-1h]@13 CDataStore__GetInt32(a4, (int)&mapId); CDataStore__GetInt8(a4, (int)&reason); if ( mapId >= g_MapDB.minIndex ) { if ( mapId <= g_MapDB.maxIndex ) { mapEntry = (MapEntry *)g_MapDB.Rows[mapId - g_MapDB.minIndex]; if ( mapEntry ) { switch ( reason ) { case 1: v10 = 0; v9 = -1; luaText = "TRANSFER_ABORT_ERROR"; goto LABEL_20; case 2: v10 = 0; v9 = -1; luaText = "TRANSFER_ABORT_MAX_PLAYERS"; goto LABEL_20; case 3: case 0xC: case 0xD: case 0xE: v10 = 0; v9 = -1; luaText = "TRANSFER_ABORT_NOT_FOUND"; goto LABEL_20; case 4: v10 = 0; v9 = -1; luaText = "TRANSFER_ABORT_TOO_MANY_INSTANCES"; goto LABEL_20; case 6: v10 = 0; v9 = -1; luaText = "TRANSFER_ABORT_ZONE_IN_COMBAT"; goto LABEL_20; case 7: CDataStore__GetInt8(a4, (int)&v17); SStrPrintf(a1, 64, "TRANSFER_ABORT_INSUF_EXPAN_LVL%d", v17); luaText2 = FrameScript__GetText(a1, -1, 0); goto LABEL_21; case 0xB: v10 = 0; v9 = -1; luaText = "TRANSFER_ABORT_NEED_GROUP"; goto LABEL_20; case 0xF: v10 = 0; v9 = -1; luaText = "TRANSFER_ABORT_REALM_ONLY"; goto LABEL_20; case 8: CDataStore__GetInt8(a4, (int)&diff); mapDiffEntry = (MapDifficultyEntry *)GetMapDifficultyInfoByMapIdAndDifficulty(mapEntry->MapID, diff, 0); if ( !mapDiffEntry || (luaText2 = mapDiffEntry->areaTriggerText, !luaText2) || !*luaText2 ) { SStrPrintf(v14, 64, "TRANSFER_ABORT_DIFFICULTY%d", diff + 1); luaText2 = FrameScript__GetText(v14, -1, 0); } goto LABEL_21; case 9: CDataStore__GetInt8(a4, (int)&v16); SStrPrintf(v13, 64, "TRANSFER_ABORT_UNIQUE_MESSAGE%d", v16); luaText2 = FrameScript__GetText(v13, -1, 0); goto LABEL_21; case 0xA: v10 = 0; v9 = -1; luaText = "TRANSFER_ABORT_TOO_MANY_REALM_INSTANCES"; goto LABEL_20; case 0x10: v10 = 0; v9 = -1; luaText = "TRANSFER_ABORT_MAP_NOT_ALLOWED"; LABEL_20: luaText2 = FrameScript__GetText(luaText, v9, v10); LABEL_21: if ( luaText2 ) { if ( *luaText2 ) { SStrPrintf(buf, 1024, luaText2, mapEntry->name); ChatFrame__AddMessage(buf, 0, 0, 0, 0, 0, 0, 0i64, 0, 0i64, 0, 0, 0); } } break; default: break; } } } } ConsolePrintf("World transfer aborted..."); sub_409550(); return 1; } |
Пользователь сказал cпасибо: | rsa (07.03.2011) |
07.03.2011, 17:59 | #7 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Значит будем копать Player::SendTransferAborted
поскольку сообщение приходит левое. Разобрался. Приходит (и видимо проблема моя). Но в чате... Категорически некрасиво, себе лучше оставлю как здесь опубликовано. А для общественности - часть в MisсHandler() не читать, остальное в силе. Последний раз редактировалось rsa; 07.03.2011 в 19:08. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[10717] Revert "[10716][10688] New version of patch for send real diff from last update." | newsbot | CMaNGOS Commits | 0 | 10.11.2010 06:00 |
[10688] New version of patch for send real diff from last update. | newsbot | CMaNGOS Commits | 8 | 07.11.2010 23:30 |
[a bit of research] ACE Reactor usage. | Astellar | Патчи | 4 | 25.06.2010 09:14 |
[10081][idea] Drop usage of DOTCONFDocument. | Astellar | Принятые патчи | 8 | 20.06.2010 00:55 |