|
You last visited: Today at 06:47
Advertisement
[Release]PvP Rangliste
Discussion on [Release]PvP Rangliste within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.
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
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.
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:
Code:
DROP TABLE IF EXISTS `PvP_Ranking`;
CREATE TABLE `PvP_Ranking` (
`name` varchar(254) NOT NULL,
`kills` int(100) NOT NULL,
`reich` int(1) DEFAULT NULL,
PRIMARY KEY (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
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().."';")
|
|
|
01/18/2015, 21:02
|
#17
|
elite*gold: 0
Join Date: Jan 2015
Posts: 106
Received Thanks: 52
|
Quote:
Originally Posted by [Sensenmann]
du willst nicht vorhandene einträge updaten?
|
Was sollte ich deiner Meinung nach denn updaten?
|
|
|
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
Was sollte ich deiner Meinung nach denn updaten?
|
vorhandene einträge ... nicht vorhandene kann man auch nicht updaten
|
|
|
01/18/2015, 21:06
|
#19
|
elite*gold: 0
Join Date: Jan 2015
Posts: 106
Received Thanks: 52
|
Quote:
Originally Posted by [Sensenmann]
vorhandene einträge ... nicht vorhandene kann man auch nicht updaten
|
Welche vorhandenen Einträge sollte man wann wieso bearbeiten?
|
|
|
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
Welche vorhandenen Einträge sollte man wann wieso bearbeiten?
|
du hast geschrieben:
Quote:
Originally Posted by 'Mahone
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
|
|
|
01/18/2015, 21:35
|
#21
|
elite*gold: 0
Join Date: Jan 2015
Posts: 106
Received Thanks: 52
|
Quote:
Originally Posted by [Sensenmann]
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?
|
|
|
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
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 ...
|
|
|
02/10/2015, 01:11
|
#23
|
elite*gold: 0
Join Date: May 2014
Posts: 8
Received Thanks: 1
|
Danke , gj
|
|
|
02/10/2015, 19:56
|
#24
|
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;
|
|
|
|
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
|
|
|
02/12/2015, 08:39
|
#26
|
elite*gold: 1
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.
|
|
|
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()".
|
|
|
02/12/2015, 14:45
|
#28
|
elite*gold: 1
Join Date: Dec 2013
Posts: 3,467
Received Thanks: 720
|
Quote:
Originally Posted by [Sensenmann]
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
|
|
|
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
|
|
|
|
|
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.
|
|