Сертификация и порт
8 replies254 viewsCurrently viewing: 1
· 11/16/2009, 09:17 AM
Раскрывающийся текст
Сборка: L2Open 3.5
Краткое изложение СУТИ проблемы:сертифик требует квеста на трансформ чего не надобно)
Вопрос: как сделать сертифик без квеста.
Мои соображения по этому поводу: нужно удалить в каком либо скрипте проверку на квест. Только где не знаю.
0
· 11/17/2009, 08:44 AM
отключи их в скриптах,их всего 3 вида юзай поиск файлов по серву и ищи в них этот конф!
0
· 11/17/2009, 03:24 PM
Раскрывающийся текст
#
# Created by Gigiikun on 2009.06.01.
import sys
from net.sf.l2j import Config
from net.sf.l2j.gameserver.datatables import SkillTable
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.gameserver.network import SystemMessageId
from net.sf.l2j.gameserver.network.serverpackets import AcquireSkillInfo
from net.sf.l2j.gameserver.network.serverpackets import AcquireSkillList
from net.sf.l2j.gameserver.network.serverpackets import SystemMessage
from net.sf.l2j.gameserver.util import Util
qn = "8005_SubClassSkills"
NPC=32323
SKILLITEMS=[10280,10281,10282,10283,10284,10285,10286,10287,10288,10289,10290,10
291,10292,10293,10294,10612]
SUBSKILLS={
10280:[631,632,633,634], # Common
10612:[637,638,639,640,799,800], # Enhanced
10281:[801,650,651], # Warriors
10282:[804,641,652], # Knights
10283:[644,645,653], # Rogues
10284:[802,646,654], # Wizards
10285:[803,648,1490], # Healers
10286:[643,1489,1491], # Summoners
10287:[642,647,655], # Enchanters
10289:[656], # Warriors
10288:[657], # Knights
10290:[658], # Rogues
10292:[659], # Wizards
10291:[661], # Healers
10294:[660], # Summoners
10293:[662] # Enchanters
}
QUESTVARSITEMS={
"EmergentAbility65-":[10280],
"EmergentAbility70-":[10280],
"ClassAbility75-":[10612,10281,10282,10283,10284,10285,10286,10287],
"ClassAbility80-":[10288,10289,10290,10291,10292,10293,10294]
}
class Quest (JQuest) :
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
def onAcquireSkillList (self, npc, player) :
asl = AcquireSkillList(AcquireSkillList.SkillType.unk4)
st = player.getQuestState(qn)
oldSkills = player.getAllSkills()
count = 0
for i in SKILLITEMS:
for j in SUBSKILLS[i]:
minLevel = 0
maxLevel = SkillTable.getInstance().getMaxLevel(j)
for oldsk in oldSkills:
if oldsk.getId() == j:
minLevel = oldsk.getLevel()
if minLevel < maxLevel:
count+=1
asl.addSkill(j, minLevel+1, maxLevel, 0, 0)
player.sendPacket(asl)
if count == 0:
player.sendPacket(SystemMessage(SystemMessageId.NO_MORE_SKILLS_TO_LEARN))
return ""
def onAcquireSkill (self, npc, player, skill) :
if player.isSubClassActive():
player.sendMessage("You are trying to learn skill that u can't..");
Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " tried to learn skill that he can't!!!", Config.DEFAULT_PUNISH);
return "false"
st = player.getQuestState(qn)
for i in SKILLITEMS:
if skill.getId() in SUBSKILLS[i]:
for var in QUESTVARSITEMS:
if i in QUESTVARSITEMS[var]:
for j in range(Config.MAX_SUBCLASS):
qvar = st.getGlobalQuestVar(var+str(j+1))
if qvar != "" and qvar != "0" and not qvar.endswith(";") :
Item = player.getInventory().getItemByObjectId(int(qvar))
if Item and Item.getItemId() == i:
player.destroyItem(qn,int(qvar), 1, player, 0)
st.saveGlobalQuestVar(var+str(j+1),str(skill.getId())+";")
return "true"
player.sendPacket(SystemMessage(SystemMessageId.ITEM_MISSING_TO_LEARN_SKILL))
return "false"
def onAcquireSkillInfo (self, npc, player, skill) :
asi = AcquireSkillInfo(skill.getId(), skill.getLevel(), 0, 4)
for i in SKILLITEMS:
if skill.getId() in SUBSKILLS[i]:
asi.addRequirement(99, i, 1, 50)
player.sendPacket(asi)
return ""
def onAdvEvent (self, event, npc, player) :
htmltext = event
st = player.getQuestState(qn)
if event == "learn":
htmltext = ""
st2 = player.getQuestState("136_MoreThanMeetsTheEye")
if player.isSubClassActive():
htmltext = "8005-04.htm"
elif not st2 or st2.getState() != State.COMPLETED :
htmltext = "8005-03.htm"
else:
j=0
for i in SKILLITEMS:
j+=st.getQuestItemsCount(i)
if j > 0:
self.onAcquireSkillList(npc,player)
else:
htmltext = "8005-04.htm"
elif event == "cancel":
if st.getQuestItemsCount(57) < 10000000:
htmltext = "8005-07.htm"
elif player.getSubClasses().size() == 0:
htmltext = "8005-03.htm"
elif player.isSubClassActive():
htmltext = "8005-04.htm"
else:
activeCertifications = 0
for var in QUESTVARSITEMS:
for i in range(Config.MAX_SUBCLASS):
qvar = st.getGlobalQuestVar(var+str(i+1))
if qvar.endswith(";") :
activeCertifications += 1
elif qvar != "" and qvar != "0" :
activeCertifications += 1
if activeCertifications == 0:
htmltext = "8005-08.htm"
else:
for var in QUESTVARSITEMS:
for i in range(Config.MAX_SUBCLASS):
qvar = st.getGlobalQuestVar(var+str(i+1))
if qvar.endswith(";"):
skill = SkillTable.getInstance().getInfo(int(qvar.replace(";","")), 1)
if skill:
qvar = st.getGlobalQuestVar(var+str(i+1))
skillId = int(qvar.replace(";",""))
skillLevel = player.getSkillLevel(skillId)
player.removeSkill(skill,skillLevel)
st.saveGlobalQuestVar(var+str(i+1), "0")
elif qvar != "" and qvar != "0" :
Item = player.getInventory().getItemByObjectId(int(qvar))
if Item :
player.destroyItem(qn, int(qvar), 1, player, 0)
else :
Item = player.getWarehouse().getItemByObjectId(int(qvar))
if Item :
print "Somehow " + player.getName() + " put certification book into warehouse!"
player.getWarehouse().destroyItem(qn, Item, 1, player, None)
else:
print "Somehow " + player.getName() + " his/her delete certification book!"
st.saveGlobalQuestVar(var+str(i+1), "0")
st.takeItems(57,10000000)
htmltext = "8005-09.htm"
player.sendSkillList()
return htmltext
def onTalk (Self,npc,player):
st = player.getQuestState(qn)
npcId = npc.getNpcId()
if npcId == NPC:
st.set("cond","0")
st.setState(State.STARTED)
return "8005-01.htm"
QUEST = Quest(-1,qn,"custom")
QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)
QUEST.addAcquireSkillId(NPC)
# Created by Gigiikun on 2009.06.01.
import sys
from net.sf.l2j import Config
from net.sf.l2j.gameserver.datatables import SkillTable
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.gameserver.network import SystemMessageId
from net.sf.l2j.gameserver.network.serverpackets import AcquireSkillInfo
from net.sf.l2j.gameserver.network.serverpackets import AcquireSkillList
from net.sf.l2j.gameserver.network.serverpackets import SystemMessage
from net.sf.l2j.gameserver.util import Util
qn = "8005_SubClassSkills"
NPC=32323
SKILLITEMS=[10280,10281,10282,10283,10284,10285,10286,10287,10288,10289,10290,10
291,10292,10293,10294,10612]
SUBSKILLS={
10280:[631,632,633,634], # Common
10612:[637,638,639,640,799,800], # Enhanced
10281:[801,650,651], # Warriors
10282:[804,641,652], # Knights
10283:[644,645,653], # Rogues
10284:[802,646,654], # Wizards
10285:[803,648,1490], # Healers
10286:[643,1489,1491], # Summoners
10287:[642,647,655], # Enchanters
10289:[656], # Warriors
10288:[657], # Knights
10290:[658], # Rogues
10292:[659], # Wizards
10291:[661], # Healers
10294:[660], # Summoners
10293:[662] # Enchanters
}
QUESTVARSITEMS={
"EmergentAbility65-":[10280],
"EmergentAbility70-":[10280],
"ClassAbility75-":[10612,10281,10282,10283,10284,10285,10286,10287],
"ClassAbility80-":[10288,10289,10290,10291,10292,10293,10294]
}
class Quest (JQuest) :
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
def onAcquireSkillList (self, npc, player) :
asl = AcquireSkillList(AcquireSkillList.SkillType.unk4)
st = player.getQuestState(qn)
oldSkills = player.getAllSkills()
count = 0
for i in SKILLITEMS:
for j in SUBSKILLS[i]:
minLevel = 0
maxLevel = SkillTable.getInstance().getMaxLevel(j)
for oldsk in oldSkills:
if oldsk.getId() == j:
minLevel = oldsk.getLevel()
if minLevel < maxLevel:
count+=1
asl.addSkill(j, minLevel+1, maxLevel, 0, 0)
player.sendPacket(asl)
if count == 0:
player.sendPacket(SystemMessage(SystemMessageId.NO_MORE_SKILLS_TO_LEARN))
return ""
def onAcquireSkill (self, npc, player, skill) :
if player.isSubClassActive():
player.sendMessage("You are trying to learn skill that u can't..");
Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " tried to learn skill that he can't!!!", Config.DEFAULT_PUNISH);
return "false"
st = player.getQuestState(qn)
for i in SKILLITEMS:
if skill.getId() in SUBSKILLS[i]:
for var in QUESTVARSITEMS:
if i in QUESTVARSITEMS[var]:
for j in range(Config.MAX_SUBCLASS):
qvar = st.getGlobalQuestVar(var+str(j+1))
if qvar != "" and qvar != "0" and not qvar.endswith(";") :
Item = player.getInventory().getItemByObjectId(int(qvar))
if Item and Item.getItemId() == i:
player.destroyItem(qn,int(qvar), 1, player, 0)
st.saveGlobalQuestVar(var+str(j+1),str(skill.getId())+";")
return "true"
player.sendPacket(SystemMessage(SystemMessageId.ITEM_MISSING_TO_LEARN_SKILL))
return "false"
def onAcquireSkillInfo (self, npc, player, skill) :
asi = AcquireSkillInfo(skill.getId(), skill.getLevel(), 0, 4)
for i in SKILLITEMS:
if skill.getId() in SUBSKILLS[i]:
asi.addRequirement(99, i, 1, 50)
player.sendPacket(asi)
return ""
def onAdvEvent (self, event, npc, player) :
htmltext = event
st = player.getQuestState(qn)
if event == "learn":
htmltext = ""
st2 = player.getQuestState("136_MoreThanMeetsTheEye")
if player.isSubClassActive():
htmltext = "8005-04.htm"
elif not st2 or st2.getState() != State.COMPLETED :
htmltext = "8005-03.htm"
else:
j=0
for i in SKILLITEMS:
j+=st.getQuestItemsCount(i)
if j > 0:
self.onAcquireSkillList(npc,player)
else:
htmltext = "8005-04.htm"
elif event == "cancel":
if st.getQuestItemsCount(57) < 10000000:
htmltext = "8005-07.htm"
elif player.getSubClasses().size() == 0:
htmltext = "8005-03.htm"
elif player.isSubClassActive():
htmltext = "8005-04.htm"
else:
activeCertifications = 0
for var in QUESTVARSITEMS:
for i in range(Config.MAX_SUBCLASS):
qvar = st.getGlobalQuestVar(var+str(i+1))
if qvar.endswith(";") :
activeCertifications += 1
elif qvar != "" and qvar != "0" :
activeCertifications += 1
if activeCertifications == 0:
htmltext = "8005-08.htm"
else:
for var in QUESTVARSITEMS:
for i in range(Config.MAX_SUBCLASS):
qvar = st.getGlobalQuestVar(var+str(i+1))
if qvar.endswith(";"):
skill = SkillTable.getInstance().getInfo(int(qvar.replace(";","")), 1)
if skill:
qvar = st.getGlobalQuestVar(var+str(i+1))
skillId = int(qvar.replace(";",""))
skillLevel = player.getSkillLevel(skillId)
player.removeSkill(skill,skillLevel)
st.saveGlobalQuestVar(var+str(i+1), "0")
elif qvar != "" and qvar != "0" :
Item = player.getInventory().getItemByObjectId(int(qvar))
if Item :
player.destroyItem(qn, int(qvar), 1, player, 0)
else :
Item = player.getWarehouse().getItemByObjectId(int(qvar))
if Item :
print "Somehow " + player.getName() + " put certification book into warehouse!"
player.getWarehouse().destroyItem(qn, Item, 1, player, None)
else:
print "Somehow " + player.getName() + " his/her delete certification book!"
st.saveGlobalQuestVar(var+str(i+1), "0")
st.takeItems(57,10000000)
htmltext = "8005-09.htm"
player.sendSkillList()
return htmltext
def onTalk (Self,npc,player):
st = player.getQuestState(qn)
npcId = npc.getNpcId()
if npcId == NPC:
st.set("cond","0")
st.setState(State.STARTED)
return "8005-01.htm"
QUEST = Quest(-1,qn,"custom")
QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)
QUEST.addAcquireSkillId(NPC)
вот скрипт. айди квеста 136. К сожалению не рублю в языке.Повторяю - как сделать чтобы сертифик был без квеста.
0
· 11/17/2009, 03:32 PM
В питоне не разбираюсь, тупой язык. Вот проверка идет на наличие квеста
Код
st2 = player.getQuestState("136_MoreThanMeetsTheEye")
дальше сам думай =)
0
· 11/17/2009, 03:33 PM
так это и найдено поэтому айди и сказан был)))а вот что там делать фз))
0
· 11/17/2009, 04:15 PM
Код
st2 = player.getQuestState("136_MoreThanMeetsTheEye")
...
...
elif not st2 or st2.getState() != State.COMPLETED :
htmltext = "8005-03.htm"
...
...
elif not st2 or st2.getState() != State.COMPLETED :
htmltext = "8005-03.htm"
Вырезай, тестируй.
You can't feeling! No you can't feeling! And you can't feeling!
— People = Shit
0
· 11/17/2009, 08:11 PM
Traceback (innermost last):
(no code object) at line 0
SyntaxError: ('invalid syntax', ('__init__.py', 105, 6, ' elif not st2 or st2.getState() != State.COMPLETED :'))
0
· 11/17/2009, 09:31 PM
Раскрывающийся текст
Цитата
#
# Created by Gigiikun on 2009.06.01.
import sys
from net.sf.l2j import Config
from net.sf.l2j.gameserver.datatables import SkillTable
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.gameserver.network import SystemMessageId
from net.sf.l2j.gameserver.network.serverpackets import AcquireSkillInfo
from net.sf.l2j.gameserver.network.serverpackets import AcquireSkillList
from net.sf.l2j.gameserver.network.serverpackets import SystemMessage
from net.sf.l2j.gameserver.util import Util
qn = "8005_SubClassSkills"
NPC=32323
SKILLITEMS=[10280,10281,10282,10283,10284,10285,10286,10287,10288,10289,10290,10
291,10292,10293,10294,10612]
SUBSKILLS={
10280:[631,632,633,634], # Common
10612:[637,638,639,640,799,800], # Enhanced
10281:[801,650,651], # Warriors
10282:[804,641,652], # Knights
10283:[644,645,653], # Rogues
10284:[802,646,654], # Wizards
10285:[803,648,1490], # Healers
10286:[643,1489,1491], # Summoners
10287:[642,647,655], # Enchanters
10289:[656], # Warriors
10288:[657], # Knights
10290:[658], # Rogues
10292:[659], # Wizards
10291:[661], # Healers
10294:[660], # Summoners
10293:[662] # Enchanters
}
QUESTVARSITEMS={
"EmergentAbility65-":[10280],
"EmergentAbility70-":[10280],
"ClassAbility75-":[10612,10281,10282,10283,10284,10285,10286,10287],
"ClassAbility80-":[10288,10289,10290,10291,10292,10293,10294]
}
class Quest (JQuest) :
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
def onAcquireSkillList (self, npc, player) :
asl = AcquireSkillList(AcquireSkillList.SkillType.unk4)
st = player.getQuestState(qn)
oldSkills = player.getAllSkills()
count = 0
for i in SKILLITEMS:
for j in SUBSKILLS[i]:
minLevel = 0
maxLevel = SkillTable.getInstance().getMaxLevel(j)
for oldsk in oldSkills:
if oldsk.getId() == j:
minLevel = oldsk.getLevel()
if minLevel < maxLevel:
count+=1
asl.addSkill(j, minLevel+1, maxLevel, 0, 0)
player.sendPacket(asl)
if count == 0:
player.sendPacket(SystemMessage(SystemMessageId.NO_MORE_SKILLS_TO_LEARN))
return ""
def onAcquireSkill (self, npc, player, skill) :
if player.isSubClassActive():
player.sendMessage("You are trying to learn skill that u can't..");
Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " tried to learn skill that he can't!!!", Config.DEFAULT_PUNISH);
return "false"
st = player.getQuestState(qn)
for i in SKILLITEMS:
if skill.getId() in SUBSKILLS[i]:
for var in QUESTVARSITEMS:
if i in QUESTVARSITEMS[var]:
for j in range(Config.MAX_SUBCLASS):
qvar = st.getGlobalQuestVar(var+str(j+1))
if qvar != "" and qvar != "0" and not qvar.endswith(";") :
Item = player.getInventory().getItemByObjectId(int(qvar))
if Item and Item.getItemId() == i:
player.destroyItem(qn,int(qvar), 1, player, 0)
st.saveGlobalQuestVar(var+str(j+1),str(skill.getId())+";")
return "true"
player.sendPacket(SystemMessage(SystemMessageId.ITEM_MISSING_TO_LEARN_SKILL))
return "false"
def onAcquireSkillInfo (self, npc, player, skill) :
asi = AcquireSkillInfo(skill.getId(), skill.getLevel(), 0, 4)
for i in SKILLITEMS:
if skill.getId() in SUBSKILLS[i]:
asi.addRequirement(99, i, 1, 50)
player.sendPacket(asi)
return ""
def onAdvEvent (self, event, npc, player) :
htmltext = event
st = player.getQuestState(qn)
if event == "learn":
htmltext = ""
st2 = player.getQuestState("136_MoreThanMeetsTheEye")
if player.isSubClassActive():
htmltext = "8005-04.htm"
elif not st2 or st2.getState() != State.COMPLETED :
htmltext = "8005-03.htm"
else:
j=0
for i in SKILLITEMS:
j+=st.getQuestItemsCount(i)
if j > 0:
self.onAcquireSkillList(npc,player)
else:
htmltext = "8005-04.htm"
elif event == "cancel":
if st.getQuestItemsCount(57) < 10000000:
htmltext = "8005-07.htm"
elif player.getSubClasses().size() == 0:
htmltext = "8005-03.htm"
elif player.isSubClassActive():
htmltext = "8005-04.htm"
else:
activeCertifications = 0
for var in QUESTVARSITEMS:
for i in range(Config.MAX_SUBCLASS):
qvar = st.getGlobalQuestVar(var+str(i+1))
if qvar.endswith(";") :
activeCertifications += 1
elif qvar != "" and qvar != "0" :
activeCertifications += 1
if activeCertifications == 0:
htmltext = "8005-08.htm"
else:
for var in QUESTVARSITEMS:
for i in range(Config.MAX_SUBCLASS):
qvar = st.getGlobalQuestVar(var+str(i+1))
if qvar.endswith(";"):
skill = SkillTable.getInstance().getInfo(int(qvar.replace(";","")), 1)
if skill:
qvar = st.getGlobalQuestVar(var+str(i+1))
skillId = int(qvar.replace(";",""))
skillLevel = player.getSkillLevel(skillId)
player.removeSkill(skill,skillLevel)
st.saveGlobalQuestVar(var+str(i+1), "0")
elif qvar != "" and qvar != "0" :
Item = player.getInventory().getItemByObjectId(int(qvar))
if Item :
player.destroyItem(qn, int(qvar), 1, player, 0)
else :
Item = player.getWarehouse().getItemByObjectId(int(qvar))
if Item :
print "Somehow " + player.getName() + " put certification book into warehouse!"
player.getWarehouse().destroyItem(qn, Item, 1, player, None)
else:
print "Somehow " + player.getName() + " his/her delete certification book!"
st.saveGlobalQuestVar(var+str(i+1), "0")
st.takeItems(57,10000000)
htmltext = "8005-09.htm"
player.sendSkillList()
return htmltext
def onTalk (Self,npc,player):
st = player.getQuestState(qn)
npcId = npc.getNpcId()
if npcId == NPC:
st.set("cond","0")
st.setState(State.STARTED)
return "8005-01.htm"
QUEST = Quest(-1,qn,"custom")
QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)
QUEST.addAcquireSkillId(NPC)
# Created by Gigiikun on 2009.06.01.
import sys
from net.sf.l2j import Config
from net.sf.l2j.gameserver.datatables import SkillTable
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.gameserver.network import SystemMessageId
from net.sf.l2j.gameserver.network.serverpackets import AcquireSkillInfo
from net.sf.l2j.gameserver.network.serverpackets import AcquireSkillList
from net.sf.l2j.gameserver.network.serverpackets import SystemMessage
from net.sf.l2j.gameserver.util import Util
qn = "8005_SubClassSkills"
NPC=32323
SKILLITEMS=[10280,10281,10282,10283,10284,10285,10286,10287,10288,10289,10290,10
291,10292,10293,10294,10612]
SUBSKILLS={
10280:[631,632,633,634], # Common
10612:[637,638,639,640,799,800], # Enhanced
10281:[801,650,651], # Warriors
10282:[804,641,652], # Knights
10283:[644,645,653], # Rogues
10284:[802,646,654], # Wizards
10285:[803,648,1490], # Healers
10286:[643,1489,1491], # Summoners
10287:[642,647,655], # Enchanters
10289:[656], # Warriors
10288:[657], # Knights
10290:[658], # Rogues
10292:[659], # Wizards
10291:[661], # Healers
10294:[660], # Summoners
10293:[662] # Enchanters
}
QUESTVARSITEMS={
"EmergentAbility65-":[10280],
"EmergentAbility70-":[10280],
"ClassAbility75-":[10612,10281,10282,10283,10284,10285,10286,10287],
"ClassAbility80-":[10288,10289,10290,10291,10292,10293,10294]
}
class Quest (JQuest) :
def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
def onAcquireSkillList (self, npc, player) :
asl = AcquireSkillList(AcquireSkillList.SkillType.unk4)
st = player.getQuestState(qn)
oldSkills = player.getAllSkills()
count = 0
for i in SKILLITEMS:
for j in SUBSKILLS[i]:
minLevel = 0
maxLevel = SkillTable.getInstance().getMaxLevel(j)
for oldsk in oldSkills:
if oldsk.getId() == j:
minLevel = oldsk.getLevel()
if minLevel < maxLevel:
count+=1
asl.addSkill(j, minLevel+1, maxLevel, 0, 0)
player.sendPacket(asl)
if count == 0:
player.sendPacket(SystemMessage(SystemMessageId.NO_MORE_SKILLS_TO_LEARN))
return ""
def onAcquireSkill (self, npc, player, skill) :
if player.isSubClassActive():
player.sendMessage("You are trying to learn skill that u can't..");
Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " tried to learn skill that he can't!!!", Config.DEFAULT_PUNISH);
return "false"
st = player.getQuestState(qn)
for i in SKILLITEMS:
if skill.getId() in SUBSKILLS[i]:
for var in QUESTVARSITEMS:
if i in QUESTVARSITEMS[var]:
for j in range(Config.MAX_SUBCLASS):
qvar = st.getGlobalQuestVar(var+str(j+1))
if qvar != "" and qvar != "0" and not qvar.endswith(";") :
Item = player.getInventory().getItemByObjectId(int(qvar))
if Item and Item.getItemId() == i:
player.destroyItem(qn,int(qvar), 1, player, 0)
st.saveGlobalQuestVar(var+str(j+1),str(skill.getId())+";")
return "true"
player.sendPacket(SystemMessage(SystemMessageId.ITEM_MISSING_TO_LEARN_SKILL))
return "false"
def onAcquireSkillInfo (self, npc, player, skill) :
asi = AcquireSkillInfo(skill.getId(), skill.getLevel(), 0, 4)
for i in SKILLITEMS:
if skill.getId() in SUBSKILLS[i]:
asi.addRequirement(99, i, 1, 50)
player.sendPacket(asi)
return ""
def onAdvEvent (self, event, npc, player) :
htmltext = event
st = player.getQuestState(qn)
if event == "learn":
htmltext = ""
st2 = player.getQuestState("136_MoreThanMeetsTheEye")
if player.isSubClassActive():
htmltext = "8005-04.htm"
elif not st2 or st2.getState() != State.COMPLETED :
htmltext = "8005-03.htm"
else:
j=0
for i in SKILLITEMS:
j+=st.getQuestItemsCount(i)
if j > 0:
self.onAcquireSkillList(npc,player)
else:
htmltext = "8005-04.htm"
elif event == "cancel":
if st.getQuestItemsCount(57) < 10000000:
htmltext = "8005-07.htm"
elif player.getSubClasses().size() == 0:
htmltext = "8005-03.htm"
elif player.isSubClassActive():
htmltext = "8005-04.htm"
else:
activeCertifications = 0
for var in QUESTVARSITEMS:
for i in range(Config.MAX_SUBCLASS):
qvar = st.getGlobalQuestVar(var+str(i+1))
if qvar.endswith(";") :
activeCertifications += 1
elif qvar != "" and qvar != "0" :
activeCertifications += 1
if activeCertifications == 0:
htmltext = "8005-08.htm"
else:
for var in QUESTVARSITEMS:
for i in range(Config.MAX_SUBCLASS):
qvar = st.getGlobalQuestVar(var+str(i+1))
if qvar.endswith(";"):
skill = SkillTable.getInstance().getInfo(int(qvar.replace(";","")), 1)
if skill:
qvar = st.getGlobalQuestVar(var+str(i+1))
skillId = int(qvar.replace(";",""))
skillLevel = player.getSkillLevel(skillId)
player.removeSkill(skill,skillLevel)
st.saveGlobalQuestVar(var+str(i+1), "0")
elif qvar != "" and qvar != "0" :
Item = player.getInventory().getItemByObjectId(int(qvar))
if Item :
player.destroyItem(qn, int(qvar), 1, player, 0)
else :
Item = player.getWarehouse().getItemByObjectId(int(qvar))
if Item :
print "Somehow " + player.getName() + " put certification book into warehouse!"
player.getWarehouse().destroyItem(qn, Item, 1, player, None)
else:
print "Somehow " + player.getName() + " his/her delete certification book!"
st.saveGlobalQuestVar(var+str(i+1), "0")
st.takeItems(57,10000000)
htmltext = "8005-09.htm"
player.sendSkillList()
return htmltext
def onTalk (Self,npc,player):
st = player.getQuestState(qn)
npcId = npc.getNpcId()
if npcId == NPC:
st.set("cond","0")
st.setState(State.STARTED)
return "8005-01.htm"
QUEST = Quest(-1,qn,"custom")
QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)
QUEST.addAcquireSkillId(NPC)
Удали вот это, а не то, что между ними.
You can't feeling! No you can't feeling! And you can't feeling!
— People = Shit
0
Topic is closed for replies


