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

Rocco

  • Administrator
  • alter Tentakel
  • *****
  • Beiträge: 2371
  • Geschlecht: Männlich
    • Profil anzeigen
    • Maniac Mansion Mania
    • E-Mail
Re: Probleme mit Starterpack AGS3
« Antwort #30 am: 13. Dezember 2010, 21:22:10 »
@KhrisMUC
die Anleitung habe ich unter anderem auf anderen Seiten, sowie hier im Forum gesehen:

http://www.maniac-mansion-mania.de/forum/index.php?topic=15.0

wo u.a das mit "DIR_UP" steht, was bei mir im AGS3.1 nicht funktioniert.

Bitte gleich überarbeiten Khrismuc.  ;D  :-*

KhrisMUC

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 989
    • Profil anzeigen
Re: Probleme mit Starterpack AGS3
« Antwort #31 am: 13. Dezember 2010, 23:47:56 »
@Endres,
das Letzte Zitat ist das was ich im Script "Doors" eingegeben habe und die Fehlermeldung: ...undefined symbol "gr_Bernard" erhalten habe. (Wo lege ich das "object"oTuer an???)
ich kenne mich noch nicht so genau aus, aber das was ich bislang gemacht habe funtioniert alles.
habe "hotspots" zum "Raum" wechsel erstellt.... geht alles, vur mit den sch... Türen habe ich meine probleme.
So wie ich es (mir an-) gelernt habe muss ich ein "any_Click" für "hTuer" sowie "oTuer" erstellen, nur in den SP seke ich diesen eintrag nicht, ebenso funktioniert bei mir die optiov "Tür>v" auch nicht.
Türen haben zwar auch ein Objekt, das braucht aber kein any_Click; die Tür-Objekte werden nur zum Anzeigen des "Türlochs" verwendet und sind sowieso nicht anklickbar.
Um das neue Türensystem zu nutzen, braucht wieder jede Tür eine interne Nummer; damit sie die bekommt, musst Du den Namen für die Tür an die enum-Definition eDoorNum in Doors.ash hängen. Das hat Endres gemeint.

Im Mansion-Pack beispielsweise sähe das so aus:
enum eDoorNum
{
eDoorNumHaustuer,
eDoorNumGitter,
        .
        .
        .
eDoorNumTeleskopzimmer,
eDoorNumDrahtraum,
        gr_Bernard,    // Bernard's Zimmertür
};

die Anleitung habe ich unter anderem auf anderen Seiten, sowie hier im Forum gesehen:
http://www.maniac-mansion-mania.de/forum/index.php?topic=15.0
wo u.a das mit "DIR_UP" steht, was bei mir im AGS3.1 nicht funktioniert.

Nochmal: ob "DIR_UP" funktioniert oder nicht, hat nix mit der AGS-Version zu tun. Du verwendest aber ein neueres Starterpack und dort sind die Namen der Richtungen modernisiert worden.

Bitte gleich überarbeiten Khrismuc.  ;D  :-*

Bei Gelegenheit ;D

ZAK

  • volljähriger Tentakel
  • *****
  • Beiträge: 503
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Probleme mit Starterpack AGS3
« Antwort #32 am: 14. Dezember 2010, 13:49:39 »
Juhuu.... ich kann Türen öffnen und in den nächsten Raum gehen...!!!

vielen Dank für die Hilfe.....

...habe aber wieder ein Problem...   wenn ich raus gehe ist die Tür wierder zu (kein Problem bei nur einem Player, das kann ich ja im "Doorscript" einstellen). wenn ich aber wieder zurück gehe ist die Tür zwar offen, aber das Objekt verschwindet (Tür sieht zu aus, ist aber offen).
...soweit bin ich zufrieden, geht gut voran und macht echt spass...!!!
Tolles Forum :) :D :P
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 #33 am: 14. Dezember 2010, 14:18:44 »
In jedem Raum mit Tür muss in "Enters room before fade-in" / room_Load() Folgendes stehen:

  Door[gr_Bernard].Init(oTuer, hTuer);
