mbbsemu / MBBSEmu

The MajorBBS Emulation Project is an Open Source, Cross-Platform emulator for easily running The MajorBBS & Worldgroup Modules
https://www.mbbsemu.com
MIT License
126 stars 14 forks source link

[MUICHAOS] Swords of Chaos - GameOp player editor crashes system #547

Open Ohmz1290 opened 2 years ago

Ohmz1290 commented 2 years ago

Module Information [MUICHAOS] [Swords of Chaos] [4.17]

Describe the bug Inside the gameop menu, when editing a player, if you try to use the arrow keys to move to another field, or if you hit enter in the field you're on, it will crash the system.

To Reproduce Steps to reproduce the behavior:

  1. Open Swords of Chaos module and login as a gameop user. (must add key "GAMEOP" to the user account, /sys addkey GAMEOP)
  2. Enter the game, then type "gameop". Must have special permission "player editor" set to on, type "s0" to toggle it on/off. "x" to exit permissions sub-menu.
  3. "d" for player editor. Type in a valid user name and hit enter, your own is fine, then "a" to edit stats.
  4. Hit enter or arrow up or down, and the system will crash.
  5. See crash error

Expected behavior Normal behavior is for the editor to go to the next field when you hit enter. Up or down arrows will also normally take you to other fields (arrow down for next field, arrow up for previous field).

Crash Error: MBBSEmu will crash with error from the gameop player stats editor with the following: Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object. at MBBSEmu.HostProcess.Fsd.FsdUtility.<>c.b__7_0(FsdFieldSpec field) at System.Linq.Enumerable.Sum[TSource](IEnumerable1 , Func2 ) at MBBSEmu.HostProcess.Fsd.FsdUtility.BuildAnswerString(FsdStatus fsdStatus) at MBBSEmu.HostProcess.HostRoutines.FsdRoutines.FieldVerificationRoutine(SessionBase session, FsdStatus fieldStatus) at MBBSEmu.HostProcess.HostRoutines.FsdRoutines.ValidateField(SessionBase session, FsdStatus fsdStatus) at MBBSEmu.HostProcess.HostRoutines.FsdRoutines.InFullScreenDisplay(SessionBase session) at MBBSEmu.HostProcess.HostRoutines.FsdRoutines.ProcessSessionState(SessionBase session, Dictionary`2 modules) at MBBSEmu.HostProcess.MbbsHost.WorkerThread() at System.Threading.Thread.StartCallback()

Software Information:

enusbaum commented 2 years ago

This could be an error with the FSD as I think the only real template we've ever tested with was MajorMUD's character creation screen. I'll have to take a look at the template used by SOC and see that's up! 👍