[BUG] Stringnamen nicht aus anderen Strings lesbar?

Das Board für Schwierigkeiten beim Adventure-Machen und zum Melden von Bugs
Post Reply
Schiman
PaC-DK God
Posts: 1177
Joined: 20 Dec 2006, 21:48
Contact:

[BUG] Stringnamen nicht aus anderen Strings lesbar?

Post: # 75138Post Schiman
11 Feb 2010, 21:34

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.)

Wuji
Adventure Enthusiast
Posts: 223
Joined: 07 Dec 2008, 17:25
Contact:

Post: # 75168Post Wuji
13 Feb 2010, 21:53

also ich hab noch nie gesehen das eckige klammern vor diesem Zeichen ; funktioniert haben
Ich schätze deine Skripte werden sich aufblähen

YODA
PaC-DK Newby
Posts: 36
Joined: 09 Feb 2010, 18:42

Post: # 75170Post YODA
13 Feb 2010, 23:49

@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 :facepalm2:

Schiman
PaC-DK God
Posts: 1177
Joined: 20 Dec 2006, 21:48
Contact:

Post: # 75186Post Schiman
14 Feb 2010, 22:49

YODA wrote:@Wuji doch das geht bei zahlen -> if_num ([objx:Ball] ; 1)
Korrekt^^, nachdem ich den Wunsch ausgesprochen habe, hat Zimond das implementiert.
YODA wrote:@Schiman ich weiß nicht was du vorhast
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.

Schiman
PaC-DK God
Posts: 1177
Joined: 20 Dec 2006, 21:48
Contact:

Post: # 75233Post Schiman
18 Feb 2010, 08:53

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

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
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.

YODA
PaC-DK Newby
Posts: 36
Joined: 09 Feb 2010, 18:42

Post: # 75235Post YODA
18 Feb 2010, 09:54

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.)


YODA
PaC-DK Newby
Posts: 36
Joined: 09 Feb 2010, 18:42

Post: # 75237Post YODA
18 Feb 2010, 11:32

der erste post hat aber nichts mit dem save zu tun :P


YODA
PaC-DK Newby
Posts: 36
Joined: 09 Feb 2010, 18:42

Post: # 75241Post YODA
18 Feb 2010, 18:49

dann einfach so, bis der bug gefixt ist benutz einfach "savestring" der hat genau den gleichen efeckt wie savenum :wink: du merkst kein unterschied :mrgreen:


YODA
PaC-DK Newby
Posts: 36
Joined: 09 Feb 2010, 18:42

Post: # 75248Post YODA
19 Feb 2010, 10:30

ups hab noch ein befehl zwischen drin vergessen, dann geht das doch :oops:

Code: Select all

setnum (num ; 123)
setstring (num ; [num])
savestring (num)
Variablen können mit dem Speech oder Offspeech Befehl auch am Bildschirm angezeigt werden. Auch hier werden einfach eckige Klammern verwendet.
aber ich glaub ich weiß was du jetzt meinst, dass ein variablen namen nicht mit savenum geht :mrgreen: aber dass musst du auch gleich dazu schreiben, wenn man das so liest, denkt man savenum geht überhaupt nicht bei dir.

Schiman
PaC-DK God
Posts: 1177
Joined: 20 Dec 2006, 21:48
Contact:

Post: # 75252Post Schiman
19 Feb 2010, 16:16

Also diejenigen, die hier was bewirken können (-----> Zimond :mrgreen: ) habe schon längst verstanden, was ich meine.
Nur leider scheint Ben gerade anderweitig sehr beschäftigt zu sein. Ist ok, schließlich ist das ja seine Freizeit, die er da für uns opfert.

Wuji
Adventure Enthusiast
Posts: 223
Joined: 07 Dec 2008, 17:25
Contact:

Post: # 75253Post Wuji
19 Feb 2010, 18:19

ich finds lustig ^^
tut mir leid shiman aber wenn nich funzt dann musst du deine skripte aufblähen ich würd nich darauf warten bis der bug von zimond behoben wurde. Ich glaub so gern hat der dich dann auch wiede nich

Schiman
PaC-DK God
Posts: 1177
Joined: 20 Dec 2006, 21:48
Contact:

Post: # 75260Post Schiman
20 Feb 2010, 15:35

Wuji wrote:aber wenn nich funzt dann musst du deine skripte aufblähen
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.

Post Reply