Talk:Revive

From NetHackWiki
Jump to navigation Jump to search

I'm sure this has been posted many a time before, but I found this interesting block of code in zap.c, line 648:

			if (obj->oxlth && (obj->oattached == OATTACHED_M_ID)) {
			    unsigned m_id;
			    struct monst *ghost;
			    (void) memcpy((genericptr_t)&m_id,
				    (genericptr_t)obj->oextra, sizeof(m_id));
			    ghost = find_mid(m_id, FM_FMON);
		    	    if (ghost && ghost->data == &mons[PM_GHOST]) {
		    		    int x2, y2;
		    		    x2 = ghost->mx; y2 = ghost->my;
		    		    if (ghost->mtame)
		    		    	savetame = ghost->mtame;
		    		    if (canseemon(ghost))
		    		  	pline("%s is suddenly drawn into its former body!",
						Monnam(ghost));
				    mondead(ghost);
				    recorporealization = TRUE;
				    newsym(x2, y2);

It sounds like you can (or the code is in there for it to be done) for a ghost corpse (?) to be recorporealized? Is there any in game situation where this may happen? I tried using Turn Undead on ghosts - obviously this just did damage to them. I also tried turning stone to flesh on ghost figurines and statues, but that predictably created meatballs. Is this something for bone levels (is it possible to force a bones level in Wizard mode by chance?)

Thought that I'd share this. Strongsauce1 16:03, September 12, 2010 (UTC)

If you revive the corpse in a bones level, the ghost is removed as the former player revives. Interestingly, if you tame the ghost first, the game will attempt to tame the resulting player monster, although this will only make the monster peaceful if it was a human. This also doesn't create a player monster, but rather a generic human/elf/gnome/dwarf/orc.
This happened to me in my last SLASH'EM game. I encountered my ghost in a bones, and in the middle of fighting it, I suddenly got the "drawn into..." message and the ghost disappeared. I assume that what happened then was the corpse 'revived' as a mold, as I didn't zap do anything to revive the corpse myself. -- Qazmlpok 16:22, September 12, 2010 (UTC)
Very interesting. I have been trying to replicate it but have been unable to do so thus far. I have tried in Wizard mode in both Nethack and SLASH'EM creating bones levels with the "Wizard" name starting at levels 4,5,6 and so on and then engaging them in combat. I only ever end up killing them sadly. I tried the same thing in a non-wizard setting with identical sets of characters (name, alignment, race etc), even so I stll end up just killing them even in drawn out combat of me kicking them to (re)death. I'm probably missing something. thanks for your input. Strongsauce1 19:00, September 12, 2010 (UTC)
Try reviving the corpse instead of kicking the ghost. It only happened spontaneously in SLASH'EM because most corpses have a large chance of turning into molds/fungi. Honestly I'd consider the ghost being drawn into the fungus a bug. -- Qazmlpok 19:12, September 12, 2010 (UTC)
Clearly I've been hitting the !oBooze too hard as I somehow interpreted from your original comment that the ghost had inhabited the PLAYER not the corpse. After testing it appears that this happens exactly as you had put it, I assume that the corpse in the SLASH'EM case turned to a mold right as the message went out. Anyway, summary of what can happen is that undead turning will allow a ghost on it's own corpse to return to that corpse. If the ghost is peaceful, the turned corpse will become peaceful, and if tame the turned corpse will be tame. For example I polymorphed into a master mind flayer, killed myself, tamed the ghost using Scroll of Taming, zapped Undead Turning and voila, master mind flayer pet. Strongsauce1 21:46, September 12, 2010 (UTC)
The code only shows hostility being saved if the ghost was tame. A peaceful ghost should make a hostile monster (assuming the monster wouldn't naturally be made peaceful; I assume one dwarf undead turning the corpse of another former dwarf would normally create a peaceful Dwarf monster). I got a peaceful human from my testing because humans cannot normally be made tame, only peaceful. Are you sure a peaceful ghost makes a peaceful monster? -- Qazmlpok 22:38, September 12, 2010 (UTC)
Ooops, you are correct. The same thing happened to me with a peaceful human after reading a taming scroll to make a ghost peaceful, but after looking at the code it looks like the resulting monster's attitude from the ghost can only be tame or hostile, the ghost being peaceful has no bearing on it. Thanks for pointing that out, I'll fix it. Strongsauce1 22:47, September 12, 2010 (UTC)