Initial changes.

This commit is contained in:
MobiusDevelopment
2019-07-26 10:40:03 +00:00
parent 24a2cc615e
commit e70ad4bdb2
68 changed files with 1869 additions and 1955 deletions

View File

@@ -1,129 +0,0 @@
# Boss AI
ai/bosses/Antharas.java
ai/bosses/Baium.java
ai/bosses/Barakiel.java
ai/bosses/benom.py
ai/bosses/Core.java
ai/bosses/drchaos.py
ai/bosses/Frintezza.java
ai/bosses/Golkonda.java
ai/bosses/Gordon.java
ai/bosses/gustav.py
ai/bosses/Hallate.java
ai/bosses/IceFairySirra.java
ai/bosses/Kernon.java
ai/bosses/nurka.py
ai/bosses/Orfen.java
ai/bosses/QueenAnt.java
ai/bosses/Tyrannosaurus.java
ai/bosses/sailren.py
ai/bosses/Valakas.java
ai/bosses/VanHalter.java
ai/bosses/Zaken.java
# Other AI
ai/others/AncientEgg.java
ai/others/cats_eye_bandit.py
ai/others/chests.py
ai/others/delu_lizardman_special_agent.py
ai/others/delu_lizardman_special_commander.py
ai/others/evabox.py
ai/others/feedable_beasts.py
ai/others/karul_bugbear.py
ai/others/Monastery.java
ai/others/ol_mahum_general.py
ai/others/retreat_onattack.py
ai/others/scarlet_stokate_noble.py
ai/others/splendor.py
#ai/others/squash.py
ai/others/SummonMinions.java
ai/others/timak_orc_overlord.py
ai/others/timak_orc_troop_leader.py
ai/others/Transform.java
ai/others/turek_orc_footman.py
ai/others/turek_orc_supplier.py
ai/others/turek_orc_warlord.py
ai/others/ZombieGatekeepers.java
# Custom
custom/EchoCrystals/EchoCrystals.java
custom/HeroCirclet/HeroCirclet.java
custom/HeroWeapon/HeroWeapon.java
custom/KetraOrcSupport/KetraOrcSupport.java
custom/MissQueen/MissQueen.java
custom/NpcLocationInfo/NpcLocationInfo.java
custom/RaidbossInfo/RaidbossInfo.java
custom/VarkaSilenosSupport/VarkaSilenosSupport.java
custom/ShadowWeapon/ShadowWeapon.java
custom/8003_MeetBaium/__init__.py
custom/8009_HotSpringsBuffs/__init__.py
#custom/6666_NoblessTrader/__init__.py
#custom/6667_ClanManager/__init__.py
# Quests - Python
quests/24_InhabitantsOfTheForrestOfTheDead/__init__.py
quests/25_HidingBehindTheTruth/__init__.py
quests/115_TheOtherSideOfTruth/__init__.py
quests/120_PavelsResearch/__init__.py
quests/137_TempleChampionPart1/__init__.py
quests/138_TempleChampionPart2/__init__.py
quests/139_ShadowFoxPart1/__init__.py
quests/140_ShadowFoxPart2/__init__.py
quests/141_ShadowFoxPart3/__init__.py
quests/142_FallenAngelRequestOfDawn/__init__.py
quests/143_FallenAngelRequestOfDusk/__init__.py
quests/178_IconicTrinity/__init__.py
quests/183_Relic_Exploration/__init__.py
quests/186_Contract_Execution/__init__.py
quests/187_Nikolas_Heart/__init__.py
quests/188_Seal_Removal/__init__.py
quests/189_Contract_Completion/__init__.py
quests/191_Vain_Conclusion/__init__.py
quests/236_SeedsOfChaos/__init__.py
quests/255_Tutorial/__init__.py
quests/269_InventionAmbition/__init__.py
quests/280_TheFoodChain/__init__.py
quests/281_HeadForTheHills/__init__.py
quests/283_TheFewTheProudTheBrave/__init__.py
quests/284_MuertosFeather/__init__.py
quests/286_FabulousFeathers/__init__.py
quests/334_TheWishingPotion/__init__.py
quests/335_TheSongOfTheHunter/__init__.py
quests/336_CoinOfMagic/__init__.py
quests/343_UnderTheShadowOfTheIvoryTower/__init__.py
quests/350_EnhanceYourWeapon/__init__.py
quests/386_StolenDignity/__init__.py
quests/501_ProofOfClanAlliance/__init__.py
quests/503_PursuitClanAmbition/__init__.py
quests/504_CompetitionfortheBanditStronghold/__init__.py
quests/505_BloodOffering/__init__.py
quests/508_TheClansReputation/__init__.py
quests/509_TheClansPrestige/__init__.py
quests/510_AClansReputation/__init__.py
quests/635_InTheDimensionalRift/__init__.py
quests/636_TruthBeyond/__init__.py
quests/648_AnIceMerchantsDream/__init__.py
quests/655_AGrandPlanforTamingWildBeasts/__init__.py
quests/999_C3Tutorial/__init__.py
# Quests - Java
quests/QuestMasterHandler.java
# Teleports
teleports/ElrokiTeleporters/ElrokiTeleporters.java
teleports/HuntingGroundsTeleport/HuntingGroundsTeleport.java
teleports/NewbieTravelToken/NewbieTravelToken.java
teleports/NoblesseTeleport/NoblesseTeleport.java
teleports/OracleTeleport/OracleTeleport.java
teleports/PaganTeleporters/PaganTeleporters.java
teleports/RaceTrack/RaceTrack.java
teleports/TeleportWithCharm/TeleportWithCharm.java
teleports/ToIVortex/ToIVortex.java
teleports/2400_toivortex_exit/__init__.py
teleports/6000_GrandBossTeleporters/__init__.py
# Village Master
village_master/ClanMaster/ClanMaster.java
village_master/AllianceMaster/AllianceMaster.java
village_master/FirstClassChange/FirstClassChange.java
village_master/SecondClassChange/SecondClassChange.java

