String in Zahl umwandlen ?

Das Board für Schwierigkeiten beim Adventure-Machen und zum Melden von Bugs
Post Reply
japanhonk
PaC-DK God
Posts: 1707
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

String in Zahl umwandlen ?

Post: # 83873Post japanhonk
09 Dec 2017, 16:58

Hi,

ich müßte mit Zahlen, die über die Tastatur eingegeben werden rechnen, aber die Werte lassen sich nicht aus einer string - in eine Ziffernvariable ändern...

Wer weiß was ?

LG

Manni
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

Zimond
Der Engine Papa
Posts: 3410
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Re: String in Zahl umwandlen ?

Post: # 83874Post Zimond
12 Dec 2017, 20:35

setnum (num ; [string])

sollte eigentlich gehen, sofern wirklich nur Zahlen im String sind, sonst gibts ne Fehlermeldung. Mir fiele aber nichts ein wie du absichern willst das der Spieler wirklich nur Zahlen eingibt. Wäre eine andere Eingabemethode nicht sinnvoller? Ziffernpad zB?
Image

japanhonk
PaC-DK God
Posts: 1707
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: String in Zahl umwandlen ?

Post: # 83879Post japanhonk
14 Dec 2017, 16:33

Dachte ich auch dran, aber das passt so nicht ins Konzept.

Hab die Zahlen eingegrenzt, die man eingeben kann.

Dann sieht es nun so aus :

entertext (Wertung: [textvariable];600;670;2;1)

playsound (fight_snd_mouse;30)

if_string (textvariable;[empty])
break()

if_num (textvariable;0)
setnum (Wertung;0)
if_string (textvariable;1)
setnum (Wertung;1)
if_string (textvariable;2)
setnum (Wertung;2)
if_string (textvariable;3)
setnum (Wertung;3)
if_string (textvariable;4)
setnum (Wertung;4)
if_string (textvariable;5)
setnum (Wertung;5)
if_string (textvariable;6)
setnum (Wertung;6)
if_string (textvariable;7)
setnum (Wertung;7)
if_string (textvariable;8)
setnum (Wertung;8)
if_string (textvariable;9)
setnum (Wertung;9)

if_string (object;window_player1)
{
setnum (Wertung1;+[Wertung])
textout (71;[Wertung1] : ;85;70;2;255;225;0)
savenum (Wertung1)
break()
}
if_string (object;window_player2)
{
setnum (Wertung2;+[Wertung])
textout (72;[Wertung2] : ;85;160;2;255;225;0)
savenum (Wertung2)
break()
}

usw....



Gruß

Manni
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

Zimond
Der Engine Papa
Posts: 3410
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Re: String in Zahl umwandlen ?

Post: # 83886Post Zimond
21 Dec 2017, 22:21

bei der Null steht if_num anstatt if_string. Geht das ansonsten so? sollte eigentlich
Image

NoFear13
PaC-DK Newby
Posts: 19
Joined: 26 Mar 2017, 16:26

Re: String in Zahl umwandlen ?

Post: # 90943Post NoFear13
23 May 2021, 21:22

Ich habe ein ähnliches Problem:

entertext(feldgrouptext;500;500;1;100;255;0;0)
setnum(feldgrouptemp;[feldgrouptext]-1)
if_num(feldgrouptemp;<0)
{
offspeech(12;12;Ich sollte eine positive Zahl eingeben!)
break()
}
if_num(feldgrouptemp;>[feld_anzahl]/17-1)
{
offspeech(12;12;So viele Felder habe ich noch nicht!)
break()
}

Das funktioniert wunderbar bis wenn jemand halt einen Buchstaben mit eingibt, dann kommt ein entsprechender Fehler wie von Zimond angekündigt.

Wäre cool wenn man also entweder beim entertext eine Regex mit angegeben könnte + Fehlermeldung oder das er halt Zeichen löscht die der Regex nicht entsprechen oder halt if_stringregex oder beim if_string als dritte Übergabe regex mitgeben könnte, wäre eine geniale Funktion, dann könnte man auch mal in Strings prüfen ob die bestimmte Werte über eine Regex matchen.

Ansonsten muss ich mich bei Gelegenheit mal ran setzen und ein Numpad Ingame nachbauen.

Zimond
Der Engine Papa
Posts: 3410
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Re: String in Zahl umwandlen ?

Post: # 90944Post Zimond
25 May 2021, 00:59

Etwas aufwendiger aber eine Alternative wäre es das Entertext nachzubauen mit einer Funktion.

Im Prinzip brauchst du erstmal einen Modus den du setzt. Also etwas das festlegt jetzt soll eine Zahl eingegeben werden und andere Sachen wie Buttons sollen solange nicht funktionieren.

Du setzt erstmal ein Textout an die Stelle wo ein Entertext auch gewesen wäre und setzt im Textout einen noch leeren String ein zB "eingabe"
Dann startest du eine fortlaufende Funktion.

In dieser wird dann nach den Zahlentasten abgefragt :

if_keydown (1)
setstring (eingabe ; [eingabe]1)
if_keydown (2)
setstring (eingabe ; [eingabe]2)
usw

if_keydown (enter)
Was nach der Eingabe passieren soll und Funktion beenden. Auch beachten ob die Eingabe leer ist.

if_keydown (backspace)
setstring (eingabe ; [empty])

Einzelne Zeichen löschen ginge hier nicht leider.
Image

NoFear13
PaC-DK Newby
Posts: 19
Joined: 26 Mar 2017, 16:26

Re: String in Zahl umwandlen ?

Post: # 90945Post NoFear13
25 May 2021, 10:53

Danke für den Tipp Zimond. Mal schauen wenn mich die Muse packt werden ich eins von beiden mal bauen.

Post Reply