ArcEmu: [Fix]Druid - Force of Nature - ArcEmu

Jump to content

Toggle shoutbox Lastest Announcements

dfighter  : (07 December 2014 - 12:06 PM) Arcemu is in hibernation mode, please read http://arcemu.org/fo...showtopic=26903
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.
Resize Shouts Area

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

[Fix]Druid - Force of Nature

#1 User is offline   SleepCoder 

  • Member
  • Pip
  • Group: Members
  • Posts: 31
  • Joined: 17-September 08
  • Location:HU

Posted 12 April 2009 - 04:20 PM

Summon 3 Treants. I said three! :(

Tested.

Diff Patch

Index: Pet.cpp
===================================================================
--- Pet.cpp (revision 2534)
+++ Pet.cpp (working copy)
@@ -32,6 +32,7 @@
#define SHADOWFIEND 19668
#define SPIRITWOLF 29264
#define DANCINGRUNEWEAPON 27893
+#define TREANT 1964

uint32 GetAutoCastTypeForSpell( SpellEntry * ent )
{
@@ -108,6 +109,9 @@
case DANCINGRUNEWEAPON:
m_name = "Rune Weapon";
break;
+ case TREANT:
+ m_name = "Treant";
+ break;
case PET_IMP:
case PET_VOIDWALKER:
case PET_SUCCUBUS:
@@ -325,7 +329,7 @@
if( m_Owner == NULL )
return;

- uint16 packetsize = ( GetEntry() != WATER_ELEMENTAL && GetEntry() != SPIRITWOLF ) ? ( ( uint16 )mSpells.size() * 4 + 61 ) : 64;
+ uint16 packetsize = ( GetEntry() != WATER_ELEMENTAL && GetEntry() != SPIRITWOLF && GetEntry() != TREANT ) ? ( ( uint16 )mSpells.size() * 4 + 61 ) : 64;
WorldPacket * data = new WorldPacket( SMSG_PET_SPELLS, packetsize );
*data << GetGUID();
*data << uint32( myFamily != NULL ? myFamily->ID : 0 ); // pet family to determine talent tree
@@ -349,7 +353,7 @@
}

// we don't send spells for the water elemental so it doesn't show up in the spellbook
- if( GetEntry() != WATER_ELEMENTAL && GetEntry() != SPIRITWOLF )
+ if( GetEntry() != WATER_ELEMENTAL && GetEntry() != SPIRITWOLF && GetEntry() != TREANT )
{
// Send the rest of the spells.
*data << uint8( mSpells.size() );
@@ -1136,6 +1140,8 @@
case 27893:
stat_index = 4;
break;
+ case 1964:
+ stat_index = 5;
}
if(m_uint32Values[OBJECT_FIELD_ENTRY] == 89)
has_mana = false;
Index: SpellEffects.cpp
===================================================================
--- SpellEffects.cpp (revision 2534)
+++ SpellEffects.cpp (working copy)
@@ -3009,6 +3009,36 @@
summon->AddSpell( dbcSpell.LookupEntry(31707), true );
summon->AddSpell( dbcSpell.LookupEntry(33395), true );
}break;
+ case 1964: //Druid - Force of Nature
+ {
+ /*
+ 12% of base mana 30 yd range
+ Instant cast 3 min cooldown
+ Summons 3 treants to attack enemy targets for 30 sec.
+ */
+ //First Treant
+ Pet *summon = objmgr.CreatePet(GetProto()->EffectMiscValue[i]);
+ summon->CreateAsSummon( GetProto()->EffectMiscValue[i], ci, NULL, p_caster, GetProto(), 1, GetDuration() );
+
+ //Second Treant
+ Pet *summon2 = objmgr.CreatePet(GetProto()->EffectMiscValue[i]);
+ summon2->CreateAsSummon( GetProto()->EffectMiscValue[i], ci, NULL, p_caster, GetProto(), 1, GetDuration() );
+ summon2->GetAIInterface()->SetUnitToFollowAngle(float(-(M_PI/3)));
+
+ //Third Treant
+ Pet *summon3 = objmgr.CreatePet(GetProto()->EffectMiscValue[i]);
+ summon3->CreateAsSummon( GetProto()->EffectMiscValue[i], ci, NULL, p_caster, GetProto(), 1, GetDuration() );
+ summon3->GetAIInterface()->SetUnitToFollowAngle(float(-(M_PI/6)));
+
+ //Follow the controllable pet
+ summon->GetAIInterface()->SetUnitToFollow(summon3);
+ summon2->GetAIInterface()->SetUnitToFollow(summon3);
+ //Follow the caster
+ summon3->GetAIInterface()->SetUnitToFollow(p_caster);
+ //Non controllables are agressive
+ summon->SetPetState(2);
+ summon2->SetPetState(2);
+ }break;
case 29264: // Feral Spirit
{
/*

Attached File(s)


Coding asleep.
0

#2 User is offline   arik 

  • Member
  • Pip
  • Group: Members
  • Posts: 37
  • Joined: 09-November 08
  • Location:Czech Republic

Posted 13 April 2009 - 05:50 AM

I have tried this patch. There is some issue, like caster ( druid ) is strucked in air, when those treants are summoned :P
0

#3 User is offline   Ramor 

  • Interested
  • PipPipPipPip
  • Group: Members
  • Posts: 420
  • Joined: 11-June 08
  • Location:NC, USA

Posted 14 April 2009 - 01:42 AM

I haven't tested this patch, but do the treants follow each other while one follows the caster like you are doing here, or should they all follow the caster at different angles? And when you are referring to 'summon' as the controllable one, are you giving it a pet bar to control it? The water elementals and spirit wolves get a pet bar, but I didn't think treants came with a remote. I'm having to reinstall WoW as I'm typing this so I can't test on retail.

And to arik; can you explain that a bit better? I imagine you mean "stuck" in the air, but is there anything you can add that might help with that, or did it only happen once?

0

#4 User is offline   Hasbro 

  • Project Manager
  • PipPipPipPipPipPipPipPipPip
  • Group: Administrator
  • Posts: 2,526
  • Joined: 07-June 08
  • Gender:Male
  • Location:New York
  • Server OS:Windows

Posted 14 April 2009 - 01:44 AM

View PostRamor, on Apr 14 2009, 02:42 AM, said:

I haven't tested this patch, but do the treants follow each other while one follows the caster like you are doing here, or should they all follow the caster at different angles? And when you are referring to 'summon' as the controllable one, are you giving it a pet bar to control it? I didn't think treants came with a remote. I'm having to reinstall WoW as I'm typing this so I can't test on retail.

And to arik; can you explain that a bit better? I imagine you mean "stuck" in the air, but is there anything you can add that might help with that, or did it only happen once?


+ summon2->GetAIInterface()->SetUnitToFollowAngle(float(-(M_PI/3)));

He's setting them to follow the caster. Not adding a bar to control them ;)
0

#5 User is offline   KFL 

  • Advanced Member
  • Group: Contributor
  • Posts: 124
  • Joined: 20-June 08
  • Gender:Male
  • Location:Poland

Posted 14 April 2009 - 04:16 AM

They are guardians not pets so no Pet Bar and no spells.
Instead of
Diff Patch

Pet *summon2 = objmgr.CreatePet(GetProto()->EffectMiscValue[i]);
71.+ summon2->CreateAsSummon( GetProto()->EffectMiscValue[i], ci, NULL, p_caster, GetProto(), 1, GetDuration() );


you can use create_guardian. If you use it you do not need to change anything in pet.cpp. Effect will be same.

And well to fix it you need only 1 line ;) Check SVN how to do it.

Topic can be closed.
0

#6 User is offline   Hasbro 

  • Project Manager
  • PipPipPipPipPipPipPipPipPip
  • Group: Administrator
  • Posts: 2,526
  • Joined: 07-June 08
  • Gender:Male
  • Location:New York
  • Server OS:Windows

Posted 14 April 2009 - 04:19 AM

- Applied.
- Moved to applied patches.
0

#7 User is offline   SleepCoder 

  • Member
  • Pip
  • Group: Members
  • Posts: 31
  • Joined: 17-September 08
  • Location:HU

Posted 14 April 2009 - 04:26 AM

Actually in patch 3.0 Treants did get a Pet Bar, as far as I know. But i couldn't test it in retail.
Coding asleep.
0

#8 User is offline   Ramor 

  • Interested
  • PipPipPipPip
  • Group: Members
  • Posts: 420
  • Joined: 11-June 08
  • Location:NC, USA

Posted 18 April 2009 - 02:32 AM

My treants on retail have a pet bar now.

0

#9 User is offline   Lawyer 

  • ArcEmu Lover
  • Group: Banned
  • Posts: 412
  • Joined: 06-July 08
  • Gender:Male

Posted 18 April 2009 - 05:35 AM

View PostRamor, on Apr 18 2009, 08:32 AM, said:

My treants on retail have a pet bar now.


Seems that this will need to be changed then.
Super Moderator On - Squire-DB

Can you beat me? - http://ogchaos.mybrute.com

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