Secret Experience

Secret Experience (https://secretexperience.net/)
-   [L2J] Dúvidas (https://secretexperience.net/l2j-duvidas/)
-   -   [Interlude] Configuração dos imports de um npc (https://secretexperience.net/l2j-duvidas/21873-configuracao-dos-imports-de-um-npc.html)

BrunoCrusher 29-05-2010 04:32 PM

Configuração dos imports de um npc
 
Pessoal eu baixei um npc q mostra ingame o rank pk pvp,
Mas pelo q eu li aki eu nao to sabendo arrumar os imports do npc
se alguem souber como se faz pra ajeitar os imports da uma ajudinha ai.... o npc e bem legal gostaria de telo no server


o link do npc é
[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]

a rev q eu uso é teon rev 641
[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]


os meus imports estao assim:
# *************************
# PKlist Online
# Mi primer gran programa en Python, 4 de Julio del 2008
# Este Script es para mostrar Online y por orden, los PKs del server.
# El problema que viene luego es la longitud del HTML, uno demasiado grande crasheara al cliente.
# *************************

import sys
from java.util import Iterator
from com.l2jfree.tools.random import Rnd
from com.l2jfree.gameserver.model.quest import State
from com.l2jfree.gameserver.model.quest import QuestState
from com.l2jfree.gameserver.model.quest.jython import QuestJython as JQuest
from com.l2jfree.gameserver.network.serverpackets import CreatureSay
from com.l2jfree import L2DatabaseFactory

print "importing custom: 50300_PKlist"


Eu ja add na script.cfg

# Custom
custom/3995_echo/__init__.py
custom/4000_ShadowWeapons/__init__.py
custom/5000_MissQueen/__init__.py
custom/7000_HeroItems/__init__.py
custom/8000_RaidbossInfo/__init__.py
custom/8001_NpcLocationInfo/__init__.py
custom/50300_PKlist/__init__.py
custom/6050_KetraOrcSupport/__init__.py
custom/6051_VarkaSilenosSupport/__init__.py

Ajuda aee por favor pessoal, ja tentei de todos os jeitos mas nao manjo de imports OBRIGADO pela atenção:goofy:

Inspector 29-05-2010 04:37 PM

@BrunoCrusher

Citação:

import sys
from java.util import Iterator
from net.sf.l2j.gameserver.util import Rnd
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
os imports do teon fica como citei acima

BrunoCrusher 29-05-2010 06:04 PM

deu certo mas quando clica no pvp ou no pk aparece isso
[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]

Inspector 29-05-2010 06:58 PM

como esta escrito deu script error, posta ai so o script do npc pra eu olhar e me fala o ID do npc por favor pra eu poder olhar

BrunoCrusher 30-05-2010 12:10 AM

Código:

# *************************
# PKlist Online
# Editado por ->Luca<-
# Mi primer gran programa en Python, 4 de Julio del 2008
# Este Script es para mostrar Online y por orden, los PKs del server.
# El problema que viene luego es la longitud del HTML, uno demasiado grande crasheara al cliente.
# *************************

import sys
from java.util import Iterator
from net.sf.l2j.gameserver.util                  import Rnd
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

print "importing custom: 50300_PKlist"

# ***************************************
# Inicializacion de Variables del Quest *
# ***************************************

NPC=[50300]
Precio_ID  = 57

QuestId    = 50300
QuestName  = "PKlist"
QuestDesc  = "custom"
InitialHtml = "1.htm"

# ************************
# Creando la Clase Quest *
# ************************

class Quest (JQuest) :

        def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)

        # ***********************
        # Si hablas con el NPC: *
        # ***********************
        def onTalk (self,npc,player):
                return InitialHtml
        # ***********************

        # *****************************************************
        # Ahora gobernamos los eventos que vienen desde el HTML
        # *****************************************************
        def onEvent(self,event,st):
                htmltext = event
                cantidad_pago = st.getQuestItemsCount(Precio_ID)
               
                # *********
                # PK info *
                # *********
               
                if event == "1" and cantidad_pago >= 3000 :
                        st.takeItems(Precio_ID,3000)
                        total_asesinados = 0
                        htmltext_ini = "<html><head><title>Pk Info Online</title></head><body><table width=300><tr><td><font color =\"FF00FF\">Pos.</td><td><center><font color =\"FFFF00\">*** Player ***</color></center></td><td><center>*** Kills ***</center></td></tr>"
                        htmltext_info =""                       
                        color = 1
                        pos = 0
                        con = L2DatabaseFactory.getInstance().getConnection(None)
                        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
                        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" and cantidad_pago >= 3000 :
                        st.takeItems(Precio_ID,3000)
                        total_asesinados = 0
                        htmltext_ini = "<html><head><title>PvP info Online</title></head><body><table width=300><tr><td><font color =\"FF00FF\">Pos.</td><td><center><font color =\"FFFF00\">*** Player ***</color></center></td><td><center>*** Kills ***</center></td></tr>"
                        htmltext_info =""                       
                        color = 1
                        pos = 0
                        con = L2DatabaseFactory.getInstance().getConnection(None)
                        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_pkkills = rs.getString("pvpkills")
                                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) + " Kills.</center></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" and cantidad_pago >= 100000 :
                        st.takeItems(Precio_ID,100000)
                        total_cantidad = 0
                        htmltext_ini = "<html><head><title>Adena info Online</title></head><body><table width=300><tr><td><font color =\"FF00FF\">Pos.</td><td><center><font color =\"FFFF00\">*** Name ***</color></center></td><td><center>*** Adenas ***</center></td></tr>"
                        htmltext_info =""                       
                        color = 1
                        pos = 0
                        con = L2DatabaseFactory.getInstance().getConnection(None)
                        pks = con.prepareStatement("SELECT count,owner_id FROM items WHERE item_id=57 order by count desc limit 50")
                        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 =\"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>" + cantidad + "</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>" + cantidad + "</center></td></tr>"
                        htmltext_end = "</table><center><font color=\"FFFFFF\">" + "Los TOPS suman " + str(total_cantidad) + " adenas.</center></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

       
# *************************************************
# Insertando Quest en la lista de Quest disponibles
# *************************************************

QUEST      = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)


for npcId in NPC:
        QUEST.addStartNpc(npcId)
        QUEST.addTalkId(npcId)


Inspector 30-05-2010 12:25 AM

bom vamos la
pelo que observei esta correto o scripts entao vamos aos passos que vc deve tomar pra adicionar o NPC e ver se nao esqueceu de algo

1 Passo: Adicionar SQL no Navicat
2 Passo: Colocar os Arquivos na Pasta data\scripts\custom
3 Passo: Adicionar no __init__py da pasta Custom a seguinte Linha
Citação:

__all__ = [
'3995_echo',
'4000_ShadowWeapons',
'5000_MissQueen',
'7000_HeroItems',
'8000_RaidbossInfo',
'8001_NpcLocationInfo',
'6050_KetraOrcSupport',
'6051_VarkaSilenosSupport',
'8804_NpcHero',
'9999_NPCBuffer',
'9912_NPCBuffer',
'9998_PetBuffer',
'50300_PKlist',
'8204_NpcNoblesse',
'99940_SafeEnchant'
]
print ""
print "importing custom data ..."
for name in __all__ :
try :
__import__('data.jscript.custom.'+name,globals(), locals(), ['__init__'], -1)
except:
print "failed to import quest : ",name
print "... done"
print ""

4 Passo: Colocar o HTML dentro da Pasta default
5 Passo: Adicionar a seguinte linha no arquivo script.cfg
Citação:

# Custom
custom/3995_echo/__init__.py
custom/4000_ShadowWeapons/__init__.py
custom/5000_MissQueen/__init__.py
custom/7000_HeroItems/__init__.py
custom/8000_RaidbossInfo/__init__.py
custom/8001_NpcLocationInfo/__init__.py
custom/50300_PKlist/__init__.py
custom/6050_KetraOrcSupport/__init__.py
custom/6051_VarkaSilenosSupport/__init__.py
Bom se Seguir todos os passos nao tera problema em adicionar o NPC

