obves 8 Опубликовано 6 января, 2018 (изменено) скрипт polymorphing_angel.py с меня +++ благодарности!!!!! функция скрипта - после убийства ангела спавниться ещё один указанный в скрипте. помогите пожалуйста прикрутить таймер - что надо: после смерти первого нпц - через указанное время спавнился второй нпц код import sys from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest from net.sf.l2j.gameserver.network.serverpackets import MagicSkillUser from net.sf.l2j.gameserver.ai import CtrlIntention # Angel spawns...when one of the angels in the keys dies, the other angel will spawn. class polymorphing_angel(JQuest) : # init function. Add in here variables that you'd like to be inherited by subclasses (if any) def __init__(self,id,name,descr): self.AngelSpawns ={ 20830:20859, 21067:21068, 21062:21063, 20831:20860, 100109:18265, 10095:10078, 21070:21071 } # finally, don't forget to call the parent constructor to prepare the event triggering # mechanisms etc. JQuest.__init__(self,id,name,descr) def onKill (self,npc,player,isPet): npcId = npc.getNpcId() if self.AngelSpawns.has_key(npcId) : newNpc = self.addSpawn(self.AngelSpawns[npcId],npc) killer = player if isPet : killer = player.getPet() newNpc.setRunning() newNpc.addDamageHate(killer,0,999) newNpc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, killer) return # now call the constructor (starts up the ai) QUEST = polymorphing_angel(-1,"polymorphing_angel","ai") for i in QUEST.AngelSpawns.keys() : QUEST.addKillId(i) Изменено 6 января, 2018 пользователем obves Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Falkland 51 Опубликовано 6 января, 2018 28 минут назад, obves сказал: скрипт polymorphing_angel.py с меня +++ благодарности!!!!! функция скрипта - после убийства ангела спавниться ещё один указанный в скрипте. помогите пожалуйста прикрутить таймер - что надо: после смерти первого нпц - через указанное время спавнился второй нпц код import sys from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest from net.sf.l2j.gameserver.network.serverpackets import MagicSkillUser from net.sf.l2j.gameserver.ai import CtrlIntention # Angel spawns...when one of the angels in the keys dies, the other angel will spawn. class polymorphing_angel(JQuest) : # init function. Add in here variables that you'd like to be inherited by subclasses (if any) def __init__(self,id,name,descr): self.AngelSpawns ={ 20830:20859, 21067:21068, 21062:21063, 20831:20860, 100109:18265, 10095:10078, 21070:21071 } # finally, don't forget to call the parent constructor to prepare the event triggering # mechanisms etc. JQuest.__init__(self,id,name,descr) def onKill (self,npc,player,isPet): npcId = npc.getNpcId() if self.AngelSpawns.has_key(npcId) : newNpc = self.addSpawn(self.AngelSpawns[npcId],npc) killer = player if isPet : killer = player.getPet() newNpc.setRunning() newNpc.addDamageHate(killer,0,999) newNpc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, killer) return # now call the constructor (starts up the ai) QUEST = polymorphing_angel(-1,"polymorphing_angel","ai") for i in QUEST.AngelSpawns.keys() : QUEST.addKillId(i) import time ... time.sleep(10) #в секундах Не, никак? 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Demoncool 1110 Опубликовано 6 января, 2018 ThreadPoolManager Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
obves 8 Опубликовано 6 января, 2018 12 минут назад, Falkland сказал: import time ... time.sleep(10) #в секундах Не, никак? импорт так указать from time import gmtime, strftime ? Скажи плз куда именно time.sleep(10) размещать? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 6 января, 2018 Перед респом 2го. Лучше юзать ThreadPoolManager Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
obves 8 Опубликовано 6 января, 2018 16 минут назад, Demoncool сказал: ThreadPoolManager помоги пожалуйста, не понимаю что именно и куда прописать ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 6 января, 2018 Пример возьми из своей сборки. Вот мой пример: import com.l2jserver.gameserver.ThreadPoolManager; ThreadPoolManager.getInstance().scheduleGeneral(this, 1000); Где вместо THIS добавляешь свой TASK с респом РБ, а 1000 - время в мсек. (Смотри пример у себя в сборке!!!) 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
obves 8 Опубликовано 6 января, 2018 20 минут назад, zGosu сказал: Пример возьми из своей сборки. Вот мой пример: import com.l2jserver.gameserver.ThreadPoolManager; ThreadPoolManager.getInstance().scheduleGeneral(this, 1000); Где вместо THIS добавляешь свой TASK с респом РБ, а 1000 - время в мсек. (Смотри пример у себя в сборке!!!) у меня пвсофт вот нашел по примеру import net.sf.l2j.gameserver.ThreadPoolManager; public String onSpawn(L2NpcInstance npc) { camp = npc; ThreadPoolManager.getInstance().scheduleGeneral(new CheckSiege(), 5000); return null; } как нужно прописать в нужный мне код? import sys from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest from net.sf.l2j.gameserver.network.serverpackets import MagicSkillUser from net.sf.l2j.gameserver.ai import CtrlIntention # Angel spawns...when one of the angels in the keys dies, the other angel will spawn. class polymorphing_angel(JQuest) : # init function. Add in here variables that you'd like to be inherited by subclasses (if any) def __init__(self,id,name,descr): self.AngelSpawns ={ 20830:20859, 21067:21068, 21062:21063, 20831:20860, 100109:18265, 10095:10078, 21070:21071 } # finally, don't forget to call the parent constructor to prepare the event triggering # mechanisms etc. JQuest.__init__(self,id,name,descr) def onKill (self,npc,player,isPet): npcId = npc.getNpcId() if self.AngelSpawns.has_key(npcId) : newNpc = self.addSpawn(self.AngelSpawns[npcId],npc) killer = player if isPet : killer = player.getPet() newNpc.setRunning() newNpc.addDamageHate(killer,0,999) newNpc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, killer) return # now call the constructor (starts up the ai) QUEST = polymorphing_angel(-1,"polymorphing_angel","ai") for i in QUEST.AngelSpawns.keys() : QUEST.addKillId(i) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Edgar 356 Опубликовано 6 января, 2018 это под явовский скрипт тебе кинули, у тебя скрипт на питоне 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
obves 8 Опубликовано 6 января, 2018 1 час назад, Solution сказал: это под явовский скрипт тебе кинули, у тебя скрипт на питоне спасибо что подметил, может знаешь какой код на задержку вписать? получится же так? просто что бы задержка перед запуском была ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Falkland 51 Опубликовано 6 января, 2018 (изменено) 9 минут назад, obves сказал: спасибо что подметил, может знаешь какой код на задержку вписать? получится же так? просто что бы задержка перед запуском была ? Эм, я тебе уже ответил в самом начале темы. P.S. И как кто-то уже сказал в теме, вставь это перед спавном второго моба, что собственно трудно не понять. Изменено 6 января, 2018 пользователем Falkland Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Edgar 356 Опубликовано 6 января, 2018 (изменено) я хрен его как в питоне, на яве самый простой способ поток юнуть да Thread.sleep(но так лучше не делать), либо же таймер написать. Рублей за 500 если надо на яве накидаю Изменено 6 января, 2018 пользователем Solution Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CalypsoToolz 451 Опубликовано 6 января, 2018 (изменено) Показать контент package ai; import net.sf.l2j.gameserver.ThreadPoolManager; import net.sf.l2j.gameserver.ai.CtrlIntention; import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.model.quest.jython.QuestJython; public class PolymorphingAngel extends QuestJython { private static final int[][] keypairs = { {20830, 20859}, {21067, 21068}, {21062, 21063}, {20831, 20860}, {100109, 18265}, {10095, 10078}, {21070, 21071} }; public PolymorphingAngel(int questId, String name, String descr, int ex) { super(questId, name, descr, ex); for(int[] i : keypairs) addKillId(i[0]); } @Override public String onKill(final L2NpcInstance npc, final L2PcInstance killer, boolean isPet) { ThreadPoolManager.getInstance().scheduleGeneral(new Runnable() { @Override public void run() { L2NpcInstance sp = addSpawn(getSpawnId(npc.getNpcId()), npc); sp.setRunning(); sp.addDamageHate(killer, 0, 999); sp.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, killer); } }, 1000); // задержка в МС return null; } private static int getSpawnId(int from) { for(int[] i : keypairs) if(i[0] == from) return i[1]; return 0; } public static void main(String[] args) { new PolymorphingAngel(-1, "PolymorphingAngel", "by CalypsoToolz", 0); } } Hide Изменено 6 января, 2018 пользователем CalypsoToolz косякнул) 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты