This page is out of date

You've reached a page on the Ren'Py wiki. Due to massive spam, the wiki hasn't been updated in over 5 years, and much of the information here is very out of date. We've kept it because some of it is of historic interest, but all the information relevant to modern versions of Ren'Py has been moved elsewhere.

Some places to look are:

Please do not create new links to this page.


Die Frage - Skript

Das Skript ist in zwei Teile unterteilt.

script.rpy

init:

    # Declare images used by this game.
    image bg lecturehall = "lecturehall.jpg"
    image bg uni = "uni.jpg"
    image bg meadow = "meadow.jpg"
    image bg club = "club.jpg"
    
    image sylvie normal = "sylvie_normal.png"
    image sylvie giggle = "sylvie_giggle.png"
    image sylvie smile = "sylvie_smile.png"
    image sylvie surprised = "sylvie_surprised.png"    

    image sylvie2 normal = "sylvie2_normal.png"
    image sylvie2 giggle = "sylvie2_giggle.png"
    image sylvie2 smile = "sylvie2_smile.png"  
    image sylvie2 surprised = "sylvie2_surprised.png"    

    # Declare characters used by this game.
    $ s = Character('Sylvie', color="#c8ffc8")
    $ m = Character('Ich', color="#c8c8ff")


# The game starts here.
label start:

    $ bl_game = False
    
    play music "illurock.ogg"

    scene bg lecturehall
    with fade

    "Nun, Professorin Eileens Vortrag war interessant."
    "Aber, um ehrlich zu sein, ich konnte mich nicht wirklich darauf konzentrieren."
    "Mir gingen eine Menge anderer Gedanken durch den Kopf."
    "Und sie alle endeten in einer Frage."
    "Einer Frage, die ich jemandem stellen wollte."

    scene bg uni
    with fade

    "Ich sah sie, als wir aus der Universität kamen."
    
    show sylvie normal
    with dissolve
    
    "Sie war eine wundervolle Person."
    "Ich kenne sie, seit wir Kinder waren."
    "Und sie war mir immer eine gute Freundin gewesen."
    "Doch..."
    "seit kurzem,..."
    "so fühlte ich,..."
    "... wollte ich mehr."
    "Mehr als nur reden... mehr als nur nach den Vorlesungen gemeinsam nach Hause zu gehen."
    "Und so ich traf die Entscheidung..."

    menu:

        "... sie sofort zu fragen.":
        
            jump rightaway
            
        "... sie später zu fragen.":
        
            jump later
       

label rightaway:

    show sylvie smile

    s "Oh, hallo, gehen wir zusammen nach Hause?"
    m "Ja..."
    "Antwortete ich mit zitternder Stimme."
    
    scene bg meadow
    with fade
    
    "Wir erreichten die Wiesen vor der Stadt."
    "Der Herbst war wunderschön hier."
    "Als wir Kinder waren, hatten wir hier oft gespielt."
    m "Hey... ähmm..."
    
    show sylvie smile
    with dissolve
    
    "Sie drehte sich zu mir und lächelte."
    "Ich werde sie fragen..."
    m "Ähmm... willst du..."
    m "Willst du meine Künstlerin für eine Visual Novel sein?"
    
    show sylvie surprised
    
    "Schweigen."
    "Sie ist schockiert. Aber dann..."
    
    show sylvie smile
    
    s "Klar, aber was ist denn eine \"Visual Novel\"?"

    menu:

        "Eine Geschichte mit Bildern.":
            jump vn
            
        "Es ist ein Hentai-Spiel.":
            jump hentai

label vn:

    m "Eine Geschichte mit Bildern und Musik."
    m "Und man kann Entscheidungen treffen, die den Ausgang der Geschichte beeinflussen."
    s "Wie diese Wähl-dein-Abenteuer Bücher?"
    m "Genau! Ich möchte eine kleine, romantische Geschichte schreiben."
    m "Und ich dachte, du könntest mir dabei helfen... da ich weiß, wie gern du malst."
    
    show sylvie normal
    
    s "Nun, ich kann es versuchen. Ich hoffe, ich werd' dich nicht enttäuschen."
    m "Du weißt, dass du mich nicht enttäuschen kannst."

    jump marry
    
label hentai:

    $ bl_game = True
    
    m "Naja, es ist ein Spiel mit viel Sex."
    s "Du meinst, wie ein {i}Boy's Love{/i}-Spiel?"
    s "Sowas wollte ich schon immer mal machen."
    s "Ich werde sofort damit beginnen!"

    hide sylvie
    with dissolve

    "..."

    m "Sowas hab ich nicht gemeint!"

    jump marry
    
