So now I have my max mortal level to 902, max imm 917. I'm having a problem with the xp. It goes into the negatives at some point. I actually want it to be a set amount of xp per every 100 or so levels. Is there an easy way to do this?
Commands.dat is the file that links what you type (eg. "who") to the internal function that handles it (eg. do_who). So it is very important. It also specifies the minimum level to do the command, and the minimum position (eg. standing, fighting). The "log" parameter is for logging some commands (eg. things an imm might do like booting someone).
It seems it was the commands.dat that was preventing wizhelp from acting properly. Odd, I just thought it was used for help files. Thanks for the help on this.
Nick is right, it is almost assuredly your need to change the level of -all- wizcommands in command.dat. If you look at the above post, the poster shows the steps he went through to correctly change the max level as well.
Did you change the levels for the wizard commands themselves?
Inside do_wizhelp there is this test:
if( cmd->level >= LEVEL_HERO && cmd->level <= get_trust( ch ) )
--- show the command
In other words, wizhelp shows commands that are in the range LEVEL_HERO to your character's level. So if you left all the wizard commands as (say) level 60 commands, they will fail that test.
If imms are 903 to 917 then for wizhelp to show them, the commands in the commands.dat file must have a level in that exact range.
I tried changing the help level of wizhelp in the commands.dat and it still doesn't work. Tried changing MAX_LEVEL to 70, it lists half the wizhelp commands that it should. 69, 68, etc. all the way down to 65, none of them work fully except level 65, which is what it was originally anyways. I guess its a step in the right direction since it wasn't showing wizhelp at all before, but I just tried setting my chars pfile to be level 70 instead of 65, and he can see all the wizhelp info but can't be shown on the who list. This still doesn't explain why if I change MAX_LEVEL that the help files don't work.
In the code, imm levels are dynamic. They take MAX_LEVEL and alter it. So highest level is 917, this would be the highest level immortal. MAX_LEVEL - 15 is what it has for mortal levels, which would be 902 mortal levels. I looked at that part of the code for a long time. Also after seeing this error I did a grep '65' * in the source directory to see if it was hard coded somewhere and cannot find it being hard coded into commands. Unless the actual commands.dat file is hard coded this way, but that wouldn't explain why some imm commands work and some don't. redit, goto, things like that work. wizhelp and others don't.
Amended on Sun 02 May 2010 06:17 PM (UTC) by Twisol
Message
I know absolutely nothing about SMAUG, so take this with a whole shaker's worth of salt. But... Is it possible that the "wizlevels" are considered to start after MAX_LEVEL? So if MAX_LEVEL is 100, and your level is 150, you'd be considered to have wizlevel 50? So if you change MAX_LEVEL to 125, your wizlevel would drop to 25. Maybe?
I have a pretty stock SMAUG FUSS 1.9 which I downloaded last week. It runs perfectly fine but I want to change the max level. Every time I do this, it changes just fine, but some of the imm commands (wizhelp and others) do not work anymore. Also when looking at score, it says my Wizlevel is 65. Is there something I'm missing?
The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).
To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.