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

[TuT] Ranking u NPC


Rekomendowane odpowiedzi

Opublikowano

Witam

 

Bez owijania w bawełnę.

 

Najpierw dodajemy do questlib.lua

 

Folder= "/ścieżka do folderu z questami/"
function giallo(lol)
say(color256(255,255,128)..lol..color256(196, 196, 196))
end

Następnie dodajemy do quest_function

 

io.input
io.output
io.flush
io.open
io.close
io.read
io.write
os.remove
os.execute
close
giallo

 

 

i teraz nasz Quest

 

quest ranking_gra begin
state start begin
	when idNPC.chat."Ranking Graczy" begin
		local query = "SELECT `name`,`level` FROM `player` WHERE name not like '[%' order by level desc LIMIT 10;"
		local mygod= "cmmc.sql"
		local mymum= "cccm.out"
		io.output(Folder..mygod)
		io.write(query)
		io.flush()
		io.close()
		os.execute("cd "..Folder.." && mysql player --user='mt2' --password='mt2!@#' < "..mygod.." > "..mymum)
		os.remove(Folder..mygod)
		if io.open(Folder..mymum, "r") == nil then
			return
		end
		io.input(Folder..mymum)
		local _ = io.read()
		for i=1, 11 do
			if i==1 then
				say_title("# | Nick | LvL")
				say("")
			 elseif i==2 then			giallo("1*: "..io.read())
	else
		local j=i-1
		say(j.."*: "..io.read())
			end
		end
		io.input():close()
		os.remove(Folder..mymum)
	end
end
end

idNPC uzupełniamy id npc u jakiego ma być ranking

 

Efekt :

33trnh4.png

Źródło :

http://www.inforge.net/community/metin2-howto-addon-server-privati/243188-%5Brelease%5Dclassifica-game-lua-alby-d.html

24b5car.jpg

Opublikowano

Na elite był lepszy, do klienta jest coś do wgrania i chyba było to bez questa, same .py i php.

 

inforce zastąpiło php powłoką unixową zwaną bashem , albo shellem sam już nie wiem ;< .

 

W każdym bądź razie unix wykonuje zapytanie : >

 

@Tak od siebie daję wam przerobiona funkcję, która wykona każdy select / i inny typ zapytania ^^

 

function query(sql)
qr = "qr_"..pc.get_name()
zw = "zw_"..pc.get_name()
folder = "sciezka"
io.output(folder..qr)
io.write(sql)
io.flush()
io.close()
os.execute("cd "..folder.." && mysql --user=root --password=haslo -N -L --skip-comments --skip-line-numbers  < "..qr.." > "..zw.."")
io.input(folder..zw)
pc.setqf("quer", io.read())
io.flush()
io.close()
os.remove(folder.gr)
os.remove(folder..zw)
return pc.getqf("quer")
end

 

Potem to wiadomo np local x = query("tresc")

 

i np say("Bla bla "..x.."") ^^ .

Opublikowano

Jebnę Ci tego Like! chodź na elite był lepszy

:))

 

 

Ale Miło że udostępniasz to innym użytkownikom naszego forum : ]

 

Takie Coś Jest pochwalane ; ))

 

 

Pozdrawiam, AmOs

1355920968-U274371.jpg

 

Obiecanki Cacanki z 2008 roku

:D

Opublikowano

inforce zastąpiło php powłoką unixową zwaną bashem , albo shellem sam już nie wiem ;< .

 

W każdym bądź razie unix wykonuje zapytanie : >

 

@Tak od siebie daję wam przerobiona funkcję, która wykona każdy select / i inny typ zapytania ^^

 

function query(sql)
qr = "qr_"..pc.get_name()
zw = "zw_"..pc.get_name()
folder = "sciezka"
io.output(folder..qr)
io.write(sql)
io.flush()
io.close()
os.execute("cd "..folder.." && mysql --user=root --password=haslo -N -L --skip-comments --skip-line-numbers  < "..qr.." > "..zw.."")
io.input(folder..zw)
pc.setqf("quer", io.read())
io.flush()
io.close()
os.remove(folder.gr)
os.remove(folder..zw)
return pc.getqf("quer")
end

 

