Mehrere Spielercharaktere in AGS 3.0

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
Benutzeravatar
Außenseiter
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 58
Registriert: 14.10.2007, 20:04

Mehrere Spielercharaktere in AGS 3.0

Beitrag von Außenseiter »

Heisann!

Vorwort:
Ich habe angenommen dass diese Frage schon ein paar Mal gestellt wurde und habe deshalb mit der Suchfunktion >>diesen<< (*click*) Thread ausfindig gemacht. Da er aber nicht mehr wirklich aktuell war und sich auch ganz neue Probleme ergeben haben in der Zwischenzeit, dachte ich mir ich mache ein neues Thema auf. Falls es mittlerweile schon einen aktuelleren geben sollte der sich mit der Thematik bereits auseinandergesetzt hat möchte ich mich entschuldigen, da ich einfach den erstbesten gewählt habe und bitte um Verständnis.
Also es geht wie ihr euch vielleicht schon gedacht habt, darum dem Spieler zu ermöglichen mehrere Charaktere zu steuern - so wie in Maniac Mansion oder Day of the Tentacle ;)

Ich würde ebenfalls gerne das Wechseln zwischen 2-3 Personen in meinem Projekt einbauen, allerdings mit dem neuen AGS 3.0. Nur fehlt mir leider der MMM-Pack, aus dem ich das "übernehmen" könnte Bild

Gehe ich recht in der Annahme dass es sich bei dem Pack um diese Datei handelt?
Das AGS-Starterpack für MMM
zu finden hier

Das Problem an der Sache ist, dass der Link von Adventuretreff.de zum Starterpack tot ist.

Und die nächste Frage die sich stellt ist ob die alte Funktion mit dem modifizierten Code von AGS 3.0 überhaupt noch funktionsfähig ist bzw. funktionsfähig gemacht werden kann. Laut Handbuch sind die Änderungen ja scheinbar durchaus noch überschaubar.

Eine Schnellsuche durch die Charakterfunktionen in AGS und durch die Spielvariablen (game.irgendwas) hat auch kein weiteres Ergebnis zur Folge gehabt fürchte ich.
Sorry, dass ich dieses Thema wieder aufbringe. Das habt ihr hier wahrscheinlich jeden Monat einmal :?
Ich verzweifle derzeit an:
- Eigene GUI zum Laden und Speichern erschaffen

Grund zur Freude:
Hab die Dialogsprache verstanden und kann jetzt lauter lustige Extras einbauen
Benutzeravatar
Kaktus
Tastatursteuerer
Tastatursteuerer
Beiträge: 658
Registriert: 17.02.2006, 01:45
Wohnort: Wüstä
Kontaktdaten:

Re: Mehrere Spielercharaktere in AGS 3.0

Beitrag von Kaktus »

Das Starterpack, das du suchst, ist wohl das hier (ganz unten das mit Characterchange):
http://www.maniac-mansion-mania.com/ind ... &Itemid=76" onclick="window.open(this.href);return false;

aber das ist eigentlich nicht unbedingt nötig. Du brauchst nur die Funktion character[ID].SetAsPlayer(); in ein GUI oder wo auch immer einzubauen.
Benutzeravatar
Außenseiter
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 58
Registriert: 14.10.2007, 20:04

Re: Mehrere Spielercharaktere in AGS 3.0

Beitrag von Außenseiter »

:oops:
Ja genau. Das war der Befehl den ich gesucht habe. Ich dachte man müsse eine neue Funktion festlegen so wie es im anderen Thread den Anschein hatte. Aber so ist ja alles im Grunde genommen ganz simpel!
Danke :)
Ich verzweifle derzeit an:
- Eigene GUI zum Laden und Speichern erschaffen

Grund zur Freude:
Hab die Dialogsprache verstanden und kann jetzt lauter lustige Extras einbauen
Benutzeravatar
Außenseiter
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 58
Registriert: 14.10.2007, 20:04

Re: Mehrere Spielercharaktere in AGS 3.0

Beitrag von Außenseiter »

Neue Fragen:
Wenn ich mir mit Spielercharakter 2 Spielercharakter 1 anschaue ( also cEgo) bekomme ich immer logischerweise die selbe Nachricht angezeigt als wenn ich mit cEgo cEgo anschauen würde - was aber natürlich überhaupt keinen Sinn ergibt ("Damn I'm looking good" wenn ich wen anders anschaue?).

Muss ich für solche Fälle alles per Property festlegen und mit if-Schleifen doppelt schreiben oder gibt es auch eine einfachere Methode?

Ähnliches gilt für das Inventar, aber ich denke da muss ich einfach viel schreiben, denn ich hätte gerne dass das Inventar nicht getrennt ist. Sprich: Wenn A etwas aufhebt hat B das automatisch auch im Inventar und wenn B das dann benutzt und es weg ist hat A es dann auch nicht mehr. Das ist nicht unbedingt logisch, aber es erspart einem doch eine Menge Lauferei und ewiges Hin- und Hergeschiebe von Gegenständen. Oder?
Meine Methode dafür wäre jetzt einfach sone Gegenstände dann nicht nur mit player.Addinventory (oder so ähnlich) sondern dann auch mit spielheld2.Addinventory handzuhaben, aber gibts da auch eine einfachere Möglichkeit?
Ich verzweifle derzeit an:
- Eigene GUI zum Laden und Speichern erschaffen

Grund zur Freude:
Hab die Dialogsprache verstanden und kann jetzt lauter lustige Extras einbauen
Benutzeravatar
Mister L
Rätselmeister
Rätselmeister
Beiträge: 1913
Registriert: 21.03.2005, 01:55
Kontaktdaten:

Re: Mehrere Spielercharaktere in AGS 3.0

Beitrag von Mister L »

Ich weiß zwar nicht, ob das die eleganteste Lösung ist, aber ich hab das bei "Maniac Mansion Begins" so gemacht:

Code: Alles auswählen

if (UsedAction (A_OPEN)) {
    PlaySound (77);
    if ( (GetPlayerCharacter()) == EDNA) {
    Display ("Da steht, dass Feldermäuse für Menschen gefährlich sein können!");
    }
    if ( (GetPlayerCharacter()) == FRED) {
    Display ("'Fledermäuse können tödliche Krankheiten durch Bisse auf Menschen übertragen.'");
    }
    if ( (GetPlayerCharacter()) == ED) {
    Display ("'Fledermäuse ernähren sich hauptsächlich von Insekten.'");
    }
    }

else Unhandled ();  
My MMM-Episodes: #7 "Right said Fred", #32 "Secret of Maniac Mansion", # 33 "Carry on Smiley", H05 "Escape from Maniac Mansion", #45 "Maniac Monday", #54 "CSI:RONVILLE", #58 "The People's Court", #70 "Maniac Mansion Begins", #74 "The Curse of King RootenTooten", #93 "Murder a.t. Moonshine Mansion"
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Re: Mehrere Spielercharaktere in AGS 3.0

Beitrag von KhrisMUC »

Genau. Oder neuer Code:

Code: Alles auswählen

  // look at cEgo
  if (player == cEgo) Display("Damn, I'm looking good!");
  else if (player == cGuy) Display("There's a huge booger on his shirt.");
Falls es eine Menge unterschiedlicher Kommentare geben wird, könnte man folgende Methode in Betracht ziehen:
Die Custom Properties werden ja per String unterschieden, d.h. man kann ihnen als Name die Namen der Spieler geben und dann folgendes benutzen:

Code: Alles auswählen

//  on_mouse_click
  int lt = GetLocationType(mouse.x, mouse.y);
  if (mouse.Mode == eModeLookAt) {
    if (lt == eLocationCharacter) {
      Character*c = Character.GetAtScreenXY(mouse.x, mouse.y);
      player.Say(c.GetTextProperty(player.Name);
    }
  }
  else ProcessClick(...);
Jetzt muss man nur noch zwei Custom Properties vom Typ String mit den Namen der beiden spielbaren Charaktere hinzufügen, default sowas wie "Sieht aus wie jeder andere." und kann jetzt jedem Charakter verschiedene Sätze zuweisen, die die spielbaren über ihn sagen.
Natürlich kann man das erweitern und auch jedem Objekt und Hotspot pro Spieler eine andere Beschreibung zuweisen.

Und man kann noch eine bool-Variable reinnehmen, die angibt, dass stattdessen doch ProcessClick ausgeführt werden soll, wenn z.B. mehr passieren soll als nur das Sagen eines Satzes. Usw. usw.
Use gopher repellent on funny little man
Benutzeravatar
Außenseiter
Verpackungs-Wegwerfer
Verpackungs-Wegwerfer
Beiträge: 58
Registriert: 14.10.2007, 20:04

Re: Mehrere Spielercharaktere in AGS 3.0

Beitrag von Außenseiter »

Holla. Stellt sich raus, dass ich mir das so vorgestellt habe wie MisterL das angebracht hat, ich aber wieder komplizierter gedacht hab - wusste nicht dass man gar keine Properties verwenden muss sondern auch einfach das ganze über Get abfragen kann. Das ist dann natürlich praktisch.

Ich denke ich werd die Sache dann so machen weil ich das auch direkt alles nachvollziehen kann. Wird das Spiel durch ein Mehr an Code eigentlich langsamer oder wird die Spielgeschwindigkeit nur durch die Anzahl der sichtbaren Objekte beeinflusst (wies AGS immer wieder sagt)?
Ich verzweifle derzeit an:
- Eigene GUI zum Laden und Speichern erschaffen

Grund zur Freude:
Hab die Dialogsprache verstanden und kann jetzt lauter lustige Extras einbauen
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Re: Mehrere Spielercharaktere in AGS 3.0

Beitrag von KhrisMUC »

Liest Du langsamer, wenn das Buch dick ist? ;)
Use gopher repellent on funny little man
Benutzeravatar
Rocco
Adventure-Treff
Adventure-Treff
Beiträge: 1019
Registriert: 25.11.2003, 16:20
Wohnort: Ronville
Kontaktdaten:

Re: Mehrere Spielercharaktere in AGS 3.0

Beitrag von Rocco »

das ist relativ, wenn du in der repeatedly_execute funktion irgendwas in der art einbaust

Code: Alles auswählen

while(1)
{}
dann ja :wink:
aber normalerweise solltest du keine probleme deswegen bekommen.
Antworten