Jump to content

Milk13

Members
  • Posts

    47
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Posts posted by Milk13

  1. Since we've the probem, we've disabled our firewall.

    I just enable it.

    The initial change made is

    echo "1" > /proc/sys/net/ipv4/tcp_syncookies

           echo "256" > /proc/sys/net/ipv4/tcp_max_syn_backlog

           echo "3" > /proc/sys/net/ipv4/tcp_synack_retries

           echo "0" > /proc/sys/net/ipv4/ip_dynaddr

           echo "30" > /proc/sys/net/ipv4/tcp_fin_timeout

           echo "1" > /proc/sys/net/ipv4/netfilter/ip_conntrack_log_invalid

           echo 0 > /proc/sys/net/ipv4/tcp_window_scaling

       echo 0 > /proc/sys/net/ipv4/tcp_timestamps

       echo 0 > /proc/sys/net/ipv4/tcp_sack

           for f in /proc/sys/net/ipv4/conf/*/log_martians; do

                     echo 1 > $f

           done

           for f in /proc/sys/net/ipv4/conf/*/accept_source_route; do

                     echo 0 > $f

           done

           for f in /proc/sys/net/ipv4/conf/*/accept_redirects; do

                     echo 0 > $f

           done

    And over there is floodmon : http://spamcleaner.org/en/misc/floodmon.html

    Maybe I must change one of :

    /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_close_wait => 60

    /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_close => 10

    /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_fin_wait => 120

    /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_time_wait => 120

  2. It's for people that don't know how to work crontab or are on windows.

    And less work than with a cron script ( depending of your cronscript ).

    If you do a select query each time on your full character table, it can slow down your database and decrease performance.

    With this patch, there is less useless query.

    But if you have a good cron script, it can be a solution too.

  3. i think fregah meant that you should make an extra field into the uptime table and could change with config setting if you'll insert all X minutes the current count (max count since last ?) or just update as before....

    so you don't need another table and more flexible ...

    just one tipp use the [ u r l ][ / u r l ] tags :-)

    We can't use uptime table because, with the actual system, it update the row, and remove the last value.

    And insert a new row in uptime table at each time is stupid.

    It's not "live" data, it's to have a collection of values to make graphs or tables.

    For the url tag, I thought that's automatic, but in fact, no :)

  4. What does this patch do ?

    It saves in DB the number of players ingame at a particulary time, each X minutes.

    Each save create a new row in Database.

    You can use this datas to make graphs.

    It use a new table in realmd DB.

    It was actually for mangos-0.12, but we can update it for master without difficulty.

    The first commit is here : http://github.com/MiLk/mangos/commit/74503f3df92f692f65f91b1ca2816f74016382e8

    Branch here : http://github.com/MiLk/mangos/commits/online_players

    Thanks for your feedback.

  5. What features does the patch add?

    It allow the losers of the battleground "Eye of the Storm" to win a mark.

    For which repository revision was the patch created?

    mangos-0.12 [s0035]

    Who has been writing this patch? Please include either forum user names or email addresses.

    MiLk <[email protected]>

    diff --git a/src/game/BattleGround.cpp b/src/game/BattleGround.cpp
    index 51ac442..965edef 100644
    --- a/src/game/BattleGround.cpp
    +++ b/src/game/BattleGround.cpp
    @@ -623,7 +623,6 @@ void BattleGround::RewardMark(Player *plr,uint32 count)
                    RewardSpellCast(plr,SPELL_AB_MARK_LOSER);
                break;
            case BATTLEGROUND_EY:
    -            if (count == ITEM_WINNER_COUNT)
                    RewardItem(plr,ITEM_EY_MARK_OF_HONOR,count);
                break;
            default:
    

  6. The crash is still here, with your commit, and my last patch. It's the same. I've not try my first idea.

    Maybe, the crash can come from the gcc flags that I use : "-march=native -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O3 -m64 -pipe -msse4.2 -DFD_SETSIZE=4096 -fno-delete-null-pointer-checks -fno-strength-reduce -fno-strict-aliasing -frename-registers -pipe" ?

  7. I think this patch is better to check the integrity of the pointer :

    diff --git a/src/game/Map.cpp b/src/game/Map.cpp

    index 6d54b79..e73ad8d 100644

    --- a/src/game/Map.cpp

    +++ b/src/game/Map.cpp

    @@ -3398,6 +3398,11 @@ void Map::SendObjectUpdates()

    i_objectsToClientUpdate.erase(i_objectsToClientUpdate.begin());

    + if(obj->GetTypeId() == TYPEID_PLAYER && !sObjectMgr.GetPlayer(obj->GetGUIDLow()))

    + {

    + sLog.outError("Map::SendObjectUpdates : no player found");

    + continue;

    + }

    obj->BuildUpdateData(update_players);

    }

  8. I will try, thx.

    If it doesn't work, I will try this patch :

    diff --git a/src/game/Map.cpp b/src/game/Map.cpp

    index 6d54b79..5efb7ff 100644

    --- a/src/game/Map.cpp

    +++ b/src/game/Map.cpp

    @@ -3398,7 +3398,19 @@ void Map::SendObjectUpdates()

    i_objectsToClientUpdate.erase(i_objectsToClientUpdate.begin());

    if (!obj)

    continue;

    - obj->BuildUpdateData(update_players);

    +switch(obj->GetTypeId())

    +{

    +case TYPEID_ITEM:

    +case TYPEID_CONTAINER:

    + ((Item*)obj)->BuildUpdateData(update_players); break;

    +case TYPEID_UNIT:

    +case TYPEID_PLAYER:

    +case TYPEID_GAMEOBJECT:

    +case TYPEID_DYNAMICOBJECT:

    +case TYPEID_CORPSE:

    + ((WorldObject*)obj)->BuildUpdateData(update_players); break;

    +default: continue;

    +}

    }

    WorldPacket packet; // here we allocate a std::vector with a size of 0x10000

    diff --git a/src/game/Object.cpp b/src/game/Object.cpp

    index b9b5ee7..107f9c5 100644

    --- a/src/game/Object.cpp

    +++ b/src/game/Object.cpp

    @@ -1047,11 +1047,11 @@ void Object::RemoveFromClientUpdateList()

    ASSERT(false);

    }

    -void Object::BuildUpdateData( UpdateDataMapType& update_players)

    +/*void Object::BuildUpdateData( UpdateDataMapType& update_players)

    {

    sLog.outError("Unexpected call of Object::BuildUpdateData for object (TypeId: %u Update fields: %u GUID: %u GUIDLow: %u)",GetTypeId(), m_valuesCount, GetGUID(), GetGUIDLow());

    ASSERT(false);

    -}

    +}*/

    WorldObject::WorldObject()

    : m_isActiveObject(false), m_currMap(NULL), m_zoneScript(NULL), m_mapId(0), m_InstanceId(0),

    diff --git a/src/game/Object.h b/src/game/Object.h

    index f966e69..74238a2 100644

    --- a/src/game/Object.h

    +++ b/src/game/Object.h

    @@ -129,7 +129,7 @@ class MANGOS_DLL_SPEC Object

    // must be overwrite in appropriate subclasses (WorldObject, Item currently), or will crash

    virtual void AddToClientUpdateList();

    virtual void RemoveFromClientUpdateList();

    - virtual void BuildUpdateData(UpdateDataMapType& update_players);

    + //virtual void BuildUpdateData(UpdateDataMapType& update_players);

    void BuildValuesUpdateBlockForPlayer( UpdateData *data, Player *target ) const;

    void BuildOutOfRangeUpdateBlock( UpdateData *data ) const;

  9. Hi,

    I updated my core 3 days ago, and I get many crashs, about one crash / hour.

    These report are the last, that I got.

    http://pastebin.com/zer19UdG

    http://pastebin.com/xfqfgDtj

    http://pastebin.com/Yub7pQwG

    http://pastebin.com/usDqSZCx

    http://pastebin.com/CRA7Lk4k

    The problem is that the function void Map::SendObjectUpdates()

    call the function obj->BuildUpdateData(update_players);

    but obj is not detect as an WorldObject, but as a simple Object,

    but the core said "Unexpected call of Object::BuildUpdateData for object (TypeId: 4 Update fields: 1592)"

    Thx to help me.

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