Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Testing v0.25 #23

Open
12 of 13 tasks
rickparrish opened this issue Aug 5, 2021 · 109 comments
Open
12 of 13 tasks

Testing v0.25 #23

rickparrish opened this issue Aug 5, 2021 · 109 comments

Comments

@rickparrish
Copy link
Owner

rickparrish commented Aug 5, 2021

New issue for testing/tracking v0.25

TODO LIST

  • Skip local login for /HMAINT and other params
  • (S)tatus -> (M)ore -> Darkness, dungeon fights, etc, are misaligned
  • Divorcing when not married
    • Use of uninitialized variable: found
  • Statusbar appears in local mode
    • DDPLUS.Display_Status() wasn't taking Local and STDIO modes into account
  • Update message displayed when trying to divorce while not married
  • Fix read past end of file during maintenance when GODS.DAT is 0 bytes
  • Don't pause after trying to display an error if displaying errors is disabled
  • Display name of requested section in error message when USUTEXT.DAT is missing
  • Hang when starting on Linux Testing v0.25 #23 (comment)
  • In the gym, get a "white water" massage, this can result in receiving extra healings. You have to either apply for gym membership or take over the gym in order to take advantage of this.
  • Wish for healings at the well in the dungeon.
  • There's also an event in the dungeon where you can open a treasure chest and get a few potions
  • Shaking hands when dead Testing v0.25 #23 (comment)
@codefenix-ConChaos
Copy link

First test running locally using the go32v2 build in a DOSBox window. So far so good.

Created a character and did a few dungeon runs. Basic functions & gameplay work as expected. Hitting [Enter] defaults to the first available monster as it should.

Both the game and the editor agree on the stats now while viewing player data.

I agree that /HMAINT and /FMAINT will be nice to have again. I run /FMAINT nightly so that callers don't have to wait several minutes if they're the first one playing.

Will test on the BBS for a few days, gain some levels and report further.

Great work!

@xbit44
Copy link

xbit44 commented Aug 5, 2021

In 0.25 (dos) when going to Love Corner and hitting [D]ivorce i'll get the following (Note, I'm not married so not sure what happens yet if i was):

Better get rid of the matrimonial bonds right away!
The family is gathered!
You and ╕%-╣%- ╗%-     ╕%-}L have been married for 0 days.
Divorce ╕%-╣%- ╗%-     ╕%-}L ? (Y/[N])

If I pick No and then head to the Dungeons I'll see the following:

The Dungeons of Drunghin
As you descend to Dungeon Level 5 you tighten your grip to your weapon.
You feel that evil lurk nearby... You wonder whether you ever shall
see the sun shine again...

╕%-╣%- ╗%-     ╕%-}L the is here
[22 fights left]
Dungeon level 5 (? for menu) :

When I exit the game and re-enter then things are once again displayed normally.

@codefenix-ConChaos
Copy link

I am able to recreate the divorce bug described by @xbit44, although it looks slightly different for me.

image

The event shows up in the news like this:

image

@rickparrish
Copy link
Owner Author

Can confirm on the Win64 build as well. Did this bug exist in previous versions?

@codefenix-ConChaos
Copy link

Version .20e does indeed allow the option to Divorce without being married. I just tried it on one of my .20e games here:

image

It does not show the corruption as in the current build, just a blank for the divorcee's name.

@xbit44
Copy link

xbit44 commented Aug 5, 2021 via email

@codefenix-ConChaos
Copy link

codefenix-ConChaos commented Aug 5, 2021

@xbit44 , quick question. Are you testing the game in "classic mode" or "new mode"?

So far all my feedback has been for "classic".

@xbit44
Copy link

xbit44 commented Aug 5, 2021 via email

@rickparrish
Copy link
Owner Author

Thanks for checking the older versions, that saved me from going through the commit log to see what had changed!

The divorce bug was caused by a found variable being used before it had been initialized (or since it is a global variable, maybe a different function set found:=true before the divorce function was called), and that resulted in the game thinking a spouse was found.

For some reason this bug wasn't triggered when debugging via the Lazarus IDE, so that made it interesting to track down!

