Jump to content

[ComputerCraft][LUA] Habe einen Fehler ka warum...


ame824
 Share

Recommended Posts

Guten Tag.

Mein Problem ist wie Folgt:

Ich bin derzeit dabei ein Verwaltungssystem zu bauen und das erste was es haben soll, ein Funktionierendes Login/Register System aber jetzt kommt der Punkt. Das System macht in Zeile:95 einen Fehler zumindest sagt das der In-Game PC.

script:95: attempt to call table


os.loadAPI("/rom/apis/encrypt")


term.clear()


function core()

	if fs.exists("./GRZ") and fs.isDir("./GRZ") then

		header()

		login()

	else 

		install()

	end

end


function install()


	print("##############################")

	print("#       GRZ-Gamerz AG        #")

	print("#      Kontrollzentrum       #")

	print("#                            #")

	print("#  Installation des Systems  #")

	print("#                            #")

	print("#   Wollen sie das System    #")

	print("#     installieren? (J/N)    #")

	print("##############################")

	print("")

	antwort = read("*")


	if antwort == "J" or antwort == "j" then

		fs.makeDir("./GRZ")

		fs.makeDir("./GRZ/users")

		fs.makeDir("./GRZ/openDoc")

		fs.makeDir("./GRZ/log")

		core()

	elseif antwort == "N" or antwort == "n" then

		print("Installation abgebrochen!")

		os.reboot()

	else

		print("Du musst J/j oder N/n benutzen!")

		install()

	end

end


function header()

	print("############################")

	print("#      GRZ-Gamerz AG       #")

	print("#     Kontrollzentrum      #")

	print("#                          #")

	print("#   Herzlich Willkommen!   #")

	print("############################")

	print("")

end


function login()

	term.setTextColor(colors.yellow)

	print("Bitte geben Sie ihren Namen ein!")

	term.setTextColor(colors.white)

	name = read("*")

	if name == nil then

		term.setTextColor(colors.red)

		print("Sie müssen einen Namen angeben")

		sleep(200)

		term.clearLine()

		login()

	else

		passwort = nil

		if fs.exists("./GRZ/users/"..name) and fs.isDir("./GRZ/users/"..name) then

			term.setTextColor(colors.yellow)

			print("Bitte geben Sie ihr Passwort ein!")

			term.setTextColor(colors.white)

			passwort = read("*")

			if fs.exists("./GRZ/users/pwd/"..encrypt(passwort,"GRZ-Gamerz")) then

				term.setTextColor(colors.lime)

				print("Herzlich Willkommen"..name.."!")

				shell.setDir("./GRZ/users/"..name)

				term.clear()

				sleep(100)

				header()

			end

		else

			register(passwort,passwort,name)

		end

	end

end


function register(pw1,pw2,name)

	if pw1 == nil then

		term.setTextColor(colors.yellow)

		print("Sie haben noch kein Benutzer-Konto!")

		print("Bitte geben sie ein Passwort ein!")

		term.setTextColor(colors.white)

		pw1 = read("*")

		register(pw1,pw2)

	elseif pw2 == nil and pw1 ~= nil then

		term.setTextColor(colors.yellow)

		print("Nun geben Sie das Passwort erneut ein!")-- <------

		term.setTextColor(colors.white)

		pw2 = read("*")

		register(pw1,pw2)

	elseif pw1 == pw2 then

		enc = encrypt(pw1,"GRZ-Gamerz")

		fs.makeDir("./GRZ/users/"..name)

		fs.makeDir("./GRZ/users/"..name.."/documents")

		fs.makeDir("./GRZ/users/"..name.."/pwd")

		fs.makeDir("./GRZ/users/"..name.."/files")

		fs.makeDir("./GRZ/users/"..name.."/programs")

		fs.makeFile("./GRZ/users/"..name.."/pwd/"..enc)

		fs.makeFile("./GRZ/users/"..name.."/pwd/dontRemoveThis")

		shell.setDir("./GRZ/users/"..name)

		term.setTextColor(colors.lime)

		print("Herzlich Willkommen "..name.."! Viel Spaß mit dem System!")

		term.setTextColor(colors.white)

		sleep(300)

		term.clear()

		sleep(100)

		header()

	elseif pw1 ~= pw2 then

		term.setTextColor(colors.red)

		print("Die Passwoerter sind nicht die gleichen")

		register(nil,nil)

	end

end


core()

Ich hoffe ihr könnt mir weiter helfen

mfg

ame824

