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

Timer

  • volljähriger Tentakel
  • *****
  • Beiträge: 763
  • Geschlecht: Männlich
    • ICQ Messenger - 275798409
    • AOL Instant Messenger - commandertimer
    • Profil anzeigen
    • Meine Seite
    • E-Mail
Re: Probleme mit Starterpack AGS3
« Antwort #90 am: 29. Dezember 2010, 13:28:56 »
Wenn du gewisse Inventargegenstände miteinander kombinieren willst, schreibst du das am besten in "Use inventory on this item". "Interact inventory item ist nur dafür gedacht, wenn man das Objekt direkt benutzen können soll (wie z.B. ein Handy).
Ich gehe mal davon aus, dass du den Schraubenzieher mit der Kleberdose verwenden willst. Dann schreibst du das, was passieren soll, wenn man die items kombiniert, bei beiden items unter "Use inventory on this item". Nach diesem Schema:
Beim Schraubenzieher:

function iSchraubenzieher_UseInv()
{
  if (player.ActiveInventory == iKleberdose)
  {
    DoseOeffnen ();
  }
}

Bei der Dose:

function iKleberdose_UseInv()
{
  if (player.ActiveInventory == iSchraubenzieher)
  {
    DoseOeffnen ();
  }
}

ZAK

  • volljähriger Tentakel
  • *****
  • Beiträge: 503
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Probleme mit Starterpack AGS3
« Antwort #91 am: 29. Dezember 2010, 14:28:53 »
schön und gut, nur erkennt das script "DoseOeffnen();" leider nicht...
...und wenn die Dose offen ist soll auch das item von "dose" in "dose offen" wechseln...

//Edit: 
warum auch einfach, wenn es auch schwierig geht...
... habe nur folgendes gemacht:
Zitat
function iKleber01_UseInv()
{
if (player.ActiveInventory == iSchraubendreher)
  {
    player.Say("Die Dose ist offen.");
    player.LoseInventory(iKleber01);
    player.AddInventory(iKleber02);
  }
}
und siehe da.... ich habe eine "offene Dose" im Inventar....
ohne im script vom schraubendreher was zu schreiben...
« Letzte Änderung: 29. Dezember 2010, 14:38:35 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 #92 am: 29. Dezember 2010, 14:41:56 »
Es gibt natürlich keine eingebaute "DoseOeffnen"-Funktion ::)

Die musst Du schon selbst schreiben:
function DoseOeffnen() {
  Wait(5);
  player.Say("Ich versuch mal, die Dose mit dem Schraubenzieher aufzuhebeln.");
  Wait(10);
  player.LoseInventory(iKleberdose);
  player.AddInventory(iKleberdoseoffen);
  UpdateInventory();
  Wait(10);
  player.Say("Es hat geklappt! Die Dose ist offen.");
}

Sie muss über den anderen beiden stehen, sonst klappt es nicht.

Ich versteh schon, dass Du Neuling bist usw., aber versuch doch bitte selbst, mitzudenken. Der Code, den wir Dir geben, kann nicht immer direkt eingebaut werden und schon läufts, das ist auch gar nicht Sinn der Sache. Du sollst verstehen, warum wir den und den Code so und so schreiben und dann per Transfer deinen Eigenen hinkriegen.
Sonst können wir dir gleich das ganze Spiel skripten, und das ist nicht Aufgabe dieses Forums.

ZAK

  • volljähriger Tentakel
  • *****
  • Beiträge: 503
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Probleme mit Starterpack AGS3
« Antwort #93 am: 29. Dezember 2010, 15:01:39 »
da ich mit meinem spiel zu etwa 90% fertig bin, muss mir auch keiner ein ganzes script schreiben.
ich hole mir hier, hilfe, anregungen und den umgang mit den "vorgeferigten" scripts (da ich diese ja überhaupt noch nicht kenne), lerne daraus und versuche durch mein mitdenken, es so gut ich kann umzusetzen.
da in den "SP's" schon einiges geferitigt ist, gehen halt manch andere "anweisungen" die ich eingebe nicht.
das habe ich ja auch beim DoorScript feststellen müssen. somit bleibt mir nichts anderes übrig als hier nachzufragen!
aber trotz alle dem.... vielen dank für die hilfe....

bei mir im script funktioniert es eben so...
Zitat
function iKleber01_UseInv()
{
if (player.ActiveInventory == iSchraubendreher)
  {
    PlaySound(42);
    Wait(5);
    player.LoseInventory(iKleber01);
    player.AddInventory(iKleber02);
    Wait(15);
    player.Say("Die Dose ist nun offen.");
  }
}

