Hauptmenü

Neuigkeiten:

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

Ein paar AGS Fragen A.k.a Kinkilla braucht Hilfe Thread

Begonnen von Kinkilla, 21. Januar 2017, 17:45:50

Vorheriges Thema - Nächstes Thema

Kinkilla

Wieder ist mal Hirn benötigt.
Kann man einen Charakter (X) deaktivieren?
Weil der Spieler wenn der Charakter X im Raum (Y) steht dann wird bei den AnyClicks von den Hotspots und Objekten ein anderen Satz gesagen werden, als wenn Charakter X nicht anwesend im Raum ist.
Der Charakter X würde auch in anderen Räumen vorkommen, dort macht er das allerdings nicht, nur wenn er im dem Raum (Y) steht und X wird nur einmal Y betreten.
Also wenn man ihn deaktivieren/per script löschen könnte, würde X ein eigener Charakter werden. Und wenn X nicht mehr im Raum ist, wird der Rest wenn X irgendwo vorkommt ein eigener Charakter sein (z.b X2)

Puh stressig etwas zu schreiben ohne Spoiler  ::)

Cone Arex

#16
Mal sehen, ob ich das richtig verstanden habe:
Der Spieler ist in Raum Y und Charakter X kann auch dort sein, oder auch nicht. Wenn beide in Raum Y sind, dann soll Nachricht A ausgegeben werden, wenn X nicht im Raum ist, dann soll B ausgegeben werden. Später gibt es den Raum Z, in dem ebenfalls der Spieler und X sein können aber es soll immer die gleiche Nachricht ausgegeben werden, egal ob X dort ist oder nicht? So ganz schlau werde ich daraus nicht.

Richtig löschen kannst du Charaktere nicht. Schieb in den Charakter einfach mit ChangeRoom() in Raum 0 und gut ist. Im Script überprüfst du dann einfach, ob der Charakter im entsprechenden Raum ist:
if (Charakter.Room == RaumNr)
{
player.Say("A");
}
else player.Say("B");


ZitatUnd wenn X nicht mehr im Raum ist, wird der Rest wenn X irgendwo vorkommt ein eigener Charakter sein (z.b X2)
Lass den Scheiß. Damit machst du das Script nur unübersichtlich. Ich spreche da aus Erfahrung, beim Hamstermann habe ich damals genauso solchen Käse gemacht und du kannst sehen, was dabei rausgekommen ist.


Folge mir auf X und itch.io

Kinkilla

Die Sache ist X kommentiert genau so wie in Episode 50 Britney. Und wenn X aus dem Raum geht, sagt X beim Kommentar immer noch den Text, ist halt in der Mitte ausgerichtet
Die Idee mit dem Raum überprüfen hatte ich auch, allerdings sind das recht viele Kommentare und wollte nur wissen ob es eine andere Möglichkeit gäbe.

Cone Arex

#18
Schreib dir eine Funktion im Global Script dafür:
function SayIfCurrentRoom(this Character*, String msg)
{
if (this.Room == player.Room)
{
this.Say(msg);
}
}

Die Funktion wird über Character.SayIfCurrentRoom() aufgerufen und gibt den Text nur dann aus, wenn der Charakter im gleichen Raum wie der Spieler ist. Du kannst statt player.Room auch die Raumnummer hardcoden, aber flexibel ist das nicht. Und anstatt sie die Funktion von Hand ins Script zu schreiben lässt du sie mittels Find&Replace in Script kopieren (nach "Character.Say(" suchen und  durch "Character.SayIfCurrentRoom(" ersetzen lassen, so dass die Parameter nicht überschrieben werden).

// Post Scriptum
Natürlich noch die Funktion im Global Header importieren lassen:
import function SayIfCurrentRoom(this Character*, String msg);


Folge mir auf X und itch.io

Cmdr

Also x soll aus dem Raum gehen und dann aus dem Off was sagen? Dann mach x doch unsichtbar anstatt den Raum zu wechseln.

Wenn du nicht willst, dass x was sagt, mach vorher die Prüfung, ob er im Raum ist, so wie Cone es beschrieben hat.

Kinkilla


Cone Arex

Ich verweise auf meinen obigen Post, falls er übersehen wurde.


