Milk13
-
Posts
47 -
Joined
-
Last visited
Never -
Donations
0.00 GBP
Content Type
Profiles
Bug Tracker
Wiki
Release Notes
Forums
Downloads
Blogs
Events
Posts posted by Milk13
-
-
Why not.
But with database it's easier to use for mostly people and doesn't need to get datas from 2 differents way.
-
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.
-
Example of graph, that we can get :
-
I just made some changes.
Now the insert is made at the same time that the update of uptime table.Now in config, you can enable/disable the system (disbaled by default) instead of set the interval timer.
http://github.com/MiLk/mangos/commit/6e869ec4970e049f2f63c035dfa83775847e614c
-
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
-
The existing field is update each time and we can't have a historic to have graphs like this : http://www.milkshack.net/images/7-1286970935.png
If your server doesn't restart for 2 days, you have one value for 2 days.
With my system you've one value for each 5 minutes ( you can change the interval ).
It doesn't look like a thing that could be still made.
-
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.
-
Why don't you just make a webapp with soap wich can be use on all phones and computers ?
-
-
I begin the update here : http://gist.github.com/598779
I'll update the gist when I have more data.
Thx you to have pointed missing data.
-
I work on the data for the database, but I don't plan to update the db before the next week end.
I'll share my work soon.
-
What's new about this patch ?
-
-
-
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.
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:
-
-
-
I think that some people use this method : http://www.mmowned.com/forums/world-of-warcraft/emulator-servers/exploits-bugs/115337-wpe-way-duplicate-normal-soulbound-stack.html
-
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" ?
-
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);
}
-
The last crash return this : Unexpected call of Object::BuildUpdateData for object (TypeId: 4 Update fields: 1592 GUID: 3500695680 GUIDLow: 3500695680)
But there is no player with this GUID, the pointer is certainly corrupted.
-
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;
-
It can be this commit : http://github.com/mangos/mangos/commit/2fc3f595e88d9d9a9b25f44482fe74d22d01daec
that make the problem.
-
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.
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.
Spam of many CLOSE_WAIT
in OldBug reports
Posted
Since we've the probem, we've disabled our firewall.
I just enable it.
The initial change made is
And over there is floodmon : http://spamcleaner.org/en/misc/floodmon.html
Maybe I must change one of :