#Jython-based Top PvP Manger
import sys
from java.util import Iterator
from net.sf.l2j.gameserver.model.quest import State
from net.sf.l2j.gameserver.model.quest import QuestState
from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest
from net.sf.l2j.gameserver.network.serverpackets import CreatureSay
from net.sf.l2j import L2DatabaseFactory
# ***************************************
# Info of custom quest *
# ***************************************
qn = "7206_CustomInfo"
NPCS = [7206]
Precio_ID = 57
QuestId = 7206
QuestName = "CustomInfo"
QuestDesc = "custom"
InitialHtml = "1.htm"
# ***************************************
# Jython Code *
# ***************************************
class Quest (JQuest) :
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
def onTalk (self,npc,player):
return InitialHtml
def onEvent(self,event,st):
htmltext = event
cantidad_pago = st.getQuestItemsCount(Precio_ID)
# *********
# PK info *
# *********
if event == "1" :
total_asesinados = 0
htmltext_ini = "<html><head><title>TOP PK</title></head><body><table width=300><tr><td><font color =\"FF0000\"><center>Pos.</center></td><td><center><font color =\"FF0000\">Player name</color></center></td><td><center>Kills</center></td></tr>"
htmltext_info =""
color = 1
pos = 0
con = L2DatabaseFactory.getInstance().getConnection()
pks = con.prepareStatement("SELECT char_name,pkkills FROM characters WHERE pkkills>0 and accesslevel=0 order by pkkills desc limit 15")
rs = pks.executeQuery()
while (rs.next()) :
char_name = rs.getString("char_name")
char_pkkills = rs.getString("pkkills")
total_asesinados = total_asesinados + int(char_pkkills)
pos = pos + 1
posstr = str(pos)
if color == 1:
color_text = "<font color =\"FFFFFF\">"
color = 2
htmltext_info = htmltext_info + "<tr><td><center><font color =\"FFFFFF\"><center>" + posstr + "</center></td><td><center>" + color_text + char_name +"</center></td><td><center>" + char_pkkills + "</center></td></tr>"
elif color == 2:
color_text = "<font color =\"23ADC2\">"
color = 1
htmltext_info = htmltext_info + "<tr><td><center><font color =\"23ADC2\">" + posstr + "</td><td><center>" + color_text + char_name +"</center></td><td><center>" + char_pkkills + "</center></td></tr>"
htmltext_end = "</table></body></html>"
htmltext_pklist = htmltext_ini + htmltext_info + htmltext_end
con.close()
return htmltext_pklist
elif event == "1" and cantidad_pago < 3000 :
htmltext = "<html><head><title>PK info Online</title></head><body><font color =\"FF0000\">Primero pagame...!! son 3000 adenas.</body></html>"
return htmltext
# **********
# PvP info *
# **********
if event == "2" :
total_asesinados = 0
htmltext_ini = "<html><head><title>TOP PvP</title></head><body><table width=300><tr><td><font color =\"FF0000\"><center>Pos.</center></td><td><center><font color =\"FF0000\">Player name</color></center></td><td><center>Kills</center></td></tr>"
htmltext_info =""
color = 1
pos = 0
con = L2DatabaseFactory.getInstance().getConnection()
pks = con.prepareStatement("SELECT char_name,pvpkills FROM characters WHERE pvpkills>0 and accesslevel=0 order by pvpkills desc limit 15")
rs = pks.executeQuery()
while (rs.next()) :
char_name = rs.getString("char_name")
char_pkkills = rs.getString("pvpkills")
total_asesinados = total_asesinados + int(char_pkkills)
pos = pos + 1
posstr = str(pos)
if color == 1:
color_text = "<font color =\"FFFFFF\">"
color = 2
htmltext_info = htmltext_info + "<tr><td><center><font color =\"FFFFFF\">" + posstr + "</td><td><center>" + color_text + char_name +"</center></td><td><center>" + char_pkkills + "</center></td></tr>"
elif color == 2:
color_text = "<font color =\"23ADC2\">"
color = 1
htmltext_info = htmltext_info + "<tr><td><center><font color =\"23ADC2\">" + posstr + "</td><td><center>" + color_text + char_name +"</center></td><td><center>" + char_pkkills + "</center></td></tr>"
htmltext_end = "</table></body></html>"
htmltext_pklist = htmltext_ini + htmltext_info + htmltext_end
con.close()
return htmltext_pklist
elif event == "2" and cantidad_pago < 3000 :
htmltext = "<html><head><title>PK info Online</title></head><body><font color =\"FF0000\">Primero pagame...!! son 3000 adenas.</body></html>"
return htmltext
# *************
# Adenas info *
# *************
if event == "3" :
total_cantidad = 0
htmltext_ini = "<html><head><title>Top Adena</title></head><body><table width=300><tr><td><font color =\"FF0000\"><center>Pos.</center></td><td><center><font color =\"FF0000\">Player name</color></center></td><td><center>Adenas</center></td></tr>"
htmltext_info =""
color = 1
pos = 0
con = L2DatabaseFactory.getInstance().getConnection()
pks = con.prepareStatement("SELECT count,owner_id FROM items WHERE item_id=57 order by count desc limit 20")
rs = pks.executeQuery()
while (rs.next()) :
cantidad = rs.getString("count")
pj_id = rs.getString("owner_id")
total_cantidad = total_cantidad + long(cantidad)
pos = pos + 1
posstr = str(pos)
charname = con.prepareStatement("SELECT char_name FROM characters WHERE charId=" + pj_id)
rs2 = charname.executeQuery()
while (rs2.next()) :
char_name = rs2.getString("char_name")
if color == 1:
color_text = "<font color =\"FFFFFF\">"
color = 2
htmltext_info = htmltext_info + "<tr><td><center><font color =\"FFFFFF\">" + posstr + "</td><td><center>" + color_text + char_name +"</center></td><td><center>" + cantidad + "</center></td></tr>"
elif color == 2:
color_text = "<font color =\"23ADC2\">"
color = 1
htmltext_info = htmltext_info + "<tr><td><center><font color =\"23ADC2\">" + posstr + "</td><td><center>" + color_text + char_name +"</center></td><td><center>" + cantidad + "</center></td></tr>"
htmltext_end = "</table></body></html>"
htmltext_pklist = htmltext_ini + htmltext_info + htmltext_end
con.close()
return htmltext_pklist
elif event == "3" and cantidad_pago < 3000 :
htmltext = "<html><head><title>Adenas info Online</title></head><body><font color =\"FF0000\">Primero pagame...!! son 100k adenas.</body></html>"
return htmltext
# *************
# Nobless info *
# *************
if event == "4" :
total_asesinados = 0
htmltext_ini = "<html><head><title>Top Nobless order by PvP</title></head><body><table width=300><tr><td><center><font color =\"FF0000\">Pos.</td></center><td><center><font color =\"FF0000\">Player name</color></center></td></tr>"
htmltext_info =""
color = 1
pos = 0
con = L2DatabaseFactory.getInstance().getConnection()
pks = con.prepareStatement("SELECT char_name,pkkills,nobless FROM characters WHERE pkkills>0 and accesslevel=0 order by pkkills desc limit 10")
rs = pks.executeQuery()
while (rs.next()) :
char_name = rs.getString("char_name")
char_pkkills = rs.getString("nobless")
pos = pos + 1
posstr = str(pos)
if color == 1:
color_text = "<font color =\"FFFFFF\">"
color = 2
htmltext_info = htmltext_info + "<tr><td><center><font color =\"FFFFFF\">" + posstr + "</td><td><center>" + color_text + char_name +"</center></td></tr>"
elif color == 2:
color_text = "<font color =\"23ADC2\">"
color = 1
htmltext_info = htmltext_info + "<tr><td><center><font color =\"23ADC2\">" + posstr + "</td><td><center>" + color_text + char_name +"</center></td></tr>"
htmltext_end = "</table></body></html>"
htmltext_pklist = htmltext_ini + htmltext_info + htmltext_end
con.close()
return htmltext_pklist
elif event == "4" and cantidad_pago < 3000 :
htmltext = "<html><head><title>PK info Online</title></head><body><font color =\"FF0000\">Primero pagame...!! son 3000 adenas.</body></html>"
return htmltext
# **********
# Clan Top *
# **********
if event == "5" :
total_asesinados = 0
htmltext_ini = "<html><head><title>TOP Clan</title></head><body><table width=300><tr><td><font color =\"FF0000\"><center>Pos.</center></td><td><center><font color =\"FF0000\">Clan name</color></center></td><td><center>Level</center></td></tr>"
htmltext_info =""
color = 1
pos = 0
con = L2DatabaseFactory.getInstance().getConnection()
pks = con.prepareStatement("SELECT clan_name,clan_level,reputation_score FROM clan_data WHERE clan_level>0 order by clan_level desc limit 10")
rs = pks.executeQuery()
while (rs.next()) :
char_name = rs.getString("clan_name")
char_pkkills = rs.getString("clan_level")
total_asesinados = total_asesinados + int(char_pkkills)
pos = pos + 1
posstr = str(pos)
if color == 1:
color_text = "<font color =\"FFFFFF\">"
color = 2
htmltext_info = htmltext_info + "<tr><td><center><font color =\"FFFFFF\">" + posstr + "</td><td><center>" + color_text + char_name +"</center></td><td><center>" + char_pkkills + "</center></td></tr>"
elif color == 2:
color_text = "<font color =\"23ADC2\">"
color = 1
htmltext_info = htmltext_info + "<tr><td><center><font color =\"23ADC2\">" + posstr + "</td><td><center>" + color_text + char_name +"</center></td><td><center>" + char_pkkills + "</center></td></tr>"
htmltext_end = "</table></body></html>"
htmltext_pklist = htmltext_ini + htmltext_info + htmltext_end
con.close()
return htmltext_pklist
elif event == "5" and cantidad_pago < 3000 :
htmltext = "<html><head><title>PK info Online</title></head><body><font color =\"FF0000\">Primero pagame...!! son 3000 adenas.</body></html>"
return htmltext
QUEST = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)
for npcId in NPCS:
QUEST.addStartNpc(npcId)
QUEST.addTalkId(npcId)