- 0
Hello i need some help
-
Posts
-
By Advertising · Posted
L2REBORN x10 - 1gb - 4.2$ l2reborn x1 ( signature ) - 1kk - 1.3$ LU4 - 1kk - 2.3$ MASTERWORRK - 1kk - 3.8kk discord - adver745645 -
I haven't tryied the subclass system because i will not use it but i can check it, for sure it has some dublicate ai's in npcdata.txt (two monsters have the same ai) so you need to change them, you can find them from other pack because it's easier that way. I can send you the system, i guess there is no point to send the whole client because my client is changing to c3 but also the pack reads specific files from the system thats why some people may get disconected when they are trying to login. https://www.mediafire.com/file/4nd8fb9nwmfmdb0/System.rar/file
-
Dear friends! We are constantly growing and developing, and we are finally ready to offer you the opportunity to integrate advertising across all SOCNET projects! Our service provides the opportunity to place ads on the website socnet.store, in our SMM panel socnet.pro, in Telegram bots socnet.shop and socnet.cc (celebrity bot), as well as in another new (currently secret) project. Each platform provides detailed analytics and information about available ad banners. The document below contains all detailed information in two languages — Russian and English. Here you will find answers to frequently asked questions about exact ad placement locations, integration costs, purchasing process, restrictions, and many other details. The document also contains a table with the current advertising placement queue in our projects. Document with detailed information: https://docs.google.com/document/d/1u4ro3fLkjfyvcp1Eu64rkgQy2Xl5lj87_1W25cVsqPM/edit?usp=sharing Thank you for your attention and support! Sincerely, the SOCNET team. Active project links: Digital Goods Store (Website): Go Store Telegram Bot: Go – convenient access to the store through Telegram messenger. Telegram Bot for purchasing Telegram Stars: Go – fast and profitable purchase of stars in Telegram. SMM Panel: Go – promotion of your social media accounts. We would like to present to you the current list of promotions and special offers for purchasing goods and services from our platform: 1. Promo code OCTOBER2025 (8% discount) for purchases in our store (Website, Bot) during October! You can also use the promo code for your first purchase: SOCNET (15% discount) 2. Get $1 credited to your store balance or a 10–20% discount — simply post your username after registration on our website using the following format: "SEND ME BONUS, MY USERNAME IS..." — post it in our forum thread! 3. Get $1 for your first SMM Panel trial — just open a ticket titled "Get Trial Bonus" on our website (Support). 4. Weekly Telegram Stars giveaways in our Telegram channel and in our Stars purchasing bot! News: ➡ Telegram Channel: https://t.me/accsforyou_shop ➡ WhatsApp Channel: https://chat.whatsapp.com/K8rBy500nA73z27PxgaJUw?mode=ems_copy_t ➡ Discord Server: https://discord.gg/y9AStFFsrh Contacts and Support: ➡ Telegram: https://t.me/socnet_support ➡ WhatsApp: https://wa.me/79051904467 ➡ Discord: socnet_support ➡ ✉ Email: solomonbog@socnet.store
-
-
Topics

