Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Lineage II (https://forum.zone-game.info/forumdisplay.php?f=34)
-   -   Саб класс скил ошибка (https://forum.zone-game.info/showthread.php?t=9781)

[Red Dragon] 23.08.2010 14:03

Саб класс скил ошибка
 
http://www.7image.ru/pics/0810/61837832.png

http://www.7image.ru/pics/0810/61838867.gif

http://www.7image.ru/pics/0810/61839566.gif

Дело в том что подошел взять трансформ у Warshmita но не дало а дало ошибку как это исправить
Посмотри:
Свернуть ↑Развернуть ↓

[Red Dragon] 27.08.2010 14:34

Re: Саб класс скил ошибка
 
ап темку че не кто незнает (

Devilop 27.08.2010 16:49

Re: Саб класс скил ошибка
 
скорее всего проблема в ядре сервера
исправляется путём либо скачивании более свежего ядра либо скачиванием сборки от другой команды

[Red Dragon] 27.08.2010 19:05

Re: Саб класс скил ошибка
 
а где найти свежее ядро для l2open

[Red Dragon] 31.08.2010 00:54

Re: Саб класс скил ошибка
 
может кто знает как это исправить думаю не в ядре

gorodetskiy 31.08.2010 12:20

Re: Саб класс скил ошибка
 
Цитата:

Сообщение от [Red Dragon] (Сообщение 86087)
может кто знает как это исправить думаю не в ядре

тогда 201 строку смотри в файле, там я думаю увидишь на что ссылается)

[Red Dragon] 03.09.2010 10:49

Re: Саб класс скил ошибка
 
Код:

#
# Created by Gigiikun on 2009.06.01.

import sys

from com.l2open.gameserver.datatables import CharTemplateTable
from com.l2open.gameserver.model.base        import ClassType
from com.l2open.gameserver.model.base        import Race
from com.l2open.gameserver.model.quest        import State
from com.l2open.gameserver.model.quest        import QuestState
from com.l2open.gameserver.model.quest.jython import QuestJython as JQuest
from com.l2open.gameserver.network            import SystemMessageId
from com.l2open.gameserver.network.serverpackets import SystemMessage

qn = "9002_SubClassCertification"
NPC = [30026, 30031, 30037, 30066, 30070, 30109, 30115, 30120, 30154, 30174, 30175, 30176, 30187, \
    30191, 30195, 30288, 30289, 30290, 30297, 30358, 30373, 30462, 30474, 30498, 30499, 30500, \
    30503, 30504, 30505, 30508, 30511, 30512, 30513, 30520, 30525, 30565, 30594, 30595, 30676, \
    30677, 30681, 30685, 30687, 30689, 30694, 30699, 30704, 30845, 30847, 30849, 30854, 30857, \
    30862, 30865, 30894, 30897, 30900, 30905, 30910, 30913, 31269, 31272, 31276, 31279, 31285, \
    31288, 31314, 31317, 31321, 31324, 31326, 31328, 31331, 31334, 31336, 31755, 31958, 31961, \
    31965, 31968, 31974, 31977, 31996, 32092, 32093, 32094, 32095, 32096, 32097, 32098, 32145, \
    32146, 32147, 32150, 32153, 32154, 32157, 32158, 32160, 32171, 32193, 32199, 32202, 32213, \
    32214, 32221, 32222, 32229, 32230, 32233, 32234]
WARRIORCLASSES = [3, 88, 2, 89, 46, 48, 113, 114, 55, 117, 56, 118, 127, 131, 128, 129, 132, 133]
ROGUECLASSES = [9, 92, 24, 102, 37, 109, 130, 134, 8, 93, 23, 101, 36, 108]
KNIGHTCLASSES = [5, 90, 6, 91, 20, 99, 33, 106]
SUMMONERCLASSES = [14, 96, 28, 104, 41, 111]
WIZARDCLASSES = [12, 94, 13, 95, 27, 103, 40, 110]
HEALERCLASSES = [16, 97, 30, 105, 43, 112]
ENCHANTERCLASSES = [17, 98, 21, 100, 34, 107, 51, 115, 52, 116, 135, 136]
COMMONITEM = 10280
ENHANCEDITEM = 10612
CLASSITEMS = {
0:10281, # Warriors
1:10282, # Knights
2:10283, # Rogues
3:10287, # Enchanters
4:10284, # Wizards
5:10286, # Summoners
6:10285  # Healers
}
TRANSFORMITEMS = {
0:10289, # Warriors
1:10288, # Knights
2:10290, # Rogues
3:10293, # Enchanters
4:10292, # Wizards
5:10294, # Summoners
6:10291  # Healers
}

def isCorrectMaster(npc, player):
  charTemp = CharTemplateTable.getInstance().getTemplate(player.getClassId())
  currentRace = charTemp.race
  if ((npc.getVillageMasterRace() == Race.Human) and (currentRace == Race.Human or currentRace == Race.Elf) and npc.getVillageMasterTeachType() == ClassType.Fighter and not player.isMageClass()):
    return True
  elif ((npc.getVillageMasterRace() == Race.Human) and (currentRace == Race.Human or currentRace == Race.Elf) and npc.getVillageMasterTeachType() == ClassType.Mystic and player.getClassId().getId() in WIZARDCLASSES):
    return True
  elif ((npc.getVillageMasterRace() == Race.Human) and (currentRace == Race.Human or currentRace == Race.Elf) and npc.getVillageMasterTeachType() == ClassType.Mystic and player.getClassId().getId() in SUMMONERCLASSES):
    return True
  elif ((npc.getVillageMasterRace() == Race.Human) and (currentRace == Race.Human or currentRace == Race.Elf) and npc.getVillageMasterTeachType() == ClassType.Priest and player.getClassId().getId() in HEALERCLASSES):
    return True
  elif ((npc.getVillageMasterRace() == Race.Human) and (currentRace == Race.Human or currentRace == Race.Elf) and npc.getVillageMasterTeachType() == ClassType.Priest and player.getClassId().getId() in ENCHANTERCLASSES and player.isMageClass()):
    return True
  elif (npc.getVillageMasterRace() == Race.DarkElf and currentRace == Race.DarkElf):
    return True
  elif (npc.getVillageMasterRace() == Race.Orc and currentRace == Race.Orc):
    return True
  elif (npc.getVillageMasterRace() == Race.Dwarf and currentRace == Race.Dwarf):
    return True
  elif (npc.getVillageMasterRace() == Race.Kamael and currentRace == Race.Kamael):
    return True
  return False

def getClassIndex(player):
  if player.getClassId().getId() in WARRIORCLASSES:
    return 0
  if player.getClassId().getId() in KNIGHTCLASSES:
    return 1
  if player.getClassId().getId() in ROGUECLASSES:
    return 2
  if player.getClassId().getId() in ENCHANTERCLASSES:
    return 3
  if player.getClassId().getId() in WIZARDCLASSES:
    return 4
  if player.getClassId().getId() in SUMMONERCLASSES:
    return 5
  if player.getClassId().getId() in HEALERCLASSES:
    return 6
  return - 1

def getCertified(player, itemId, var):
  st = player.getQuestState(qn)
  qvar = st.getGlobalQuestVar(var)
  if qvar != "" and qvar != "0" :
    return ""
  item = player.getInventory().addItem("Quest", itemId, 1, player, player.getTarget())
  st.saveGlobalQuestVar(var, str(item.getObjectId()))
  smsg = SystemMessage(SystemMessageId.EARNED_ITEM)
  smsg.addItemName(item)
  player.sendPacket(smsg)
  return

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)
  htmltext = event
  if event == "GetCertified":
    if player.isSubClassActive():
      if isCorrectMaster(npc, player):
        if player.getLevel() >= 65:
          return "CertificationList.htm"
        else:
          return "9002-08.htm"
      else:
        return "9002-04.htm"
    else:
      return "9002-03.htm"
  elif event == "Obtain65":
    html = "<html><body>Subclass Skill Certification:<br>You are trying to obtain level %level% certification of %class%, %skilltype%. Remember that once this subclass is certified, it cannot be re-certified -- even if you delete this class and develop another one -- without a special and expensive cancellation process.<br>Do you still want to be certified?<br><a action=\"bypass -h Quest 9002_SubClassCertification %event%\">Obtain certification.</a><br><a action=\"bypass -h Quest 9002_SubClassCertification 9002-05.htm\">Do not obtain certification.</a></body></html>"
    htmltext = html.replace("%level%", "65").replace("%class%", str(CharTemplateTable.getInstance().getClassNameById(player.getActiveClass()))).replace("%skilltype%", "common skill").replace("%event%", "lvl65Emergent")
  elif event == "Obtain70":
    html = "<html><body>Subclass Skill Certification:<br>You are trying to obtain level %level% certification of %class%, %skilltype%. Remember that once this subclass is certified, it cannot be re-certified -- even if you delete this class and develop another one -- without a special and expensive cancellation process.<br>Do you still want to be certified?<br><a action=\"bypass -h Quest 9002_SubClassCertification %event%\">Obtain certification.</a><br><a action=\"bypass -h Quest 9002_SubClassCertification 9002-05.htm\">Do not obtain certification.</a></body></html>"
    htmltext = html.replace("%level%", "70").replace("%class%", str(CharTemplateTable.getInstance().getClassNameById(player.getActiveClass()))).replace("%skilltype%", "common skill").replace("%event%", "lvl70Emergent")
  elif event == "Obtain75":
    html = "<html><body>Subclass Skill Certification:<br>You are trying to obtain level %level% certification of %class%, %skilltype%. Remember that once this subclass is certified, it cannot be re-certified -- even if you delete this class and develop another one -- without a special and expensive cancellation process.<br>Do you still want to be certified?<br><a action=\"bypass -h Quest 9002_SubClassCertification %event1%\">Obtain class specific skill certification.</a><br><a action=\"bypass -h Quest 9002_SubClassCertification %event2%\">Obtain master skill certification.</a><br><a action=\"bypass -h Quest 9002_SubClassCertification 9002-05.htm\">Do not obtain certification.</a></body></html>"
    htmltext = html.replace("%level%", "75").replace("%class%", str(CharTemplateTable.getInstance().getClassNameById(player.getActiveClass()))).replace("%skilltype%", "common skill or special skill").replace("%event1%", "lvl75Class").replace("%event2%", "lvl75Master")
  elif event == "Obtain80":
    html = "<html><body>Subclass Skill Certification:<br>You are trying to obtain level %level% certification of %class%, %skilltype%. Remember that once this subclass is certified, it cannot be re-certified -- even if you delete this class and develop another one -- without a special and expensive cancellation process.<br>Do you still want to be certified?<br><a action=\"bypass -h Quest 9002_SubClassCertification %event%\">Obtain certification.</a><br><a action=\"bypass -h Quest 9002_SubClassCertification 9002-05.htm\">Do not obtain certification.</a></body></html>"
    htmltext = html.replace("%level%", "80").replace("%class%", str(CharTemplateTable.getInstance().getClassNameById(player.getActiveClass()))).replace("%skilltype%", "transformation skill").replace("%event%", "lvl80Class")
  elif event.startswith("lvl"):
    level = int(event[3:5])
    type = event.replace(event[0:5], "")
    prefix = "-" + str(player.getClassIndex())
    if type == "Emergent":
      isAvailable65 = st.getGlobalQuestVar("EmergentAbility65" + prefix)
      isAvailable70 = st.getGlobalQuestVar("EmergentAbility70" + prefix)
      if event == "lvl65Emergent":
        if isAvailable65 == "" or isAvailable65 == "0":
          if player.getLevel() > 64:
            itemId = COMMONITEM
            var = "EmergentAbility" + str(level) + prefix
            getCertified(player, itemId, var)
            return "9002-07.htm"
          else:
            html = "<html><body>Subclass Skill Certification:<br>You are not yet ready to receive your level %level% certification. Work hard and come back later.</body></html>"
            htmltext = html.replace("%level%", (event[3:5]))
            return htmltext
        else:
          return "9002-06.htm"
      elif event == "lvl70Emergent":
        if isAvailable70 == "" or isAvailable70 == "0":
          if player.getLevel() > 69:
            itemId = COMMONITEM
            var = "EmergentAbility" + str(level) + prefix
            getCertified(player, itemId, var)
            return "9002-07.htm"
          else:
            html = "<html><body>Subclass Skill Certification:<br>You are not yet ready to receive your level %level% certification. Work hard and come back later.</body></html>"
            htmltext = html.replace("%level%", (event[3:5]))
            return htmltext
        else:
          return "9002-06.htm"
    elif type == "Master":
      isAvailable = st.getGlobalQuestVar("ClassAbility75" + prefix)
      if isAvailable == "" or isAvailable == "0":
        if player.getLevel() > 74:
          itemId = ENHANCEDITEM
          var = "ClassAbility" + str(level) + prefix
          getCertified(player, itemId, var)
          return "9002-07.htm"
        else:
          html = "<html><body>Subclass Skill Certification:<br>You are not yet ready to receive your level %level% certification. Work hard and come back later.</body></html>"
          htmltext = html.replace("%level%", (event[3:5]))
          return htmltext
      else:
        return "9002-06.htm"
    elif type == "Class":
      if level == 75:
        isAvailable = st.getGlobalQuestVar("ClassAbility75" + prefix)
        if isAvailable == "" or isAvailable == "0":
          if player.getLevel() > 74:
            itemId = CLASSITEMS[getClassIndex(player)]
            var = "ClassAbility" + str(level) + prefix
            getCertified(player, itemId, var)
            return "9002-07.htm"
          else:
            html = "<html><body>Subclass Skill Certification:<br>You are not yet ready to receive your level %level% certification. Work hard and come back later.</body></html>"
            htmltext = html.replace("%level%", (event[3:5]))
            return htmltext
        else:
          return "9002-06.htm"
      elif level == 80:
        isAvailable = st.getGlobalQuestVar("ClassAbility80" + prefix)
        if isAvailable == "" or isAvailable == "0":
          if player.getLevel() > 79: 
            itemId = TRANSFORMITEMS[getClassIndex(player)]
            var = "ClassAbility" + str(level) + prefix
            getCertified(player, itemId, var)
            return "9002-07.htm"
          else:
            html = "<html><body>Subclass Skill Certification:<br>You are not yet ready to receive your level %level% certification. Work hard and come back later.</body></html>"
            htmltext = html.replace("%level%", (event[3:5]))
            return htmltext
        else:
          return "9002-06.htm"
  return htmltext

 def onTalk (Self, npc, player):
  st = player.getQuestState(qn)
  npcId = npc.getNpcId()
  if npcId in NPC:
    st.set("cond", "0")
    st.setState(State.STARTED)
    return "9002-01.htm"

QUEST = Quest(-1, qn, "village_master")

for item in NPC:
  QUEST.addStartNpc(item)
  QUEST.addTalkId(item)

в этом файле искать ?

gorodetskiy 03.09.2010 11:24

Re: Саб класс скил ошибка
 
itemId = TRANSFORMITEMS[getClassIndex(player)]
вот 201 строка.
как понимаю недаёт итем

[Red Dragon] 03.09.2010 11:26

Re: Саб класс скил ошибка
 
да не дает книгу

gorodetskiy 03.09.2010 12:02

Re: Саб класс скил ошибка
 
Цитата:

Сообщение от [Red Dragon] (Сообщение 86510)
да не дает книгу

ну вот ошибка на лицо)
itemId = TRANSFORMITEMS[getClassIndex(player)]
ковыряй тут) что именно незнаю)


Текущее время: 23:41. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot