- 0
error me npc
-
Posts
-
By JulioPradosk8 · Posted
https://github.com/JulioPradoL2j/L2JDreamV2/commit/8f788b03c40404b72d7a321ef24e113f91a619ac Descrição Este é um sistema de Reset de Personagem Personalizado criado para servidores L2J, inspirado em mecânicas clássicas de MMORPGs com foco em progressão PvP. Totalmente configurável via XML, este sistema permite criar um ciclo de evolução contínuo, recompensando jogadores que atingem o ápice com benefícios e novas metas. Principais Funcionalidades Reset ativado ao atingir nível máximo, com requisitos de: Itens específicos Quantidade mínima de PvP Custo em moedas/itens Configuração via arquivo XML: Recompensas personalizáveis (itens, moedas, skills, etc) Redução de EXP ou retorno ao nível inicial Condições específicas para liberar o reset Sistema de Ranking: Rankings de Reset Diário e Mensal Premiação automática para os Top players Rankings reiniciam automaticamente no final do período Suporte a jogadores offline: Reset pode remover skills e aplicar recompensas direto no banco de dados Requisitos Técnicos Baseado em L2J DreamV2 / aCis 409 Compatível com bancos de dados MySQL Leitura de configuração via XML (resetData.xml) Explicação das Configurações Requisitos levelMax="80" → o jogador precisa atingir o nível 80. requiredPvps="0" → não exige PvP para resetar. expPenalty="0.8" → perde 20% da EXP total ao resetar. <item required="57-10000000;" /> → exige 10kk Adena. Recompensas Recompensa fixa por reset: 57-15000 → 15k Adena 6392-3 → 3 unidades de item com ID 6392 Recompensa por skill (exemplo): 3135-4 (até nível 4) 3130-2 (até nível 2) 3131-10 (até nível 10) Comandos para Administradores (Admin Commands) O sistema conta com comandos dedicados para encerrar manualmente os rankings de reset (diário ou mensal), forçando a distribuição imediata dos prêmios para os jogadores que se destacaram. Comandos Disponíveis Comando Descrição //reset_end_daily Finaliza manualmente o ranking diário e distribui os prêmios configurados. //reset_end_monthly Finaliza manualmente o ranking mensal e distribui os prêmios configurados. <?xml version="1.0" encoding="UTF-8"?> <list> <reset levelMax="80" requiredPvps="0" expPenalty="0.8"> <set rankingDisplayLimit="3" /> <set dailyPoints="2" /> <set monthlyPoints="1" /> <set removeResetSkills="true" /> <set logger="false" /> <requiredItems> <item required="57-10000000;" /> </requiredItems> <rewardItems> <item reward="57-15000;6392-3" skill="3135-4;3130-2;3131-10" /> </rewardItems> <prizes enable="true" type="DAILY" time="13:00"> <prize position="1" reward="57-15000;6392-3" /> <prize position="2" reward="57-10000;6392-2" /> <prize position="3" reward="57-5000;6392-1" /> </prizes> <prizes enable="true" type="MONTH" time="00:00"> <prize position="1" reward="57-15000;6392-3" /> <prize position="2" reward="57-10000;6392-2" /> <prize position="3" reward="57-5000;6392-1" /> </prizes> </reset> </list> -
By `NeverMore · Posted
This topic reminds me a bit of the old glory days! 😂 -
Funny part is, i wouldnt make the effort of downvoting you if you weren't constantly sniping my profile to downvote me, and then when i downvote back you cry about it LOL
-
Topics
Question
mikemaster
re magkes dn ktlvenw gt apla otan pataw panw sto npc m dixnei Quest me mple grammata tpt allo
import sys
from java.util import Iterator
from com.l2jserver import L2DatabaseFactory
from com.l2jserver.gameserver.model.quest import State
from com.l2jserver.gameserver.model.quest import QuestState
from com.l2jserver.gameserver.model.quest.jython import QuestJython as JQuest
qn = "50300_PKlist"
NPC = 36601
QuestId = 50300
MIN_LEVEL = 1
MAX_LEVEL = 85
QuestName = "PKlist"
QuestDesc = "custom"
InitialHtml = "1.htm"
DonateMaster = "This ain't no free service nubblet! Now get out of my hare... Get it, 'hare'? - That gets me every time!"
class Quest (JQuest) :
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
def onEvent(self,event,st):
htmltext = event
level = st.getPlayer().getLevel()
levelup = 86 - level
if level < MIN_LEVEL :
return"<html><head><body>No quicky for you! - Your to young shorty!</body></html>"
if level > MAX_LEVEL :
return"<html><head><body>No quicky for you! - Your to old fatty!</body></html>"
else:
#PK INFO
if event == "01":
con = L2DatabaseFactory.getInstance().getConnection()
total_asesinados = 0
htmltext_ini = "<html><head><title>PG-L2 PK INFO</title></head><body><table width=300><tr><td><font color =\"FF00FF\">Pos.</td><td><center><font color =\"FFFF00\">*** Player ***</color></center></td><td><center>*** Kill's ***</center></td></tr>"
htmltext_info =""
color = 1
pos = 0
pks = con.prepareStatement("SELECT char_name,pkkills FROM characters WHERE pkkills>0 and accesslevel=0 order by pkkills desc limit 50")
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 =\"00FFFF\">"
color = 2
htmltext_info = htmltext_info + "<tr><td><center><font color =\"FF00FF\">" + posstr + "</td><td><center>" + color_text + char_name +"</center></td><td><center>" + char_pkkills + "</center></td></tr>"
elif color == 2:
color_text = "<font color =\"FF0000\">"
color = 1
htmltext_info = htmltext_info + "<tr><td><center><font color =\"FF00FF\">" + posstr + "</td><td><center>" + color_text + char_name +"</center></td><td><center>" + char_pkkills + "</center></td></tr>"
htmltext_end = "</table><center><font color=\"FFFFFF\">" + "A Total of " + str(total_asesinados) + " Pk's.</center></body></html>"
htmltext_pklist = htmltext_ini + htmltext_info + htmltext_end
L2DatabaseFactory.close(con)
return htmltext_pklist
#PVP INFO
if event == "02":
con = L2DatabaseFactory.getInstance().getConnection()
total_asesinados = 0
htmltext_ini = "<html><head><title>PG-L2 PVP INFO</title></head><body><table width=300><tr><td><font color =\"FF00FF\">Pos.</td><td><center><font color =\"FFFF00\">*** Player ***</color></center></td><td><center>*** Kill's ***</center></td></tr>"
htmltext_info =""
color = 1
pos = 0
pks = con.prepareStatement("SELECT char_name,pvpkills FROM characters WHERE pvpkills>0 and accesslevel=0 order by pvpkills desc limit 50")
rs = pks.executeQuery()
while (rs.next()) :
char_name = rs.getString("char_name")
char_pvpkills = rs.getString("pvpkills")
total_asesinados = total_asesinados + int(char_pvpkills)
pos = pos + 1
posstr = str(pos)
if color == 1:
color_text = "<font color =\"00FFFF\">"
color = 2
htmltext_info = htmltext_info + "<tr><td><center><font color =\"FF00FF\">" + posstr + "</td><td><center>" + color_text + char_name +"</center></td><td><center>" + char_pvpkills + "</center></td></tr>"
elif color == 2:
color_text = "<font color =\"FF0000\">"
color = 1
htmltext_info = htmltext_info + "<tr><td><center><font color =\"FF00FF\">" + posstr + "</td><td><center>" + color_text + char_name +"</center></td><td><center>" + char_pvpkills + "</center></td></tr>"
htmltext_end = "</table><center><font color=\"FFFFFF\">" + "A Total of " + str(total_asesinados) + " PvP's.</center></body></html>"
htmltext_pklist = htmltext_ini + htmltext_info + htmltext_end
L2DatabaseFactory.close(con)
return htmltext_pklist
if htmltext != event:
st.exitQuest(1)
return htmltext
def onFirstTalk (self,npc,player):
st = player.getQuestState(qn)
if not st : st = self.newQuestState(player)
return InitialHtml
QUEST = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)
QUEST.addStartNpc(NPC)
QUEST.addFirstTalkId(NPC)
QUEST.addTalkId(NPC)
print "# PVP PK INFO Loaded"
3 answers to this question
Recommended Posts