Maniac Mansion Mania Forum
MMM-Werkzeugkiste => Technik => Thema gestartet von: Domi am 01. August 2010, 12:44:47
-
wie kann ich wenn ich ein bestimmtes wort in die txtbox schreib dann als beispiel diesen text ausgeben?: blablabla= hey!
-
Meinst du, dass "blablablabla" im string enthalten sein muss? Oder möchtest du, dass der string nur aus "blablablabla" besteht?
wie kann ich wenn ich ein bestimmtes wort in die txtbox schreib dann als beispiel diesen text ausgeben?: blablabla= hey!
PS: Gerade bei solchen Satzgefügen ist Interpunktion eine wirklich sinnvolle Sache. Wenn du mehr als ein Prädikat pro Satz hast, dann fehlen in der Regel wichtige Kommas.
-
ich mein als bsp(ich mach das in einem eigenen game also NICHT mmm nur zur info) wenn ich ein cheat eingeben will also beispiel: infinite life
dann sagt der player: player.say("99 herzen erhalten");
-
dann würd ich keine textbox machen, sondern das im Spielfluss ermöglichen.
Es gibt die Funktion on_key_press (guck mal im MMM-Gui Global Script). Außerdem findest du eine Ascii-Tabelle in der AGS-Hilfe. Da sind auch Ereignisse für Tastenkombinationen wie STRG+H. Das müsste als Cheat eigentlich ausreichen, oder? Sowas drückt auch keine aus Versehen.
Man könnte auch einen globalen String machen und in die Funktion ne Prozedur schreiben, die gedrückte Buchstabentasten an diesen String ranhaut. Dann müsste man immer beim Druck einer Taste, die den letzten Buchstaben eines Cheatcodes darstellt, gucken, ob z.B. der String, der sich aus den letzten X Zeichen ergibt, das Wort ist. Ist allerdings ein wenig Arbeit, aber das müsste mit den String-Funktionen von AGS machbar sein.
-
Eine Textbox reagiert auf Return, dann wird nämlich ihre OnActivate-Funktion aufgerufen.
D.h. Du nennst Deine Textbox z.B. tbCheat, dann clickst Du den Blitz an und dann den ...-Button.
Jetzt wird Folgendes zu Global.asc hinzugefügt:
function tbCheat_OnActivate(GUIControl *control)
{
}
Dort drinnen kannst Du jetzt tbCheat.Text überprüfen, z.B. so:
function tbCheat_OnActivate(GUIControl *control)
{
if (tbCheat.Text == "infinite life") {
cheat_infinite_life = true;
player.Say("99 Herzen erhalten.");
}
if (tbCheat.Text == "holy cow") {
...
...
}
...
tbCheat.Text = ""; // danach Textfeld leeren
}
Kruttans Methode ist natürlich eleganter.
-
Danke Leute! :D
geht alles so wie ichs wollte!