Natürlich von den Werten entsprechend angepasst; jede Tür braucht ihre eigene Zeile mit ihrem enum, Object und Hotspot.
Diese Zeile sorgt u.A. dafür, dass das Türobjekt je nach Zustand der Tür an- oder ausgeschaltet wird.

ZAK

  • volljähriger Tentakel
  • *****
  • Beiträge: 503
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Probleme mit Starterpack AGS3
« Antwort #34 am: 14. Dezember 2010, 17:32:53 »
habe das Problem schon erkannt.... und es funktioniert auch.
Habe auch soweit die "gleichen" parameter im Sckipt stehen, nur das in einem Raum (mit 2 Türen) alles o.k. ist, nur in einem Raum (mit nur 1 Tür) ist die Tür zwar offen, sieht aber zu aus, in einem anderen kann ich die tür öffnen und schliessen, aber die Tür sieht ebenso zu aus....
die Funktionen sin da, bis auf bei einer (habe "Tür>v" angegeben) wo es mir im gMaingui nichts anzeigt, kann sie aber Offnen, schliessen und betreten.....
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 #35 am: 14. Dezember 2010, 18:16:14 »
Du hast aber schon jeder Tür ein neues enum gegeben, oder? Und jede Tür komplett in Doors.asc eingetragen? Und in jedem Raum alle Türen mit .Init() initialisiert?
Und die Objekte richtig den Türen zugeordnet usw?

Überprüf nochmal alles.
Ich kanns mir auch mal anschauen, müsstest die Quelldateien halt packen und irgendwo hochladen.

ZAK

  • volljähriger Tentakel
  • *****
  • Beiträge: 503
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Probleme mit Starterpack AGS3
« Antwort #36 am: 14. Dezember 2010, 18:34:36 »
o.k. ...ich schäme mich, habe bei der einen Tür den Scriptfehler gefunden, hatte ein "enter room after fade in" objekt aktiviert. jetzt gehts, bis auf die eine Tür...  kann sie nutzen aber nicht mit Rechtsklick und sie zeigt sich nicht als offen an (es sei denn ich aktiviere unter " visible" true).
desweitern habe ich mir in beiden "doors" 20 Türen eingerichtet.

für den einen Raum habe ich das:


Zitat
   Door[eDoorNumTuer2].i_GlobalInt                  = eDoorClosed;
   Door[eDoorNumTuer2].l_Room                        = 6;
   Door[eDoorNumTuer2].i_XPosition                  = 558;
   Door[eDoorNumTuer2].i_YPosition                  = 115;
   Door[eDoorNumTuer2].l_Direction                  = eDirUp;

   Door[eDoorNumTuer2].l_NewRoom                     = 14;
   Door[eDoorNumTuer2].i_NewXPosition            = 40;
   Door[eDoorNumTuer2].i_NewYPosition            = 125;
   Door[eDoorNumTuer2].l_NewDirection            = eDirRight;

   Door[eDoorNumTuer2].s_LookAt                     = "Das ist die Tür zum Speisesaal.";
   Door[eDoorNumTuer2].s_NewLookAt                  = "Da geht es wieder nach Draussen.";
habe für Raum 6 und 14 "  if(Door[eDoorNumTuer2].Click()==0) Unhandled();
angegeben, das gleiche für Raum 7 und 14, nur mit Door[eDoorNumTuer8]
zwischen Raum 6 und 14 klappt alles, im Raum 14 zu 7 auch, nur von Raum 7 nicht. sehe nicht das es offen ist....
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 #37 am: 14. Dezember 2010, 19:27:36 »
Ich nehme alles zurück....
...ich sollte ne Therapie anfangen..... mit meine Türen.... ist warscheinlich der "Holzwurm drin.
hatte bei room_load nen komma drin was da nicht hingehört......
....jetzt geht alles.
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 #38 am: 14. Dezember 2010, 19:59:47 »
Ich nehme alles zurück....
...ich sollte ne Therapie anfangen..... mit meine Türen.... ist warscheinlich der "Holzwurm drin.
hatte bei room_load nen komma drin was da nicht hingehört......
....jetzt geht alles.