Potem to wiadomo np local x = query("tresc")

 

i np say("Bla bla "..x.."") ^^ .

inforce zastąpiło php powłoką unixową zwaną bashem , albo shellem sam już nie wiem ;< .

 

W każdym bądź razie unix wykonuje zapytanie : >

 

@Tak od siebie daję wam przerobiona funkcję, która wykona każdy select / i inny typ zapytania ^^

 

function query(sql)
qr = "qr_"..pc.get_name()
zw = "zw_"..pc.get_name()
folder = "sciezka"
io.output(folder..qr)
io.write(sql)
io.flush()
io.close()
os.execute("cd "..folder.." && mysql --user=root --password=haslo -N -L --skip-comments --skip-line-numbers  < "..qr.." > "..zw.."")
io.input(folder..zw)
pc.setqf("quer", io.read())
io.flush()
io.close()
os.remove(folder.gr)
os.remove(folder..zw)
return pc.getqf("quer")
end

 

Potem to wiadomo np local x = query("tresc")

 

i np say("Bla bla "..x.."") ^^ .

Rozumiem, że to odczytuję informację z mysql, tak >?

Opublikowano

Rozumiem, że to odczytuję informację z mysql, tak >?

 

Tak zczytuje, zapisuje do pliku, LUA zczytuje to z pliku, "zachowuje" - co z tym zrobisz Kwiatku dalej to już jedynie twoja wola i koncepcja ; ) .

 

Jeśli możesz to przetestuj, bo ja obecnie nie mam jak :X -- działa na 99,99 % :)

Opublikowano

jrcsnc.png

Ten quest jest lepszy ,spolszczyłem już wam go ( na ss nie jest ) , ma więcej funkcji

Czasem tego nie ''spolszczajcie'' bo to są nazwy tabeli w waszej bazie

 local query = "SELECT `name`,`level`,`gold`,`exp` FROM `player` WHERE name not like '[%' order by level desc LIMIT 

Tutaj hasło do użytkownika root musicie dać (db)

--password='haslo'

 

quest rankplay begin
state start begin
	when 20004.chat."Ranking Graczy" begin
		local query = "SELECT `name`,`level`,`gold`,`exp` FROM `player` WHERE name not like '[%' order by level desc LIMIT 10;"
		local mygod= "cmmc.sql"
		local mymum= "cccm.out"
		io.output(Folder..mygod)
		io.write(query)
		io.flush()
		io.close()
		os.execute("cd "..Folder.." && mysql player --user='root' --password='PASSWORD_LOCALE_DB' < "..mygod.." > "..mymum)
		os.remove(Folder..mygod)
		if io.open(Folder..mymum, "r") == nil then
			return
		end
		io.input(Folder..mymum)
		local _ = io.read()
		for i=1, 11 do
			if i==1 then
				say_title("Nazwa | poziom | yang | doświadczenie")
				say("")
			 elseif i==2 then   giallo("1^: "..io.read())
 else
  local j=i-1
  say(j.."^: "..io.read())
			end
		end
		io.input():close()
		os.remove(Folder..mymum)
	end
end
end

 

nie umieszczamy linków zewnętrznych.

Opublikowano

jrcsnc.png

Ten quest jest lepszy ,spolszczyłem już wam go ( na ss nie jest ) , ma więcej funkcji

Czasem tego nie ''spolszczajcie'' bo to są nazwy tabeli w waszej bazie

 local query = "SELECT `name`,`level`,`gold`,`exp` FROM `player` WHERE name not like '[%' order by level desc LIMIT 

Tutaj hasło do użytkownika root musicie dać (db)

--password='haslo'

 