@rickparrish
Copy link
Owner Author

Just pushed new binaries with the latest fixes!

@codefenix-ConChaos
Copy link

codefenix-ConChaos commented Aug 6, 2021

/FMAINT and /HMAINT both working.

Divorce bug fixed. However, I got a funny response, playing as an unmarried male character:

image

Looking at the LOVERS.PAS file, it looks like the response is supposed to vary based on the character's gender, but the way it's coded makes it use the character's own gender to make the husband/wife determination rather than the gender of his/her would-be divorcee (who happens to be no one).

d(12,'Go and find yourself a '+sex5[player.sex]+' before it''s too late!');

Tried it as a female character and got this:
image

Suggestion: simply change it to "spouse" (just in this instance) so the game doesn't have to guess?

@rickparrish
Copy link
Owner Author

However, I got a funny response, playing as an unmarried male character:

That's funny, I saw that prompt about a dozen times while trying to get the debugger to trigger the error, and not once did I notice what it said!

Suggestion: simply change it to "spouse" (just in this instance) so the game doesn't have to guess?

This was my first thought as well, so that's what I'll do.

@xbit44
Copy link

xbit44 commented Aug 6, 2021

I've been running v0.19 PT6 for so long, i'm not sure if this has changed. in .19 you will have NPC's playing along side you and when you level up they will send "grats" or other funny comments. When i play with .25 and press ctrl-w it never shows "on-line" npc's?

@codefenix-ConChaos
Copy link

you will have NPC's playing along side you and when you level up they will send "grats" or other funny comments.

I believe you're referring to "fake players" and their tendency to be "chatty". I remember this being a thing in .20e as well.

The default is having two chatty fake players (lines 159 and 188 in USURPER.CFG). I honestly tend to tune the fake players out, but next time I test I'll pay closer attention to whether they show up.

@xbit44
Copy link

xbit44 commented Aug 6, 2021 via email

@xbit44
Copy link

xbit44 commented Aug 6, 2021

image

@xbit44
Copy link

xbit44 commented Aug 6, 2021

And then a ctrl-w when both are logged into Main street:
image

@codefenix-ConChaos
Copy link

There's a commit named "fake player garbage" showing changes made to ONLINE.PAS, which appear to make fake player interactions happen less frequently.

d8801d3#diff-f512779367fe8844eeaa39c325d33780545c0e39adf5b835b52d35c932ef8dbf

There's also an entry in the changelog linked to it which also calls out "^w" (Ctrl+W):

-Garbage occasionally produced when checking (^w)ho is online. Fixed. (Thanks Alex G)

Maybe the fix from that time is preventing online players from being listed altogether?

@xbit44
Copy link

xbit44 commented Aug 6, 2021

Good find. Yeah, it seems all inter-node coms are not working. Like when a new player enters the game, it should say "x" has joined or something like that.

@rickparrish
Copy link
Owner Author

rickparrish commented Aug 6, 2021

"fake player garbage" may be referring to the fact that s could go uninitialized if the case statement is missing one of the possible locations. Dan initialized it to 'xxx' beforehand, which would cause that to be displayed instead of garbage in a missing-location scenario.

For CTRL-W (and CTRL-T) it looks like those are global hotkeys that work at any menu, and so they're handled in the DDPLUS function for reading input. When I switched to RMDoor that functionality was lost. And it's a little weird for the doorkit to be calling routines in the main game, so I'll have to think about how to re-introduce that functionality.

One easy option would be to just add it as a hotkey to the main menu, but then it wouldn't be global anymore, so not sure how much of a negative that would be. In fact it looks like it's already an undocumented hotkey on the main menu -- if you hit ! then it'll show the online players.

EDIT: I have a feeling the NPC activity is also triggered in DDPLUS, which would explain why it stopped in the switch to RMDoor.

@dan1982code
Copy link
Collaborator

Aha yes -- I remember Jakob hacked ddplus to jam the global hotkeys in there. We could do similarly for rmdoor (not great design, I agree).

@rickparrish
Copy link
Owner Author

