Nice 4 Опубликовано 18 мая, 2014 Здравствуй. Помогите пожалуйста решить проблему с дверью к Закену. Она не открывается в полночь. Вот что написано в файле door.csv #name;static_object_id;posx;posy;posz;hp;physical_defence;magic_defence;unlockable # Devils Isle pirate_isle_001;21240001;42001;208378;-3666;41864;208287;-3785;42006;208383;-3540;187500;100000;10000;True pirate_isle_002;21240002;43745;212594;-3623;43741;212433;-3742;43749;212600;-3497;187500;100000;10000;True pirate_isle_003;21240003;42167;213285;-3643;42085;213285;-3760;42247;213286;-3515;187500;476;383;True pirate_isle_004;21240004;51111;206106;-3912;51105;206102;-4031;51270;206110;-3786;187500;476;383;True pirate_isle_005;21240005;52910;206720;-3692;52910;206637;-3808;52910;206801;-3563;187500;476;383;True pirate_isle_006;21240006;52423;219103;-3209;52423;219032;-3312;52423;219174;-3067;187500;1000000;383;True Выделенная строка, это дверь для прохода к закену. Значение "unlockable" установлено в "True". Почему не открывается, понятия не имею. Помогите пожалуйста решить данную проблему! С меня ++ Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ClockMaker 18 Опубликовано 18 мая, 2014 прост)00 // Вроде это реализовано в AI, а не в двери Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Nice 4 Опубликовано 18 мая, 2014 (изменено) прост)00 // Вроде это реализовано в AI, а не в двери Плохо я в этом разбираюсь Вот что в Zaken.py import sys from java.lang import System from net.sf.l2j.gameserver.instancemanager import GrandBossManager from net.sf.l2j.gameserver.lib import Rnd from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest # Boss: Zaken ZAKEN = 12374 #Zaken Status Tracking : DEAD = 1 ALIVE = 0 class Zaken(JQuest) : # init function. Add in here variables that you'd like to be inherited by subclasses (if any) def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) info = GrandBossManager.getInstance().getStatsSet(ZAKEN) status = GrandBossManager.getInstance().getBossStatus(ZAKEN) if status == DEAD : # load the respawn date and time for zaken from DB temp = long(info.getLong("respawn_time")) - System.currentTimeMillis() if temp > 0 : self.startQuestTimer("zaken_respawn", temp, None, None) else : # the time has already expired while the server was offline. Immediately spawn zaken in his ship. zaken = self.addSpawn(ZAKEN,55312,219168,-3223,0,False,0) GrandBossManager.getInstance().setBossStatus(ZAKEN,ALIVE) GrandBossManager.getInstance().addBoss(zaken) else : loc_x = info.getInteger("loc_x") loc_y = info.getInteger("loc_y") loc_z = info.getInteger("loc_z") heading = info.getInteger("heading") hp = info.getInteger("currentHP") mp = info.getInteger("currentMP") zaken = self.addSpawn(ZAKEN,loc_x,loc_y,loc_z,heading,False,0) GrandBossManager.getInstance().addBoss(zaken) zaken.setCurrentHpMp(hp,mp) def onAdvEvent (self,event,npc,player): if event == "zaken_respawn" : zaken = self.addSpawn(ZAKEN,55312,219168,-3223,0,False,0) GrandBossManager.getInstance().setBossStatus(ZAKEN,ALIVE) GrandBossManager.getInstance().addBoss(zaken) return def onKill(self,npc,player,isPet): GrandBossManager.getInstance().setBossStatus(ZAKEN,DEAD) respawnTime = long((19 + Rnd.get(35)) * 3600000) self.startQuestTimer("zaken_respawn", respawnTime, None, None) # also save the respawn time so that the info is maintained past reboots info = GrandBossManager.getInstance().getStatsSet(ZAKEN) info.set("respawn_time",(long(System.currentTimeMillis()) + respawnTime)) GrandBossManager.getInstance().setStatsSet(ZAKEN,info) return # now call the constructor (starts up the ai) QUEST = Zaken(-1,"zaken","ai") QUEST.addKillId(ZAKEN) Изменено 18 мая, 2014 пользователем Nice Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mr.Smith 128 Опубликовано 18 мая, 2014 Здравствуй. Помогите пожалуйста решить проблему с дверью к Закену. Она не открывается в полночь. Вот что написано в файле door.csv #name;static_object_id;posx;posy;posz;hp;physical_defence;magic_defence;unlockable # Devils Isle pirate_isle_001;21240001;42001;208378;-3666;41864;208287;-3785;42006;208383;-3540;187500;100000;10000;True pirate_isle_002;21240002;43745;212594;-3623;43741;212433;-3742;43749;212600;-3497;187500;100000;10000;True pirate_isle_003;21240003;42167;213285;-3643;42085;213285;-3760;42247;213286;-3515;187500;476;383;True pirate_isle_004;21240004;51111;206106;-3912;51105;206102;-4031;51270;206110;-3786;187500;476;383;True pirate_isle_005;21240005;52910;206720;-3692;52910;206637;-3808;52910;206801;-3563;187500;476;383;True pirate_isle_006;21240006;52423;219103;-3209;52423;219032;-3312;52423;219174;-3067;187500;1000000;383;True Выделенная строка, это дверь для прохода к закену. Значение "unlockable" установлено в "True". Почему не открывается, понятия не имею. Помогите пожалуйста решить данную проблему! С меня ++ Возможно где то повторяется дверь, пересмотрите, а возможно уже где то идет открытие этих дверей. Ищите по всей цепочке открытия дверей. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Nice 4 Опубликовано 18 мая, 2014 Возможно где то повторяется дверь, пересмотрите, а возможно уже где то идет открытие этих дверей. Ищите по всей цепочке открытия дверей. Проверил door.csv от и до, дверь не повторяется. Кроме door.csv и zaken.py - я понятия не имею где искать Подскажите будьте так добры. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mr.Smith 128 Опубликовано 18 мая, 2014 (изменено) Проверил door.csv от и до, дверь не повторяется. Кроме door.csv и zaken.py - я понятия не имею где искать Подскажите будьте так добры. Если исходники есть тогда ищите ответ в классе DoorTable. Изменено 18 мая, 2014 пользователем Mr.Smith 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Nice 4 Опубликовано 18 мая, 2014 Если исходники есть тогда ищите ответ в классе DoorTable. Спасибо, поищу. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Nice 4 Опубликовано 20 мая, 2014 (изменено) Если исходники есть тогда ищите ответ в классе DoorTable. Собственно вот, нашел. http://pastebin.com/14VjnF8Y И примерно понимаю, что дверь к Закену должна прописываться тут : /** * Performs a check and sets up a scheduled task for * those doors that require auto opening/closing. */ public void checkAutoOpen() { for (L2DoorInstance doorInst : getDoors()) { // Garden of Eva (every 7 minutes) if (doorInst.getDoorName().startsWith("goe")) doorInst.setAutoActionDelay(420000); // Tower of Insolence (every 5 minutes) else if (doorInst.getDoorName().startsWith("aden_tower")) doorInst.setAutoActionDelay(300000); } } Но как прописать, понятия не имею Изменено 20 мая, 2014 пользователем Nice Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
GorDeveloper 356 Опубликовано 20 мая, 2014 Собственно вот, нашел. http://pastebin.com/14VjnF8Y И примерно понимаю, что дверь к Закену должна прописываться тут : /** * Performs a check and sets up a scheduled task for * those doors that require auto opening/closing. */ public void checkAutoOpen() { for (L2DoorInstance doorInst : getDoors()) { // Garden of Eva (every 7 minutes) if (doorInst.getDoorName().startsWith("goe")) doorInst.setAutoActionDelay(420000); // Tower of Insolence (every 5 minutes) else if (doorInst.getDoorName().startsWith("aden_tower")) doorInst.setAutoActionDelay(300000); } } Но как прописать, понятия не имею А по образцу не? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Nice 4 Опубликовано 20 мая, 2014 (изменено) А по образцу не? Ну вот к примеру.. Блин, сейчас перепишу else if (doorInst.getDoorName().startsWith("pirate_isle_006")) doorInst.setAutoActionDelay(14400000); Но в этом случае, дверь будет открываться 1 раз в 4 часа, в неизвестное время. Скорей всего время будет отсчитываться от запуска сервера. А мне нужно, чтоб дверь открывалась в полночь по игровому времени. Как это сделать я не знаю.. Изменено 20 мая, 2014 пользователем Nice Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Region 55 Опубликовано 20 мая, 2014 всё выше открывает дверь с интервалом а у закена она открываеться в определенный момент по уму надо делать исключение в процедуре отвечаюшей за время и оттуда уже открывать дверь на определенное время Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Nice 4 Опубликовано 20 мая, 2014 всё выше открывает дверь с интервалом а у закена она открываеться в определенный момент по уму надо делать исключение в процедуре отвечаюшей за время и оттуда уже открывать дверь на определенное время По подробней если не затруднит, в какую сторону копать, какой файл? А то я совсем дуб в java Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
GorDeveloper 356 Опубликовано 20 мая, 2014 Ну можно было прыгать от Calendar или Date, но они вроде как помечены депрекацией. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты