Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Poprawa] Prosty quest Pierwsze logowanie z query


Rekomendowane odpowiedzi

Opublikowano

Witam,

 

mam problem z questem, przy pierwszym zalogowaniu (sprawdzenie czy to było pierwsze zalogowanie ze stworzonej kolumny) mial sie pojawic napis widoczny dla wszystkich:



quest welcome begin
    state start begin
         when login begin
			local idkonta = pc.get_account_id()
			local firstloged= query("SELECT firstloged FROM player.player WHERE account_id = '" .. idkonta .. "';" )
			if firstloged==0 then
				notice_all("Nowy gracz "..pc.get_name().." pojawił się na naszym serwerze :-).")
				notice_all("Witamy i zapraszamy do zabawy!")
				query("UPDATE player.player SET firstloged = '1' WHERE account_id = '"..idkonta.."';")
				else
					say("Skrypt działa. prawie..")
			end
		end
    end
end

Niestety po zalogowaniu nic sie nie dzieje (nie pojawia sie ni napis o pierwszym zalogowaniu, ani ustawione else).

 

Podejrzewam, ze problem jest z mysql, ale nie wiem gdzie.

 

Oczywiscie dodałem funkcję query:

function query(sql)
	user = "root"
	pw = "HASLO"
	local var = {}
	var.pre = ''
	if user ~= nil then
		var.pre = var.pre..' -u'..user
	end
	if pw ~= nil then
		var.pre = var.pre..' -p'..pw
	end
	var.scriptfile = 'sc_'..pc.get_name()..number(1,999)..number(2,999)..number(3,999)
	var.outputfile = 'op_'..pc.get_name()..number(1,999)..number(2,999)..number(3,999)
	sql = string.gsub(sql,'"',"'")
	var.str = "/usr/local/bin/mysql -N -L "..var.pre.." < "..var.scriptfile.." > "..var.outputfile
	script = io.open(var.scriptfile,"a+")
	script:write(sql)
	script:close()
	os.execute(var.str)
	back = io.open(var.outputfile)
	quer = back:read()
	back:flush()
	back:close()
	os.remove(var.scriptfile)
	os.remove(var.outputfile)
	return quer
end

 

Prosze o pomoc, beda like.

 

Pozdrawiam

kobi55

Sygna.jpg
Opublikowano

Napisałem czemu prawdopodobnie nie działał.

Mój quest nie wykorzystuje query i bazy jako sprawdzania "firstloged", tylko ja to przechowuje na zmiennych questowych (pc.getqf i pc.setqf).

Opublikowano

W funkcji query musisz podać hasło czyli: "mt2!@#"

To nie jest to, bo wczesniej mialem tak ustawione i nie dzialalo tez;/

Sygna.jpg
Opublikowano

Czy twój quest wykonywał cokolwiek? notice_all albo ten say. Zaglądałeś teżdo syserr game na którym testowałeś?

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...