Backgroundgespräch realisieren

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
Benutzeravatar
Fightmeyer
Riesiger Roboteraffe
Riesiger Roboteraffe
Beiträge: 7308
Registriert: 16.12.2004, 22:51
Wohnort: Potsdam
Kontaktdaten:

Backgroundgespräch realisieren

Beitrag von Fightmeyer »

Hallo Leute,

ich habe in einem Raum zwei Leute, die sich unterhalten. Das sind aber völlig unwichtige Personen deren Gespräch quasi im Hintergrund laufen soll.

Mit saybackground kann man das ja recht schön lösen. Leider hab ich momentan keine Idee, wie ich da hintereinander mehrere Sätze ablaufen lassen kann. Das Spiel wird ja nicht geblockt bei einem Satz (soll ja auch nicht).

Es soll also so ablaufen.

X: Text1
Y: Text2
X: Text3
usw...


Das I-Tüpfelchen wäre dann, wenn ich ca. 5-10 verschiedene Gespräche hätte, die dann im Invervall von ca. 30 Sekunden per Zufall abgespielt werden würden.

Hat da jemand ne Idee?
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Use gopher repellent on funny little man
Benutzeravatar
Fightmeyer
Riesiger Roboteraffe
Riesiger Roboteraffe
Beiträge: 7308
Registriert: 16.12.2004, 22:51
Wohnort: Potsdam
Kontaktdaten:

Beitrag von Fightmeyer »

Danke für den Link. Hatte zwar schon nach Gespräch, Dialog, Background, etc.... gesucht aber hatte leider nichts gefunden.
Ich werds heute Nachmittag mal probieren und eventuell nochmal nachfragen... :wink:
Benutzeravatar
Fightmeyer
Riesiger Roboteraffe
Riesiger Roboteraffe
Beiträge: 7308
Registriert: 16.12.2004, 22:51
Wohnort: Potsdam
Kontaktdaten:

Beitrag von Fightmeyer »

Ich komm mir gerade tierisch dämlich vor. Ich krieg einfach ner simplen Variable keinen String zugewiesen.

string zockertext1[5],zockertext2[5];
...
...
zockertext1[1]="Alter, Du musst decken!";
zockertext1[2]="Jetzt kommt die Sau von links!";
zockertext1[3]="Du rennst mir voll ins Schussfeld!";
zockertext1[4]="Das darf doch nicht wahr sein...!";
zockertext1[5]="Ey Du kannst nichts! Absolut NICHTS!";


"Cannot assign to string!"

Warum nicht? Wahrshcienlich wieder irgendeinsystaxproblem...
Wie muß das richtig aussehen.
Benutzeravatar
mOnkeY~
Süßwasserpirat
Süßwasserpirat
Beiträge: 389
Registriert: 12.04.2005, 16:53
Wohnort: Monkey Island

Beitrag von mOnkeY~ »

Sry falls jetzt ein unqualifizierter Comment von mir kommt, da ich auch net weiß womit du das da machst und wie da es gemacht werden muss.
Da ich inner Berufsschule C-Programmieren lerne, kenne ich es aber nur so das es so aussehen müsste :

zockertext1[0]="Alter, Du musst decken!";
zockertext1[1]="Jetzt kommt die Sau von links!";
zockertext1[2]="Du rennst mir voll ins Schussfeld!";
zockertext1[3]="Das darf doch nicht wahr sein...!";
zockertext1[4]="Ey Du kannst nichts! Absolut NICHTS!";

Ich befürchte das es total falsch und unsinnig ist, aber naja, versuch isset wert ;)
::division north
Smiley
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 163
Registriert: 28.04.2005, 16:26
Wohnort: Mönchengladbach

Beitrag von Smiley »

1. "String" statt "string"

2. zockertext1[0] bis [4] statt zockertext1[1] bis [5]
Benutzeravatar
Fightmeyer
Riesiger Roboteraffe
Riesiger Roboteraffe
Beiträge: 7308
Registriert: 16.12.2004, 22:51
Wohnort: Potsdam
Kontaktdaten:

Beitrag von Fightmeyer »

Bringt leider gar nichts.
Das gibts doch gar nicht. Das ist doch absoluter Popelkram...und daran verzweifel ich nun... :lol:

EDIT: Ach ja. Ich benutze AGS 2.7
Benutzeravatar
Rocco
Adventure-Treff
Adventure-Treff
Beiträge: 1019
Registriert: 25.11.2003, 16:20
Wohnort: Ronville
Kontaktdaten:

Beitrag von Rocco »

naja das ist natürlich eine entscheidende info, weil ab version hat 2.71 hat sich das string-management in ags grundlegend verändert und verbessert.
ab 2.71 hätte dein konstrukt (fast) funktioniert. :wink:

