Ich habe vor, die Konversationen meiner Charaktere optisch etwas aufzuwerten, und hab mir gedacht, ich lasse Gespräche in einem anderen Schema ablaufen:
Es erscheinen zwei goße Fenster, die jeweils ein animiertes Portrait meiner Figuren beinhalten, die gesprochenen Texte werden ebenfalls dem jeweiligen Portraitbereich zugeordnet.
Es soll so sein, dass währendessen keine Interaktion im eigentlichen Raum stattfindet, da er beinah komplett von diesen Fenster abgedeckt wird.
Meine Frage ist jetzt, lässt sich sowas anstellen mittels eines weiteren "custom" GUI? Oder stößt man da auf Grenzen was Animation und Texte angeht?
Bevor ich einen falschen Weg einschlage, dachte ich, ich frag mal nach
Ein weiteres Problem wäre der Idleview:
Ich will die Wartezeit von den Default 20 auf 10 Sekunden runterschrauben, habe in der Hilfe die entsprechende Scriptzeile gefunden, aber wo-zum-Geier gehört diese Zeile im Script hin??
Egal wo ich sie hingesetzt hab, ich krieg immer ne Fehlermeldung...
Danke im Voraus!
Fragen zum GUI und Idleview
-
- Komplettlösungsnutzer
- Beiträge: 13
- Registriert: 28.01.2007, 13:53
- Kontaktdaten:
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Welche Fehlermeldung? Welchen Code hast Du verwendet?
(Das man das immer noch fragen muss...)
Das Ändern des idle delay "gehört" in game_start, kann aber theoretisch irgendwo rein, solange es INNERHALB einer Funktion ist.
Wie immer bei der Frage "Wohin mit dem code?" lautet die Gegenfrage: "WANN soll er ausgeführt werden?"
Wegen des GUIs:
Für große, sprechende Portraits nimmt man am Besten Charaktere. Mach für jeden Charakter einen zusätzlichem mit dem animierten Portrait als SpeechView.
Da GUIs grundsätzlich vor allem Anderen dargestellt werden, kannst Du keins verwenden.
Mach also vor dem Dialog ein RawSaveScreen();, zeichne mit RawDraw das "GUI" ein und plaziere dann die Portrait-Charaktere im Raum und lass sie reden.
Am Ende des Dialoges wird dann alles wieder in den Ausgangszustand zurückgesetzt.
Du musst dann eine zweite RunScript-Action nach der mit dem Dialog einfügen und after_dialog(); in dieser aufrufen, denn Dialoge werden immer erst am Schluss einer Skriptfunktion ausgeführt (eine Runscript-Action = eine Skriptfunktion).
(Das man das immer noch fragen muss...)
Das Ändern des idle delay "gehört" in game_start, kann aber theoretisch irgendwo rein, solange es INNERHALB einer Funktion ist.
Wie immer bei der Frage "Wohin mit dem code?" lautet die Gegenfrage: "WANN soll er ausgeführt werden?"
Wegen des GUIs:
Für große, sprechende Portraits nimmt man am Besten Charaktere. Mach für jeden Charakter einen zusätzlichem mit dem animierten Portrait als SpeechView.
Da GUIs grundsätzlich vor allem Anderen dargestellt werden, kannst Du keins verwenden.
Mach also vor dem Dialog ein RawSaveScreen();, zeichne mit RawDraw das "GUI" ein und plaziere dann die Portrait-Charaktere im Raum und lass sie reden.
Am Ende des Dialoges wird dann alles wieder in den Ausgangszustand zurückgesetzt.
Code: Alles auswählen
// script header
import function before_dialog(Character*other_char_dialog);
import function after_dialog();
// global script
Character*ocd;
function before_dialog(Character*other_char_dialog) {
RawSaveScreen(); // Bildschirminhalt speichern
RawDrawImage(x, 10, 10); // Dialog-Hintergrund zeichnen
ocd=other_char_dialog; // anderes Portrait merken
ocd.Room=player.Room; // anderes Portrait
cPlayerdialog.Room=player.Room; // player-Portrait
}
function after_dialog() {
ocd.Room=-1; // anderes P. ausblenden
cPlayerdialog.Room=-1; // player-P. ausbl.
RawRestoreScreen(); // ursprüngl. Bildschirm wiederherstellen
}
export before_dialog;
export after_dialog;
Use gopher repellent on funny little man
-
- Komplettlösungsnutzer
- Beiträge: 13
- Registriert: 28.01.2007, 13:53
- Kontaktdaten:
Danke für die Antwort, ich mach mich gleich mal ran!
Das mit dem Idle Delay funzt immer noch nicht...
Also, laut der Help-Datei braucht man die Zeile
character[EGO].SetIdleView(12, 30);
die ich an #sectionstart game_start setze und auf
meinen charakter [Ich] umschreibe, beim speichern krieg ich die
Meldung: Parse Error - unexpected 'character'
Irgendwas mach' ich da falsch glaub ich, oder ist der Befehl nicht korrekt?
Das mit dem Idle Delay funzt immer noch nicht...
Also, laut der Help-Datei braucht man die Zeile
character[EGO].SetIdleView(12, 30);
die ich an #sectionstart game_start setze und auf
meinen charakter [Ich] umschreibe, beim speichern krieg ich die
Meldung: Parse Error - unexpected 'character'
Irgendwas mach' ich da falsch glaub ich, oder ist der Befehl nicht korrekt?