Hauptmenü

Neuigkeiten:

Bitte unterstützt uns und bestellt über diese Links bei Amazon  oder HumbleBumble!

Dialog ausrichtung

Begonnen von Kinkilla, 21. Juni 2015, 20:15:16

Vorheriges Thema - Nächstes Thema

Kinkilla

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

Cone Arex

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?


Folge mir auf X und itch.io

Kinkilla

Naja wenn's so drin steht dann wird ich's mal lassen :)
Hmm... die Raumnummer abfragen...  so weit habe ich nicht gedacht

Cone Arex

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.


Folge mir auf X und itch.io

KhrisMUC

#4
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.

Cone Arex

Ich gehe mal davon aus, der Kinkilla das if entfernt hat, weil das Property einen Spoiler enthält.


Folge mir auf X und itch.io

Kinkilla

#6
Könnte vielleicht stimmen :) :)
Aber ich hab es mittlerweile anders geschrieben- mit der Raumnummer Abfragung

MalleTheRedPhoenix

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:



Wie kann ich die Zeilen verschieben?
Wie Phönix aus der Asche.

Neue Charaktere und Starterpack für MOR in Arbeit.

KhrisMUC

Probiers mit

[ags]  game.dialog_options_x = 5;
  game.dialog_options_y = 5;[/ags]

in game_start().

MalleTheRedPhoenix

Wie Phönix aus der Asche.

Neue Charaktere und Starterpack für MOR in Arbeit.