BrunoCrusher 30-05-2010 12:38 AM

Fiz tudo certo mas nao seionde vai isso ai debaixo, como eu faço pra add isso??? ja procurei aki e nao achei essa linha

__all__ = [
'3995_echo',
'4000_ShadowWeapons',
'5000_MissQueen',
'7000_HeroItems',
'8000_RaidbossInfo',
'8001_NpcLocationInfo',
'6050_KetraOrcSupport',
'6051_VarkaSilenosSupport',
'8804_NpcHero',
'9999_NPCBuffer',
'9912_NPCBuffer',
'9998_PetBuffer',
'50300_PKlist',
'8204_NpcNoblesse',
'99940_SafeEnchant'
]
print ""
print "importing custom data ..."
for name in __all__ :
try :
__import__('data.jscript.custom.'+name,globals(), locals(), ['__init__'], -1)
except:
print "failed to import quest : ",name
print "... done"
print ""

Inspector 30-05-2010 12:49 AM

amigo
o arquivo __initi__.py fica dentro da pasta custom dai sim vc adiciona a linha como esta acima porem ali em cima e so o exemplo de um apck q abri do teon pra te ajudar, vc tem que acahr dentro da pasta custom e adicionar a linha '50300_PKlist',

BrunoCrusher 30-05-2010 01:04 AM

Eu entendi q tu pegou um exemplo, mas eu so nao sei onde eu coloco essa parte
desculpe minha ignorancia e muito obrigado por estar me ajudando...

__all__ = [
'3995_echo',
'4000_ShadowWeapons',
'5000_MissQueen',
'7000_HeroItems',
'8000_RaidbossInfo',
'8001_NpcLocationInfo',
'6050_KetraOrcSupport',
'6051_VarkaSilenosSupport',
'8804_NpcHero',
'9999_NPCBuffer',
'9912_NPCBuffer',
'9998_PetBuffer',
'50300_PKlist', <<---- Isso aki é q eu nao sei onde vai
'8204_NpcNoblesse',
'99940_SafeEnchant'
]
print ""
print "importing custom data ..."
for name in __all__ :
try :
__import__('data.jscript.custom.'+name,globals(), locals(), ['__init__'], -1)
except:
print "failed to import quest : ",name
print "... done"
print ""

Tenho q mudar aki??


C:\Documents and Settings\Bruno\Desktop\Server\L2JTeon_gameserver\d ata\scripts\custom\50300_PKlist

import sys
from java.util import Iterator
from net.sf.l2j.gameserver.util import Rnd
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

print "importing custom: 50300_PKlist"

# ***************************************
# Inicializacion de Variables del Quest *
# ***************************************

NPC=[50300]
Precio_ID = 57

QuestId = 50300
QuestName = "PKlist"
QuestDesc = "custom"
InitialHtml = "1.htm"


Pq em:
C:\Documents and Settings\Bruno\Desktop\Server\L2JTeon_gameserver\d ata

# Custom
custom/3995_echo/__init__.py
custom/4000_ShadowWeapons/__init__.py
custom/5000_MissQueen/__init__.py
custom/7000_HeroItems/__init__.py
custom/8000_RaidbossInfo/__init__.py
custom/8001_NpcLocationInfo/__init__.py
custom/50300_PKlist/__init__.py
custom/6050_KetraOrcSupport/__init__.py
custom/6051_VarkaSilenosSupport/__init__.py

eu ja mudei

Inspector 30-05-2010 01:12 AM

Citação:

print "importing custom: 50300_PKlist"
nao essa linha somente vai ser carreada no seu GS mostrando que o npc foi carregado ou seja nao precisa ser alterada somente o que psotei no pequeno tutorial e nescessario que se altere


Horários baseados na GMT -3. Agora são 03:22 AM.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.0