problem with custom npc subclass (problem solved)

    Share

    lordeze

    Posts : 97
    Join date : 2013-05-07

    problem with custom npc subclass (problem solved)

    Post  lordeze on 7th May 2013, 04:32

    good at all. I have problems injecting a subclass custom npc to npc database is this:
    4shared.com / rar/8k18XyMB/subclassmaster.html?

    the problem is that I do not charge I have the database and import 850_subclass fail error.

    prove and posting the error lineage in several forums with no results so I refer to you.
    from already thank you for your help


    I'm from Argentina and if my English is wrong I apologize




    Last edited by lordeze on 10th May 2013, 06:46; edited 1 time in total
    avatar
    DanielaCZ

    Posts : 507
    Join date : 2013-01-07
    Age : 27
    Location : Newcastle Upon Tyne

    Re: problem with custom npc subclass (problem solved)

    Post  DanielaCZ on 7th May 2013, 15:41

    Your code is for freya you must remake it for C4 server. Post there what code you use for it (sql, 855_SubclassNpc _init code etc.) because you can't just copy and paste you must remake _init code and sql, file

    lordeze

    Posts : 97
    Join date : 2013-05-07

    Re: problem with custom npc subclass (problem solved)

    Post  lordeze on 7th May 2013, 19:23

    and try to modify the code but I have not the knowledge suficientes.por I ask your help please.
    here I leave the code
    aqui dejo el codigo
    Code:
    #By Foxer Para L2J Teon
    import sys
    from net.sf.l2j   import L2DatabaseFactory
    from net.sf.l2j.gameserver.model.actor.instance import L2PcInstance
    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

    qn = "850_Subclass"

    NPC=[7000]
    NVIDIA_ID  = 3435
    QuestId    = 850
    QuestName  = "Subclass"
    QuestDesc  = "quest"
    InitialHtml = "1.htm"

    print "importing quest: 850: Subclass"

    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()
               ClassId = st.getPlayer().getClassId()
          cantidad = st.getQuestItemsCount(NVIDIA_ID)

          if st.getPlayer().getLevel() == 75 :
                  lvl = 35
          if st.getPlayer().getLevel() == 76 :
                  lvl = 36
          if st.getPlayer().getLevel() == 77 :
                  lvl = 37
          if st.getPlayer().getLevel() == 78 :
                  lvl = 38
          if st.getPlayer().getLevel() == 79 :
                  lvl = 39
          if st.getPlayer().getLevel() == 80 :
                  lvl = 40
                    #F.Human
                    if ClassId in [ClassId.hellKnight, ClassId.phoenixKnight, ClassId.dreadnought, ClassId.duelist, ClassId.adventurer, ClassId.sagittarius]:
                  htmltext = "10.htm"
                    #M.Human
                    if ClassId in [ClassId.archmage, ClassId.soultaker, ClassId.arcanaLord, ClassId.cardinal, ClassId.hierophant]:
                  htmltext = "10.htm"
                    #F.Elf
                    if ClassId in [ClassId.evaTemplar, ClassId.swordMuse, ClassId.windRider, ClassId.moonlightSentinel]:
                  htmltext = "10.htm"
                    #M.Elf
                    if ClassId in [ClassId.elementalMaster, ClassId.mysticMuse, ClassId.evaSaint]:
                  htmltext = "10.htm"
                    #F.D.Elf
                    if ClassId in [ClassId.shillienTemplar, ClassId.spectralDancer, ClassId.ghostHunter, ClassId.ghostSentinel]:
                  htmltext = "10.htm"
                    #M.D.Elf
                    if ClassId in [ClassId.spectralMaster, ClassId.stormScreamer, ClassId.shillienSaint]:
                  htmltext = "10.htm"
                    #Orc
                    if ClassId in [ClassId.titan, ClassId.grandKhauatari, ClassId.dominator, ClassId.doomcryer]:
                  htmltext = "10.htm"
                    #Dwarf
                    if ClassId in [ClassId.fortuneSeeker, ClassId.maestro]:
                  htmltext = "10.htm"
          if st.getPlayer().getLevel() >= 80 :
             htmltext = "11.htm"
          if cantidad >= 3 :
                            htmltext = "7.htm"
          if st.getPlayer().getLevel() < 75 :
             htmltext = "8.htm"

          else:
             st.getPlayer().setTarget(st.getPlayer())

             #Hawkeye
                            if event == "1":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(9)
                     st.getPlayer().setBaseClass(9)
                st.getPlayer().broadcastUserInfo()
                st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #Treasure Hunter
                            if event == "2":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(8)
                     st.getPlayer().setBaseClass(8)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #Gladiator
                            if event == "3":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(2)
                     st.getPlayer().setBaseClass(2)
                st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #Warlord
                            if event == "4":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(3)
                     st.getPlayer().setBaseClass(3)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #Paladin
                            if event == "5":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(5)
                     st.getPlayer().setBaseClass(5)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #Dark Avenger
                            if event == "6":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(6)
                     st.getPlayer().setBaseClass(6)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #Prophet
                            if event == "7":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(17)
                     st.getPlayer().setBaseClass(17)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #Bishop
                            if event == "8":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(16)
                     st.getPlayer().setBaseClass(16)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #Warlock
                            if event == "9":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(14)
                     st.getPlayer().setBaseClass(14)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #Necromancer
                            if event == "10":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(13)
                     st.getPlayer().setBaseClass(13)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #Sorcerer
                            if event == "11":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(12)
                     st.getPlayer().setBaseClass(12)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #Silver Ranger
                            if event == "12":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(24)
                     st.getPlayer().setBaseClass(24)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #Plains Walker
                            if event == "13":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(23)
                     st.getPlayer().setBaseClass(23)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #SwordSinger
                            if event == "14":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(21)
                     st.getPlayer().setBaseClass(21)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #Temple Knight
                            if event == "15":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(20)
                     st.getPlayer().setBaseClass(20)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #Elven Elder
                            if event == "16":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(30)
                     st.getPlayer().setBaseClass(30)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #SpellSinger
                            if event == "17":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(27)
                     st.getPlayer().setBaseClass(27)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #Elemental Summoner
                            if event == "18":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(28)
                     st.getPlayer().setBaseClass(28)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #Phantom Ranger
                            if event == "19":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(37)
                     st.getPlayer().setBaseClass(37)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #Abyss Walker
                            if event == "20":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(36)
                     st.getPlayer().setBaseClass(36)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #BladeDancer
                            if event == "21":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(34)
                     st.getPlayer().setBaseClass(34)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #Shillien Knight
                            if event == "22":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(33)
                     st.getPlayer().setBaseClass(33)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #Shilien Elder
                            if event == "23":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(43)
                     st.getPlayer().setBaseClass(43)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #Spellhowler
                            if event == "24":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(40)
                     st.getPlayer().setBaseClass(40)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #Phantom Summoner
                            if event == "25":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(41)
                     st.getPlayer().setBaseClass(41)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #Tyrant
                            if event == "26":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                    st.getPlayer().setClassId(48)
                     st.getPlayer().setBaseClass(48)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #Destroyer
                            if event == "27":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(46)
                     st.getPlayer().setBaseClass(46)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #WarCryer
                            if event == "28":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(52)
                     st.getPlayer().setBaseClass(52)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #OverLord
                            if event == "29":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(51)
                     st.getPlayer().setBaseClass(51)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #WarSmith
                            if event == "30":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(57)
                     st.getPlayer().setBaseClass(57)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #Bounty Hunter
                            if event == "31":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(55)
                     st.getPlayer().setBaseClass(55)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)
             

             if htmltext != event:
                st.setState(State.COMPLETED)
                st.exitQuest(1)
          return htmltext


       def onTalk (self,npc,player):
         st = player.getQuestState(qn)
         htmltext = "<html><head><body>No tengo nada para decirte</body></html>"
         st.setState(State.STARTED)
         return InitialHtml

    QUEST= Quest(850,"850_Subclass","Subclass")


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

    DnR
    Admin
    Admin

    Posts : 985
    Join date : 2012-12-03

    Re: problem with custom npc subclass (problem solved)

    Post  DnR on 7th May 2013, 21:08

    First of all, you should change all states.
    For instance, State.STARTED should be STARTED, State.COMPLETED should be COMPLETED, etc.
    Here is something you should also correct:
    Code:

      def onTalk (self,npc,player):
          st = player.getQuestState(qn)
          htmltext = "<html><head><body>No tengo nada para decirte</body></html>"
          st.setState(State.STARTED)
          return InitialHtml

    The right way should be:
    Code:

      def onTalk (self,npc,st):
          htmltext = "<html><head><body>No tengo nada para decirte</body></html>"
          st.setState(STARTED)
          return InitialHtml

    Also, you should add those lines starting with + (don' t add + in the script, it' s to show you what to add):
    Code:

    QUEST= Quest(850,"850_Subclass","Subclass")
    +STARTED    = State('Started',    QUEST)
    +COMPLETED  = State('Completed', QUEST)

    lordeze

    Posts : 97
    Join date : 2013-05-07

    Re: problem with custom npc subclass (problem solved)

    Post  lordeze on 8th May 2013, 17:03

    I have problems, correct the mistake eventhough I found leave the code and the error corrected. please help

    Code:
    By Foxer Para L2J Teon
    import sys
    from net.sf.l2j   import L2DatabaseFactory
    from net.sf.l2j.gameserver.model.actor.instance import L2PcInstance
    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

    qn = "850_Subclass"

    NPC=[7000]
    NVIDIA_ID  = 3435
    QuestId    = 850
    QuestName  = "Subclass"
    QuestDesc  = "quest"
    InitialHtml = "1.htm"

    print "importing quest: 850: Subclass"

    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()
               ClassId = st.getPlayer().getClassId()
          cantidad = st.getQuestItemsCount(NVIDIA_ID)

          if st.getPlayer().getLevel() == 75 :
                  lvl = 35
          if st.getPlayer().getLevel() == 76 :
                  lvl = 36
          if st.getPlayer().getLevel() == 77 :
                  lvl = 37
          if st.getPlayer().getLevel() == 78 :
                  lvl = 38
          if st.getPlayer().getLevel() == 79 :
                  lvl = 39
          if st.getPlayer().getLevel() == 80 :
                  lvl = 40
                    #F.Human
                    if ClassId in [ClassId.hellKnight, ClassId.phoenixKnight, ClassId.dreadnought, ClassId.duelist, ClassId.adventurer, ClassId.sagittarius]:
                  htmltext = "10.htm"
                    #M.Human
                    if ClassId in [ClassId.archmage, ClassId.soultaker, ClassId.arcanaLord, ClassId.cardinal, ClassId.hierophant]:
                  htmltext = "10.htm"
                    #F.Elf
                    if ClassId in [ClassId.evaTemplar, ClassId.swordMuse, ClassId.windRider, ClassId.moonlightSentinel]:
                  htmltext = "10.htm"
                    #M.Elf
                    if ClassId in [ClassId.elementalMaster, ClassId.mysticMuse, ClassId.evaSaint]:
                  htmltext = "10.htm"
                    #F.D.Elf
                    if ClassId in [ClassId.shillienTemplar, ClassId.spectralDancer, ClassId.ghostHunter, ClassId.ghostSentinel]:
                  htmltext = "10.htm"
                    #M.D.Elf
                    if ClassId in [ClassId.spectralMaster, ClassId.stormScreamer, ClassId.shillienSaint]:
                  htmltext = "10.htm"
                    #Orc
                    if ClassId in [ClassId.titan, ClassId.grandKhauatari, ClassId.dominator, ClassId.doomcryer]:
                  htmltext = "10.htm"
                    #Dwarf
                    if ClassId in [ClassId.fortuneSeeker, ClassId.maestro]:
                  htmltext = "10.htm"
          if st.getPlayer().getLevel() >= 80 :
             htmltext = "11.htm"
          if cantidad >= 3 :
                            htmltext = "7.htm"
          if st.getPlayer().getLevel() < 75 :
             htmltext = "8.htm"

          else:
             st.getPlayer().setTarget(st.getPlayer())

             #Hawkeye
                            if event == "1":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(9)
                     st.getPlayer().setBaseClass(9)
                st.getPlayer().broadcastUserInfo()
                st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #Treasure Hunter
                            if event == "2":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(8)
                     st.getPlayer().setBaseClass(8)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #Gladiator
                            if event == "3":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(2)
                     st.getPlayer().setBaseClass(2)
                st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #Warlord
                            if event == "4":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(3)
                     st.getPlayer().setBaseClass(3)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #Paladin
                            if event == "5":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(5)
                     st.getPlayer().setBaseClass(5)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #Dark Avenger
                            if event == "6":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(6)
                     st.getPlayer().setBaseClass(6)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #Prophet
                            if event == "7":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(17)
                     st.getPlayer().setBaseClass(17)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #Bishop
                            if event == "8":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(16)
                     st.getPlayer().setBaseClass(16)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #Warlock
                            if event == "9":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(14)
                     st.getPlayer().setBaseClass(14)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #Necromancer
                            if event == "10":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(13)
                     st.getPlayer().setBaseClass(13)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #Sorcerer
                            if event == "11":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(12)
                     st.getPlayer().setBaseClass(12)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #Silver Ranger
                            if event == "12":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(24)
                     st.getPlayer().setBaseClass(24)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #Plains Walker
                            if event == "13":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(23)
                     st.getPlayer().setBaseClass(23)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #SwordSinger
                            if event == "14":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(21)
                     st.getPlayer().setBaseClass(21)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #Temple Knight
                            if event == "15":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(20)
                     st.getPlayer().setBaseClass(20)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #Elven Elder
                            if event == "16":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(30)
                     st.getPlayer().setBaseClass(30)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #SpellSinger
                            if event == "17":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(27)
                     st.getPlayer().setBaseClass(27)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #Elemental Summoner
                            if event == "18":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(28)
                     st.getPlayer().setBaseClass(28)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #Phantom Ranger
                            if event == "19":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(37)
                     st.getPlayer().setBaseClass(37)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #Abyss Walker
                            if event == "20":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(36)
                     st.getPlayer().setBaseClass(36)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #BladeDancer
                            if event == "21":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(34)
                     st.getPlayer().setBaseClass(34)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #Shillien Knight
                            if event == "22":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(33)
                     st.getPlayer().setBaseClass(33)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #Shilien Elder
                            if event == "23":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(43)
                     st.getPlayer().setBaseClass(43)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #Spellhowler
                            if event == "24":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(40)
                     st.getPlayer().setBaseClass(40)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #Phantom Summoner
                            if event == "25":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(41)
                     st.getPlayer().setBaseClass(41)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #Tyrant
                            if event == "26":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                    st.getPlayer().setClassId(48)
                     st.getPlayer().setBaseClass(48)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #Destroyer
                            if event == "27":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(46)
                     st.getPlayer().setBaseClass(46)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #WarCryer
                            if event == "28":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(52)
                     st.getPlayer().setBaseClass(52)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #OverLord
                            if event == "29":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(51)
                     st.getPlayer().setBaseClass(51)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #WarSmith
                            if event == "30":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(57)
                     st.getPlayer().setBaseClass(57)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)

             #Bounty Hunter
                            if event == "31":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(55)
                     st.getPlayer().setBaseClass(55)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(COMPLETED)
             

             if htmltext != event:
                st.setState(COMPLETED)
                st.exitQuest(1)
          return htmltext


       def onTalk (self,npc,player):
         htmltext = "<html><head><body>No tengo nada para decirte</body></html>"
         st.setState(STARTED)
         return InitialHtml

    QUEST= Quest(850,"850_Subclass","Subclass")


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


    DnR
    Admin
    Admin

    Posts : 985
    Join date : 2012-12-03

    Re: problem with custom npc subclass (problem solved)

    Post  DnR on 8th May 2013, 17:12

    No, you did not.

    DnR wrote:
    The right way should be:
    def onTalk (self,npc,st):
    htmltext = "<html><head><body>No tengo nada para decirte</body></html>"
    st.setState(STARTED)
    return InitialHtml

    Also, you should add those lines starting with + (don' t add + in the script, it' s to show you what to add):
    QUEST= Quest(850,"850_Subclass","Subclass")
    STARTED = State('Started', QUEST)
    COMPLETED = State('Completed', QUEST)


    lordeze

    Posts : 97
    Join date : 2013-05-07

    Re: problem with custom npc subclass (problem solved)

    Post  lordeze on 8th May 2013, 18:27

    stay so I do not understand that other lines should be modified.thanks for your help

    Code:
       def onTalk (self,npc,st):
         htmltext = "<html><head><body>No tengo nada para decirte</body></html>"
         st.setState(STARTED)
         return InitialHtml

    QUEST= Quest(850,"850_Subclass","Subclass")
    STARTED = State('Started', QUEST)
    COMPLETED = State('Completed', QUEST)


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

    I change these lines not if well


    Code:
             #Bounty Hunter
                            if event == "31":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(55)
                     st.getPlayer().setBaseClass(55)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState[strike](State.COMPLETED)[/strike]
             

             if htmltext != event:
                st.setState(State.COMPLETED)
                st.exitQuest(1)
          return htmltext

    Code:
             #Bounty Hunter
                            if event == "31":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(55)
                     st.getPlayer().setBaseClass(55)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState[strike](COMPLETED)[/strike]
             

             if htmltext != event:
                st.setState(COMPLETED)
                st.exitQuest(1)
          return htmltext

    DnR
    Admin
    Admin

    Posts : 985
    Join date : 2012-12-03

    Re: problem with custom npc subclass (problem solved)

    Post  DnR on 8th May 2013, 19:48

    Just copy this:

    Code:

    #Bounty Hunter
                            if event == "31":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                          st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(55)
                    st.getPlayer().setBaseClass(55)
                st.getPlayer().broadcastUserInfo()
                    st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                      return "9.htm"
                st.setState(COMPLETED)

    lordeze

    Posts : 97
    Join date : 2013-05-07

    Re: problem with custom npc subclass (problem solved)

    Post  lordeze on 8th May 2013, 22:22

    here I leave the image of the new error and corrected the code and the server loads fine but when selecting the npc and enter the "html 1" gives me some odea protecion error why?. and sorry if I'm annoying.

    [img][/img]




    and here I leave the modified code I'm using to check if I did something wrong to correct it:


    Code:
    #By Foxer Para L2J Teon
    import sys
    from net.sf.l2j   import L2DatabaseFactory
    from net.sf.l2j.gameserver.model.actor.instance import L2PcInstance
    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

    qn = "850_Subclass"

    NPC=[7000]
    NVIDIA_ID  = 3435
    QuestId    = 850
    QuestName  = "Subclass"
    QuestDesc  = "quest"
    InitialHtml = "1.htm"

    print "importing quest: 850: Subclass"

    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()
               ClassId = st.getPlayer().getClassId()
          cantidad = st.getQuestItemsCount(NVIDIA_ID)

          if st.getPlayer().getLevel() == 75 :
                  lvl = 35
          if st.getPlayer().getLevel() == 76 :
                  lvl = 36
          if st.getPlayer().getLevel() == 77 :
                  lvl = 37
          if st.getPlayer().getLevel() == 78 :
                  lvl = 38
          if st.getPlayer().getLevel() == 79 :
                  lvl = 39
          if st.getPlayer().getLevel() == 80 :
                  lvl = 40
                    #F.Human
                    if ClassId in [ClassId.hellKnight, ClassId.phoenixKnight, ClassId.dreadnought, ClassId.duelist, ClassId.adventurer, ClassId.sagittarius]:
                  htmltext = "10.htm"
                    #M.Human
                    if ClassId in [ClassId.archmage, ClassId.soultaker, ClassId.arcanaLord, ClassId.cardinal, ClassId.hierophant]:
                  htmltext = "10.htm"
                    #F.Elf
                    if ClassId in [ClassId.evaTemplar, ClassId.swordMuse, ClassId.windRider, ClassId.moonlightSentinel]:
                  htmltext = "10.htm"
                    #M.Elf
                    if ClassId in [ClassId.elementalMaster, ClassId.mysticMuse, ClassId.evaSaint]:
                  htmltext = "10.htm"
                    #F.D.Elf
                    if ClassId in [ClassId.shillienTemplar, ClassId.spectralDancer, ClassId.ghostHunter, ClassId.ghostSentinel]:
                  htmltext = "10.htm"
                    #M.D.Elf
                    if ClassId in [ClassId.spectralMaster, ClassId.stormScreamer, ClassId.shillienSaint]:
                  htmltext = "10.htm"
                    #Orc
                    if ClassId in [ClassId.titan, ClassId.grandKhauatari, ClassId.dominator, ClassId.doomcryer]:
                  htmltext = "10.htm"
                    #Dwarf
                    if ClassId in [ClassId.fortuneSeeker, ClassId.maestro]:
                  htmltext = "10.htm"
          if st.getPlayer().getLevel() >= 80 :
             htmltext = "11.htm"
          if cantidad >= 3 :
                            htmltext = "7.htm"
          if st.getPlayer().getLevel() < 75 :
             htmltext = "8.htm"

          else:
             st.getPlayer().setTarget(st.getPlayer())

             #Hawkeye
                            if event == "1":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(9)
                                    st.getPlayer().setBaseClass(9)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #Treasure Hunter
                            if event == "2":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(8)
                                    st.getPlayer().setBaseClass(8)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #Gladiator
                            if event == "3":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(2)
                                    st.getPlayer().setBaseClass(2)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #Warlord
                            if event == "4":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(3)
                                    st.getPlayer().setBaseClass(3)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #Paladin
                            if event == "5":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(5)
                                    st.getPlayer().setBaseClass(5)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #Dark Avenger
                            if event == "6":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(6)
                                    st.getPlayer().setBaseClass(6)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #Prophet
                            if event == "7":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(17)
                                    st.getPlayer().setBaseClass(17)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #Bishop
                            if event == "8":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(16)
                                    st.getPlayer().setBaseClass(16)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #Warlock
                            if event == "9":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(14)
                                    st.getPlayer().setBaseClass(14)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #Necromancer
                            if event == "10":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(13)
                                    st.getPlayer().setBaseClass(13)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #Sorcerer
                            if event == "11":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(12)
                                    st.getPlayer().setBaseClass(12)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #Silver Ranger
                            if event == "12":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(24)
                                    st.getPlayer().setBaseClass(24)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #Plains Walker
                            if event == "13":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(23)
                                    st.getPlayer().setBaseClass(23)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #SwordSinger
                            if event == "14":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(21)
                                    st.getPlayer().setBaseClass(21)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #Temple Knight
                            if event == "15":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(20)
                                    st.getPlayer().setBaseClass(20)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #Elven Elder
                            if event == "16":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(30)
                                    st.getPlayer().setBaseClass(30)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #SpellSinger
                            if event == "17":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(27)
                                    st.getPlayer().setBaseClass(27)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #Elemental Summoner
                            if event == "18":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(28)
                                    st.getPlayer().setBaseClass(28)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #Phantom Ranger
                            if event == "19":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(37)
                                    st.getPlayer().setBaseClass(37)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #Abyss Walker
                            if event == "20":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(36)
                                    st.getPlayer().setBaseClass(36)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #BladeDancer
                            if event == "21":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(34)
                                    st.getPlayer().setBaseClass(34)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #Shillien Knight
                            if event == "22":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(33)
                                    st.getPlayer().setBaseClass(33)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #Shilien Elder
                            if event == "23":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(43)
                                    st.getPlayer().setBaseClass(43)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #Spellhowler
                            if event == "24":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(40)
                                    st.getPlayer().setBaseClass(40)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #Phantom Summoner
                            if event == "25":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(41)
                                    st.getPlayer().setBaseClass(41)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #Tyrant
                            if event == "26":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(48)
                                    st.getPlayer().setBaseClass(48)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #Destroyer
                            if event == "27":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(46)
                                    st.getPlayer().setBaseClass(46)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #WarCryer
                            if event == "28":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(52)
                                    st.getPlayer().setBaseClass(52)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #OverLord
                            if event == "29":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(51)
                                    st.getPlayer().setBaseClass(51)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)

             #WarSmith
                            if event == "30":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(level-lvl))
                          st.player.getStat().addExp(-delexp)
                     st.getPlayer().setClassId(57)
                     st.getPlayer().setBaseClass(57)
                st.getPlayer().broadcastUserInfo()
                     st.giveItems(NVIDIA_ID,1)
                      st.playSound("ItemSound.quest_fanfare_2")
                       return "9.htm"
                st.setState(State.COMPLETED)

             #Bounty Hunter
                            if event == "31":
                                    delexp = (st.getPlayer().getStat().getExp()-st.getPlayer().getStat().getExpForLevel(level-lvl))
                                    st.getPlayer().getStat().addExp(-delexp)
                                    st.getPlayer().setClassId(55)
                                    st.getPlayer().setBaseClass(55)
                                    st.getPlayer().broadcastUserInfo()
                                    st.giveItems(NVIDIA_ID,1)
                                    st.playSound("ItemSound.quest_fanfare_2")
                                    return "9.htm"
                                    st.setState(COMPLETED)
             

             if htmltext != event:
                st.setState(State.COMPLETED)
                st.exitQuest(1)
          return htmltext

       def onTalk (self,npc,st):
              htmltext = "<html><head><body>No tengo nada para decirte</body></html>"
              st.setState(STARTED)
              return InitialHtml

    QUEST= Quest(850,"850_Subclass","Subclass")
    STARTED = State('Started', QUEST)
    COMPLETED = State('Completed', QUEST)


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


    THANKS FOR YOUR HELP¡¡¡¡¡¡

    DnR
    Admin
    Admin

    Posts : 985
    Join date : 2012-12-03

    Re: problem with custom npc subclass (problem solved)

    Post  DnR on 9th May 2013, 20:09

    Let me import the script in my test server and correct it when i have free time (Maybe tomorrow).
    Btw, this error is caused by htmls. Perhaps, buttons are using Kamael or newer icons.

    lordeze

    Posts : 97
    Join date : 2013-05-07

    Re: problem with custom npc subclass (problem solved)

    Post  lordeze on 10th May 2013, 06:45

    thank you all for the help the problem hera html and modify codes and modified the html codes goes well

    DnR
    Admin
    Admin

    Posts : 985
    Join date : 2012-12-03

    Re: problem with custom npc subclass (problem solved)

    Post  DnR on 10th May 2013, 14:15

    lordeze wrote:thank you all for the help the problem hera html and modify codes and modified the html codes goes well

    Good!Feel free to ask for help, if something goes wrong. ^_^
    avatar
    dandiarena

    Posts : 95
    Join date : 2013-06-20
    Age : 25
    Location : Argentina

    Re: problem with custom npc subclass (problem solved)

    Post  dandiarena on 23rd July 2013, 17:14

    i cant do work this npc, what is the solution? can you post it?

    Sponsored content

    Re: problem with custom npc subclass (problem solved)

    Post  Sponsored content


      Current date/time is 28th July 2017, 21:51