Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Патчи > Принятые патчи

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

Принятые патчи Иногда выкладывают патчи, которые потом в итоге все-таки принимают в ядро.

Повод для гордости.

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.01.2011, 09:12   #1
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию [11446] resurrect player - if it not in raid group

Название темы
Суть проблемы:
Если труп персонажа в рейдовом подземелье, а рейдовая группа расформирована, то воскресится нельзя.
Древний баг, если не изменяет память , то припоминаю ещё с версии 2.4.3
Как далжно работать:
Призраком заходим на портал и игрок воскрешается, только если без группы или в ней, кроме рейдовой группы.

Работает, но есть какие-то сомнения... может быть, есть ошибки ?

PHP код:
diff --git a/src/game/MiscHandler.cpp b/src/game/MiscHandler.cpp
index e7a1d27
..6fd10fc 100644
--- a/src/game/MiscHandler.cpp
+++ b/src/game/MiscHandler.cpp
@@ -806,+806,25 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket recv_data)
                 
GetPlayer()->SendTransferAborted(at->target_mapIdTRANSFER_ABORT_DIFFICULTYGetPlayer()->GetDifficulty(mapEntry->IsRaid()));
             return;
         }
+
+        
// resurrect player - if it not in raid group
+        if (!GetPlayer()->isAlive())
+        {
+            
Groupgroup GetPlayer()->GetGroup();
+            if (!
group || !group->isRaidGroup())
+            {
+                
Corpse *corpse GetPlayer()->GetCorpse();
+                
uint32 corpsemapid corpse->GetMapId();
+                if (
corpsemapid != GetPlayer()->GetMapId())
+                {
+                    if (
MapEntry const* corpseMapEntry sMapStore.LookupEntry(corpsemapid))
+                    {
+                        if (
corpseMapEntry->IsDungeon() && corpseMapEntry->ghost_entrance_map >= 0)
+                            
GetPlayer()->ResurrectPlayer(0.5f);
+                    }
+                }
+            }
+        }
     }
 
     
GetPlayer()->TeleportTo(at->target_mapIdat->target_Xat->target_Yat->target_Zat->target_OrientationTELE_TO_NOT_LEAVE_TRANSPORT); 
Den вне форума  
Пользователь сказал cпасибо:
Vladimir (08.05.2011)
Старый 12.01.2011, 17:04   #2
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию

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

PHP код:
diff --git a/src/game/MapManager.cpp b/src/game/MapManager.cpp
index 52ed4a2
..5ed339e 100644
--- a/src/game/MapManager.cpp
+++ b/src/game/MapManager.cpp
@@ -168,11 +168,14 @@ bool MapManager::CanPlayerEnter(uint32 mapidPlayerplayer)
                 
Groupgroup player->GetGroup();
                 if (!
group || !group->isRaidGroup())
                 {
-                    
// probably there must be special opcode, because client has this string constant in GlobalStrings.lua
-                    // TODO: this is not a good place to send the message
-                    player->GetSession()->SendAreaTriggerMessage("You must be in a raid group to enter %s instance"mapName);
-                    
DEBUG_LOG("MAP: Player '%s' must be in a raid group to enter instance of '%s'"player->GetName(), mapName);
-                    return 
false;
+                    if (
player->isAlive())
+                    {
+                        
// probably there must be special opcode, because client has this string constant in GlobalStrings.lua
+                        // TODO: this is not a good place to send the message
+                        player->GetSession()->SendAreaTriggerMessage("You must be in a raid group to enter %s instance"mapName);
+                        
DEBUG_LOG("MAP: Player '%s' must be in a raid group to enter instance of '%s'"player->GetName(), mapName);
+                        return 
false;
+                    }
                 }
             }
         }
diff --git a/src/game/MiscHandler.cpp b/src/game/MiscHandler.cpp
index e7a1d27
..bca21da 100644
--- a/src/game/MiscHandler.cpp
+++ b/src/game/MiscHandler.cpp
@@ -806,+806,26 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket recv_data)
                 
GetPlayer()->SendTransferAborted(at->target_mapIdTRANSFER_ABORT_DIFFICULTYGetPlayer()->GetDifficulty(mapEntry->IsRaid()));
             return;
         }
