Overall Ratings (Full Version)

All Forums >> [Current Games From Matrix.] >> [Sports] >> Maximum-Football 2.0



Message


dragon2 -> Overall Ratings (11/11/2008 6:48:29 PM)

Can anyone tell me how JDhalfracks Editor computes the overall ratings for players?

Would like to know which ratings he uses for each position.






jdhalfrack -> RE: Overall Ratings (11/17/2008 3:02:01 AM)

The following is the current function I use for the DB Editor (which, believe it or not, I DO still work on when time permits).

Public Function Get_Overall_Rating(ByVal Index As Integer, _
                          Optional ByVal MinRating As Long = 0, _
                          Optional ByVal MaxRating As Long = 99) As Long

        Dim PositionID As Integer = CInt(Players_Array(Index).PositionID)
        Dim PRDH As Decimal = Overall_Ratings_Array(PositionID).PRDH
        Dim PRDL As Decimal = Overall_Ratings_Array(PositionID).PRDL
        Dim WTSP As Decimal = Overall_Ratings_Array(PositionID).WTSP
        Dim WTST As Decimal = Overall_Ratings_Array(PositionID).WTST
        Dim WTBL As Decimal = Overall_Ratings_Array(PositionID).WTBL
        Dim HTCT As Decimal = Overall_Ratings_Array(PositionID).HTCT

        Dim SPDW As Decimal = Overall_Ratings_Array(PositionID).SPDW
        Dim STRW As Decimal = Overall_Ratings_Array(PositionID).STRW
        Dim AGLW As Decimal = Overall_Ratings_Array(PositionID).AGLW
        Dim INTW As Decimal = Overall_Ratings_Array(PositionID).INTW
        Dim ENDW As Decimal = Overall_Ratings_Array(PositionID).ENDW
        Dim DISW As Decimal = Overall_Ratings_Array(PositionID).DISW
        Dim BLKW As Decimal = Overall_Ratings_Array(PositionID).BLKW
        Dim BLAW As Decimal = Overall_Ratings_Array(PositionID).BLAW
        Dim PSSW As Decimal = Overall_Ratings_Array(PositionID).PSSW
        Dim PSAW As Decimal = Overall_Ratings_Array(PositionID).PSAW
        Dim PPRW As Decimal = Overall_Ratings_Array(PositionID).PPRW
        Dim CATW As Decimal = Overall_Ratings_Array(PositionID).CATW
        Dim HNDW As Decimal = Overall_Ratings_Array(PositionID).HNDW
        Dim COVW As Decimal = Overall_Ratings_Array(PositionID).COVW
        Dim KSTW As Decimal = Overall_Ratings_Array(PositionID).KSTW
        Dim KACW As Decimal = Overall_Ratings_Array(PositionID).KACW

        Dim HEIGHT As Long = Players_Array(Index).Height
        Dim WEIGHT As Long = Players_Array(Index).Weight

        Dim SPED As Long = Players_Array(Index).R1
        Dim STRN As Long = Players_Array(Index).R2
        Dim AGIL As Long = Players_Array(Index).R3
        Dim INTL As Long = Players_Array(Index).R4
        Dim ENDR As Long = Players_Array(Index).R5
        Dim DISC As Long = Players_Array(Index).R6
        Dim BLKN As Long = Players_Array(Index).R7
        Dim BLAV As Long = Players_Array(Index).R8
        Dim PSST As Long = Players_Array(Index).R9
        Dim PSAC As Long = Players_Array(Index).R10
        Dim PPSR As Long = Players_Array(Index).R11
        Dim CATH As Long = Players_Array(Index).R12
        Dim HNDS As Long = Players_Array(Index).R13
        Dim COVG As Long = Players_Array(Index).R14
        Dim KSTR As Long = Players_Array(Index).R15
        Dim KACC As Long = Players_Array(Index).R16
        Dim R17 As Long = Players_Array(Index).R17
        Dim R18 As Long = Players_Array(Index).R18
        Dim R19 As Long = Players_Array(Index).R19
        Dim R20 As Long = Players_Array(Index).R20

        Get_Overall_Rating = 0

        Dim Overall_Rating_Dec As Decimal
        Dim Ratio As Decimal
        Dim StartValue As Decimal
        Dim TotalWeight As Decimal

        If PRDH - PRDL <= 0 Then
            Ratio = 99
        Else
            Ratio = 99 / (PRDH - PRDL)
        End If

        StartValue = -1 * (Ratio * PRDL)

        TotalWeight = SPDW + STRW + AGLW + INTW + ENDW + DISW + BLKW + BLAW + PSSW + PSAW + PPRW + CATW + HNDW + COVW + KSTW + KACW

        Overall_Rating_Dec = StartValue + _
                            (SPED + ((WTSP - WEIGHT) / 9)) * ((Ratio * SPDW) / TotalWeight) + _
                            (STRN - ((WTST - WEIGHT) / 9)) * ((Ratio * STRW) / TotalWeight) + _
                            (AGIL * ((Ratio * AGLW) / TotalWeight)) + _
                            (INTL * ((Ratio * INTW) / TotalWeight)) + _
                            (ENDR * ((Ratio * ENDW) / TotalWeight)) + _
                            (DISC * ((Ratio * DISW) / TotalWeight)) + _
                            (BLKN - ((WTBL - WEIGHT) / 9)) * ((Ratio * BLKW) / TotalWeight) + _
                            (BLAV * ((Ratio * BLAW) / TotalWeight)) + _
                            (PSST * ((Ratio * PSSW) / TotalWeight)) + _
                            (PSAC * ((Ratio * PSAW) / TotalWeight)) + _
                            (PPSR * ((Ratio * PPRW) / TotalWeight)) + _
                            (CATH - (HTCT - HEIGHT)) * ((Ratio * CATW) / TotalWeight) + _
                            (HNDS * ((Ratio * HNDW) / TotalWeight)) + _
                            (COVG * ((Ratio * COVW) / TotalWeight)) + _
                            (KSTR * ((Ratio * KSTW) / TotalWeight)) + _
                            (KACC * ((Ratio * KACW) / TotalWeight))

        Get_Overall_Rating = CLng(Math.Round(Overall_Rating_Dec, 0, MidpointRounding.AwayFromZero))

        If Get_Overall_Rating < MinRating Then Get_Overall_Rating = MinRating

        If Get_Overall_Rating > MaxRating Then Get_Overall_Rating = MaxRating

    End Function


It's a very weird formula based loosely on the way Madden formulates the overall player ratings. I think, but I am not certain, that users can change the weightings of each skill by editing the "OVERALL_Ratings" table in the MaxFBDatabaseEditorIniFile.mdb file that I release with the editors. Make a back up before you do, though, just in case you mess something up!

If you need more help deciphering my code, let me know.

JD




Page: [1]

Valid CSS!




Forum Software © ASPPlayground.NET Advanced Edition 2.4.5 ANSI
0.7382813