Spieler soll den Namen der Spielfigur selbst bestimmen?

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
Benutzeravatar
Mister L
Rätselmeister
Rätselmeister
Beiträge: 1913
Registriert: 21.03.2005, 01:55
Kontaktdaten:

Spieler soll den Namen der Spielfigur selbst bestimmen?

Beitrag von Mister L »

Gab es das schon mal, dass der Spieler durch Tastatureingabe den Namen seiner Figur selbst festlegt?
Weiß jemand ob bzw. wie man das in AGS umsetzen kann? :-k
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"
Smiley
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 163
Registriert: 28.04.2005, 16:26
Wohnort: Mönchengladbach

Beitrag von Smiley »

Was AGS angeht, fällt mir da spontan nur "Poseidon 12" von Yahtzee ein...

Code: Alles auswählen

String Character.Name

Gets/sets the name of the character, as set in the AGS Editor. This is the full name, not the script name.
Per Text- oder Inputbox den Namen abfragen, und dann "player.name" auf den Wert setzen.
Benutzeravatar
DieFüchsin
Adventure-Gott
Adventure-Gott
Beiträge: 4406
Registriert: 12.03.2004, 16:55

Beitrag von DieFüchsin »

Gute Idee! Den Namen selbst zu vergeben kenn ich bisher nur von Rollenspielen, das aufs Adventure zu übertragen ist mir noch nicht in den Sinn gekommen ^^
Danke, Adventuretreff! <3
Benutzeravatar
Mister L
Rätselmeister
Rätselmeister
Beiträge: 1913
Registriert: 21.03.2005, 01:55
Kontaktdaten:

Beitrag von Mister L »

Ja, sowas könnte man auch an andere Stelle in einem Adventure benutzen. Ich erinnere mich da gerade an den "Kondom-Einkauf" oder das "Telefonat auf der Straße" im alten Leisure Suit Larry 1. :D

Nur selber kann ich so eine Funktion nicht austüfteln. :(
Würde mich sehr freuen, wenn sich mal jemad damit befasst, der sich mit sowas auskennt. :wink:
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

Beitrag von KhrisMUC »

Da brauchst Du keine großartige Funktion, ein einfaches

Code: Alles auswählen

player.Name = Game.InputBox("Wie heißt Du?");
reicht völlig.
Da wird dann halt die graue Standardbox angezeigt, ist aber mit einem GUI mit Textbox auch schnell erledigt:

Code: Alles auswählen

function on_key_press(int keycode) {
  ...

  if (keycode==13) {  // return
    if (gNameprompt.Visible && lblName.Text!="") {
      player.Name=lblName.Text;
      gNameprompt.Visible=false;
    }
  }
}
Im Spiel dann ein simples:

Code: Alles auswählen

player.Say("Hallo, ich bin %s!", player.Name);
Use gopher repellent on funny little man
Benutzeravatar
Mister L
Rätselmeister
Rätselmeister
Beiträge: 1913
Registriert: 21.03.2005, 01:55
Kontaktdaten:

Beitrag von Mister L »

Ahja, besten Dank schonmal. :D
Muss ich unbedingt mal austesten! 8)

EDIT:

Das mit der grauen Textbox klappt schon mal.
Bei dem GUI mit Textbox hab ich jetzt das Problem, dass ich die Eingabe in der Textbox nicht mit Return beenden kann.

Was mache ich da jetzt falsch? :?:
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"
Fatal M
Frischling
Frischling
Beiträge: 9
Registriert: 05.02.2007, 13:55
Wohnort: Berlin
Kontaktdaten:

Beitrag von Fatal M »

Mister L hat geschrieben:Bei dem GUI mit Textbox hab ich jetzt das Problem, dass ich die Eingabe in der Textbox nicht mit Return beenden kann.
Ging bei mir auch nicht. Dann habe ich das in interface_click() getan:

Code: Alles auswählen

if (interface == NAMEPROMPT) {
	if (gNameprompt.Visible && lblName.Text!="") {
		player.Name=lblName.Text;
		gNameprompt.Visible=false;
		player.Say("Du heisst: %s", player.Name);
	}
	else player.Say("Du hast nix eingegeben!");
}
Funktioniert! 8)

Aus der AGS-Anleitung:
If a text box is on a currently displayed GUI, all standard keypresses (ie. letter keys, return and backspace) are diverted to the textbox instead of being passed to the on_key_press function. When the player presses Return in the text box, the interface_click function is called with the text box's GUI and object number. You can then use the TextBox.Text property to retrieve what they typed in.
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Ich war jetzt ziemlich baff, dass das nicht funktioniert, weil ich das - soweit ich mich erinnern konnte - bereits so verwendet habe (siehe auch hier). Zumindest war ich mir sicher, auf keinen Fall die interface_click benutzt zu haben.

Hab dann den Grund gefunden:

Dieser Teil der Anleitung stammt noch aus interface_click-Zeiten, ist somit also veraltet.

Aktuell wählt man im GUI-Editor die Textbox aus und doppelklickt auf "Activate". Man bekommt dann eine Funktion "[Name der Textbox]_Activate" im global script, die nach dem Enter drücken ausgeführt wird, genau wie die _Click-Funktion bei Buttons.
Dort muss dann rein:

Code: Alles auswählen

  gNameprompt.Visible=false;
  player.Name=lblName.Text;
Use gopher repellent on funny little man
Benutzeravatar
Mister L
Rätselmeister
Rätselmeister
Beiträge: 1913
Registriert: 21.03.2005, 01:55
Kontaktdaten:

Beitrag von Mister L »

Klasse, jetzt klappt's auch bei mir. :D
Ging ja viel einfacher als ich dachte. :wink:
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
Sinitrena
Tastatursteuerer
Tastatursteuerer
Beiträge: 678
Registriert: 08.05.2004, 01:01
Wohnort: Frankfurt
Kontaktdaten:

Beitrag von Sinitrena »

Wie ja oben schon steht ist das eigentlich ganz einfach, aber empfehlenswert? Es kann nämlich zu reichlich Verwirrung bei den Spielern führen (http://new.bigbluecup.com/yabb/index.php?topic=25743.0)
jk :lol:
http://www.sinitrena.de.vu Meine Spiele: "A very special dog", "A magic stone", "James Bond - Who wants to live again?", "Lonely Night", "Death of an Angel", "The Witch, the Wizard and the Blue Cup", "Emerald Eyes"
Benutzeravatar
Mister L
Rätselmeister
Rätselmeister
Beiträge: 1913
Registriert: 21.03.2005, 01:55
Kontaktdaten:

Beitrag von Mister L »

Autsch. :D
Ja, eigene Tastatureingaben sind natürlich eine große Verantwortung... :lol:
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"
Antworten