Change Lotus Prices
Enter the path to your Lotus assort.db file and and a multiplier you would like to adjust all prices buy. Effects RUB, USD, and Euro prices.unknown
python
10 months ago
3.2 kB
14
Indexable
import json import shutil import os import re def modify_json_file_interactive(): def get_valid_input(prompt, type_func, error_message): while True: try: return type_func(input(prompt)) except ValueError: print(error_message) # Ask for the JSON file path or use the default if none provided default_file_path = "C:\\Singleplayer Tarkov\\SPT 3.8.1\\user\\mods\\Lotus\\db\\assort.json" file_path = input(f"Enter the path to the JSON file (press enter to use default {default_file_path}): ") if not file_path: file_path = default_file_path # Ask for the multiplier value multiplier = get_valid_input("Enter the multiplier to apply to the count values: ", float, "Invalid multiplier. Please enter a numeric value.") # Tpl values to check tpl_values = ["5696686a4bdc2da3298b456a", "5449016a4bdc2d6f028b456f", "569668774bdc2da2298b4568"] changes_count = 0 # Track the number of changes made # Read the JSON file as plain text try: with open(file_path, 'r') as file: lines = file.readlines() except Exception as e: print(f"Failed to open or read JSON file: {str(e)}") return i = 0 while i < len(lines): line = lines[i].strip() if any(tpl in line for tpl in tpl_values): # Check if the next line contains "count" if i + 1 < len(lines) and '"count":' in lines[i + 1]: count_line = lines[i + 1] # Extract the count value, modify it, and replace the line count = int(re.search(r'"count": (\d+)', count_line).group(1)) new_count = int(count * multiplier) new_count_line = re.sub(r'(\d+)', str(new_count), count_line) lines[i + 1] = new_count_line changes_count += 1 i += 1 print(f"Total changes made: {changes_count}") # Determine how to save the modified data print("How would you like to handle the modified file?") print("1: Overwrite the original file") print("2: Save to a new file") print("3: Backup the original and overwrite") choice = input("Enter your choice (1, 2, or 3): ") # Save the modified lines back to a file based on user choice if choice == '1': with open(file_path, 'w') as file: file.writelines(lines) print("Original file has been overwritten.") elif choice == '2': new_file_path = file_path.replace(".json", "_edited.json") with open(new_file_path, 'w') as file: file.writelines(lines) print(f"Data saved to new file: {new_file_path}") elif choice == '3': backup_path = file_path.replace(".json", "_backup.json") import shutil shutil.copy(file_path, backup_path) with open(file_path, 'w') as file: file.writelines(lines) print(f"Original file backed up to: {backup_path} and overwritten.") else: print("Invalid choice, exiting without saving changes.") def main(): modify_json_file_interactive() if __name__ == "__main__": main()
Editor is loading...
Leave a Comment