Jump to content

Recommended Posts

  • Replies 136
  • Created
  • Last Reply

Top Posters In This Topic

Posted

Been using cell 16 (default) for 1 month now. I can say that in many aspects, the performance and stability are better. For example, i do not know how many days the server can be online but for me it lasted 3 weeks 4 days until i had it put offline because i was going to move the computer. In all that time, players said the performance was better than before. So this really has an impact on the server as a whole.

Posted

Updated a patch to latest 8489+ rev. Also a bug with same visibility distance in dungeons/BG/Arenas as on continents got fixed :)

Check differences in constructor' code of classes Map::Map(), InstanceMap::InstanceMap() и BattleGroundMap::BattleGroundMap().

Posted

I tested the latest patch with the latest 0.12 branch (8496) and got tons of patch conflicts, I solved them so good as I could but two parts still report a error.

diff a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp    (rejected hunks)
@@ -6940,8 +6940,8 @@ void Aura::PeriodicDummyTick()

                        CellLock<GridReadGuard> cell_lock(cell, p);

-                        cell_lock->Visit(cell_lock, grid_object_checker,  *caster->GetMap());
-                        cell_lock->Visit(cell_lock, world_object_checker, *caster->GetMap());
+                        cell_lock->Visit(cell_lock, grid_object_checker,  *caster->GetMap(), *caster, radius);
+                        cell_lock->Visit(cell_lock, world_object_checker, *caster->GetMap(), *caster, radius);
                    }

                    if(targets.empty())

I found the CellLock part but it exist 2x in the 0.12 branch, one for AREA_AURA_FRIEND and one for AREA_AURA_ENEMY. It gives also tons of compile errors when I replace the parts so it looks like:

                    MaNGOS::AnyFriendlyUnitInObjectRangeCheck u_check(caster, owner, m_radius);
                   MaNGOS::UnitListSearcher<MaNGOS::AnyFriendlyUnitInObjectRangeCheck> searcher(targets, u_check);
                   TypeContainerVisitor<MaNGOS::UnitListSearcher<MaNGOS::AnyFriendlyUnitInObjectRangeCheck>, WorldTypeMapContainer > world_unit_searcher(searcher);
                   TypeContainerVisitor<MaNGOS::UnitListSearcher<MaNGOS::AnyFriendlyUnitInObjectRangeCheck>, GridTypeMapContainer >  grid_unit_searcher(searcher);
                   CellLock<GridReadGuard> cell_lock(cell, p);
[color=Red]                    //Problem - The part in the patch doesnt exist at all, I added it 2x here since it made sense somehow, doesnt compile cause of grid_object_checker / world_object_checker
                   cell_lock->Visit(cell_lock, grid_object_checker,  *caster->GetMap(), *caster, radius);
                   cell_lock->Visit(cell_lock, world_object_checker, *caster->GetMap(), *caster, radius);[/color]

The 2nd issue is related with that part:

diff a/src/game/Spell.cpp b/src/game/Spell.cpp    (rejected hunks)
@@ -1512,8 +1512,8 @@ void Spell::SetTargetMap(uint32 effIndex,uint32 targetMode,UnitList& TagUnitMap)
                    TypeContainerVisitor<MaNGOS::UnitListSearcher<MaNGOS::AnyAoETargetUnitInObjectRangeCheck>, GridTypeMapContainer>  grid_unit_searcher(searcher);
                    CellLock<GridReadGuard> cell_lock(cell, p);

-                    cell_lock->Visit(cell_lock, world_unit_searcher, *m_caster->GetMap());
-                    cell_lock->Visit(cell_lock, grid_unit_searcher, *m_caster->GetMap());
+                    cell_lock->Visit(cell_lock, world_unit_searcher, *m_caster->GetMap(), *pUnitTarget, max_range);
+                    cell_lock->Visit(cell_lock, grid_unit_searcher, *m_caster->GetMap(), *pUnitTarget, max_range);
                }
                if (tempUnitMap.empty())
                    break;

It got issues with pUnitTarget, it looks one 0.12 like that:

                MaNGOS::AnyAoETargetUnitInObjectRangeCheck u_check(m_caster, m_caster, max_range);
               MaNGOS::UnitListSearcher<MaNGOS::AnyAoETargetUnitInObjectRangeCheck> searcher(tempUnitMap, u_check);

               TypeContainerVisitor<MaNGOS::UnitListSearcher<MaNGOS::AnyAoETargetUnitInObjectRangeCheck>, WorldTypeMapContainer > world_unit_searcher(searcher);
               TypeContainerVisitor<MaNGOS::UnitListSearcher<MaNGOS::AnyAoETargetUnitInObjectRangeCheck>, GridTypeMapContainer >  grid_unit_searcher(searcher);

               CellLock<GridReadGuard> cell_lock(cell, p);
