Autor Thema: So viele Fragen! (Champs Frage Thread)  (Gelesen 5877 mal)

Champ

  • volljähriger Tentakel
  • *****
  • Beiträge: 501
  • Geschlecht: Männlich
  • Ohne Geschmacksverstärker!
    • Profil anzeigen
So viele Fragen! (Champs Frage Thread)
« am: 08. September 2014, 16:31:10 »
Da ich schon damals irgendwie 5 Treads wegen einzelnen Fragen geöffnet habe,stelle ich einfach jede Frage die ich habe hier rein. (Sofern das ok ist)

Naja,meine momentane Frage: Ed betrachtet einen Gegenstand und sagt etwas dazu,Eds Hamster gibt ebenfalls seinen Kommentar dazu ab.
Ich weiß zwar wie man Gedanken zeigt,aber ich weiß nicht wie der Befehl zum Textfarbenändern heißt,ich hatte zwar einen Code gefunden,aber ich weiß nicht ob der für AGS 2.72 war...
Für den Halloween Streich wird Benard bezahlen!

Cone Arex

  • Mod
  • alter Tentakel
  • **
  • Beiträge: 2323
  • Geschlecht: Männlich
  • Skandal-Entwickler und Idiot
    • Profil anzeigen
    • Conequest
Re: So viele Fragen! (Champs Frage Thread)
« Antwort #1 am: 08. September 2014, 18:24:24 »
Textfarbe ändern?  ??? Den Hamster wirst du doch, denke ich, als Charakter angelegt haben. Der hat dann seine eigene Talking Color.


Folge mir auf X und itch.io

Champ

  • volljähriger Tentakel
  • *****
  • Beiträge: 501
  • Geschlecht: Männlich
  • Ohne Geschmacksverstärker!
    • Profil anzeigen
Re: So viele Fragen! (Champs Frage Thread)
« Antwort #2 am: 08. September 2014, 20:31:49 »
Der Hamster ist sogesehen in Eds Inventar,daher kommt die Textanzeige von ihn.

Ok,mal ein anderes Beispiel: Ed hat ein Gerät in der Tasche,das eine Nachricht abspielt,sobald er es anschaut,die Nachricht soll nun über Ed erscheinen,sobald er das tut,aber in einer anderen Farbe,damit man das unterscheiden kann.
Für den Halloween Streich wird Benard bezahlen!

Cone Arex

  • Mod
  • alter Tentakel
  • **
  • Beiträge: 2323
  • Geschlecht: Männlich
  • Skandal-Entwickler und Idiot
    • Profil anzeigen
    • Conequest
Re: So viele Fragen! (Champs Frage Thread)
« Antwort #3 am: 08. September 2014, 20:49:09 »
Ich denke, dann missbrauchst du den Think-Befehl (cEd.Think(message))? Die Talking Color eines Characters kannst du einfach mit Character.SpeechColor = farbe ändern. Wenn du Ed z.B. in weiß sprechen/reden lassen willst, schreibst du:
[ags]cEd.SpeechColor = 15;[/ags]
Nachdem du den Text dann ausgegeben hast, musst du das natürlich wieder zurücksetzen, sonst hat Ed weiterhin die "falsche" Talking Color:
[ags]cEd.SpeechColor = 2;[/ags]
Ich denke, dass ist das was du wissen wollstest?


Folge mir auf X und itch.io

Champ

  • volljähriger Tentakel
  • *****
  • Beiträge: 501
  • Geschlecht: Männlich
  • Ohne Geschmacksverstärker!
    • Profil anzeigen
Re: So viele Fragen! (Champs Frage Thread)
« Antwort #4 am: 08. September 2014, 21:37:43 »
Der Think Befehl ist ja dazu da,damit Ed seinen Mund nicht bewegt und ja,das war es,danke.

EDIT:
Und schon die nächste Frage,nicht nur eine sondern gleich DREI!

1. Frage:
Ich kenne zwar den Befehl wie man Character Views ändert,aber nicht wie man den dazugehörigen Speech View ändert.

2. Frage:
Eine Schublade wird aufgemacht und der Gegenstand darin wird rausgenommen,man kann sie nun schließen,jedoch soll beim weiterem aufmachen nichts mehr drin sein. (ich weiß es geht in etwa mit GlobalInts,aber wie genau weiß ich nicht...)

3. Frage:
Die Spielfigur benutzt einen Gegenstand sagen wir 10 mal,beim 10. mal jedoch passiert etwas. (kurz wie verwende ich Variabeln)

Vielen dank im Voraus.
« Letzte Änderung: 08. September 2014, 23:08:12 von Champ »
Für den Halloween Streich wird Benard bezahlen!

MalleTheRedPhoenix

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1255
  • Geschlecht: Männlich
    • Profil anzeigen
Re: So viele Fragen! (Champs Frage Thread)
« Antwort #5 am: 09. September 2014, 00:14:41 »
Zu Frage 1:

Beispiel:

Zitat
SetCharacterSpeechView (TED, 87); (Bemerkung: Berücksichtige dabei, dass unter "Views" im Menü auch die richtige Animation genommen wird, was in dem Fall die Zahl 87 ist!)

Zu Frage 2:

Als Beispiel nehmen wir für die Schublade die Zahl 17.
Normalerweise beginnen alle GlobalInts mit der entsprechenden Variable 0, was bedeutet, dass diese entsprechenden Ints noch nicht aktiviert worden sind.
Jetzt nehmen wir mal an, dass in der Schublade (Hotspot 5) der Gegenstand (object 1) drin liegt.
Dann würde der Befehl folgendermaßen aussehen, wenn Du diese für den Hotspot "Schublade" einsetzen würdest:

Zitat
else if (UsedAction (A_OPEN))
{
  if (GetGlobalInt (17) == 0)
  {
   FaceDirection (GetPlayerCharacter(), DIR_UP);
   Wait (5);
   DisableHotspot (5); (Bemerkung: Der Hotspot steht in dem Fall für die Darstellung der geschlossenen Schublade!)
   ObjectOn (0); (Bemerkung: Stellt die offene Schublade dar!)
   ObjectOn (1); (Bemerkung: Stellt den Inhalt der Schublade dar!)
  }
}

Als nächstes nehmen wir den Gegenstand aus der offenen Schublade. Der folgende Befehl lautet:

Zitat
else if (UsedAction (A_PICK_UP))
{
  FaceDirection (GetPlayerCharacter(), DIR_UP);
  Wait (5);
  ObjectOff (1);
  AddInventory (1); (Bemerkung: Wir nehmen in dem Fall an, dass Object (1) nun als Gegenstand im Inventar erscheinen soll.)
  SetGlobalInt (17, 1);
 }

Durch den Befehl "SetGlobalInt" geben wir dem Programm die Anweisung, dass nun die Varible 1 aktiviert werden soll. In dem Fall gaukeln wir quasi vor, dass nun kein Gegenstand mehr in der Schublade sein darf, sobald die Schublade wieder geöffnet wird.

Damit das allerdings funktionieren kann, musst Du als letzten Schritt den folgenden Befehl bei dem ersten Skript hinzufügen, den ich vorhin geschrieben habe (ich markiere es zum Verständnis noch mal genauer!):

Zitat
else if (UsedAction (A_OPEN))
{
  if (GetGlobalInt (17) == 0)
  {
   FaceDirection (GetPlayerCharacter(), DIR_UP);
   Wait (5);
   DisableHotspot (5); (Bemerkung: Der Hotspot steht in dem Fall für die Darstellung der geschlossenen Schublade!)
   ObjectOn (0); (Bemerkung: Stellt die offene Schublade dar!)
   ObjectOn (1); (Bemerkung: Stellt den Inhalt der Schublade dar!)
  }
  else if (GetGlobalInt (17) == 1)
  {
   FaceDirection (GetPlayerCharacter(), DIR_UP);
   Wait (5);
   DisableHotspot (5); (Bemerkung: Der Hotspot steht in dem Fall für die Darstellung der geschlossenen Schublade!)
   ObjectOn (0); (Bemerkung: Stellt die offene Schublade dar!)
  }

}

Dadurch, dass wir den entsprechenden Befehl eingegeben haben, wird der Gegenstand beim erneuten Öffnen der Schublade nicht mehr angezeigt. Hätten wir den Befehl nicht eingegeben, wäre wieder das Gegenteil passiert!

Zu Frage 3:

Ähnliches Spiel wie bei Frage 2.

Dazu gehst Du bei "Inventory items" im AGS-Menü, wählst den entsprechenden Gegenstand aus und klickst auf den Button "Interaction...". Dann klickst Du mit der rechten Maustaste auf "Interact inventory item", wählst "New Action" und dann im Auswahlmenü "Run Script" (das ist gleich die zweite Auswahl von oben!) aus.

Dann gibst Du im Skript folgende Befehle ein:
Zitat
if (GetGlobalInt (11) == 0) (Erster Versuch!)
{
 DisplaySpeech (GetPlayerCharacter (), "Es passiert nichts.");
 SetGlobalInt (11, 1) (Zweiter Versuch wird aktiviert!)
}
else if (GetGlobalInt (11) == 1) (Zweiter Versuch!)
{
 DisplaySpeech (GetPlayerCharacter (), "Es passiert nichts.");
 SetGlobalInt (11, 2) (Dritter Versuch wird aktiviert!)
}
else if (GetGlobalInt (11) == 2) (Dritter Versuch!)
{
 DisplaySpeech (GetPlayerCharacter (), "Es passiert nichts.");
 SetGlobalInt (11, 3) (Vierter Versuch wird aktiviert!)
}
.
. (und so weiter bis zum letzten Versuch, in dem Fall bei GetGlobalInt (11) == 9!)
.
else if (GetGlobalInt (11) == 9) (Letzter Versuch!)
{
 DisplaySpeech (GetPlayerCharacter (), "Ahhh... Jetzt tut sich was!!!");
 SetGlobalInt (11, 10) (Keine weitere Versuche mehr möglich!)
}
else if (GetGlobalInt (11) == 10)
{
 DisplaySpeech (GetPlayerCharacter (), "Ich brauche es nicht noch mal zu probieren.");
}
Wie Phönix aus der Asche.

Neue Charaktere, MOR-Spiel und potenzielles Starterpack für MMM und MOR in Arbeit.

Champ

  • volljähriger Tentakel
  • *****
  • Beiträge: 501
  • Geschlecht: Männlich
  • Ohne Geschmacksverstärker!
    • Profil anzeigen
Re: So viele Fragen! (Champs Frage Thread)
« Antwort #6 am: 09. September 2014, 01:34:20 »
Sehr hilfreich,danke dir.
Für den Halloween Streich wird Benard bezahlen!

Champ

  • volljähriger Tentakel
  • *****
  • Beiträge: 501
  • Geschlecht: Männlich
  • Ohne Geschmacksverstärker!
    • Profil anzeigen
Re: So viele Fragen! (Champs Frage Thread)
« Antwort #7 am: 10. September 2014, 15:03:30 »
Neues Problem:

Ein Gegenstand wird mit einem anderem Gegenstand im Inventar kombinert,folgendes passiert:

*A+B wird kombiniert*
"Das könnte gehen!"
*spieler bewegt sich zum Ziel*
*wait*
"Es hat funktioniert!"

Wie verhindere ich nun,dass ich nicht die Spielfigur davon abhalten kann,das zu tun? Denn wenn ich irgendwo hinklicke,hört die Figur auf zu laufen.
« Letzte Änderung: 11. September 2014, 00:20:50 von Champ »
Für den Halloween Streich wird Benard bezahlen!

Champ

  • volljähriger Tentakel
  • *****
  • Beiträge: 501
  • Geschlecht: Männlich
  • Ohne Geschmacksverstärker!
    • Profil anzeigen
Re: So viele Fragen! (Champs Frage Thread)
« Antwort #8 am: 12. September 2014, 22:30:34 »
Ok,ich weiß nicht ob der Thread nicht durch Aktualisierung als neu makiert wird,oder meine Frage einfach nicht verstanden worde:
Wie starte ich eine Sequenz,in der nichts mehr anklickbar ist?
Für den Halloween Streich wird Benard bezahlen!

Cone Arex

  • Mod
  • alter Tentakel
  • **
  • Beiträge: 2323
  • Geschlecht: Männlich
  • Skandal-Entwickler und Idiot
    • Profil anzeigen
    • Conequest
Re: So viele Fragen! (Champs Frage Thread)
« Antwort #9 am: 12. September 2014, 22:41:17 »
Nein, der Thread wurde nicht als neu markiert.

Zu deiner Frage: Du verwendest ganz eindeutig den falschen Befehl.
[ags]player.Walk(x,y,eBlock,eWalkablearea);[/ags]
Ist der korrekte Befehl. x und y erklären sich von selbst, eWalkablearea sagt aus, der Spieler sich nur auch der Walkablearea bewegen darf. eBlock ist das was du sucht. Wenn eBlock gesetzt ist, wird das Skript blockiert, bis der Spieler an der angegebenen Position ist.

Kleiner Hinweis noch: Wenn du bislang MovePlayer verwendet hast: FINGER WEG DAVON! Der ist nur dazu da, um den Spieler zu Hotspots, Objekten etc. hinlaufen zulassen. NICHT um ihn in Sequenzen zu bewegen!


Folge mir auf X und itch.io

Champ

  • volljähriger Tentakel
  • *****
  • Beiträge: 501
  • Geschlecht: Männlich
  • Ohne Geschmacksverstärker!
    • Profil anzeigen
Re: So viele Fragen! (Champs Frage Thread)
« Antwort #10 am: 13. September 2014, 00:35:15 »
Vielen Dank.
Für den Halloween Streich wird Benard bezahlen!

Champ

  • volljähriger Tentakel
  • *****
  • Beiträge: 501
  • Geschlecht: Männlich
  • Ohne Geschmacksverstärker!
    • Profil anzeigen
Re: So viele Fragen! (Champs Frage Thread)
« Antwort #11 am: 14. September 2014, 02:20:04 »
Ich sitze schon schäumend vorm Bildschirm,ich bekomme das mir dem richtigen Setzen von den Klammern nicht hin.

Kann mir einfach jemand sagen,wie ich beim Hotspot/Objekt Editor die "use inventory on object" Fahne nutzen kann,ohne dass bei richtiger ausführung dennoch ein "besser nicht" kommt? (ich will mehrere Gegenstände auf ein Objekt/Hotspot anwenden können)

(was ich auch nicht verstehe,ist das ich aus Testgründen ein Skript 1:1 übertragen habe [von einem das ging] aber das nicht funktionierte,weil ich "forgot to close a branch",aber wenn ich die schließe,springt der unhandled Spruch nicht an)

Für den Halloween Streich wird Benard bezahlen!

Cone Arex

  • Mod
  • alter Tentakel
  • **
  • Beiträge: 2323
  • Geschlecht: Männlich
  • Skandal-Entwickler und Idiot
    • Profil anzeigen
    • Conequest
Re: So viele Fragen! (Champs Frage Thread)
« Antwort #12 am: 14. September 2014, 02:35:03 »
Achtung, zwei Uhr morgens. Bin nicht mehr ganz klar.
Zitat
"use inventory on object"
Gar nicht. Bei MMM wird NUR any_click_on verwendet. KEINE ANDEREN!
Und dann:
[ags]
if (UsedAction(A_USE_INV)
 {
if (player.ActiveInventory == iGegenstandsnameA)
{
// Wird ausgeführt, wenn Gegenstand A auf das Objekt/ den Hotspot angewendet wird.
}
else if (player.ActiveInventory == iGegenstandsnameB)
{
// Wird ausgeführt, wenn Gegenstand B auf das Objekt/ den Hotsport angewendet wird.
}
else Unhandled();
}
[/ags]
Zitat
"forgot to close a branch"
Sagt aus, dass du eine geschweifte Klammer ("}") vergessen hast.
« Letzte Änderung: 14. September 2014, 02:38:35 von ConeRX »


Folge mir auf X und itch.io

Champ

  • volljähriger Tentakel
  • *****
  • Beiträge: 501
  • Geschlecht: Männlich
  • Ohne Geschmacksverstärker!
    • Profil anzeigen
Re: So viele Fragen! (Champs Frage Thread)
« Antwort #13 am: 14. September 2014, 03:35:42 »
Hat sich erledigt.
« Letzte Änderung: 14. September 2014, 04:12:08 von Champ »
Für den Halloween Streich wird Benard bezahlen!