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.
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;
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).