Keine Panik. Als Anfänger ist das gar nicht so leicht, das überhaupt hinzukriegen. Also großes Lob trotzdem von mir, das du es gepackt hast. ;)


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 #39 am: 17. Dezember 2010, 18:25:04 »
das mit den Türen und dem Skript läuft bei mir ja schon recht gut,
ich habe meine Räume mit Bernard als player gemacht und somit auch als Bernards Zimmer im DoorScript geschrieben:

Zitat
Door[eDoorNumTuer1].s_NewLookAt   = (das ist mein Zimmer");

ebenso im RoomScript ("das ist mein Schreibtisch")

nun die Frage: wie ist es wenn ich die "Storry" mit einer andern Charaktere Spielen möchte, oder gar 2 oder 3 Player habe...

im RoomScript kann ich ja schreiben (cDave.Say("...");), aber die anderen dialoge werden ja auch gesagt, obwohl sie nicht im Raum sind...??

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 #40 am: 17. Dezember 2010, 20:00:49 »
Normalerweise ist im Starterpack eine Funktion "SayIfPlayer" enthalten. Vielleicht ist das wonach du suchst.  :cl


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 #41 am: 18. Dezember 2010, 12:04:28 »
Danke... ist aber momentan nicht so wichtig! Ich habe mich erstmal für eine Charaktere entschieden, wollte mein Spiel ursprünglich,wie im Original mit 2 weiteren Player zu aussuchen machen. Denke aber das, das die Sache komplizierter machen würde.
komme mit meinem Projekt gut vorran...
hab da aber noch ne Frage zum Raumwechsel mit hotspot (wie bei Bernards Haus und "gehe zu Garage"):
ich habe so was bei mir mit eingebaut, aber ich möchte das der player von der Position im "neuem" Raum noch weiter zu einem anderem Punkt läuft...
wie schreibe ich das den im Skript ?
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 #42 am: 18. Dezember 2010, 15:51:22 »
Im anderen Raum in "player enters screen after fade-in":

  if (player.PreviousRoom == 4) player.Walk(130, 175);

ZAK

  • volljähriger Tentakel
  • *****
  • Beiträge: 503
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Probleme mit Starterpack AGS3
« Antwort #43 am: 18. Dezember 2010, 16:36:48 »
gut, das funktioniert....
...nur habe ich 2 Möglichkeiten den neuen Raum zu betreten, eimal von der Rechten und eimal von der Linken Seite wo ich ja jewals an einem anderen punkt ankommen möchte.
Script:

Zitat
function hBackbordBug_AnyClick()
{
  if(any_click_move(815, 80, eDirLeft))
   {
    if (UsedAction(eActWalkTo))
      {
         SetNextScreenTransition(eTransitionCrossfade);
         player.ChangeRoom(10, 140, 120);
         player.FaceDirection(eDirRight);
      }
      else if (UsedAction(eActLookAt))
      {
         Wait(5);
         player.Say("Da geht es zur anderen Seite.");
      }
      else Unhandled();
   }
}

function hBackbordHeck_AnyClick()
{
  if(any_click_move(495, 80, eDirRight))
   {
    if (UsedAction(eActWalkTo))
      {
         SetNextScreenTransition(eTransitionCrossfade);
         player.ChangeRoom(10, 505, 120);
         player.FaceDirection(eDirLeft);
      }
      else if (UsedAction(eActLookAt))
      {
         Wait(5);
         player.Say("Da geht es zur anderen Seite.");
      }
      else Unhandled();
   }
}


jetzt soll der Player aber von
player.ChangeRoom(10, 140, 80);
zu
(10, 140, 120);
laufen
und von der anderen Seite ja zu einem anderen Punkt
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 #44 am: 20. Dezember 2010, 19:27:26 »
Dann checkst Du halt die Koordinaten vom Spieler:
  if (player.x < 300) player.Walk(140, 120);
  else player.Walk(505, 120);

Der Nächste bitte! ;D