Autor Thema: Probleme mit Starterpack AGS3  (Gelesen 45116 mal)

Endres

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1264
  • Geschlecht: Männlich
  • En|dres, der
    • ICQ Messenger - 230191486
    • MSN Messenger - enni_puschner@hotmail.de
    • Profil anzeigen
    • e7p.de
    • E-Mail
Re: Probleme mit Starterpack AGS3
« Antwort #105 am: 03. Januar 2011, 09:15:01 »
Also <0 müsste eigentlich schon korrekt sein. Im MMMNet ists auch so und da gibts ja auch Inventargegenstände. Was machst du denn genau beim Raumwechsel Ende? Also die entsprechenden Leave / Load Funktionen helfen evtl. zur Fehlerdiagnose.


Domi:"irc hab ich mir viren geholt.. icq hab ich nimmer"

ZAK

  • volljähriger Tentakel
  • *****
  • Beiträge: 503
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Probleme mit Starterpack AGS3
« Antwort #106 am: 03. Januar 2011, 10:49:23 »
Das spiel ist zu ende indem der player das Objekt benutzt.
also, ich habe im Script unter function AnyClick, eUseAct einen dialog stehen und am ende des dialog player.ChangeRoom(4);
Room 4 ist Raum Ende mit den Credits...
Ich bin mal kurz weg, mich suchen. Wenn ich zurück komme bevor ich wieder da bin, sagt mir bitte das ich warten soll!

ZAK

  • volljähriger Tentakel
  • *****
  • Beiträge: 503
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Probleme mit Starterpack AGS3
« Antwort #107 am: 03. Januar 2011, 17:07:31 »
ich habe leider immer noch keine Lösung gefunden...
...das blöde icht das ich bei jeder änderung das gesammte Spiel durchspiele muss um zu sehen ob der Fehler noch da ist.
wenn ich mit den passenden Item in dem Raum starte, klappt alles und der abspann läuft ohne probleme.
Ich bin mal kurz weg, mich suchen. Wenn ich zurück komme bevor ich wieder da bin, sagt mir bitte das ich warten soll!

KhrisMUC

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 989
    • Profil anzeigen
Re: Probleme mit Starterpack AGS3
« Antwort #108 am: 03. Januar 2011, 19:08:34 »
rulaman: Deine Schreibweise ist sehr gewöhnungsbedürftig ;D

Ersetze
[ags]      if (invItem.ID < 0)
        gMainInventory.ScrollUp();[/ags]

Durch:
[ags]      if (invItem != null && invItem.ID < 0) gMainInventory.ScrollUp();[/ags]
« Letzte Änderung: 08. Januar 2011, 21:00:04 von Rocco »

ZAK

  • volljähriger Tentakel
  • *****
  • Beiträge: 503
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Probleme mit Starterpack AGS3
« Antwort #109 am: 03. Januar 2011, 19:55:03 »
Super...Klasse....toll....
jetzt geht es...........
vielen, vielen dank........
i am so happy
Ich bin mal kurz weg, mich suchen. Wenn ich zurück komme bevor ich wieder da bin, sagt mir bitte das ich warten soll!

ZAK

  • volljähriger Tentakel
  • *****
  • Beiträge: 503
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Probleme mit Starterpack AGS3
« Antwort #110 am: 04. Januar 2011, 17:59:14 »
wie starte ich eine Cuscene bevor ich den raum betrete... ???
ich habe es bisher unter first load mit player.ChangeRoom versucht, aber ich will ja das der Player nicht in dem Raum ist sonern ein anderer Character in der scene ist (nicht spielbar)
Ich bin mal kurz weg, mich suchen. Wenn ich zurück komme bevor ich wieder da bin, sagt mir bitte das ich warten soll!

KhrisMUC

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 989
    • Profil anzeigen
Re: Probleme mit Starterpack AGS3
« Antwort #111 am: 04. Januar 2011, 18:18:40 »
Edit: player.ChangeRoom wechselt logischerweise den aktuellen Raum. Einen anderen Charakter holst Du mit cName.ChangeRoom(player.Room); in den aktuellen Raum. Bei MMM gibt es noch Character.EnterRoom, da kannst Du gleich die Blickrichtung mit angeben.

