Перейти к содержанию
Авторизация  
MayMunKa

как сделать что бы моб сам умирал

Рекомендуемые сообщения

кто знает, подскажите ,  что и куда записывать чтобы  моб сам умирал через ( например 2 часа) после респа

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

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


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

Умирал или исчезал? Как часто он должен респиться и к чему привязка респа стоит?

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


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

Умирал или исчезал? Как часто он должен респиться и к чему привязка респа стоит?

точно....нужно чтобы исчезал... ну например респится через 10 часов после исчезновения или убийства.....и стоит всего 2 часа... если не убьют то чтобы  исчез...

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


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

Простейший способ - запускать в аи нпс при спавне таск с нужной задержкой и при его срабатывании удалять  этого нпс.

Например один из вариантов - удалит нпс через 2 часа после спавна:

	@Override
	protected void onEvtSpawn()
	{
		super.onEvtSpawn();

		ThreadPoolManager.getInstance().schedule(new Runnable()
		{
			@Override
			public void run()
			{
				getActor().deleteMe();
			}
		}, 2 * 60 * 60 * 1000L);
	}

Или еще можно так, если в аи есть методы работы с таймерами, а они вроде почти в любой сборке есть:

	@Override
	protected void onEvtSpawn()
	{
		super.onEvtSpawn();

		addTimer(666, 2 * 60 * 60 * 1000L);
	}

	@Override
	protected void onEvtTimer(int timerId, Object arg1, Object arg2)
	{
		if (timerId == 666)
			getActor().deleteMe();
	}

 

  • Like 1
  • Upvote 1

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


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

Простейший способ - запускать в аи нпс при спавне таск с нужной задержкой и при его срабатывании удалять  этого нпс.

Например один из вариантов - удалит нпс через 2 часа после спавна:


	@Override
	protected void onEvtSpawn()
	{
		super.onEvtSpawn();

		ThreadPoolManager.getInstance().schedule(new Runnable()
		{
			@Override
			public void run()
			{
				getActor().deleteMe();
			}
		}, 2 * 60 * 60 * 1000L);
	}

Или еще можно так, если в аи есть методы работы с таймерами, а они вроде почти в любой сборке есть:


	@Override
	protected void onEvtSpawn()
	{
		super.onEvtSpawn();

		addTimer(666, 2 * 60 * 60 * 1000L);
	}

	@Override
	protected void onEvtTimer(int timerId, Object arg1, Object arg2)
	{
		if (timerId == 666)
			getActor().deleteMe();
	}

 

 спс  большое

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


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

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

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

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

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

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

Войти

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

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

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

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

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