Initial changes.
This commit is contained in:
@@ -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
|
||||
@@ -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)
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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)
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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)
|
||||
@@ -679,7 +679,7 @@ public class QuestMasterHandler
|
||||
{
|
||||
try
|
||||
{
|
||||
quest.newInstance();
|
||||
quest.getDeclaredConstructor().newInstance();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
||||
21
L2J_Mobius_C6_Interlude_OpenJDK12/dist/game/data/xsd/Scripts.xsd
vendored
Normal file
21
L2J_Mobius_C6_Interlude_OpenJDK12/dist/game/data/xsd/Scripts.xsd
vendored
Normal 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>
|
||||
Reference in New Issue
Block a user