Lua - String Addition // dofile()

02/05/2015 18:42 Dyshaxo#1
Hi there, hatte die Voll krass behinderte Idee, meine Quests so voll Gameforgelike und so umzuschreiben, und dabei... 'ne Million Probleme.

angefangen mit dem dofile()-command und damit verbundene Lua-Chunks:

Beispiel:
Inhalt einer Questlib.lua:

Code:
dofile("/locale/germany/quest/metin2.lua"
dofile("/locale/germany/quest/scope_square.lua")

function scope_send_skill_dialog(job)
	jobstring = get_race_name_pl(job)
	say_title("Fertigkeiten der ".. jobstring)
	say("")
	if job == 0 then
		say(scope_square.skchoose_war)
		e = select(scope_square.war_job1, scope_square.war_job2)
	elseif job == 1 then
		say(scope_square.skchoose_nin)
		e = select(scope_square.nin_job1, scope_square.nin_job2)
	elseif job == 2 then
		say(scope_square.skchoose_sur)
		e = select(scope_square.sur_job1, scope_square.sur_job2)
	elseif job == 3 then
		say(scope_square.skchoose_sha)
		e = select(scope_square.sha_job1, scope_square.sha_job2)
	end
	pc.set_skill_group(e)
end

function get_race_name_pl(job)
	if job == 0 then
		jobstring = metin2.war_pl
	elseif job == 1 then
		jobstring = metin2.nin_pl
	elseif job == 2 then
		jobstring = metin2.sur_pl
	elseif job == 3 then
		jobstring = metin2.sha_pl
	end
	
	return jobstring
end
Beispiel Inhalt in scope_square.lua:
Code:
scope_square = {}
scope_square.nin_job1 = "Nahkämpfer"
scope_square.nin_job2 = "Fernkämpfer"
Beispiel Inhalt in metin2.lua:
Code:
metin2 = {}
metin2.sur_g2_sk1 = "Dunkler Schlag"
metin2.sur_g2_sk2 = "Flammenschlag"
metin2.sur_g2_sk3 = "Geist der Flamme"
metin2.sur_g2_sk4 = "Dunkler Schutz"
metin2.sur_g2_sk5 = "Geisterschlag"
metin2.sur_g2_sk6 = "Dunkler Stein"
metin2.sha_g1_sk1 = "Fliegender Talisman"
"Theoretisch" sollte das auf die Art funktionieren, nicht?

Dann -> String Addition.

Nehmen wir an, man will 'ne Variable aus der metin2.lua mit einer aus der scope_square.lua verketten -> theoretisch währe der Verknüpfungsoperand:
Code:
..
like: 
say("blablabla" .. metin2.sur_g2_sk6)
2 Variablen?
say(metin2.sur_g2_sk4 .. metin2.sur_g1_sk3)
^- Funktioniert nicht
Also yo damit die Frage eindeutig ist -> wie Verkettet man 2 String-Variabeln?
02/05/2015 18:50 .yorliK#2
normalerweise sollte .. funktionieren.

Versuchen könntest du noch:
Code:
say(metin2.sur_g2_sk4 .."".. metin2.sur_g1_sk3)
02/05/2015 18:53 Dyshaxo#3
Quote:
Originally Posted by Kilroy. View Post
normalerweise sollte .. funktionieren.
Mhh vielleicht wär's nützlich gewesen wenn ich den Fehler dazu gepostet hätte, siehe unten ^.^

Quote:
Originally Posted by Kilroy. View Post
Versuchen könntest du noch:
Code:
say(metin2.sur_g2_sk4 .."".. metin2.sur_g1_sk3)
Das hab' ich versucht, syserr dazu:

Code:
attempt to concatenate field `sur_g1_sk3' (a nil value)
(Fehlermeldung dem Beispiel angepasst)
02/05/2015 18:57 .yorliK#4
Quote:
Originally Posted by Dyshaxo View Post

Das hab' ich versucht, syserr dazu:

Code:
attempt to concatenate field `sur_g1_sk3' (a nil value)
(Fehlermeldung dem Beispiel angepasst)
sur_g1_sk3 existiert doch auch gar nicht? In der Lua sehe ich ist es immer sur_g2
02/05/2015 19:13 Dyshaxo#5
Quote:
Originally Posted by Kilroy. View Post
sur_g1_sk3 existiert doch auch gar nicht? In der Lua sehe ich ist es immer sur_g2
Das war nur ein Beispiel, das sind an die 200 Variabeln, die alle zu Posten machst das ganze nur unübersichtlich, existieren tut die schon :P

Ach egal, hab' mein Umlauteproblem jetzt bedeutend einfacher gelöst, lacht mich aus, los!!!

#closerequest