Mach den Spieler unsichtbar:
 player.Transparency = 100;
Hol den anderen Spieler in den Raum:
 cSyd.EnterRoom(4, 30, 140, eDirRight);
Soweit ich weiß läuft First_load erst los, wenn der Raum schon sichtbar ist. Du müsstest das also in "Before fadein" machen. Damit es nur beim ersten Mal passiert, kann Du HasPlayerBeenInRoom() benutzen;

Also:
[ags]function room_Load() {

  if (!HasPlayerBeenInRoom(player.Room)) {  // müsste beim ersten Mal noch false sein, wird erst in First_Load auf true gesetzt
    // Cutscene vorbereiten
    player.Transparency = 100;
    cSyd.EnterRoom(4, 30, 140, eDirRight);
  }

  // restliche Vorbereitungen (door.Init, etc.)
}

function room_FirstLoad() {

  // cutscene abspielen lassen
  StartCutscene(...);
  ...
  ...
  EndCutscene();
  player.ChangeRoom(5);
}[/ags]
« Letzte Änderung: 08. Januar 2011, 21:00:44 von Rocco »

ZAK

  • volljähriger Tentakel
  • *****
  • Beiträge: 503
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Probleme mit Starterpack AGS3
« Antwort #112 am: 04. Januar 2011, 19:03:50 »
schön und gut, die cutscene läuft ab, aber aus der sichtposition des player und nicht aus der sicht das anderen character (denke da mehr an Zwischenzequenzen) bzw. macht der char. etwas ausserhalb der sichtweise des player...
« Letzte Änderung: 04. Januar 2011, 19:15:28 von Zak »
Ich bin mal kurz weg, mich suchen. Wenn ich zurück komme bevor ich wieder da bin, sagt mir bitte das ich warten soll!

KhrisMUC

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 989
    • Profil anzeigen
Re: Probleme mit Starterpack AGS3
« Antwort #113 am: 04. Januar 2011, 19:51:25 »
Erstmal: cutscene = Zwischensequenz

Aus der Sicht des players ist gut, diese Aussage macht Null Sinn.

Also: AGS wechselt den Raum, sobald entweder a) der Charakter, der gerade player ist, den Raum wechselt, oder b) ein Charakter, der sich in einem anderen Raum befindet, zum player wird. (player ist ein Pointer, der auf die gerade aktive Hauptperson zeigt, z.B. cBernard. AGS stellt sicher, dass immer der Raum angezeigt wird, in dem sich der Charakter befindet, auf den player gerade zeigt.)
D.h. wenn Du eine Cutscene machen willst, in der die Hauptperson nicht vorkommt, hast Du zwei Möglichkeiten: entweder machst Du sie unsichtbar, oder Du lässt einen anderen Charakter zum player werden.

Am einfachsten ist es, einfach mit dem player in den Cutscene-Raum zu wechseln, z.B. zu den Koordinaten 0,0; dann ist der player nicht mehr im Bild. Jetzt lässt man die anderen Charaktere im Raum hin- und herlaufen, sprechen, animieren, usw., und schickt dann den player wieder in den vorhergehenden Raum zurück.
Anstatt ihn nach 0,0 zu schicken kann man ihn auch unsichtbar machen; der Vorteil ist, dass man dann seine Koordinaten nicht speichern muss, damit die Hauptperson nach der Zwischensequenz am selben Platz wie vorher ist.
Unsichtbar macht man ihn mit .Transparency = 100; wie schon beschrieben.

ZAK

  • volljähriger Tentakel
  • *****
  • Beiträge: 503
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Probleme mit Starterpack AGS3
« Antwort #114 am: 04. Januar 2011, 19:59:34 »
ich habe den player ja unsichtbar gemacht, damit die cutscene läuft, und wie mache ich den character nun zum player ???
Ich bin mal kurz weg, mich suchen. Wenn ich zurück komme bevor ich wieder da bin, sagt mir bitte das ich warten soll!

KhrisMUC

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 989
    • Profil anzeigen
Re: Probleme mit Starterpack AGS3
« Antwort #115 am: 04. Januar 2011, 20:14:09 »
Soll der Spieler denn den anderen Charakter steuern können oder was? Das hast Du nämlich vergessen zu erwähnen, falls das so gedacht ist.

