Welcome to the Builder Academy

Question Q: About those spells

More
28 Jan 2020 21:45 - 28 Jan 2020 22:06 #8518 by Castillo
Hello,

Anyone can tells me more about the spell animate dead? also, waterwalk, and teleport (SPELL_TELEPORT)

Is that immortal spells only?

500H 100M 82V AFK (news) > help animate-dead
ANIMATE-DEAD

Usage: cast 'animate dead' corpse

This spell will harness evil necromancy magic and bring life into a
corpse, creating a zombie. The corpse will do the bidding of its master.


I can find his spello in spell_parser.c
Code:
void mag_assign_spells(void) { int i; /* Do not change the loop below. */ for (i = 0; i <= TOP_SPELL_DEFINE; i++) unused_spell(i); /* Do not change the loop above. */ spello(SPELL_ANIMATE_DEAD, "animate dead", 35, 10, 3, POS_STANDING, TAR_OBJ_ROOM, FALSE, MAG_SUMMONS, NULL);

but, i can't find any spell_level about it in class.c,
example of spells assign
:

void init_spell_levels(void)
{
/* MAGES */
spell_level(SPELL_MAGIC_MISSILE, CLASS_MAGIC_USER, 1);
spell_level(SPELL_DETECT_INVIS, CLASS_MAGIC_USER, 2);
spell_level(SPELL_DETECT_MAGIC, CLASS_MAGIC_USER, 2);


"help spell" doesn't show any assignement either.

Anyone know?

Bob
Last edit: 28 Jan 2020 22:06 by Castillo.

Please Log in or Create an account to join the conversation.

More
29 Jan 2020 02:08 - 29 Jan 2020 02:29 #8519 by krell
Replied by krell on topic Q: About those spells
IIRC correctly, it turns a corpse into an undead follower. I don't THINK it's restricted to Immortals as it was a non-imm attainable spell for mage players back when I used to play circlemuds back in the 90's.

$ grep -Rn 'SPELL_ANIMATE_DEAD' tbamud-2020/src/* | more
tbamud-2020/src/magic.c:736: case SPELL_ANIMATE_DEAD:
tbamud-2020/src/spell_parser.c:725: spello(SPELL_ANIMATE_DEAD, "animate dead", 35, 10, 3, POS_STANDING,
tbamud-2020/src/spells.h:86:#define SPELL_ANIMATE_DEAD 45 /* Reserved Skill[] DO NOT CHANGE */


Defines in spells.h
Code:
#define SPELL_ANIMATE_DEAD 45 /* Reserved Skill[] DO NOT CHANGE */

mag_summons() in magic.c
Code:
case SPELL_ANIMATE_DEAD: if (obj == NULL || !IS_CORPSE(obj)) { act(mag_summon_fail_msgs[7], FALSE, ch, 0, 0, TO_CHAR); return; } handle_corpse = TRUE; msg = 11; fmsg = rand_number(2, 6); /* Random fail message. */ mob_num = MOB_ZOMBIE; pfail = 10; /* 10% failure, should vary in the future. */ break;

$ grep -Rn 'MOB_ZOMBIE' tbamud-2020/src/* | more
tbamud-2020/src/magic.c:703:#define MOB_ZOMBIE 11 /**< vnum for the zombie mob. */
tbamud-2020/src/magic.c:744: mob_num = MOB_ZOMBIE;
tbamud-2020/src/magic.c:794:#undef MOB_ZOMBIE


Defines for MOB_ZOMBIE in magic.c
Code:
#define MOB_ZOMBIE 11 /**< vnum for the zombie mob. */ . . void mag_summons(...) . . #undef MOB_ZOMBIE

And you've already posted the fragment from mag_assign_spells() in spell_parser.c

grep -Rn 'animate dead' tbamud-2020/src/* | more
tbamud-2020/src/spell_parser.c:725: spello(SPELL_ANIMATE_DEAD, "animate dead", 35, 10, 3, POS_STANDING,


Ah, the '90's and music by the group Mob Zombie....

But it might be one of those things that you're expected to set up levels for which a player can acquire such a skill on your own?
Last edit: 29 Jan 2020 02:29 by krell.

Please Log in or Create an account to join the conversation.

More
29 Jan 2020 03:53 - 29 Jan 2020 04:21 #8520 by krell
Replied by krell on topic Q: About those spells
In init_spell_levels() in class.c I made the following change, recomplied, and did a copyover.
Code:
spell_level(SPELL_IDENTIFY, CLASS_MAGIC_USER, 20); + spell_level(SPELL_ANIMATE_DEAD, CLASS_MAGIC_USER, 21); /* Testing Purposes */ spell_level(SPELL_FLY, CLASS_MAGIC_USER, 22);

I logged into my mort and set the level to 21.

> prac
You have 7 practice sessions remaining.
You know of the following spells:
animate dead (not learned)
armor (good)
blindness (good)
burning hands (good)
charm person (not learned)
chill touch (good)
color spray (not learned)
curse (not learned)
detect invisibility (poor)
detect magic (poor)
detect poison (poor)
energy drain (not learned)
fireball (not learned)
identify (not learned)
infravision (poor)
invisibility (poor)
lightning bolt (good)
locate object (poor)

[ Return to continue, (q)uit, (r)efresh, (b)ack, or page number (1/2) ]


Setting my mort's level in 'animate dead' to 100 I then killed a beastly fido and cast the spell.

71H 123M 85V > cast 'animate dead' corpse
Okay.
The zombie starts following you.

71H 104M 94V > l
Main Street
You are on the main street crossing through town. To the north is the
general store, and the main street continues east. To the west you see and
hear the market place, to the south a small door leads into the Pet Shop.
[ Exits: n e s w ]
A strange humanoid is here. How odd, its flesh seems to be falling off!

71H 104M 94V >


Commenting out the define for SPELL_ANIMATE_DEAD in init_spell_levels() of class.c, recompiling, and performing another copyover resulted in my mort losing the spell.

71H 133M 94V > prac
You have 7 practice sessions remaining.
You know of the following spells:
armor (good)
blindness (good)
burning hands (good)
charm person (not learned)
chill touch (good)
color spray (not learned)
curse (not learned)
detect invisibility (poor)
detect magic (poor)
detect poison (poor)
energy drain (not learned)
fireball (not learned)
identify (not learned)
infravision (poor)
invisibility (poor)
lightning bolt (good)
locate object (poor)
magic missile (fair)

[ Return to continue, (q)uit, (r)efresh, (b)ack, or page number (1/2) ]


So I think this confirms that this is left to the implementor to decide if they want these spells enabled, at what levels, and any modifications to the help files regarding duration, levels, etc....
Last edit: 29 Jan 2020 04:21 by krell.

Please Log in or Create an account to join the conversation.

More
29 Jan 2020 05:11 - 29 Jan 2020 05:52 #8521 by Castillo
Replied by Castillo on topic Q: About those spells

So I think this confirms that this is left to the implementor to decide if they want these spells enabled, at what levels, and any modifications to the help files regarding duration, levels, etc....


I thought, maybe it was removed to figure out a bug, and it become forgotten. (ANIMATE DEAD)

Actually, it's not that i need them.
I'm working on a spell and skills OLC. That i want to be compatible with build-in original spells and skills.

from spells.h:
SPELL_VENTRILOQUATE : defined, but doesn't exist.
SPELL_GROUP_RECALL : defined, but doesn't exist.
SPELL_ANIMATE_DEAD : not assigned to any classes.
SPELL_WATERWALK : not assigned to any classes.
SPELL_TELEPORT : not assigned to any classes.

Well, i'll leave them that way, and ignore VENTRILOQUATE.

Bob
Last edit: 29 Jan 2020 05:52 by Castillo.

Please Log in or Create an account to join the conversation.

Time to create page: 0.202 seconds