Status: Problem überbrückt/improvisiert. Details siehe letzte Änderung des Beitrags unter "Edit" ganz am Ende dieses Textes.
Detailbeschreibung:
Ich hab endlich wieder Zeit um etwas an AGS herumzubasteln und hab mir auch flux die neueste Version 3.1 geladen. Davor hatte ich Version 3.0. verwendet glaube ich.
Ich hab also die alten Daten reingeladen und jetzt die Auflösung von VGA (320x240) auf SVGA (640x480) hochgeschraubt weils die Schrift besser darstellt und auf dem neuen PC besser läuft.
Soweit so gut, hab rumgebastelt und neue Sachen reingestellt, ging alles wunderbar. Auch die Spieltests die ich gemacht habe.
Dann wollte ich aber den Startraum des Spielers verändern um was auszutesten (kombiniere Gegenstand A mit B). Dummerweise tauchte der Spieler jetzt aber nicht an den angegebenen Koordinaten auf.
Ich dachte zuerst das läge daran, dass die Koordinaten durch das Strecken der Grafik bei der Konvertierung falsch wären.
Nach etwas Rumprobieren verlegte ich den Spieler wieder in den alten Raum zurück, aber auch da tauchte er plötzlich nicht mehr auf!
Da ich vorher schon ein paar andere Charaktere verschoben hatte fiel mir jetzt wieder ein dass die Koordinaten stimmen mussten - lediglich der Charakter ist plötzlich dauerhaft unsichtbar, kann sich aber auch nicht bewegen. Es ist als wäre er UNTER dem Bild gelandet, so dass die Walkable Areas für ihn nicht begehbar sind. Aber ich habe die Koordinaten überprüft und es scheint alles zu stimmen.
Mir kam dann der Gedanke der Charakter sei unsichtbar wegen irgendeines Fehlers, also wollte ich am Ende von Raum 1 (dem Menü) ne Funktion Player_LeaveRoom { cEgo.Visible = true;} oder sowas einbauen. Dummerweise gibts das nicht. Ich habe bemerkt dass ich ein leerzeichen zu viel reingesetzt habe, aber das war's scheinbar auch nicht.
Hier der Codebatzen vom Hauptmenü:
Code: Alles auswählen
function btnNeuspiel_OnClick(GUIControl *control, MouseButton button)
{
player.ChangeRoom(2, 286, 396);
gGui1.Visible=false;
mouse.UseDefaultGraphic();
gIconbar.Visible = true;
}
Code: Alles auswählen
function room_Load()
{
gStatusline.Visible = false;
mouse.GetModeGraphic(eModePointer);
}
function hHauptmenu_AnyClick()
{
mouse.UseModeGraphic(eModePointer);
gGui1.Clickable = true;
mouse.GetModeGraphic(eModeUsermode1);
gGui1.Centre();
gGui1.Visible = true;
}
function room_Leave()
{
gStatusline.Visible = true;
}
Um die Sache mit den Koordinaten nochmal ganz abzuklopfen hab ich einen neuen Raum mit den neuen Idealmaßen erstellt und eingerichtet, aber da ist er auch nicht aufgetaucht.
Ich hab in die Symbolleiste (Sierramäßig) ein Kartenicon eingebaut, damit man jederzeit von A nach B wechseln kann. Ganz in der Art von Conquests for the Longbow, vielleicht kennts ja wer. Wenn ich jedenfalls das Icon anklicke und den Spieler irgendwohin schicke dann taucht er auch wieder auf.
Ich denk bestimmt wieder zu umständlich und die Lösung ist die ganze Zeit total einfach und offensichtlich in nem SChreibfehler oder sowas

Edit:
Ich hab das Programm jetzt ausgetrickst. Ich hab vorerst mal einfach nur player.ChangeRoom(2); draus gemacht und bei Raum1 als Startkoordinaten (Starting Room über das Charaktermenü) diejenigen festgelegt, die ich gerne für Raum 2 gehabt hätte.
resultat: Man sieht den Spieler nicht im Hauptmenü rumtanzen (und das ist gut so), aber wenn man jetzt auf neues Spiel klickt taucht er in Raum zwei dort auf, wo er sein sollte. Das ist eine improvisierte Lösung und das kann man auch so laufen lassen, aber mich wunderts trotzdem woher das Problem auf einmal kam