Falls wirklich nur eine Zwischensequenz laufen soll, musst Du den charakter nicht zum player machen.
Falls man jemand anderen aber steuern soll, wechselst Du player ganz einfach mit

  cSyd.SetPlayer();

ZAK

  • volljähriger Tentakel
  • *****
  • Beiträge: 503
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Probleme mit Starterpack AGS3
« Antwort #116 am: 05. Januar 2011, 14:20:33 »
Danke jetzt geht es, kann man den wechsel auch etwas weicher einstellen? um sich beim betreten des Raum nicht gleich zu erschrcken, wenn es mit einem "hartcut" zum anderen char. geht.

Ich bin immer noch am tüfteln, das ich in dem einem Raum die stromleitung reperiere um den anderen Raum betreten zu können?
Hat da jemand ein tip (script, wie im mm) für mich?
Ich bin mal kurz weg, mich suchen. Wenn ich zurück komme bevor ich wieder da bin, sagt mir bitte das ich warten soll!

Endres

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1264
  • Geschlecht: Männlich
  • En|dres, der
    • ICQ Messenger - 230191486
    • MSN Messenger - enni_puschner@hotmail.de
    • Profil anzeigen
    • e7p.de
    • E-Mail
Re: Probleme mit Starterpack AGS3
« Antwort #117 am: 05. Januar 2011, 14:28:27 »
Was ist daran Hardcut? Muss man überhaupt extra den Raum wechseln bevor der andere Spieler gesetzt wird? Selbst wenn, sollte danach doch noch zum anderen Spieler hingescrollt werden.

Mit der Stromleitung solltest du dir mal Variablen anschauen, die du im Globalscript definierst und exportierst.
[ags]bool bStrom = false;
export bStrom;[/ags]
im Globalscript definiert, und schon kannst du bStrom in jedem Raum abrufen / setzen.
« Letzte Änderung: 09. Januar 2011, 11:42:59 von Endres »


Domi:"irc hab ich mir viren geholt.. icq hab ich nimmer"

ZAK

  • volljähriger Tentakel
  • *****
  • Beiträge: 503
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Probleme mit Starterpack AGS3
« Antwort #118 am: 05. Januar 2011, 14:38:28 »
nicht den Raum wechsteln, sondern wenn der player (first room load) den Raum betritt, kommt halt eine szene mit einem anderen char. was ich meinte ist, das wenn ich den Raum betrete kommt halt ein "hartcut" wechsel zu den Spieler...

...wie gebe ich das mit dem Strom denn im Globalscript ein, und welche befehle im Roomscript.
möchte des der player den Raum erst betreten kann wenn im anderem Raum der Strom repariert ist.
« Letzte Änderung: 05. Januar 2011, 14:52:42 von Zak »
Ich bin mal kurz weg, mich suchen. Wenn ich zurück komme bevor ich wieder da bin, sagt mir bitte das ich warten soll!

Endres

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1264
  • Geschlecht: Männlich
  • En|dres, der
    • ICQ Messenger - 230191486
    • MSN Messenger - enni_puschner@hotmail.de
    • Profil anzeigen
    • e7p.de
    • E-Mail
Re: Probleme mit Starterpack AGS3
« Antwort #119 am: 05. Januar 2011, 15:33:31 »
a) Wie wechselst du denn zu dieser Cutscene, und wann genau kommt der Hardcut? Ich glaube den player unsichtbar zu setzen ist nicht das was du willst. Du könntest ja mal Code posten.

b) GlobalScript habe ich schon geschrieben, der Teil kommt einfach irgendwo ins GlobalScript, zum Beispiel ganz am Ende noch die zwei Zeilen anhängen. Im RoomScript beim reparieren schreibst du einfach dahin, wenn es repariert wurde bStrom = true; und im anderen Raum beim Hotspot z.B.:
[ags]if(bStrom) {
  player.Say("Jetzt habe ich Strom und kann hierhin...");
  //evtl. Türscript bzw. Raumwechsel
} else {
  player.Say("Ich hab keinen Strom, also kein Zutritt");
}[/ags]
« Letzte Änderung: 09. Januar 2011, 11:43:11 von Endres »


Domi:"irc hab ich mir viren geholt.. icq hab ich nimmer"