Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Private Server > Metin2 PServer Guides & Strategies
You last visited: Today at 01:27

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[LUA] Input auf Sonderzeichen überprüfen

Discussion on [LUA] Input auf Sonderzeichen überprüfen within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.

Reply
 
Old   #1


 
elite*gold: 1810
Join Date: Jan 2012
Posts: 2,208
Received Thanks: 1,630
[LUA] Input auf Sonderzeichen überprüfen

Heyo Community,

ich wollte mal meine Funktion veröffentlichen, womit ihr eine sichere Inputbox in Lua verwenden könnt,
ohne das der Nutzer Sonderzeichen (punctuation) verwenden kann.

Tut folgende Funktion in eure questlib.lua
Code:
function check_p(input)
	local check = string.find(input, '%p')
	if check != NULL then return true
	else return false
	end
end
Anschließend die Deklaration in die quest_functions
Code:
check_p
Jetzt die Quests reloaden und schon könnt ihr die Funktion anwenden.

Kleines Beispiel:
Code:
quest test begin
	state start begin
		when 20095.chat."Input ohne Sonderzeichen" begin
			local input = tostring(input())
			if check_p(input) then
				say("vergiss es")
				return
			end
			say(input)
		end
    end
end
Das Beispiel gibt einen return aus, sofern irgendein Sonderzeichen in der Input verwendet wurde.
Diese Funktion ist äußerst wichtig, um bereits genutzte Prioritäten auszuschließen.
MaxChri is offline  
Thanks
2 Users
Old 12/27/2015, 12:13   #2
 
.Liron's Avatar
 
elite*gold: 0
Join Date: May 2014
Posts: 292
Received Thanks: 519
Gefällt mir Danke,

Habe das schon seit längerem gesucht, endlich habe ich es.

Mfg. .Liron
.Liron is offline  
Old 12/27/2015, 12:15   #3
Trade Restricted

 
elite*gold: 17
The Black Market: 238/0/9
Join Date: Sep 2015
Posts: 2,487
Received Thanks: 1,032
besten dank.
MQTT. is offline  
Old 12/27/2015, 15:01   #4

 
.yorliK's Avatar
 
elite*gold: 0
Join Date: Nov 2011
Posts: 1,448
Received Thanks: 1,257
Gibt es NULL in Lua?

I know about nil
Code:
function forbidInput(inp, pattern)
	return (inp~=nil and (pattern==nil and inp or (string.find(inp, pattern)==nil and inp or nil)) or nil)
end
quest test begin
	state start begin
		when 20095.chat."Input mit Regeln" begin
			local inp = forbidInput(input(), "%p")
			-- local inp = forbidInput(input()) wäre auch möglich..
			if inp==nil then
				say("not allowed")
			else
				say(inp)
			end
		end
	end
end
.yorliK is offline  
Thanks
1 User
Old 12/27/2015, 18:59   #5
 
elite*gold: 0
Join Date: Aug 2009
Posts: 1,422
Received Thanks: 1,368
Quote:
Originally Posted by Kilroy. View Post
Gibt es NULL in Lua?
Null = Nil in Lua
blackout85 is offline  
Old 12/27/2015, 21:23   #6

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Deine Funktion würde IMMER true returnen, weil es NULL in Lua nicht gibt und somit eine Variable auch immer ungleich NULL ist.

Code:
function strContainsSpecialCharacters(str)
	if type(str) ~= "string" then return nil end
	
	return string.find(str, "%p") ~= nil
end
rollback is offline  
Thanks
2 Users
Old 12/27/2015, 23:01   #7
 
elite*gold: 0
Join Date: Dec 2015
Posts: 1
Received Thanks: 2
Quote:
Originally Posted by Seחsi View Post
Deine Funktion würde IMMER true returnen, weil es NULL in Lua nicht gibt und somit eine Variable auch immer ungleich NULL ist.

Code:
function strContainsSpecialCharacters(str)
	if type(str) ~= "string" then return nil end
	
	return string.find(str, "%p") ~= nil
end
In Lua existiert NULL
Ist aber lediglich eine Art keyword für nil

Man kann es also auch einfach so machen:

