updated pp-gen README

This commit is contained in:
MaxOhn
2022-01-09 23:20:38 +01:00
parent 7b9bd0b1f4
commit 0989a34413
+43 -51
View File
@@ -1,69 +1,61 @@
# pp-gen # pp-gen
Small script to calculate difficulty and performance points related values for a given list of map ids. Small script to calculate difficulty and performance points related values for a given folder containing `.osu` files.
### How to use ### How to use
- Rename `.env.example` to `.env` and put proper values for both of its variables: - Rename `.env.example` to `.env` and put proper values for both of its variables:
- `PERF_CALC_PATH` is going to be something like `C:/osu-tools/PerformanceCalculator/bin/Release/net5.0/PerformanceCalculator.dll` - `PERF_CALC_PATH` is going to be something like `C:/osu-tools/PerformanceCalculator/bin/Release/net5.0/PerformanceCalculator.dll`
- `MAP_PATH` is the path to the folder containing a bunch of `{map_id}.osu` files - `MAP_PATH` is the path to the folder containing a bunch of `{map_id}.osu` files
- Since `PerformanceCalculator.dll` won't print the stars for a map simulation by default, you will need to make a tiny adjustment to a file in the osu-tools repo. In `osu-tools/PerformanceCalculator/Simulate/SimulateCommand.cs`, add the following line to the other lines that look similar: - `MAP_TAKE` is the amount of maps for which values will be calculated
```cs - `MAP_SKIP` is the amount of maps that will be skipped in the `MAP_PATH` folder after each calculation
o["Stars"] = difficultyAttributes.StarRating;
```
Don't forget to recompile osu-tools via `dotnet build -c Release` after making the change.
- Run `cargo run --release`. The program will use the `PerformanceCalculator.dll` to calculate the values and then store them in `output.json`. - Run `cargo run --release`. The program will use the `PerformanceCalculator.dll` to calculate the values and then store them in `output.json`.
### Output format ### Output format
The calculated values for each map for multiple different mod combinations will be stored in a JSON array. The array elements will be of the following form: The calculated values for each map for multiple different mod combinations will be stored in a JSON array. The array elements will be of the following form:
- osu: ```js
```js {
{ "score": {
"mode": 0, "mode": integer,
"map_id": integer, "map_id": integer,
"aim": double, "mods": [string],
"speed": double, "total_score": integer,
"accuracy": double, "acc": double,
"flashlight": double, "combo": integer,
"od": double, "stats": {
"ar": double, "perfect": integer?,
"mods": "HD, HR", // comma + whitespace separated string of mod abbreviations ("None" for nomod) "great": integer,
"stars": double, "good": integer?,
"pp": double, "ok": integer,
"meh": integer,
"miss": integer,
} }
``` },
- taiko: "performance": {
```js "aim": double?,
{ "speed": double?,
"mode": 1, "acc": double?,
"map_id": integer, "flashlight": double?,
"accuracy": double, "effective_miss_count": double?,
"strain": double, "scaled_score": double?,
"mods": "HD, HR", // comma + whitespace separated string of mod abbreviations ("None" for nomod) "difficulty": double?,
"stars": double,
"pp": double, "pp": double,
} },
``` "difficulty": {
- catch:
```js
{
"mode": 2,
"map_id": integer,
"mods": "HD, HR", // comma + whitespace separated string of mod abbreviations ("None" for nomod)
"stars": double, "stars": double,
"pp": double, "max_combo": integer,
"aim": double?,
"speed": double?,
"flashlight": double?,
"slider_factor": double?,
"stamina": double?,
"rhythm": double?,
"colour": double?,
"ar": double?,
"od": double?,
"great_hit_window": double?,
"score_multiplier": double?,
} }
``` }
- mania: ```
```js
{
"mode": 3,
"map_id": integer,
"accuracy": double,
"strain": double,
"mods": "HD, HR", // comma + whitespace separated string of mod abbreviations ("None" for nomod)
"stars": double,
"pp": double,
}
```