A Project for Chronicle 4 based on L2JServer.


    Looking for this script - NPC Subclass by dandiarena python

    Share
    avatar
    Reynald0

    Posts : 15
    Join date : 2015-05-02
    Location : México

    Looking for this script - NPC Subclass by dandiarena python

    Post  Reynald0 on 19th December 2015, 08:33

    Code:

    #####################
    ### By DANDIARENA ###
    #####################

    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          = "2014_Subclass"
    NPC         = [7000]
    NVIDIA_ID   = 3435
    QuestId     = 2014
    QuestName   = "Subclass"
    QuestDesc   = "custom"
    InitialHtml = "1.htm"
    lvl1 = 78
    cantidaddesub = 3
    print "NPC SUBLASES"

    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)

                    #Detector de 3ra profesión
            #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"

            #Limitador de Subclasses
            if cantidad >= cantidaddesub: #Cantidad de subclasses habilitadas
                            htmltext = "7.htm"

                    #Limitador de nivel minimo
            if st.getPlayer().getLevel() < 75 :       #Nivel minimo permitido para hacer Subclasses
                htmltext = "8.htm"

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

                #Hawkeye
                            if event == "1":
                                    delexp = (st.player.getStat().getExpForLevel(lvl1)) #40 es el nivel al q baja el pj despues de recibir la subclass
                        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(lvl1))
                     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(lvl1))
                     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(lvl1))
                     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(lvl1))
                     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(lvl1))
                     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(lvl1))
                     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(lvl1))
                     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(lvl1))
                     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(lvl1))
                     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(lvl1))
                     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(lvl1))
                     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(lvl1))
                     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(lvl1))
                     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(lvl1))
                     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(lvl1))
                     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(lvl1))
                     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(COMPLETED)

                #Elemental Summoner
                            if event == "18":
                                    delexp = (st.player.getStat().getExp()-st.player.getStat().getExpForLevel(lvl1))
                     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(lvl1))
                     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(lvl1))
                     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(lvl1))
                     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(lvl1))
                     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(lvl1))
                     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(lvl1))
                     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(lvl1))
                     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(lvl1))
                     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(lvl1))
                     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(lvl1))
                     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(lvl1))
                     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(lvl1))
                     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(lvl1))
                     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,st):
           htmltext = "No puedes hacer mas subclass"
           st.setState(STARTED)
           return InitialHtml
          
    QUEST       = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)
    CREATED=State('Start',QUEST)
    STARTED=State('Started',QUEST)
    COMPLETED=State('Completed',QUEST)


    QUEST.setInitialState(CREATED)

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

      Current date/time is 19th November 2017, 02:50