I'm thinking a method for registering global hotkeys would make sense. The tricky part will be making sure they only execute at menus and not while entering text -- Jakob had a lot of different input routines, and this is probably why -- the one that supported global hotkeys was probably never called when entering your Alias for example.

@rickparrish
Copy link
Owner Author

After thinking about it more, I don't think the switch from DDPlus to RMDoor was a good one, so I've just reverted to DDPlus again on a new branch.

The only thing "gained" by the switch was making it work with Mystic on Linux, but the "don't write to the socket" feature I added to RMDoor could have been added to DDPlus just as easily.

So if you'd like to give them a shot, these binaries should restore the lost event/global hotkey functionality. Since they're using DDPlus again, the original command-line parameters will be needed to launch it.

https://github.com/rickparrish/Usurper/tree/ddplus/bin

@xbit44
Copy link

xbit44 commented Aug 8, 2021

Thanks Rick! Note, I just see editor.exe for the dos version here: https://github.com/rickparrish/Usurper/tree/ddplus/bin/i386-go32v2

@rickparrish
Copy link
Owner Author

rickparrish commented Aug 8, 2021

Oops, didn't notice the build failed so it committed as a delete instead of an update -- thanks for pointing that out! There's a binary there now.

EDIT: I just realized the last time DDPlus was used was during the "only win32 and linux builds will be released" period, which is why the GO32V2 version initially failed to compile. So there's a lot of code commented out that says "Telnet can't..." that isn't needed for win32/linux, but may be needed for FOSSIL under GO32V2, so there's a pretty good chance a bit more work will be needed.

@xbit44
Copy link

xbit44 commented Aug 8, 2021

Will the new DDPlus command use the /P like stated in the usurper.exe /?
With the following command USURPER /Pc:\sf\drx-j the game loads on the BBS but i see nothing on the client side.

That said, i do see NPC's logging in and out again :)

image

@xbit44
Copy link

xbit44 commented Aug 8, 2021

I just noticed the "Edit" from your last post Rick. Perhaps that's why i'm not seeing anything on the client side..

@rickparrish
Copy link
Owner Author

There's new binaries to try out, which I tested on Synchronet and get remote I/O now.

A while back I added code to set the USURP.CTL settings to "smart" defaults, so then the game wouldn't error out if USURP.CTL was missing, but one related to initializing the FOSSIL wasn't such a smart default, so that's why you didn't have any remote I/O before.

And yes, the old /P syntax is the correct one to use now.

@xbit44
Copy link

xbit44 commented Aug 8, 2021

Works as intended w/ Spitfire as well!

image

@xbit44
Copy link

xbit44 commented Aug 8, 2021

Looks like all the bugs that @CraigEMP and I have presented have been squished. Any specific areas of .25 that you would like tested just say the word.

@xbit44
Copy link

xbit44 commented Mar 28, 2022

I'm also running the dos .25 on my spitfire bbs. My batch file looks like this for node 1:

cd c:\sf\doors\usurper4
bnu /p2
USURPER /N1 /Pc:\sf\drx-a
bnu /u

Use /N# for what node it is and /P to point to the drop file.

@BlaZZZed1980
Copy link

Interesting! I swear I tried the /P switch and I couldn't get the game to start at all. That's when I dug around and found (in another thread) the information about the /D switch having replaced it. But perhaps that is my issue. The only other difference is that I'm using the "adf" fossil driver for DOS instead of bnu.

I'll give it another shot with /P and see what happens. :) Thanks for the information.

BlaZ

@xbit44
Copy link

xbit44 commented Mar 28, 2022

You got it :D Hope that works.. I do remember having some issues as well when the switch to call the drop file changed some versions ago.

@BlaZZZed1980
Copy link

Wow... yeah, that did it. Thanks so much! All seems good now.

BlaZ

@BlaZZZed1980
Copy link

So now the only "bug" I have to report for 0.25 is that it seems the intro splash screens are missing. When I start the game, I get the pause prompt that normally comes at the end of the splash screen, but there is nothing ahead of it. Were those removed? Or did I screw something else up? :)

@xbit44
Copy link

xbit44 commented Mar 28, 2022

