[BUG] Stringnamen nicht aus anderen Strings lesbar?
[BUG] Stringnamen nicht aus anderen Strings lesbar?
Bin mir grad nicht sicher, ob wir das schon hatten....
Das Problem ist, dass wenn ich einen String mithilfe eines anderen Strings deklarieren will, klappt das nicht.
Ich mache also: setstring(string1;super)
setstring([string1];klasse)
normalerweise sollte es jetzt zwei Strings geben:
"string1" mit dem Inhalt "super" und
"super" mit dem Inhalt "klasse".
Ist aber nicht so. Stattdessen habe ich zwei Strings:
"string1" mit dem Inhalt "super" und
"[string1]" mit dem Inhalt "klasse".
Das ist ja aber gerade nicht das was ich wollte.
Führt wieder zu extreme-Problemen und würde Skripte ins Unendliche groß machen, wenn ich das umschreiben müsste (natürlich überdramatisiere ich ein wenig, aber die Skripte würden sich wirklich aufblähen.)
Das Problem ist, dass wenn ich einen String mithilfe eines anderen Strings deklarieren will, klappt das nicht.
Ich mache also: setstring(string1;super)
setstring([string1];klasse)
normalerweise sollte es jetzt zwei Strings geben:
"string1" mit dem Inhalt "super" und
"super" mit dem Inhalt "klasse".
Ist aber nicht so. Stattdessen habe ich zwei Strings:
"string1" mit dem Inhalt "super" und
"[string1]" mit dem Inhalt "klasse".
Das ist ja aber gerade nicht das was ich wollte.
Führt wieder zu extreme-Problemen und würde Skripte ins Unendliche groß machen, wenn ich das umschreiben müsste (natürlich überdramatisiere ich ein wenig, aber die Skripte würden sich wirklich aufblähen.)
@Wuji doch das geht bei zahlen -> if_num ([objx:Ball] ; 1)
@Schiman ich weiß nicht was du vorhast,
- die einfachste möglichkeit was einfach auf der hand liegt währe, gleich von anfang an setstring(super ; klasse) zu machen (ich glaub die lösung währe zu einfach^^)
- wenn es um positionen von ausgegebenen text gehen würde (z.b. welche zeile es ausgegeben wir) kannst du anstelle den string namen zuzuweisen einfach die x und y punkte zuweisen, dann nachher per ausschluss die noch nicht festen verteilen
- wenn es um sprechen geht wirds lang... ich würde zahlen vergeben anstelle den stringnamen und dann per funktion den string mit klasse zuweisen (braucht man immer nur noch die funktion zu starten)
tröste dich, mein kleines spielchen hat 5327 zeilen für nur ne kleine kugel, 17 balken und ein extraobjekt
@Schiman ich weiß nicht was du vorhast,
- die einfachste möglichkeit was einfach auf der hand liegt währe, gleich von anfang an setstring(super ; klasse) zu machen (ich glaub die lösung währe zu einfach^^)
- wenn es um positionen von ausgegebenen text gehen würde (z.b. welche zeile es ausgegeben wir) kannst du anstelle den string namen zuzuweisen einfach die x und y punkte zuweisen, dann nachher per ausschluss die noch nicht festen verteilen
- wenn es um sprechen geht wirds lang... ich würde zahlen vergeben anstelle den stringnamen und dann per funktion den string mit klasse zuweisen (braucht man immer nur noch die funktion zu starten)
tröste dich, mein kleines spielchen hat 5327 zeilen für nur ne kleine kugel, 17 balken und ein extraobjekt
Korrekt^^, nachdem ich den Wunsch ausgesprochen habe, hat Zimond das implementiert.YODA wrote:@Wuji doch das geht bei zahlen -> if_num ([objx:Ball] ; 1)
Genau dasselbe, was ich mit if_num([var];1) vorhatte. Einfach eine dynamische Variablenbenennung zur Laufzeit. Das ist bei komplexen Scripts extrem wichtig. Unter Umständen kannst du das umgehen, aber dann blähen sich die Skripte auf.YODA wrote:@Schiman ich weiß nicht was du vorhast
Hier noch ein ähnlicher Bug:
wenn ich nums oder strings mit savenum abspeichern will, oder mit loadnum laden will, dann geht das mit den Variablen auch nicht.
Also
Ich verstehe wirklich nicht, warum du das nicht sofort überall machst, Zimond. Irgendwann mal hast du irgendeine komische Erklärung dazu abgegeben, aber ich verstehs trotzdem nicht.
wenn ich nums oder strings mit savenum abspeichern will, oder mit loadnum laden will, dann geht das mit den Variablen auch nicht.
Also
Code: Select all
setstring(num;Supernum)
setnum([Supernum];1) <---- das geht noch bei nums, bei strings schon nicht mehr.
savenum([num]) <----- das geht nicht
loadnum([num]) <--- das geht auch nicht
benutze savestring ([num]), da strings und nummern die gleiche position haben und sich auch gegenseitig überschreiben können, kannst du das so ohne probleme machen.
du kannst auch z.b. setstring(num ; 12) machen und dann weiter unten als nummer verwenden setnum (num1 ; [num]*2) allerdings für so eine verwendung, muss der string eine richtige zahl sein (keine buchstaben, leerzeichen usw.)
du kannst auch z.b. setstring(num ; 12) machen und dann weiter unten als nummer verwenden setnum (num1 ; [num]*2) allerdings für so eine verwendung, muss der string eine richtige zahl sein (keine buchstaben, leerzeichen usw.)
ups hab noch ein befehl zwischen drin vergessen, dann geht das doch
Code: Select all
setnum (num ; 123)
setstring (num ; [num])
savestring (num)
aber ich glaub ich weiß was du jetzt meinst, dass ein variablen namen nicht mit savenum geht aber dass musst du auch gleich dazu schreiben, wenn man das so liest, denkt man savenum geht überhaupt nicht bei dir.Variablen können mit dem Speech oder Offspeech Befehl auch am Bildschirm angezeigt werden. Auch hier werden einfach eckige Klammern verwendet.
Hätte ich ja sonst schon längst gemacht (und an Stellen, wo es ging, habe ichs ja auch schon gemacht). Aber es gibt Stellen in meinem Spiel, da ist es wirklich (und ich weiß schon wovon ich spreche) vollkommen unmöglich, ohne eine dynamische Variablenbenennung. Ich muss mich wohl oder übel gedulden.Wuji wrote:aber wenn nich funzt dann musst du deine skripte aufblähen