label marry:
    
    scene black
    with dissolve

    "--- Jahre später ---"

    scene bg club
    with dissolve

    "Und so wurden wir ein Team und erstellten viele Visual Novels."
    "Wir machten Spiele und hatten dabei auch selbst sehr viel Spaß."

    if bl_game:
        "Nun ja, abgesehen von diesem {i}Boy's Love{/i}-Spiel, auf das sie bestand."

    "Dann, eines Tages..."
        
    show sylvie2 normal
    with dissolve
        
    s "Hey..."    
    m "Ja?"
    
    show sylvie2 giggle
    
    s "Heirate mich!"
    m "Was???"
    
    show sylvie2 surprised
    
    s "Ja, liebst du mich denn nicht?"
    m "Doch, schon."
    
    show sylvie2 smile
    
    s "Siehst du? Wir haben romantische Visual Novels erstellt, Zeit miteinander verbracht, uns gegenseitig geholfen..."
    s "... und wer Liebe säht, wird Liebe ernten."
    m "Hmmm, kommt mir bekannt vor."

    show sylvie2 giggle
    
    s "Ich hab mir das gerade ausgedacht."
    m "Klingt aber gut."
    
    show sylvie2 normal
    
    s "Ich weiß. Also heiratest du mich jetzt?"
    m "Äh, klar. Eigentlich hatte ich schon länger vor, dich zu fragen..."
    s "Ich weiß, aber du bist so unentschlossen, so dass ich die Initiative ergreife. "
    m "Ich denke,... es ist die richtige Frage... zum richtigen Zeitpunkt."
    
    show sylvie2 giggle
    
    s "In der Tat. Aber nun Schluss mit der Theorie, gib mir einen Kuss!"

    scene black
    with dissolve

    "Kurz darauf heirateten wir."
    "Tatsächlich erstellten wir noch viele Visual Novels."
    "Und lebten glücklich bis an's Ende unserer Tage."

    ".:. Gutes Ende."

    return
    
label later:

    scene black
    with dissolve

    "Ich entschied mich also, sie später zu fragen."
    "Doch ich war unschlüssig."
    "Ich konnte sie weder an diesem Tage fragen, noch später."
    "Ich werde es wohl niemals erfahren."
    
    ".:. Schlechtes Ende."
    
    return

options.rpy

## Diese Datei enthält viele Optionen, mit denen ein Ren'Py-Spiel angepasst werden kann.
## Es enthält aber nur die gebräuchlichsten Optionen - darüber hinaus
## gibt es noch viele weitere Konfigurationsmöglichkeiten.
##
## Zeilen, die mit zwei ## sind Kommentare, sollten also so stehen bleiben.
## Zeilen mit nur einem # sind auskommentierter Code; sie können bei Bedarf aktiviert werden.