+
+        
// resurrect player - if it not in raid group
+        if (!GetPlayer()->isAlive())
+        {
+            
Groupgroup GetPlayer()->GetGroup();
+            if (!
group || !group->isRaidGroup())
+            {
+                
Corpse *corpse GetPlayer()->GetCorpse();
+                
uint32 corpsemapid corpse->GetMapId();
+                if (
corpsemapid != GetPlayer()->GetMapId())
+                {
+                    if (
MapEntry const* corpseMapEntry sMapStore.LookupEntry(corpsemapid))
+                    {
+                        if (
corpseMapEntry->IsDungeon() && corpseMapEntry->ghost_entrance_map >= 0)
+                            
GetPlayer()->ResurrectPlayer(0.5f);
+                        return;
+                    }
+                }
+            }
+        }
     }
 
     
GetPlayer()->TeleportTo(at->target_mapIdat->target_Xat->target_Yat->target_Zat->target_OrientationTELE_TO_NOT_LEAVE_TRANSPORT); 
Den вне форума  
Старый 14.01.2011, 14:49   #3
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию

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

Последний раз редактировалось TOM_RUS; 14.01.2011 в 14:52.
TOM_RUS вне форума  
3 пользователя(ей) сказали cпасибо:
Den (01.02.2011), Mayss (16.01.2011), Vladimir (08.05.2011)
Старый 15.01.2011, 09:57   #4
Fedia22
Ученый
 
Аватар для Fedia22
 
Регистрация: 03.03.2010
Адрес: Сибирь, 58°14′00″ с. ш. 92°29′00″ в. д.
Сообщений: 288
Сказал(а) спасибо: 79
Поблагодарили 37 раз(а) в 14 сообщениях
Записей в дневнике: 18
Fedia22 На верном пути
По умолчанию

если он состоит в рейде то он воскрешается и портуется в этот рейд
если он не состоит в рейде а труп в данном подземелье то при подходе к порталу он воскрешается и никуда не заходит (как сказал Том_Рус)
Fedia22 вне форума  
Старый 15.01.2011, 10:30   #5
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от Fedia22 Посмотреть сообщение
если он не состоит в рейде а труп в данном подземелье то при подходе к порталу он воскрешается и никуда не заходит (как сказал Том_Рус)
подтверждаю
Йоха вне форума  
Старый 16.01.2011, 08:05   #6
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от Fedia22 Посмотреть сообщение
если он не состоит в рейде а труп в данном подземелье то при подходе к порталу он воскрешается и никуда не заходит (как сказал Том_Рус)
Данный патч был сделан именно для этого.

Цитата:
Сообщение от Fedia22 Посмотреть сообщение
если он состоит в рейде то он воскрешается и портуется в этот рейд
Да, самому заметить это невозможно, поэтому проверил с двух акаунтав, очень хорошо видно, как воскрешается и только потом портуется в рейд.

Поэтому нужно править в других местах.

Последний раз редактировалось Den; 16.01.2011 в 08:10.
Den вне форума  
Старый 01.02.2011, 18:36   #7
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию

А если, сделаем как на офе, вот так ?


Последний раз редактировалось Den; 02.02.2011 в 09:49.
Den вне форума  
Пользователь сказал cпасибо:
Старый 03.05.2011, 13:35   #8
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию

Патч для 11426.
Поубирал левые пробелы.
Хотелось бы услышать комментарии... Может это вообще хак, и стоит подождать пока кто-нибудь из мангос тим возьмется за исправление ?
PHP код:
diff --git a/src/game/AuctionHouseMgr.cpp b/src/game/AuctionHouseMgr.cpp
diff 
--git a/src/game/MapManager.cpp b/src/game/MapManager.cpp
index cece28f
..5930b1e 100644
--- a/src/game/MapManager.cpp
+++ b/src/game/MapManager.cpp
@@ -173,11 +173,14 @@ bool MapManager::CanPlayerEnter(uint32 mapidPlayerplayer)
                 
Groupgroup player->GetGroup();
                 if (!
group || !group->isRaidGroup())
                 {
-                    
// probably there must be special opcode, because client has this string constant in GlobalStrings.lua
-                    // TODO: this is not a good place to send the message
-                    player->GetSession()->SendAreaTriggerMessage("You must be in a raid group to enter %s instance"mapName);
-                    
DEBUG_LOG("MAP: Player '%s' must be in a raid group to enter instance of '%s'"player->GetName(), mapName);
-                    return 
false;
+                    if (
player->isAlive())      // no area message for ghost player
+                    {
+                        
// probably there must be special opcode, because client has this string constant in GlobalStrings.lua
+                        // TODO: this is not a good place to send the message
+                        player->GetSession()->SendAreaTriggerMessage("You must be in a raid group to enter %s instance"mapName);
+                        
DEBUG_LOG("MAP: Player '%s' must be in a raid group to enter instance of '%s'"player->GetName(), mapName);
+                        return 
false;
+                    }
                 }
             }
         }
