Code Monkey home page Code Monkey logo

oppaisharp's Issues

Exception on float.Parse

If your system culture settings don't match osu's beatmap format (for example separator is ',' instead of '.') float parsing will fail with Input string was not in a correct format.

Exception on PPv2 calc

This fails when count300 is negative with Either countObjects or Count300 must be specified. Example would be inputting an unfinished (failed) score.
oppai-ng is handling this properly.

Can't calculate pp when c100 >= beatmap circles

when doing the example program on README.md, but instead of passing c100: 8 we pass c100: beatmap.CountCircles the resulting pp will be of a 100% acc play

Alternatively, if a value higher than beatmap.CountCircles is passed Either countObjects or Count300 must be specified will be thrown

Tested with https://osu.ppy.sh/b/706711

Exceptions on map parsing and/or PP calc

2 ranked:
https://osu.ppy.sh/b/1391940
https://github.com/HoLLy-HaCKeR/OppaiSharp/blob/master/OppaiSharp/Parser.cs#L182
sublime_text_2018-02-13_21-36-49

https://osu.ppy.sh/b/407140
sublime_text_2018-02-13_21-40-04

I also have several modified/unmodified submited/unsubmited maps that simply fail to parse, while osu has no problems with them. 141(of with 99 is one huge mappack) of them to be specific. Should I also include these?

code used for testing:

public void run(){
    var maps = Directory.GetFiles(@"D:\Random\OppaiFailedMaps\");
    DiffCalc diffCalculator = new DiffCalc();

    foreach (var filelocation in maps)
    {
        var fileinfo = new FileInfo(filelocation);
        if (fileinfo.Length == 0) continue;
        Console.WriteLine(filelocation);
        using (var stream = new FileStream(filelocation, FileMode.Open))
        {
            using (var reader = new StreamReader(stream))
            {
                var beatmap = Beatmap.Read(reader);
                var beatmapCalc = diffCalculator.Calc(beatmap, Mods.NoMod);
                new PPv2(beatmapCalc.Aim, beatmapCalc.Speed, beatmap);
                if (beatmap.Objects.Count > 0) //crashes when beatmap has no objects
                {
                    GetPp(beatmap, 99.9d);
                    GetPp(beatmap, 99d);
                    GetPp(beatmap, 98d);
                    GetPp(beatmap, 95d);
                    GetPp(beatmap, 90d);
                }
            }
        }
    }
}
public double GetPp(Beatmap beatmap, double acc)
{
    Accuracy _accCalculator = new Accuracy(acc, beatmap.Objects.Count, 0);
    PPv2 _ppCalculator = new PPv2(new PPv2Parameters(beatmap, _accCalculator.Count100, _accCalculator.Count50, _accCalculator.CountMiss, -1, _accCalculator.Count300));
    return Math.Round(_ppCalculator.Total, 2);
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.