Difference between revisions of "User:Bluescreenofdeath/Known Bugs"

From NetHackWiki
Jump to navigation Jump to search
(Found a bug.)
(grammer)
Line 8: Line 8:
 
* Some systems seem to have a bug with level-drain attacks that can cause them to instantly kill the character. Again, I can't reproduce it, and the level drain code doesn't seem to have any bugs, but until someone finds out what is causing this, players who are experiencing this bug may want to use items with high magic cancellation and drain resistance.
 
* Some systems seem to have a bug with level-drain attacks that can cause them to instantly kill the character. Again, I can't reproduce it, and the level drain code doesn't seem to have any bugs, but until someone finds out what is causing this, players who are experiencing this bug may want to use items with high magic cancellation and drain resistance.
  
* Creating a potion via #dip-ping gems into acid will can crash the game when the potion gets used/identified. The cause is that in objects.c, many more decriptions of potions are defined than there are actual potions, but dipping gems in acid creates potions BASED on their Description. E.g. dipping a Topaz into acid makes a "Murky" potion, which may possibly only exists as a description. Any attempt to utilize this pseudo potion will always result in a crash.
+
* Creating a potion via #dip-ping gems into acid can crash the game when the potion gets used/identified. The cause is that in objects.c, many more descriptions of potions are defined than there are actual potions, but dipping gems in acid creates potions BASED on their description. E.g. dipping a Topaz into acid makes a "Murky" potion, which may only exists as a description. Any attempt to utilize these pseudo potions will always result in a crash.
 
: Possible fixes, based on ease;
 
: Possible fixes, based on ease;
 
# Reduce the number of potion descriptions in objects.c to match the number of actual potions, while retaining all the ones needed for the acid dipping (listed from line 2009 in potion.c).
 
# Reduce the number of potion descriptions in objects.c to match the number of actual potions, while retaining all the ones needed for the acid dipping (listed from line 2009 in potion.c).

Revision as of 07:28, 9 August 2014

This page lists known bugs of Slash'EM Extended that aren't fixed yet. Any information that may help fixing them is appreciated; this is especially true for serious bugs that crash the game or (even worse) break savegame files.

  • Punished players frequently crash on the Plane of Water.
  • If there is no free space on a level and the game triggers a group spawn, the game may hang.
  • Sometimes if a monster dies or certain other things happen, the game gives a "dmonsfree: 1 removed doesn't match 2 pending" disorder message. The game still runs afterwards but sometimes monsters come back to life after saving and restoring; the exact cause is still unknown.
  • Certain events can trigger a "cant find o_id <number>" message, sometimes followed by a game crash that may leave an unrecoverable savegame file. As long as I can't find a way to fix this serious bug, all players are advised to regularly back up their savegames so they don't lose all progress if the bug strikes; being able to track down and fix this bug would be great...
  • Certain other events can trigger an "obj_is_local" panic which may also cause savegame files to be unrecoverable. Looking at the source of old SLASH'EM versions and certain other variants suggests it has to do with light sources but I currently can't reproduce it...
  • Some systems seem to have a bug with level-drain attacks that can cause them to instantly kill the character. Again, I can't reproduce it, and the level drain code doesn't seem to have any bugs, but until someone finds out what is causing this, players who are experiencing this bug may want to use items with high magic cancellation and drain resistance.
  • Creating a potion via #dip-ping gems into acid can crash the game when the potion gets used/identified. The cause is that in objects.c, many more descriptions of potions are defined than there are actual potions, but dipping gems in acid creates potions BASED on their description. E.g. dipping a Topaz into acid makes a "Murky" potion, which may only exists as a description. Any attempt to utilize these pseudo potions will always result in a crash.
Possible fixes, based on ease;
  1. Reduce the number of potion descriptions in objects.c to match the number of actual potions, while retaining all the ones needed for the acid dipping (listed from line 2009 in potion.c).
  2. Alter acid + gem dipping (2009, potion.c) to give set potion effects rather than set potion descriptions, e.g.
instead of;
	  case RUBY:
	    potion_descr = "ruby";
	    break;
	  case GARNET:
	    potion_descr = "pink";
	    break;
	  case JASPER:
	    potion_descr = "purple-red";
	    break;
use
	  case RUBY:
	    return POT_GAIN_ABILITY;
	    break;
	  case GARNET:
	    return POT_RESTORE_ABILITY;
	    break;
	  case JASPER:
	    return POT_HEALING;
	    break;
  1. add some kind of check to the acid dipping to make sure they are real potions, and to substitute with a default if the potion isn't fully defined, eg if "purple-red" potion doesn't exist, return POT_GAIN_ENERGY
Frankly option 1 is boring, option 2 is the sensible but goes against the original purpose, and option 3 is probably a bit difficult for me. If you want, I can write up the full conversion for option 2. Just leave a note and I'll check back within 24 hours. --124.171.109.164 07:26, 9 August 2014 (UTC)