Maniac Mansion Mania Forum

MMM-Werkzeugkiste => Technik => Thema gestartet von: Der Kompaniechef am 22. Juni 2013, 16:59:59

Titel: Ein paar Script-Fragen
Beitrag von: Der Kompaniechef am 22. Juni 2013, 16:59:59
Moin,
ich bin es wieder!
Habe ein paar Fragen:

1. Problem: Benutzen von mehreren gegständen an Personen /// anklicken um Code anzuzeigen
Spoiler (hover to show)

Ich will das man bei 2 Gegenständen eine bestimmte Aktion hat und beim Rest einen Standart-Satz
Habe schon gefühlt als versucht. Entweder funzt dann nur ein Gegenstand(der andere macht einfach nur ein Standart-Satz) oder beide funzen aber der Standart-Satz wird dann mit ausgeführt.

2. Problem
Wie heist der Scriptcode damit das Lade-Menü ausgeführt wird?

3. Gibt es einen Scriptcode der automatisch ein Save vom aktuellen Spiel macht?

4. Ich weiß das hatten wir schon hundert mal hier im Forum aber wie zum Teufel geht der Gib-Befehl???
Ich möchte etwas an eine nicht MM-Person geben.
Was muss ich dafür im Global-Scribt verändern/ hinzufügen?

5.Wo kann man die Aktionen für Spiel paussieren deaktivieren?

MFG JPJF
Titel: Re: Ein paar Script-Fragen
Beitrag von: rulaman am 25. Juni 2013, 17:42:53
zu 0:
Warum um alles in der Welt postest du hier dermaßen alten Code?  ??? ??? ??? ??? ??? ??? ???


zu 1:

  if (character [GetPlayerCharacter ()].activeinv == 23)
  {
    FaceDirection (GetPlayerCharacter (),  DIR_UP);
    Wait (5);
    DisplaySpeech (GetPlayerCharacter (), ".");
  }
  else if ( character [GetPlayerCharacter ()].activeinv == 20 ) // anderer Gegenstand
  {
    DisplaySpeech (GetPlayerCharacter (), "Hier anderer Text.");
  }
  else
  {
    FaceDirection (GetPlayerCharacter (),  DIR_UP);
    DisplaySpeech (GetPlayerCharacter (), "Das werde ich nicht verschenken.");
  }
}

2:
suche in dieser Funktion
function gOptLoad_OnClick(GUIControl *control, MouseButton button)

zu 3:
Willst du einen bestimmten Level haben?

zu 4:
Sollte das nicht in den neuen SPs drin sein?

zu 5: schau mal dort nach
function on_key_press(int keycode)


Grüße
Rulaman
Titel: Re: Ein paar Script-Fragen
Beitrag von: VikingLord am 23. April 2015, 14:18:29
Ich habe auch ein ähnliches Problem:

Ich möchte ein Item mit einer Tür benutzen können und habe keine Ahnung, welchen Befehl ich dafür in AGS 3.3.3 benutzen will. Im Script steht bisher:
Zitat
function iGSchluessel_UseInv()
{
 if (player.ActiveInventory == )
{
 player.Walk(235, 115);
 Wait (30);
 player.Say("Super! Die Tür ist offen!");
 aSound2.Play();
 Door[eDoorNumEd].Open();
 }
}
Jetzt weiß ich nicht, was ich in der Zeile  if (player.ActiveInventory == ) eingeben muss (mir ist natürlich klar, dass hinter die zwei = noch Door[eDoorNumEd] stehen muss).

 Kurz gesagt: Ich suche eine Art ActiveInventory-Befehl mit dem man Items und Hotspots miteinander benutzen kann.
Titel: Re: Ein paar Script-Fragen
Beitrag von: MalleTheRedPhoenix am 23. April 2015, 15:18:04
Da ich mich noch nicht mit dem Skripten von AGS 3.3.3 befasst habe, vermute ich mal, dass du dahinter entweder die entsprechende IDNr. oder den IDNamen des Inventargegenstandes eingeben musst, damit das Programm registriert, dass bei Anwendung des entsprechenden Objektes der Skript ausgelöst wird.

Ist wie gesagt nur eine Vermutung und kein Vorschlag von mir, weswegen ich an deiner Stelle lieber auf den Rat von jemanden warten würde, der Ahnung mit der Skriptsprache hat. :police:
Titel: Re: Ein paar Script-Fragen
Beitrag von: KhrisMUC am 26. April 2015, 22:48:34
Es funktioniert genau andersherum; zum Benutzen eines Inventargegenstandes mit einem Hotspot wird der Code beim Hotspot rein geschrieben, nicht beim Gegenstand.
[ags]  if (player.ActiveInventory == iGSchluessel) ...[/ags]
(Die Funktion, die Du verwendet hast, ist gedacht für "Benutze X mit iGSchluessel".)

Vermutlich ist es beim neuen Türensystem aber einfacher; ich gehe mal davon aus, dass man den Schlüssel einfach festlegt, und er danach automatisch funktioniert. Ich bin da aber nicht auf dem Laufenden.