sean-niemann / RSC-Single-Player

RSC Single Player is a one player RSC reproduction and sandbox. The client handles itself entirely and does not rely on a local server.
GNU General Public License v3.0
23 stars 13 forks source link

[Request] Save SinglePlayer Data upon Logout/Exit and Misc #4

Open ribbybbir opened 2 years ago

ribbybbir commented 2 years ago

Hello Sean Niemann,

I can see that you are making the single player version of Runescape Classic. Everything seems to work out as a running server, but as a client alone, there are certainly things to be desired.

First off, we need to save player data upon single player account creation (data can be deleted from its directory under normal operations). We cannot go on and live with username test, zoso, and root. Next, we need to save the progress of the singleplayer account upon logout/exit. Perhaps make the beds/camp an option to save and logout/exit. Resting should be a part of the game. For instance, we cannot heal health or restore points fast enough. Resting will heal health or restore points faster. However, you are still playing the game! If you do get attacked or run into some mishap, you wake up and resume game session. If you die, you have to reload saved game session; it's more lenient with multiple saved game sessions from load slots. Maybe make the singleplayer version of Runescape Classic with permanent death (one death will delete account along with saved player data), otherwise, it doesn't sound like an achievement? Maybe too much roguelike references, but you get the gist of the request. Am not sure about how permanent death deals with the iron man modes.

I am not sure, but maybe a camera zoom feature be possible if not implemented already? I recall that orsc client increase sight radius upon increasing the program's window size dimensions. I also know that orsc's own singleplayer game is currently unavailable.

Maybe make a flatpak version of the Runescape Classic SinglePlayer game as well/

Sincerely, ribbybbir

v317 commented 2 years ago

Zoso does not develop this project anymore. You can easily add such features. As fatigue is not needed in singleplayer, you can change its function to heal hitpoints. 😅

jmfindorff commented 2 years ago

I'm not sure what you're talking about for the save singleplayer data part since it already does that, just make a new account by clicking on new user and typing in your username of choice. Changing the fatigue system would be a good idea, but as v317 said, the dev for this is no longer active, so your only bet is to make a fork of the project and add in those features yourself or wait for someone to do it.

v317 commented 2 years ago

You could modify sleeping like this, for example. Find sendWakeUp in MiscUpdater.java and replace the lines. If you sleep in bed or sleeping bag, 1/3 of your hitpoints get restored. Of course you need Java client. Not Javascript one.


public void sendWakeUp(boolean success, boolean silent) {
            if (!silent) {
                if(success) {
                    player.handleWakeup();
                    player.getSender().sendMessage("You wake up - feeling refreshed");
                    final boolean heals = player.getCurStat(3) < player.getMaxStat(3);
                    if (heals) {
                        int newHp = player.getCurStat(3) + player.getMaxStat(3) / 3;
                        if (newHp > player.getMaxStat(3)) {
                            newHp =player.getMaxStat(3);
                        }
                        player.setCurStat(3, newHp);
                    }
                } else {
                    player.getSender().sendMessage("You are unexpectedly awoken! You still feel tired");
                }
            }
            player.setSleeping(false);
            mc.isSleeping = false;
        }
ribbybbir commented 2 years ago

jmfindorff commented 4 days ago

I'm not sure what you're talking about for the save singleplayer data part since it already does that, just make a new account by clicking on new user and typing in your username of choice. Changing the fatigue system would be a good idea, but as v317 said, the dev for this is no longer active, so your only bet is to make a fork of the project and add in those features yourself or wait for someone to do it.

Yes, it does save the created account, but there is no way to log into a custom account. You can still log in as test or zoso though. The save singleplayer data part is meant as to save the game progress. Every time I log into test or zoso, my game progress gets reset back to square one. This undesirable operation had occurred on a Linux operation system platform; however, we are talking about Java, but I could be wrong about how these game dependencies work. Of course, if you meant that keeping the game up 24/7 as a save feature, I understand.

Nice work on the change to the rest function, v317!

v317 commented 2 years ago

Download the game and run it instead of Javascript version. You can create custom characters and the game does save.

ribbybbir commented 2 years ago

I am using a Linux and Wine so forgive me there's a bit of less support. For sure, OpenRSC and 2009scape works on multiplayer. I did download the game for offline use and even used the run.sh. Login error is "Account does not exist. To create an account, select 'new user'". I think there is no save feature at all.

I thought about taking my questions to the developer's email contact, but I might been redundant.

jmfindorff commented 2 years ago

I am using a Linux and Wine so forgive me there's a bit of less support. For sure, OpenRSC and 2009scape works on multiplayer. I did download the game for offline use and even used the run.sh. Login error is "Account does not exist. To create an account, select 'new user'". I think there is no save feature at all.

I thought about taking my questions to the developer's email contact, but I might been redundant.

It must be an issue on your end then, I'm on windows and it works fine. I can try running it on a linux vm when I get back to my pc to try and replicate your issue.

ribbybbir commented 2 years ago

Okay, thanks. I know that Linux isn't really first priority for certain computing tasks. I appreciate your patience.