fluofoxxo / outrun Goto Github PK
View Code? Open in Web Editor NEWA Sonic Runners custom server.
License: GNU General Public License v3.0
A Sonic Runners custom server.
License: GNU General Public License v3.0
After about an hour of idling in the 'Your Characters' menu, I attempted to change character using the newly pushed handler in rewrite-1, and the game flipped the button text to Japanese and seized up. This may have been the lack of a valid session ID (needing to request a new one) combined with the lack of a /Chao/equipChao
handler.
Alternatively, this may have been the work of the native library's DegradeAppInSubtleWays
exported method. More research must be done to conclude this.
With the push of c546bd4, it seems that not all Chao are unlocked in game. I haven't done any investigation into this, but it may have to do with the 'dealing' flag.
This is not to make it to Tag 1.0.
The Config
struct is missing a ReloadGameConfig
function and config reloading within ReloadAllConfigs
. This isn't terribly consequential, but should be remedied.
Insecure requests are sent at least by /Battle/ requests. Sate the ability to utilize the data sent by these requests.
Notes:
secure
= 0 when the request is insecure.param
is URL escaped when insecure.key
= nothing when insecure.There's really no reason for it to exist, since it's more than likely going to be superseded by configuration options. Consider whether or not this directory and contained files should be kept.
Without sufficient rings, the game will show the status code sent by the server rather than catch that the user does not have enough rings and not sending the request. Before the implementation of upgradeCharacter
(a10085d), the game would catch not having enough rings first. I'm not sure why this happens, but it would be nice to fix for any tagged release, since it's technically incomplete.
Subcharacters are able to be leveled past level 100 by collecting rings during gameplay. This should be fixed as soon as possible.
When the session expires, the game will attempt to reconnect. Make sure that this is not a problem for the server.
This can be forced by going to an endpoint that has not been implemented yet (i.e. Roulette) and kicking yourself back to the main menu by denying to continue connection.
Currently, there is a time limit (That won't technically expire) on all the items in the campaign. This should be removed.
Some helper.Out
calls rely on fmt.Sprintf
or type conversions in order to display information. With aeca995, Helper.Out
now supports formatting with fmt.Sprintf
. These prints should be converted to use this.
Using a 2.0.3 client (2.0.3t) and an asset server, the client connects and seems to download assets, but then gets stuck at loading the actual game at 3%, no matter what I do.
No errors on the game server or asset servers.
Anyone have any insight into this?
Thanks in advance
There's a core difference right after the start screen loading bar in rewrite-1: the screen stays black for around 30 seconds. What makes this happen? What is different that causes this to happen?
It's currently unknown what the limits of the bbolt
database in relation to this project are. Investigate this through automated insertion of dummy player data.
#2 should be solved and closed before testing the database can begin for the sake of being able to have numerical metrics on performance.
The character IDs as listed in game code go from 300000 to 300028, however the game only expects 300000 to 300020. This makes sense when looking in game, but these IDs compare improperly to what is found in game code. In addition, the game seems to want to look for the full 29 characters, but throws index related exceptions when there are more than 21 characters.
Either find the correct IDs from the code or use deduction to find the correct IDs. Event character IDs will likely not be found until the events are sent. I am in the dark on how an index error is occurring for these characters.
This needs an urgent fix because it makes readability for these sections absolutely brutal.
The server currently panics when an ID that is not in the database is sent, due to the key not being found, which panics the server. Find a way to handle this so that the server does not shut down due to a deleted ID.
This should be fairly easy, but may require plenty of experimentation. Check responses/event.go for sites to experiment on.
Characters should have proper prices as listed in obj/constobjs/character.go, with NumRedRings and PriceRedRings.
Current point of interest is mission IDs. These are stored locally, but dnSpy is unable to tell me where. Hooking into AESCrypt will allow us to find these IDs, among other data.
When the experience of a character goes into the negatives as a result of upgrading, it breaks the "play character's" experience when completing a level. Experience would be gained based on distance or score, and a level up if earned in this level. The experience going into the negatives is clearly not how the price should be increased.
Could someone provide me with templates for the game's JSON files? I'm new to this and if anyone has a template (or knows how to generate them) please let me know.
The Helper.Warn function is not using formatting in some of the places that Helper.Warn is being used. This should be migrated like what 355abc4 did for Helper.Out.
It's a bit difficult to find substantial documentation on a new player in 2.0.X, but it's almost certain that having two characters, a main character and a sub character, was not intended to be accessed so early in gameplay, as hinted by campaign dialogue.
This may be influenced by the fact that characters are earned easier in Outrun than the vanilla game.
Currently session IDs are cluttering up the database and leaving security flaws. Patch these using a session ID timed clearing.
The game expects the session ID to be cleared after an hour.
If a reward was gained from playing through Story Mode, those rewards will only show up correctly after all of the dialogs are completed.
The game may be subtracting the amount of items just gained from the current player state just for aesthetic purposes. There must be more research on the effects of this.
When committing a wheel spin, error -30401 is responded to the player, even if they have free spins left.
Originally, I believed that it was due to a lack of tickets, but the phenomenon has been observed with at least one ticket remaining.
'Phantom' tickets have been reported by players, but I am still unsure of the specific meaning. I'll test tonight and try to reproduce, though I suspect the core of the issue may be with the database, specifically the values for Player.RouletteInfo and Player.PlayerState.NumRouletteTicket.
Currently the error ID displayed by the game is set to 0 on any dead endpoint. I believe that this is due to the lack of an error code from the server, and uses the default in its code. Can we use this for specific error codes telling the player what's wrong specifically?
I would suggest using a /Source/
folder to
reduce the humongous amounts of folders.
Get a numerical metric on how fast the server is.
This is an extremely rare bug, as I've only encountered it once, and external reports are sparse.
At least for accounts that are reset using RPC commands, or perhaps new accounts, the game doesn't load the Chao roulette (Sprites, items, only the back button works) until the item roulette has been entered. Outrun does appear to be sending the correct data, so it may be a caching issue on the side of the game.
/Battle/* endpoints are unimplemented. #1 must be solved and closed before this issue can be closed.
Courtesy @FairPlay137
When leveling up characters via gameplay,, the game will upgrade the same ability more than once if the player managed to level up their character more than once in a single run. Not only that, but there are no checks to see if the ability at abilityIndex
is already maxed out, which can and will cause problems with the game.
They appear to be offset, but more research needs to be done. The current implementation is almost certainly incorrect, but all items are gained by the end anyways.
The game seems to make the initial connection but is hung on something.
When an entire rarity (1+2 Chao, 100 Character) has been upgraded to its maximum as defined by Player.GetAllNonMaxedCharacters and Player.GetAllNonMaxedChao, the search for a rarity of a Chao continues indefinitely, hanging the server and allocating lots of memory and ramping the CPU usage to its highest.
bbolt
, while somewhat OK with accessibility, has significant performance issues, with the main bottleneck being write operations consuming anywhere from 50ms to 100ms on each handler. Read operations seem to be faster, but not to any significant degree consistently.
The game seems to ignore the fact that a character is at level 100 and allows them to be leveled with a Ring purchase even at level 100. This may be due to the fact that the characters do not have their status set to enums. CharacterStatusMaxLevel
when being leveled to max.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.