SenSEY 0 Опубликовано 7 ноября, 2011 Вообщем установил себе на сервер last hero.. Все как надо по инструкции поставил запуск евента после рестарта сервера на 2 минут жду 20 минут не какого ефекта захожу в папку с квестом, а там вот такое чудо: Error on: C:\Documents and Settings\Администратор\Рабочий стол\Normal STAT\gameserver\data\scripts\quests\777_LastHero\__init__.py.error.log Line: -1 - Column: -1 Traceback (innermost last): (no code object) at line 0 SyntaxError: ('invalid syntax', ('__init__.py', 10, 2, ' from com.l2emu import ThreadConnection')) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SHARK 39 Опубликовано 7 ноября, 2011 1.Название сборки. 2.Импорты в студию под Сполер 3.У вас синтаксическая проблема в 10-той строке. проверьте путь импорта до ThreadConnection (ядро открыть можно .rar либо 7zip) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SenSEY 0 Опубликовано 7 ноября, 2011 l2wt Скрытый текстimport sysfrom com.l2emu.gameserver.model.quest import Statefrom com.l2emu.gameserver.model.quest import QuestStatefrom com.l2emu.gameserver.model.quest import Questfrom com.l2emu.gameserver.datatables import DoorTablefrom com.l2emu.gameserver.datatables import SkillTablefrom com.l2emu.gameserver.model.quest.jython import QuestJython as JQuestfrom com.l2emu.gameserver import Announcementsfrom com.l2emu import L2DatabaseFactory from com.l2emu import ThreadConnectionfrom com.l2emu.gameserver.ai import CtrlIntentionfrom com.l2emu.util import Rndfrom java.lang import Systemfrom com.l2emu.gameserver.model import L2Worldfrom com.l2emu.gameserver.model.actor.instance import L2DoorInstancefrom com.l2emu.gameserver.datatables import DoorTable; qn = "777_LastHero"# =======================================## Настройки ## =======================================## Название Эвента (только английские символы)Event_name = "LastHero" # Город, в котором вы хотите поставить регистрирующего НПЦ.StartLocation = "Giran" # ID-номер регистрирующего нпцReg_Npc = 77777 # Координаты, где будет появляться регистрирующий НПЦStartNpcCoordinat = [82698,148638,-3468] # Вещи, необходимый для участия в Эвенте.# Формат записи [itemId1,itemId2,....]Price = [57] # Сколько заданных вещей необходимых для участия в Эвенте. Если хотите чтобы участие было бесплатным - поставте 0.# Формат записи [itemId1_count,itemId2_count,....]Price_count = [1000000] # Минимальный уровень, на котором игрок сможет принять участие в Эвенте.Min_level = 40 # Через какое время эвент запустится после рестарта сервера.(указывать в секундах)Time_to_start_after_restart = 60 # Через какое время после телепортации на эвент начнеться битва.(указывать в секундах)Time_to_wait_battle = 60 # Длительность эвента. (указывать в минутах)EVENT_INTERVAL = 5 # Время между Эвентами.(указывать в минутах)Time_to_next_start = 1440 # Время на регистрацию.(указывать в минутах)Time_for_regestration = 5 # Как часто аннонсить о регистрации на Эвент.(указывать в секундах)Announce_reg_delay = 60 # Минимальное количество игроков(не меньше 2).Min_participate_count = 2 # Максимальное количество игроков.Max_participate_count = 80 # Список наград при победе в эвенте. Выдаётся каждому игроку. # Формат записи: [[itemId1,count1,chance1],[itemId2,count2,chanceN],...]Rewards = [[6578,5,65],[6588,5,65],[6673,3000,100]] # Координаты точки куда будут телепортироваться игроки.Teleport_coordinat = [149438, 46785, -3413] # Двери которые будут закрываться на периоод прохождения эвента.# Формат записи: [Door_id1,Door_id2,...]Doors = [24190002,24190003] # ================Неизменять================ #lastPlayers = []lastX = []lastY = []lastZ = []closed = 1Players = []Deadplayers = []annom = 1f = 0# ========================================== # class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def init_LoadGlobalData(self) : self.startQuestTimer("open_reg", Time_to_start_after_restart *1000, None, None) return def onTalk (Self,npc,player): global Players,closed st = player.getQuestState(qn) npcId = npc.getNpcId() if npcId == Reg_Npc: if closed<>1: if not player.isInOlympiadMode() : if player.getLevel() >= Min_level: if player.getName() not in Players: if len(Players) <= Max_participate_count : if Price_count[0]<>0: if st.getQuestItemsCount(Price[0])>Price_count[0]: st.takeItems(Price[0],Price_count[0]) Players.append(player.getName()) return "reg.htm" else: st.exitQuest(1) return "noPrice.htm" else: Players.append(player.getName()) return "reg.htm" else: return "max.htm" else: return "yje.htm" else: return "lvl.htm" else: return "You register in olympiad games now" else: return "noreg.htm" return def onAdvEvent (self,event,npc,player): global Deadplayers,Players,annom,closed,Doors,lastPlayers,lastX,lastY,lastZ,f,n if event == "open_reg" : closed = 0 annom = 1 lastPlayers = [] Players = [] Deadplayers = [] lastX = [] lastY = [] lastZ = [] npc = self.addSpawn(Reg_Npc,StartNpcCoordinat[0],StartNpcCoordinat[1],StartNpcCoordinat[2],30000,False,0) self.startQuestTimer("wait_battle", Time_for_regestration*60000, npc, None) self.startQuestTimer("announce", Announce_reg_delay*1000, None, None) Announcements.getInstance().announceToAll("Opened registration for "+str(Event_name)+" event! You can register in "+str(StartLocation)+".") if event == "start_event": if len(Players)< Min_participate_count : closed=1 Announcements.getInstance().announceToAll("Event "+str(Event_name)+" was canceled due lack of participation.") self.startQuestTimer("set_winner", 1000, None, None) self.startQuestTimer("open_reg", Time_to_next_start*60000, None, None) else: closed=1 Announcements.getInstance().announceToAll("Event "+str(Event_name)+" has started!") self.startQuestTimer("konec", EVENT_INTERVAL*60000, None, None) f=0 for nm in Players : i=L2World.getInstance().getPlayer(nm) if i<>None: if i.isOnline() : i.getAppearance().setVisible() i.broadcastStatusUpdate() i.broadcastUserInfo() while len(Players)>1 : for nm in Players : i=L2World.getInstance().getPlayer(nm) if i<>None: if i.isDead(): i.reviveAnswer(0) Deadplayers.append(i.getName()) Players.remove(i.getName()) self.startQuestTimer("set_winner", 1000, None, None) if event == "announce" and closed==0 and (Time_for_regestration*60 - Announce_reg_delay * annom)>0: Announcements.getInstance().announceToAll(str(Time_for_regestration*60 - Announce_reg_delay * annom ) + " seconds until event "+str(Event_name)+" will start! You can register in "+str(StartLocation)+".") annom=annom+1 self.startQuestTimer("announce", Announce_reg_delay*1000, None, None) if event == "set_winner" : if len(Players) > 0 and len(Players + Deadplayers) >= Min_participate_count: winner=L2World.getInstance().getPlayer(Players[0]) Deadplayers.append(Players[0]) if winner.isDead(): Announcements.getInstance().announceToAll("Event "+str(Event_name)+" has ended. All players is dead. Nobody Win") else : f=1 Announcements.getInstance().announceToAll("Event "+str(Event_name)+" has ended. "+str(Players[0])+" win!") for nm in Deadplayers : i=L2World.getInstance().getPlayer(nm) if i<>None and i.isOnline(): if i.isDead(): i.doRevive() i.setCurrentCp(i.getMaxCp()) i.setCurrentHp(i.getMaxHp()) i.setCurrentMp(i.getMaxMp()) i.stopAllEffects() i.broadcastStatusUpdate() i.broadcastUserInfo() if len(Deadplayers)>0: n = 0 for nm in lastPlayers : i=L2World.getInstance().getPlayer(nm) i.teleToLocation(lastX[n],lastY[n],lastZ[n]) n = n + 1 if winner<>None: if winner.isOnline() : L2World.getInstance().getPlayer(Players[0]).setHero(True) Announcements.getInstance().announceToAll("Next time registration opend at "+str(Time_to_next_start)+" minute(s)") for d in Doors: door = DoorTable.getInstance().getDoor(d) door.openMe() lastPlayers = [] Players = [] Deadplayers = [] lastX = [] lastY = [] lastZ = [] self.startQuestTimer("open_reg", Time_to_next_start*60000, None, None) if event == "exit" : if player.getName() in Players: Players.remove(player.getName()) return "exit.htm" else: return "default.htm" if event == "konec" : if f==0: for nm in Players : i=L2World.getInstance().getPlayer(nm) if i<>None: if i.isOnline() : i.teleToLocation(82698,148638,-3468) i.broadcastStatusUpdate() i.broadcastUserInfo() Announcements.getInstance().announceToAll("Event "+str(Event_name)+" was ended in drawn.") self.startQuestTimer("open_reg", Time_to_next_start*60000, None, None) if event == "wait_battle": npc.deleteMe() if len(Players) >= Min_participate_count: for nm in Players: i=L2World.getInstance().getPlayer(nm) if i<>None: if not i.isOnline() or i.isInOlympiadMode() or i.isInJail(): Players.remove(nm) else: Players.remove(nm) for nm in Players: i=L2World.getInstance().getPlayer(nm) if i<>None: if i.isOnline() : if i.isDead(): i.doRevive() i.setCurrentCp(i.getMaxCp()) i.setCurrentHp(i.getMaxHp()) i.setCurrentMp(i.getMaxMp()) i.stopAllEffects() i.getAppearance().setInvisible(); i.broadcastStatusUpdate() i.broadcastUserInfo() lastPlayers.append(nm) lastX.append(i.getX()) lastY.append(i.getY()) lastZ.append(i.getZ()) i.teleToLocation(Teleport_coordinat[0],Teleport_coordinat[1],Teleport_coordinat[2]) for d in Doors: door = DoorTable.getInstance().getDoor(d) door.closeMe() Announcements.getInstance().announceToAll("Event "+str(Event_name)+": Registration close. You have "+str(Time_to_wait_battle)+" seconds for buffs before battle start") self.startQuestTimer("start_event", Time_to_wait_battle*1000, None, None) else : self.startQuestTimer("start_event", 1000, None, None) QUEST = Quest(777, qn, "Custom") QUEST.addStartNpc(int(Reg_Npc))QUEST.addTalkId(int(Reg_Npc)) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SHARK 39 Опубликовано 7 ноября, 2011 Импорты для сборки l2emu Скрытый текстimport sysfrom com.l2emu.gameserver.model.quest import State from com.l2emu.gameserver.model.quest import QuestState from com.l2emu.gameserver.model.quest import Quest from com.l2emu.gameserver.datatables import DoorTable from com.l2emu.gameserver.datatables import SkillTable from com.l2emu.gameserver.model.quest.jython import QuestJython as JQuest from com.l2emu.gameserver import Announcements from com.l2emu import L2DatabaseFactory from com.l2emu import ThreadConnection from com.l2emu.gameserver.ai import CtrlIntention from com.l2emu.util import Rnd from java.lang import System from com.l2emu.gameserver.model import L2World from com.l2emu.gameserver.model.actor.instance import L2DoorInstance from com.l2emu.gameserver.datatables import DoorTable; Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SenSEY 0 Опубликовано 7 ноября, 2011 а на мою сборку не как не переделать? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SHARK 39 Опубликовано 7 ноября, 2011 2 минуты работы... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SHARK 39 Опубликовано 7 ноября, 2011 Мой скайп в профиле. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SHARK 39 Опубликовано 7 ноября, 2011 Странно у них ядро от l2emu o.O И файла ThreadConnection нету - вот почему ошибку выдает ... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SHARK 39 Опубликовано 7 ноября, 2011 Удалите строки: Скрытый текст from com.l2emu import ThreadConnection и from com.l2emu.gameserver.datatables import DoorTable; Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SenSEY 0 Опубликовано 7 ноября, 2011 Серавно не робит! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
***{Mr}{Fallen}*** 0 Опубликовано 13 ноября, 2011 Может русские символы не надо? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Admiralio 0 Опубликовано 16 ноября, 2011 На попробуй этот Ссылка Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Admiralio 0 Опубликовано 16 ноября, 2011 Странно у них ядро от l2emu o.O И файла ThreadConnection нету - вот почему ошибку выдает ... Есть этот файл! вот сам глянь тыц! это их исходный код). Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты