ArcEmu: [Applied][rogue] Premeditation - ArcEmu

Jump to content

Toggle shoutbox Lastest Announcements

dfighter  : (01 January 2013 - 05:56 PM) Arcemu wishes you all a happy new year!
Hasbro  : (12 September 2012 - 10:01 AM) Please excuse our outage from the web! Our web host had a major malfunction!
dfighter  : (01 September 2012 - 04:05 PM) Since the spam bots just don't want to stop, I've enabled admin verification when registering.
dfighter  : (23 January 2012 - 09:56 PM) Please note that from now on you will need to confirm your email on the wiki in order to edit it!
Hasbro  : (31 December 2011 - 12:50 PM) Happy New Years all!
Navid  : (26 December 2011 - 04:09 AM) Merry Christmas !!!!!! Happy holidays all :)
WAmadeus  : (24 December 2011 - 03:54 PM) Merry Christmas to all!
dfighter  : (24 December 2011 - 11:05 AM) The Arcemu team wishes y'all a Merry Christmukkah!
Hasbro  : (05 October 2011 - 12:53 PM) Looking for web designers for upcoming web related project. If you're interested in designing user interfaces contact me
dfighter  : (02 September 2011 - 03:47 PM) So who here wants vehicles in Arcemu? :P http://arcemu.org/fo...showtopic=25440
Hasbro  : (14 August 2011 - 03:25 PM) Join us on irc, grab an irc client and connect to irc.freenode.net join channel #arcemu /server irc.freenode.net:6667 /join #arcemu
jackpoz  : (03 August 2011 - 05:33 AM) to all Lua Engine (old one) users: please check http://arcemu.org/fo...showtopic=25274
Hasbro  : (20 May 2011 - 05:27 PM) Looking for people experienced with CMake configuration and setup! Contact me asap
Hasbro  : (15 May 2011 - 05:03 PM) ArcEmu is recruiting C++ programmers, contact Hasbro if interested.
paroxysm  : (03 May 2011 - 06:26 PM) Updated luabridge gossip example to describe the whole gossip creation process rather than just how to create menu. Gossip tutorial
paroxysm  : (23 April 2011 - 11:35 AM) Lua writers can refer to the Luabridge Tutorials section in the Wiki to learn how to write gossip code correctly.
Hasbro  : (20 April 2011 - 05:22 PM) Thank you for your continuous contribution of bug reports, we are working on them.
Hasbro  : (17 April 2011 - 03:20 AM) Please consider donating to support our bills. Donations can be sent using PayPal to donations@arcemu.org - Thank you for your support.
paroxysm  : (10 April 2011 - 12:43 AM) Refer to the Luabridge Tutorials section in the Wiki to learn the new syntax of luabridge.
Hasbro  : (06 April 2011 - 07:55 PM) We will not tolerate disrespect on our forums. If you believe a member of the staff or a member of the community is abusing our forums, please report their post.
Resize Shouts Area

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

[Applied][rogue] Premeditation GitHub Issue #59

#1 User is offline   Neo_mat 

  • drunken bear rider
  • PipPipPip
  • Group: Developers
  • Posts: 278
  • Joined: 07-June 08
  • Gender:Male
  • Server OS:Linux

Posted 02 December 2011 - 05:55 PM

Rogue:
- Premeditation is now working properly, no longer gives unlimited combo points for the duration of applied aura and removing combo points if aura duration has expired without loss of combo points generated in this time, except the ones generated by spell using this aura. Closing issue #59.

From 4edebe4a6f63e79bc36c3befdf6dcc8cb20c6248 Mon Sep 17 00:00:00 2001
From: Neo_mat <neomat.github@gmail.com>
Date: Sat, 3 Dec 2011 02:53:12 +0400
Subject: [PATCH] Rogue: Premeditation is now working properly, no longer
 gives unlimited combo points for the duration of applied
 aura and removing combo points if aura duration has expired
 without loss of combo points generated in this time, except
 the ones generated by spell using this aura. Closing issue
 #59.

---
 src/arcemu-world/Player.cpp 	|   15 +++++++++++++++
 src/arcemu-world/Player.h   	|   12 +-----------
 src/arcemu-world/SpellAuras.cpp |   16 +++++++++++++++-
 3 files changed, 31 insertions(+), 12 deletions(-)

diff --git a/src/arcemu-world/Player.cpp b/src/arcemu-world/Player.cpp
index 09e6275..f283f7d 100644
--- a/src/arcemu-world/Player.cpp
+++ b/src/arcemu-world/Player.cpp
@@ -9680,6 +9680,21 @@ void Player::EventPortToGM(Player* p)
 	SafeTeleport(p->GetMapId(), p->GetInstanceID(), p->GetPosition());
 }
 
+void Player::AddComboPoints(uint64 target, int8 count)
+{
+			// GetTimeLeft() checked in SpellAura, so we won't lose points
+			RemoveAllAuraType(SPELL_AURA_RETAIN_COMBO_POINTS);
+
+			if(m_comboTarget == target)
+				m_comboPoints += count;
+			else
+			{
+				m_comboTarget = target;
+				m_comboPoints = count;
+			}
+			UpdateComboPoints();
+}
+
 void Player::UpdateComboPoints()
 {
 	// **** bytebuffers :)
diff --git a/src/arcemu-world/Player.h b/src/arcemu-world/Player.h
index 69cafae..7db2628 100644
--- a/src/arcemu-world/Player.h
+++ b/src/arcemu-world/Player.h
@@ -2116,17 +2116,7 @@ class SERVER_DECL Player : public Unit
 		int8 m_spellcomboPoints; // rogue talent Ruthlessness will change combopoints while consuming them. solutions 1) add post cast prochandling, 2) delay adding the CP
 		void UpdateComboPoints();
 
-		void AddComboPoints(uint64 target, uint8 count)
-		{
-			if(m_comboTarget == target)
-				m_comboPoints += count;
-			else
-			{
-				m_comboTarget = target;
-				m_comboPoints = count;
-			}
-			UpdateComboPoints();
-		}
+		void AddComboPoints(uint64 target, int8 count);
 
 		void NullComboPoints() { if(!m_retainComboPoints) { m_comboTarget = 0; m_comboPoints = 0; m_spellcomboPoints = 0; } UpdateComboPoints(); }
 		uint32 m_speedChangeCounter;
diff --git a/src/arcemu-world/SpellAuras.cpp b/src/arcemu-world/SpellAuras.cpp
index eced2e5..edacf17 100644
--- a/src/arcemu-world/SpellAuras.cpp
+++ b/src/arcemu-world/SpellAuras.cpp
@@ -6807,7 +6807,21 @@ void Aura::SpellAuraModResistanceExclusive(bool apply)
 void Aura::SpellAuraRetainComboPoints(bool apply)
 {
 	if(p_target != NULL)
-		p_target->m_retainComboPoints = apply;
+	{
+		if(apply)
+		{
+			p_target->m_retainComboPoints = true;
+		}
+		else
+		{
+			p_target->m_retainComboPoints = false; //Let points to be consumed
+
+			//Remove points if aura duration has expired, no combo points will be lost if there were some
+			//except the ones that were generated by this spell
+			if(GetTimeLeft() == 0) 
+			p_target->AddComboPoints(p_target->GetSelection(), -mod->m_amount);
+		}
+	}
 }
 
 void Aura::SpellAuraResistPushback(bool apply)
-- 
1.7.7.1.msysgit.0

Attached File(s)


Posted Image
Posted Image
Posted Image
I am 91% addicted to World of Warcraft. What about you?
0

#2 User is offline   dfighter 

  • Titles are overrated
  • PipPipPipPipPipPipPipPipPipPip
  • Group: Administrator
  • Posts: 5,155
  • Joined: 14-June 08
  • IRC:dfighter
  • Gender:Male
  • Location:Budapest, Hungary
  • Server OS:Linux

Posted 25 January 2012 - 01:20 PM

- Applied.
- Moved to applied patches.
"The demand for free goods is infinite."

Check out my blog and feel free to follow me if you like!
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users