Register for your free account! | Forgot your password?

You last visited: Today at 06:47

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

Advertisement



[Release]PvP Rangliste

Discussion on [Release]PvP Rangliste within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.

Reply
 
Old 01/18/2015, 20:58   #16

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Quote:
Originally Posted by 'Mahone View Post
Wieso macht es jeder so unnormal umständlich?

Code:
quest ingamerank begin
	state start begin
		when kill with npc.is_pc() begin
			mysql_query("update player.player set pvp_kills = pvp_kills + 1 where name = ".. pc.name)
		end
		when 20095.chat."PvP Ranking" begin
			say_title("PvP Ranking")
			local s = select("Rangliste","Spieler suchen", "Abbrechen")
			say_title("PvP Ranking")
			if s == 3 then return
			elseif s == 1 then
				for k,v in pairs(mysql_query("select * from player.player order by pvp_kills desc limit 10;")) do
					say(k .." - ".. v.name .." - ".. v.pvp_kills)
				end
			elseif s == 2 then
				say("Gib einen Spielernamen an")
				say()
				local p = input()
				if p == "" or string.find(p, ";") then return end
				say_title("PvP Ranking")
				if tonumber(mysql_query("select count(*) from player.player where name = ".. p)[1][1]) then
					return say("Der Spieler existiert nicht")
				end
				p = mysql_query("select * from player.player where name = ".. p)
				say(p[1].name .. " - ".. p[1].pvp_kills)
			end
		end
	end
end
du willst nicht vorhandene einträge updaten?

Quote:
Originally Posted by Kilroy. View Post
Eh. Ja.

Das ist umständlich