View File

@@ -1,202 +0,0 @@
import sys
from org.l2jmobius.gameserver.ai import CtrlIntention
from org.l2jmobius.gameserver.model.quest import State
from org.l2jmobius.gameserver.model.quest import QuestState
from org.l2jmobius.gameserver.model.quest.jython import QuestJython as JQuest
from org.l2jmobius.gameserver.network.serverpackets import CreatureSay
from org.l2jmobius.commons.util import Rnd
POLLEN = 6391
SKILL_NECTAR = 9998
# Поливаемые
WATERED_SQUASH = [12774,12775,12776,12777,12778,12779]
class squash(JQuest) :
def __init__(self,id,name,descr):
JQuest.__init__(self,id,name,descr)
# Выросшие
self.adultSmallSquash = [12775,12776]
self.adultLargeSquash = [12778,12779]
def onAdvEvent(self,event,npc,player) :
objId = npc.getObjectId()
if event == "Good By" and npc and player :
npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"Good By!! LOL."))
npc.onDecay()
elif event == "Good By1" and npc and player :
npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"Всем, до свидания... Большая тыква сказала до свидания ..."))
npc.onDecay()
elif event == "Good By2" and npc and player :
npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"Вы можете быстрее? Через 30 секунд я сбегу ..."))
elif event == "Good By3" and npc and player :
npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"Я прерву отношения с Вами через 20 секунд!"))
elif event == "Good By4" and npc and player :
npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"У меня осталось всего 10 секунд! 9. 8. 7 ..!"))
elif event == "Good By5" and npc and player :
npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"Эй! Счастливо оставаться! Идиот, забудь обо мне!"))
return
def onSkillUse(self,npc,player,skill):
npcId = npc.getNpcId()
skillId = skill.getId()
if skillId != SKILL_NECTAR : return
if npcId not in WATERED_SQUASH : return
objectId = npc.getObjectId()
if skillId == SKILL_NECTAR :
# Первый полив
if npc.getNectar() == 0 :
if Rnd.get(2) == 1 :
mytext = ["Чтобы быть способной расти, я должна пить только нектар ... причем чаще",
"Если ты будеш быстрее выливать мне нектар - я быстрее выросту!",
"Ну, верьте мне, прыскайте нектар! Я могу конечно превратиться в большую тыкву!!!",
"Принеси нектар, чтобы вырастить тыкву!",
"Плод прекрасной молодой тыквы начинает блестеть, когда семя предано земле! С этого времени будет способен стать здоровым и сильным!",
"О, давно не виделись?",
"Неожидал увидеть мое красивое появление?",
"Отлично! Это - нечто! Нектар?",
"Дозаправка! Заправь 5 бутылок, чтобы я смогла превратиться в большую тыкву! О!"]
npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
npc.addNectar()
npc.addGood()
else :
mytext = ["Не спеши! Слишком часто, я не успеваю!",
"Я же не автомат, меня скорострельностью не напоиш",
"Да куда же ты торопишься! Слишком часто, я не успеваю!",
"Упс, опять слишком быстро",
"Давай чуток помедленней, не спеши, медленно достань бутылку и медленно ее вылей!",
"У тебя нет чувства скорости? Медленнее давай"]
npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
npc.addNectar()
# Второй полив
elif npc.getNectar() == 1 :
if Rnd.get(2) == 1 :
mytext = ["Желаю стать большой тыквой!",
"Ням, ням, ням! Вышло! Заботится - хорошо!",
"Как думаеш, я зрелая или гнилая?",
"Нектар - только лучшее! Ха! Ха! Ха!"]
npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
npc.addNectar()
npc.addGood()
else :
mytext = ["О! Опять мимо! Может слишком быстро расходуеш нектар?",
"Если я умру такой как сейчас, Вы получите только молодую тыкву ...",
"Выращивают немного быстрее! Неплохо было бы стать большой тыквой, молодая тыква не хороша!",
"Tакую маленькую тыкву вы все должны есть? Принесите нектар, я могу быть больше!"]
npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
npc.addNectar()
# Третий полив
elif npc.getNectar() == 2 :
if Rnd.get(2) == 1 :
mytext = ["Tыква, изголодалась! Просит утолить жажду!",
"Ну наконец-то ..., это действительно вкусно! Есть еще?",
"Ухаживаешь за мной только для того, чтобы есть? Отлично, является случайным ваш ..., чтобы не дать манну на самоубийство"]
npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
npc.addNectar()
npc.addGood()
else :
mytext = ["Не воду ли Вы добавляете? Какой вкус?",
"Хозяин, спасите меня... Я не имею аромата нектара, я должна умереть ..."]
npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
npc.addNectar()
# Четвертый полив
elif npc.getNectar() == 3 :
if Rnd.get(2) == 1 :
mytext = ["Очень хорошо, делаешь чрезвычайно хорошо! Знаешь что следующим шагом должен делать?",
"Если Вы поймаете меня, я даю Вам 10 миллионов adena!!! Согласны?"]
npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
npc.addNectar()
npc.addGood()
else :
mytext = ["Я голодна, Tы хочеш чтоб я засохла?",
"Tребую нектар, чтобы расти немного быстрее."]
npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
npc.addNectar()
# Пятый полив
elif npc.getNectar() == 4 :
if Rnd.get(2) == 1 :
npc.addGood()
if npc.getGood() >= 3 :
if npcId == 12774 :
newGourd = self.addSpawn(12775,npc)
newGourd.setOwner(player.getName())
self.startQuestTimer("Good By", 120000, newGourd, player) # Через 2 минуты исчезновение
self.startQuestTimer("Good By2", 90000, newGourd, player) # 30 секунд до исчезновения
self.startQuestTimer("Good By3", 100000, newGourd, player) # 20 секунд до исчезновения
self.startQuestTimer("Good By4", 110000, newGourd, player) # 10 секунд до исчезновения
mytext = ["Молодая тыква, жаждящая! Как, уже выросла?",
"Я убегу через 2 минуты"]
npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
npc.onDecay()
else :
newGourd = self.addSpawn(12778,npc)
newGourd.setOwner(player.getName())
self.startQuestTimer("Good By1", 120000, newGourd, player) # Через 2 минуты исчезновение
self.startQuestTimer("Good By2", 90000, newGourd, player) # 30 секунд до исчезновения
self.startQuestTimer("Good By3", 100000, newGourd, player) # 20 секунд до исчезновения
self.startQuestTimer("Good By4", 110000, newGourd, player) # 10 секунд до исчезновения
mytext = ["Милосердность является очень хорошей чертой. Tеперь посмотрите, я чувствую себя все более хорошо",
"Я убегу через 2 минуты"]
npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
npc.onDecay()
else :
if npcId == 12774 :
newGourd = self.addSpawn(12776,npc)
newGourd.setOwner(player.getName())
mytext = ["Эй! Была - не была! Есть! Сейчас же! Tы не можешь должным образом заботиться? Я же так сгнию!",
"Ничего себе, остановки? За что тебя благодарить",
"Жажду нектара о ...",
"Вы хотите большую тыкву? Но я хочу остаться маленькой тыковкой ..."]
npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
npc.onDecay()
if npcId == 12777 :
newGourd = self.addSpawn(12779,npc)
newGourd.setOwner(player.getName())
mytext = ["Эй! Была - не была! Есть! Сейчас же! Tы не можешь должным образом заботиться? Я так сгнию!",
"Ничего себе, остановки? За что тебя благодарить",
"Жажду нектара о ...",
"Вы хотите большую тыкву? Но я хочу остаться маленькой тыковкой ..."]
npc.broadcastPacket(CreatureSay(objectId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
npc.onDecay()
return
def onAttack(self,npc,player,damage,isPet) :
npcId = npc.getNpcId()
objId = npc.getObjectId()
if npcId not in WATERED_SQUASH : return
if npcId in self.adultLargeSquash :
if Rnd.get(30) < 2 :
mytext = ["Укусы плетут кружево крысой ..., чтобы заменить ... тело ...!",
"Ха ха, росла! Полностью на всех!",
"Не можете чтоли все прицелиться? Смотрите все, чтобы не сбежала ...",
"Я считаю ваши удары! О, напоминает удар снова!",
"Не тратьте впустую ваше время!",
"Ха, этот звук действительно приятно слышать?",
"Я потребляю ваши атаки, чтобы расти!",
"Время, чтобы ударить снова! Ударь еще разок!",
"Tолько полезная музыка может открыть большую тыкву... Меня нельзя открыть с оружием!"]
npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),mytext[Rnd.get(len(mytext))]))
return
def onKill(self,npc,player,isPet) :
npcId = npc.getNpcId()
objId = npc.getObjectId()
if npcId not in WATERED_SQUASH : return
if npcId in self.adultSmallSquash :
npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"Tыква открывается!!"))
npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"Ееее! Открывается! Много хороших вещей ..."))
elif npcId in self.adultLargeSquash :
npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"Tыква открывается!!"))
npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"Ееее! Открывается! Много хороших вещей ..."))
else :
npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"За что, хозяин?!"))
npc.broadcastPacket(CreatureSay(objId,0,npc.getName(),"Ой, кишки вывалились!!"))
return
QUEST = squash(-1,"group_template","ai")
for i in WATERED_SQUASH:
QUEST.addSkillUseId(i)
QUEST.addAttackId(i)
QUEST.addKillId(i)

