Jump to content

dsmyth1915

Recommended Posts

Over the last few days I have been looking for a script that would output the string that modifies player levels in the Ark INI file. Without any luck, I decided to hell with searching, I'll just make my own. So I took to Pythons IDLE, and created this.You can modify it as you need, change max level, change the ramping areas for a series of levels (I wanted up to level 150 with a total max xp of 5 million).

As it currently sits, it will work. You may need to tweak to what you want your levels to be, and that will take a baseline in coding.

The server I am currently using has XP values increased by 12 times (current max is 135, at 1.6 million), thats why I decided on 5 million.

#Created by Dsmyth1915 20180320
#Ark automated level up ramp coding
#Version: 1.0
#Python Version: 3.6.0

#This program is designed to take all the menial tasks out of coding a per level override on ark servers.
#It will create an output in the exact format that the server will accept in the INI file to over ride player max level.

import math

level = 1
xp_one = 1
xp_two = 1
total = 1

#iterate tens of levels, current max is 150; change 15 in the range to whatever level you want. Remember there is a total XP cap.
for x in range(0,15):
    
    #if the first ramp is 0, massive ramp for early level, and scaling slower into late.
    
    if x == 0:
        ramp = 1.95
    if x >= 1 and x <= 8:
        ramp = 1.05
    if x >= 8 and x <= 12:
        ramp = 1.025
    if x >= 12:
        ramp = 1.0125

    #iterate the single digits
        
    for level in range(0, 10):

        xp_two = xp_one * ramp

        #check to see if the tens level is still 0; if it is then modify the output for pre 10, and output the level modifications
        #Remove )# in both lines for output in single line format. "end=','" ends the line with a comma so you can just copy paste into the INI.
        
        if x == 0:
            print('ExperiencePointsForLevel[', level,']=', round(xp_two), sep = '',)# end=',')
        else:
            print('ExperiencePointsForLevel[', x, level,']=', round(xp_two), sep = '',)# end=',')
        total += xp_one
        xp_one = xp_two
        level += 1

# use this for debugging XP values early on.

#        if x >=0 and x <= 1 and level >= 0:
#           print('DEBUG: ', 'X ', x, 'level ', level - 1, 'xp_one ', xp_one, 'xp_two ',  xp_two, 'total ', total)


# Check to see if the total experience value is greater than 5 million. If it is, it will break the loop and return what level

    if total > 5000000:
            print('too much experience at level ', x, level - 1, ':', total)
            break

 

Let me know what you guys think, or if I can change anything to make it better. Enjoy!

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...