Hauptmenü

Neuigkeiten:

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

Ein paar Script-Fragen

Begonnen von Der Kompaniechef, 22. Juni 2013, 16:59:59

Vorheriges Thema - Nächstes Thema

Der Kompaniechef

Moin,
ich bin es wieder!
Habe ein paar Fragen:

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

{
{
if (UsedAction (A_WALK_TO)) {
if (MovePlayer (252,140)) {
 }
}

else if (UsedAction (A_OPEN)) {
if (MovePlayer (252,140)) {
FaceDirection (GetPlayerCharacter (),  DIR_UP);
DisplaySpeech (GetPlayerCharacter (), ".");
 }
}
else if (UsedAction (A_USE)) {
if (MovePlayer (252,140)) {
FaceDirection (GetPlayerCharacter (),  DIR_UP);
   DisplaySpeech (GetPlayerCharacter (), "");
 }
}
else if (UsedAction (A_PUSH)) {
if (MovePlayer (252,140)) {
FaceDirection (GetPlayerCharacter (),  DIR_UP);
   DisplaySpeech (GetPlayerCharacter (), ".");
     FaceDirection (GetPlayerCharacter (),  DIR_DOWN);
   DisplaySpeech (GetPlayerCharacter (), ".");
 }
}
else if (UsedAction (A_PULL)) {
if (MovePlayer (252,140)) {
FaceDirection (GetPlayerCharacter (),  DIR_UP);
DisplaySpeech (GetPlayerCharacter (), ":");

 }
}
else if (UsedAction (A_PICK_UP)) {
if (MovePlayer (252,140)) {
FaceDirection (GetPlayerCharacter (),  DIR_UP);
DisplaySpeech (GetPlayerCharacter (), ".");
 }
}
else if (UsedAction (A_CLOSE)) {
if (MovePlayer (252,140)) {
FaceDirection (GetPlayerCharacter (),  DIR_UP);
DisplaySpeech (GetPlayerCharacter (), ".");
 }
}
else if (UsedAction (A_LOOK_AT)) {
if (MovePlayer (252,140)) {
FaceDirection (GetPlayerCharacter (),  DIR_UP);
DisplaySpeech (GetPlayerCharacter (), ".");
 }
}
else if (UsedAction (A_USE_INV))
{
 if (MovePlayer (252,140))
 {
   if (character [GetPlayerCharacter ()].activeinv == 23)
   {
     FaceDirection (GetPlayerCharacter (),  DIR_UP);
     Wait (5);
    DisplaySpeech (GetPlayerCharacter (), ".");
   }
   else
   {
    FaceDirection (GetPlayerCharacter (),  DIR_UP);
    DisplaySpeech (GetPlayerCharacter (), "Das werde ich nicht verschenken.");
   }
}
}
}
}

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

rulaman

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
Baden ist die einzige Möglichkeit, den Dreck der Füße an den Hals zu bekommen.

VikingLord

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.
Nimm das Haustier des Blauen,
stecke es in die Kiste voll Grauen,
Bringe es dem, der beim Klingeln zur Tür rennt,
selig ist, wer Maniac Mansion kennt

MalleTheRedPhoenix

#3
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:
Wie Phönix aus der Asche.

Neue Charaktere und Starterpack für MOR in Arbeit.

KhrisMUC

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.