morphing

Posted by GenmaC on Sun 10 Feb 2002 11:15 PM — 8 posts, 28,505 views.

#0
morphcreate doesn't seem to work - what's with that? (using smaug 1.4a win32 compile, no mods)
#1
Ok, I figured that part out - it just wasn't linked from commands.dat. However, any more info on morphs would be very helpful, since the docs aren't very specific.
#2
Ok, figured it all out - morphs are cool...just in case any else ever has this problem, here's what you do to get morphs working in 1.4a Win compile.

1) link the do_morphset, do_morphstat, etc. functions to commands in commands.dat

2) edit polymorph.c, and near line 1895, comment out the entire part where it tests for misread. For some reason, it always returns a fail when reading your morph - very annoying.

3) recompile

4) enter your morph with morphset, etc. - boy, it'd be cool if AreaEditor could do morphs, but whatever.

5) You are done! If this helps anyone, even one person, reduce time wasted on this problem, I will die happy.

I tested the above solution, it crashed a few times when I had some misentered stuff for morphself, but seems stable if everything is correct. (tried 5 or 6 reboots, and multiple morphs, unmorphs, all mixed together)
#3
There's also a few more lines to change in polymorph.c if you want the morph->timer to work correctly (aka have them change back after a period of time). I'll post them on the web tomorrow and leave a link here then.

Also, in skills.dat, if you want the polymorph skill to work, you need to change the Code entry for it from spell_null to spell_polymorph.

One more thing: revert doesn't work at all. Dunno why...I'm going to try implementing it as a spell and see what happens.
#4
http://dualtranslations.org/smaug/polymorph_fix.html

On the page, it says I can't figure out revert, but that's not true now - you have to write revert from scratch, but I don't want it on my MUD anyway, so I haven't done that. Just do whatever you do when adding a new command.
#5
Well, revert is to turn back, correct?
Morph essentually moves your body to the "storage" room and replaces you with a mobile, therefore if one looked at the code for revert it seems to me that by simply reversing the proccess you could revert.
Also, I beleive that revert isnt used and a timer is, thats what I've been told anyway.
#6
Yeah, you just create a wrapper function called do_revert and have it point to do_unmorph or the like.

The timer doesn't work unless you implement the changes on my page, btw.
#7
Also you can download SADIQS version of Circlemud
which has the 68 major known bugfixes applied...
Including polymorph.
(If you want the link, post and ask)