def itemBourse(item, type): """Version 3.0 | Attribue les prix de la bourse """ # récupération du fichier de sauvegarde de la bourse with open('gems/bourse.json', 'r') as fp: dict = json.load(fp) temp = dict[item] # Récuperation de la valeur courante if type == "vente": pnow = temp["vente"] elif type == "achat": pnow = temp["achat"] PrixMini = 2 # Verification pour l'actualisation de la bourse if sql.spam(PlayerID_GetGems, couldown_8h, "bourse", "gems"): # Gestion des exceptions if item in GI.exception: return pnow if item in ObjetEventEnd: return pnow # Récuperation prix d'origine | prix mini | prix maxi taux = 0.9 for c in GI.PrixItem: if c.nom == item: if type == "vente": pdef = c.vente pmini = c.vente - (c.vente * taux) pmaxi = c.vente + (c.vente * taux) elif type == "achat": pdef = c.achat pmini = c.achat - (c.achat * taux) pmaxi = c.achat + (c.achat * taux) for c in GI.PrixOutil: if c.nom == item: if type == "vente": pdef = c.vente pmini = c.vente - (c.vente * taux) pmaxi = c.vente + (c.vente * taux) elif type == "achat": pdef = c.achat pmini = c.achat - (c.achat * taux) pmaxi = c.achat + (c.achat * taux) pdef = int(pdef) if pmini <= PrixMini: pmini = PrixMini else: pmini = int(pmini) pmaxi = int(pmaxi) # print("============================================\n=== {0} >>> {1}".format(type, item)) # print("Prix défaut: {0}\nPrix mini: {1}\nPrix maxi: {2}".format(pdef, pmini, pmaxi)) # Fonctionnement de la bourse DcrackB = r.randint(1, 1000) # crack boursier négatif if DcrackB <= 5: taux = 0.85 Prix = int(pnow - (pnow * taux)) # crack boursier positif elif DcrackB >= 985 or (pnow < 4 and DcrackB >= 900): if pnow <= 50: taux = 10 elif pnow <= 7: taux = 50 else: taux = 5 Prix = int(pnow + (pnow * taux)) # évolution de la bourse normale (entre -10% et +10% de la valeur courante) else: if pnow > pmaxi: pourcentage = r.randint(-20, -5) elif pnow <= pmini: pourcentage = r.randint(15, 30) elif (pnow > (pmaxi - pdef * 0.3)) or (pnow < (pmini + pdef * 0.3)): pourcentage = r.randint(-20, 20) else: if pnow > 10: pourcentage = r.randint(-10, 10) else: pourcentage = r.randint(-5, 20) Prix = int(pnow + ((pnow * pourcentage) // 100)) if Prix < PrixMini: Prix = PrixMini # print("\nAncien prix: {1}\nNouveau prix: {0}\n".format(Prix, pnow)) # La valeur de vente ne peux etre supérieur à la valeur d'achat if type == "vente": if Prix > temp["achat"]: Prix = temp["achat"] temp["vente"] = Prix temp["precVente"] = pnow # La valeur d'achat ne peux être inférieur à la valeur de vente elif type == "achat": if Prix < temp["vente"]: Prix = temp["vente"] temp["achat"] = Prix temp["precAchat"] = pnow # actualisation du fichier de sauvegarde de la bourse dict[item] = temp with open('gems/bourse.json', 'w') as fp: json.dump(dict, fp, indent=4) return Prix else: return pnow
def loadItem(F=False): jour = dt.date.today() # Récupere le multiplicateur m = 1 if jour.day == 5 or jour.day == 13 or jour.day == 20: path = "core/saisons.json" with open(path, encoding='utf-8') as json_file: data = json.load(json_file) m = data["mult"] if m <= 0: m = 1 if F: GI.initBourse() global ObjetEventEnd ObjetEventEnd = [] # ========== Items ========== global objetItem objetItem = [ Item("cobblestone", m * itemBourse("cobblestone", "vente"), m * itemBourse("cobblestone", "achat"), 4, "minerai"), Item("iron", m * itemBourse("iron", "vente"), m * itemBourse("iron", "achat"), 10, "minerai"), Item("gold", m * itemBourse("gold", "vente"), m * itemBourse("gold", "achat"), 20, "minerai"), Item("diamond", m * itemBourse("diamond", "vente"), m * itemBourse("diamond", "achat"), 40, "minerai"), Item("emerald", m * itemBourse("emerald", "vente"), m * itemBourse("emerald", "achat"), 50, "minerai"), Item("ruby", m * itemBourse("ruby", "vente"), m * itemBourse("ruby", "achat"), 70, "minerai"), Item("fish", m * itemBourse("fish", "vente"), m * itemBourse("fish", "achat"), 2, "poisson"), Item("tropicalfish", m * itemBourse("tropicalfish", "vente"), m * itemBourse("tropicalfish", "achat"), 8, "poisson"), Item("blowfish", m * itemBourse("blowfish", "vente"), m * itemBourse("blowfish", "achat"), 8, "poisson"), Item("octopus", m * itemBourse("octopus", "vente"), m * itemBourse("octopus", "achat"), 16, "poisson"), Item("seed", m * itemBourse("seed", "vente"), m * itemBourse("seed", "achat"), 0.5, "plante"), Item("cacao", m * itemBourse("cacao", "vente"), m * itemBourse("cacao", "achat"), 1, "plante"), Item("potato", m * itemBourse("potato", "vente"), m * itemBourse("potato", "achat"), 1, "plante"), Item("oak", m * itemBourse("oak", "vente"), m * itemBourse("oak", "achat"), 50, "plante"), Item("spruce", m * itemBourse("spruce", "vente"), m * itemBourse("spruce", "achat"), 70, "plante"), Item("palm", m * itemBourse("palm", "vente"), m * itemBourse("palm", "achat"), 60, "plante"), Item("wheat", m * itemBourse("wheat", "vente"), m * itemBourse("wheat", "achat"), 3, "plante"), Item("grapes", m * itemBourse("grapes", "vente"), m * itemBourse("grapes", "achat"), 1, "emoji"), Item("wine_glass", m * itemBourse("wine_glass", "vente"), m * itemBourse("wine_glass", "achat"), 2, "emoji"), Item("beer", m * itemBourse("beer", "vente"), m * itemBourse("beer", "achat"), 2, "emoji"), Item("chocolate", m * itemBourse("chocolate", "vente"), m * itemBourse("chocolate", "achat"), 3, "consommable"), Item("fries", m * itemBourse("fries", "vente"), m * itemBourse("fries", "achat"), 30, "consommable"), Item("cookie", m * itemBourse("cookie", "vente"), m * itemBourse("cookie", "achat"), 1, "emoji"), Item("candy", m * itemBourse("candy", "vente"), m * itemBourse("candy", "achat"), 1, "emoji"), Item("lollipop", m * itemBourse("lollipop", "vente"), m * itemBourse("lollipop", "achat"), 2, "emoji"), Item("backpack", m * itemBourse("backpack", "vente"), m * itemBourse("backpack", "achat"), -200, "special"), Item("hyperpack", m * itemBourse("hyperpack", "vente"), m * itemBourse("hyperpack", "achat"), -2000, "special"), Item("fishhook", m * itemBourse("fishhook", "vente"), m * itemBourse("fishhook", "achat"), 1, "special") ] if not (jour.month == 10 and jour.day >= 22) or (jour.month == 11 and jour.day <= 10): for one in GI.ObjetHalloween: ObjetEventEnd.append(one) if not (jour.month == 12 and jour.day >= 20) or (jour.month == 1 and jour.day <= 14): for one in GI.ObjetChristmas: ObjetEventEnd.append(one) objetItem += [ Item("pumpkin", m * itemBourse("pumpkin", "vente"), m * itemBourse("pumpkin", "achat"), 5, "halloween"), Item("pumpkinpie", m * itemBourse("pumpkinpie", "vente"), m * itemBourse("pumpkinpie", "achat"), 30, "halloween") ] objetItem += [ Item("cupcake", m * itemBourse("cupcake", "vente"), m * itemBourse("cupcake", "achat"), 10, "christmas") ] # ========== Outils ========== global objetOutil objetOutil = [ Outil("fishingrod", itemBourse("fishingrod", "vente"), itemBourse("fishingrod", "achat"), 25, 100, ""), Outil("pickaxe", itemBourse("pickaxe", "vente"), itemBourse("pickaxe", "achat"), 15, 75, ""), Outil("iron_pickaxe", itemBourse("iron_pickaxe", "vente"), itemBourse("iron_pickaxe", "achat"), 70, 200, "forge"), Outil("diamond_pickaxe", itemBourse("diamond_pickaxe", "vente"), itemBourse("diamond_pickaxe", "achat"), 150, 450, "forge"), Outil("shovel", itemBourse("shovel", "vente"), itemBourse("shovel", "achat"), 10, 35, ""), Outil("iron_shovel", itemBourse("iron_shovel", "vente"), itemBourse("iron_shovel", "achat"), 60, 100, "forge"), Outil("diamond_shovel", itemBourse("diamond_shovel", "vente"), itemBourse("diamond_shovel", "achat"), 120, 240, "forge"), Outil("planting_plan", itemBourse("planting_plan", "vente"), itemBourse("planting_plan", "achat"), 4, 4, "consommable"), Outil("barrel", itemBourse("barrel", "vente"), itemBourse("barrel", "achat"), 3, 3, "consommable"), Outil("furnace", itemBourse("furnace", "vente"), itemBourse("furnace", "achat"), 2, 2, "consommable"), Outil("bank_upgrade", itemBourse("bank_upgrade", "vente"), itemBourse("bank_upgrade", "achat"), 10000, None, "bank") ] # ========== Loot Box ========== global objetBox objetBox = [ Box("commongems", "Gems Common", 30, 10, 50, "gems", 1), Box("raregems", "Gems Rare", 300, 100, 500, "gems", 2), Box("legendarygems", "Gems Legendary", 3000, 1000, 5000, "gems", 4), Box("gift", "Items en folie", 50000, 100, 100000, "gems", 3), Box("gift_heart", "Cadeau de la Saint Valentin", 0, 10000, 50000, "", 2) ] if sql.spam(PlayerID_GetGems, couldown_8h, "bourse", "gems"): sql.updateComTime(PlayerID_GetGems, "bourse", "gems") for x in objetItem: GS.csv_add(x.nom) for x in objetOutil: GS.csv_add(x.nom) ActuBourse()