Перейти к содержанию
Авторизация  
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)

 

Изменено пользователем obves

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
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) #в секундах

Не, никак?

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
12 минут назад, Falkland сказал:

import time 
...
time.sleep(10) #в секундах

Не, никак?

импорт так указать from time import gmtime, strftime  ?

Скажи плз куда именно  time.sleep(10)  размещать? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Перед респом 2го.

Лучше юзать ThreadPoolManager

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16 минут назад, Demoncool сказал:

ThreadPoolManager

помоги пожалуйста, не понимаю что именно и куда прописать ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пример возьми из своей сборки. 
Вот мой пример:

import com.l2jserver.gameserver.ThreadPoolManager;
ThreadPoolManager.getInstance().scheduleGeneral(this, 1000);

 

Где вместо THIS добавляешь свой TASK с респом РБ, а 1000 - время в мсек. (Смотри пример у себя в сборке!!!)

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
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)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

это под явовский скрипт тебе кинули, у тебя скрипт на питоне

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, Solution сказал:

это под явовский скрипт тебе кинули, у тебя скрипт на питоне

спасибо что подметил, может знаешь какой код на задержку вписать? получится же так? просто что бы задержка перед запуском была ?  

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
9 минут назад, obves сказал:

спасибо что подметил, может знаешь какой код на задержку вписать? получится же так? просто что бы задержка перед запуском была ?  

Эм, я тебе уже ответил в самом начале темы.

P.S. И как кто-то уже сказал в теме, вставь это перед спавном второго моба, что собственно трудно не понять.

Изменено пользователем Falkland

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я хрен его как в питоне, на яве самый простой способ поток юнуть да Thread.sleep(но так лучше не делать), либо же таймер написать. Рублей за 500 если надо на яве накидаю

Изменено пользователем Solution

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Показать контент  
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  
Изменено пользователем CalypsoToolz
косякнул)
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...