Hi all,
Below is the code in my mud at current for adding a monster
summoning spell. Its pretty much exactly what comes with the mud, with
stuff I dont need taken out and my case statement added. Firstly will
this work as is. I will remove the /*'s in my case statement when I make
the relavent mobs. If it is right what else will I have to do to add the
spell to my game. Eg, add it in class.c, etc. What type of spello do I
need? Do I just have to add it to class.c spells.h and add a spello?
Thanks for any help.
Fionn
void mag_summons(int level, struct char_data * ch, struct obj_data * obj,
int spellnum, int savetype)
{
struct char_data *mob = NULL;
int pfail = 0;
int msg = 0, fmsg = 0;
int a, i;
int mob_num = 0;
int num_mobs = 1;
if (ch == NULL)
return;
switch (spellnum) {
case SPELL_MONSTER_SUMMON_I:
a = number(1, 12);
msg = 3;
fmsg = 6;
pfail = 0;
mob_num = 153;
break;
/*
switch (a) {
case 1:
mob_num = [Giant Ant Num]
break;
case 2:
mob_num = [Huge Bat Num]
break;
case 3:
mob_num = [Fire Beatle Num]
break;
case 4:
mob_num = [Bullywug Num]
break;
case 5:
mob_num = [Goblin Num]
break;
case 6:
mob_num = [Hobgoblin Num]
break;
case 7:
mob_num = [Jermlaine Num]
num_mobs = dice(3,4);
break;
case 8:
mob_num = [Kobold Num]
num_mobs = dice(3,4);
break;
case 9:
mob_num = [Giant Leech Num]
break;
case 10:
mob_num = [Muck Dweller Num]
break;
case 11:
mob_num = [Orc Num]
break;
case 12:
mob_num = [Giant Rat Num]
num_mobs = dice(3,4);
break;
}
*/
default:
return;
}
if (IS_AFFECTED(ch, AFF_CHARM)) {
send_to_char("You are too giddy to have any followers!\r\n", ch);
return;
}
if (number(0, 101) < pfail) {
send_to_char(mag_summon_fail_msgs[fmsg], ch);
return;
}
for (i = 0; i < num_mobs; i++) {
mob = read_mobile(mob_num, VIRTUAL);
char_to_room(mob, ch->in_room);
IS_CARRYING_W(mob) = 0;
IS_CARRYING_N(mob) = 0;
SET_BIT(AFF_FLAGS(mob), AFF_CHARM);
add_follower(mob, ch);
act(mag_summon_msgs[msg], FALSE, ch, 0, mob, TO_ROOM);
}
}
This archive was generated by hypermail 2b30 : 12/18/00 PST