function iKleber02_UseInv()
{
if (player.ActiveInventory == iPinsel01)
  {
    PlaySound(36);
    Wait(5);
    player.LoseInventory(iPinsel01);
    player.AddInventory(iPinsel02);
    Wait(15);
    player.Say("Es ist Kleber am Pinsel.");
  }
}

//Edit
auch durch die kleinen hilfen wie z.b. von "Timer" habe ich doch alles gut umsetzen können, nun weiss ich wie es geht und mich freut es das soweit alles  funktioniert.....
« Letzte Änderung: 29. Dezember 2010, 15:58:01 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!

Timer

  • volljähriger Tentakel
  • *****
  • Beiträge: 763
  • Geschlecht: Männlich
    • ICQ Messenger - 275798409
    • AOL Instant Messenger - commandertimer
    • Profil anzeigen
    • Meine Seite
    • E-Mail
Re: Probleme mit Starterpack AGS3
« Antwort #94 am: 29. Dezember 2010, 16:02:39 »
Das ist auch genau, wie es aussehen sollte. "DoseOeffnen" war nie dafür gedacht, irgendeinen Sinn zu erfüllen, es sollte lediglich einen Platzhalter für deine Anweisungen darstellen. ;)

Allerdings würde ich dir dennoch empfehlen, das gleiche Script beim Schraubenzieher einzubauen. Denn momentan kommt wahrscheinlich die Reaktion sehr wohl bei "Benutze Schraubenzieher mit Kleberdose", aber nicht mit "Benutze Kleberdose mit Schraubenzieher". Wenn das nicht in beiden Richtungen funktioniert, ärgern sich einige Spieler, die das als logisch ansehen würden. Nur ein Ratschlag. :)

KhrisMUC

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 989
    • Profil anzeigen
Re: Probleme mit Starterpack AGS3
« Antwort #95 am: 29. Dezember 2010, 16:07:14 »
und siehe da.... ich habe eine "offene Dose" im Inventar....
ohne im script vom schraubendreher was zu schreiben...
Ja, aber jetzt lassen sich die beiden Gegenstände "nur in eine Richtung" kombinieren.
Es ist zwar in diesem Fall weit weniger wild, da man den Schraubenzieher konkret an der Dose ansetzt; oft sollte man aber die Alternative mit einbauen, z.B. beim Kombinieren von Angelschnur und Rute.
Es wird sonst generell als Faulheit oder schlechtes Design gewertet.

ZAK

  • volljähriger Tentakel
  • *****
  • Beiträge: 503
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Probleme mit Starterpack AGS3
« Antwort #96 am: 29. Dezember 2010, 17:31:52 »
ich weiss zwar nicht genau wie es geht, aber es muss schon irgendwo im schon script festgehalten sein, das auch die anderen funktionen gehen. also z.b. "benutze" schraubendreher mit pinsel = das geht nicht , ziehe schraubendreher...u.s.w.....
...das ist ja das was ich meinte, das ich die unterstützung von euch brauche, das script ( im AGS3.1) richtig zu schreiben, weil schon viel vorgeschrieben ist....
...was mir aufgefallen ist, ist das ich viele anwendungen im script stehen habe, die völlig überflüssig sind ( weil, doppelt gemoppelt, die infos habe ich von hier), aber die arbeit mag ich mir nicht machen alles raus zu löschen.

ne andere sache... ich bin ja mit meinem spiel so weit durch (nen par kleinigkeiten, und die grossen kleinigkeiten an den dialogen) und habe schon 13MB als fertiges spiel... ist das zuviel... ??? woran mag das liegen.. ???

muss dazu sagen, das ich im ordner "räume" 42 habe wobei etwa 30% aus 960 mal 200 sind....

//Edit:

jedes "item" hat ja auch noch weiteres...

code:

Zitat
function iLukenoeffner_Look()
{
  player.Say("Ein Lukenöffner.");
}

function iLukenoeffner_OtherClick()
{
  Unhandled_Inventory();
}
« Letzte Änderung: 29. Dezember 2010, 17:53:52 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!

Bissiger Witzbold

  • volljähriger Tentakel
  • *****
  • Beiträge: 554
    • Profil anzeigen
Re: Probleme mit Starterpack AGS3
« Antwort #97 am: 29. Dezember 2010, 18:02:24 »
und habe schon 13MB als fertiges spiel... ist das zuviel... ??? woran mag das liegen.. ???
Soooviel ist das doch gar nicht, hatten schon einige Folgen die über 30 MB gross waren (ungezippt).