View File

@@ -1,18 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
NoblessTrader:<br>
Do you know the story of the seventeen heroes who challenged the Land
Dragon Antharas? It's fascinating! Such a heroic sacrifice! It could be
an epic poem! In fact, it's one of my all-time favorite stories! It's
what motivated me to become a bohemian poet! It's always been my dream
to write a great epic poem tying all the pieces of this story together.<br>
Well forget all that because we have made the quest simple !!<br>
I will make you Noblesse if you have a second Subclass at Level
70+ and if you have 2 gold bars in your inventory.<br>
<a action="bypass -h Quest 6666_NoblessTrader 31739-3.htm">"Make
me Noblesse."</a>
</body>
</html>

View File

@@ -1,10 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
NoblessTrader:<br>
Sorry but I will make you Noblesse only if you have a second Subclass at Level
70+ and if you have not 2 gold bars in your inventory.<br>
</body>
</html>

View File

@@ -1,10 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
Talien:<br>
Awesome! Thank you! For comming to see me, we have saved you a lot of
time you are now Noblesse.! Only at Titan energy:}
</body>
</html>

View File

@@ -1,67 +0,0 @@
import sys
from org.l2jmobius.gameserver.model.actor.instance import L2PcInstance
from org.l2jmobius.gameserver.model.actor.instance import L2NpcInstance
from java.util import Iterator
from org.l2jmobius.gameserver.model.quest import State
from org.l2jmobius.gameserver.model.quest import QuestState
from org.l2jmobius.gameserver.model.quest.jython import QuestJython as JQuest
qn = "6666_NoblessTrader"
NPC=[66666]
NOBLESS_TIARA=7694
GOLD_BAR=3470
QuestId = 6666
QuestName = "NoblessTrade"
QuestDesc = "custom"
InitialHtml = "31739-1.htm"
print "INFO Nobless Trader (66666) Enabled..."
class Quest (JQuest) :
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
def onEvent(self,event,st):
htmltext = "<html><head><body>I have nothing to say you</body></html>"
cond = st.getInt("cond")
count=st.getQuestItemsCount(GOLD_BAR)
if event == "31739-3.htm" :
if cond == 0 and st.getPlayer().isSubClassActive() :
if st.getPlayer().getLevel() >= 70 and count > 1:
htmltext=event
st.set("cond","0")
st.getPlayer().setNoble(True)
st.giveItems(NOBLESS_TIARA,1)
st.playSound("ItemSound.quest_finish")
st.exitQuest(1)
st.takeItems(GOLD_BAR,2)
else :
htmltext="31739-2.htm"
st.exitQuest(1)
else :
htmltext="31739-2.htm"
st.exitQuest(1)
return htmltext
def onTalk (self,npc,player):
htmltext = "<html><head><body>I have nothing to say you</body></html>"
st = player.getQuestState(qn)
if not st : return htmltext
npcId = npc.getNpcId()
id = st.getState()
if id == State.CREATED :
st.set("cond","0")
htmltext="31739-1.htm"
elif id == State.COMPLETED :
htmltext = "<html><head><body>This quest have already been completed.</body></html>"
else :
st.exitQuest(1)
return htmltext
QUEST = Quest(6666,qn,"custom")
for npcId in NPC:
QUEST.addStartNpc(npcId)
QUEST.addTalkId(npcId)