Code:
function check(str) 
    return string.find(str, "%d") 
end
Man muss nicht checken, ob es ein String ist
Im Source von Lua wird es automatisch zum string (oder eher char pointer) konvertiert

Extra neuen Account gemacht, weil ich während ich den Post geschrieben habe gebannt wurde
Richtig dreist
std::unique_ptr<remix>() is offline  
Thanks
2 Users
Old 12/28/2015, 02:09   #8

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Quote:
Originally Posted by std::unique_ptr<remix>() View Post
In Lua existiert NULL
Ist aber lediglich eine Art keyword für nil

Man kann es also auch einfach so machen:

Code:
function check(str) 
    return string.find(str, "%d") 
end
Habe in dem Moment nicht dran gedacht, dass in Lua eine nicht deklarierte Variable immer nil ist, der Vergleich würde also funktionieren.

Quote:
Originally Posted by std::unique_ptr<remix>() View Post
Man muss nicht checken, ob es ein String ist
Im Source von Lua wird es automatisch zum string (oder eher char pointer) konvertiert

Extra neuen Account gemacht, weil ich während ich den Post geschrieben habe gebannt wurde
Richtig dreist
Wenn man an string.find einen Wert übergibt, der kein String und keine Zahl ist, dann würde es einen Fehler geben:

Code:
Lua 5.0.3  Copyright (C) 1994-2006 Tecgraf, PUC-Rio
> string.find({}, "")
stdin:1: bad argument #1 to `find' (string expected, got table)
stack traceback:
        [C]: in function `find'
        stdin:1: in main chunk
        [C]: ?
>
rollback is offline  
Thanks
1 User
Old 01/14/2016, 12:31   #9


 
elite*gold: 1810
Join Date: Jan 2012
Posts: 2,208
Received Thanks: 1,630
Ich benutze in der Regel NULL, weil eine SQL mit "Allow Null" bei keinem zugeteilten Wert auch "NULL" wiedergibt. Damals kam ich wegen nil und null immer durcheinander, weil ich viel mit SQL Tabellen arbeite und deshalb nehme ich einfach NULL.
Bei nicht vorhandenen Variablen ergibt NULL das gleiche wie Nil. Von daher ¯\_(ツ)_/¯

Quote:
Originally Posted by std::unique_ptr<remix>() View Post
Man kann es also auch einfach so machen:

Code:
function check(str) 
    return string.find(str, "%d") 
end
Man muss nicht checken, ob es ein String ist
Im Source von Lua wird es automatisch zum string (oder eher char pointer) konvertiert
Als ob...
MaxChri is offline  
Reply


Similar Threads Similar Threads
[Java]could not get audio input stream from input file
07/29/2013 - General Coding - 7 Replies
Ich Habe das Spiel Tetris geschrieben mit einer Hintergrundmusik, die bis zum GameOver in einem Loop läuft, passt alles auch. Die Datei ist 35,4 MB groß und .mp3. Wenn ich aber nen GameOver habe, soll eine andere Musi kommen und die alte stoppen. Klappt auch soweit, aber wenn er die neue Musik abspielen will, kommt die Exception daoben. Die Datei ist nur 282 KB groß und dauert 17 Sekunden, die andere 4 min. Weiß wer Rat, bzw. braucht ihr Code-Teile? Die ganze Exception: Jul 28, 2013...
Pc überprüfen
06/30/2013 - Hardware Discussions / Questions - 6 Replies
heyo, ich wollte nur das überprüfen ob das alles passt und sinn macht. Sollte nicht viel teurer werden als 1021€ ;D https://www.mindfactory.de/shopping_cart.php/bask et_action/load_basket_extern/id/e7c2dc220bc391705d 2aad7a1977509bd7f8922808e2d00a581 und BITTE keine machtkämpfe zwischen amd und intel
input box as an image like php input boxes
03/22/2012 - AutoIt - 2 Replies
is it posible to do that? like... -> use image -> and put input box as image in gui so u can enter text in the image but u wont see this crappy input white box :) as i tryed and searched i dont think but maybe someone has figured it out



All times are GMT +1. The time now is 01:28.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.