Awesome you got it working :) As for the splash screen issue access editor.exe and change the option on line 11 "INTRO-menu" to YES.

@BlaZZZed1980
Copy link

Nah, I have that set to yes. I get the Intro menu. What is missing is the ANSI splash screen that comes BEFORE that intro menu. It's usually a skull, or a purple Usurper logo, and has some nifty little inspirational message like "sleep with all the babes!" on it. They switch up randomly whenever you start the game.

It's not a big deal not having them. Just wondered if it was a "me" issue, or a "0.25" issue.

@xbit44
Copy link

xbit44 commented Mar 28, 2022

Hmm, not sure what it is then. If I change that to NO it also removes the splash screen for me.

@BlaZZZed1980
Copy link

Ahh, okay, so then you normally do get the splash screen before the menu? Then I've done something else wrong...lol. I'll look at it more and report back if I find out what it was.

@codefenix-ConChaos
Copy link

Do you see a file named USUTEXT.DAT in the DATA subdirectory?

If yes, is it empty (0 bytes)?

If yes, that's the problem. There's an issue that wipes out this file during install. I thought it was known at one point in time, but I can't seem to find any word here on it.

You'll have to grab an intact copy of USUTEXT.DAT from one of the archives here to fix the problem: https://github.com/rickparrish/Usurper/tree/master/ORIGINAL%20ARCHIVES

@BlaZZZed1980
Copy link

Thanks CraigEMP. That was it. That file is 0 bytes. I appreciate the information!

@BlaZZZed1980
Copy link

Just curious if anyone knows of a way for a player to lower their drug addiction percentage other than levelling up? Does it lower over time?

@dan1982code
Copy link
Collaborator

It does not :( this is IMO a flaw in the game as if you can't level up, or reach level 100, then I don't know how to increase mental stability or decrease drug addiction.

@BlaZZZed1980
Copy link

That is precisely the problem 3 players in my game are having right now. If any future changes will be made to the code, I think having it diminish maybe 2% per day at cleanup, and mental stability increase maybe 1%, would be helpful. I was looking in the player editor, and it shows a different number than what the actual percentage of drug addiction is on the stats, so I'm afraid to try to reduce anyone's in there, as I don't know what those numbers mean. Mine for example is "57%" drug addiction, but in the player editor it shows me with "7" in that field.

@codefenix-ConChaos
Copy link

I think it actually does lower over time. I used to be one of those players that would hit enter repeatedly while looking for fights in the dungeon, and as we all know this behavior falls victim to glue sniffing every single time. :) I've learned to not spam the enter key for this reason.

Anyway, I'm reasonably sure that drug addiction does go down as long as you can resist the urge to walk by bottles of glue and not sniff them. Pretty sure I've seen mine go back down to 0% after careful dungeon trips.

@BlaZZZed1980
Copy link

Well, after almost a week, none of my players have had any automatic reduction in drug addiction. I was, however, able to reduce it in the Editor. Turns out that the weird numbers I was seeing was because the Editor I was running as a DOORWAY door was for a different version of the game. So I'm just an idiot. When I ran the proper Editor, the numbers were normal.

@rickparrish
Copy link
Owner Author

Someone asked me what stat causes the "You miss your blow due to lack of concentration" message, and after tracing it back to the mental stability stat that reminded me of this thread! So I've just pushed an update that randomly decreases addiction and increases mental stability during maintenance. The rules are:

  • Only happens for level 100 characters, since < 100 characters can level up to improve their stats
  • 1 in 7 chance of occurring. I thought a daily improvement might be too much, so 1 in 7 should average out to a weekly improvement instead.
  • When it does occur, improvement is randomly between 1 and 5 points (same as levelling up)

I'm open to suggestions on any of these rules if you think they're too unbalanced one way or the other.

In addition to that, I implemented @CraigEMP's suggestion to spoil extra healing potions during maintenance. I'll follow up in #25 because it might need some additional consideration.

Also, I don't have a game setup right now, so I didn't actually test these binaries. They compile and at quick glance the code looks correct, but would definitely be good to make a backup before trying them!

@BlaZZZed1980
Copy link