View File

@@ -1,23 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
Clan Manager:<br>
Do you know the story of the seventeen heroes who challenged the Land
Dragon Antharas? It's fascinating! Such a heroic sacrifice! It could be
an epic poem! In fact, it's one of my all-time favorite stories! It's
what motivated me to become a bohemian poet! It's always been my dream
to write a great epic poem tying all the pieces of this story together.<br>
Well forget all that because we have made the quest simple !!<br>
I will make your clan Level 8 if you are Noble and have 13 Gold Bar... <br>
<a action="bypass -h Quest 6667_ClanManager 66667-clanOk.htm">"Make Clan Lvl 8"</a><br>
I will give to your clan 3kk Reputation Points if you are Noble and 13 Gold Bar<br>
have ...
<a action="bypass -h Quest 6667_ClanManager 66667-repOk.htm">"Give me 3kk Rep. Points"</a><br>
</body>
</html>

View File

@@ -1,10 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
Clan Manager:<br>
Awesome! Thank you! For comming to see me, we have saved you a lot of
time! Your clan has now lvl 8!!!
</body>
</html>

View File

@@ -1,10 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
Clan Manager:<br>
Sorry but I can't give you lvl 8 Clan: check requirements!<br>
</body>
</html>

View File

@@ -1,9 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
Clan Manager:<br>
Sorry but I can't give you 3kk Reputation Points: check requirements!<br>
</body>
</html>