diff --git a/src/game/MiscHandler.cpp b/src/game/MiscHandler.cpp
index d03cb8f
..3d70e41 100644
--- a/src/game/MiscHandler.cpp
+++ b/src/game/MiscHandler.cpp
@@ -806,+806,49 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket recv_data)
                 
GetPlayer()->SendTransferAborted(at->target_mapIdTRANSFER_ABORT_DIFFICULTYGetPlayer()->GetDifficulty(mapEntry->IsRaid()));
             return;
         }
+
+        
// ressurect to teleport in instance
+        if (mapEntry->IsDungeon() || mapEntry->IsRaid())
+        {
+            if (!
GetPlayer()->isAlive())
+            {
+                
Groupgroup GetPlayer()->GetGroup();
+                
Corpsecorpse GetPlayer()->GetCorpse();
+                
uint32 corpsemapid corpse->GetMapId();
+                
MapEntry const* corpseMapEntry sMapStore.LookupEntry(corpsemapid);
+
+                if (
group)
+                {
+                    if (
corpsemapid != GetPlayer()->GetMapId())
+                    {
+                        if (
corpseMapEntry->IsDungeon() && corpseMapEntry->ghost_entrance_map >= 0)
+                        {
+                            
GetPlayer()->ResurrectPlayer(0.5f);
+                            
GetPlayer()->SpawnCorpseBones();
+
+                            
// not area message
+                            if (!group->isRaidGroup() && mapEntry->IsRaid())
+                                return;
+                        }
+                    }
+                }
+                else
+                {
+                    if (
corpsemapid != GetPlayer()->GetMapId())
+                    {
+                        if (
corpseMapEntry->IsDungeon() && corpseMapEntry->ghost_entrance_map >= 0)
+                        {
+                            
GetPlayer()->ResurrectPlayer(0.5f);
+                            
GetPlayer()->SpawnCorpseBones();
+
+                            
// not area message
+                            if (mapEntry->IsRaid())
+                                return;
+                        }
+                    }
+                }
+            }
+        }
     }
 
     
GetPlayer()->TeleportTo(at->target_mapIdat->target_Xat->target_Yat->target_Zat->target_OrientationTELE_TO_NOT_LEAVE_TRANSPORT);
diff --git a/src/game/MovementHandler.cpp b/src/game/MovementHandler.cpp
index 7ecd4bd
..ea77930 100644
--- a/src/game/MovementHandler.cpp
+++ b/src/game/MovementHandler.cpp
@@ -169,17 +169,@@ void WorldSession::HandleMoveWorldportAckOpcode()
         
GetPlayer()->m_taxi.ClearTaxiDestinations();
     }
 