ZAK

  • volljähriger Tentakel
  • *****
  • Beiträge: 503
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Probleme mit Starterpack AGS3
« Antwort #98 am: 30. Dezember 2010, 10:32:06 »
ich stehe da echt vor einem rätsel....
...ich habe da ein schrank, indem ein objekt drin ist, wenn ich den schrank öffne, kann ich das objekt nehemn...
...es klappt soweit auch, wenn ich mit play (im AGS, player start in dem raum) das spiel starte geht auch alles, mache ich eine exe datei daraus (gleiche einstellung) und spiele den dem raum starte, geht auch alles. sobald ich aber das spiel im raum 1 (startroom) speicher, um das gesammte spiel zu spielen, eine exe datei draus mache, ist wenn ich in dem raum (mit dem schrank) gehe um ihn zu öffnen, nichts drin....

//Edit:
nach langer suche habe ich den fehler gefunden....
habe im "game.DoOnceOnly" 2 mal den selben befehl gehabt.......
« Letzte Änderung: 30. Dezember 2010, 11:41:48 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 #99 am: 30. Dezember 2010, 11:44:19 »
Dann machst du wohl irgendwas falsch. Definierst du dein Objekt im Schrank von vornherein als "Visible true" und guckst, ob die Baselines stimmen, damit die Schranktür davor ist, brauchst du gar nix mehr falsch machen, dann geht das so wie überall sonst auch...  :D

Was mich allerdings doch ein wenig wundert ist, dass es beim start in anderen Räumen Probleme damit gibt...


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 #100 am: 30. Dezember 2010, 12:02:44 »
wie schon geschrieben.....
Zitat
//Edit:
nach langer suche habe ich den fehler gefunden....
habe im "game.DoOnceOnly" 2 mal den selben befehl gehabt.......
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 #101 am: 01. Januar 2011, 02:26:48 »
Oha, das hattest du wohl genau dann bearbeitet, als ich meinen Beitrag am schreiben war.  ;D


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 #102 am: 02. Januar 2011, 21:23:49 »
Habe da ein problem mit dem Abspann...
...mein spiel ist zuende mit "benutze object", dann kommt noch ein kurzer dialog vom Player und soll dann in den Raum "Ende" wechseln.
Stare ich mit dem player in dem Raum, funktioniert alles super, aber starte ich von anfang an und spiele das spiel durch stürzt das spiel beim Raumwechsel "Ende" ab.
bekomme da folgende Fehlermeldung:
Zitat
in 'Global.asc' Line 2060
Error:Error running function 'repeatedly_execute':
ErroR: null pointer referenced

Global Script:
Zitat
   InvWindow *invMain = gMainInventory;
   if ( null != invMain.ItemAtIndex[0] )
   {
      if ( 0 != gMainInventory.TopItem )
      {
         // if inventory can scroll up
         gMainInvUp.NormalGraphic = invUparrowONsprite;
         InventoryItem *invItem = InventoryItem.GetAtScreenXY(180, 160);
      
         if (invItem.ID < 0)        <-----------2060---------
            gMainInventory.ScrollUp();
      }
      else
         gMainInvUp.NormalGraphic = invUparrowOFFsprite;
   }
   if ((gMainInventory.TopItem + (gMainInventory.ItemsPerRow * gMainInventory.RowCount)) < gMainInventory.ItemCount)
      gMainInvDown.NormalGraphic = invDownarrowONsprite;
  else
      gMainInvDown.NormalGraphic = invDownarrowOFFsprite;
}
#sectionend repeatedly_execute  // DO NOT EDIT OR REMOVE THIS LINE

// ============================= on_key_press ===========================================
Ich bin mal kurz weg, mich suchen. Wenn ich zurück komme bevor ich wieder da bin, sagt mir bitte das ich warten soll!

rulaman

  • Moderator
  • Teenie Tentakel
  • *****
  • Beiträge: 354
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Probleme mit Starterpack AGS3
« Antwort #103 am: 02. Januar 2011, 22:50:09 »
Dann änders das folgendermaßen ab.


if ( NULL != invItem )
{
  if (invItem.ID < 0)        <-----------2060---------
    gMainInventory.ScrollUp();
}


Mist, wieder alle Starterpacks kontrolieren und evtl. korrigieren.


Rulaman
Baden ist die einzige Möglichkeit, den Dreck der Füße an den Hals zu bekommen.

ZAK

  • volljähriger Tentakel
  • *****
  • Beiträge: 503
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Probleme mit Starterpack AGS3
« Antwort #104 am: 02. Januar 2011, 23:16:35 »
funzelt irgendwie nicht....
...kommt nicht klar mit "NULL" und "invItem".
Ich bin mal kurz weg, mich suchen. Wenn ich zurück komme bevor ich wieder da bin, sagt mir bitte das ich warten soll!