Jump to content

KiriX

Members
  • Posts

    120
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by KiriX

  1. Frozen-In-Time, please, use CODE teg for patch in your post...

    QUOTE is not compact and del text format...

    For 10060

    diff --git a/src/game/Group.cpp b/src/game/Group.cpp
    index 7aa97e1..d4449f8 100644
    --- a/src/game/Group.cpp
    +++ b/src/game/Group.cpp
    @@ -308,6 +308,10 @@ bool Group::AddMember(const uint64 &guid, const char* name)
    
    uint32 Group::RemoveMember(const uint64 &guid, const uint8 &method)
    {
    +    // Frozen Mod
    +    BroadcastGroupUpdate();
    +    // Frozen Mod
    +    
        // remove member and change leader (if need) only if strong more 2 members _before_ member remove
        if(GetMembersCount() > uint32(isBGGroup() ? 1 : 2))           // in BG group case allow 1 members group
        {
    @@ -1742,6 +1746,36 @@ void Group::_homebindIfInstance(Player *player)
                player->m_InstanceValid = false;
        }
    }
    +//Frozen Mod
    +void Group::BroadcastGroupUpdate(void)
    +{
    +    for(member_citerator citr = m_memberSlots.begin(); citr != m_memberSlots.end(); ++citr)
    +    {
    +        Player *pp = sObjectMgr.GetPlayer(citr->guid);
    +        if(pp && pp->IsInWorld())
    +        {
    +            pp->ForceValuesUpdateAtIndex(UNIT_FIELD_BYTES_2);
    +            pp->ForceValuesUpdateAtIndex(UNIT_FIELD_FACTIONTEMPLATE);
    +            DEBUG_LOG("-- Forced group value update for '%s'", pp->GetName());
    +            if(pp->GetPet())
    +            {
    +                pp->GetPet()->ForceValuesUpdateAtIndex(UNIT_FIELD_BYTES_2);
    +                pp->GetPet()->ForceValuesUpdateAtIndex(UNIT_FIELD_FACTIONTEMPLATE);
    +                DEBUG_LOG("-- Forced group value update for '%s' pet '%s'", pp->GetName(), pp->GetPet()->GetName());
    +            }
    +            for(uint32 i = 0; i < MAX_TOTEM_SLOT; ++i)
    +            {
    +                if(Unit *totem = Unit::GetUnit(*pp, pp->m_TotemSlot[i]))
    +                {
    +                    totem->ForceValuesUpdateAtIndex(UNIT_FIELD_BYTES_2);
    +                    totem->ForceValuesUpdateAtIndex(UNIT_FIELD_FACTIONTEMPLATE);
    +                    DEBUG_LOG("-- Forced group value update for '%s' totem #%u", pp->GetName(), i);
    +                }
    +            }
    +        }
    +    }
    +}
    +// Frozen Mod
    
    static void RewardGroupAtKill_helper(Player* pGroupGuy, Unit* pVictim, uint32 count, bool PvP, float group_rate, uint32 sum_level, bool is_dungeon, Player* not_gray_member_with_max_level, Player* member_with_max_level, uint32 xp )
    {
    diff --git a/src/game/Group.h b/src/game/Group.h
    index c9cffe3..63b0627 100644
    --- a/src/game/Group.h
    +++ b/src/game/Group.h
    @@ -357,6 +357,10 @@ class MANGOS_DLL_SPEC Group
            InstanceGroupBind* GetBoundInstance(Player* player);
            InstanceGroupBind* GetBoundInstance(Map* aMap, Difficulty difficulty);
            BoundInstancesMap& GetBoundInstances(Difficulty difficulty) { return m_boundInstances[difficulty]; }
    +        
    +        // Frozen Mod
    +        void BroadcastGroupUpdate(void);
    +        // Frozen Mod
    
        protected:
            bool _addMember(const uint64 &guid, const char* name, bool isAssistant=false);
    diff --git a/src/game/GroupHandler.cpp b/src/game/GroupHandler.cpp
    index d73b233..9cedf65 100644
    --- a/src/game/GroupHandler.cpp
    +++ b/src/game/GroupHandler.cpp
    @@ -207,6 +207,10 @@ void WorldSession::HandleGroupAcceptOpcode( WorldPacket & recv_data )
        // everything is fine, do it, PLAYER'S GROUP IS SET IN ADDMEMBER!!!
        if(!group->AddMember(GetPlayer()->GetGUID(), GetPlayer()->GetName()))
            return;
    +    
    +    // Frozen Mod
    +    group->BroadcastGroupUpdate();
    +    // Frozen Mod
    }
    
    void WorldSession::HandleGroupDeclineOpcode( WorldPacket & /*recv_data*/ )
    diff --git a/src/game/Object.cpp b/src/game/Object.cpp
    index c78a2e3..d31d6d5 100644
    --- a/src/game/Object.cpp
    +++ b/src/game/Object.cpp
    @@ -657,6 +657,54 @@ void Object::BuildValuesUpdate(uint8 updatetype, ByteBuffer * data, UpdateMask *
                        else
                            *data << (m_uint32Values[ index ] & ~UNIT_DYNFLAG_TAPPED);
                    }
    +                
    +                // Frozen Mod
    +                else if(index == UNIT_FIELD_BYTES_2 || index == UNIT_FIELD_FACTIONTEMPLATE)
    +                {
    +                    bool ch = false;
    +                    
    +                    if((GetTypeId() == TYPEID_PLAYER || GetTypeId() == TYPEID_UNIT) && target != this)
    +                    {
    +                        bool forcefriendly = false; // bool for pets/totems to offload more code from the big if below
    +                        
    +                        if(GetTypeId() == TYPEID_UNIT)
    +                        {
    +                            forcefriendly = (((Creature*)this)->isTotem() || ((Creature*)this)->isPet())
    +                            && ((Creature*)this)->GetOwner()->GetTypeId() == TYPEID_PLAYER
    +                            && ((Creature*)this)->GetOwner()->IsFriendlyTo(target) // pet owner must be friendly to target
    +                            && ((Creature*)this)->GetOwner() != target // no need to send hackfix to pet owner
    +                            && (target->IsInSameGroupWith((Player*)((Creature*)this)->GetOwner()) || target->IsInSameRaidWith((Player*)((Creature*)this)->GetOwner()));
    +                        }
    +
    +                        if(((Unit*)this)->IsSpoofSamePlayerFaction() || forcefriendly || (target->GetTypeId() == TYPEID_PLAYER && GetTypeId() == TYPEID_PLAYER && (target->IsInSameGroupWith((Player*)this) || target->IsInSameRaidWith((Player*)this))))
    +                        {
    +                            if(index == UNIT_FIELD_BYTES_2)
    +                            {
    +                                DEBUG_LOG("-- VALUES_UPDATE: Sending '%s' the blue-group-fix from '%s' (flag)", target->GetName(), ((Unit*)this)->GetName());
    +                                *data << ( m_uint32Values[ index ] & (UNIT_BYTE2_FLAG_SANCTUARY << 8) ); // this flag is at uint8 offset 1 !!
    +                                ch = true;
    +                            }
    +                            else if(index == UNIT_FIELD_FACTIONTEMPLATE)
    +                            {
    +                                FactionTemplateEntry const *ft1, *ft2;
    +                                ft1 = ((Unit*)this)->getFactionTemplateEntry();
    +                                ft2 = ((Unit*)target)->getFactionTemplateEntry();
    +                                
    +                                if(ft1 && ft2 && (!ft1->IsFriendlyTo(*ft2) || ((Unit*)this)->IsSpoofSamePlayerFaction()))
    +                                {
    +                                    uint32 faction = ((Player*)target)->getFaction(); // pretend that all other HOSTILE players have own faction, to allow follow, heal, rezz (trade wont work)
    +                                    DEBUG_LOG("-- VALUES_UPDATE: Sending '%s' the blue-group-fix from '%s' (faction %u)", target->GetName(), ((Unit*)this)->GetName(), faction);
    +                                    *data << uint32(faction);
    +                                    ch = true;
    +                                }
    +                            }
    +                        }
    +                    }
    +                    
    +                    if(!ch)
    +                        *data << m_uint32Values[ index ];
    +                }
    +                // Frozen Mod
                    else
                    {
                        // send in current format (float as float, uint32 as uint32)
    @@ -1664,6 +1712,21 @@ Creature* WorldObject::SummonCreature(uint32 id, float x, float y, float z, floa
        return pCreature;
    }
    
    +// Frozen Mod
    +void Object::ForceValuesUpdateAtIndex(uint32 i)
    +{
    +    m_uint32Values_mirror[i] = GetUInt32Value(i) + 1; // makes server think the field changed
    +    if(m_inWorld)
    +    {
    +        if(!m_objectUpdated)
    +        {
    +            AddToClientUpdateList();
    +            m_objectUpdated = true;
    +        }
    +    }
    +}
    +// Frozen Mod
    +
    namespace MaNGOS
    {
        class NearUsedPosDo
    diff --git a/src/game/Object.h b/src/game/Object.h
    index c214a9d..6188c7e 100644
    --- a/src/game/Object.h
    +++ b/src/game/Object.h
    @@ -276,6 +276,11 @@ class MANGOS_DLL_SPEC Object
    
            virtual bool hasQuest(uint32 /* quest_id */) const { return false; }
            virtual bool hasInvolvedQuest(uint32 /* quest_id */) const { return false; }
    +        
    +        // Frozen Mod
    +        void ForceValuesUpdateAtIndex(uint32);
    +        // Frozen Mod
    +        
        protected:
    
            Object ( );
    diff --git a/src/game/TradeHandler.cpp b/src/game/TradeHandler.cpp
    index 5fc3ec4..69c3d75 100644
    --- a/src/game/TradeHandler.cpp
    +++ b/src/game/TradeHandler.cpp
    @@ -604,11 +604,13 @@ void WorldSession::HandleInitiateTradeOpcode(WorldPacket& recvPacket)
            return;
        }
    
    -    if (pOther->GetTeam() !=_player->GetTeam() )
    +    // Frozen Mod
    +    /* if (pOther->GetTeam() !=_player->GetTeam() )
        {
            SendTradeStatus(TRADE_STATUS_WRONG_FACTION);
            return;
    -    }
    +    } */
    +    // Frozen Mod
    
        if (!pOther->IsWithinDistInMap(_player,10.0f,false))
        {
    diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
    index d0c82d8..63df6f6 100644
    --- a/src/game/Unit.cpp
    +++ b/src/game/Unit.cpp
    @@ -251,6 +251,10 @@ Unit::Unit()
        // remove aurastates allowing special moves
        for(int i=0; i < MAX_REACTIVE; ++i)
            m_reactiveTimer[i] = 0;
    +        
    +    // Frozen Mod
    +    m_spoofSamePlayerFaction = false;
    +    // Frozen Mod
    }
    
    Unit::~Unit()
    diff --git a/src/game/Unit.h b/src/game/Unit.h
    index d02235d..4299f44 100644
    --- a/src/game/Unit.h
    +++ b/src/game/Unit.h
    @@ -1829,6 +1829,11 @@ class MANGOS_DLL_SPEC Unit : public WorldObject
            PetAuraSet m_petAuras;
            void AddPetAura(PetAura const* petSpell);
            void RemovePetAura(PetAura const* petSpell);
    +        
    +        // Frozen Mod
    +        inline void SetSpoofSamePlayerFaction(bool b) { m_spoofSamePlayerFaction = b; }
    +        inline bool IsSpoofSamePlayerFaction(void) {return m_spoofSamePlayerFaction; }
    +        // Frozen Mod
    
            // Movement info
            MovementInfo m_movementInfo;
    @@ -1880,8 +1885,12 @@ class MANGOS_DLL_SPEC Unit : public WorldObject
            uint32 m_reactiveTimer[MAX_REACTIVE];
            uint32 m_regenTimer;
            uint32 m_lastManaUseTimer;
    +        
    +        // Frozen Mod
    +        bool m_spoofSamePlayerFaction : 1;
    +        // Frozen Mod
    
    -    private:
    +    public:
            void CleanupDeletedAuras();
    
            bool IsTriggeredAtSpellProcEvent(Unit *pVictim, Aura* aura, SpellEntry const* procSpell, uint32 procFlag, uint32 procExtra, WeaponAttackType attType, bool isVictim, bool active, SpellProcEventEntry const*& spellProcEvent );
    

  2. 1) Patch fix spell http://www.wowhead.com/spell=38736 and make quest http://www.wowhead.com/quest=10839 completible

    2) for rev. 9808

    3) Author: me

    Triggering aura from spell 38736 have TARGET_SCRIPT, but trigger spell (38729) have effect Quest_Complete with TARGET_SELF, so it must be cast from player.

    diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
    index 39ab05e..fb1b79a 100644
    --- a/src/game/SpellAuras.cpp
    +++ b/src/game/SpellAuras.cpp
    @@ -2205,6 +2205,13 @@ void Aura::TriggerSpell()
                case 33525:
                    target->CastSpell(target, trigger_spell_id, true, NULL, this, casterGUID);
                    return;
    +            // Rod of Purification - for quest 10839 (Veil Skith: Darkstone of Terokk)
    +            case 38736:
    +            {
    +                Unit* caster = GetCaster();
    +                caster->CastSpell(target, trigger_spell_id, true, NULL, this);
    +                return;
    +            }
                // Beacon of Light
                case 53563:
                    // original caster must be target (beacon)

  3. I have crash with playerbot MaNGOS rev.9531

    Registers:
    EAX:00000000
    EBX:72D6B678
    ECX:7F3EC180
    EDX:00000000
    ESI:00000000
    EDI:00916D20
    CS:EIP:001B:008AC8F5
    SS:ESP:0023:08EFFCAC  EBP:08EFFD08
    DS:0023  ES:0023  FS:003B  GS:0000
    Flags:00010246
    
    Call stack:
    Address   Frame     Function      SourceFile
    008AC8F5  00000000  CharacterHandler::HandlePlayerBotLoginCallback+165
    008B0E1D  00000000  MaNGOS::_IQueryCallback<MaNGOS::_Callback<CharacterHandler,QueryResult *,SqlQueryHolder *,void,void> >::Execute+2D
    00919318  00000000  SqlResultQueue::Update+28
    00635EC5  00000000  World::UpdateResultQueue+15
    00634437  00000000  World::Update+7A7
    0045285E  00000000  WorldRunnable::run+8E
    00916D39  00000000  ACE_Based::Thread::ThreadTask+19
    002914D4  00000000  ?invoke@ACE_OS_Thread_Adapter@@UAEKXZ+74
    78543433  00000000  _endthreadex+44
    785434C7  00000000  _endthreadex+D8
    7C82482F  00000000  GetModuleHandleA+DF

  4. You can try this (I don't test it!!!):

    diff --git a/src/game/InstanceSaveMgr.cpp b/src/game/InstanceSaveMgr.cpp
    index 81aca01..0b8eacd 100644
    --- a/src/game/InstanceSaveMgr.cpp
    +++ b/src/game/InstanceSaveMgr.cpp
    @@ -499,10 +499,12 @@ void InstanceSaveManager::LoadResetTimes()
            // schedule the global reset/warning
            uint8 type = 1;
            static int tim[4] = {3600, 900, 300, 60};
    -        for(; type < 4; type++)
    +        for(type; type < 4; type++)
                if(t - tim[type-1] > now)
                    break;
    
    +        ScheduleReset(true, t - tim[type-1], InstResetEvent(type, mapid, difficulty, -1));
    +
            for(ResetTimeMapDiffInstances::const_iterator in_itr = mapDiffResetInstances.lower_bound(map_diff_pair);
                in_itr != mapDiffResetInstances.upper_bound(map_diff_pair); ++in_itr)
            {
    @@ -607,7 +609,8 @@ void InstanceSaveManager::_ResetOrWarnAll(uint32 mapid, Difficulty difficulty, b
        if (!mapEntry->Instanceable())
            return;
    
    -    uint64 now = (uint64)time(NULL);
    +    time_t now = time(NULL);
    +    time_t today = (now / DAY) * DAY;
    
        if (!warn)
        {
    @@ -636,10 +639,12 @@ void InstanceSaveManager::_ResetOrWarnAll(uint32 mapid, Difficulty difficulty, b
    
            // calculate the next reset time
            uint32 diff = sWorld.getConfig(CONFIG_INSTANCE_RESET_TIME_HOUR) * HOUR;
    -        uint32 period = mapDiff->resetTime * DAY;
    -        uint64 next_reset = ((now + timeLeft + MINUTE) / DAY * DAY) + period + diff;
    +        uint32 period = (mapDiff->resetTime / DAY * sWorld.getRate(RATE_INSTANCE_RESET_TIME)) * DAY;
    +        time_t next_reset = today + period + diff;
            // update it in the DB
    -        CharacterDatabase.PExecute("UPDATE instance_reset SET resettime = '"UI64FMTD"' WHERE mapid = '%d' AND difficulty = '%d'", next_reset, mapid, difficulty);
    +        CharacterDatabase.PExecute("UPDATE instance_reset SET resettime = '"UI64FMTD"' WHERE mapid = '%d' AND difficulty = '%d'", (uint64)next_reset, mapid, difficulty);
    +        SetResetTimeFor(mapid,difficulty,(uint64)next_reset);
    +        ScheduleReset(true, next_reset-3600, InstResetEvent(1, mapid, difficulty, -1));
        }
    
        // note: this isn't fast but it's meant to be executed very rarely

  5. crashed 3 times on creature with entry 10760, guid 94985

    and one with creature entry 3501, guid 52494

    both when LoadPath, i think it's called after movgen->Reset(*creature); that was added in 9400

    i think that's YTDB bug

    i'll try to clear this creature waypoints

    I don't think that it's crash related with DB...

  6. New crash =(

    Revision: * * 9272 6bb830150512fe7321945c1c47f7f9dde2012ebd
    Date 31:1:2010. Time 1:1 
    //=====================================================
    *** Hardware ***
    Processor: Intel(R) Pentium(R) 4 CPU 3.00GHz
    Number Of Processors: 2
    Physical Memory: 1570892 KB (Available: 811332 KB)
    Commit Charge Limit: 3520688 KB
    
    *** Operation System ***
    Microsoft Windows Server 2003 Standard Edition Service Pack 2 (Version 5.2, Build 3790)
    
    //=====================================================
    Exception code: C0000005 ACCESS_VIOLATION
    Fault address:  0043C918 01:0003B918 C:\\Server\\mangosd.exe
    
    Registers:
    EAX:715B0100
    EBX:72FFEE30
    ECX:00000000
    EDX:00000094
    ESI:00000000
    EDI:008EE430
    CS:EIP:001B:0043C918
    SS:ESP:0023:07FF35C0  EBP:07FF35EC
    DS:0023  ES:0023  FS:003B  GS:0000
    Flags:00010202
    
    Call stack:
    Address   Frame     Function      SourceFile
    0043C918  00000000  WorldObject::GetNearPoint2D+28
    0043CAB5  00000000  WorldObject::GetNearPoint+65
    00484371  00000000  Unit::ExitVehicle+221
    0047E92F  00000000  Unit::CleanupsBeforeDelete+F
    004924CC  00000000  Creature::~Creature+4C
    0073F47F  00000000  Pet::~Pet+CF
    0073F36F  00000000  Pet::`scalar deleting destructor'+F
    0051F7F6  00000000  Player::LoadPet+B6
    00885223  00000000  WorldSession::HandlePlayerLogin+D43
    008841A0  00000000  CharacterHandler::HandlePlayerLoginCallback+80
    00888A2D  00000000  MaNGOS::_IQueryCallback<MaNGOS::_Callback<CharacterHandler,QueryResult *,SqlQueryHolder *,void,void> >::Execute+2D
    008F0A28  00000000  SqlResultQueue::Update+28
    006154D5  00000000  World::UpdateResultQueue+15
    00613A92  00000000  World::Update+7A2
    004308AE  00000000  WorldRunnable::run+8E
    008EE449  00000000  ACE_Based::Thread::ThreadTask+19
    00B214D4  00000000  ?invoke@ACE_OS_Thread_Adapter@@UAEKXZ+74
    78543433  00000000  _endthreadex+44
    785434C7  00000000  _endthreadex+D8
    7C82482F  00000000  GetModuleHandleA+DF
    
    Call stack:
    Address   Frame     Function      SourceFile
    7C93860C  00000000  KiFastSystemCallRet+0
    7C821C8D  00000000  WaitForSingleObject+12
    
    Call stack:
    Address   Frame     Function      SourceFile
    7C93860C  00000000  KiFastSystemCallRet+0
    7C8024FD  00000000  Sleep+F
    008EE660  00000000  ACE_Based::Thread::Sleep+30
    008F4800  00000000  SqlDelayThread::run+20
    008EE449  00000000  ACE_Based::Thread::ThreadTask+19
    00B214D4  00000000  ?invoke@ACE_OS_Thread_Adapter@@UAEKXZ+74
    78543433  00000000  _endthreadex+44
    785434C7  00000000  _endthreadex+D8
    7C82482F  00000000  GetModuleHandleA+DF
    
    Call stack:
    Address   Frame     Function      SourceFile
    7C93860C  00000000  KiFastSystemCallRet+0
    7C8024FD  00000000  Sleep+F
    008EE660  00000000  ACE_Based::Thread::Sleep+30
    008F4800  00000000  SqlDelayThread::run+20
    008EE449  00000000  ACE_Based::Thread::ThreadTask+19
    00B214D4  00000000  ?invoke@ACE_OS_Thread_Adapter@@UAEKXZ+74
    78543433  00000000  _endthreadex+44
    785434C7  00000000  _endthreadex+D8
    7C82482F  00000000  GetModuleHandleA+DF
    
    Call stack:
    Address   Frame     Function      SourceFile
    7C93860C  00000000  KiFastSystemCallRet+0
    7C8024FD  00000000  Sleep+F
    008EE660  00000000  ACE_Based::Thread::Sleep+30
    008F4800  00000000  SqlDelayThread::run+20
    008EE449  00000000  ACE_Based::Thread::ThreadTask+19
    00B214D4  00000000  ?invoke@ACE_OS_Thread_Adapter@@UAEKXZ+74
    78543433  00000000  _endthreadex+44
    785434C7  00000000  _endthreadex+D8
    7C82482F  00000000  GetModuleHandleA+DF
    
    Call stack:
    Address   Frame     Function      SourceFile
    7C93860C  00000000  KiFastSystemCallRet+0
    07FF2618  00000000  0000:00000000 
    FF50D845  FFFFFFFF  0000:00000000 
    
    Call stack:
    Address   Frame     Function      SourceFile
    7C93860C  00000000  KiFastSystemCallRet+0
    7C80CF8C  00000000  ReadConsoleW+19B
    7C872904  00000000  ReadConsoleA+3B
    7C8018F4  00000000  ReadFile+A5
    78586A93  00000000  realloc+9F7
    78586F17  00000000  _read+C0
    7854EC7A  00000000  _filbuf+7D
    7854E319  00000000  fgets+109
    004107C8  00000000  CliRunnable::run+B8
    008EE449  00000000  ACE_Based::Thread::ThreadTask+19
    00B214D4  00000000  ?invoke@ACE_OS_Thread_Adapter@@UAEKXZ+74
    78543433  00000000  _endthreadex+44
    785434C7  00000000  _endthreadex+D8
    7C82482F  00000000  GetModuleHandleA+DF
    
    Call stack:
    Address   Frame     Function      SourceFile
    7C93860C  00000000  KiFastSystemCallRet+0
    7C8024FD  00000000  Sleep+F
    008EE660  00000000  ACE_Based::Thread::Sleep+30
    0042C42B  00000000  RARunnable::run+22B
    008EE449  00000000  ACE_Based::Thread::ThreadTask+19
    00B214D4  00000000  ?invoke@ACE_OS_Thread_Adapter@@UAEKXZ+74
    78543433  00000000  _endthreadex+44
    785434C7  00000000  _endthreadex+D8
    7C82482F  00000000  GetModuleHandleA+DF
    
    Call stack:
    Address   Frame     Function      SourceFile
    7C93860C  00000000  KiFastSystemCallRet+0
    7C8024FD  00000000  Sleep+F
    008EE660  00000000  ACE_Based::Thread::Sleep+30
    0042C00B  00000000  FreezeDetectorRunnable::run+7B
    008EE449  00000000  ACE_Based::Thread::ThreadTask+19
    00B214D4  00000000  ?invoke@ACE_OS_Thread_Adapter@@UAEKXZ+74
    78543433  00000000  _endthreadex+44
    785434C7  00000000  _endthreadex+D8
    7C82482F  00000000  GetModuleHandleA+DF
    
    Call stack:
    Address   Frame     Function      SourceFile
    7C93860C  00000000  KiFastSystemCallRet+0
    719B1A03  00000000  0001:00000A03 C:\\WINDOWS\\system32\\MSWSOCK.dll
    71A9283C  00000000  select+A1
    00AE4AE5  00000000  ?wait_for_multiple_events@?$ACE_Select_Reactor_T@V?$ACE_Reactor_Token_T@VACE_Token@@@@@@MAEHAAVACE_Select_Reactor_Handle_Set@@PAVACE_Time_Value@@@Z+115
    FFFFFFFF  FFFFFFFF  0000:00000000 
    
    Call stack:
    Address   Frame     Function      SourceFile
    7C93860C  00000000  KiFastSystemCallRet+0
    719B1A03  00000000  0001:00000A03 C:\\WINDOWS\\system32\\MSWSOCK.dll
    71A9283C  00000000  select+A1
    00AE4AE5  00000000  ?wait_for_multiple_events@?$ACE_Select_Reactor_T@V?$ACE_Reactor_Token_T@VACE_Token@@@@@@MAEHAAVACE_Select_Reactor_Handle_Set@@PAVACE_Time_Value@@@Z+115
    FFFFFFFF  FFFFFFFF  0000:00000000 
    ========================
    Local Variables And Parameters
    
    Call stack:
    Address   Frame     Function      SourceFile
    0043C918  00000000  WorldObject::GetNearPoint2D+28
       Local  <user defined> 'this'
       Local  <user defined> 'x'
       Local  <user defined> 'y'
    punting on symbol distance2d
    punting on symbol absAngle
    
    0043CAB5  00000000  WorldObject::GetNearPoint+65
       Local  <user defined> 'this'
       Local  <user defined> 'searcher'
       Local  <user defined> 'x'
       Local  <user defined> 'y'
       Local  <user defined> 'z'
    punting on symbol searcher_size
    punting on symbol distance2d
    punting on symbol absAngle
    punting on symbol first_los_conflict
       Local  <user defined> 'selector'
    punting on symbol angle
    punting on symbol first_y
    punting on symbol first_x
    
    00484371  00000000  Unit::ExitVehicle+221
    punting on symbol z
    punting on symbol v_size
    punting on symbol x
    punting on symbol y
    punting on symbol vehicleGUID
       Local  <user defined> 'this'
    
    0047E92F  00000000  Unit::CleanupsBeforeDelete+F
       Local  <user defined> 'this'
    
    004924CC  00000000  Creature::~Creature+4C
       Local  <user defined> 'this'
    
    0073F47F  00000000  Pet::~Pet+CF
       Local  <user defined> 'this'
    
    0073F36F  00000000  Pet::`scalar deleting destructor'+F
       Local  <user defined> 'this'
    
    0051F7F6  00000000  Player::LoadPet+B6
       Local  <user defined> 'pet'
       Local  <user defined> 'this'
    
    00885223  00000000  WorldSession::HandlePlayerLogin+D43
       Local  <user defined> 'this'
       Local  <user defined> 'holder'
       Local  <user defined> 'data'
       Local  <user defined> 'resultGuild'
    punting on symbol playerGuid
       Local  <user defined> 'pCurrChar'
       Local  <user defined> 'IP_str'
    
    008841A0  00000000  CharacterHandler::HandlePlayerLoginCallback+80
       Local  <user defined> 'this'
       Local  <user defined> '__formal'
       Local  <user defined> 'holder'
       Local  <user defined> 'session'
    
    00888A2D  00000000  MaNGOS::_IQueryCallback<MaNGOS::_Callback<CharacterHandler,QueryResult *,SqlQueryHolder *,void,void> >::Execute+2D
       Local  <user defined> 'this'
    
    008F0A28  00000000  SqlResultQueue::Update+28
       Local  <user defined> 'this'
       Local  <user defined> 'callback'
    
    006154D5  00000000  World::UpdateResultQueue+15
       Local  <user defined> 'this'
    
    00613A92  00000000  World::Update+7A2
    punting on symbol i
       Local  <user defined> 'this'
    punting on symbol diff
       Local  unsigned int 'autobroadcaston' = 1
    
    004308AE  00000000  WorldRunnable::run+8E
    punting on symbol diff
       Local  <user defined> 'this'
    punting on symbol realCurrTime
    punting on symbol realPrevTime
    punting on symbol prevSleepTime
    
    008EE449  00000000  ACE_Based::Thread::ThreadTask+19
    punting on symbol param
       Local  <user defined> '_task'
    
    00B214D4  00000000  ?invoke@ACE_OS_Thread_Adapter@@UAEKXZ+74
    
    78543433  00000000  _endthreadex+44
    
    785434C7  00000000  _endthreadex+D8
    
    7C82482F  00000000  GetModuleHandleA+DF
    
    ========================
    Global Variables

  7. Crash with update corpse =(

    Revision: * * 9266 6bb830150512fe7321945c1c47f7f9dde2012ebd
    Date 30:1:2010. Time 11:19 
    //=====================================================
    *** Hardware ***
    Processor: Intel(R) Pentium(R) 4 CPU 3.00GHz
    Number Of Processors: 2
    Physical Memory: 1570892 KB (Available: 1077588 KB)
    Commit Charge Limit: 3520688 KB
    
    *** Operation System ***
    Microsoft Windows Server 2003 Standard Edition Service Pack 2 (Version 5.2, Build 3790)
    
    //=====================================================
    Exception code: C0000005 ACCESS_VIOLATION
    Fault address:  008CCA69 01:004CBA69 C:\\Server\\mangosd.exe
    
    Registers:
    EAX:00000000
    EBX:73048770
    ECX:411EFF12
    EDX:00250000
    ESI:00000000
    EDI:008EE850
    CS:EIP:001B:008CCA69
    SS:ESP:0023:07FFA984  EBP:07FFFB04
    DS:0023  ES:0023  FS:003B  GS:0000
    Flags:00010246
    
    Call stack:
    Address   Frame     Function      SourceFile
    008CCA69  00000000  WorldSession::HandleCorpseMapPositionQuery+B9
    006031C0  00000000  WorldSession::Update+120
    00614F23  00000000  World::UpdateSessions+C3
    006136A1  00000000  World::Update+371
    004308E2  00000000  WorldRunnable::run+A2
    008EE869  00000000  ACE_Based::Thread::ThreadTask+19
    00B214D4  00000000  ?invoke@ACE_OS_Thread_Adapter@@UAEKXZ+74
    78543433  00000000  _endthreadex+44
    785434C7  00000000  _endthreadex+D8
    7C82482F  00000000  GetModuleHandleA+DF
    
    Call stack:
    Address   Frame     Function      SourceFile
    7C93860C  00000000  KiFastSystemCallRet+0
    7C821C8D  00000000  WaitForSingleObject+12
    
    Call stack:
    Address   Frame     Function      SourceFile
    7C93860C  00000000  KiFastSystemCallRet+0
    7C8024FD  00000000  Sleep+F
    008EEA80  00000000  ACE_Based::Thread::Sleep+30
    008F4C20  00000000  SqlDelayThread::run+20
    008EE869  00000000  ACE_Based::Thread::ThreadTask+19
    00B214D4  00000000  ?invoke@ACE_OS_Thread_Adapter@@UAEKXZ+74
    78543433  00000000  _endthreadex+44
    785434C7  00000000  _endthreadex+D8
    7C82482F  00000000  GetModuleHandleA+DF
    
    Call stack:
    Address   Frame     Function      SourceFile
    7C93860C  00000000  KiFastSystemCallRet+0
    7C8024FD  00000000  Sleep+F
    008EEA80  00000000  ACE_Based::Thread::Sleep+30
    008F4C20  00000000  SqlDelayThread::run+20
    008EE869  00000000  ACE_Based::Thread::ThreadTask+19
    00B214D4  00000000  ?invoke@ACE_OS_Thread_Adapter@@UAEKXZ+74
    78543433  00000000  _endthreadex+44
    785434C7  00000000  _endthreadex+D8
    7C82482F  00000000  GetModuleHandleA+DF
    
    Call stack:
    Address   Frame     Function      SourceFile
    7C93860C  00000000  KiFastSystemCallRet+0
    7C8024FD  00000000  Sleep+F
    008EEA80  00000000  ACE_Based::Thread::Sleep+30
    008F4C20  00000000  SqlDelayThread::run+20
    008EE869  00000000  ACE_Based::Thread::ThreadTask+19
    00B214D4  00000000  ?invoke@ACE_OS_Thread_Adapter@@UAEKXZ+74
    78543433  00000000  _endthreadex+44
    785434C7  00000000  _endthreadex+D8
    7C82482F  00000000  GetModuleHandleA+DF
    
    Call stack:
    Address   Frame     Function      SourceFile
    7C93860C  00000000  KiFastSystemCallRet+0
    07FF99DC  00000000  0000:00000000 
    FF50D845  FFFFFFFF  0000:00000000 
    
    Call stack:
    Address   Frame     Function      SourceFile
    7C93860C  00000000  KiFastSystemCallRet+0
    7C80CF8C  00000000  ReadConsoleW+19B
    7C872904  00000000  ReadConsoleA+3B
    7C8018F4  00000000  ReadFile+A5
    78586A93  00000000  realloc+9F7
    78586F17  00000000  _read+C0
    7854EC7A  00000000  _filbuf+7D
    7854E319  00000000  fgets+109
    004107DC  00000000  CliRunnable::run+CC
    008EE869  00000000  ACE_Based::Thread::ThreadTask+19
    00B214D4  00000000  ?invoke@ACE_OS_Thread_Adapter@@UAEKXZ+74
    78543433  00000000  _endthreadex+44
    785434C7  00000000  _endthreadex+D8
    7C82482F  00000000  GetModuleHandleA+DF
    
    Call stack:
    Address   Frame     Function      SourceFile
    7C93860C  00000000  KiFastSystemCallRet+0
    7C8024FD  00000000  Sleep+F
    008EEA80  00000000  ACE_Based::Thread::Sleep+30
    0042C44B  00000000  RARunnable::run+22B
    008EE869  00000000  ACE_Based::Thread::ThreadTask+19
    00B214D4  00000000  ?invoke@ACE_OS_Thread_Adapter@@UAEKXZ+74
    78543433  00000000  _endthreadex+44
    785434C7  00000000  _endthreadex+D8
    7C82482F  00000000  GetModuleHandleA+DF
    
    Call stack:
    Address   Frame     Function      SourceFile
    7C93860C  00000000  KiFastSystemCallRet+0
    7C8024FD  00000000  Sleep+F
    008EEA80  00000000  ACE_Based::Thread::Sleep+30
    0042C02B  00000000  FreezeDetectorRunnable::run+7B
    008EE869  00000000  ACE_Based::Thread::ThreadTask+19
    00B214D4  00000000  ?invoke@ACE_OS_Thread_Adapter@@UAEKXZ+74
    78543433  00000000  _endthreadex+44
    785434C7  00000000  _endthreadex+D8
    7C82482F  00000000  GetModuleHandleA+DF
    
    Call stack:
    Address   Frame     Function      SourceFile
    7C93860C  00000000  KiFastSystemCallRet+0
    719B1A03  00000000  0001:00000A03 C:\\WINDOWS\\system32\\MSWSOCK.dll
    71A9283C  00000000  select+A1
    00AE4AE5  00000000  ?wait_for_multiple_events@?$ACE_Select_Reactor_T@V?$ACE_Reactor_Token_T@VACE_Token@@@@@@MAEHAAVACE_Select_Reactor_Handle_Set@@PAVACE_Time_Value@@@Z+115
    FFFFFFFF  FFFFFFFF  0000:00000000 
    
    Call stack:
    Address   Frame     Function      SourceFile
    7C93860C  00000000  KiFastSystemCallRet+0
    719B1A03  00000000  0001:00000A03 C:\\WINDOWS\\system32\\MSWSOCK.dll
    71A9283C  00000000  select+A1
    00AE4AE5  00000000  ?wait_for_multiple_events@?$ACE_Select_Reactor_T@V?$ACE_Reactor_Token_T@VACE_Token@@@@@@MAEHAAVACE_Select_Reactor_Handle_Set@@PAVACE_Time_Value@@@Z+115
    FFFFFFFF  FFFFFFFF  0000:00000000 
    ========================
    Local Variables And Parameters
    
    Call stack:
    Address   Frame     Function      SourceFile
    008CCA69  00000000  WorldSession::HandleCorpseMapPositionQuery+B9
       Local  <user defined> 'this'
       Local  <user defined> 'recv_data'
    punting on symbol lowGuid
    punting on symbol cz
       Local  <user defined> 'data'
    punting on symbol cy
       Local  <user defined> 'map'
       Local  <user defined> 'corpse'
    punting on symbol cx
       Local  <user defined> 'player'
    
    006031C0  00000000  WorldSession::Update+120
       Local  <user defined> 'opHandle'
       Local  <user defined> 'this'
    punting on symbol __formal
       Local  <user defined> 'packet'
    punting on symbol currTime
    
    00614F23  00000000  World::UpdateSessions+C3
       Local  <user defined> 'next'
       Local  <user defined> 'itr'
       Local  <user defined> 'this'
    punting on symbol diff
       Local  <user defined> 'sess'
    
    006136A1  00000000  World::Update+371
    punting on symbol i
       Local  <user defined> 'this'
    punting on symbol diff
       Local  unsigned int 'autobroadcaston' = 1
    
    004308E2  00000000  WorldRunnable::run+A2
    punting on symbol diff
       Local  <user defined> 'this'
    punting on symbol realCurrTime
    punting on symbol realPrevTime
    punting on symbol prevSleepTime
    
    008EE869  00000000  ACE_Based::Thread::ThreadTask+19
    punting on symbol param
       Local  <user defined> '_task'
    
    00B214D4  00000000  ?invoke@ACE_OS_Thread_Adapter@@UAEKXZ+74
    
    78543433  00000000  _endthreadex+44
    
    785434C7  00000000  _endthreadex+D8
    
    7C82482F  00000000  GetModuleHandleA+DF
    
    ========================
    Global Variables

  8. Update for 3.3.0:

    -- sstaves for priest:
    DELETE FROM `playercreateinfo_spell` WHERE `class`=5 AND `Spell`=227;
    INSERT INTO `playercreateinfo_spell` (`race`,`class`,`Spell`,`Note`) VALUES
    (1,5,227,'Staves'),
    (3,5,227,'Staves'),
    (4,5,227,'Staves'),
    (5,5,227,'Staves'),
    (8,5,227,'Staves'),
    (10,5,227,'Staves'),
    (11,5,227,'Staves');
    
    -- Two-Handed Swords for warrior
    DELETE FROM `playercreateinfo_spell` WHERE `class`=1 AND `Spell`=202;
    INSERT INTO `playercreateinfo_spell` (`race`,`class`,`Spell`,`Note`) VALUES
    (1,1,202,'Two-Handed Swords'),
    (4,1,202,'Two-Handed Swords'),
    (5,1,202,'Two-Handed Swords'),
    (7,1,202,'Two-Handed Swords'),
    (8,1,202,'Two-Handed Swords'),
    (11,1,202,'Two-Handed Swords');
    
    -- Dual Wield for rogue:
    DELETE FROM `playercreateinfo_spell` WHERE `class`=4 AND `Spell`=674;
    INSERT INTO `playercreateinfo_spell` (`race`,`class`,`Spell`,`Note`) VALUES
    (1,4,674,'Dual Wield'),
    (2,4,674,'Dual Wield'),
    (3,4,674,'Dual Wield'),
    (4,4,674,'Dual Wield'),
    (5,4,674,'Dual Wield'),
    (7,4,674,'Dual Wield'),
    (8,4,674,'Dual Wield'),
    (10,4,674,'Dual Wield');
    
    -- Two-Hands Axe for hunter:
    DELETE FROM `playercreateinfo_spell` WHERE `class`=3 AND `Spell`=197;
    INSERT INTO `playercreateinfo_spell` (`race`,`class`,`Spell`,`Note`) VALUES
    (2,3,197,'Two-Handed Axes'),
    (3,3,197,'Two-Handed Axes'),
    (4,3,197,'Two-Handed Axes'),
    (6,3,197,'Two-Handed Axes'),
    (8,3,197,'Two-Handed Axes'),
    (10,3,197,'Two-Handed Axes'),
    (11,3,197,'Two-Handed Axes');
    
    -- staves for warlock:
    DELETE FROM `playercreateinfo_spell` WHERE `class`=9 AND `Spell`=227;
    INSERT INTO `playercreateinfo_spell` (`race`,`class`,`Spell`,`Note`) VALUES
    (1,9,227,'Staves'),
    (2,9,227,'Staves'),
    (5,9,227,'Staves'),
    (7,9,227,'Staves'),
    (10,9,227,'Staves');

  9. It's sad that you do not want to recognize the existence of the problem :(

    MaNGOS not developed only under Linux, why playerbot functioning normally only nix systems, and you do not want to recognize the existence of a problem when you even offered a solution (twice)... :(

    Note that the decision of Stillhard and yad02 essentially identical - they are checking

    if (pSource-> GetTypeId () == TYPEID_UNIT &&

    and

    if (pSource-> GetTypeId () == TYPEID_UNIT)

    Rather, in the old version in the file creature.cpp this check is simply not needed (I did not understand deeper).

    I do not think that if you take at least version yad02, this can break patch.

    It is very difficult to express all their thoughts on a non-native language so as to understand you correctly...

    If you do not trust my words, I can test the patch on a clean MaNGOS to Win system and give you CrashLog...

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use