Link to comment
Share on other sites

Du machst nirgends was mit tables, das wird ein interner Bug sein, hatte ich auch schon mal. portiere alles mal auf einen komplett neuen Computer und probiers erneut. BTW: diese crypto-API, wie sieht die aus? ist die von dir?

Link to comment
Share on other sites

Nich direkt ich hab ein Funktionierendes Encrypt gesucht ... und komplett wie sie ist als API gemacht ^^

Warum? muss ich da was zu schreiben?

Wenn ich wüsste wie ich soeine mache dann Mach ich mir die später selbst

bin noch in der anfängerphase des Lua Programming

#Neues Erfahren

Das war das Encrypt was den scheiß gemacht hat aber jetzt hab ich das Problem das der mir den Namen aus der Login-Funk nicht in die Register rein tut obwohl ich das ja mit

register(passwort,passwort,name)

mache

Ich habe des Jetzt XD Was ich im login mit passwort,passwort,name mache

muss ich auch in der register func machen XD (pw1, pw2)

Edited by ame824
Link to comment
Share on other sites

Ich weiß nicht ob ich diesen Link posten darf (Computercraft Forum) Da issn Crypto API ^^ habs nich getestet mach ich später jetzt bin ich grad an dem Hauptprogramm was ich eigendlich steuern wollte und da ist mir ein Problem zuerst einmal : Ich Steuere diverse Redstoneausgänge (Bundled Cable) über zahlen 1-6 und nun möchte ich diese auch benutzen aber der computer schmeißt mich immer zu meiner Fehlermeldung: "ungueltige Eingabe" Hier is der Code da seht ihr meine Meldung wenn ihr nicht wisst was ich meine

function main()	while true do		term.clear()		term.clearLine()		print("##############")		print("#   Status   #")		print("##############")		print("")		print("")		print("EU-Leitungen: "..leitEUstat.." | EU-Kraftwerk: "..kwEUstat)		print("MJ-Leitungen: "..leitMJstat.." | MJ-Kraftwerk: "..kwMJstat)		print("Erzschmelze: "..erzSchmelzStat)		print("")		print("Druecke diese Tasten um den Status zu aendern")		print("1 - EU Leitungen")		print("2 - EU Kraftwerk")		print("3 - MJ Leitungen")		print("4 - MJ Kraftwerk")		print("5 - Erzschmelze")		print("6 - Beenden")		local event, key = os.pullEvent("char") 		if key == keys.getName("6") then			if(erzSchmelzStat == "aus") then				erzschmelze(an)			else				erzschmelze(aus)			end				break		elseif key == keys.getName("2") then			if(leitEUstat == "aus") then				EUleitung(an)			else				EUleitung(aus)			end				break		elseif key == keys.getName("3") then			if(kwEUstat == "aus") then				EUkw(an)			else				EUkw(aus)			end				break				elseif key == keys.getName("4") then			if(leitMJstat == "aus") then				MJkw(an)			else				MJkw(aus)			end				break				elseif key == keys.getName("5") then			if(kwMJstat == "aus") then				MJkw(an)			else				MJkw(aus)			end				break		elseif key == keys.getName("7") then			break		else			print("Eingabe ungueltig!")			sleep(2)			main()		end	endendmain()

mitkeys.one, keys.two und so weiter hab ich es auch schon versucht

Edited by ame824
Link to comment
Share on other sites

ehm... ^^

Ich hab früher mal mit meinem bruder des gemacht und die Bundles haben funktioniert und da war computercraft noch so das man die rom in der appdata hatte und nicht im archiv

#edit ja klar am anfang meinses scriptes steuert das script ja schon eins meiner redstoneleitungen an


os.loadAPI("/rom/apis/keys")


c = 0


an = "on"

aus = "off"


kwEUstat = "aus"

kwMJstat = "aus"

leitEUstat = "aus"

leitMJstat = "aus"

erzSchmelzStat = "aus"

c = colors.combine(c, colors.lightBlue)

rs.setBundledOutput("top", c)

print("System wurde geladen!")

sleep(3)

mir gehts ja ehr drum warum die keys_ nicht gehen ...

Edited by ame824
Link to comment
Share on other sites

Trotzdem erkennt der mir das nicht an .....

Warum nur -_-


local event, key = os.pullEvent("char") 


		if key == "6" then

			if(erzSchmelzStat == "aus") then

				erzschmelze(an)

			else

				erzschmelze(aus)

			end	

			break

usw.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...
B
B