[color=Red]                //Problem - Compile error related with pUnitTarget
               cell_lock->Visit(cell_lock, world_unit_searcher, *m_caster->GetMap(), *pUnitTarget, max_range);
               cell_lock->Visit(cell_lock, grid_unit_searcher, *m_caster->GetMap(), *pUnitTarget, max_range);[/color]

I also noticed bigger differences in the Map.cpp, for example:

diff a/src/game/Map.cpp b/src/game/Map.cpp    (rejected hunks)
@@ -198,7 +199,8 @@ Map::Map(uint32 id, time_t expiry, uint32 InstanceId, uint8 SpawnMode, Map* _par
  : i_mapEntry (sMapStore.LookupEntry(id)), i_spawnMode(SpawnMode),
  i_id(id), i_InstanceId(InstanceId), m_unloadTimer(0),
  m_activeNonPlayersIter(m_activeNonPlayers.end()),
-  i_gridExpiry(expiry), m_parentMap(_parent ? _parent : this)
+  i_gridExpiry(expiry), m_parentMap(_parent ? _parent : this),
+  m_VisibleDistance(DEFAULT_VISIBILITY_DISTANCE)
{
    for(unsigned int idx=0; idx < MAX_NUMBER_OF_GRIDS; ++idx)
    {

I simply used the existing part instead so it looks like:

Map::Map(uint32 id, time_t expiry, uint32 InstanceId, uint8 SpawnMode)
 : i_mapEntry (sMapStore.LookupEntry(id)), i_spawnMode(SpawnMode),
 i_id(id), i_InstanceId(InstanceId), m_unloadTimer(0),
 m_activeNonPlayersIter(m_activeNonPlayers.end()),
 [color=Lime]//Problem - Here should be i_gridExpiry(expiry), m_parentMap(_parent ? _parent : this)
 i_gridExpiry(expiry),
 m_VisibleDistance(DEFAULT_VISIBILITY_DISTANCE)[/color]

That part compiled without problems.

The rest applied fine so far after resolving the patching issues, I look forward to see it on the 0.12 branch running. Thanks in advance for your help :)

Here is the patch for the 0.12 branch http://filebeam.com/62a97b2cb89f74d1f687f60b0b9eab0d (The two compile errors still needs to be solved)

Posted
crashuncle, please post those compile errors you get with 0.12 branch. There shouldn't be anything difficult to solve them.

9>SpellAuras.cpp
9>..\\..\\src\\game\\SpellAuras.cpp(675) : error C2065: 'grid_object_checker': nichtdeklarierter Bezeichner
9>..\\..\\src\\game\\SpellAuras.cpp(675) : error C2065: 'radius': nichtdeklarierter Bezeichner
9>..\\..\\src\\game\\SpellAuras.cpp(676) : error C2065: 'world_object_checker': nichtdeklarierter Bezeichner
9>..\\..\\src\\game\\SpellAuras.cpp(676) : error C2065: 'radius': nichtdeklarierter Bezeichner
9>..\\..\\src\\game\\SpellAuras.cpp(692) : error C2065: 'grid_object_checker': nichtdeklarierter Bezeichner
9>..\\..\\src\\game\\SpellAuras.cpp(692) : error C2065: 'radius': nichtdeklarierter Bezeichner
9>..\\..\\src\\game\\SpellAuras.cpp(693) : error C2065: 'world_object_checker': nichtdeklarierter Bezeichner
9>..\\..\\src\\game\\SpellAuras.cpp(693) : error C2065: 'radius': nichtdeklarierter Bezeichner

9>Spell.cpp
9>..\\..\\src\\game\\Spell.cpp(1173) : error C2065: 'pUnitTarget': nichtdeklarierter Bezeichner
9>..\\..\\src\\game\\Spell.cpp(1174) : error C2065: 'pUnitTarget': nichtdeklarierter Bezeichner

nichtdeklarierter Bezeichner = undeclared identifier

Posted
nichtdeklarierter Bezeichner = undeclared identifier

Could you provide through paste2.org those code places +/- 30 LOCs where you have errors? So I can tell how to make proper changes

Posted

Ok, I suggest everyone interested to test patch more intensively. I have to be sure that you don't have any performance/stability issues with this patch on recent revisions before applying it to GIT. Check if MAX_NUMBER_OF_CELLS 16 doesn't degrade stability of your servers. If it really does and hurts very badly then patch will be applied with MAX_NUMBER_OF_CELLS 8 for further investigation.

P.S. And thanks to crashuncle patch will get backported to 0.12 after I check changes on correctness :)

Posted

Patch applied in [8524] <- small lol with git :D Thanks everyone involved in tests. Don't forget to update your config files ;)

I wonder if my posts are invisible or something..?

Thanks, leak, will take a look into your job since patch will get applied to 0.12 too ;)

Guest
This topic is now closed to further replies.
×
×
  • 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