Closed trimken closed 5 years ago
classic include same problem
Yea, i think this is problem for all cores. Vanish fully broken!!!
Periodic damage (DOT), didn't interrupt the stealth. (If rogue goes into the stealth(vanish) when he has DOT's, such as Shadow Word: Pain, pereodic damage didn't interrupt the stealth. All spells that cause damage interrupt the vanish. Vanish evades only Frostbolt & Firebolt.
I think problem in spell.cpp function - > void Spell::DoSpellHitOnUnit.... But I don't know how fix it.
void Spell::DoSpellHitOnUnit(Unit* unit, uint32 effectMask, bool isReflected) { if (!unit || !effectMask) return;
Unit* realCaster = GetAffectiveCaster(); ................................ etc
i think vanish cant cancel cast. so can end casting. and hit spell. and remove vanish.
I found the solution for interrupt casting when player go into invisibility.
https://github.com/trimken/mangos-tbc/commit/84842822fac7caf67296518a25629452f83cba3f
@trimken but have error in && (*iter)->GetCurrentSpell(CurrentSpellTypes(i))->m_targets.getUnitTargetGuid() == unitTarget->GetGUIDLow()) line == has problem
My solution (https://github.com/trimken/mangos-tbc/commit/84842822fac7caf67296518a25629452f83cba3f) for Mangos TBC.
I'll try figure something out for Mangos Classic tomorrow.
@trimken ok! im looking forward to that.. :D
Lovelol makes patch for Faign Death/Shadowmeld/Invisibility/Stalth long time ago & it works perfect. I don't have a repo, so i can't give a link for commit :( Also, if you want, i can create topic with this patch on CMangos forum. Here is the code of patch:
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -1121,11 +1121,21 @@ void Spell::DoSpellHitOnUnit(Unit* unit, uint32 effectMask, bool isReflected)
if (!realCaster->IsFriendlyTo(unit))
{
+
+ // Check if target is visible.
+ bool Visible = true;
+ if( (unit->HasAuraType(SPELL_AURA_MOD_INVISIBILITY) ||
+ unit->HasAuraType(SPELL_AURA_MOD_STEALTH) ||
+ unit->HasAura(20580) /* Shadowmeld */) &&
+ !unit->isVisibleForOrDetect(m_caster, m_caster, true)){
+ Visible = false;
+ }
+
// for delayed spells ignore not visible explicit target
- if (m_spellInfo->speed > 0.0f && unit == m_targets.getUnitTarget() &&
- !unit->isVisibleForOrDetect(m_caster, m_caster, false))
- {
- realCaster->SendSpellMiss(unit, m_spellInfo->Id, SPELL_MISS_EVADE);
+ if (m_spellInfo->speed > 0.0f && unit == m_targets.getUnitTarget() && !Visible){
+
+ // We can't send SPELL_MISS_EVADE because it will cause combat-log error
+ realCaster->SendSpellMiss(unit, m_spellInfo->Id, SPELL_MISS_MISS);
ResetEffectDamageAndHeal();
return;
}
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index cf2fb70..7ad7afc 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -3570,6 +3570,26 @@ void Aura::HandleFeignDeath(bool apply, bool Real)
if (!Real)
return;
+ // Interrupt cast if FD.
+ Unit *target = GetTarget();
+ Unit *caster = GetCaster();
+ // there is also a spell wich has TARGET_RANDOM_ENEMY_CHAIN_IN_AREA but it's unused. So not really necessary.
+ std::list<Unit*> targets;
+ MaNGOS::AnyUnfriendlyUnitInObjectRangeCheck u_check(target, target, caster->GetMap()->GetVisibilityDistance());
+ MaNGOS::UnitListSearcher<MaNGOS::AnyUnfriendlyUnitInObjectRangeCheck> searcher(targets, u_check);
+ Cell::VisitAllObjects(target, searcher, caster->GetMap()->GetVisibilityDistance());
+ for (std::list<Unit*>::iterator iter = targets.begin(); iter != targets.end(); ++iter){
+
+ if (!(*iter)->IsNonMeleeSpellCasted(false))
+ continue;
+
+ for (uint32 i = CURRENT_FIRST_NON_MELEE_SPELL; i < CURRENT_MAX_SPELL; i++){
+ if( (*iter)->GetCurrentSpell(CurrentSpellTypes(i)) &&
+ (*iter)->GetCurrentSpell(CurrentSpellTypes(i))->m_targets.getUnitTargetGuid() == target->GetGUIDLow() )
+ (*iter)->InterruptSpell(CurrentSpellTypes(CurrentSpellTypes(i)), false);
+ }
+ }
+
GetTarget()->SetFeignDeath(apply, GetCasterGuid(), GetId());
}
@@ -3726,9 +3746,28 @@ void Aura::HandleAuraModStun(bool apply, bool Real)
void Aura::HandleModStealth(bool apply, bool Real)
{
Unit* target = GetTarget();
+ Unit *caster = GetCaster();
if (apply)
{
+
+ // Interrupt cast if Stealth.
+ std::list<Unit*> targets;
+ MaNGOS::AnyUnfriendlyUnitInObjectRangeCheck u_check(target, target, caster->GetMap()->GetVisibilityDistance());
+ MaNGOS::UnitListSearcher<MaNGOS::AnyUnfriendlyUnitInObjectRangeCheck> searcher(targets, u_check);
+ Cell::VisitAllObjects(target, searcher, caster->GetMap()->GetVisibilityDistance());
+ for (std::list<Unit*>::iterator iter = targets.begin(); iter != targets.end(); ++iter){
+
+ if (!(*iter)->IsNonMeleeSpellCasted(false))
+ continue;
+
+ for (uint32 i = CURRENT_FIRST_NON_MELEE_SPELL; i < CURRENT_MAX_SPELL; i++){
+ if( (*iter)->GetCurrentSpell(CurrentSpellTypes(i)) &&
+ (*iter)->GetCurrentSpell(CurrentSpellTypes(i))->m_targets.getUnitTargetGuid() == target->GetGUIDLow() )
+ (*iter)->InterruptSpell(CurrentSpellTypes(CurrentSpellTypes(i)), false);
+ }
+ }
+
// drop flag at stealth in bg
target->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_IMMUNE_OR_LOST_SELECTION);
@vovk ok i will try tomorrow.. :P thx to reply
@vovk not work on cmangos-classic
.. \ .. \ src \ game \ SpellAuras.cpp (2324): error C2661: 'MaNGOS :: AnyUnfriendlyUnitInObjectRangeCheck :: AnyUnfriendlyUnitInObjectRangeCheck': overloaded functions are not used in the three parameters. 4> .. \ .. \ src \ game \ SpellAuras.cpp (2334): error C2666: 'ObjectGuid :: operator ==': a similar transformation in the two overloads. 4> c: \ com \ mangos-classic \ mangos-classic \ src \ game \ ObjectGuid.h (159): may be 'bool ObjectGuid :: operator == (const ObjectGuid &) const'. 4> C: \ com \ mangos-classic \ mangos-classic \ dep \ ACE_wrappers \ ace / Time_Value.h (317): or 'bool operator == (const ACE_Time_Value &, const ACE_Time_Value &)' 4> C: \ Program Files (x86) \ Windows Kits \ 8.1 \ Include \ shared \ guiddef.h (192): or 'bool operator == (const GUID &, const GUID &)' 4> argument list '(ObjectGuid, uint32)' and (a) for that match 4> .. \ .. \ src \ game \ SpellAuras.cpp (2477): error C2661: 'MaNGOS :: AnyUnfriendlyUnitInObjectRangeCheck :: AnyUnfriendlyUnitInObjectRangeCheck': overloaded functions are not used in the three parameters. 4> .. \ .. \ src \ game \ SpellAuras.cpp (2487): error C2666: 'ObjectGuid :: operator ==': a similar transformation in the two overloads. 4> c: \ com \ mangos-classic \ mangos-classic \ src \ game \ ObjectGuid.h (159): may be 'bool ObjectGuid :: operator == (const ObjectGuid &) const'. 4> C: \ com \ mangos-classic \ mangos-classic \ dep \ ACE_wrappers \ ace / Time_Value.h (317): or 'bool operator == (const ACE_Time_Value &, const ACE_Time_Value &)' 4> C: \ Program Files (x86) \ Windows Kits \ 8.1 \ Include \ shared \ guiddef.h (192): or 'bool operator == (const GUID &, const GUID &)' 4> argument list '(ObjectGuid, uint32)' and (a) for that match 4> 4> failed to build.
vovk, patch doesn't work for me (latest rev cmangos-tbc)
Ok. I will update my repo to the latest rev this week & try to find problem.
Still waiting
I found a problem. Function AnyUnfriendlyUnitInObjectRangeCheck was reworked some time ago, so patch now should be like this. In your error mesage you can see it, now it takes 2 parameters instead 3.
And ofc @ROKB it is not good to rush people, especially when week isn't over... :-/
From 4c9b8c8b0f794611471a2fb7e0eae02a3f0ea284 Mon Sep 17 00:00:00 2001 From: Velvet Date: Sun, 29 Nov 2015 17:31:51 +0200
src/game/Spell.cpp | 14 +++++++++++--- src/game/SpellAuras.cpp | 39 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 49 insertions(+), 4 deletions(-)
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index 18a8c7c..19c8061 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -1145,11 +1145,19 @@ void Spell::DoSpellHitOnUnit(Unit* unit, uint32 effectMask, bool isReflected)
if (!realCaster->IsFriendlyTo(unit))
{
+ // Check if target is visible.
+ bool Visible = true;
+ if( ( unit->HasAuraType(SPELL_AURA_MOD_INVISIBILITY) ||
+ unit->HasAuraType(SPELL_AURA_MOD_STEALTH) ||
+ unit->HasAura(20580) /* Shadowmeld */ ) &&
+ !unit->isVisibleForOrDetect(m_caster, m_caster, true) ){
+ Visible = false;
+ }
// for delayed spells ignore not visible explicit target
- if (speed > 0.0f && unit == m_targets.getUnitTarget() &&
- !unit->isVisibleForOrDetect(m_caster, m_caster, false))
+ if (speed > 0.0f && unit == m_targets.getUnitTarget() && !Visible)
{
- realCaster->SendSpellMiss(unit, m_spellInfo->Id, SPELL_MISS_EVADE);
+ // We can't send SPELL_MISS_EVADE because it will cause combat-log error
+ realCaster->SendSpellMiss(unit, m_spellInfo->Id, SPELL_MISS_MISS);
ResetEffectDamageAndHeal();
return;
}
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 36dc25e..66eb5bc 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -3606,6 +3606,25 @@ void Aura::HandleFeignDeath(bool apply, bool Real)
{
if (!Real)
return;
+ // Interrupt cast if FD.
+ Unit *target = GetTarget();
+ Unit *caster = GetCaster();
+ // there is also a spell wich has TARGET_RANDOM_ENEMY_CHAIN_IN_AREA but it's unused. So not really necessary.
+ std::list<Unit*> targets;
+ MaNGOS::AnyUnfriendlyUnitInObjectRangeCheck u_check(target, caster->GetMap()->GetVisibilityDistance());
+ MaNGOS::UnitListSearcher<MaNGOS::AnyUnfriendlyUnitInObjectRangeCheck> searcher(targets, u_check);
+ Cell::VisitAllObjects(target, searcher, caster->GetMap()->GetVisibilityDistance());
+ for( std::list<Unit*>::iterator iter = targets.begin(); iter != targets.end(); ++iter ){
+
+ if( !( *iter )->IsNonMeleeSpellCasted(false) )
+ continue;
+
+ for( uint32 i = CURRENT_FIRST_NON_MELEE_SPELL; i < CURRENT_MAX_SPELL; i++ ){
+ if( ( *iter )->GetCurrentSpell(CurrentSpellTypes(i)) &&
+ ( *iter )->GetCurrentSpell(CurrentSpellTypes(i))->m_targets.getUnitTargetGuid() == target->GetGUIDLow() )
+ ( *iter )->InterruptSpell(CurrentSpellTypes(CurrentSpellTypes(i)), false);
+ }
+ }
GetTarget()->SetFeignDeath(apply, GetCasterGuid());
}
@@ -3756,9 +3775,27 @@ void Aura::HandleAuraModStun(bool apply, bool Real)
void Aura::HandleModStealth(bool apply, bool Real)
{
Unit* target = GetTarget();
+ Unit *caster = GetCaster();
- if (apply)
+ if( apply )
{
+
+ // Interrupt cast if Stealth.
+ std::list<Unit*> targets;
+ MaNGOS::AnyUnfriendlyUnitInObjectRangeCheck u_check(target, caster->GetMap()->GetVisibilityDistance());
+ MaNGOS::UnitListSearcher<MaNGOS::AnyUnfriendlyUnitInObjectRangeCheck> searcher(targets, u_check);
+ Cell::VisitAllObjects(target, searcher, caster->GetMap()->GetVisibilityDistance());
+ for( std::list<Unit*>::iterator iter = targets.begin(); iter != targets.end(); ++iter ){
+
+ if( !( *iter )->IsNonMeleeSpellCasted(false) )
+ continue;
+
+ for( uint32 i = CURRENT_FIRST_NON_MELEE_SPELL; i < CURRENT_MAX_SPELL; i++ ){
+ if( ( *iter )->GetCurrentSpell(CurrentSpellTypes(i)) &&
+ ( *iter )->GetCurrentSpell(CurrentSpellTypes(i))->m_targets.getUnitTargetGuid() == target->GetGUIDLow() )
+ ( *iter )->InterruptSpell(CurrentSpellTypes(CurrentSpellTypes(i)), false);
+ }
+ }
// drop flag at stealth in bg
target->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_IMMUNE_OR_LOST_SELECTION);
@vovk thx to work.. i'll be check tomorrow :P
4> .. \ .. \ src \ game \ SpellAuras.cpp (2333): error C2666: 'ObjectGuid :: operator ==': a similar transformation in the two overloads. 4> c: \ com \ mangos-classic \ mangos-classic \ src \ game \ ObjectGuid.h (159): may be 'bool ObjectGuid :: operator == (const ObjectGuid &) const'. 4> C: \ com \ mangos-classic \ mangos-classic \ dep \ ACE_wrappers \ ace / Time_Value.h (317): or 'bool operator == (const ACE_Time_Value &, const ACE_Time_Value &)' 4> C: \ Program Files (x86) \ Windows Kits \ 8.1 \ Include \ shared \ guiddef.h (192): or 'bool operator == (const GUID &, const GUID &)' 4> argument list '(ObjectGuid, uint32)' and (a) for that match 4> .. \ .. \ src \ game \ SpellAuras.cpp (2487): error C2666: 'ObjectGuid :: operator ==': a similar transformation in the two overloads. 4> c: \ com \ mangos-classic \ mangos-classic \ src \ game \ ObjectGuid.h (159): may be 'bool ObjectGuid :: operator == (const ObjectGuid &) const'. 4> C: \ com \ mangos-classic \ mangos-classic \ dep \ ACE_wrappers \ ace / Time_Value.h (317): or 'bool operator == (const ACE_Time_Value &, const ACE_Time_Value &)' 4> C: \ Program Files (x86) \ Windows Kits \ 8.1 \ Include \ shared \ guiddef.h (192): or 'bool operator == (const GUID &, const GUID &)' 4> argument list '(ObjectGuid, uint32)' and (a) for that match 4> 4> failed to build.
I'll try to make this patch for classic. For TBC last pach should work.
For classic. In classic there is no convertation uint32 <-> ObjactGuid, so compiller can't compare this string: ( iter )->GetCurrentSpell(CurrentSpellTypes(i))->m_targets.getUnitTargetGuid() == target->GetGUIDLow() I add this string: uint32 curTarget = ( iter )->GetCurrentSpell(CurrentSpellTypes(i))->m_targets.getUnitTargetGuid(); To conver ObjectGuid to uint32. So now should work, so you can try test it.
From 08bd28f48e4cfa854d159c34194e71c7f21b3828 Mon Sep 17 00:00:00 2001 From: Velvet Date: Tue, 1 Dec 2015 03:42:50 +0200 Subject: [PATCH] 1
---
src/game/Spell.cpp | 15 ++++++++++++---
src/game/SpellAuras.cpp | 35 +++++++++++++++++++++++++++++++++++
2 files changed, 47 insertions(+), 3 deletions(-)
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index 3610a39..a81283a 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -1133,11 +1133,20 @@ void Spell::DoSpellHitOnUnit(Unit* unit, uint32 effectMask, bool isReflected)
if (!realCaster->IsFriendlyTo(unit))
{
+ // Check if target is visible.
+ bool Visible = true;
+ if( ( unit->HasAuraType(SPELL_AURA_MOD_INVISIBILITY) ||
+ unit->HasAuraType(SPELL_AURA_MOD_STEALTH) ||
+ unit->HasAura(20580) /* Shadowmeld */ ) &&
+ !unit->isVisibleForOrDetect(m_caster, m_caster, true) ){
+ Visible = false;
+
+ }
// for delayed spells ignore not visible explicit target
- if (speed > 0.0f && unit == m_targets.getUnitTarget() &&
- !unit->isVisibleForOrDetect(m_caster, m_caster, false))
+ if (speed > 0.0f && unit == m_targets.getUnitTarget() && !Visible)
{
- realCaster->SendSpellMiss(unit, m_spellInfo->Id, SPELL_MISS_EVADE);
+ // We can't send SPELL_MISS_EVADE because it will cause combat-log error
+ realCaster->SendSpellMiss(unit, m_spellInfo->Id, SPELL_MISS_MISS);
ResetEffectDamageAndHeal();
return;
}
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 22c52d5..18b8829 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -2304,6 +2304,25 @@ void Aura::HandleFeignDeath(bool apply, bool Real)
if (!Real)
return;
+ // Interrupt cast if FD.
+ Unit *target = GetTarget();
+ Unit *caster = GetCaster();
+ // there is also a spell wich has TARGET_RANDOM_ENEMY_CHAIN_IN_AREA but it's unused. So not really necessary.
+ std::list<Unit*> targets;
+ MaNGOS::AnyUnfriendlyUnitInObjectRangeCheck u_check(target, caster->GetMap()->GetVisibilityDistance());
+ MaNGOS::UnitListSearcher<MaNGOS::AnyUnfriendlyUnitInObjectRangeCheck> searcher(targets, u_check);
+ Cell::VisitAllObjects(target, searcher, caster->GetMap()->GetVisibilityDistance());
+ for( std::list<Unit*>::iterator iter = targets.begin(); iter != targets.end(); ++iter ){
+ if( !( *iter )->IsNonMeleeSpellCasted(false) )
+ continue;
+
+ for( uint32 i = CURRENT_FIRST_NON_MELEE_SPELL; i < CURRENT_MAX_SPELL; i++ ){
+ uint32 curTarget = ( *iter )->GetCurrentSpell(CurrentSpellTypes(i))->m_targets.getUnitTargetGuid();
+ if( ( *iter )->GetCurrentSpell(CurrentSpellTypes(i)) && curTarget == target->GetGUIDLow() )
+ ( *iter )->InterruptSpell(CurrentSpellTypes(CurrentSpellTypes(i)), false);
+ }
+ }
+
GetTarget()->SetFeignDeath(apply, GetCasterGuid());
}
@@ -2436,9 +2455,25 @@ void Aura::HandleAuraModStun(bool apply, bool Real)
void Aura::HandleModStealth(bool apply, bool Real)
{
Unit* target = GetTarget();
+ Unit *caster = GetCaster();
if (apply)
{
+ // Interrupt cast if Stealth.
+ std::list<Unit*> targets;
+ MaNGOS::AnyUnfriendlyUnitInObjectRangeCheck u_check(target, caster->GetMap()->GetVisibilityDistance());
+ MaNGOS::UnitListSearcher<MaNGOS::AnyUnfriendlyUnitInObjectRangeCheck> searcher(targets, u_check);
+ Cell::VisitAllObjects(target, searcher, caster->GetMap()->GetVisibilityDistance());
+ for( std::list<Unit*>::iterator iter = targets.begin(); iter != targets.end(); ++iter ){
+ if( !( *iter )->IsNonMeleeSpellCasted(false) )
+ continue;
+
+ for( uint32 i = CURRENT_FIRST_NON_MELEE_SPELL; i < CURRENT_MAX_SPELL; i++ ){
+ uint32 curTarget = ( *iter )->GetCurrentSpell(CurrentSpellTypes(i))->m_targets.getUnitTargetGuid();
+ if( ( *iter )->GetCurrentSpell(CurrentSpellTypes(i)) && curTarget == target->GetGUIDLow() )
+ ( *iter )->InterruptSpell(CurrentSpellTypes(CurrentSpellTypes(i)), false);
+ }
+ }
// drop flag at stealth in bg
target->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_IMMUNE_OR_LOST_SELECTION);
--
1.9.5.msysgit.1
@vovk has crash
Fault address: 0000000077A98FD1 01:0000000000077FD1 C:\Windows\SYSTEM32\ntdll.dll
Registers: RAX:000000007222FD52 RBX:0000000000000000 RCX:0000000006DBF1A0 RDX:0000000000000000 RSI:000007FEECA771BC RDI:0000000006DBF8F8 R8: 0000000000000000 R9: 0000000000000000 R10:0000000000000246 R11:0000000000415780 R12:0000000000000000 R13:0000000000414878 R14:0000000000000000 R15:0000005800000001 CS:RIP:0033:0000000077A98FD1 SS:RSP:002B:0000000006DBF7B0 RBP:00414770 DS:002B ES:002B FS:0053 GS:002B Flags:00000202
Call stack: Address Frame Function SourceFile 0000000077A98FD1 0000000006DBF8A0 RtlIsDosDeviceName_U+1F5B1 0000000077943028 0000000006DBF8D0 BaseFormatTimeOut+4E8 000007FEECA772E1 0000000006DBF980 ?EnableTracing@Concurrency@@YAJXZ+241 000007FEECA7717A 0000000006DBF9C0 ?EnableTracing@Concurrency@@YAJXZ+DA 000007FEECA849BF 0000000006DBFA10 ?ResetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXXZ+200F 000007FEECA83C06 0000000006DBFA60 ?ResetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXXZ+1256 000007FEECA722DA 0000000006DBFA90 ?_CheckTaskCollection@_UnrealizedChore@details@Concurrency@@IEAAXXZ+76A 000007FEECA7AE98 0000000006DBFAF0 ?try_lock@critical_section@Concurrency@@QEAA_NXZ+3C 000007FEEEEDCDC5 0000000006DBFB40 _Thrd_yield+18D 000007FEEEEDCF80 0000000006DBFB90 _Mtx_trylock+28 00000001400834CF 0000000006DBFC10 ??1CreatureEventAI@@UEAA@XZ+80F 00000001400227DA 0000000006DBFC40 0001:00000000000217DA C:\tt\mangosd.exe 000007FEECA92925 0000000006DBFCB0 _initterm_e+199 000007FEECA92ADE 0000000006DBFCE0 exit+11E 0000000077A443A1 0000000006DBFE00 LdrShutdownProcess+1D1 0000000077A441B0 0000000006DBFE30 RtlExitUserProcess+90 0000000077940F3F 0000000006DBFE60 GetNumberOfConsoleFonts+CF 0000000077954803 0000000006DBFF50 CtrlRoutine+1D3 000000007791652D 0000000006DBFF80 BaseThreadInitThunk+D
Local Variables And Parameters
Call stack: Address Frame Function SourceFile 0000000077A98FD1 0000000006DBF8A0 RtlIsDosDeviceName_U+1F5B1
0000000077943028 0000000006DBF8D0 BaseFormatTimeOut+4E8
000007FEECA772E1 0000000006DBF980 ?EnableTracing@Concurrency@@YAJXZ+241
000007FEECA7717A 0000000006DBF9C0 ?EnableTracing@Concurrency@@YAJXZ+DA
000007FEECA849BF 0000000006DBFA10 ?ResetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXXZ+200F
000007FEECA83C06 0000000006DBFA60 ?ResetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXXZ+1256
000007FEECA722DA 0000000006DBFA90 ?_CheckTaskCollection@_UnrealizedChore@details@Concurrency@@IEAAXXZ+76A
000007FEECA7AE98 0000000006DBFAF0 ?try_lock@critical_section@Concurrency@@QEAA_NXZ+3C
000007FEEEEDCDC5 0000000006DBFB40 _Thrd_yield+18D
000007FEEEEDCF80 0000000006DBFB90 _Mtx_trylock+28
00000001400834CF 0000000006DBFC10 ??1CreatureEventAI@@UEAA@XZ+80F
00000001400227DA 0000000006DBFC40 0001:00000000000217DA C:\tt\mangosd.exe
000007FEECA92925 0000000006DBFCB0 _initterm_e+199
000007FEECA92ADE 0000000006DBFCE0 exit+11E
0000000077A443A1 0000000006DBFE00 LdrShutdownProcess+1D1
0000000077A441B0 0000000006DBFE30 RtlExitUserProcess+90
0000000077940F3F 0000000006DBFE60 GetNumberOfConsoleFonts+CF
0000000077954803 0000000006DBFF50 CtrlRoutine+1D3
000000007791652D 0000000006DBFF80 BaseThreadInitThunk+D
0000000077A4C541 0000000006DBFFD0 RtlUserThreadStart+21
2015-12-01 17:40:25 WORLD: Received opcode CMSG_ZONEUPDATE: newzone is 12
2015-12-01 17:40:25 STORAGE: DestroyZoneLimitedItem in map 0 and area 12
2015-12-01 17:40:25 Creature movement start script 1126001 at point 1 for Creature (Entry: 11260 Guid: 80127).
2015-12-01 17:40:25 WORLD: Received opcode CMSG_JOIN_CHANNEL (151, 0x97)
2015-12-01 17:40:25 WORLD: Received opcode CMSG_JOIN_CHANNEL (151, 0x97)
2015-12-01 17:40:26 DB-SCRIPTS: Process table dbscripts_on_creature_movement
id 1126001, command 1 for source Creature (Entry: 11260 Guid: 80127) (in world), target Creature (Entry: 11260 Guid: 80127) (in world)
2015-12-01 17:40:26 WORLD: Received opcode CMSG_QUESTGIVER_STATUS_QUERY - for Player RogueTR (Guid: 8) to Creature (Entry: 196 Guid: 79971)
2015-12-01 17:40:26 WORLD: Sent SMSG_QUESTGIVER_STATUS for Creature (Entry: 196 Guid: 79971)
2015-12-01 17:40:26 WORLD: Received opcode CMSG_QUESTGIVER_STATUS_QUERY - for Player RogueTR (Guid: 8) to Creature (Entry: 951 Guid: 79969)
2015-12-01 17:40:26 WORLD: Sent SMSG_QUESTGIVER_STATUS for Creature (Entry: 951 Guid: 79969)
2015-12-01 17:40:31 WORLD: got cast spell packet, spellId - 7266, data length = 8
2015-12-01 17:40:31 Sending SMSG_SPELL_START id=7266
2015-12-01 17:40:31 Sending SMSG_SPELL_GO id=7266
2015-12-01 17:40:31 Spell 7266 Effect0 : 83 Targets: Player TestTR (Guid: 9), -, -
2015-12-01 17:40:31 Gameobject (Entry: 21680 Guid: 900161) enters grid[15,31]
2015-12-01 17:40:32 WORLD: received CMSG_DUEL_ACCEPTED
2015-12-01 17:40:32 Player 1 is: 9 (TestTR)
2015-12-01 17:40:32 Player 2 is: 8 (RogueTR)
2015-12-01 17:40:34 Map::GetHitPosition vmaps corrects gained with static objects! new dest coords are X:-8994.124023 Y:-252.969345 Z:73.008598
2015-12-01 17:40:35 WORLD: Received opcode CMSG_QUESTGIVER_STATUS_QUERY - for Player RogueTR (Guid: 8) to Creature (Entry: 823 Guid: 79942)
2015-12-01 17:40:35 WORLD: Sent SMSG_QUESTGIVER_STATUS for Creature (Entry: 823 Guid: 79942)
2015-12-01 17:40:35 WORLD: Received opcode CMSG_QUESTGIVER_STATUS_QUERY - for Player RogueTR (Guid: 8) to Creature (Entry: 925 Guid: 79967)
2015-12-01 17:40:35 WORLD: Sent SMSG_QUESTGIVER_STATUS for Creature (Entry: 925 Guid: 79967)
2015-12-01 17:40:35 WORLD: Received opcode CMSG_QUESTGIVER_STATUS_QUERY - for Player RogueTR (Guid: 8) to Creature (Entry: 911 Guid: 79964)
2015-12-01 17:40:35 WORLD: Sent SMSG_QUESTGIVER_STATUS for Creature (Entry: 911 Guid: 79964)
2015-12-01 17:40:35 WORLD: Received opcode CMSG_QUESTGIVER_STATUS_QUERY - for Player RogueTR (Guid: 8) to Creature (Entry: 952 Guid: 79968)
2015-12-01 17:40:35 WORLD: Sent SMSG_QUESTGIVER_STATUS for Creature (Entry: 952 Guid: 79968)
2015-12-01 17:40:35 WORLD: Received opcode CMSG_QUESTGIVER_STATUS_QUERY - for Player RogueTR (Guid: 8) to Creature (Entry: 459 Guid: 79966)
2015-12-01 17:40:35 WORLD: Sent SMSG_QUESTGIVER_STATUS for Creature (Entry: 459 Guid: 79966)
2015-12-01 17:40:35 WORLD: Received opcode CMSG_QUESTGIVER_STATUS_QUERY - for Player RogueTR (Guid: 8) to Creature (Entry: 197 Guid: 79970)
2015-12-01 17:40:35 WORLD: Sent SMSG_QUESTGIVER_STATUS for Creature (Entry: 197 Guid: 79970)
2015-12-01 17:40:35 WORLD: Received opcode CMSG_QUESTGIVER_STATUS_QUERY - for Player RogueTR (Guid: 8) to Creature (Entry: 5895 Guid: 590017)
2015-12-01 17:40:35 WORLD: Sent SMSG_QUESTGIVER_STATUS for Creature (Entry: 5895 Guid: 590017)
2015-12-01 17:40:35 WORLD: Received opcode CMSG_QUESTGIVER_STATUS_QUERY - for Player RogueTR (Guid: 8) to Creature (Entry: 11940 Guid: 79949)
2015-12-01 17:40:35 WORLD: Sent SMSG_QUESTGIVER_STATUS for Creature (Entry: 11940 Guid: 79949)
2015-12-01 17:40:35 WORLD: Received opcode CMSG_QUESTGIVER_STATUS_QUERY - for Player RogueTR (Guid: 8) to Creature (Entry: 196 Guid: 79971)
2015-12-01 17:40:35 WORLD: Sent SMSG_QUESTGIVER_STATUS for Creature (Entry: 196 Guid: 79971)
2015-12-01 17:40:35 WORLD: Received opcode CMSG_QUESTGIVER_STATUS_QUERY - for Player RogueTR (Guid: 8) to Creature (Entry: 951 Guid: 79969)
2015-12-01 17:40:35 WORLD: Sent SMSG_QUESTGIVER_STATUS for Creature (Entry: 951 Guid: 79969)
2015-12-01 17:40:35 WORLD: Received opcode CMSG_QUESTGIVER_STATUS_QUERY - for Player TestTR (Guid: 9) to Creature (Entry: 823 Guid: 79942)
2015-12-01 17:40:35 WORLD: Sent SMSG_QUESTGIVER_STATUS for Creature (Entry: 823 Guid: 79942)
2015-12-01 17:40:35 WORLD: Received opcode CMSG_QUESTGIVER_STATUS_QUERY - for Player TestTR (Guid: 9) to Creature (Entry: 925 Guid: 79967)
2015-12-01 17:40:35 WORLD: Sent SMSG_QUESTGIVER_STATUS for Creature (Entry: 925 Guid: 79967)
2015-12-01 17:40:35 WORLD: Received opcode CMSG_QUESTGIVER_STATUS_QUERY - for Player TestTR (Guid: 9) to Creature (Entry: 911 Guid: 79964)
2015-12-01 17:40:35 WORLD: Sent SMSG_QUESTGIVER_STATUS for Creature (Entry: 911 Guid: 79964)
2015-12-01 17:40:35 WORLD: Received opcode CMSG_QUESTGIVER_STATUS_QUERY - for Player TestTR (Guid: 9) to Creature (Entry: 952 Guid: 79968)
2015-12-01 17:40:35 WORLD: Sent SMSG_QUESTGIVER_STATUS for Creature (Entry: 952 Guid: 79968)
2015-12-01 17:40:35 WORLD: Received opcode CMSG_QUESTGIVER_STATUS_QUERY - for Player TestTR (Guid: 9) to Creature (Entry: 459 Guid: 79966)
2015-12-01 17:40:35 WORLD: Sent SMSG_QUESTGIVER_STATUS for Creature (Entry: 459 Guid: 79966)
2015-12-01 17:40:35 WORLD: Received opcode CMSG_QUESTGIVER_STATUS_QUERY - for Player TestTR (Guid: 9) to Creature (Entry: 197 Guid: 79970)
2015-12-01 17:40:35 WORLD: Sent SMSG_QUESTGIVER_STATUS for Creature (Entry: 197 Guid: 79970)
2015-12-01 17:40:35 WORLD: Received opcode CMSG_QUESTGIVER_STATUS_QUERY - for Player TestTR (Guid: 9) to Creature (Entry: 5895 Guid: 590017)
2015-12-01 17:40:35 WORLD: Sent SMSG_QUESTGIVER_STATUS for Creature (Entry: 5895 Guid: 590017)
2015-12-01 17:40:35 WORLD: Received opcode CMSG_QUESTGIVER_STATUS_QUERY - for Player TestTR (Guid: 9) to Creature (Entry: 11940 Guid: 79949)
2015-12-01 17:40:35 WORLD: Sent SMSG_QUESTGIVER_STATUS for Creature (Entry: 11940 Guid: 79949)
2015-12-01 17:40:35 WORLD: Received opcode CMSG_QUESTGIVER_STATUS_QUERY - for Player TestTR (Guid: 9) to Creature (Entry: 951 Guid: 79969)
2015-12-01 17:40:35 WORLD: Sent SMSG_QUESTGIVER_STATUS for Creature (Entry: 951 Guid: 79969)
2015-12-01 17:40:35 WORLD: Received opcode CMSG_QUESTGIVER_STATUS_QUERY - for Player TestTR (Guid: 9) to Creature (Entry: 196 Guid: 79971)
2015-12-01 17:40:35 WORLD: Sent SMSG_QUESTGIVER_STATUS for Creature (Entry: 196 Guid: 79971)
2015-12-01 17:40:36 WORLD: got cast spell packet, spellId - 25307, data length = 8
2015-12-01 17:40:36 Sending SMSG_SPELL_START id=25307
2015-12-01 17:40:37 WORLD: got cast spell packet, spellId - 1857, data length = 6
2015-12-01 17:40:37 Sending SMSG_SPELL_START id=1857
2015-12-01 17:40:37 STORAGE: DestroyItemCount item = 5140, count = 1
2015-12-01 17:40:37 Sending SMSG_SPELL_GO id=1857
2015-12-01 17:40:37 Spell 1857 Effect0 : 64 Targets: Player RogueTR (Guid: 8), -, -
2015-12-01 17:40:37 Sending SMSG_SPELL_GO id=11329
2015-12-01 17:40:37 Spell 11329 Effect1 : 6 Targets: Player RogueTR (Guid: 8), -, -
2015-12-01 17:40:37 Spell: Aura is: 16
2015-12-01 17:40:37 Aura: construct Spellid : 11329, Aura : 16 Target : 1 Damage : 360
2015-12-01 17:40:37 Spell 11329 Effect2 : 6 Targets: Player RogueTR (Guid: 8), -, -
2015-12-01 17:40:37 Spell: Aura is: 31
2015-12-01 17:40:37 Aura: construct Spellid : 11329, Aura : 31 Target : 1 Damage : 0
@ROKB write me on cmangos forum(Velvet).
@vovk private massage?
@ROKB yes, private message. I need your help for testing, because i don't have spase on my computer for client + server. And yes i knew that the problem in that string. I'll find the way to conver ObjectGuid in uint32 with your help.
@vovk ok what am i do just message?
@vovk any answer??
anyone here?
still not working
@trimken any progress?? lol..
I tried do this at Eluna Cmangos and when I use Stealth to cancel any cast, the mangosd just crash
Funny, this on TBC works perfecly. This should be on the main repository. Its a good fix.
Eluna cmangos is not part of cmangos. That is a seperate project.
What do you mean that it works perfectly on TBC? Why is this issue open, then? TBC is one of our main repositories. What exactly should be on the TBC repo?
@Phatcat I was testing this FIX of Stealth/Feign Death by @vovk on the last revision of cmagos-tbc. With it, the Stealth and Feign Death Cancel the enemy cast when you use the ability.
https://github.com/cmangos/issues/issues/803#issuecomment-160422780 (TBC Code)
How about the crash reported as a result by it?
Okay, I see the crash is associated with the classic port of that fix.
@Phatcat Yes, the crash is associated with the classic core. The TBC works perfectly.
this still a valid issue?
Tested the issue again on the latest TBC core / db with no issues. I couldn't reproduce it with any DOTs or channeling spells.
All channel spell such as Mind Flay, Arcane Missiles etc, and instant spell such as Ice lance and Scorch break effect of vanish. For example Frosblolt and Firebolt evade good.
Sorry for my pure English.