thenecromancer
Members-
Posts
110 -
Joined
-
Last visited
Never -
Donations
0.00 GBP
Content Type
Profiles
Bug Tracker
Wiki
Release Notes
Forums
Downloads
Blogs
Events
Everything posted by thenecromancer
-
Nice, but it is not as simple. You did forget about stacking more similar effects by multiple units, this includes for example two mages casting missiles on one target. So you still have to: * make sure that all dummy targeting auras stack * check for caster guids as well * ultimately, dirty solution might be to use channelling target instead ( this target is used only for channeling spells when it has dummy aura, right? )
-
[Patch][8956] Implement aura SPELL_AURA_ALLOW_ONLY_ABILITY
thenecromancer replied to Auntie Mangos's topic in ... acceptedOld
Patch is not correct: client must show all abilities faded instead of returning error message ( but part is good in case of cheaters ) warrior CAN autoattack while bladestorming, it only resets swing timer when you start bladestorming ( it however has no interrupt flag, so it will probably require hardcoding ) also what is point of updating damage ? -
[color=#000000][color=#007700]+ if([/color][color=#0000BB]procSpell[/color][color=#007700]->[/color][color=#0000BB]SpellFamilyFlags [/color][color=#007700]& [/color][color=#0000BB]UI64LIT[/color][color=#007700]([/color][color=#0000BB]0x0000000000000002[/color][color=#007700])) spell_proc_event ? [/color][/color] [color=#000000][color=#007700]+ [/color][color=#0000BB]target [/color][color=#007700]= [/color][color=#0000BB]this[/color][color=#007700];[/color][/color][color=#000000][color=#007700] 63106 has TARGET_SELF [/color][/color]
-
[fix] Glyph of Fear and Glyph of Entangling Roots
thenecromancer replied to a topic in ... under reviewOld
RemoveSpellsByDamageTaken is outdated, on retail it always breaks on fixed amount of damage ( much like damage absorbtion shields ). This is done that way to smite "Fear and dots" rotations. Amount of damage it can take is based on base health of target. This aura should increase that number as well as getting this thing moved to procs ( to be honest, not all root/fear auras should break on damage ). -
Just check if target is victim, otherwise ignore proc (problem might be with that AE ability, right?). This is same for Sweeping Strikes. ( which should work exactly right Blade Flurry, and as far as I remmember it had wrong spellid for proced spell ) And by the way Blade Flurry should do unmitigated damage (it cannot crit anyway), but to do that, you'll have to pass clean damage to triggers.
-
http://wiki.udbforums.org/index.php/Spell_affect
-
You can just change starting location of your players, however I'm not sure what it will do with intro cutscenes ( but they may be disabled anyway )
-
[patch] Grounding & Totems in general
thenecromancer replied to Auntie Mangos's topic in ... rejectedOld
Hi, as for Totem::IsImmunedToSpell, you would better create helper in spell mgr returning if spell has any direct damage effect ( like IsDirectDamageSpell ) it might be rather useful in future. Alternativly you may choose to use state immunity, but that one will not pop immune damage log. As for destroying grounding totem, don't be so specific, in procflag it only removed aura ( I'm however not sure if it was fixed to send proc with virtual 1 damage to correctly remove on non damaging spells though, but that's another story ) Totems should be probably learnt to die when their aura fades for whatever reason in my opinion. While your way is nice, you never really know when some NPC with multi-charge totem with plenty of health will be added. Then it won't work nice and will require to be rewritten again. As I said already: state immunity makes this -
Oddly enough, MOVEMENTFLAG_WALK_MODE does the opposite, for players...
-
This will prevent any forced walk after anything possibly in gameplay, however I'm not completly sure, if any movement flag aside from MOVEMENTFLAG_WALK_MODE is valid for players, currently none is used for them. ( if this is going to be true, source code must completly garrant to grant players correct flags ) For server admins, this patch should do the job, but further development MAY need to do it long way instead... ( thus I am not sure if this is right section, but well.. ) diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 49b88eb..80a74af 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -364,7 +364,7 @@ void Unit::SendMonsterMove(float NewPosX, float NewPosY, float NewPosZ, uint8 ty } //Movement Flags (0x0 = walk, 0x100 = run, 0x200 = fly/swim) - data << uint32(MovementFlags); + data << uint32(GetTypeId() == TYPEID_PLAYER ? MOVEMENTFLAG_WALK_MODE : MovementFlags); data << Time; // Time in between points data << uint32(1); // 1 single waypoint EDIT: more info from Ntsc
-
No it is not. Don't want to be rude at all, but the stuff is completly unrelated. Solution is simple, I'll upload a patch, but not sure if it has any chance, as you might not like it...
-
There are two problems with Fear and Confusions: if one fear effect ends and there is another one ( typicaly Death Coil followed by Fear ) target is no longer feared, even it still has fear aura. Second problem is, when target is killed while feared, it's corpse will move ( because alive check is still true at time of removing ) diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index b4741b4..41caa26 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -3097,7 +3097,13 @@ void Aura::HandleModConfuse(bool apply, bool Real) if(!Real) return; - m_target->SetConfused(apply, GetCasterGUID(), GetId()); + // check if there are no other confuse auras + Unit::AuraList const& confuseAuras = m_target->GetAurasByType(SPELL_AURA_MOD_CONFUSE); + if(!apply && !confuseAuras.empty()) + return; + + + m_target->SetConfused(apply, GetCasterGUID(), GetId(), m_removeMode==AURA_REMOVE_BY_DEATH); } void Aura::HandleModFear(bool apply, bool Real) @@ -3105,7 +3111,12 @@ void Aura::HandleModFear(bool apply, bool Real) if (!Real) return; - m_target->SetFeared(apply, GetCasterGUID(), GetId()); + // check if there are no other fear auras + Unit::AuraList const& fearAuras = m_target->GetAurasByType(SPELL_AURA_MOD_FEAR); + if(!apply && !fearAuras.empty()) + return; + + m_target->SetFeared(apply, GetCasterGUID(), GetId(), m_removeMode==AURA_REMOVE_BY_DEATH); } void Aura::HandleFeignDeath(bool apply, bool Real) diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index cfd5fa9..49b88eb 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -10290,7 +10290,7 @@ void Unit::StopMoving() SendMessageToSet(&data,false); } -void Unit::SetFeared(bool apply, uint64 casterGUID, uint32 spellID) +void Unit::SetFeared(bool apply, uint64 casterGUID, uint32 spellID, bool death) { if( apply ) { @@ -10312,7 +10312,7 @@ void Unit::SetFeared(bool apply, uint64 casterGUID, uint32 spellID) GetMotionMaster()->MovementExpired(false); - if( GetTypeId() != TYPEID_PLAYER && isAlive() ) + if( GetTypeId() != TYPEID_PLAYER && !death ) { // restore appropriate movement generator if(getVictim()) @@ -10331,7 +10331,7 @@ void Unit::SetFeared(bool apply, uint64 casterGUID, uint32 spellID) ((Player*)this)->SetClientControl(this, !apply); } -void Unit::SetConfused(bool apply, uint64 casterGUID, uint32 spellID) +void Unit::SetConfused(bool apply, uint64 casterGUID, uint32 spellID, bool death) { if( apply ) { @@ -10347,7 +10347,7 @@ void Unit::SetConfused(bool apply, uint64 casterGUID, uint32 spellID) GetMotionMaster()->MovementExpired(false); - if (GetTypeId() == TYPEID_UNIT) + if (GetTypeId() == TYPEID_UNIT && !death) { // if in combat restore movement generator if(getVictim()) diff --git a/src/game/Unit.h b/src/game/Unit.h index a81308c..2cde239 100644 --- a/src/game/Unit.h +++ b/src/game/Unit.h @@ -1234,8 +1234,8 @@ class MANGOS_DLL_SPEC Unit : public WorldObject uint32 GetUnitMovementFlags() const { return m_unit_movement_flags; } void SetUnitMovementFlags(uint32 f) { m_unit_movement_flags = f; } - void SetFeared(bool apply, uint64 casterGUID = 0, uint32 spellID = 0); - void SetConfused(bool apply, uint64 casterGUID = 0, uint32 spellID = 0); + void SetFeared(bool apply, uint64 casterGUID = 0, uint32 spellID = 0, bool death = false); + void SetConfused(bool apply, uint64 casterGUID = 0, uint32 spellID = 0, bool death = false); void AddComboPointHolder(uint32 lowguid) { m_ComboPointHolders.insert(lowguid); } void RemoveComboPointHolder(uint32 lowguid) { m_ComboPointHolders.erase(lowguid); }
-
You have to add 100 base damage via custom spell call. Didn't found why, but the spell has no base damage ( should do 100 ).
-
It was not like one thread doing one map. There are some operations and classes that should belong under map, but they are not. IIRC for example object accessor is not one par map, but one per server, together with all other things this is resulting of need to lock things, and not really using all the power you can have.You probably want your maps to be done by single thread, and being sure that. ( Eg. one object would be accessed by only one thread at time ). This is true only if you are running something really intensive in your maps, like vmaps. Otherwise I would not go for multi-threading if I did not really know what I'm doing...
-
[patch in 6910] bg_rl extracted from arena-patch
thenecromancer replied to a topic in ... acceptedOld
The only "important" patch not applied is procflag atm. Right now too much spell stuff is handled differently that it should be, and it makes further devlopment a little harder. It however does not really matter when arenas are integrated, as it is finished stuff, it won't be used for anything else, period. And if you read more carefuly you would know that one developer is already working on review/rewrite. What all you are writting here won't help situation at all. While you might recieve answer sooner than without posting anything, you are however NOT going to help it, but to do otherwise. I think that all agre that arena patch is done from game side, but it does not mean there is nothing they want to change. Just wait, and I think if you ask nice and clever question you are going to have answer. -
It is actualy called colision, too bad it's done on players clients ( but good for performance ofc ). It can be ofcourse done on server as well, but as Ntsc said it could result in quite a lot of calculations. Though maybe some simple box colision versus these object could be doable.
-
[Patch][6815] combat swapping of off-hand frills
thenecromancer replied to a topic in ... acceptedOld
What you say? Cooldown packet can also do global cooldown? That's quite nice if it is true... -
This. The problem is that water detection on server is not really that great and still fails a lot of times. It also pretty much disallows checking for swim movetype to disallow flying cheats :-/ ...
-
There is already option to dump the character before deleting it...
-
[Patch][6815] combat swapping of off-hand frills
thenecromancer replied to a topic in ... acceptedOld
the spells themselfs should do the global cooldown, however I have no idea what data to send to make client show it :-/ -
Why not just set this up in that SQL table? And it would be even better to have it with delays as well. Last but not least, can it be cached instead?
-
3.0.x support - when will we support it?
thenecromancer replied to Auntie Mangos's topic in OldAnnouncements & news
But it looks that you guarantee it will crash for sure Anyway thanks for sharing. -
SVN is easier to use than GIT
thenecromancer replied to Auntie Mangos's topic in OldGeneral discussion
Oh what's up? Now you can make your branch and no longer need to bother by formating patches in files to post in review section. Of course you have to RTM to use it. And by the way was not it mirrored to SVN as well recently? -
Do not forget about dmg class as well as ignore immunity attributes
-
Shouldn't be system message an opcode? Text template is in dbc file anyway...
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®