Question
kuperis
Hi guyz,
I have a Problem with subclass quest look, i complete quest a kill a baium.. i get red pipete knife i go to Hardis academy to kaspar i push quest he write this:
i using L2jfree Gracia Part 2 server
where is a problem? thanks :]
here is 234_FatesWhisper, __init__ file
# Made by Fulminus, version 0.1 import sys from com.l2jfree.gameserver.model.quest import State from com.l2jfree.gameserver.model.quest import QuestState from com.l2jfree.gameserver.model.quest.jython import QuestJython as JQuest qn = "234_FatesWhisper" PIPETTE_KNIFE = 4665 REIRIAS_SOUL_ORB = 4666 KERMONS_INFERNIUM_SCEPTER = 4667 GOLCONDAS_INFERNIUM_SCEPTER = 4668 HALLATES_INFERNIUM_SCEPTER = 4669 REORINS_HAMMER = 4670 REORINS_MOLD = 4671 INFERNIUM_VARNISH = 4672 RED_PIPETTE_KNIFE = 4673 STAR_OF_DESTINY = 5011 CRYSTAL_B = 1460 #Leorin, Cliff, Ferris, Zenkin, Kaspar, Kernon's Chest, Golkonda's Chest, Hallate's Chest, Cabrio's "Coffer of the Dead" NPC=[31002,30182,30847,30178,30833,31028,31029,31030,31027] CHEST_SPAWNS = { 25035:31027, # Shilen's Messenger Cabrio 25054:31028, # Demon Kernon 25126:31029, # Golkonda, the Longhorn General 25220:31030 # Death Lord Hallate } #mobId=[cond,dropId,rate] DROPLIST={ 29020: [7,RED_PIPETTE_KNIFE,10] #Baium...NOTE: rate may need adjustment } ## START: Weapon exchange section (any top B grade for 2nd best A grade) # TopBGradeWeaponData{ weaponType: (max pdam, max mdam)} #(top weapon has at least one of pdam or mdam equal to the max for its type) TopBGradeWeaponData = { \ "Big Sword":(213,91), \ "Blunt":(194,132), \ "Bow":(400,100), \ "Dagger":(170,122), \ "Dual Fist":(236,99), \ "Etc":(170,143), \ "Pole":(194,99), \ "Sword":(194,122),\ "Big Blunt":(236,99), \ "Dual Sword":(236,99)} class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onEvent (self,event,st) : htmltext = event #accept quest if event == "1" : st.set("cond","1") st.setState(State.STARTED) htmltext = "31002-03.htm" # talking with cliff...last dialog to get the Infernium Varnish elif event == "30182_01" : htmltext = "30182-01c.htm" st.giveItems(INFERNIUM_VARNISH,1) # open Kernon's Chest elif event == "31028_01" : htmltext = "31028-02.htm" st.giveItems(KERMONS_INFERNIUM_SCEPTER,1) # open Hallate's Chest elif event == "31029_01" : htmltext = "31029-02.htm" st.giveItems(GOLCONDAS_INFERNIUM_SCEPTER,1) # open Golkonda's Chest elif event == "31030_01" : htmltext = "31030-02.htm" st.giveItems(HALLATES_INFERNIUM_SCEPTER,1) # dialog with Zenkin elif event == "30178_01" : st.set("cond","6") htmltext = "30178-01a.htm" # dialog with Kaspar - go to baium elif event == "30833_01a" : htmltext = "30833-01b.htm" st.giveItems(PIPETTE_KNIFE,1) st.set("cond","7") ## FINAL ITEM EXCHANGE SECTION elif event == "showWeapons" : htmltext = "" for Item in st.getPlayer().getInventory().getItems(): #given an item instance, get the item template to check what type it is itemTemplate = Item.getItem() weaponType = itemTemplate.getItemType().toString() if TopBGradeWeaponData.has_key(weaponType) and not Item.isEquipped() and itemTemplate.getCrystalType() == 0x03 and itemTemplate.getDuration() == -1 : # for acceptable types, check if they fit the description of topB from that type. pDam, mDam = itemTemplate.getPDamage(), itemTemplate.getMDamage() if pDam >= TopBGradeWeaponData[weaponType][0] or mDam >= TopBGradeWeaponData[weaponType][1] : htmltext += "<a action=\"bypass -h Quest 234_FatesWhisper selectBGrade_" + str(Item.getObjectId()) +"\">" + itemTemplate.getName() + "+" + str(Item.getEnchantLevel()) + "</a><br>" if htmltext == "": htmltext = "You have no acceptable top B grade weapon in your inventory" htmltext = "<html><body>Maestro Reorin:<br>Please choose which weapon you wish to give me to melt, from the below list:<br>" + htmltext + "</body></html>" elif event.startswith("selectBGrade_"): # store the object id of the selected weapon for the trade bGradeObjId = int(event.replace("selectBGrade_", "")) # to avoid exploitation, check if the stored objectId still corresponds to an existing item # and if that item is still not equipped Item = st.getPlayer().getInventory().getItemByObjectId(bGradeObjId) if Item and not Item.isEquipped() : st.getPlayer().destroyItem("234_FatesWhisper",bGradeObjId, 1, st.getPlayer(), 0) st.set("bypass","1") # now show the A Grade weapon list htmltext = "31002-AGradeList.htm" else : htmltext = "<html><body>Maestro Reorin:<br>Are you trying to cheat me?! What happenned to the weapon you were about to give me for the neutralization of Infernum's evil aura?</body></html>" elif event.startswith("selectAGrade_"): if st.getInt("bypass"): aGradeItemId = int(event.replace("selectAGrade_", "")) if aGradeItemId in (80,98,150,212,235,269,288,2504,5233,7884,7894,7899): htmltext = "31002-12.htm" st.giveItems(aGradeItemId,1) st.giveItems(STAR_OF_DESTINY,1) st.exitQuest(False) st.unset("cond") st.unset("bypass") else: htmltext="bye" st.exitQuest(1) else: htmltext="<html><body>Maestro Reorin:<br>Are you trying to cheat me?! What happenned to the weapon you were about to give me for the neutralization of Infernum's evil aura?</body></html>" #st.exitQuest(1) return htmltext def onTalk (self,npc,player): htmltext = "<html><body>You are either not on a quest that involves this NPC, or you don't meet this NPC's minimum quest requirements.</body></html>" st = player.getQuestState(qn) if not st : return htmltext npcId = npc.getNpcId() id = st.getState() # first time when a player join the quest if id == State.CREATED: if player.getLevel() >= 75: htmltext = "31002-02.htm" else: htmltext = "31002-01.htm" st.exitQuest(1) return htmltext # if quest is already State.COMPLETED elif id == State.COMPLETED: return "<html><body>This quest has already been completed.</body></html>" # if quest is accepted and in progress elif id == State.STARTED: cond =st.getInt("cond") if npcId == NPC[0] : if cond == 1 and not st.getQuestItemsCount(REIRIAS_SOUL_ORB) : # waiting for the orb htmltext = "31002-04b.htm" elif cond == 1 : #got the orb! Go to the next step (infernium scepter pieces) st.takeItems(REIRIAS_SOUL_ORB,1) htmltext = "31002-05.htm" st.set("cond","2") # waiting for infernium scepter pieces elif cond == 2 and (st.getQuestItemsCount(KERMONS_INFERNIUM_SCEPTER)+st.getQuestItemsCount(GOLCONDAS_INFERNIUM_SCEPTER)+st.getQuestItemsCount(HALLATES_INFERNIUM_SCEPTER) < 3) : htmltext = "31002-05c.htm" elif cond == 2 : #got the infernium scepter pieces! Go to the next step (infernium Varnish) st.takeItems(KERMONS_INFERNIUM_SCEPTER,1) st.takeItems(GOLCONDAS_INFERNIUM_SCEPTER,1) st.takeItems(HALLATES_INFERNIUM_SCEPTER,1) htmltext = "31002-06.htm" st.set("cond","3") # waiting for infernium varnish elif cond == 3 and not st.getQuestItemsCount(INFERNIUM_VARNISH) : htmltext = "31002-06b.htm" elif cond == 3 : #got the infernium varnish! Go to the next step (Leorin's Hammer) st.takeItems(INFERNIUM_VARNISH,1) htmltext = "31002-07.htm" st.set("cond","4") # waiting for Leorin's Hammer elif cond == 4 and not st.getQuestItemsCount(REORINS_HAMMER) : htmltext = "31002-07b.htm" elif cond == 4 : # got Leorin's Hammer! Go to the next step (Leorin's Mold) st.takeItems(REORINS_HAMMER,1) htmltext = "31002-08.htm" st.set("cond","5") elif cond < 8 : # waiting for Leorin's Mold htmltext = "31002-08b.htm" elif cond == 8 : # got Leorin's Mold! Go to the next step (B Crystals) st.takeItems(REORINS_MOLD,1) htmltext = "31002-09.htm" st.set("cond","9") qs = st.getPlayer().getQuestState("255_Tutorial") if qs: st.showQuestionMark(13) st.playSound("ItemSound.quest_tutorial") # waiting for 984 B Grade Crystals elif cond == 9 and (st.getQuestItemsCount(CRYSTAL_B) < 984) : htmltext = "31002-09a.htm" elif cond == 9 : # got the crystals st.takeItems(CRYSTAL_B,984) htmltext = "31002-10.htm" st.set("cond","10") # all is ready. Now give a menu to trade the B weapon for the player's choice of A Weapon. elif cond == 10: if st.getInt("bypass") : htmltext = "31002-AGradeList.htm" else : htmltext = "31002-11.htm" ## CLIFF. # came to take the varnish elif npcId == NPC[1] and cond==3 and not st.getQuestItemsCount(INFERNIUM_VARNISH) : htmltext = "30182-01.htm" # you already got the varnish...why are you back? elif npcId == NPC[1] and (cond>=3 or st.getQuestItemsCount(INFERNIUM_VARNISH)) : htmltext = "30182-02.htm" ## FERRIS # go to take the mold elif npcId == NPC[2] and cond==4 and not st.getQuestItemsCount(REORINS_HAMMER) : htmltext = "30847-01.htm" # go to trader Zenkin st.giveItems(REORINS_HAMMER,1) # I already told you I don't have it! elif npcId == NPC[2] and cond>=4 : htmltext = "30847-02.htm" # go to trader Zenkin ## ZENKIN # go to take mold elif npcId == NPC[3] and cond==5 : htmltext = "30178-01.htm" # go to Magister Kaspar # I already told you I don't have it! elif npcId == NPC[3] and cond>5 : htmltext = "30178-02.htm" # go to Magister Kaspar ## KASPAR elif npcId == NPC[4]: # first visit: You have neither plain nor blooded knife. if cond==6 : htmltext = "30833-01.htm" # go to Magister Hanellin,etc. Get Baium's Blood with the pipette # revisit before getting the blood: remind "go get the blood" if cond==7 and st.getQuestItemsCount(PIPETTE_KNIFE) and not st.getQuestItemsCount(RED_PIPETTE_KNIFE) : htmltext = "30833-02.htm" # go to Magister Hanellin,etc. Get Baium's Blood with the pipette # got the blood and I'm ready to proceed if cond==7 and not st.getQuestItemsCount(PIPETTE_KNIFE) and st.getQuestItemsCount(RED_PIPETTE_KNIFE) : htmltext = "30833-03.htm" # great! Here is your mold for Leorin st.takeItems(RED_PIPETTE_KNIFE,1) st.giveItems(REORINS_MOLD,1) st.set("cond","8") #revisit after you've gotten the mold: What are you still doing here? if st.getInt("cond")>7 : htmltext = "30833-04.htm" # Have you given the mold to Leorin, yet? ## CHESTS FROM RAIDBOSSES elif cond==1 : if npcId ==NPC[8] and st.getQuestItemsCount(REIRIAS_SOUL_ORB)==0 : htmltext = "31027-01.htm" st.giveItems(REIRIAS_SOUL_ORB,1) st.playSound("Itemsound.quest_itemget") elif cond==2 : # Kernon's Chest if npcId == NPC[5] and st.getQuestItemsCount(KERMONS_INFERNIUM_SCEPTER)==0 : htmltext = "31028-01.htm" elif npcId == NPC[5] : htmltext = "<html><body>This chest looks empty</body></html>" # Golkonda's Chest elif npcId == NPC[6] and st.getQuestItemsCount(GOLCONDAS_INFERNIUM_SCEPTER)==0 : htmltext = "31029-01.htm" elif npcId == NPC[6] : htmltext = "<html><body>This chest looks empty</body></html>" # Hallate's Chest elif npcId == NPC[7] and st.getQuestItemsCount(HALLATES_INFERNIUM_SCEPTER)==0 : htmltext = "31030-01.htm" elif npcId == NPC[7] : htmltext = "<html><body>This chest looks empty</body></html>" return htmltext def onAttack (self, npc, player, damage, isPet): st = player.getQuestState(qn) if not st : return if st.getState() != State.STARTED : return npcId = npc.getNpcId() value,dropId,chance = DROPLIST[npcId] if value == st.getInt("cond") and npcId==29020 : if player.getActiveWeaponItem() and player.getActiveWeaponItem().getItemId() == PIPETTE_KNIFE and st.getQuestItemsCount(dropId) == 0: st.giveItems(dropId,1) st.takeItems(PIPETTE_KNIFE,1) st.playSound("Itemsound.quest_itemget") return def onKill(self,npc,player,isPet): npcId=npc.getNpcId() # the chests always spawn, even if the RB is killed with nobody nearby doing the quest. if npcId in CHEST_SPAWNS.keys() : self.addSpawn(CHEST_SPAWNS[npcId], npc.getX(), npc.getY(), npc.getZ(),npc.getHeading(), True, 60000) else : st = player.getQuestState(qn) if not st : return if st.getState() != State.STARTED : return if npcId in DROPLIST.keys() : value,dropId,chance = DROPLIST[npcId] if st.getInt("cond") == value: if chance > 0: if st.getRandom(100) < chance and st.getQuestItemsCount(dropId) == 0: st.giveItems(dropId,1) st.playSound("Itemsound.quest_itemget") if npcId == 29020: st.takeItems(PIPETTE_KNIFE,1) return QUEST = Quest(234,qn,"Fate's Whisper") QUEST.addStartNpc(NPC[0]) for npcId in NPC: QUEST.addTalkId(npcId) for mobId in DROPLIST.keys() : QUEST.addKillId(mobId) for mobId in CHEST_SPAWNS.keys() : QUEST.addKillId(mobId) QUEST.addAttackId(29020)0 answers to this question
Recommended Posts