Folge mir auf X und itch.io

Kinkilla

Upps übersehen  ::)
Super danke dannach habe ich gesucht.

Kinkilla

Verdammmt, ein großer Fehler ist mir passiert.
Ich habe in den General Settings die Auflösung von 320 x 200 auf 320 x 240 geändert. Ist halt passiert jetzt, hab auch das GUI wieder ansehlich gemacht, allerding lassen sich die Knöpfe und Inventargegenstände nicht mehr anklicken.
Hat einer eine Idee was ich tuen könnte  ???

Bissiger Witzbold

Hast du kein halbwegs aktuelles Backup, das noch in der richtigen Auflösung war?
Eigentlich sollte es auch reichen die Auflösung wieder auf 320x200 zurückzustellen, aber wenn du jetzt schon was am GUI verschoben hast wird das wohl auch nicht problemlos gehen.

Kinkilla

#25
Von den Positionen sind die mittlerweile Identisch.
Wenn man mit der Maus drüberfährt ändert sich die Farbe, aber beim anklicken passiert nichts...Wenn ich aufs Event gehe und im GS einen Breakpoint setzte gibt es auch keine Reaktion  :'(
Backup ja, aber schon älter, also vor der aktuellen Beta

Kinkilla

#26
Ich bezweifle mittlerweile dass es von der Resolution stammt
EDIT: Habe bei einer Sanbox variante meines Projekts das maingui gelöscht und durch ein funktionierendes ersetzt, geht immer noch nicht.
Mit QWE ASD YXC Kann man aber noch die Verben aufrufen

Kaktus

Um mal das Naheliegende auszuschließen:
Hast du entweder bei den GUI properties Clickable auf false gesetzt hast oder hast du gui[1].Clickable = false; irgendwo im Script stehen?

Cone Arex

#28
Mit AGS 3.4 wäre das nicht passiert! (Ja, ich habe es gerade ausprobiert. Bis auf eine falsche Positionierung der Pfeile und Spielstand-Liste wird alles wieder hergestellt, wenn die Auflösung zurückgestellt wird.) Ich bezweifel übrigens, dass wir dir weiterhelfen können, ohne das Spiel selbst zu sehen. Im Notfall: Entferne einfach alles spielspezifische (Items, Räume, etc.) und stelle eine Version mit nur einem Testraum hoch, dann können wir genauer nachsehen, was denn das Problem ist.

Um solchen Problemen in der Zukunft aus dem Weg zu gehen, würde ich dir nochmals die Verwendung von git ans Herz legen. Dann kannst du dir auch solche "Sandbox-Versionen" sparen.


Folge mir auf X und itch.io

Kinkilla

ZitatUm mal das Naheliegende auszuschließen:
Hast du entweder bei den GUI properties Clickable auf false gesetzt hast oder hast du gui[1].Clickable = false; irgendwo im Script stehen?
Habe nach irgendetwas ähnlichen geschaut... ohne Ergebnis.
ZitatMit AGS 3.4 wäre das nicht passiert! (Ja, ich habe es gerade ausprobiert. Bis auf eine falsche Positionierung der Pfeile und Spielstand-Liste wird alles wieder hergestellt, wenn die Auflösung zurückgestellt wird.) Ich bezweifel übrigens, dass wir dir weiterhelfen können, ohne das Spiel selbst zu sehen. Im Notfall: Entferne einfach alles spielspezifische (Items, Räume, etc.) und stelle eine Version mit nur einem Testraum hoch, dann können wir genauer nachsehen, was denn das Problem ist.
Hätte jetzt eine minimal-Version gemacht: https://www.dropbox.com/s/f8iife8sp25ynqo/guitest.zip?dl=0
Wenn man nichts finden würde, ist zwar ärgerlich, muss ich dann halt vom letzten Backup alles Übertragen.
Zitat
Um solchen Problemen in der Zukunft aus dem Weg zu gehen, würde ich dir nochmals die Verwendung von git ans Herz legen. Dann kannst du dir auch solche "Sandbox-Versionen" sparen.
Tja da hast du wohl recht  ::) Werde ich auf jeden Fall mal machen.... (hat mir der liebe Herr Schicksal eine Lektion erteilt  :P)