init -1 python hide:

    ## Sollen die Entwickler-Tools aktiviert werden?
    ## Vor der Veröffentlichung des Spiels sollte es deaktiviert werden,
    ## damit der Nutzer nicht durch diese Tools cheaten kann.

    config.developer = True

    ## Die Breite und die Höhe des Spielfensters.

    config.screen_width = 800
    config.screen_height = 600

    ## Der Titel des Fensters, in dem das Ren'Py-Spiel läuft.

    config.window_title = u"Die Frage"

    #########################################
    # Layouts
    
    ## Ermöglicht ein In-Game-Menü, das aus Buttons besteht.
    layout.button_menu()

    #########################################
    # Farbschemas
    
    ## Anschließend wird eine Schema-Funktion aufgerufen.
    ## theme.roundrect ist ein Schema, das abgerundete Rechtecke unterstützt.
    ## Es ist allerdings momentan auch das einzige Schema, das funktioniert.
    ##
    ## Die Schema-Funktion nimmt eine Reihe an Parameter,
    ## mit denen man das Farbschema anpassen kann.
    theme.roundrect(

        ## Die Farbe eines nicht ausgewählten Menüeintrags.
        widget = "#F8AD00",

        ## Die Farbe eines ausgewählten Menüeintrags.
        widget_hover = "#E97F00",

        ## Die Textfarbe in einem nicht ausgewählten Menüeintrag.
        widget_text = "#581A00",

        ## Die Textfarbe eines ausgewählten Menüeintrags.
        widget_selected = "#58A1FF",

        ## Die Farbe eines deaktivierten Menüeintrags.
        disabled = "#404040",

        ## Die Textfarbe eines deaktivierten Menüeintrags.
        disabled_text = "#FFC89A",

        ## Die Farbe von informellen Labels.
        label = "#ffffff",

        ## Die Farbe eines Frames, das Auswahlmöglichkeiten / Menüeinträge enthält.
        frame = "#95850F",

        ## Wenn dies hier "True" ist, werden Menüs im Spiel in der
        ## Mitte des Bildschirms angezeigt. Bei "False" werden sie
        ## in einem Fenster unteren Ende des Bildschirms angezeigt.
        button_menu = True,

        ## Wenn es auf "True" gesetzt ist, osz das In-Game-Fenster abgerundet.
        ## Bei "False" ist es rechteckig.
        rounded_window = False,

        ## Der Hintergrund des Hauptmenüs. Es kann entweder
        ## ein Farbcode oder der ein Dateiname eines Bildes sein.
        ## Das Bild sollte so hoch und breit wie der Bildschirm sein.
        mm_root = "menu.jpg",

        ## Der Hintergrund des Spielmenüs. Es kann entweder
        ## ein Farbcode oder der ein Dateiname eines Bildes sein.
        ## Das Bild sollte so hoch und breit wie der Bildschirm sein.
        gm_root = "menu2.jpg",

        ## Hier sind wir mit dem Schema fertig. Das Schema überschreibt
        ## automatisch einige Stilelemente. Wenn diese angepasst werden sollen,
        ## sollte das daher weiter unten passieren.
        )


    #########################################
    ## Mit den folgenden Einstellungen kannst du das Fenster mit den
    ## Dialogen und der Erzählung anpassen, indem du es durch ein
    ## Bild ersetzt.
    ##
    ## TODO: überprüfen
    ## Der Hintergrund des Fensters. In dem "Frame" sind die beiden
    ## Nummern die Breiten des Rahmens links/rechts bzw. oben/unten.

    # style.window.background = Frame("frame.png", 12, 12)

    ## Der "margin" ist die Größe des Abstands um das Fenster herum,
    ## auf dem der Hintergrund nicht angezeigt wird.

    # style.window.left_margin = 6
    # style.window.right_margin = 6
    # style.window.top_margin = 6
    # style.window.bottom_margin = 6

    ## Das "Padding" ist die Größe des Abstands innerhalb des Fensters.

    # style.window.left_padding = 6
    # style.window.right_padding = 6
    # style.window.top_padding = 6
    # style.window.bottom_padding = 6

    ## Das "Padding" ist die Größe des Abstands innerhalb des Fensters.

    # style.window.yminimum = 250


    #########################################
    ## Hier kann man die Position des Spielmenüs bestimmen.

    ## Die Positionierung funktioniert folgendermaßen:
    ## Sowohl für das anzuzeigende Objekt als auch für den Bildschirm
    ## wird jeweils ein Ankerpunkt definiert. Beim Anzeigen wird das Objekt
    ## dann so angezeigt, dass die beiden Ankerpunkte an der selben
    ## Stelle stehen.

    ## Die Ankerpunkte können etweder als ganze Zahl oder als Kommazahl
    ## angegeben werden: wenn es eine ganze Zahl ist, wird sie als exakte
    ## Pixelanzahl von der oberen linken Ecke verstanden. Bei Kommazahlen
    ## wird es als Anteil der Breite/Höhe gesehen, z.B. ist 0.5 die Mitte.

    # style.mm_menu_frame.xpos = 0.5
    # style.mm_menu_frame.xanchor = 0.5
    # style.mm_menu_frame.ypos = 0.75
    # style.mm_menu_frame.yanchor = 0.5


    #########################################
    ## Hier kann die Standard-Schrift für Ren'Py eingestellt werden.

    ## Die Standard-Schriftart

    # style.default.font = "DejaVuSans.ttf"

    ## Die normale Textgröße.

    # style.default.size = 22

    ## Diese Werte beziehen sich nicht auf alle Texte; einige Buttons haben
    ## grundsätzlich ihre eigenen Stile.


    #########################################
    ## Hiermit kann man einige Sounds einstellen,
    ## die von Ren'Py verwendet werden.

    ## Wenn hier "False" steht, sind sämtliche Sound-Effekte deaktiviert.

    config.has_sound = True

    ## Wenn hier "False" steht, ist sämtliche Musik deaktiviert.

    config.has_music = True

    ## Wenn hier "False" steht, ist sämtliche Sprachausgabe deaktiviert.

    config.has_voice = True

    ## Der Sound, der abgespielt wird, wenn man einen Button anklickt.

    # style.button.activate_sound = "click.wav"
    # style.imagemap.activate_sound = "click.wav"

    ## Der Sound, der abgespielt wird, wenn man das Spiel startet oder beendet.

    # config.enter_sound = "click.wav"
    # config.exit_sound = "click.wav"

    ## Der Test-Sound um die Sound-Lautstärke zu testen.

    # config.sample_sound = "click.wav"

    ## Das Musikstück, das im Hauptmenü abgespielt wird.

    # config.main_menu_music = "main_menu_theme.ogg"


    #########################################
    ## Überblendungen.

    ## Die Überblendung, wenn das Spielmenü aus dem Spiel aufgerufen wird.
    config.enter_transition = dissolve
    
    ## Die Überblendung, wenn aus dem Spielmenü ins Spiel zurückgekehrt wird.
    config.exit_transition = dissolve

    #########################################
    ## Der Name des Verzeichnisses, in dem die Spiel-Daten gespeichert werden.
    ## Es muss recht früh gesetzt werden, damit die dauerhaften Daten
    ## schon im Init-Code zu finden sind.
python early:
    config.save_directory = "die_frage-1220806307"
        
init -1 python hide:
    ## Hinweis: Diese zwei Einstellungen werden nur gelesen, wenn das Spiel
    ## zum ersten Mal gestartet wird. Danach nur noch dann, wenn die
    ## Spiel-Daten (game, saves, persistent) gelöscht wurden.

    ## Soll im Vollbild-Modus gestartet werden?
    config.default_fullscreen = False

    ## Die Text-Geschwindigkeit in Zeichen pro Sekunde. 0 ist unendlich.
    config.default_text_cps = 0