Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Статус (жив или мертв)
#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;
                    }
[Изображение: ck.gif]
Ответ
#2
respawn_time наверное лучше с текущим временем сравнивать, а не проверять на 0.
Ответ
#3
Подскажите как это примерно выглядеть в коде будет?

Добавлено через 35 секунд
И почему так? Ведь если respawn_time > 0 то значит он мертв, это же очевидно.. Или я чего то не до понимаю..
[Изображение: ck.gif]
Ответ
#4
помоему после убиства РБ в respawn_time ставится нефига не ноль. а время в UNIX формате
Ответ
#5
Wishmаster Написал:помоему после убиства РБ в respawn_time ставится нефига не ноль. а время в UNIX формате
Так как тогда вообще быть?Sad
[Изображение: ck.gif]
Ответ
#6
mego4el Написал:Так как тогда вообще быть?Sad

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

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

[SRC="java"]
if (respawn_time > System.currentTimeMillis())
// мертв
else
// жив
[/SRC]
это если время хранится с точностью до мс - если с точностью до секунд - делить System.currentTimeMillis() на 1000.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Нужна помощь!Как сделать статус дворянина при страте? BRODYAGGA 4 1,738 01-23-2015, 06:55 PM
Последний пост: Influence
  Окно "Статус персонажа" Mifesto 4 2,078 01-18-2013, 10:29 PM
Последний пост: Mifesto
  онлайн статус чара mego4el 4 1,497 07-24-2012, 12:14 AM
Последний пост: mego4el
  L2OT_911:статус гма для игрока rapidshot 3 2,995 12-20-2009, 12:18 AM
Последний пост: rapidshot

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)