mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-14 07:21:48 +00:00
Client doesn't check AA casting standstate
Fixes an exploit and makes you stand if you're just sitting
This commit is contained in:
parent
4e0d85534e
commit
d4395a6f0a
11
zone/aa.cpp
11
zone/aa.cpp
@ -1208,6 +1208,17 @@ void Client::ActivateAlternateAdvancementAbility(int rank_id, int target_id) {
|
||||
if (spells[rank->spell].targettype == ST_Pet || spells[rank->spell].targettype == ST_SummonedPet)
|
||||
target_id = GetPetID();
|
||||
|
||||
// extra handling for cast_not_standing spells
|
||||
if (!spells[rank->spell].cast_not_standing) {
|
||||
if (GetAppearance() == eaSitting) // we need to stand!
|
||||
SetAppearance(eaStanding, false);
|
||||
|
||||
if (GetAppearance() != eaStanding) {
|
||||
Message_StringID(MT_SpellFailure, STAND_TO_CAST);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Bards can cast instant cast AAs while they are casting another song
|
||||
if(spells[rank->spell].cast_time == 0 && GetClass() == BARD && IsBardSong(casting_spell_id)) {
|
||||
if(!SpellFinished(rank->spell, entity_list.GetMob(target_id), EQEmu::CastingSlot::AltAbility, spells[rank->spell].mana, -1, spells[rank->spell].ResistDiff, false)) {
|
||||
|
||||
@ -418,6 +418,7 @@
|
||||
#define NO_LONGER_HIDDEN 12337 //You are no longer hidden.
|
||||
#define STOP_SNEAKING 12338 //You stop sneaking
|
||||
#define NOT_IN_CONTROL 12368 //You do not have control of yourself right now.
|
||||
#define STAND_TO_CAST 12441 //You must be standing to cast a spell.
|
||||
#define ALREADY_CASTING 12442 //You are already casting a spell!
|
||||
#define SHIMMERS_BRIEFLY 12444 //Your %1 shimmers briefly.
|
||||
#define SENSE_CORPSE_NOT_NAME 12446 //You don't sense any corpses of that name.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user