Ah ha! Found out how to do it. There is actually a function that was lying around in there unimplemented. So if you want to use MAG_MASSES so that a spell will hit not just others in the room but even ones in your group. I even added a little condition checking to see if it was a specific spell that would even hit the caster.
Code:
/* Mass spells affect every creature in the room except the caster. No spells
* of this class currently implemented. */
void mag_masses(int level, struct char_data *ch, int spellnum, int savetype)
{
struct char_data *tch, *tch_next;
const char *to_char = NULL, *to_room = NULL;
switch (spellnum) {
case SPELL_CONFLAGRATION:
to_char = "You harness all the power you can, and scream as you release a massive explosion of fire that envelopes the area!";
to_room = "$n harnesses as much power as $e can and screams, releasing a massive explosion of fire that envelopes the entire area!";
break;
}
if (to_char != NULL)
act(to_char, FALSE, ch, 0, 0, TO_CHAR);
if (to_room != NULL)
act(to_room, FALSE, ch, 0, 0, TO_ROOM);
for (tch = world[IN_ROOM(ch)].people; tch; tch = tch_next) {
tch_next = tch->next_in_room;
if ((tch == ch) && (spellnum != SPELL_CONFLAGRATION)) // Skips Caster unless using Conflagration
continue;
if (!IS_NPC(tch) && GET_LEVEL(tch) >= LVL_IMMORT) // Skips Immortal
continue;
if (!CONFIG_PK_ALLOWED && !IS_NPC(ch) && !IS_NPC(tch)) // Skips if No PK
continue;
mag_damage(level, ch, tch, spellnum, 1);
}
}
So, another example, if you want to make Earthquake hit even your party members or something, make this change:
Code:
spello(SPELL_EARTHQUAKE, "earthquake", 40, 25, 3, POS_FIGHTING,
TAR_IGNORE, TRUE, MAG_AREAS,
NULL);
// change it to the below statement
spello(SPELL_EARTHQUAKE, "earthquake", 40, 25, 3, POS_FIGHTING,
TAR_IGNORE, TRUE, MAG_MASSES,
NULL);
Anyways, quick example, yes it doesn't check for the victim to be flying, but just using this as a quick sample.
Hope this helps someone else out there.