Code:
-- by kilroy.
quest pvp_ranking begin
	state start begin
		when 20011.chat."PvP-Rangliste" begin
			pvp_ranking.seite1()
		end
		when kill with npc.is_pc() begin
			vid = npc.get_vid()
			myVid = pc.select(vid)
			player_id = pc.get_player_id()
			pc.select(myVid)
			if get_time() >= pc.getqf(tostring(player_id).."_time") then
				pc.setqf(tostring(player_id).."_time", get_time()+60*2)
				if tonumber(mysql_query("select count(*) from player.PvP_Ranking where name = '"..pc.get_name().."';")[1][1]) == 0 then
					-- Wenn der Name noch nicht existiert, füge ein
					mysql_query("INSERT player.PvP_Ranking SET name = '"..pc.get_name().."';")
					mysql_query("UPDATE player.PvP_Ranking SET kills = 1 WHERE name = '"..pc.get_name().."';")
					mysql_query("UPDATE player.PvP_Ranking SET reich = '"..pc.get_empire().."' WHERE name = '"..pc.get_name().."';")
				else
					mysql_query("UPDATE player.PvP_Ranking SET kills = kills+1 WHERE name = '"..pc.get_name().."';")
				end
			end
		end
		function seite1()
			say_title("PvP Rangliste")
			say("")
			s = select("Global", "Rot", "Gelb", "Blau", "Abbrechen")
			if s==5 then
				return
			elseif s==1 then
				pvp_ranking.global()
			elseif s==2 then
				pvp_ranking.rot()
			elseif s==3 then
				pvp_ranking.gelb()
			elseif s==4 then
				pvp_ranking.blau()
			end
		end
		function global()
			say_title("Global")
			a = select("Eigener Rang", "Rangliste", "Spielersuche", "Zurück", "Abbrechen")
			if a==1 then
				pvp_ranking.own_rang(mysql_query("SELECT * from player.PvP_Ranking where name not like '[%' order by kills DESC;"))
			elseif a==2 then
				pvp_ranking.make_rangliste(mysql_query("SELECT * from player.PvP_Ranking where name not like '[%' order by kills DESC;"))
			elseif a==3 then
				say_title("Spielersuche")
				say("")
				say("Gib den Namen ein.")
				name = input()
				if name=="" then return end
				if string.find(name, "(%W)")!= nil then syschat("Dieser Name enthält Sonderzeichen.") return end
					pvp_ranking.search_rang(name, mysql_query("SELECT * from player.PvP_Ranking where name not like '[%' order by kills  DESC;"))
			elseif a==4 then
				pvp_ranking.seite1()
			elseif a==5 then
				return
			end
		end
		function rot()
			say_title("Reich Rot")
			a = select("Eigener Rang", "Rangliste", "Spielersuche", "Zurück", "Abbrechen")
			if a==1 then
				if pc.get_empire()!=1 then
					say_title("Eigener Rang")
					say("")
					say("Du gehörst nicht dem roten Reich an.")
					return
				end
				pvp_ranking.own_rang(mysql_query("SELECT * from player.PvP_Ranking where name not like '[%' and reich = 1 order by kills DESC;"))
			elseif a==2 then
				pvp_ranking.make_rangliste(mysql_query("SELECT * from player.PvP_Ranking where name not like '[%' and reich = 1 order by kills DESC;"))
			elseif a==3 then
				say_title("Spielersuche")
				say("")
				say("Gib den Namen ein.")
				name = input()
				if name=="" then return end
				if string.find(name, "(%W)")!= nil then syschat("Dieser Name enthält Sonderzeichen.") return end
					pvp_ranking.search_rang(name, mysql_query("SELECT * from player.PvP_Ranking where name not like '[%' and reich = 1 order by kills DESC;"))
			elseif a==4 then
				pvp_ranking.seite1()
			elseif a==5 then
				return
			end
		end
		function gelb()
			say_title("Reich Gelb")
			a = select("Eigener Rang", "Rangliste", "Spielersuche", "Zurück", "Abbrechen")
			if a==1 then
				if pc.get_empire()!=2 then
					say_title("Eigener Rang")
					say("")
					say("Du gehörst nicht dem roten Reich an.")
					return
				end
				pvp_ranking.own_rang(mysql_query("SELECT * from player.PvP_Ranking where name not like '[%' and reich = 2 order by kills DESC;"))
			elseif a==2 then
				pvp_ranking.make_rangliste(mysql_query("SELECT * from player.PvP_Ranking where name not like '[%' and reich = 2 order by kills DESC;"))
			elseif a==3 then
				say_title("Spielersuche")
				say("")
				say("Gib den Namen ein.")
				name = input()
				if name=="" then return end
				if string.find(name, "(%W)")!= nil then syschat("Dieser Name enthält Sonderzeichen.") return end
					pvp_ranking.search_rang(name, mysql_query("SELECT * from player.PvP_Ranking where name not like '[%' and reich = 2 order by kills DESC;"))
			elseif a==4 then
				pvp_ranking.seite1()
			elseif a==5 then
				return
			end
		end
		function blau()
			say_title("Reich Blau")
			a = select("Eigener Rang", "Rangliste", "Spielersuche", "Zurück", "Abbrechen")
			if a==1 then
				if pc.get_empire()!=3 then
					say_title("Eigener Rang")
					say("")
					say("Du gehörst nicht dem roten Reich an.")
					return
				end
				pvp_ranking.own_rang(mysql_query("SELECT * from player.PvP_Ranking where name not like '[%' and reich = 3 order by kills DESC;"))
			elseif a==2 then
				pvp_ranking.make_rangliste(mysql_query("SELECT * from player.PvP_Ranking where name not like '[%' and reich = 3 order by kills DESC;"))
			elseif a==3 then
				say_title("Spielersuche")
				say("")
				say("Gib den Namen ein.")
				name = input()
				if name=="" then return end
				if string.find(name, "(%W)")!= nil then syschat("Dieser Name enthält Sonderzeichen.") return end
					pvp_ranking.search_rang(name, mysql_query("SELECT * from player.PvP_Ranking where name not like '[%' and reich = 3 order by kills DESC;"))
			elseif a==4 then
				pvp_ranking.seite1()
			elseif a==5 then
				return
			end
		end
		function make_rangliste(list)
			if list.name==nil then return end
			rang_len = table.getn(list.name)
			ende = 0
			for a = 1, rang_len, 1 do -- Rangliste Seite
				say_title("PvP-Ranking Seite "..a)
				say("")
				for b = 1, 10, 1 do -- Ranglisten Einträge
					local c = 10* ( a - 1 ) + b
					if list.name[c]==pc.get_name() then
						say(color256(255, 255, 0)..""..c..". "..list.name[c]..", Kills: "..list.kills[c]..""..color256(196, 196, 196))
					else
						say(c..". "..list.name[c]..", Kills: "..list.kills[c])
					end
					if c==rang_len then ende=1 break end
				end
				if a==1 and ende==1 then
					s=select("Hauptmenu", "Abbrechen")
					if s==1 then
						pvp_ranking.seite1()
						break
					elseif s==2 then
						return
					end
				elseif a==1 then
					s=select("Weiter", "Hauptmenu", "Abbrechen")
					if s==2 then
						pvp_ranking.seite1()
						break
					elseif s==3 then
						return
					end
				elseif ende==1 then
					ende=0
					s=select("Zurück", "Hauptmenu", "Abbrechen")
					if s==1 then
						a=a-2
					elseif s==2 then
						pvp_ranking.seite1()
						break
					elseif s==3 then
						return
					end
				else
					s = select("Weiter", "Zurück", "Hauptmenu", "Abbrechen")
					if s==2 then
						a=a-2
					elseif s == 3 then
						pvp_ranking.seite1()
						break
					elseif s==4 then
						return
					end
				end
			end
		end
		function own_rang(list)
			if list.name==nil then return end
			rang_len = table.getn(list.name)
			pos = 0
			ende = 0
			say_title("Eigener Rang")
			say("")
			for i=1, rang_len, 1 do -- Finde Spielerposition
				if list.name[i]==pc.get_name() then
					pos = i
					break
				end
			end
			if pos==0 then say("Du bist nicht in der Liste.") return end
			if pos-4<=0 then
				for i=1,pos,1 do
					if pos-i==1 then
						pos = pos-i
						break
					end
				end
			else
				pos = pos-4
			end
			for c = pos, pos+8, 1 do -- Rangliste
				if list.kills[c]==nil then ende=1 break end
				if list.name[c]==pc.get_name() then
					say(color256(255, 255, 0)..""..c..". "..list.name[c]..", Kills: "..list.kills[c]..""..color256(196, 196, 196))
				else
					say(c..". "..list.name[c]..", Kills: "..list.kills[c])
				end
				if c==pos+8 then ende=1 break end
			end
			if ende==1 then
				if select("Hauptmenu", "Schließen")==2 then return end
				pvp_ranking.seite1()
			end
		end
		function search_rang(name, list)
			if list.name==nil then return end
			rang_len = table.getn(list.name)
			pos = 0
			ende = 0
			say_title(name.."'s Rang")
			say("")
			for i=1, rang_len, 1 do -- Finde Spielerposition
				if list.name[i]==name then
					pos = i
					break
				end
			end
			if pos==0 then say(name.." ist nicht in der Liste.") return end
			if pos-4<=0 then
				for i=1,pos,1 do
					if pos-i==1 then
						pos = pos-i
						break
					end
				end
			else
				pos = pos-4
			end
			for c = pos, pos+8, 1 do -- Rangliste
				if list.kills[c]==nil then ende=1 break end
				if list.name[c]==pc.get_name() then
					say(color256(255, 255, 0)..""..c..". "..list.name[c]..", Kills: "..list.kills[c]..""..color256(196, 196, 196))
				else
					if list.name[c]==name then
						say(color256(255, 255, 0)..""..c..". "..list.name[c]..", Kills: "..list.kills[c]..""..color256(196, 196, 196))
					else
						say(c..". "..list.name[c]..", Kills: "..list.kills[c])
					end
				end
				if c==pos+8 then ende=1 break end
			end
			if ende==1 then
				if select("Hauptmenu", "Schließen")==2 then return end
				pvp_ranking.seite1()
			end
		end
	end