-    
// resurrect character at enter into instance where his corpse exist after add to map
-    Corpse *corpse GetPlayer()->GetCorpse();
-    if (
corpse && corpse->GetType() != CORPSE_BONES && corpse->GetMapId() == GetPlayer()->GetMapId())
-    {
-        if( 
mEntry->IsDungeon() )
-        {
-            
GetPlayer()->ResurrectPlayer(0.5f);
-            
GetPlayer()->SpawnCorpseBones();
-        }
-    }
-
     if (
mInstance)
     {
         
Difficulty diff GetPlayer()->GetDifficulty(mEntry->IsRaid());
diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index b3bf4c0
..d455b41 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -4446,13 +4446,@@ void Player::BuildPlayerRepop()
     
// there must be SMSG.STOP_MIRROR_TIMER
     // there we must send 888 opcode
 
-    // the player cannot have a corpse already, only bones which are not returned by GetCorpse
-    if(GetCorpse())
-    {
-        
sLog.outError("BuildPlayerRepop: player %s(%d) already has a corpse"GetName(), GetGUIDLow());
-        
MANGOS_ASSERT(false);
-    }
-
     
// create a corpse and place it at the player's location
     
Corpse *corpse CreateCorpse();
     if(!
corpse
Den вне форума  
Старый 04.05.2011, 19:37   #9
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Вы зачем часть // the player cannot have a corpse already,
убили? Она должна выполняться при любых раскладах или баг какойто в другом месте.

Со входом призраком в dungeon - понятно - воскрешаемся и если можем заходим.
Непонятен случай с многоуровневыми подземельями - там то труп на уровень глубже и вроде коскрешение только перед необъодимым вторым телепортом. Как в таких случаях ситуация зарруливается на оффе?
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума  
Старый 04.05.2011, 20:08   #10
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от Vladimir Посмотреть сообщение
Вы зачем часть // the player cannot have a corpse already,
убили? Она должна выполняться при любых раскладах или баг какойто в другом месте.

Со входом призраком в dungeon - понятно - воскрешаемся и если можем заходим.
Непонятен случай с многоуровневыми подземельями - там то труп на уровень глубже и вроде коскрешение только перед необъодимым вторым телепортом. Как в таких случаях ситуация зарруливается на оффе?
При входе в не тот вход телепортнет в правильный.
LordJZ вне форума  
Старый 04.05.2011, 20:38   #11
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

в какой "не в тот"? там же один вход...
из одного в другой, последовательно. из мапы (скажем) 0 идем в инст с мапой (скажем) 10, из 10 в 11, из 11 в 12. вот труп остался лежать в 12. мы сдохли и нас телепортнуло в 0. при подходе ко входу в инст (0->10) что будет происходить?

воскрешение и телепорт сразу в 12? или в 10 только?
RomanRom2 вне форума  
Старый 04.05.2011, 21:00   #12
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

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

Последний раз редактировалось Йоха; 04.05.2011 в 21:06.
Йоха вне форума  
Старый 04.05.2011, 21:04   #13
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

эх, молодежь... вход в инст 409 "огненные недра" находится в инсте 230 "глубины черной горы".
rsa вне форума  
Старый 04.05.2011, 21:07   #14
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию

Разве в огненные недра не NPC портует? (ну и в BWL через орб)...
TOM_RUS вне форума  
Старый 04.05.2011, 21:11   #15
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

вот я и говорю - эх, молодежь... этого НПЦ не так давно поставили, раньше тот кто просто дошел до 409 уже мог себе орден прикручивать (а туда еще чтобы войти квестцепочка на 120 позиций была... помню прошел, и наш рейд первые 2 моба в недрах положили... 40 рыл экипированных по самое то...)
rsa вне форума  
Старый 04.05.2011, 21:13   #16
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Нормальные люди в Molten Core попадают путем разговора с эльфом в самом начале, там где вылазишь из лавы. Что бы этот нпц портовал в МС, у этого же нпц берется квест.
Та же фигня была в BWL, где вход в инст в виде портала был из UBRS, но если сделать определенную цепочку, то сразу в BWL портовало от Hand of command в конце тонеля направо от входа в LBRS.

В любом случае если умереть в БВЛ, а зайти в LBRS, то реснешся у входа в LBRS, там в свое время были глобальные ПВП битвы между рейдами орды и альянса 40 на 40 тел, которые траили BWL.

Так что умерев в МС и зайдя BRD, реснешся у входа, так же как если зайти в любой другой инст где нет твоего трупика

Последний раз редактировалось Йоха; 04.05.2011 в 21:21.
Йоха вне форума  
Старый 04.05.2011, 21:15   #17
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию

Цитата:
Сообщение от rsa Посмотреть сообщение
вот я и говорю - эх, молодежь... этого НПЦ не так давно поставили, раньше тот кто просто дошел до 409 уже мог себе орден прикручивать (а туда еще чтобы войти квестцепочка на 120 позиций была... помню прошел, и наш рейд первые 2 моба в недрах положили... 40 рыл экипированных по самое то...)
NPC добавили в патче 1.11.1, что достаточно давно было...
TOM_RUS вне форума  
Старый 04.05.2011, 21:16   #18
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от rsa Посмотреть сообщение
вот я и говорю - эх, молодежь... этого НПЦ не так давно поставили
лол, этот нпц стоит там как минимум с февраля 2006 года, я тогда стал рейдить.
Никакой дурак в МС не ходил через BRD, всем делали преквест.
Йоха вне форума  
Старый 04.05.2011, 21:16   #19
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

Цитата:
Сообщение от rsa Посмотреть сообщение
вот я и говорю - эх, молодежь...
точно

Цитата:
Сообщение от rsa Посмотреть сообщение
этого НПЦ не так давно поставили
ох жесть, серьезно? как все понерфили...

ну хорошо, вопрос может не по теме, но второй от меня: а как оно было в "оригинале" то?
RomanRom2 вне форума  
Старый 04.05.2011, 21:22   #20
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от Йоха Посмотреть сообщение
лол, этот нпц стоит там как минимум с февраля 2006 года, я тогда стал рейдить.
ну а я где-то тогда как раз перестал 1й раз
rsa вне форума  
Старый 04.05.2011, 21:23   #21
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

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

Цитата:
Сообщение от Йоха Посмотреть сообщение
так же как и сейчас. нет никаких вложенных инстов.
Blackwing Lair?

Добавлено: Аха, невнимательно читал...

Последний раз редактировалось LordJZ; 04.05.2011 в 21:39.
LordJZ вне форума  
Старый 05.05.2011, 15:41   #23
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

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

после попытки войти в инст происходит следующее, два варианта:
1. ты мертвый:
- если группа уже расформирована и/или трупа нет, то воскрешаешься на месте и никуда не телепортируешься, остаешься перед входом.
- если все ок с группой и трупом, то телепортишься в самый вложенный инст в место, где оказываешься сразу после входа в инст. по сути туда, где труп.
2. ты живой:
- если группа уже расформирована и/или трупа нет, то воскрешаешься на месте и никуда не телепортируешься, остаешься перед входом.
- если все ок с группой и трупом, то опять два варианта:
а) если у тебя есть квестовый итем и/или выполнен квест (где как), то подходишь к нпц и он тебя может телепортировать сразу во внутренний инст.
б) если у тебя ничего нет, то нпц тебя пошлет в пеший эротический поход, то есть ты входишь в первый инст как обычно. и вэлкам по новой через него бежать.
RomanRom2 вне форума  
Пользователь сказал cпасибо:
Vladimir (08.05.2011)
Старый 05.05.2011, 18:46   #24
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от Vladimir Посмотреть сообщение
Вы зачем часть // the player cannot have a corpse already,
убили? Она должна выполняться при любых раскладах или баг какойто в другом месте.
Если с этой частью, то иногда в лог вылетает:

Код:
BuildPlayerRepop: player Тест(1) already has a corpse
..\..\src\game\Player.cpp:4460: Error: Assertion in Player::BuildPlayerRepop failed: false
Stack Trace:
WorldSession::ExecuteOpcode() m:\11426\mangos\src\game\worldsession.cpp:930 + 0x0
WorldSession::Update() m:\11426\mangos\src\game\worldsession.cpp: 230 + 0x0
World::UpdateSessions() m:\11426\mangos\src\game\world.cpp: 1906 + 0x10
World::Update() m:\11426\mangos\src\game\world.cpp: 1454 + 0x0
WorldRunnable::run() m:\11426\mangos\src\mangosd\worldrunnable.cpp: 61 + 0x0
ACE_Based::Thread::ThreadTask() m:\11426\mangos\src\shared\threading.cpp:190 + 0x0
ACE_OS_Thread_Adapter::invoke()+0x74 [0x0]
endthreadex()+0x44 [0x0]
endthreadex()+0xd8 [0x0]
GetModuleFileNameA()+0x1ba [0x0]
Den вне форума  
Старый 08.05.2011, 05:58   #25
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
- если все ок с группой и трупом, то телепортишься в самый вложенный инст в место, где оказываешься сразу после входа в инст
Понятно. Тогда у нас телепортации вроде тоже не хватает.

Цитата:
Если с этой частью, то иногда в лог вылетает:
Из приведенного стека непонятно на каком опкоде вылетает.
__________________
Так как устал объяснять знайте ICQ не пользуюсь

Последний раз редактировалось Vladimir; 08.05.2011 в 17:00.
Vladimir вне форума  
Старый 08.05.2011, 22:33   #26
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Я сейчас тестирую переписанную версию:
https://gist.github.com/961603

[added]
В [11446].
__________________
Так как устал объяснять знайте ICQ не пользуюсь

Последний раз редактировалось Vladimir; 08.05.2011 в 23:57.
Vladimir вне форума  
Пользователь сказал cпасибо:
Den (09.05.2011)
 


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[10713] player/group instance binding fixes. newsbot CMaNGOS Commits 0 10.11.2010 03:40
[9921] In case player who tap creature in group leave group it must anyway rewarded with group. newsbot CMaNGOS Commits 0 18.05.2010 04:11
[9920] Restore group rewarding at player kill. newsbot CMaNGOS Commits 0 18.05.2010 03:40


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


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