exw to exis problima, xrisimopoio gracia part 2 l2j compiled kai dn mporo na fix ta premium caravan certification, ta alla ta pernei kanonika, basic kai standar alla to premium dn to pairnei enw exa ta ilika p xreiazonte, exei kaneis ti __init__.py tou caravan relation? an mporei na me help 8a me efxaristouse poly :)
EDIT afto einai to __init__.py p xrisimopoio, mono to prenium exei problima
import sys
from net.sf.l2j.gameserver.model.quest import State
from net.sf.l2j.gameserver.model.quest import QuestState
from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest
from net.sf.l2j import L2DatabaseFactory
qn = "9950_CaravanRelations"
# NPC
FALK = 32297
KIEF = 32354
HUDE = 32298
QuestNpcs = [ 32297,32354,32298 ]
Chimeras = [ 22349,22350,22351,22352 ]
Celtus = 22353
# Items
BasicCertif = 9850
StandardCertif = 9851
PremiumCertif = 9852
DarionBadge = 9674
MagicBottle = 9672
ScorpionSting = 10012
LifeForce = 9681
ContainedLife = 9682
MarkBetrayal = 9676
class Quest (JQuest) :
def __init__(self,id,name,descr):
JQuest.__init__(self,id,name,descr)
def onAdvEvent (self, event, npc, player) :
st = player.getQuestState(qn)
if not st: return
cond = st.getInt("cond")
if event == "32264-03.htm":
htmltext = "32264-03.htm"
return htmltext
elif event == "32298-02.htm":
if st.getQuestItemsCount(MarkBetrayal) >= 30 and st.getQuestItemsCount(ScorpionSting) >= 60 :
st.set("cond","2")
st.takeItems(MarkBetrayal,30)
st.takeItems(ScorpionSting,60)
st.takeItems(BasicCertif,1)
st.giveItems(StandardCertif,1)
st.playSound("ItemSound.quest_middle")
htmltext = "32298-01.htm"
return htmltext
else :
htmltext = "32298-00a.htm"
return htmltext
elif event == "32298-05.htm":
if st.getQuestItemsCount(LifeForce) >= 80 and st.getQuestItemsCount(ContainedLife) >= 20 :
st.set("cond","4")
htmltext = "32298-04.htm"
st.takeItems(LifeForce,80)
st.takeItems(ContainedLife,20)
st.takeItems(MagicBottle,1)
st.takeItems(StandardCertif,1)
st.giveItems(PremiumCertif,1)
st.playSound("ItemSound.quest_middle")
return htmltext
else :
htmltext = "32298-00a.htm"
return htmltext
elif event == "TrustIncrease":
con=L2DatabaseFactory.getInstance().getConnection()
trigger=con.prepareStatement("SELECT zonesLevel FROM hellbound WHERE name=8000")
trigger1=trigger.executeQuery()
while (trigger1.next()):
zones=trigger1.getInt("zonesLevel")
trigger=con.prepareStatement("SELECT trustLevel FROM hellbound WHERE name=8000")
trigger1=trigger.executeQuery()
while (trigger1.next()):
trust=trigger1.getInt("trustLevel")
trust = int(trust) + 200
insertion = con.prepareStatement("DELETE FROM hellbound WHERE name=8000")
insertion.executeUpdate()
insertion.execute()
insertion.close();
insertion = con.prepareStatement("INSERT INTO hellbound (name,trustLevel,zonesLevel,unlocked,dummy) VALUES (?,?,?,?,?)")
insertion.setInt(1, 8000)
insertion.setInt(2, trust)
insertion.setInt(3, zoneslevel)
insertion.setInt(4, 1)
insertion.setInt(5, 0)
insertion.executeUpdate()
insertion.close();
con.close()
def onTalk (self,npc,player) :
npcId = npc.getNpcId()
LevelText = "<html><body>Hellbound has not reached a high enough level to speak to this NPC</body></html>"
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
cond = st.getInt("cond")
con=L2DatabaseFactory.getInstance().getConnection()
trigger=con.prepareStatement("SELECT zonesLevel FROM hellbound WHERE name=8000")
trigger1=trigger.executeQuery()
while (trigger1.next()):
zones=trigger1.getInt("zonesLevel")
con.close()
# if zones >= 3 :
if npcId == FALK and cond == 0:
if st.getQuestItemsCount(DarionBadge) >= 20 :
if st.getQuestItemsCount(BasicCertif) == 0 :
st.set("cond","1")
st.takeItems(DarionBadge,20)
st.giveItems(BasicCertif,1)
st.playSound("ItemSound.quest_accept")
htmltext = "32297-01.htm"
else :
htmltext = "32297-00a.htm"
else :
htmltext = "32297-00.htm"
# if zones >= 6 :
if npcId == HUDE and cond == 1 :
if st.getQuestItemsCount(BasicCertif) >= 1 :
htmltext = "32298-02.htm"
else :
htmltext = "32298-00.htm"
if npcId == KIEF and cond == 2 :
if st.getQuestItemsCount(StandardCertif) >= 1 :
if st.getQuestItemsCount(MagicBottle) == 0 :
if st.getQuestItemsCount(ScorpionSting) >= 20 :
st.set("cond","3")
htmltext = "32354-01.htm"
st.takeItems(DarionBadge,20)
st.giveItems(MagicBottle,1)
st.playSound("ItemSound.quest_middle")
else :
htmltext = "32354-00b.htm"
else :
htmltext = "32354-00a.htm"
else :
htmltext = "32354-00.htm"
if npcId == HUDE and cond == 3 :
if st.getQuestItemsCount(StandardCertif) >= 1 :
htmltext = "32298-03.htm"
else :
htmltext = "32298-00.htm"
if npcId == HUDE and cond >= 4 :
htmltext = "32298-05.htm"
# if zones >= 7 :
#this part not finished yet
# if npcId == JUDE and cond == 4 :
# if st.getQuestItemsCount(PremiumCertif) >= 1 :
# htmltext = "32356-01.htm"
# else :
# htmltext = "32356-00.htm"
return htmltext
def onKill(self,npc,player,isPet):
st = player.getQuestState(qn)
if not st : return
npcId = npc.getNpcId()
if st.getQuestItemsCount(MagicBottle) >= 1:
if npcId == Celtus and st.getQuestItemsCount(9682) < 20:
st.giveItems(9682,1)
else:
if st.getQuestItemsCount(9681) < 80:
st.giveItems(9681,1)
else:
return
else:
return
QUEST = Quest(9950,qn,"Custom")
QUEST.addStartNpc(32297)
for i in QuestNpcs:
QUEST.addTalkId(i)
for i in Chimeras:
QUEST.addKillId(i)
QUEST.addKillId(22353)
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Added:
🎁 Seasonal Bonus System
When the seasonal bonus is enabled, players receive additional bonus coins equal to bonus_season_percent of their donation amount.
💡 How it works (example):
A player donates through their personal account and immediately receives regular coins.
At the same time, bonus coins equal to 30% of the donation are credited.
Example:
Donation: 1000 coins → Bonus: 300 coins (30%)
These bonus coins are not available immediately — they can be claimed later when the next season begins.
📅 When the bonus can be claimed:
bonus_season_claim_start_date – the date when the "Claim" button becomes available.
bonus_season_claim_end_date – the date after which the bonus can no longer be claimed.
During this time window, the "Claim" button will appear in the personal account, allowing players to collect their accumulated bonus.
'bonus_season_enabled' => true, // Enable/disable the seasonal bonus system 'bonus_season_percent' => 30, // Percentage of the donation to be given as bonus coins (30 = 30%) 'bonus_season_claim_start_date' => '2025-07-30 00:00:00', // Date when the Claim button becomes available in the new season
'bonus_season_enabled' => true, // Вкл./Выкл Сезонную бонусную систему?
'bonus_season_percent' => 30, // Процент, при донате получает монеты в процентах 30 = 30%, которые может использовать в следующем открытии
'bonus_season_claim_start_date' => '2025-07-30 00:00:00', // Дата когда доступна кнопка Claim в новом сезоне
'bonus_season_claim_end_date' => '2025-08-15 20:00:00', // Дата окончания когда кнопка Claim в новом сезоне
Question
hakerboy
exw to exis problima, xrisimopoio gracia part 2 l2j compiled kai dn mporo na fix ta premium caravan certification, ta alla ta pernei kanonika, basic kai standar alla to premium dn to pairnei enw exa ta ilika p xreiazonte, exei kaneis ti __init__.py tou caravan relation? an mporei na me help 8a me efxaristouse poly :)
EDIT afto einai to __init__.py p xrisimopoio, mono to prenium exei problima
0 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.