Forums WoW Modding Support Archives WoWModding Threads [DiscordArchive] Sated & Exhaustion debuffs in TBC

[DiscordArchive] Sated & Exhaustion debuffs in TBC

[DiscordArchive] Sated & Exhaustion debuffs in TBC

rektbyfaith
Administrator
0
06-16-2025, 03:14 PM
#1
Archived author: Needle • Posted: 2025-06-16T15:14:42.938000+00:00
Original source

rektbyfaith
06-16-2025, 03:14 PM #1

Archived author: Needle • Posted: 2025-06-16T15:14:42.938000+00:00
Original source

rektbyfaith
Administrator
0
06-16-2025, 03:14 PM
#2
Archived author: Needle • Posted: 2025-06-16T15:14:43.573000+00:00
Original source

Thread automatically created by TheFatty in <#415944535718494208>
rektbyfaith
06-16-2025, 03:14 PM #2

Archived author: Needle • Posted: 2025-06-16T15:14:43.573000+00:00
Original source

Thread automatically created by TheFatty in <#415944535718494208>

rektbyfaith
Administrator
0
06-16-2025, 03:16 PM
#3
Archived author: Needle • Posted: 2025-06-16T15:16:10.993000+00:00
Original source

Sated & Exhaustion debuffs in TBC
rektbyfaith
06-16-2025, 03:16 PM #3

Archived author: Needle • Posted: 2025-06-16T15:16:10.993000+00:00
Original source

Sated & Exhaustion debuffs in TBC

rektbyfaith
Administrator
0
06-16-2025, 07:20 PM
#4
Archived author: TheFatty • Posted: 2025-06-16T19:20:41.057000+00:00
Original source

So I think I got it to work. At least I got the script side of things to work

I'll document my steps in case other people would like to follow along. Or if actual coders want to flame me for being a dumb dumb <3.

1. I found the WotLK cpp code for bloodlust @ https://github.com/cmangos/mangos-wotlk/...ame/Spells. The files we need are ./Spells/Spell.cpp and ./Spells/Scrips/Scripting/ClassScripts/Shaman.cpp.

2. In ./Shaman.cpp, copy/paste the following code:

> struct HeroismBloodlust : public SpellScript
> {
> bool OnCheckTarget(const Spell* /*spell*/, Unit* target, SpellEffectIndex /*eff*/) const
> {
> if (!target | | !target->IsAlive() | | target->HasAura(57724) | | target->HasAura(57723))
> return false;
> return true;
> }
> };

and add the following line into the void LoadShamanScripts() list:
> RegisterSpellScript<HeroismBloodlust>("spell_heroism_bloodlust");

(spells 57723 and 57724 for Exhaustion and Sated do not exist in TBC, so those spells will need to be added, or an existing spell ID needs to be modified)

3. in ./Spell.cpp copy/paste the following code:
> case SPELLFAMILY_SHAMAN:
> {
> // Bloodlust
> if (m_spellInfo->Id == 2825)
> AddPrecastSpell(57724); // Sated
> // Heroism
> else if (m_spellInfo->Id == 32182)
> AddPrecastSpell(57723); // Exhaustion
> break;
> }

4. In the SQL db, add two lines in tbcmangos.spell_scripts with Id = 2825 and Id = 32182, and ScriptName = spell_heroism_bloodlust.

5. Recompile the server.
rektbyfaith
06-16-2025, 07:20 PM #4

Archived author: TheFatty • Posted: 2025-06-16T19:20:41.057000+00:00
Original source

So I think I got it to work. At least I got the script side of things to work

I'll document my steps in case other people would like to follow along. Or if actual coders want to flame me for being a dumb dumb <3.

1. I found the WotLK cpp code for bloodlust @ https://github.com/cmangos/mangos-wotlk/...ame/Spells. The files we need are ./Spells/Spell.cpp and ./Spells/Scrips/Scripting/ClassScripts/Shaman.cpp.

2. In ./Shaman.cpp, copy/paste the following code:

> struct HeroismBloodlust : public SpellScript
> {
> bool OnCheckTarget(const Spell* /*spell*/, Unit* target, SpellEffectIndex /*eff*/) const
> {
> if (!target | | !target->IsAlive() | | target->HasAura(57724) | | target->HasAura(57723))
> return false;
> return true;
> }
> };

and add the following line into the void LoadShamanScripts() list:
> RegisterSpellScript<HeroismBloodlust>("spell_heroism_bloodlust");

(spells 57723 and 57724 for Exhaustion and Sated do not exist in TBC, so those spells will need to be added, or an existing spell ID needs to be modified)

3. in ./Spell.cpp copy/paste the following code:
> case SPELLFAMILY_SHAMAN:
> {
> // Bloodlust
> if (m_spellInfo->Id == 2825)
> AddPrecastSpell(57724); // Sated
> // Heroism
> else if (m_spellInfo->Id == 32182)
> AddPrecastSpell(57723); // Exhaustion
> break;
> }

4. In the SQL db, add two lines in tbcmangos.spell_scripts with Id = 2825 and Id = 32182, and ScriptName = spell_heroism_bloodlust.

5. Recompile the server.

rektbyfaith
Administrator
0
06-16-2025, 08:12 PM
#5
Archived author: TheFatty • Posted: 2025-06-16T20:12:18.674000+00:00
Original source

Creating the new spells for Sated and Exhaustion:
1. Create spells 57223 & 57224 in the SQL db (spell_template) and the dbc (spell.dbc)
2. The easiest way I did it was to duplicate Spell 26013 (deserter) and then change a few boxes:
- DurationIndex = 6
- SpellIconID = 44
- SpellPriority = 50
- SpellName = Sated or Exhaustion
In Spell.dbc, also change the following rows:
- Tooltip_Lang_enUS = Cannot benefit from Bloodlust (Heroism)

3. Add the Spell.dbc updates to the .mpq patch file.
rektbyfaith
06-16-2025, 08:12 PM #5

Archived author: TheFatty • Posted: 2025-06-16T20:12:18.674000+00:00
Original source

Creating the new spells for Sated and Exhaustion:
1. Create spells 57223 & 57224 in the SQL db (spell_template) and the dbc (spell.dbc)
2. The easiest way I did it was to duplicate Spell 26013 (deserter) and then change a few boxes:
- DurationIndex = 6
- SpellIconID = 44
- SpellPriority = 50
- SpellName = Sated or Exhaustion
In Spell.dbc, also change the following rows:
- Tooltip_Lang_enUS = Cannot benefit from Bloodlust (Heroism)

3. Add the Spell.dbc updates to the .mpq patch file.

Recently Browsing
 1 Guest(s)
Recently Browsing
 1 Guest(s)