I can confirm the updated win32 binary works fine.

@tlm1234
Copy link

tlm1234 commented Oct 27, 2022

I just tried the new binaries for Linux and I still get the same issue hanging after getting past the intro menu, but I do have a little further notes. If I go right to team rankings from main intro menu I have to hold down a key and character by character the rankings will show. It's similar right after logging in and displaying the NPC quotes. Everything else is lightning fast, but it will seem like it's hung unless I hold down the space bar for example. This occurs on both 32bit and 64bit compiles.

@rickparrish
Copy link
Owner Author

@BlaZZZed1980 thanks for confirming win32 is working.

@tlm1234 What BBS software are you using? And can you share a screenshot of the config screen for the door? I'll try setting up with the same settings here so I can troubleshoot. Also, does it happen in all telnet clients or only some?

@tlm1234
Copy link

tlm1234 commented Oct 28, 2022

Thanks, and attention is much appreciated! I'm using 64 bit linux with Syncronet. Telnet to bbs.lizardmaster.com and look at the team rankings from the main menu. You have to hold down a character for it to display. Everything else is lightning fast (until you login and get some of the random chatter from NPCs, but after that it seems fine again). These are the settings:

image

@tlm1234
Copy link

tlm1234 commented Oct 28, 2022

@rickparrish I usually use syncterm, but I tried Putty just now with the same result.

@rickparrish
Copy link
Owner Author

@tlm1234 I was able to reproduce the issue, and have just pushed new binaries that fix it.

The issue occurs any time the display_file method is called. For some reason the door is seeing a never ending stream of NULL bytes available as local input, so I changed the code to ignore local input when running in non-local mode under Linux, because as far as I know under Linux there's no way for the sysop to provide local input anyway. Are you familiar with other Linux-based BBS packages that support socket-based doors? If I remember right Mystic automatically redirects STDIO, so socket communications have to be disabled, so it wouldn't be a good one to test with.

After fixing that a second issue cropped up with display_file that I also fixed, but it's good to be aware of it in case it crops up somewhere else. Under Windows Usurper writes CRLF terminated files, and so when display_file displays the contents of a file CRLF combos are written to the client. Under Linux the files are just LF terminated, so only an LF is written to the client, so the cursor doesn't return to column 1 for each new line and the output is messed up. I changed the code to output a CR when a "bare" LF is detected, so now the team scores, heros, news, etc, display correctly.

If there are other procedures that read and display a file, they may need a similar fix, so just keep your eyes open for screens where the first line looks OK but then every subsequent line is too far to the right.

@tlm1234
Copy link

tlm1234 commented Oct 29, 2022

Wow, thank you very much @rickparrish! I have only used Synchronet in the Linux environment so I am unsure of the others. I'll start testing today.

@rickparrish
Copy link
Owner Author

Hey all, following the suggestion in #27, there are now release archives that get built with every commit, which you can find here: https://github.com/rickparrish/Usurper/releases/tag/latest

In the past I was manually building with each respective platform (ie a Windows 10 32bit VM for win32, Ubuntu 16.04 for linux32, etc), but now they're all built using a single Windows server that cross-compiles for the other platforms.

I've tested the win32 and win64 binaries, but not the go32v2 or linux binaries, so please let me know if you try them and run into any problems.

Thanks!

@dan1982code
Copy link
Collaborator

Very cool -- thank you!

And I just caught up on the whatsnew as well... the @ codes is cool!

I'm getting the itch to start hammering on bugs again.

@xbit44
Copy link

xbit44 commented Jan 8, 2023

Installed on my spitfire bbs. so far so good. Thanks Rick, Dan and team. Happy New Year all.

@xbit44
Copy link

xbit44 commented Apr 28, 2024

For the dev build that was released, should the compiled date be current?
1

@rickparrish
Copy link
Owner Author

Yeah I realized I forgot to update the date after pushing that change. Updated a couple more screens to read from ANS/ASC instead of hardcoding, and updated the date with those commits. Was holding off on pushing thinking I'd get more screens done, but probably going to go watch a movie with the family so will push what I have for now, which should create a new release with updated date.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants