Jump to content

Oniryck

Members
  • Posts

    90
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by Oniryck

  1. I have a question, what is the difference between InitWorldPvPArea() (witch is always true and not overridden) and InitOutdoorPvPArea() (which do not seem to be used in your patch, even if you create it) ?

    Edit: As I suspected, those two functions should have the same name, just an error in the patch. Again, great work, congratulations!

  2. Character should stay ingame for 20 seconds after a forced disconnect (matches the logout timer)

    Exactly, and I guess, if he reconnects, get his characters in the state it was left in during that time (killed, for example)

  3. unit_flags come from client, you do not 'make them up'

    npc_flag then ? or whatever is possible to set up from the database... Unit state can't be applied outside of a C++ script if I'm correct, that's what bothering me.

  4. I have a question : why working with UNIT_STAT_IGNORE_PATHFINDING, instead of a unit flag ? A unit flag would allow us to choose from the database unit flag if we like or not a specific creature to avoid using MMAPS ? Is there a particular reason for using a "state" instead of a "flag" ?

  5. Hi, with one [s1232] I've got this crash :

    [New Thread 18195]
    [New Thread 18196]
    [New Thread 18197]
    [New Thread 18198]
    [New Thread 18185]
    [New Thread 18182]
    [New Thread 18186]
    [New Thread 18184]
    [New Thread 18199]
    Core was generated by `./mangosd'.
    Program terminated with signal 11, Segmentation fault.
    #0  0x00007f4df2c2bec2 in ItemQuestAccept (pPlayer=0xb108000, pItem=0x7f4de14d9440, pQuest=0x7f4df89cd300) at /mg/src/bindings/ScriptDev2/ScriptMgr.cpp:379
       in /mg/src/bindings/ScriptDev2/ScriptMgr.cpp
    #0  0x00007f4df2c2bec2 in ItemQuestAccept (pPlayer=0xb108000, pItem=0x7f4de14d9440, pQuest=0x7f4df89cd300) at /mg/src/bindings/ScriptDev2/ScriptMgr.cpp:379
           tmpscript = 0x40faae8
    #1  0x00000000009b55f0 in ScriptMgr::OnQuestAccept (this=0x7f4e069efa00, pPlayer=0xb108000, pItem=0x7f4de14d9440, pQuest=0x7f4df89cd300) at /mg/src/game/ScriptMgr.cpp:1032
    No locals.
    #2  0x0000000000b67d2a in WorldSession::HandleQuestgiverAcceptQuestOpcode (this=0x7f4df1271a80, recv_data=...) at /mg/src/game/QuestHandler.cpp:189
           guid = {m_guid = 4611686018470399291}
           quest = 136
           pObject = 0x7f4de14d9440
           qInfo = 0x7f4df89cd300
    #3  0x00000000008c110e in WorldSession::ExecuteOpcode (this=0x7f4df1271a80, opHandle=..., packet=0x7f4de0160bb0) at /mg/src/game/WorldSession.cpp:693
    No locals.
    #4  0x00000000008bf38e in WorldSession::Update (this=0x7f4df1271a80, updater=...) at /mg/src/game/WorldSession.cpp:225
           opHandle = @0x10e1940
           packet = 0x7f4de0160bb0
    #5  0x00000000007c8b5c in World::UpdateSessions (this=0x7f4e069f7900, diff=27) at /mg/src/game/World.cpp:2310
           pSession = 0x7f4df1271a80
           updater = {<PacketFilter> = {_vptr.PacketFilter = 0xcda230, m_pSession = 0x7f4df1271a80}, <No data fields>}
           itr = {<std::tr1::__detail::_Hashtable_iterator_base<std::pair<unsigned int const, WorldSession*>, false>> = {_M_cur_node = 0x7f4de7da2620, _M_cur_bucket = 0x7f4deaa41330}, <No data fields>}
           next = {<std::tr1::__detail::_Hashtable_iterator_base<std::pair<unsigned int const, WorldSession*>, false>> = {_M_cur_node = 0x7f4de3188d00, _M_cur_bucket = 0x7f4deaa41330}, <No data fields>}
           sess = 0x7f4e069f7900
    #6  0x00000000007c7481 in World::Update (this=0x7f4e069f7900, diff=27) at /mg/src/game/World.cpp:1860
    No locals.
    #7  0x00000000007b7518 in WorldRunnable::run (this=0x7f4df30ed000) at /mg/src/mangosd/WorldRunnable.cpp:60
           diff = 27
           realCurrTime = 5158827
           realPrevTime = 5158800
           prevSleepTime = 26
    #8  0x0000000000c190fd in ACE_Based::Thread::ThreadTask (param=0x7f4df30ed000) at /mg/src/shared/Threading.cpp:187
           _task = 0x7f4df30ed000
    #9  0x00007f4e04874971 in start_thread () from /lib/libpthread.so.0
    No symbol table info available.
    #10 0x00007f4e045d092d in clone () from /lib/libc.so.6
    No symbol table info available.
    #11 0x0000000000000000 in ?? ()
    No symbol table info available.
    

    the line in scriptmgr.cpp being:

    MANGOS_DLL_EXPORT
    bool ItemQuestAccept(Player* pPlayer, Item* pItem, Quest const* pQuest)
    {
       Script *tmpscript = m_scripts[pItem->GetProto()->ScriptId];
    
       if (!tmpscript || !tmpscript->pQuestAcceptItem)
           return false;
    
       pPlayer->PlayerTalkClass->ClearMenus();
    
       return tmpscript->pQuestAcceptItem(pPlayer, pItem, pQuest);
    }

    This code is from SD2 bug since only my core was modified since I have this crash, I think it's a core issue, so I posted here for help.

    I've seen there was some problem with quest start, so I guess this is a problem from backporting ?

    Anyway I'm probably wrong so if it's a SD2 compatibility with mangos One issue, sorry ^^'

  6. Hello,

    For some time, something have been bothering me while in PvP : player that close their game by alt+f4 when they don't want to die.

    This causes the player to immediately be disconnected and disappear from the world. That's a problem because other player can't kill him and get honor and many people exploit that not to give honor to their opponents, plus that not the blizzlike behavior : on official realm, alt+f4 is handle the same way a connection loss is handled by MaNGOS now (i.e. the player stays in the world, idle, and can be killed, to see this just connect to the world and unplug your connection, you'll se that you'll be effectively disconnected several seconds after in the console)

    I tried to duplicate the 'connection loss' behavior while someone uses alt+f4 by myself be was unable to do it.

  7. Hello,

    First, sorry for opening a new thread for what my be just something caused by my ignorance, but since a very long time, I'm have a crash caused by this assert :

            const uint64& GetUInt64Value( uint16 index ) const
    {
       MANGOS_ASSERT( index + 1 < m_valuesCount || PrintIndexError( index , false) );
       return *((uint64*)&(m_uint32Values[ index ]));
    }

    Here what it looks like :

    [New Thread 25845]
    [New Thread 25846]
    [New Thread 25847]
    [New Thread 25848]
    [New Thread 25828]
    [New Thread 25829]
    [New Thread 25830]
    [New Thread 25822]
    [New Thread 25849]
    Core was generated by `./mangosd'.
    Program terminated with signal 6, Aborted.
    #0  0x00007ff0d46caba5 in raise () from /lib/libc.so.6
    #0  0x00007ff0d46caba5 in raise () from /lib/libc.so.6
    No symbol table info available.
    #1  0x00007ff0d46ce6b0 in abort () from /lib/libc.so.6
    No symbol table info available.
    #2  0x00007ff0d46c3a71 in __assert_fail () from /lib/libc.so.6
    No symbol table info available.
    #3  0x0000000000827a21 in Object::GetUInt64Value (this=0x7ff0a300e080, index=0) at /mg/src/game/Object.h:182
           __FUNCTION__ = "GetUInt64Value"
           __PRETTY_FUNCTION__ = "const uint64& Object::GetUInt64Value(uint16) const"
    #4  0x0000000000827ce8 in Object::GetGuidValue (this=0x7ff0a300e080, index=0) at /mg/src/game/Object.h:206
    No locals.
    #5  0x0000000000827765 in Object::GetObjectGuid (this=0x7ff0a300e080) at /mg/src/game/Object.h:134
    No locals.
    #6  0x00000000008277a0 in Object::GetGUIDLow (this=0x7ff0a300e080) at /mg/src/game/Object.h:136
    No locals.
    #7  0x0000000000816496 in Player::_SaveInventory (this=0x12458000) at /mg/src/game/Player.cpp:16269
           item = 0x7ff0a300e080
           test = 0x7ff0ac87d980
           i = 0
           error = false
           insertInventory = {m_nIndex = 12, m_nArguments = 5, m_bInitialized = true}
           updateInventory = {m_nIndex = 21, m_nArguments = 5, m_bInitialized = true}
           deleteInventory = {m_nIndex = 41, m_nArguments = 1, m_bInitialized = true}
    #8  0x00000000008154db in Player::SaveToDB (this=0x12458000) at /mg/src/game/Player.cpp:16067
           delChar = {m_nIndex = 23, m_nArguments = 1, m_bInitialized = true}
           stmt = {m_index = {m_nIndex = 23, m_nArguments = 1, m_bInitialized = true}, m_pDB = 0x10e4560, m_pParams = 0x0}
           ss = <incomplete type>
           insChar = {m_nIndex = 24, m_nArguments = 60, m_bInitialized = true}
           uberInsert = {m_index = {m_nIndex = 24, m_nArguments = 60, m_bInitialized = true}, m_pDB = 0x10e4560, m_pParams = 0x0}
    #9  0x00000000007e43d8 in Player::Update (this=0x12458000, update_diff=100, p_time=100) at /mg/src/game/Player.cpp:1377
           now = 1303566626
           pet = 0x7ff0c30acb10
    #10 0x00000000008db06f in WorldObject::UpdateHelper::Update (this=0x7ff0c30acbd0, time_diff=100) at /mg/src/game/Object.h:415
    No locals.
    #11 0x000000000090c066 in Map::Update (this=0x7ff0bc7a8000, t_diff=@0x7ff0c30acd8c) at /mg/src/game/Map.cpp:462
           helper = {m_obj = 0x12458000}
           plr = 0x12458000
           updater = {i_timeDiff = 100}
           grid_object_update = {i_visitor = @0x7ff0c30accc0}
           __FUNCTION__ = "Update"
           __PRETTY_FUNCTION__ = "virtual void Map::Update(const uint32&)"
           world_object_update = {i_visitor = @0x7ff0c30accc0}
    #12 0x0000000000910cc3 in DungeonMap::Update (this=0x7ff0bc7a8000, t_diff=@0x7ff0c30acd8c) at /mg/src/game/Map.cpp:1443
    No locals.
    #13 0x00000000009b7c87 in MapManager::Update (this=0x7ff0c285b200, diff=28) at /mg/src/game/MapManager.cpp:262
           iter = {_M_node = 0x7ff0b2d21930}
           iter = {_M_node = 0xcc46b0}
    #14 0x00000000007c4138 in World::Update (this=0x7ff0d6ba3900, diff=28) at /mg/src/game/World.cpp:1901
    No locals.
    #15 0x00000000007b3f44 in WorldRunnable::run (this=0x7ff0c28756e0) at /mg/src/mangosd/WorldRunnable.cpp:60
           diff = 28
           realCurrTime = 82660059
           realPrevTime = 82660031
           prevSleepTime = 28
    #16 0x0000000000c1434d in ACE_Based::Thread::ThreadTask (param=0x7ff0c28756e0) at /mg/src/shared/Threading.cpp:187
           _task = 0x7ff0c28756e0
    #17 0x00007ff0d4a21971 in start_thread () from /lib/libpthread.so.0
    No symbol table info available.
    #18 0x00007ff0d477d92d in clone () from /lib/libc.so.6
    No symbol table info available.
    #19 0x0000000000000000 in ?? ()
    No symbol table info available.
    

    This crash appears approx. once every week, and I can't explain why, but it seems weird, because for instance the above function :

            const uint32& GetUInt32Value( uint16 index ) const
    {
       MANGOS_ASSERT( index < m_valuesCount || PrintIndexError( index , false) );
       return m_uint32Values[ index ];
    }

    uses "index < m_valuesCount" instead of "index + 1 < m_valuesCount".

    I guess that's normal, but if someone could explain me why, maybe it would help me find the source of those crashes. Thank you ! ;)

  8. Hello,

    I don't know if this problem is only for me, but I had many crashes since the modification in this file in recent commit, because all creature don't necessarily have AI. So maybe it's useless but I post my patch to fix this problem in case anybody have the same issue :

    my patch:

    diff --git a/src/game/HomeMovementGenerator.cpp b/src/game/HomeMovementGenerator.cpp
    index b53f2c3..38ea935 100644
    --- a/src/game/HomeMovementGenerator.cpp
    +++ b/src/game/HomeMovementGenerator.cpp
    @@ -99,8 +99,9 @@ void HomeMovementGenerator<Creature>::Finalize(Creature& owner)
    
            if (owner.GetTemporaryFactionFlags() & TEMPFACTION_RESTORE_REACH_HOME)
                owner.ClearTemporaryFaction();
    
            owner.LoadCreatureAddon(true);
    -        owner.AI()->JustReachedHome();
    +        if(owner.AI())
    +            owner.AI()->JustReachedHome();
        }
    }

  9. Mangos One [s1094]

    patch : tested with none

    When in raid, with several players around (even with 2, I tested with two game instance opened) when someone receive a confusion spell (Razorgore's conflagration for exemple), the game randomly freezes, sometime so much it's practically stuck.

    I got this message in the log:

    2011-04-11 19:28:15 Player Art (Guid: 32546) move confused
    2011-04-11 19:28:15 Holder of spell 23023 now is in use
    2011-04-11 19:28:15 WORLD: Received CMSG_MOVE_SPLINE_DONE
    2011-04-11 19:28:15 WORLD: Recvd CMSG_MOVE_NOT_ACTIVE_MOVER
    2011-04-11 19:28:15 STORAGE_SIZE: 37
    22 7F 00 00 00 00 00 00 | 00 00 00 00 00 B4 9F 87 
    00 5C 93 ED C5 5C 27 84 | C4 19 14 CC 43 36 CD 07 
    40 00 00 00 00 
    2011-04-11 19:28:15 ERROR:SESSION: opcode CMSG_MOVE_NOT_ACTIVE_MOVER (0x02D1) have unprocessed tail data (read stop at 32 from 37)

    I don't know if someone can help me with this :S

  10. Hello,

    I noticed that some spells, like 23341 that apply SPELL_AURA_MOD_DAMAGE_TAKEN are subject to coeff calculation that diminish their effet. But since they directly add damage I don't think they should be coefficiented. Sure, we can still create entries with coeff "1" in spell_bonus_data but I wonder if it wouldn't be a good idea to inser this exception in the code, what do you think ? Is there cases that I didn't thought about ?

×
×
  • 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