View File

@@ -1,10 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
Clan Manager:<br>
Awesome! Thank you! For comming to see me, we have saved you a lot of
time! Your clan has now 3kk Reputation Points!!!
</body>
</html>

View File

@@ -1,76 +0,0 @@
import sys
from org.l2jmobius.gameserver.model.actor.instance import L2PcInstance
from org.l2jmobius.gameserver.model.actor.instance import L2NpcInstance
from java.util import Iterator
from org.l2jmobius.gameserver.model.quest import State
from org.l2jmobius.gameserver.model.quest import QuestState
from org.l2jmobius.gameserver.model.quest.jython import QuestJython as JQuest
qn = "6667_ClanManager"
NPC=[66667]
REQUESTED_ITEM=3470
REQUESTED_AMOUNT=2
NEW_REP_SCORE=3000000
QuestId = 6667
QuestName = "ClanManager"
QuestDesc = "custom"
InitialHtml = "66667-1.htm"
print "INFO Clan Manager (66667) Enabled..."
class Quest (JQuest) :
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
def onEvent(self,event,st):
htmltext = "<html><head><body>I have nothing to say you</body></html>"
count=st.getQuestItemsCount(REQUESTED_ITEM)
if event == "66667-clanOk.htm" :
if st.getPlayer().isClanLeader() and st.getPlayer().getClan().getLevel()<8:
if st.getPlayer().isNoble() and count >= REQUESTED_AMOUNT:
htmltext=event
st.getPlayer().getClan().changeLevel(8)
st.playSound("ItemSound.quest_finish")
st.takeItems(REQUESTED_ITEM,REQUESTED_AMOUNT)
else :
htmltext="66667-no_clan.htm"
st.exitQuest(1)
else :
htmltext="66667-no_clan.htm"
st.exitQuest(1)
elif event == "66667-repOk.htm" :
if st.getPlayer().isClanLeader() and st.getPlayer().getClan().getLevel() >= 5 and st.getPlayer().getClan().getReputationScore() < NEW_REP_SCORE :
if st.getPlayer().isNoble() and count > REQUESTED_AMOUNT:
htmltext=event
st.getPlayer().getClan().setReputationScore(NEW_REP_SCORE, 1);
st.playSound("ItemSound.quest_finish")
st.takeItems(REQUESTED_ITEM,REQUESTED_AMOUNT)
else :
htmltext="66667-no_points.htm"
st.exitQuest(1)
else :
htmltext="66667-no_points.htm"
st.exitQuest(1)
return htmltext
def onTalk (self,npc,player):
htmltext = "<html><head><body>I have nothing to say you</body></html>"
st = player.getQuestState(qn)
if not st : return htmltext
npcId = npc.getNpcId()
id = st.getState()
if id == State.CREATED :
htmltext="66667-1.htm"
elif id == State.COMPLETED :
htmltext = "<html><head><body>This quest have already been completed.</body></html>"
else :
st.exitQuest(1)
return htmltext
QUEST = Quest(6667,qn,"custom")
for npcId in NPC:
QUEST.addStartNpc(npcId)
QUEST.addTalkId(npcId)

View File

@@ -679,7 +679,7 @@ public class QuestMasterHandler
{
try
{
quest.newInstance();
quest.getDeclaredConstructor().newInstance();
}
catch (Exception e)
{

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="list">
<xs:complexType>
<xs:sequence>
<xs:element name="exclude" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="include" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="file" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="file" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>