Maniac Mansion Mania Forum
MMM-Werkzeugkiste => Technik => Thema gestartet von: Kinkilla am 21. Juni 2015, 20:15:16
-
Hey Leute
Mein Ziel ist es:
Bei zb. Talk to Bernard
Dass die Charaktere sich ausrichten
Also ein "Player.Walk" "Player.FaceDirection" für jeden Raum in den man mit Bernard redet, weil Bernard in zwei Räumen vorkommt habe ich folgendes Script geschrieben:
[ags]function cBernard_Talk()
{
{
Wait(5);
player.Walk(145, 130, eBlock, eWalkableAreas);
player.FaceDirection(eDirLeft);
cBernard.FaceDirection(eDirRight);
}
else if(GetRoomProperty("Cellar")==7)
{
Wait(5);
cBernard.FaceDirection(eDirRight);
player.Walk(220, 127, eBlock, eWalkableAreas);
player.FaceDirection(eDirLeft);
}
else
{
//You Fuckedup something
}
dBernard.Start();
}
[/ags]Number und Cellar sind Properterys
Folgendes Problem:
Wenn ich Talk to Bernard- ausführe bewegt sich mein Player vor Bernard und erst dann bewegt er sich zur gewünschten Position
Außerdem habe ich entdeckt mit einen Breakpoint, dass mein Player sich zur falschen stelle bewegt während "if(GetRoomProperty("Number")==5)"
ausgeführt wird.
Habe keinen blassen Schimmer mehr was das angeht
LG Kinkilla
-
In den neuen SPs richten sich die Charaktere bei Talk To automatisch aus. Allerdings nie so, wie man es will. Du musst da ein paar Zeilen im Global Script entfernen. Weiß leider selbst nicht mehr, welche.
Warum verwendest du eigentlich dieses seltsame GetRoomProperty, anstatt die Raumnummer abzufragen?
-
Naja wenn's so drin steht dann wird ich's mal lassen :)
Hmm... die Raumnummer abfragen... so weit habe ich nicht gedacht
-
Ich habe nochmal nachgesehen:
[ags]
else if ((GSagsusedmode == eModeTalkto) && (IsInteractionAvailable (mouse.x, mouse.y, GSagsusedmode) == 1) )
{
gAktionText.TextColor = ActionLabelColorHighlighted;
if (GoToCharacter (charAt, 0, 1, 2))
charAt.RunInteraction(GSagsusedmode);
SetAction (eActDefault);
}
[/ags]
Die Zeile if (GoToCharacter (charAt, 0, 1, 2)) auskommentieren. Dann müsste es hinhauen.
-
Nur zur Info: selbst, wenn man nicht player.Room verwenden könnte, bräuchte man natürlich nur insgesamt EIN custom property, um die Raumnummer zu speichern, nicht "Number" und "Cellar" und was Du sonst noch genommen hast.
Und in deiner cBernard_Talk()-Funktion kommt ein "else if" ohne vorheriges "if", was sich eigentlich gar nicht kompilieren lassen dürfte.
-
Ich gehe mal davon aus, der Kinkilla das if entfernt hat, weil das Property einen Spoiler enthält.
-
Könnte vielleicht stimmen :) :)
Aber ich hab es mittlerweile anders geschrieben- mit der Raumnummer Abfragung
-
Ich nutze mal Kinkillas Thread, um folgende Frage zu stellen:
Ich habe für den Dialog-GUI einen Rahmen erstellt. Jedoch möchte ich gerne die Dialog-Optionen ein wenig verschieben, damit es in den Rahmen passt.
Denn momentan sieht es so aus:
(http://img5.fotos-hochladen.net/uploads/dialogproblem1mv37l9b4f.png) (http://www.fotos-hochladen.net)
Wie kann ich die Zeilen verschieben?
-
Probiers mit
[ags] game.dialog_options_x = 5;
game.dialog_options_y = 5;[/ags]
in game_start().
-
Danke! Hat funktioniert.