Pen & Paper - Spielsysteme > Savage Worlds

Savage Worlds Char Generator

(1/9) > >>

Thallion:
Ich baue gerade mit Hilfe von ChatGPT einen Savage Worlds Charakter Generator in Python. Ich habe zwar grundlegende Programmier Kenntnisse aber hauptsächlich Erfahrung mit VBA. Der Code stammt also mehr oder weniger zu 100% von der KI. Funktioniert bisher super. Ich halte euch auf dem laufenden und hoffe irgendwann mit Erlaubnis von Ulisses / Peginc etwas brauchbares veröffentlichen zu können.
Grüße Thallion

Radulf St. Germain:
Cool. Geht es Dir um den Spaß oder suchtst Du einen Character Generator und hast keinen gefunden?

Es gibt nämlich das hier: https://savaged.us/

Aber wenn Du es einfach aus Spaß machst, dann ist das ein cooles Projekt. Ich spiele schon lange mit dem Gedanken, einen Zufalls-Monstergenerator zu schreiben, komme aber nie dazu.

Thallion:
Ich habe den Betreiber von savaged.us angeboten, seine Seite zu übersetzen. Das wurde leider abgelehnt. Ich selbst und meine Spieler hätten halt gerne eine deutsches Tool. Es geht mir aber auch um den Spaß an der Sache und die Neugier, ob eine KI tatsächlich ordentlich programmieren kann, was bisher erstaunlich gut funktioniert. Ich spiele auch mit dem Gedanken sämtliche Settings, die auf deutsch erschienen sind, also auch die GER Bücher, zu implementieren. Wir spielen zum Beispiel gerade Sundered Skies und das Wilde Aventurien.

Radulf St. Germain:
Stimmt, Englisch und Deutsch. Da habe ich jetzt gar nicht dran gedacht.

Ich bin ja sehr neugierig, wie der Code aussieht, falls Du Lust hast mal ein Beispiel zu posten...

Side Note: Ich glaube der Betreiber von Savaged.us hat gesundheitliche Probleme und ist deshalb vielleicht nicht so erpicht auf Projekte, und sei sein Teil auch noch so klein.

Thallion:
Bitteschön :


--- Code: ---  ', 'd4')
    robustheit = 2 + int(konstitution_wuerfel[1:]) // 2
    return {'Bewegungsweite': bewegungsweite, 'Parade': parade, 'Robustheit': robustheit}

def ausgabe_fenster(charakter_daten, notebook, bogen_tab):

    # Alte Inhalte des Tabs löschen
    for widget in bogen_tab.winfo_children():
        widget.destroy()

    # Scrollbar für das Eingabefenster
    scrollbar = tk.Scrollbar(bogen_tab)
    scrollbar.pack(side=tk.RIGHT, fill=tk.Y)

    # Canvas für das Eingabefenster
    canvas = tk.Canvas(bogen_tab, yscrollcommand=scrollbar.set)
    canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
    scrollbar.config(command=canvas.yview)

    # Frame im Canvas erstellen, um die Widgets zu halten
    frame = tk.Frame(canvas)
    canvas.create_window((0, 0), window=frame, anchor='nw')

    tk.Label(frame, text="Charakterbogen", font=("Arial", 16)).grid(row=0, columnspan=4)

    # Spalte 1 für Attribute und abgeleitete Werte
    tk.Label(frame, text="Attribute:", font=("Arial", 14, "bold")).grid(row=1, column=0, sticky="w")
    row = 2
    for attr, value in charakter_daten['Attribute'].items():
        tk.Label(frame, text=f"{attr}: {value}").grid(row=row, column=0, sticky="w")
        row += 1

    # Abgeleitete Werte anzeigen
    tk.Label(frame, text="Abgeleitete Werte:", font=("Arial", 14, "bold")).grid(row=row, column=0, sticky="w")
    row += 1
    for key, value in charakter_daten['Abgeleitete Werte'].items():
        tk.Label(frame, text=f"{key}: {value}").grid(row=row, column=0, sticky="w")
        row += 1

    # Ausrüstung anzeigen
    tk.Label(frame, text="Ausrüstung:", font=("Arial", 14, "bold")).grid(row=row, column=0, sticky="w")
    row += 1
    for ausruest, selected in charakter_daten['Ausrüstung'].items():
        if selected:
            tk.Label(frame, text=ausruest).grid(row=row, column=0, sticky="w")
            row += 1

    # Waffen anzeigen
    tk.Label(frame, text="Waffen:", font=("Arial", 14, "bold")).grid(row=row, column=0, sticky="w")
    row += 1
    for waffe, selected in charakter_daten['Waffen'].items():
        if selected:
            tk.Label(frame, text=waffe).grid(row=row, column=0, sticky="w")
            row += 1

    # Spalte 2 für Fertigkeiten
    tk.Label(frame, text="Fertigkeiten:", font=("Arial", 14, "bold")).grid(row=1, column=1, sticky="w")
    row = 2
    for fert, value in charakter_daten['Fertigkeiten'].items():
        tk.Label(frame, text=f"{fert}: {value}").grid(row=row, column=1, sticky="w")
        row += 1

    # Spalte 3 für Mächte
    tk.Label(frame, text="Mächte:", font=("Arial", 14, "bold")).grid(row=1, column=2, sticky="w")
    row = 2
    for macht, value in charakter_daten['Mächte'].items():
        tk.Label(frame, text=f"{macht}: {value}").grid(row=row, column=2, sticky="w")
        row += 1

    # Spalte 4 für Talente
    tk.Label(frame, text="Talente:", font=("Arial", 14, "bold")).grid(row=1, column=3, sticky="w")
    row = 2
    for talent, selected in charakter_daten['Talente'].items():
        if selected:
            tk.Label(frame, text=talent).grid(row=row, column=3, sticky="w")
            row += 1

    # Frame-Größe aktualisieren und Scrollregion setzen
    frame.update_idletasks()
    canvas.config(scrollregion=canvas.bbox('all'))

 
--- Ende Code ---

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln