Autor Thema: Ein paar AGS Fragen A.k.a Kinkilla braucht Hilfe Thread  (Gelesen 7103 mal)

Kinkilla

  • volljähriger Tentakel
  • *****
  • Beiträge: 845
  • Geschlecht: Männlich
  • Nicht zu verwechseln mit einem Chinchilla!
    • Profil anzeigen
Ein paar AGS Fragen A.k.a Kinkilla braucht Hilfe Thread
« am: 21. Januar 2017, 17:45:50 »
Hi Community.
Ich habe da zwei Fragen...

1. Wie kann man eine Aktion wie Ziehen oder Öffnen auf ein InventarItem ausführen. Ich hab mir die Item Events angeschaut und die AGS Help File hatte mir auch nicht viel geholfen....

2. Ich kenn mich überhaupt nicht mit WalkableAreas IDs aus. Und das ist mein Problem: Ich habe ein Objekt hingestellt welches sehr viel Platz wegnimmt, also damit mein Charakter in das Objekt hinneinläuft habe ich die WalkableArea Map bearbeitet. Allerdings wird es möglich sein dieses Objekt mitzunehmen. Und man sollte dann dort wo das Objekt gestanden war hinlaufen. Das geht jetzt aber nicht mehr weil ich die WalkableArea Map bearbeitet habe.
Jetzt die Konkrete Frage: Kann man per Script die Walkable Area Map ändern :)
LG Kinkilla

Kiwa

  • volljähriger Tentakel
  • *****
  • Beiträge: 762
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Ein paar AGS Fragen A.k.a Kinkilla braucht Hilfe Thread
« Antwort #1 am: 21. Januar 2017, 22:42:59 »
Zu1:
In AGS das Inventarobjekt anklicken (in der Liste der Inventarobjekte) , dann auf den Blitz klicken (wenn man mit der Maus drüber fährt wird "Events" angezeigt, und dann bei "Other click on Event" auf den kleinen Button rechts klicken. Dann erstellt AGS eine Funktion die z.B. so aussehen kann(bei DRÜCKE oder ZIEHE wird das gleiche gesagt, bei ÖFFNE und SCHLIESSE was anderes), natürlich kann dann auch was anderes passieren, das musst du dann selber in die Funktion schreiben:

function [hier steht der Name von Inventarobjekt]_OtherClick()
{
  if (UsedAction(eActOpen)){
    player.Say("Aber das geht doch nicht.");
  }
  if (UsedAction(eActPush) || UsedAction(eActPull)){
    player.Say("Das bringt nichts.");
  }
  if (UsedAction(eActClose)){
    player.Say("Es ist schon zu.");
  }
}

Zu2:
WalkableAreas IDs braucht man um mehrere "begehbare" Bereiche zu verwalten. Mit der ID kannst du jeden Bereich seperat steuern. Das brauchtst du auch bei deinem Problem. Du kannst einen Bereich seperat gestallten und diesen zuerst ausschalten (wenn dort ein Objekt den Weg versperrt). Und wenn das Objekt weg ist wird dieser Bereich wieder freigegeben. Das kann dann so gemacht werden das der erste Bereich die ID 1 hat und der zweite die ID 2.
In der roomLoad() Funktion kannst du dann mittels boolscher GlobalerVariablen abprüfen ob das Objekt noch vorhanden ist (beim entfernen des Objekts natürlich die Variable "umschalten)" und so je nach Zustand der Variablen die entsprechende WalkableArea ID ein- oder ausschalten.

Es ginge wohl auch ohne Variable aber der Vorteil ist jener das du die Variable auch woanders im Spiel benutzen kannst um abzufragen ob das Objekt noch da steht oder nicht. Ob das in deinem Fall notwendig ist kann ich nicht wissen aber die Erfahrung zeigt das es nützlich sein kann so zu programmieren. Ich hoffe das war (etwas) hilfreich.
Welche AGS Version benutzt du? Meine Tipps beziehen sich auf Version 3.2.1
« Letzte Änderung: 21. Januar 2017, 22:46:43 von Kiwa »
Das Leben ist ein Adventure. Aber ohne Komplettlösung.

Für fast alles gibt es eine logische Erklärung. Für alles andere ein Placebo.

Kinkilla

  • volljähriger Tentakel
  • *****
  • Beiträge: 845
  • Geschlecht: Männlich
  • Nicht zu verwechseln mit einem Chinchilla!
    • Profil anzeigen
Re: Ein paar AGS Fragen A.k.a Kinkilla braucht Hilfe Thread
« Antwort #2 am: 22. Januar 2017, 12:19:56 »
Auf jeden Fall geholfen, Danke :)
Benutze auch AGS 3.2.1 und hab das mit den WalkableArea IDs probiert und es hatte funktioniert

Kinkilla

  • volljähriger Tentakel
  • *****
  • Beiträge: 845
  • Geschlecht: Männlich
  • Nicht zu verwechseln mit einem Chinchilla!
    • Profil anzeigen
Re: Ein paar AGS Fragen A.k.a Kinkilla braucht Hilfe Thread
« Antwort #3 am: 27. Januar 2017, 19:08:31 »
Also soweit hätte ich es geschafft mehrere IDs zu zeichnen, allerdings weiß ich nicht wie der ScriptBefehl für Aktivieren bzw Deaktivieren einzelner IDs lautet  :cl :-\

Cmdr

  • volljähriger Tentakel
  • *****
  • Beiträge: 643
    • Profil anzeigen
Re: Ein paar AGS Fragen A.k.a Kinkilla braucht Hilfe Thread
« Antwort #4 am: 27. Januar 2017, 21:33:14 »
Removewalkablearea (id); zum entfernen
Und
Restorewalkablearea (id); zum wiederherstellen
 ;)

Kinkilla

  • volljähriger Tentakel
  • *****
  • Beiträge: 845
  • Geschlecht: Männlich
  • Nicht zu verwechseln mit einem Chinchilla!
    • Profil anzeigen
Re: Ein paar AGS Fragen A.k.a Kinkilla braucht Hilfe Thread
« Antwort #5 am: 28. Januar 2017, 13:41:42 »
So geht das, Danke  :)

Kiwa

  • volljähriger Tentakel
  • *****
  • Beiträge: 762
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Ein paar AGS Fragen A.k.a Kinkilla braucht Hilfe Thread
« Antwort #6 am: 29. Januar 2017, 18:21:29 »
Removewalkablearea (id); zum entfernen
Und
Restorewalkablearea (id); zum wiederherstellen
 ;)

Sorry Kinkilla, die Befehle hatte ich in meinem Post vergessen zu erwähnen. Und wenn du diese Befehle mit einer boolschen Variablen verbindest kannst du es so machen wie in meinem ersten Post beschrieben, so z.B. wenn ein Bereich NICHT begehbar sein soll:

if (variable == true){
   Removewalkablearea (id);
}

Für "variable" musst du den Variablennamen angeben von der Variablen die du zuvor erstellt hast (in der Liste der Globalen Variablen).
Oder auch so:

if (variable == true){
   Removewalkablearea (id);
}else{
   Restorewalkablearea (id);
}

Bei letzterem Code kannst du immer sicher sein das (sofern die Variable den richtigen Zustand hat) der passende Bereich begehbar ist, oder eben gesperrt ist.
« Letzte Änderung: 29. Januar 2017, 18:25:42 von Kiwa »
Das Leben ist ein Adventure. Aber ohne Komplettlösung.

Für fast alles gibt es eine logische Erklärung. Für alles andere ein Placebo.

Cmdr

  • volljähriger Tentakel
  • *****
  • Beiträge: 643
    • Profil anzeigen
Re: Ein paar AGS Fragen A.k.a Kinkilla braucht Hilfe Thread
« Antwort #7 am: 29. Januar 2017, 19:08:40 »
@Kiwa: Wenn ich ihn richtig verstanden habe, möchte er nur eine zweite WalkableArea an der Stelle erscheinen lassen, wo man vorher ein Objekt mitgenommen hat. Wofür braucht er dann eine globale Variable?

@Kinkilla: Globale Variablen solltest du nur dann erstellen, wenn du wirklich eine brauchst, also z.B. den Wert in mehreren Räumen abfragen musst. Wenn du eine lokale Variable brauchst, also nur in einem Raum, reicht es, diese direkt im Raumscript zu deklarieren. In deinem Fall brauchst du aber auch das nicht, da du mit object.Visible den Zustand des Objektes direkt abfragen kannst.
Also so:

if (object.Visible){
   Removewalkablearea (id);
}
else{
   Restorewalkablearea (id);
}
« Letzte Änderung: 29. Januar 2017, 19:10:27 von Cmdr »

Kinkilla

  • volljähriger Tentakel
  • *****
  • Beiträge: 845
  • Geschlecht: Männlich
  • Nicht zu verwechseln mit einem Chinchilla!
    • Profil anzeigen
Re: Ein paar AGS Fragen A.k.a Kinkilla braucht Hilfe Thread
« Antwort #8 am: 29. Januar 2017, 19:31:26 »
@Kiwa: Wenn ich ihn richtig verstanden habe, möchte er nur eine zweite WalkableArea an der Stelle erscheinen lassen, wo man vorher ein Objekt mitgenommen hat. Wofür braucht er dann eine globale Variable?
So war auch der Fall
Trotzdem gut zu wissen 8)

Kinkilla

  • volljähriger Tentakel
  • *****
  • Beiträge: 845
  • Geschlecht: Männlich
  • Nicht zu verwechseln mit einem Chinchilla!
    • Profil anzeigen
Re: Ein paar AGS Fragen A.k.a Kinkilla braucht Hilfe Thread
« Antwort #9 am: 04. Februar 2017, 15:36:08 »
Ich hätt da mal eine Frage
Ist es möglich die Sprache des Spiels herrauszufinden
Also ob gerade Englisch oder Deutsch eingestellt ist

Cone Arex

  • Mod
  • alter Tentakel
  • **
  • Beiträge: 2186
  • Geschlecht: Männlich
  • Skandal-Entwickler
    • Profil anzeigen
    • Conequest
Re: Ein paar AGS Fragen A.k.a Kinkilla braucht Hilfe Thread
« Antwort #10 am: 04. Februar 2017, 21:16:40 »
Ja. Das Game-Object besitzt dafür die Methoden IsTranslationAvailable() und GetTranslationFilename().

IsTranslationAvailable() gibt 0 zurück, wenn keine Übersetzung benutzt wird und 1 wenn eine benutzt wird.
GetTranslationFilename() gibt den Dateinamen der aktuell verwendeten .tra-Datei als String zurück (ohne die Endung ".tra"). Wenn keine Übersetzung benutzt wird (also das Spiel in seiner Originalsprache läuft) wird ein leerer String zurückgegeben.

Beispiele dazu finden sich in der Hilfedatei.
« Letzte Änderung: 04. Februar 2017, 21:17:51 von Cone Arex »
Ich bin der Todfeind von allem was gut und anständig ist!

Meistgehasster User im Forum




Folge mir auf Twitter

Kinkilla

  • volljähriger Tentakel
  • *****
  • Beiträge: 845
  • Geschlecht: Männlich
  • Nicht zu verwechseln mit einem Chinchilla!
    • Profil anzeigen
Re: Ein paar AGS Fragen A.k.a Kinkilla braucht Hilfe Thread
« Antwort #11 am: 05. Februar 2017, 12:27:57 »
Danke 8)

Kinkilla

  • volljähriger Tentakel
  • *****
  • Beiträge: 845
  • Geschlecht: Männlich
  • Nicht zu verwechseln mit einem Chinchilla!
    • Profil anzeigen
Re: Ein paar AGS Fragen A.k.a Kinkilla braucht Hilfe Thread
« Antwort #12 am: 24. Juni 2017, 17:30:32 »
Es ist so weit, ich brauche Hilfe.
---------------
|  ID1         |
|                 |
|------         |
| ID2 |        |
---------------
In der Abbildung sieht man ein hässliches Rechteck wo ein Teil unten links fehlt.
Die IDs stellen die jeweiligen Hotspots dar, und die |- die Grenzen des Hotspots dar.
Also man kann ID2 aufnehmen und es auch dann gleich wieder zurück platzieren, allerdings ist dann im ID1 ein Loch (ID2 gehört grafisch zu ID1)
Kann man ID1 die Hotspotfläche von ID2 geben und später wieder zu ID2 hinzufügen?
« Letzte Änderung: 24. Juni 2017, 17:30:52 von Kinkilla »

Cone Arex

  • Mod
  • alter Tentakel
  • **
  • Beiträge: 2186
  • Geschlecht: Männlich
  • Skandal-Entwickler
    • Profil anzeigen
    • Conequest
Re: Ein paar AGS Fragen A.k.a Kinkilla braucht Hilfe Thread
« Antwort #13 am: 24. Juni 2017, 17:57:33 »
Realisier ID2 als Objekt.
Ich bin der Todfeind von allem was gut und anständig ist!

Meistgehasster User im Forum




Folge mir auf Twitter

Kinkilla

  • volljähriger Tentakel
  • *****
  • Beiträge: 845
  • Geschlecht: Männlich
  • Nicht zu verwechseln mit einem Chinchilla!
    • Profil anzeigen
Re: Ein paar AGS Fragen A.k.a Kinkilla braucht Hilfe Thread
« Antwort #14 am: 25. Juni 2017, 14:24:12 »
Hmmm manchmal ist die Antwort einfacher als man denkt.