Статус (жив или мертв) - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II

Lineage II
Дискуссии на тему создания, настройки и обслуживания серверов Lineage 2. При поддержке: Премиум услуги по рекламе

Ответ
Опции темы
Непрочитано 24.09.2013, 19:58   #1
Пользователь

Автор темы (Топик Стартер) Статус (жив или мертв)

Здравствуйте. Подскажите как можно дернуть значение из базы(проверить) жив или мертв РБ?

Сборка: Scoria

Сделал так, но не робит(

Код:
con = L2DatabaseFactory.getInstance().getConnection();
				PreparedStatement statement;
				statement = con.prepareStatement("SELECT raidboss_spawnlist.respawn_time, npc.level, npc.name FROM raidboss_spawnlist LEFT JOIN npc ON raidboss_spawnlist.boss_id = npc.id ORDER BY npc.level DESC, npc.name ASC;");
				ResultSet rset = statement.executeQuery();

				while(rset.next())
				{
					String name = rset.getString("name");
					int level = rset.getInt("level");
					String status = "";
					
					long respawn_time = rset.getLong("respawn_time");
					
					switch(respawn_time)
					{
						case 0 : status = "Жив"; break;
							default : status = "Мертв"; break;
					}
Аналогично и тут

Код:
con = L2DatabaseFactory.getInstance().getConnection();
				PreparedStatement statement;
				statement = con.prepareStatement("SELECT `grandboss_data`.`boss_id`, `grandboss_data`.`respawn_time`, npc.level, npc.name FROM `grandboss_data` LEFT JOIN `npc` ON `grandboss_data`.`boss_id` = `npc`.`id` ORDER BY `grandboss_data`.`status` ASC , `npc`.`level` DESC;");
				ResultSet rset = statement.executeQuery();

				while(rset.next())
				{
					String name = rset.getString("name");
					String level = rset.getString("level");
					String status = "";
					
					long respawn_time = rset.getLong("respawn_time");
					
					switch(respawn_time)
					{
						case 0 : status = "Жив"; break;
							default : status = "Мертв"; break;
					}
__________________
mego4el вне форума Ответить с цитированием
Непрочитано 24.09.2013, 20:12   #2
Аватар для Gaikotsu
Герой

По умолчанию Re: Статус (жив или мертв)

respawn_time наверное лучше с текущим временем сравнивать, а не проверять на 0.
Gaikotsu вне форума Ответить с цитированием
Непрочитано 24.09.2013, 20:15   #3
Пользователь

Автор темы (Топик Стартер) Re: Статус (жив или мертв)

Подскажите как это примерно выглядеть в коде будет?

Добавлено через 35 секунд
И почему так? Ведь если respawn_time > 0 то значит он мертв, это же очевидно.. Или я чего то не до понимаю..
__________________

Последний раз редактировалось mego4el; 24.09.2013 в 20:15. Причина: Добавлено сообщение
mego4el вне форума Ответить с цитированием
Непрочитано 24.09.2013, 20:47   #4
Изгнанные

По умолчанию Re: Статус (жив или мертв)

помоему после убиства РБ в respawn_time ставится нефига не ноль. а время в UNIX формате
Wishmаster вне форума Отправить сообщение для Wishmаster с помощью ICQ Ответить с цитированием
Непрочитано 24.09.2013, 20:54   #5
Пользователь

Автор темы (Топик Стартер) Re: Статус (жив или мертв)

Цитата:
Сообщение от Wishmаster Посмотреть сообщение
помоему после убиства РБ в respawn_time ставится нефига не ноль. а время в UNIX формате
Так как тогда вообще быть?
__________________
mego4el вне форума Ответить с цитированием
Непрочитано 24.09.2013, 20:56   #6
Аватар для Dr_Lector
Герой

По умолчанию Re: Статус (жив или мертв)

Цитата:
Сообщение от mego4el Посмотреть сообщение
Так как тогда вообще быть?
если не 0 значит мертв, если 0 значит жив, вроде просто
Dr_Lector вне форума Ответить с цитированием
Непрочитано 24.09.2013, 21:05   #7
Аватар для Gaikotsu
Герой

По умолчанию Re: Статус (жив или мертв)

не знаю как в скории но по идее там ставится время когда рб отспавнится.
если это время меньше/равно текущему - рб отспавнился, если меньше - нет.
и обновляется это значение скорее всего, по логике, только в момент убийства рб.

проверять банально

 
if (respawn_time > System.currentTimeMillis())
  // мертв
else
  // жив
 
Code: Java
это если время хранится с точностью до мс - если с точностью до секунд - делить System.currentTimeMillis() на 1000.
Gaikotsu вне форума Ответить с цитированием
Сказали спасибо:
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[RELEASE] Perfect World server BETA 1.4.5 Mag_i_str Серверная часть 123 05.09.2013 22:14
Статус сервера для mssql BioSchok Веб обвязка 3 10.05.2011 10:48
Статус Сервера Infinity Серверная часть 2 29.12.2010 07:44
Не отображает статус сервера arrer Движки сайтов (CMS) 0 20.09.2010 08:22
Статус Сервера для НТМЛ/PHP Nemesis Документация 10 25.04.2010 20:48


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 11:35. Часовой пояс GMT +3.

Вверх