Jump to content

Woweur

Members
  • Posts

    104
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by Woweur

  1. Random opcode isn't a big deal, in fact you can generate 80 % of SMSG automaticly (just parsing wow.asm). If we can have 100% of opcode for one build of 4.0.1, we can make a little tool to generate all opcode id with patern for example.

    No, the real problem is SMSG_REDIRECT_CLIENT, because we need to send this packet to client. We know how to decrypt this packet (the key to decrypt is in the client), but we don't know how to encrypt server-side ...

    The only way, for now to bypass this opcode is inject a dll ...

  2. Hi, i have a little "problem" when i compile MaNGOS on MacOSX with gcc (i have try with gcc 4.2, 4.3 & 4.5). In fact, the compilation of the project game is very slow (20-30 mins). On debian, i haven't that problem with the similary hardware.

    My hardware config :

    I7 2.66 GHZ

    SSD

    4 GO

    I don't understand because on debian, the compilation of the game project is 2-3 mins :/

    Thx.

  3. m_target NULL or corrupted in this crashes... you may be check ASSERT(m_target); but it hack.

    I think it crash not exist on cleaned sources

    m_target can't be null, because the function is call by m_target class. the pCaster pointer is delete, it's multi-thread problem i think (personaly, i have fix this problem with mutex, i can post my fix if you want...).

  4. This is generation for all creatures inside a grid to player position so also pathes of different length. (range dont matter it just gets all creatures in grid that way) Is this good/bad? i feel that 400 pathes in 60ms is acceptable for at least small servers ~500 players or such since not everyone will aggro and run away from mob at same time

    I think it's better to handle a calcule in thread for that.

  5. Ok, i have solved my problem : MaNGOS must be closed normaly for make a gmon.out.

    I have make a dump, with 2.5 k ppl in 1 hour uptime

    Flat profile:
    
    Each sample counts as 0.01 seconds.
     %   cumulative   self              self     total           
    time   seconds   seconds    calls   s/call   s/call  name    
     6.11     36.70    36.70 187541438     0.00     0.00  WorldSocket::Update()
     5.62     70.46    33.76  4432264     0.00     0.00  AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes, unsigned int, unsigned int, Unit*, unsigned int)
     3.50     91.51    21.05 26155543     0.00     0.00  Object::BuildValuesUpdate(unsigned char, ByteBuffer*, UpdateMask*, Player*) const
     2.94    109.17    17.66                             void VMAP::TreeNode::intersectRay<VMAP::IntersectionCallBack<VMAP::TriangleBox>, VMAP::TreeNode, VMAP::TriangleBox>(G3D::Ray const&, VMAP::IntersectionCallBack<VMAP::TriangleBox>&, float&, VMAP::NodeValueAccess<VMAP::TreeNode, VMAP::TriangleBox> const&, bool, bool) const
     2.78    125.90    16.74 651569430     0.00     0.00  AchievementMgr::IsCompletedCriteria(AchievementCriteriaEntry const*, AchievementEntry const*)
     2.60    141.53    15.63 353754301     0.00     0.00  Cell::Cell(CoordPair<1024u> const&)
     2.32    155.46    13.93 3125345327     0.00     0.00  Object::GetUInt32Value(unsigned short) const
     2.30    169.26    13.80  7294104     0.00     0.00  Object::_SetUpdateBits(UpdateMask*, Player*) const
     2.15    182.16    12.90 15979322     0.00     0.00  Unit::_UpdateSpells(unsigned int)
     2.11    194.82    12.66 196500869     0.00     0.00  MaNGOS::MessageDeliverer::Visit(GridRefManager<Player>&)
     2.04    207.07    12.25 2509259284     0.00     0.00  Map::getNGrid(unsigned int, unsigned int) const
     1.73    217.47    10.40  4230911     0.00     0.00  Unit::RemoveAurasWithInterruptFlags(unsigned int)
     1.62    227.20     9.73 103419779     0.00     0.00  WorldSocket::SendPacket(WorldPacket const&)
     1.42    235.71     8.51   757942     0.00     0.00  WorldObject::BuildUpdateData(std::tr1::unordered_map<Player*, UpdateData, std::tr1::hash<Player*>, std::equal_to<Player*>, std::allocator<std::Pair<Player* const, UpdateData> > >&)
     1.39    244.08     8.37     2283     0.00     0.01  AuctionHouseObject::BuildListAuctionItems(WorldPacket&, Player*, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int&, unsigned int&)
     1.26    251.67     7.60 813909499     0.00     0.00  std::vector<unsigned char, std::allocator<unsigned char> >::_M_fill_insert(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned long, unsigned char const&)
     1.23    259.09     7.42 203383608     0.00     0.00  Aura::Update(unsigned int)
     1.12    265.85     6.76 15303679     0.00     0.00  Unit::Update(unsigned int)
     1.10    272.47     6.62 47294526     0.00     0.00  MaNGOS::CreatureRelocationNotifier::Visit(GridRefManager<Creature>&)
     1.07    278.91     6.44    96557     0.00     0.00  Player::learnSkillRewardedSpells(unsigned int, unsigned int)
     1.06    285.30     6.39 14757682     0.00     0.00  void Map::Visit<MaNGOS::SingleThreaded<ACE_RW_Thread_Mutex>::Lock, MaNGOS::ObjectUpdater, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >(CellLock<MaNGOS::SingleThreaded<ACE_RW_Thread_Mutex>::Lock> const&, TypeContainerVisitor<MaNGOS::ObjectUpdater, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >&)
     1.04    291.53     6.23   126193     0.00     0.00  Map::ProcessRelocationNotifies(unsigned int)
     1.00    297.53     6.00  8236442     0.00     0.00  Player::UpdateVisibilityOf(WorldObject const*, WorldObject*)
     0.98    303.45     5.92 833478576     0.00     0.00  ByteBuffer::append(unsigned char const*, unsigned long)
     0.93    309.06     5.62 12979767     0.00     0.00  Creature::Update(unsigned int)
     0.89    314.42     5.36 908884950     0.00     0.00  Object::GetUInt64Value(unsigned short) const
     0.86    319.56     5.14 17174090     0.00     0.00  MotionMaster::UpdateMotion(unsigned int)
     0.80    324.38     4.82 21499661     0.00     0.00  MaNGOS::PlayerRelocationNotifier::Visit(GridRefManager<Creature>&)
     0.79    329.14     4.76 420155321     0.00     0.00  Map::EnsureGridLoaded(Cell const&)
     0.79    333.88     4.74   571598     0.00     0.00  Player::HandleStealthedUnitsDetection()
     0.77    338.52     4.64  9066965     0.00     0.00  AreaAura::Update(unsigned int)
     0.77    343.13     4.61 101780787     0.00     0.00  WorldSession::SendPacket(WorldPacket const*)
     0.76    347.71     4.58 56271794     0.00     0.00  Unit::isVisibleForOrDetect(Unit const*, WorldObject const*, bool, bool, bool) const
     0.74    352.17     4.47 537378309     0.00     0.00  WorldObject::GetMap() const
     0.73    356.55     4.38 46112045     0.00     0.00  Item::GetProto() const
     0.64    360.41     3.86 145769791     0.00     0.00  WorldObject::_IsWithinDist(WorldObject const*, float, bool) const
     0.64    364.24     3.83 236569711     0.00     0.00  Object::HasFlag(unsigned short, unsigned int) const
     0.63    368.03     3.79 15996998     0.00     0.00  void MaNGOS::ObjectUpdater::Visit<GameObject>(GridRefManager<GameObject>&)
     0.62    371.75     3.72 386199656     0.00     0.00  Map::loaded(CoordPair<64u> const&) const
     0.58    375.23     3.48   362832     0.00     0.00  std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, std::less<unsigned long>, std::allocator<unsigned long> >::_M_copy(std::_Rb_tree_node<unsigned long> const*, std::_Rb_tree_node<unsigned long>*)
     0.57    378.67     3.44 52508354     0.00     0.00  Unit::IsTriggeredAtSpellProcEvent(Unit*, Aura*, SpellEntry const*, unsigned int, unsigned int, WeaponAttackType, bool, bool, SpellProcEventEntry const*&)
     0.55    381.98     3.31 10298734     0.00     0.00  Aura::GetCaster() const
     0.53    385.19     3.21   321611     0.00     0.00  Map::Update(unsigned int const&)
     0.51    388.28     3.09   897295     0.00     0.00  Player::_SetCreateBits(UpdateMask*, Player*) const
     0.51    391.36     3.08     7565     0.00     0.00  SocialMgr::BroadcastToFriendListers(Player*, WorldPacket*)
     0.51    394.41     3.05 17842821     0.00     0.00  Object::_SetCreateBits(UpdateMask*, Player*) const
     0.48    397.31     2.90 413079430     0.00     0.00  NGrid<16u, Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeNull> > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > >, MaNGOS::SingleThreaded<Player> >::getGridType(unsigned int const&, unsigned int const&)
     0.47    400.13     2.82 10306213     0.00     0.00  void Map::Visit<RGuard<ACE_RW_Thread_Mutex, ACE_Thread_Mutex>, MaNGOS::PlayerRelocationNotifier, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >(CellLock<RGuard<ACE_RW_Thread_Mutex, ACE_Thread_Mutex> > const&, TypeContainerVisitor<MaNGOS::PlayerRelocationNotifier, TypeMapContainer<TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > > >&)
     0.45    402.86     2.73  5956818     0.00     0.00  WorldSocket::handle_input_missing_data()
     0.45    405.57     2.71 18570120     0.00     0.00  ObjectAccessor::FindPlayer(unsigned long)
     0.45    408.27     2.70  6038022     0.00     0.00  WorldSession::Update(unsigned int)
     0.43    410.85     2.58 24012139     0.00     0.00  void Player::UpdateVisibilityOf<Creature>(WorldObject const*, Creature*, UpdateData&, std::set<Unit*, std::less<Unit*>, std::allocator<Unit*> >&)
     0.43    413.41     2.56    40870     0.00     0.00  Player::BuildPlayerTalentsInfoData(WorldPacket*)
     0.39    415.76     2.35 428955740     0.00     0.00  Map::EnsureGridCreated(CoordPair<64u> const&)
     0.39    418.09     2.33 68997989     0.00     0.00  Map::GetCreature(unsigned long)
     0.38    420.38     2.29                             ReactorRunnable::svc()
     0.37    422.60     2.22 15950817     0.00     0.00  WorldSocket::handle_output(int)
     0.36    424.76     2.16 24461828     0.00     0.00  Object::GetByteValue(unsigned short, unsigned char) const
     0.34    426.82     2.06  2393369     0.00     0.00  Unit::SendAurasFor(Player*)
     0.34    428.88     2.06  4400761     0.00     0.00  WorldSession::HandleMovementOpcodes(WorldPacket&)
     0.34    430.92     2.04 47613342     0.00     0.00  SpellMgr::IsRankSpellDueToSpell(SpellEntry const*, unsigned int) const
     0.34    432.94     2.02  1195214     0.00     0.00  Unit::ProcDamageAndSpellFor(bool, Unit*, unsigned int, unsigned int, WeaponAttackType, SpellEntry const*, unsigned int)
     0.33    434.91     1.97 10727611     0.00     0.00  MaNGOS::PlayerRelocationNotifier::Visit(GridRefManager<Player>&)
     0.31    436.78     1.87 194302888     0.00     0.00  void Map::Visit<RGuard<ACE_RW_Thread_Mutex, ACE_Thread_Mutex>, MaNGOS::MessageDeliverer, TypeMapContainer<TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeNull> > > > >(CellLock<RGuard<ACE_RW_Thread_Mutex, ACE_Thread_Mutex> > const&, TypeContainerVisitor<MaNGOS::MessageDeliverer, TypeMapContainer<TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeNull> > > > >&)
     0.31    438.62     1.84 16957391     0.00     0.00  void Map::Visit<MaNGOS::SingleThreaded<ACE_RW_Thread_Mutex>::Lock, MaNGOS::ObjectUpdater, TypeMapContainer<TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeNull> > > > >(CellLock<MaNGOS::SingleThreaded<ACE_RW_Thread_Mutex>::Lock> const&, TypeContainerVisitor<MaNGOS::ObjectUpdater, TypeMapContainer<TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeNull> > > > >&)
     0.31    440.46     1.84  3585977     0.00     0.00  Player::Update(unsigned int)
     0.30    442.27     1.81      227     0.01     0.01  Player::resetTalents(bool)
     0.28    443.98     1.71  9416892     0.00     0.00  Unit::IsHostileTo(Unit const*) const
     0.28    445.68     1.70   821533     0.00     0.00  Player::addSpell(unsigned int, bool, bool, bool, bool)
     0.28    447.34     1.66 102601150     0.00     0.00  AuthCrypt::EncryptSend(unsigned char*, unsigned long)
     0.26    448.93     1.59 33838264     0.00     0.00  MaNGOS::ObjectMessageDeliverer::Visit(GridRefManager<Player>&)
     0.26    450.51     1.58 18685512     0.00     0.00  void Player::UpdateVisibilityOf<GameObject>(WorldObject const*, GameObject*, UpdateData&, std::set<Unit*, std::less<Unit*>, std::allocator<Unit*> >&)
     0.25    452.02     1.51 463655296     0.00     0.00  utf8::internal::utf_error utf8::internal::validate_next<char const*>(char const*&, char const*, unsigned int*)
     0.25    453.51     1.49  6395036     0.00     0.00  Map::GetCreatureOrPetOrVehicle(unsigned long)
     0.25    454.99     1.48   578224     0.00     0.00  Aura::ReapplyAffectedPassiveAuras(Unit*, bool)
     0.22    456.30     1.32  7811340     0.00     0.00  GameObject::Update(unsigned int)
     0.22    457.61     1.31 24400509     0.00     0.00  MaNGOS::CreatureRelocationNotifier::Visit(GridRefManager<Player>&)

  6. Hi, i'm currently work on a implantation of npc on transports.

    For now, we can spawn a npc on a transport with db support (new table, creature_transport).

    I have make a little support for pet on transport, but it's no perfect (some bug).

    We need a support for creature movement on transport (for fight on transport, for example).

    But the major problem is, we must work with transport position base, and not a general base.

    Patch link : http://filebin.ca/nwrgd/npc_transport.diff

    SQL link : http://filebin.ca/bwtuon/creature_transport.sql

  7. Program received signal SIGSEGV, Segmentation fault.
    [switching to Thread 0x43fc2950 (LWP 10381)]
    WorldSession::SendDoFlight (this=0x7f235c371dc0, mountDisplayId=0, path=506, 
       pathNode=0) at ../../../src/game/TaxiHandler.cpp:120
    120        if (GetPlayer()->hasUnitState(UNIT_STAT_DIED))
    #0  WorldSession::SendDoFlight (this=0x7f235c371dc0, mountDisplayId=0, 
       path=506, pathNode=0) at ../../../src/game/TaxiHandler.cpp:120
    #1  0x00000000006f19dd in Player::ActivateTaxiPathTo (this=0x7f23433201b0, 
       nodes=<value optimized out>, npc=0x0, spellid=32474)
       at ../../../src/game/Player.cpp:17926
    #2  0x00000000006f1b29 in Player::ActivateTaxiPathTo (this=0x7f23433201b0, 
       taxi_path_id=<value optimized out>, spellid=32474)
       at ../../../src/game/Player.cpp:17943
    #3  0x0000000000718634 in Aura::ApplyModifier (this=0x7f2343326490, 
       apply=false, Real=250) at ../../../src/game/SpellAuras.cpp:1015
    #4  0x00000000007ce1b8 in Unit::AddAura (this=0x7f23433201b0, 
       Aur=0x7f2343326490) at ../../../src/game/Unit.cpp:3987
    #5  0x00000000006b0b47 in Player::_LoadAuras (this=0x7f23433201b0, 
       result=0xca49590, timediff=2946) at ../../../src/game/Player.cpp:15488
    #6  0x00000000006f8356 in Player::LoadFromDB (this=0x7f23433201b0, 
       guid=421014, holder=0x7f233485f590) at ../../../src/game/Player.cpp:15195
    #7  0x0000000000880ff6 in WorldSession::HandlePlayerLogin (
       this=0x7f235c371dc0, holder=0x7f233485f590)
       at ../../../src/game/CharacterHandler.cpp:575
    #8  0x00000000008a11cf in SqlResultQueue::Update (this=0x4fd1280)
       at ../../../../src/shared/Database/SqlOperations.cpp:77
    #9  0x00000000007ec70c in World::Update (this=0x7f2368023580, diff=753)
       at ../../../src/game/World.cpp:2452
    #10 0x00000000004e92cc in WorldRunnable::run (this=<value optimized out>)
       at ../../../src/mangosd/WorldRunnable.cpp:60
    #11 0x00000000008a9ecc in ACE_Based::Thread::ThreadTask (param=0x0)
    

    This crash happen because, when WorldSession::SendDoFlight is call by Player::LoadFromDB by AddAura, a GetPlayer() is null pointer of Session class because SetPlayer(pCurChar) is call after Player::LoadFromDB.

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