schau dir das mal an -> http://americangirlscouts.org/agswiki/U ... le_Strings

und hier nochmal eine kurze übersicht aus dem ags-forum von monkey_05_06

links alte (2.7) - rechts neue (ab 2.71) schreibweise

Code: Alles auswählen

string str;                             -->   String str;
StrCopy(str, "This is some text!");     -->   str = "This is some text!";
StrCat(str, " And this is some more."); -->   str = str.Append(" And this is some more.");
string otherStr;
StrFormat(otherStr, "%d", some_int);    -->   String otherStr = String.Format("%d", some_int);
StrCopy(otherStr, str);                 -->   otherStr = str;
if (StrComp(str, otherStr) == 0) {      -->   if (str.CompareTo(otherStr) == 0) {
                                        --> // (also:) if (str == otherStr) {
  Display(str);                         -->   Display(str);
  }
[/quote]
Benutzeravatar
Fightmeyer
Riesiger Roboteraffe
Riesiger Roboteraffe
Beiträge: 7308
Registriert: 16.12.2004, 22:51
Wohnort: Potsdam
Kontaktdaten:

Beitrag von Fightmeyer »

Schöner Mist.
Also wäre es wohl das sinnvollste auf sagen wir mal Version 2.72 upzudaten und zu hoffen, daß der Großteil des Codes noch funktioniert...?!
Benutzeravatar
Rocco
Adventure-Treff
Adventure-Treff
Beiträge: 1019
Registriert: 25.11.2003, 16:20
Wohnort: Ronville
Kontaktdaten:

Beitrag von Rocco »

kommt drauf an, wenn du noch am anfang deines games bist, wird sich die umstellung wohl auszahlen, meiner meinung nach.
aber wenn du schon recht weit bist und ansonsten nicht viel spektakuläres vorhast, kannst du auch bei der alten version bleiben.
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Falls Du bei 2.7 bleiben willst:

Code: Alles auswählen

  StrCopy(zockertext1[0], "Alter, Du musst decken!");
Use gopher repellent on funny little man
Benutzeravatar
Fightmeyer
Riesiger Roboteraffe
Riesiger Roboteraffe
Beiträge: 7308
Registriert: 16.12.2004, 22:51
Wohnort: Potsdam
Kontaktdaten:

Beitrag von Fightmeyer »

Da ich die alte Art und Weise der Stringzuweisung völlig daneben finde, habe ich mal ebend geupdatet.
Hab bisher noch relativ wenig Scripte drin. Und es läuft klaglos. Einzig einen Dialogaufruf mußte ich anpassen. Und jetzt funzt das auch mit der Stringzuweisung.
Danke für den Hinweis!
Benutzeravatar
Fightmeyer
Riesiger Roboteraffe
Riesiger Roboteraffe
Beiträge: 7308
Registriert: 16.12.2004, 22:51
Wohnort: Potsdam
Kontaktdaten:

Beitrag von Fightmeyer »

Für alle, die es interessiert...
Ich hab das mit den zufälligen Texten jetzt so gelöst...

Code: Alles auswählen

String zockertext1[7],zockertext2[7];
int satz,zockgespraech,zocksprecher;

function zocker1talk(){
 cZock1.SayBackground(zockertext1[Random(6)]);
}
function zocker2talk(){
 cZock2.SayBackground(zockertext2[Random(6)]);
}
und in der repeadly execute

Code: Alles auswählen

if (zockgespraech==0) {
		zockgespraech=1;
		SetTimer(1, 200);
		if (zocksprecher==0) {zocksprecher=1;}
		else {zocksprecher=0;}
}

if (IsTimerExpired(1)==1) {
		if (zocksprecher==1) {zocker1talk();}
		if (zocksprecher==0) {zocker2talk();}
		zockgespraech=0;
}
Danke für die Hilfe...
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Kleine Anmerkung:
Ein einzelner Befehl muss nicht in {}:

Code: Alles auswählen

    if (zocksprecher==0) zocksprecher=1;
    else zocksprecher=0;
Stattdessen ginge hier auch:

Code: Alles auswählen

    zocksprecher=1-zocksprecher;
Use gopher repellent on funny little man
Benutzeravatar
Fightmeyer
Riesiger Roboteraffe
Riesiger Roboteraffe
Beiträge: 7308
Registriert: 16.12.2004, 22:51
Wohnort: Potsdam
Kontaktdaten:

Beitrag von Fightmeyer »

Du alter Minimalist... :wink:

Ich laß das mal lieber so, wie es ist, damit ich das auch noch in zwei Monaten verstehe, wenn ich da nochmal nen Blick drauf werfe... :wink:
Antworten