

KAPATEJIb
Members-
Posts
436 -
Joined
-
Last visited
Never -
Donations
0.00 GBP
Content Type
Bug Tracker
Wiki
Release Notes
Forums
Downloads
Blogs
Events
Everything posted by KAPATEJIb
-
I think this isn't a source of problem, because i also use a patch for fixing downranking spells that have only one rank. http://paste2.org/p/477024
-
I've already tried a couple of different ways (adding it to DB, adding to the core+db, adding it to core), only hardcoding gives me a right result. I also upload a new version of the patch (v4). Added missing part of code and fixed a bug with spell crits caused by my patch (:
-
What bug does the patch fix? What features does the patch add? Fixed removing fire shocks by Lava Burst (according 3.2.x patches changes) For which repository revision was the patch created? 8765+ Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. Didn't find any Who has been writing this patch? Please include either forum user names or email addresses. Me diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index ac5f15d..19ae6ba 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -8690,12 +8690,7 @@ bool Unit::isSpellCrit(Unit *pVictim, SpellEntry const *spellProto, SpellSchoolM if (spellProto->SpellFamilyFlags & UI64LIT(0x0000100000000000)) { if (Aura *flameShock = pVictim->GetAura(SPELL_AURA_PERIODIC_DAMAGE, SPELLFAMILY_SHAMAN, UI64LIT(0x0000000010000000), 0, GetGUID())) - { - // Consume shock aura if not have Glyph of Flame Shock - if (!GetAura(55447, 0)) - pVictim->RemoveAurasByCasterSpell(flameShock->GetId(), GetGUID()); return true; - } } break; }
-
Because in most cases is doesn't work for melee based spells, also we need to check only HOLY school spell damage, in db we can check only normal spell damage.
-
About spell in TODO list, i just doesn't know where is a problem that make them now work or work bugged. If you know how to fix it or where is a problem - post it.
-
What bug does the patch fix? What features does the patch add? On current state it fixes: *Prevent proc from all kind of spells for Seal of Vengeance and Seal of Corruption *Removed wrong ppm proc chance and prevented to proc from all kind of spells for Seal of Command *Deleted outdated and unneeded data from DB table spell_bonus_data *Fixed damage for Judgement of Command *Fixed damage for Judgement of Righteousness *Remove code for not used now spells Judgement of Seal of Blood/Martyr *Fixed a bug with replacing buff from Seal of Vengeance/Corruption by debuff from enemy's judgement *Added support for Holy Vengeance and Blood Corruption (Seal of Vengeance and Seal of Corruption dot) *Fixed number of targets for Seal of Command proc when using Divine Storm *Fixed heal amount for Seal of Light For which repository revision was the patch created? 9071+ Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. I'm too lazy to find it all, because is too many threads Who has been writing this patch? Please include either forum user names or email addresses. Me Core part: http://paste2.org/p/578487 DB part: http://paste2.org/p/536277
-
I think it should be removed (it's addition for the patch) diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index a7d6a56..e145769 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -6758,14 +6758,6 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredB } //else if (auraSpellInfo->Id==40363)// Entangling Roots () // trigger_spell_id = ????; - // Leader of the Pack - else if (auraSpellInfo->Id == 24932) - { - if (triggerAmount == 0) - return false; - basepoints[0] = triggerAmount * GetMaxHealth() / 100; - trigger_spell_id = 34299; - } break; } case SPELLFAMILY_HUNTER: you also forgot to add a 6 seconds cooldown for spell... I've try to add it in database INSERT INTO `spell_proc_event` VALUES (24932, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00054044, 0x00000002, 0.000000, 0.000000, 6); but it doesn't works (still ignoring a cooldown), doesn't know why
-
[9482][patch]Blood Presence and Improved Blood/Frost/Unholy presences
KAPATEJIb replied to a topic in ... acceptedOld
I can't understand why you make a same check + + // Improved Blood Presence and Blood Presence + if( (spellInfo_1->Id == 48266 && spellInfo_2->Id == 63611) || + ( spellInfo_2->Id == 63611 && spellInfo_1->Id == 48266) ) + return true; maybe better + + // Improved Blood Presence and Blood Presence + if( (spellInfo_1->Id == 48266 && spellInfo_2->Id == 63611) || + ( spellInfo_1->Id == 63611 && spellInfo_2->Id == 48266) ) + return true; ? -
From one of my patched sources user #0 Map::GetCreature (this=0x34310038373931, guid=17379391180115989345) at /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/ext/hashtable.h:513 No locals. #1 0x0000000000846c78 in OutdoorPvPObjective::HandlePlayerActivityChanged (this=<value optimized out>, plr=0x2aaae3629fd0) at ../../../src/game/OutdoorPvP.cpp:70 c = <value optimized out> map = (class Map *) 0x34310038373931 #2 0x0000000000847353 in OutdoorPvP::HandlePlayerActivityChanged (this=<value optimized out>, plr=0x2aaae3629fd0) at ../../../src/game/OutdoorPvP.cpp:467 No locals. #3 0x00000000007bd847 in Unit::DealDamage (this=0x33b71a20, pVictim=0x2aaae3629fd0, damage=1783, cleanDamage=<value optimized out>, damagetype=DIRECT_DAMAGE, damageSchoolMask=SPELL_SCHOOL_MASK_NORMAL, spellProto=0x0, durabilityLoss=true) at ../../../src/game/Unit.cpp:637 player = (class Player *) 0x0 bRewardIsAllowed = <value optimized out> damageFromSpiritOfRedemtionTalent = false spiritOfRedemtionTalentReady = (class Aura *) 0x0 health = <value optimized out> duel_hasEnded = false __PRETTY_FUNCTION__ = "uint32 Unit::DealDamage(Unit*, uint32, const CleanDamage*, DamageEffectType, SpellSchoolMask, const SpellEntry*, bool)" #4 0x00000000007bf58a in Unit::DealMeleeDamage (this=0x33b71a20, damageInfo=0x42cafcd0, durabilityLoss=true) at ../../../src/game/Unit.cpp:1534 pVictim = (Unit *) 0x2aaae3629fd0 cleanDamage = {damage = 785, attackType = BASE_ATTACK, hitOutCome = MELEE_HIT_NORMAL} #5 0x00000000007c00ae in Unit::AttackerStateUpdate (this=0x33b71a20, pVictim=0x2aaae3629fd0, attType=BASE_ATTACK, extra=false) at ../../../src/game/Unit.cpp:2159 extraAttacks = 0 damageInfo = {attacker = 0x33b71a20, target = 0x2aaae3629fd0, damageSchoolMask = SPELL_SCHOOL_MASK_NORMAL, damage = 1783, absorb = 0, resist = 0, blocked_amount = 0, HitInfo = 2, TargetState = 1, attackType = BASE_ATTACK, procAttacker = 4, procVictim = 1048584, procEx = 1, cleanDamage = 785, hitOutCome = MELEE_HIT_NORMAL} #6 0x00000000008162b6 in CreatureEventAI::DoMeleeAttackIfReady (this=0x33b73ed0) at ../../../src/game/CreatureEventAI.cpp:1332 No locals. #7 0x000000000081b81b in CreatureEventAI::UpdateAI (this=0x33b73ed0, diff=172) at ../../../src/game/CreatureEventAI.cpp:1107 Combat = true #8 0x00000000005573b5 in Creature::Update (this=0x33b71a20, diff=172) at ../../../src/game/Creature.cpp:443 No locals. ---Type <return> to continue, or q <return> to quit--- #9 0x000000000062aadf in VisitorHelper<MaNGOS::ObjectUpdater, Creature> (v=@0x42cb3030, c=<value optimized out>) at ../../../src/game/GridNotifiersImpl.h:47 No locals. #10 0x000000000062c81d in VisitorHelper<MaNGOS::ObjectUpdater, Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > (v=@0x34310038373931, c=@0xf1300032c75ed361) at ../../../src/game/../framework/GameSystem/TypeContainerVisitor.h:70 No locals. #11 0x0000000000627038 in Map::Update (this=0x2aaac153c930, t_diff=@0x2aab16d607e0) at ../../../src/game/../framework/GameSystem/TypeContainerVisitor.h:105 x = 291 plr = <value optimized out> updater = {i_timeDiff = 172} #12 0x000000000063aa52 in MapUpdateRequest::call (this=0x2aab16d607c0) at ../../../src/game/MapUpdater.cpp:47 No locals. #13 0x000000000089837c in DelayExecutor::svc (this=0x2aaac0ca8a70) at ../../../src/shared/DelayExecutor.cpp:60 rq = (class ACE_Method_Request *) 0x2aab16d607c0 #14 0x00002af9a5bc9817 in ACE_Task_Base::svc_run (args=<value optimized out>) at ../../ace/Task.cpp:275 t = (ACE_Task_Base *) 0x2aaac0ca8a70 svc_status = <value optimized out> #15 0x00002af9a5bca795 in ACE_Thread_Adapter::invoke (this=0x2383f700) at ../../ace/Thread_Adapter.cpp:98 exit_hook_instance = (ACE_Thread_Exit *) 0x237fc9b0 exit_hook_maybe = {instance_ = 0x0} exit_hook_ptr = (ACE_Thread_Exit *) 0x237fc9b0 #16 0x0000003758a06367 in start_thread () from /lib64/libpthread.so.0 No symbol table info available. #17 0x00000037582d309d in clone () from /lib64/libc.so.6 No symbol table info available. #0 Map::GetGameObject (this=0x0, guid=17370386817866690413) at /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/ext/hashtable.h:513 513 for (__first = _M_buckets[__n]; (gdb) bt full #0 Map::GetGameObject (this=0x0, guid=17370386817866690413) at /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/ext/hashtable.h:513 No locals. #1 0x0000000000848557 in OutdoorPvPObjective::HandleCaptureCreaturePlayerMoveInLos (this=0x2aaab40d0810, p=0x2aaad68d92d0, c=<value optimized out>) at ../../../src/game/OutdoorPvP.cpp:390 cp = <value optimized out> #2 0x0000000000847142 in OutdoorPvP::HandleCaptureCreaturePlayerMoveInLos (this=<value optimized out>, p=0x2aaad68d92d0, c=0x2aaab4140150) at ../../../src/game/OutdoorPvP.cpp:537 No locals. #3 0x00000000006968a2 in OutdoorPvPMgr::HandleCaptureCreaturePlayerMoveInLos (this=<value optimized out>, plr=0x2aaad68d92d0, c=0x2aaab4140150) at ../../../src/game/OutdoorPvPMgr.cpp:201 No locals. #4 0x000000000062fe93 in VisitorHelper<MaNGOS::PlayerRelocationNotifier, Creature> (v=@0x45ac3a80, c=<value optimized out>) at ../../../src/game/GridNotifiersImpl.h:77 No locals. #5 0x000000000062fefd in VisitorHelper<MaNGOS::PlayerRelocationNotifier, Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > (v=@0x0, c=@0xf11002c752126f6d) at ../../../src/game/../framework/GameSystem/TypeContainerVisitor.h:70 No locals. #6 0x0000000000620918 in Map::PlayerRelocationNotify (this=0x24f21ef0, player=0x2aaad68d92d0, cell= {data = {Part = {grid_x = 16, grid_y = 52, cell_x = 3, cell_y = 43, nocreate = 1, reserved = 34}, All = 1168915728}}, cellpair={x_coord = 1168915648, y_coord = 0}) at ../../../src/game/../framework/GameSystem/TypeContainerVisitor.h:105 r_zone = {data = {Part = {grid_x = 37, grid_y = 26, cell_x = 4, cell_y = 2, nocreate = 0, reserved = 0}, All = 542373}} relocationNotifier = {i_player = @0x2aaad68d92d0} #7 0x0000000000621c42 in Map::PlayerRelocation (this=0x24f21ef0, player=0x2aaad68d92d0, x=<value optimized out>, y=<value optimized out>, z=115.028191, orientation=1.59220648) at ../../../src/game/Map.cpp:888 old_cell = {data = {Part = {grid_x = 37, grid_y = 26, cell_x = 4, cell_y = 1, nocreate = 0, reserved = 0}, All = 280229}} new_cell = {data = {Part = {grid_x = 37, grid_y = 26, cell_x = 4, cell_y = 1, nocreate = 0, reserved = 0}, All = 280229}} newGrid = <value optimized out> #8 0x0000000000703066 in Player::SetPosition (this=0x2aaad68d92d0, x=2990.62964, y=-3088.72607, z=115.028191, orientation=1.59220648, teleport=false) at ../../../src/game/Player.cpp:5676 m = (class Map *) 0x24f21ef0 old_x = 2990.78052 old_y = -3089.50977 old_z = <value optimized out> ---Type <return> to continue, or q <return> to quit--- old_r = <value optimized out> #9 0x0000000000844823 in WorldSession::HandleMovementOpcodes (this=0x2aaaf3ef25c0, recv_data=@0x2aab0f7957a0) at ../../../src/game/MovementHandler.cpp:322 opcode = 218 mover = (class Unit *) 0x2aaad68d92d0 plMover = (class Player *) 0x2aaad68d92d0 guid = <value optimized out> movementInfo = {guid = 173599, flags = 1, unk1 = 0, time = 2203458098, x = 2990.62964, y = -3088.72607, z = 115.028191, o = 1.59220648, t_guid = 0, t_x = 0, t_y = 0, t_z = 0, t_o = 0, t_time = 0, t_seat = -85 '?', s_pitch = 0, fallTime = 306, j_unk = 0, j_sinAngle = 0, j_cosAngle = 0, j_xyspeed = 0, u_unk1 = 0} data = {<ByteBuffer> = {static DEFAULT_SIZE = 4096, _rpos = 0, _wpos = 34, _storage = {<std::_Vector_base<unsigned char,std::allocator<unsigned char> >> = { _M_impl = {<std::allocator<unsigned char>> = {<__gnu_cxx::new_allocator<unsigned char>> = {<No data fields>}, <No data fields>}, _M_start = 0x2aab4447ff10 "\\a\\037?\\002\\001", _M_finish = 0x2aab4447ff32 "??*", _M_end_of_storage = 0x2aab4447ff32 "??*"}}, <No data fields>}}, m_opcode = 218} #10 0x00000000007d9a0a in WorldSession::Update (this=0x2aaaf3ef25c0) at ../../../src/game/WorldSession.cpp:243 opHandle = (OpcodeHandler &) @0xf1300032c75eba37: <error reading variable> packet = (WorldPacket *) 0x2aab0f7957a0 currTime = <value optimized out> #11 0x00000000007d1975 in World::UpdateSessions (this=0x19e37070, diff=77) at ../../../src/game/World.cpp:2078 next = {_M_cur = 0x2aab19b6ae50, _M_ht = 0x19e37140} sess = <value optimized out> #12 0x00000000007d23a3 in World::Update (this=0x19e37070, diff=77) at ../../../src/game/World.cpp:1615 autobroadcaston = 1 #13 0x00000000005082ad in WorldRunnable::run (this=<value optimized out>) at ../../../src/mangosd/WorldRunnable.cpp:64 diff = 77 realCurrTime = 2203458090 realPrevTime = <value optimized out> prevSleepTime = 66 #14 0x000000000089b905 in ACE_Based::Thread::ThreadTask (param=0x0) at ../../../src/shared/Threading.cpp:183 _task = (class ACE_Based::Runnable *) 0x2aaab445da40 #15 0x0000003758a06367 in start_thread () from /lib64/libpthread.so.0
-
windows crash dumps doesn't have a BT full and i doesn't have a visual studio on test server machine for debugging last lines in log before crash 2009-10-23 23:46:12 Loading map ./maps/4893029.map 2009-10-23 23:46:12 VMAP loaded name:Warsong Gulch, id:489, x:30, y:29 (vmap rep.: x:30, y:29) 2009-10-23 23:46:12 Loading map ./maps/4893232.map 2009-10-23 23:46:12 VMAP loaded name:Warsong Gulch, id:489, x:32, y:32 (vmap rep.: x:32, y:32) 2009-10-23 23:46:12 Creating player data for himself 8 2009-10-23 23:46:12 Loading map ./maps/4893028.map 2009-10-23 23:46:12 VMAP loaded name:Warsong Gulch, id:489, x:30, y:28 (vmap rep.: x:30, y:28) 2009-10-23 23:46:12 Loading map ./maps/4892929.map 2009-10-23 23:46:12 VMAP loaded name:Warsong Gulch, id:489, x:29, y:29 (vmap rep.: x:29, y:29) 2009-10-23 23:46:12 BATTLEGROUND: Player Bohaha joined the battle.
-
Any updates? I get a crash when entering to bg with .debug bg Call stack: Address Frame Function SourceFile 004A0F9E 00000000 Map::Update+6DE 0080D6DE 00000000 MapInstanced::Update+DE 006040D8 00000000 MapManager::Update+128 005E8940 00000000 World::Update+780 0043060E 00000000 WorldRunnable::run+8E 00899F39 00000000 ACE_Based::Thread::ThreadTask+19 00B914D4 00000000 ?invoke@ACE_OS_Thread_Adapter@@UAEKXZ+74 78543433 00000000 _endthreadex+44 785434C7 00000000 _endthreadex+D8 7D4DFE21 00000000 FlsSetValue+136 And get easy conflict in map.cpp when use git pull from your repo
-
http://github.com/insider42/mangos/commit/699418e9a742010f586a38e0044a68103df5da80 , but anyway author of that patch isn't me, i forgot who created it
-
.............
-
Maybe this is solution diff --git a/src/game/PoolHandler.cpp b/src/game/PoolHandler.cpp index d1f2305..e038add 100644 --- a/src/game/PoolHandler.cpp +++ b/src/game/PoolHandler.cpp @@ -185,11 +185,15 @@ void PoolGroup<T>::SpawnObject(uint32 limit, bool cache) if (limit == 1) // This is the only case where explicit chance is used { uint32 roll = RollOne(); - if (cache && m_LastDespawnedNode != roll) - Despawn1Object(m_LastDespawnedNode); - + if (!cache || (cache && m_LastDespawnedNode != roll)) + { + if (cache) + Despawn1Object(m_LastDespawnedNode); + Spawn1Object(roll); + } + else + ReSpawn1Object(roll); m_LastDespawnedNode = 0; - Spawn1Object(roll); } else if (limit < EqualChanced.size() && m_SpawnedPoolAmount < limit) { ? Original post by seirge at http://getmangos.ru/forum/showthread.php?p=289270
-
mangos> ..\\..\\src\\game\\OutdoorPvPMgr.cpp:94 in OutdoorPvPMgr::NotifyMapAdded ASSERTION F AILED: !map->Instanceable() MapInstanced::MapInstanced() c:\\mang\\src\\game\\mapinstanced.cpp: 28 + 0x4b MapManager::_createBaseMap() c:\\mang\\src\\game\\mapmanager.cpp: 118 + 0x33 MapManager::CreateMap() c:\\mang\\src\\game\\mapmanager.cpp: 135 + 0xf WorldSession::HandleMoveWorldportAckOpcode() c:\\mang\\src\\game\\movementhandler.cp p: 68 + 0x2e WorldSession::HandleMoveWorldportAckOpcode() c:\\mang\\src\\game\\movementhandler.cp p: 39 + 0x0 WorldSession::Update() c:\\mang\\src\\game\\worldsession.cpp: 224 + 0x0 World::UpdateSessions() c:\\mang\\src\\game\\world.cpp: 2076 + 0x18 World::Update() c:\\mang\\src\\game\\world.cpp: 1617 + 0x0 WorldRunnable::run() c:\\mang\\src\\mangosd\\worldrunnable.cpp: 65 + 0x0 ACE_Based::Thread::ThreadTask() c:\\mang\\src\\shared\\threading.cpp: 186 + 0x0 ACE_OS_Thread_Adapter::invoke()+0x74 [0x0] endthreadex()+0x44 [0x0] endthreadex()+0xd8 [0x0] FlsSetValue()+0x136 [0x0] ..\\..\\src\\game\\OutdoorPvPMgr.cpp:94 in OutdoorPvPMgr::NotifyMapAdded ASSERTION F AILED: !map->Instanceable() InstanceMap::InstanceMap() c:\\mang\\src\\game\\map.cpp: 2268 + 0x49 MapInstanced::CreateInstance() c:\\mang\\src\\game\\mapinstanced.cpp: 205 + 0x7d MapInstanced::CreateInstance() c:\\mang\\src\\game\\mapinstanced.cpp: 172 + 0x18 MapManager::CreateMap() c:\\mang\\src\\game\\mapmanager.cpp: 137 + 0x3d WorldSession::HandleMoveWorldportAckOpcode() c:\\mang\\src\\game\\movementhandler.cp p: 68 + 0x2e WorldSession::HandleMoveWorldportAckOpcode() c:\\mang\\src\\game\\movementhandler.cp p: 39 + 0x0 WorldSession::Update() c:\\mang\\src\\game\\worldsession.cpp: 224 + 0x0 World::UpdateSessions() c:\\mang\\src\\game\\world.cpp: 2076 + 0x18 World::Update() c:\\mang\\src\\game\\world.cpp: 1617 + 0x0 WorldRunnable::run() c:\\mang\\src\\mangosd\\worldrunnable.cpp: 65 + 0x0 ACE_Based::Thread::ThreadTask() c:\\mang\\src\\shared\\threading.cpp: 186 + 0x0 ACE_OS_Thread_Adapter::invoke()+0x74 [0x0] endthreadex()+0x44 [0x0] endthreadex()+0xd8 [0x0] FlsSetValue()+0x136 [0x0] ..\\..\\src\\game\\OutdoorPvPMgr.cpp:117 in OutdoorPvPMgr::NotifyMapDeleted ASSERTIO N FAILED: !map->Instanceable() InstanceMap::~InstanceMap() c:\\mang\\src\\game\\map.cpp: 2284 + 0xf InstanceMap::`vector deleting destructor'()+0x50 [0x0] MapInstanced::DestroyInstance() c:\\mang\\src\\game\\mapinstanced.cpp: 251 + 0x25 MapInstanced::Update() c:\\mang\\src\\game\\mapinstanced.cpp: 60 + 0x0 MapManager::Update() c:\\mang\\src\\game\\mapmanager.cpp: 269 + 0x0 World::Update() c:\\mang\\src\\game\\world.cpp: 1654 + 0x0 WorldRunnable::run() c:\\mang\\src\\mangosd\\worldrunnable.cpp: 65 + 0x0 ACE_Based::Thread::ThreadTask() c:\\mang\\src\\shared\\threading.cpp: 186 + 0x0 ACE_OS_Thread_Adapter::invoke()+0x74 [0x0] endthreadex()+0x44 [0x0] endthreadex()+0xd8 [0x0] FlsSetValue()+0x136 [0x0] ..\\..\\src\\game\\OutdoorPvPMgr.cpp:94 in OutdoorPvPMgr::NotifyMapAdded ASSERTION F AILED: !map->Instanceable() InstanceMap::InstanceMap() c:\\mang\\src\\game\\map.cpp: 2268 + 0x49 MapInstanced::CreateInstance() c:\\mang\\src\\game\\mapinstanced.cpp: 205 + 0x7d MapInstanced::CreateInstance() c:\\mang\\src\\game\\mapinstanced.cpp: 172 + 0x18 MapManager::CreateMap() c:\\mang\\src\\game\\mapmanager.cpp: 137 + 0x3d WorldSession::HandleMoveWorldportAckOpcode() c:\\mang\\src\\game\\movementhandler.cp p: 68 + 0x2e WorldSession::HandleMoveWorldportAckOpcode() c:\\mang\\src\\game\\movementhandler.cp p: 39 + 0x0 WorldSession::Update() c:\\mang\\src\\game\\worldsession.cpp: 224 + 0x0 World::UpdateSessions() c:\\mang\\src\\game\\world.cpp: 2076 + 0x18 World::Update() c:\\mang\\src\\game\\world.cpp: 1617 + 0x0 WorldRunnable::run() c:\\mang\\src\\mangosd\\worldrunnable.cpp: 65 + 0x0 ACE_Based::Thread::ThreadTask() c:\\mang\\src\\shared\\threading.cpp: 186 + 0x0 ACE_OS_Thread_Adapter::invoke()+0x74 [0x0] endthreadex()+0x44 [0x0] endthreadex()+0xd8 [0x0] FlsSetValue()+0x136 [0x0] ..\\..\\src\\game\\OutdoorPvPMgr.cpp:94 in OutdoorPvPMgr::NotifyMapAdded ASSERTION F AILED: !map->Instanceable() InstanceMap::InstanceMap() c:\\mang\\src\\game\\map.cpp: 2268 + 0x49 MapInstanced::CreateInstance() c:\\mang\\src\\game\\mapinstanced.cpp: 205 + 0x7d MapInstanced::CreateInstance() c:\\mang\\src\\game\\mapinstanced.cpp: 172 + 0x18 MapManager::CreateMap() c:\\mang\\src\\game\\mapmanager.cpp: 137 + 0x3d WorldSession::HandleMoveWorldportAckOpcode() c:\\mang\\src\\game\\movementhandler.cp p: 68 + 0x2e WorldSession::HandleMoveWorldportAckOpcode() c:\\mang\\src\\game\\movementhandler.cp p: 39 + 0x0 WorldSession::Update() c:\\mang\\src\\game\\worldsession.cpp: 224 + 0x0 World::UpdateSessions() c:\\mang\\src\\game\\world.cpp: 2076 + 0x18 World::Update() c:\\mang\\src\\game\\world.cpp: 1617 + 0x0 WorldRunnable::run() c:\\mang\\src\\mangosd\\worldrunnable.cpp: 65 + 0x0 ACE_Based::Thread::ThreadTask() c:\\mang\\src\\shared\\threading.cpp: 186 + 0x0 ACE_OS_Thread_Adapter::invoke()+0x74 [0x0] endthreadex()+0x44 [0x0] endthreadex()+0xd8 [0x0] FlsSetValue()+0x136 [0x0] I just login, enter into Vault of Archavon, leave it, then tele to naxx (.tele naxx), enter and start Kel'Thuzad's encounter Server doesn't crash anyway.
-
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 435f7d2..b199dab 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -2166,6 +2166,11 @@ void Spell::SetTargetMap(uint32 effIndex,uint32 targetMode,UnitList& TagUnitMap) { // add here custom effects that need default target. // FOR EVERY TARGET TYPE THERE IS A DIFFERENT FILL!! + if (m_spellInfo->SpellFamilyFlags2 & UI64LIT (0x00000020) && m_spellInfo->SpellIconID == 3217) + { + TagUnitMap.push_back(m_caster); + break; + } switch(m_spellInfo->Effect[effIndex]) { case SPELL_EFFECT_DUMMY: @@ -3945,7 +3950,9 @@ SpellCastResult Spell::CheckCast(bool strict) return SPELL_FAILED_CASTER_AURASTATE; // Caster aura req check if need - if(m_spellInfo->casterAuraSpell && !m_caster->HasAura(m_spellInfo->casterAuraSpell)) + if(m_spellInfo->casterAuraSpell && + sSpellStore.LookupEntry(m_spellInfo->casterAuraSpell) && + !m_caster->HasAura(m_spellInfo->casterAuraSpell)) return SPELL_FAILED_CASTER_AURASTATE; if(m_spellInfo->excludeCasterAuraSpell) { diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index c1723f7..00887b2 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -1225,6 +1225,38 @@ bool Aura::_RemoveAura() return true; } +void Aura::SendFakeAuraUpdate(uint32 auraId, bool remove) +{ + WorldPacket data(SMSG_AURA_UPDATE); + data.append(m_target->GetPackGUID()); + data << uint8(64); + data << uint32(remove ? 0 : auraId); + + if(remove) + { + m_target->SendMessageToSet(&data, true); + return; + } + + uint8 auraFlags = GetAuraFlags(); + data << uint8(auraFlags); + data << uint8(GetAuraLevel()); + data << uint8(m_procCharges ? m_procCharges : m_stackAmount); + + if(!(auraFlags & AFLAG_NOT_CASTER)) + { + data << uint8(0); // pguid + } + + if(auraFlags & AFLAG_DURATION) + { + data << uint32(GetAuraMaxDuration()); + data << uint32(GetAuraDuration()); + } + + m_target->SendMessageToSet(&data, true); +} + void Aura::SendAuraUpdate(bool remove) { WorldPacket data(SMSG_AURA_UPDATE); @@ -4245,6 +4277,18 @@ void Aura::HandleModMechanicImmunity(bool apply, bool /*Real*/) m_target->ApplySpellImmune(GetId(),IMMUNITY_MECHANIC,misc,apply); + // Demonic Circle + if (GetSpellProto()->SpellFamilyName == SPELLFAMILY_WARLOCK && GetSpellProto()->SpellIconID == 3221) + { + if (m_target->GetTypeId() != TYPEID_PLAYER) + return; + if (apply) + { + GameObject* obj = m_target->GetGameObject(48018); + if (obj) + ((Player*)m_target)->TeleportTo(obj->GetMapId(),obj->GetPositionX(),obj->GetPositionY(),obj->GetPositionZ(),obj->GetOrientation()); + } + } // Bestial Wrath if (GetSpellProto()->SpellFamilyName == SPELLFAMILY_HUNTER && GetSpellProto()->SpellIconID == 1680) { @@ -4465,6 +4509,21 @@ void Aura::HandleAuraPeriodicDummy(bool apply, bool Real) } break; } + case SPELLFAMILY_WARLOCK: + { + switch (spell->Id) + { + case 48018: + if (apply) + SendFakeAuraUpdate(62388,false); + else + { + m_target->RemoveGameObject(spell->Id,true); + SendFakeAuraUpdate(62388,true); + } + break; + } + } case SPELLFAMILY_HUNTER: { // Explosive Shot @@ -7025,6 +7084,20 @@ void Aura::PeriodicDummyTick() } break; } + case SPELLFAMILY_WARLOCK: + switch (spell->Id) + { + case 48018: + GameObject* obj = m_target->GetGameObject(spell->Id); + if (!obj) return; + // We must take a range of teleport spell, not summon. + const SpellEntry* goToCircleSpell = sSpellStore.LookupEntry(48020); + if (m_target->IsWithinDist(obj,GetSpellMaxRange(sSpellRangeStore.LookupEntry(goToCircleSpell->rangeIndex)))) + SendFakeAuraUpdate(62388,false); + else + SendFakeAuraUpdate(62388,true); + } + break; case SPELLFAMILY_ROGUE: { switch (spell->Id) diff --git a/src/game/SpellAuras.h b/src/game/SpellAuras.h index 3973382..f5d4f2e 100644 --- a/src/game/SpellAuras.h +++ b/src/game/SpellAuras.h @@ -276,6 +276,7 @@ class MANGOS_DLL_SPEC Aura void SetAura(bool remove) { m_target->SetVisibleAura(m_auraSlot, remove ? 0 : GetId()); } void SendAuraUpdate(bool remove); + void SendFakeAuraUpdate(uint32 auraId, bool remove); int8 GetStackAmount() {return m_stackAmount;} void SetStackAmount(uint8 num); Only one bug exists - on logout object is deleted (it's ok), but demonic circle aura is saved to DB (character_aura). It's not critical, but can confuse you or enemy player that thinks you have the portal, but you doesn't have it.
-
http://github.com/insider42/mangos/commit/4cfc46087f093ca9b10119128c6cf640e3d22601 but without timmons fix
-
works as should on 3.2, without any bugs
-
Any updates? I get this error when compile 9>SpellEffects.cpp 9>..\\..\\src\\game\\SpellEffects.cpp(4316) : error C2065: 'effect_idx' : undeclared identifier 9>..\\..\\src\\game\\SpellEffects.cpp(4319) : error C2065: 'effect_idx' : undeclared identifier 9>..\\..\\src\\game\\SpellEffects.cpp(4319) : error C2065: 'effect_idx' : undeclared identifier part of code ItemPrototype const* targetProto = itemTarget->GetProto(); if(m_spellInfo->EffectItemType[effect_idx] && targetProto->IsVellum()) { unitTarget = m_caster; DoCreateItem(effect_idx,m_spellInfo->EffectItemType[effect_idx]); return; }
-
why you declare float APCoeffMod = 1.0f; if you just doesn't use it?
-
[patch]Remove Immunity Effect for Shattering Throw
KAPATEJIb replied to a topic in ... under reviewOld
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index ff6d791..a25b38d 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -1011,13 +1011,18 @@ void Aura::_AddAura() } } - if (IsNeedVisibleSlot(caster)) + // Test hack of set slot and aura update of Warbringer and Juggernaut + if (IsNeedVisibleSlot(caster) || ((m_spellProto->Id == 57499 || m_spellProto->Id == 64976) && m_spellProto->EffectApplyAuraName[GetEffIndex()] == SPELL_AURA_262)) { SetAuraSlot( slot ); if(slot < MAX_AURAS) // slot found send data to client { SetAura(false); - SetAuraFlags((1 << GetEffIndex()) | AFLAG_NOT_CASTER | ((GetAuraMaxDuration() > 0) ? AFLAG_DURATION : AFLAG_NONE) | (IsPositive() ? AFLAG_POSITIVE : AFLAG_NEGATIVE)); + // Send new auraFlags + if ((m_spellProto->Id == 57499 || m_spellProto->Id == 64976) && m_spellProto->EffectApplyAuraName[GetEffIndex()] == SPELL_AURA_262) + SetAuraFlags((7) | AFLAG_NOT_CASTER | ((GetAuraMaxDuration() > 0) ? AFLAG_DURATION : AFLAG_NONE) | (IsPositive() ? AFLAG_POSITIVE : AFLAG_NEGATIVE)); + else + SetAuraFlags((1 << GetEffIndex()) | AFLAG_NOT_CASTER | ((GetAuraMaxDuration() > 0) ? AFLAG_DURATION : AFLAG_NONE) | (IsPositive() ? AFLAG_POSITIVE : AFLAG_NEGATIVE)); SetAuraLevel(caster ? caster->getLevel() : sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)); SendAuraUpdate(false); } Author: MaS0n from getmangos.ru -
[fix] Not allow chain-casting Bloodlust and Heroism
KAPATEJIb replied to a topic in ... under reviewOld
I've tested that patch and it works fine -
Another bug, that cause a server crash: 1) you warlock 2) your pet dies 3) you went away from your pet 4) server crash on dismissing Out of range dismiss doesn't work. - can you point a part of code that fixing it? And strange behavior... crashes only on linux server, on windows server i can't reproduce This a crash source. And i think that happens because you set a deathtimer. @@ -458,9 +458,22 @@ void Pet::setDeathState(DeathState s) // overwrite virtual Creature::setDeathState(s); if(getDeathState()==CORPSE) { - //remove summoned pet (no corpse) - if(getPetType()==SUMMON_PET) - Remove(PET_SAVE_NOT_IN_SLOT); + //remove summoned pet + if(getPetType()==SUMMON_PET || getPetType()==GUARDIAN_PET) + { + //Warlock summoned pet has corpse + Unit* owner = GetOwner(); + if(owner && owner->GetTypeId()==TYPEID_PLAYER && owner->getClass()==CLASS_WARLOCK) + { + SetUInt32Value( UNIT_DYNAMIC_FLAGS, 0x00 ); + RemoveFlag (UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE); + // 10 sec until corpse disappear + m_deathTimer = 10000; + } + //remove summoned pet (no corpse) + else + Remove(PET_SAVE_NOT_IN_SLOT); + } // other will despawn at corpse desppawning (Pet::Update code) else { You also can crash server if your pet dies and you abandon him
-
[patch]Remove Immunity Effect for Shattering Throw
KAPATEJIb replied to a topic in ... under reviewOld
I will test it today and give you feedback Added: It doesn't work for me, maybe because my sources is modified a bit in immune part... Added: I've found why patch doesn't work with my sources after fix i will feedback Added: Patch work as should. Thanks
Contact Us
To contact us
click here
You can also email us at [email protected]
Privacy Policy | Terms & Conditions

You can also email us at [email protected]
Privacy Policy | Terms & Conditions
Copyright © getMaNGOS. All rights Reserved.
This website is in no way associated with or endorsed by Blizzard Entertainment®
This website is in no way associated with or endorsed by Blizzard Entertainment®