end
zum erstellen:
wieso 2 updates wenns in einem geht?

PHP Code:
mysql_query("UPDATE player.PvP_Ranking SET kills = 1 WHERE name = '"..pc.get_name().."';")
                    
mysql_query("UPDATE player.PvP_Ranking SET reich = '"..pc.get_empire().."' WHERE name = '"..pc.get_name().."';"
-->
PHP Code:
mysql_query("UPDATE player.PvP_Ranking SET kills = 1, reich = '"..pc.get_empire().."' WHERE name = '"..pc.get_name().."';"
rollback is offline  
Old 01/18/2015, 21:02   #17
 
elite*gold: 0
Join Date: Jan 2015
Posts: 106
Received Thanks: 52
Quote:
Originally Posted by [Sensenmann] View Post
du willst nicht vorhandene einträge updaten?
Was sollte ich deiner Meinung nach denn updaten?
'Mahone is offline  
Old 01/18/2015, 21:04   #18

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Quote:
Originally Posted by 'Mahone View Post
Was sollte ich deiner Meinung nach denn updaten?
vorhandene einträge ... nicht vorhandene kann man auch nicht updaten
rollback is offline  
Old 01/18/2015, 21:06   #19
 
elite*gold: 0
Join Date: Jan 2015
Posts: 106
Received Thanks: 52
Quote:
Originally Posted by [Sensenmann] View Post
vorhandene einträge ... nicht vorhandene kann man auch nicht updaten
Welche vorhandenen Einträge sollte man wann wieso bearbeiten?
'Mahone is offline  
Old 01/18/2015, 21:10   #20

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Quote:
Originally Posted by 'Mahone View Post
Welche vorhandenen Einträge sollte man wann wieso bearbeiten?
du hast geschrieben:
Quote:
Originally Posted by 'Mahone View Post
Code:
when kill with npc.is_pc() begin
			mysql_query("update player.player set pvp_kills = pvp_kills + 1 where name = ".. pc.name)
		end
Was soll da denn geupdated werden? In deiner Quest werden doch überhaupt keine Einträge erstellt
rollback is offline  
Old 01/18/2015, 21:35   #21
 
elite*gold: 0
Join Date: Jan 2015
Posts: 106
Received Thanks: 52
Quote:
Originally Posted by [Sensenmann] View Post
du hast geschrieben:


Was soll da denn geupdated werden? In deiner Quest werden doch überhaupt keine Einträge erstellt
Wofür extra eine Tabelle machen, wenn man einfach eine Spalte in der player Tabelle machen kann?
'Mahone is offline  
Thanks
1 User
Old 01/18/2015, 21:59   #22

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Quote:
Originally Posted by 'Mahone View Post
Wofür extra eine Tabelle machen, wenn man einfach eine Spalte in der player Tabelle machen kann?
Oh sry ... hab übersehen, dass du es über die player Tabelle gemacht hast ...
rollback is offline  
Old 02/10/2015, 01:11   #23
 
elite*gold: 0
Join Date: May 2014
Posts: 8
Received Thanks: 1
Danke , gj
mirceaciurcea is offline  
Old 02/10/2015, 19:56   #24
 
Himmelsgarde™'s Avatar
 
elite*gold: 0
Join Date: Feb 2015
Posts: 41
Received Thanks: 3
Was muss ich mit diesem "zum erstellen Code" machen ? Habe die Quest eingefügt.
Was muss noch gemacht werden jetzt?

Weiß nicht wohin damit:

Quote:
-- ----------------------------
-- Table structure for `pvp_kills`
-- ----------------------------
DROP TABLE IF EXISTS `pvp_kills`;
CREATE TABLE `pvp_kills` (
`name` text,
`kills` int(255) default NULL,
`pid` int(244) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Himmelsgarde™ is offline  
Old 02/10/2015, 20:20   #25

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
als query in die db
rollback is offline  
Old 02/12/2015, 08:39   #26
 
elite*gold: 1
The Black Market: 127/0/0
Join Date: Dec 2013
Posts: 3,467
Received Thanks: 720
Mich würde mal Interessieren welche Mijago für die Questlib + Die Funktion, die Spieler in der Rangliste auszugeben. damit gemeint ist also bei mir werden dort irgendwie nur Zahlen Ingame angezeigt aber keine Namen.
K.A.K.A.S.H.I is offline  
Old 02/12/2015, 09:03   #27

 
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
Du brauchst die Questlib von Mijago (genauer: die Questfunktion mysql_query).
Beim Vanilla Core und Viruz Core (ab 1.0.2) ist auch jeweils die Funktion eingebaut, jedoch heisst sie beim Viruz Core "mysql_direct_query()".
rollback is offline  
Old 02/12/2015, 14:45   #28
 
elite*gold: 1
The Black Market: 127/0/0
Join Date: Dec 2013
Posts: 3,467
Received Thanks: 720
Quote:
Originally Posted by [Sensenmann] View Post
Du brauchst die Questlib von Mijago (genauer: die Questfunktion mysql_query).
Beim Vanilla Core und Viruz Core (ab 1.0.2) ist auch jeweils die Funktion eingebaut, jedoch heisst sie beim Viruz Core "mysql_direct_query()".
Habe die Questlib von Mijago mit mysql_query aber werden Ingame keine Namen angezeigt sondern nur z.B 0-0-0
K.A.K.A.S.H.I is offline  
Old 02/12/2015, 15:17   #29
 
elite*gold: 0
Join Date: Feb 2009
Posts: 310
Received Thanks: 29
game vanilla error
RunState: LUA_ERROR: [string "pvp_ranking"]:7: attempt to call global `mysql_query' (a nil value) WITH ERRORCODE 1
bluedrago is offline  
Reply


Similar Threads Similar Threads
[Release]100% Funktionstüchtige PvP Rangliste, GM effect + Map 1 Design
10/12/2013 - Metin2 PServer Guides & Strategies - 33 Replies
Tagchen da mich viele Leute genervt haben und das Zeug brauchen release ich es mal spart euch die dummen kommentare für die die null erfahrung mit sowas haben is es ausreichend die Rangliste ist mit dem KillGui von .Avenue™ kombiniert also das müsstet ihr schon drinne haben is nicht schwer ;) aber denke mal es geht auch ohne :P Der Rest müsste eigentlich klar sein. erstmal die Query Navicat auf dein server connecten Account strg und Q Drücken dann das einfügen und auf run fertig by...
[Release]Ingame PvP Rangliste
06/22/2013 - Metin2 PServer Guides & Strategies - 29 Replies
Hier Release ich eine Ingame PvP Rangliste Die Query dazu müsst ihr euch selbst machen , jedoch sollte das nicht so schwer sein. *INFO* Alle Kilsl die von den Spieler gemacht werden , werden in der DB geloggt und addiert. Mann kann dann beim NPC nachschauen wie jeweils die Top Leute aus den Reichen stehen (Global , Rote, Blaues , Gelbes) Ich habe als Grundlage die Quest von Mijago benutzt die in seinem ersten Video geschrieben wurde. Ingame Rangliste. Hier ein riesen Danke an ihn.
[Release] Boss Rangliste by Corex
04/18/2013 - Metin2 PServer Guides & Strategies - 11 Replies
Hey Elitepvpers, hier release ich das Boss Ranglisten Script (v1.1) by Corex. Inhalt v1.1 : Azrael Wasserdrache Eishexe
[Release] Boss Rangliste by Corex
02/19/2013 - Metin2 Guides & Templates - 0 Replies
Please #Close



All times are GMT +2. The time now is 06:47.


Powered by vBulletin®
Copyright ©2000 - 2024, 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 ©2024 elitepvpers All Rights Reserved.