zhenya`
-
Posts
23 -
Joined
-
Last visited
Never -
Donations
0.00 GBP
Content Type
Profiles
Bug Tracker
Wiki
Release Notes
Forums
Downloads
Blogs
Events
Posts posted by zhenya`
-
-
Hi,
I'm back at this interesting code with more knowledge about this thing than i had last time . I am stuck at the 0x05 opcode and its response. Can someone please help me? How the client generates the hash? What is this module specific hash? How can I get it? I'm completely stuck at this 0x05 and 0x04 opcode.
Thanks.
You can implement warden with 1 module or collect modules with keys. Function in every module different from another.
you can get new rc4 keys from client memory;) and on this way you can avoid ModuleSpecificHash(..)
-
ACE library not found! DiamondCore cannot be compiled? wtf?
-
warden 2 is comming ;( please close this thread, because it will outday at update 3.3.5
-
Bl1zz have movement anticheat for detecting speedhack and etc.
-
warden only detect injected dlls in wow.exe,lua,mod mpq,drivers .. if application direct write something in memory except some constants addresses which warden check, warden will not detect it..
-
MaNGOS::NearestAssistCreatureInCreatureRangeCheck u_check(this, getVictim(), radius);
change to
MaNGOS::NearestAssistCreatureInCreatureRangeCheck u_check(getVictim(), radius);
for 0-12
-
after restart server it would be fixed... i catch this with uptime > 2 days
-
Map::loaded (this=0x0
this=0x0 something bad happend..
-
Core: 7528
SD2: 936
UDB: 370
ACID: 27
Patch: Anti-cheat by CWN
crash_log_2009-03-28_08-04-32.log
Using host libthread_db library "/lib/libthread_db.so.1". Core was generated by `./bin/mangos-worldd -c etc/mangosd.conf'. Program terminated with signal 11, Segmentation fault. #0 Spell::cancel (this=0xa4f01b50) at ../../../src/game/Spell.cpp:2354 2354 if( ihit->missCondition == SPELL_MISS_NONE ) #0 Spell::cancel (this=0xa4f01b50) at ../../../src/game/Spell.cpp:2354 unit = (class Unit *) 0x0 #1 0x08454082 in EventProcessor::KillAllEvents (this=0x7c45678c, force=false) at ../../../src/framework/Utilities/EventProcessor.cpp:73 No locals.
try to change if( ihit->missCondition == SPELL_MISS_NONE ) to if( (*ihit).missCondition == SPELL_MISS_NONE )
-
up need to apply to git)
-
interesting crash
revision last 0.12
(gdb) where #0 0x00002b0841384fb5 in raise () from /lib/libc.so.6 #1 0x00002b0841386bc3 in abort () from /lib/libc.so.6 #2 0x00002b084137dfa9 in __assert_fail () from /lib/libc.so.6 #3 0x000000000052c3f2 in InstanceSave::SaveToDB (this=0x2b089bd3a860) at ../../../src/game/InstanceSaveMgr.cpp:162 #4 0x000000000052c718 in InstanceSaveManager::AddInstanceSave ( this=0x14ce180, mapId=<value optimized out>, instanceId=562, difficulty=1 '\\001', resetTime=1237348800, canReset=true, load=false) at ../../../src/game/InstanceSaveMgr.cpp:104 #5 0x000000000057f46e in InstanceMap::Add (this=0x2b0888444f00, player=0x2b086e1ed8d0) at ../../../src/game/Map.cpp:1727 #6 0x000000000073e27b in WorldSession::HandleMoveWorldportAckOpcode ( this=0x2b0868ebe870) at ../../../src/game/MovementHandler.cpp:82 #7 0x00000000006dc73b in WorldSession::Update (this=0x2b0868ebe870) at ../../../src/game/WorldSession.cpp:206 #8 0x00000000006d1dbf in World::UpdateSessions (this=0xb2a130, diff=163) at ../../../src/game/World.cpp:2631 #9 0x00000000006d5838 in World::Update (this=0xb2a130, diff=163) at ../../../src/game/World.cpp:1486 #10 0x00000000004d602d in WorldRunnable::run (this=<value optimized out>) at ../../../src/mangosd/WorldRunnable.cpp:60 #11 0x00002b084077aa68 in ZThread::ThreadImpl::Dispatch (parent=0xb06500, impl=0x2b084fe4c080, task=
(gdb) f 3 #3 0x000000000052c3f2 in InstanceSave::SaveToDB (this=0x2b089bd3a860) at ../../../src/game/InstanceSaveMgr.cpp:162 162 assert(map->IsDungeon()); (gdb) list 157 std::string data; 158 159 Map *map = MapManager::Instance().FindMap(m_instanceid, GetMapId()); 160 if(map) 161 { 162 assert(map->IsDungeon()); 163 InstanceData *iData = ((InstanceMap *)map)->GetInstanceData(); 164 if(iData && iData->Save()) 165 { 166 data = iData->Save(); (gdb) p m_instanceid $1 = 562 (gdb) p m_mapid $2 = 556
562 is arena mapid why it here?
Map *map = MapManager::Instance().FindMap(m_instanceid, GetMapId());
m_instanceid==instanceid?
why FindMap(m_instanceid, GetMapId());?
Map* MapManager::FindMap(uint32 mapid, uint32 instanceId)
may be Map *map = MapManager::Instance().FindMap(GetMapId(),m_instanceid);
-
chat gmtickets social auction mail
-
8) access to the world database perform all game server on their own
may fail. because how to synchronisation between game servers? :-D
-
its only for custom items..
-
this is part of mtmaps ;-)
-
btw fear have same effect with using AI()->AttackStart(victim);
mob sometimes freezes... and doesn`t do nothing..
-
17:47 <@Zor> No, not CORBA.
17:47 <@Zor> But ACE+TAO? Yes.
17:47 <@Zor> (TAO is a ACE-based CORBA framework)
-
With recent and planned .map files size descreasing (thanks to DiSlord for nice recent chnages in its and continue work in this part) server have _lot_ more free memory for work without hardware changes.
i think maps isn`t very slow part of project...
-
interesting..
-
database with struct for all types additional conditions is bigger than associative array... may be it`s good idea may be not.
-
more easy to understand code..
diff --git a/src/game/AchievementMgr.cpp b/src/game/AchievementMgr.cpp index fb66848..d6931d9 100644 --- a/src/game/AchievementMgr.cpp +++ b/src/game/AchievementMgr.cpp @@ -83,6 +83,11 @@ const CriteriaCastSpellRequirement AchievementGlobalMgr::m_criteriaCastSpellRequ {6662, 31261, 0, 0} }; +const uint32 AchievIdByClass[MAX_CLASSES] = +{ 0, 459, 465 , 462, 458, 464, 461, 467, 460, 463, 0, 466 }; +const uint32 AchievIdByRace[MAX_RACES] = +{ 0, 1408, 1410, 1407, 1409, 1413, 1411, 1404, 1412, 0, 1405, 1406 }; + AchievementMgr::AchievementMgr(Player *player) { m_player = player; @@ -600,29 +605,12 @@ bool AchievementMgr::IsCompletedCriteria(AchievementCriteriaEntry const* achieve switch(achievementCriteria->requiredType) { case ACHIEVEMENT_CRITERIA_TYPE_REACH_LEVEL: - if(achievement->ID == 467 && GetPlayer()->getClass() != CLASS_SHAMAN || - achievement->ID == 466 && GetPlayer()->getClass() != CLASS_DRUID || - achievement->ID == 465 && GetPlayer()->getClass() != CLASS_PALADIN || - achievement->ID == 464 && GetPlayer()->getClass() != CLASS_PRIEST || - achievement->ID == 463 && GetPlayer()->getClass() != CLASS_WARLOCK || - achievement->ID == 462 && GetPlayer()->getClass() != CLASS_HUNTER || - achievement->ID == 461 && GetPlayer()->getClass() != CLASS_DEATH_KNIGHT || - achievement->ID == 460 && GetPlayer()->getClass() != CLASS_MAGE || - achievement->ID == 459 && GetPlayer()->getClass() != CLASS_WARRIOR || - achievement->ID == 458 && GetPlayer()->getClass() != CLASS_ROGUE || - - achievement->ID == 1404 && GetPlayer()->getRace() != RACE_GNOME || - achievement->ID == 1405 && GetPlayer()->getRace() != RACE_BLOODELF || - achievement->ID == 1406 && GetPlayer()->getRace() != RACE_DRAENEI || - achievement->ID == 1407 && GetPlayer()->getRace() != RACE_DWARF || - achievement->ID == 1408 && GetPlayer()->getRace() != RACE_HUMAN || - achievement->ID == 1409 && GetPlayer()->getRace() != RACE_NIGHTELF || - achievement->ID == 1410 && GetPlayer()->getRace() != RACE_ORC || - achievement->ID == 1411 && GetPlayer()->getRace() != RACE_TAUREN || - achievement->ID == 1412 && GetPlayer()->getRace() != RACE_TROLL || - achievement->ID == 1413 && GetPlayer()->getRace() != RACE_UNDEAD_PLAYER ) - return false; - return progress->counter >= achievementCriteria->reach_level.level; + { + if (AchievIdByClass[GetPlayer()->getClass()] == achievement->ID || + AchievIdByRace[GetPlayer()->getRace()] == achievement->ID) + return progress->counter >= achievementCriteria->reach_level.level; + return false; + } case ACHIEVEMENT_CRITERIA_TYPE_BUY_BANK_SLOT: return progress->counter >= achievementCriteria->buy_bank_slot.numberOfSlots; case ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE:
-
very nice !)
[patch]Tricks of the Trade, Misdirection
in ... acceptedOld
Posted
where is a part for unapply? this is a bug which can produce boss and mobs freeze