Ce petit programme vous aidera a vous lancer ou non dans l’assassinat d’un personnage sur Medieval II Total War
Il peux aussi être utilisé pour: - l’espionnage - le sabotage - le rachat de marchand - l’incinération des hérétiques
Si vous arrivez à le faire crasher, merci de me contacter sur discord : gengisclan
''' Cree par Gengisclan le 05/07/2023 ''' # Modules from kandinsky import * from random import randint from time import sleep from ion import * # Rectifie les erreurs dans la chaine de # caractere def Rectifieur(chaine,chaine_sec="",test=True,chang=False): while chaine[0]==",": if chaine==",":return "" chaine=chaine[1:] while chaine[-1]==",": if chaine==",":return "" chaine=chaine[:-1] while test: if chaine==",": return "" test=False for indice in range(len(chaine)-1): if chaine[indice]=="," and chaine[indice+1]==",": chaine_sec=Decoupeur(chaine,indice) test=True chang=True if chang==True: chaine=chaine_sec return chaine # Enleve le caractere a l'indice donne def Decoupeur(chaine,indice,chaine_sec=""): for j in range(indice): chaine_sec+=chaine[j] for k in range(indice+1,len(chaine)): chaine_sec+=chaine[k] return chaine_sec # Convertis une chaine de caractere type # liste en liste d'entiers def Convertisseur(chaine,tampon="",L_taux=[]): for i in chaine: if i==",": L_taux.append(int(tampon)) tampon="" else:tampon+=i if L_taux==[]: L_taux.append(int(tampon)) return L_taux def Ch_page(): global suiv suiv=False sleep(.1) # Permet a l'uttilisateur d'ecrire du texte def Ecriture(n_souris): if (n_souris<=4 and len(Boutons[n_souris][0])<3) or (n_souris==5 and len(Boutons[n_souris][0])<28): sleep(.1) if keydown(KEY_ZERO):Boutons[n_souris][0]+="0" if keydown(KEY_ONE):Boutons[n_souris][0]+="1" if keydown(KEY_TWO):Boutons[n_souris][0]+="2" if keydown(KEY_THREE):Boutons[n_souris][0]+="3" if keydown(KEY_FOUR):Boutons[n_souris][0]+="4" if keydown(KEY_FIVE):Boutons[n_souris][0]+="5" if keydown(KEY_SIX):Boutons[n_souris][0]+="6" if keydown(KEY_SEVEN):Boutons[n_souris][0]+="7" if keydown(KEY_EIGHT):Boutons[n_souris][0]+="8" if keydown(KEY_NINE):Boutons[n_souris][0]+="9" if n_souris>3: if keydown(KEY_COMMA):Boutons[n_souris][0]+="," if keydown(KEY_BACKSPACE):Boutons[n_souris][0]=Boutons[n_souris][0][0:-1] # Calcul du taux de reussite def Assassinat(taux,nb_assassins,precision=1000,moy_taux=0,nb_mort=0): # Transformation de la liste en taux # entier if type(taux)==list: for i in taux: moy_taux+=i taux=moy_taux/len(taux) taux=int(taux) # Calcul du taux for i in range(precision): for i in range(nb_assassins): if randint(1,100)<=taux: nb_mort+=1 break # Retournement du taux return int(nb_mort/precision*100) # Dessin du logo def Logo(): fill_rect(0,0,320,240,(0,)*3) fill_rect(100,80,120,60,(255,)*3) fill_rect(101,81,118,58,(0,)*3) draw_string("Cree par",120,90,(255,)*3,(0,)*3) draw_string("Gengisclan",110,110,(255,)*3,(0,)*3) sleep(2) # Dessin d'un bouton/case def Dessin_boutons(bouton,coul=(0,)*3): fill_rect(bouton[3],bouton[4],bouton[1],bouton[2],(255,)*3) fill_rect(bouton[3]+1,bouton[4]+1,bouton[1]-2,bouton[2]-2,coul) draw_string(bouton[0],bouton[3]+10,bouton[4]+10,(255,)*3,coul) # Pages def Page1(): Dessin_boutons(Boutons[0]) Dessin_boutons(Boutons[1]) Dessin_boutons(Boutons[7]) Dessin_boutons(Boutons[n_souris],(112,114,110)) def Page2(): draw_string("Taux de chance",90,20,(255,)*3,(0,)*3) Dessin_boutons(Boutons[2],(225,198,153)) draw_string("Nombre d'agents",90,105,(255,)*3,(0,)*3) Dessin_boutons(Boutons[3],(225,198,153)) Dessin_boutons(Boutons[4]) Dessin_boutons(Boutons[n_souris],(112,114,110)) def Page3(): draw_string("Taux de chance",90,20,(255,)*3,(0,)*3) Dessin_boutons(Boutons[5],(225,198,153)) draw_string("Nombre d'agents",90,105,(255,)*3,(0,)*3) Dessin_boutons(Boutons[3],(225,198,153)) Dessin_boutons(Boutons[n_souris],(112,114,110)) Dessin_boutons(Boutons[4]) def Page4(): draw_string("Taux de Reussite",80,20,(255,)*3,(0,)*3) Dessin_boutons(Boutons[6]) def Page5(): draw_string("Taux unique",100,20,(255,)*3,(0,)*3) draw_string("- Rentrez votre taux dans la",10,55,(255,)*3,(0,)*3) draw_string("premiere case",30,75,(240,0,32),(0,)*3) draw_string("- Rentrez le nombre de vos",10,95,(255,)*3,(0,)*3) draw_string("agents disponibles dans la",30,115,(255,)*3,(0,)*3) draw_string("deuxieme case",30,135,(240,0,32),(0,)*3) Dessin_boutons(Boutons[8]) def Page6(): draw_string("Liste de taux",90,20,(255,)*3,(0,)*3) draw_string("- Rentrez votre taux dans la",10,55,(255,)*3,(0,)*3) draw_string("premiere case",30,75,(240,0,32),(0,)*3) draw_string("sous la forme",170,75,(255,)*3,(0,)*3) draw_string("Taux,Taux,Taux,Taux...",30,95,(240,0,32),(0,)*3) draw_string("- Rentrez le nombre de vos",10,115,(255,)*3,(0,)*3) draw_string("agents disponibles dans la",30,135,(255,)*3,(0,)*3) draw_string("deuxieme case",30,155,(240,0,32),(0,)*3) Dessin_boutons(Boutons[8]) # Variables page=1 # Numero de la page suiv=False res=0 # Initialisation du resultat run=True # Liste des boutons Boutons=[ # [Texte,Longueur,Largeur,x,y] ["Taux unique",130,40,100,70], # Taux unique ["Liste de taux",150,40,90,120], # Liste de taux ["",50,35,135,55], # Taux ["",50,35,135,140], # Nb assassins ["Calcul",80,40,220,180], # Calcul ["",300,35,10,55], # Liste taux ["",60,35,130,105], # Resutlat ["Aide",60,40,10,10], # Aide ["OK",40,40,220,180] # Indication ] Logo() while run: Ch_page() # __Page 1__Acceuil__ if page==1: n_souris=0 # Situation de la sourie fill_rect(0,0,320,240,(0,)*3) Page1() while not suiv: sleep(.1) if keydown(KEY_UP) and n_souris==0: n_souris=7 Page1() Dessin_boutons(Boutons[n_souris],(112,114,110)) if keydown(KEY_UP) and n_souris==1: n_souris-=1 Page1() Dessin_boutons(Boutons[n_souris],(112,114,110)) if keydown(KEY_DOWN) and n_souris==0: n_souris+=1 Page1() Dessin_boutons(Boutons[n_souris],(112,114,110)) if keydown(KEY_DOWN) and n_souris==7: n_souris=0 Page1() Dessin_boutons(Boutons[n_souris],(112,114,110)) if keydown(KEY_OK): if n_souris==0:page=2 if n_souris==1:page=3 if n_souris==7:page=5 suiv=True # __Page 2__Taux unique__ if page==2: n_souris=2 fill_rect(0,0,320,240,(0,)*3) Page2() while not suiv: sleep(.1) if keydown(KEY_UP) and (n_souris==3 or n_souris==4): n_souris-=1 Page2() Dessin_boutons(Boutons[n_souris],(112,114,110)) if keydown(KEY_DOWN) and (n_souris==2 or n_souris==3): n_souris+=1 Page2() Dessin_boutons(Boutons[n_souris],(112,114,110)) if keydown(KEY_OK) and n_souris==4 and Boutons[2][0]!="" and Boutons[3][0]!="": res=Assassinat(int(Boutons[2][0]),int(Boutons[3][0])) page=4 suiv=True if n_souris!=4: Ecriture(n_souris) Page2() # __Page 3__Liste de taux__ if page==3: n_souris=5 fill_rect(0,0,320,240,(0,)*3) Page3() while not suiv: sleep(.1) if keydown(KEY_DOWN) and n_souris==3: n_souris=4 Page3() Dessin_boutons(Boutons[n_souris],(112,114,110)) if keydown(KEY_DOWN) and n_souris==5: n_souris=3 Page3() Dessin_boutons(Boutons[n_souris],(112,114,110)) if keydown(KEY_UP) and n_souris==3: n_souris=5 Page3() Dessin_boutons(Boutons[n_souris],(112,114,110)) if keydown(KEY_UP) and n_souris==4: n_souris=3 Page3() Dessin_boutons(Boutons[n_souris],(112,114,110)) if keydown(KEY_OK) and n_souris==4 and Boutons[5][0]!="" and Boutons[3][0]!="" and Rectifieur(Boutons[5][0])!="": res=Assassinat(Convertisseur(Rectifieur(Boutons[5][0])),int(Boutons[3][0])) page=4 suiv=True if n_souris!=4: Ecriture(n_souris) Page3() # __Page 4__Resultat__ if page==4: fill_rect(0,0,320,240,(0,)*3) Boutons[6][0]=str(res)+"%" Page4() sleep(.1) run=False # __Page 5__Aide__Taux unique__ if page==5: fill_rect(0,0,320,240,(0,)*3) sleep(.1) Page5() while not keydown(KEY_OK): pass page+=1 suiv=True # __Page 6__Aide__Liste de taux__ if page==6: fill_rect(0,0,320,240,(0,)*3) sleep(.1) Page6() while not keydown(KEY_OK): pass page=1 suiv=True