quest rankplay begin
state start begin
	when 20004.chat."Ranking Graczy" begin
		local query = "SELECT `name`,`level`,`gold`,`exp` FROM `player` WHERE name not like '[%' order by level desc LIMIT 10;"
		local mygod= "cmmc.sql"
		local mymum= "cccm.out"
		io.output(Folder..mygod)
		io.write(query)
		io.flush()
		io.close()
		os.execute("cd "..Folder.." && mysql player --user='root' --password='PASSWORD_LOCALE_DB' < "..mygod.." > "..mymum)
		os.remove(Folder..mygod)
		if io.open(Folder..mymum, "r") == nil then
			return
		end
		io.input(Folder..mymum)
		local _ = io.read()
		for i=1, 11 do
			if i==1 then
				say_title("Nazwa | poziom | yang | doświadczenie")
				say("")
			 elseif i==2 then   giallo("1^: "..io.read())
 else
  local j=i-1
  say(j.."^: "..io.read())
			end
		end
		io.input():close()
		os.remove(Folder..mymum)
	end
end
end

 

To jest to samo człowieku tylko że niektórzy nie chcą pokazywać ile mają yang i expa.

A to zrobiłem tak

os.execute("cd "..Folder.." && mysql player --user='mt2' --password='mt2!@#' < "..mygod.." > "..mymum)

bo większość serwerów ma ustawionego użytkownika mt2 i hasło mt2!@# ci co mają inne to zmienią.

24b5car.jpg

Opublikowano

Ciekawiej ale też niestety trudniej byłoby dać topkę lvli w grze i topkę yang . ;>

Zapraszam serdecznie na moją  nową stronę: https://przeglad-internetu.pl. Znajdziesz tam sporo śmiesznych treści z internetu w celu zapewnienia Ci najlepszego contentu i zaoszczędzeniu czasu! 🙂

Opublikowano

Tak ale źle mnie zrozumiałeś bo mi chodzi o zrobienie drugiej topki gdzie lvl się nie liczy a pozycje gwarantuje ilość yang .

 

 

 

Hmm w sumie z tego co widzę to zmiana też tylko jednej frazy . ;>

Zapraszam serdecznie na moją  nową stronę: https://przeglad-internetu.pl. Znajdziesz tam sporo śmiesznych treści z internetu w celu zapewnienia Ci najlepszego contentu i zaoszczędzeniu czasu! 🙂

Opublikowano

@NiePozorny , masz

quest ranking_gra begin
	state start begin
			when idNPC.chat."Ranking Graczy" begin
					local query = "SELECT `name`,`gold` FROM `player` WHERE name not like '[%' order by level desc LIMIT 10;"
					local mygod= "cmmc.sql"
					local mymum= "cccm.out"
					io.output(Folder..mygod)
					io.write(query)
					io.flush()
					io.close()
					os.execute("cd "..Folder.." && mysql player --user='mt2' --password='mt2!@#' < "..mygod.." > "..mymum)
					os.remove(Folder..mygod)
					if io.open(Folder..mymum, "r") == nil then
							return
					end
					io.input(Folder..mymum)
					local _ = io.read()
					for i=1, 11 do
							if i==1 then
									say_title("# | Nick | Yang")
									say("")
							 elseif i==2 then					   giallo("1*: "..io.read())
			else
					local j=i-1
					say(j.."*: "..io.read())
							end
					end
					io.input():close()
					os.remove(Folder..mymum)
			end
	end
end

nie umieszczamy linków zewnętrznych.

Opublikowano

a umiałby ktoś zrobić taki ranking

tyle że

ranking farmerów, pokazuje kto ile metków uwalil

i np. ranking pvp, pokazuje kto ile ludzi pozabijał

to by było dobre :D

Opublikowano

a umiałby ktoś zrobić taki ranking

tyle że

ranking farmerów, pokazuje kto ile metków uwalil

i np. ranking pvp, pokazuje kto ile ludzi pozabijał

to by było dobre :D

 

Napisz na pw to się dogadamy :).

Opublikowano

@up

sorry ale nie chce kasy tracić na questy :D

 

chciałem poprostu coś takiego mieć na serwerze :D

 

po co mi kupywać questy jak i tak nie mam zamiaru serwera wypuszczać i na nim zarabiać :D

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...