[помощ]dle Lineage 3.2.0se
9 ответов136 просмотровСейчас просматривают: 1
· 13.07.2009, 09:55
кто может помоч поправить скуль запросы на статус эпик рб в сборке феникса
вот такой
Цитата
// Список рейд-боссов
elseif($_action == 'raid'){
$query = $dbg[$_serv]->sql_query("SELECT `id`, `name`, `level` FROM `npc` WHERE `boss_flag`='1' AND `map_flag`='1' ORDER BY `level` DESC");
$lineage .= "<div class='l2title'>Статус Рейд-Боссов</div>\n<table id='l2top'>\n";
$lineage .= "<thead><tr><th width='35px'></th><th class='name' width=''>Рейд-Босс</th><th width='60px'>Уровень</th><th width='60px'>Статус</th></tr></thead>\n";
$i = 0;
while($raid_data = $dbg[$_serv]->sql_fetchrow($query)){
$npc_id = $raid_data['id'];
$npc_name = $raid_data["name"];
$lvl = intval($raid_data["level"]);
$query1 = $dbg[$_serv]->sql_query("SELECT `respawnDate` FROM `epic_boss_spawn` WHERE `bossId`='$npc_id'");
$respawn_time = $dbg[$_serv]->sql_fetchrow($query1);
$respawn_time = $respawn_time[0];
if($respawn_time != '' && $respawn_time != 0){
$die_stat = 'Мёртв';
$npc_name = "<span class='female'><b>$npc_name</b></span><br><small><b>Время респавна:</b> ".GetDateString($respawn_time,$la2config["timezone"])."</small>";
}
else{
$die_stat = 'Жив';
$npc_name = "<span class='male'><b>$npc_name</b></span>";
}
$lineage .= '<tr'.(($i++ % 2)? '' : " class='alternateRow'").">";
$lineage .= "<td>$i.</td><td class='name'>$npc_name</td><td>$lvl</td><td>$die_stat</td></tr>\n";
}
$lineage.= "</tbody>\n</table>\n";
}
elseif($_action == 'rich'){
elseif($_action == 'raid'){
$query = $dbg[$_serv]->sql_query("SELECT `id`, `name`, `level` FROM `npc` WHERE `boss_flag`='1' AND `map_flag`='1' ORDER BY `level` DESC");
$lineage .= "<div class='l2title'>Статус Рейд-Боссов</div>\n<table id='l2top'>\n";
$lineage .= "<thead><tr><th width='35px'></th><th class='name' width=''>Рейд-Босс</th><th width='60px'>Уровень</th><th width='60px'>Статус</th></tr></thead>\n";
$i = 0;
while($raid_data = $dbg[$_serv]->sql_fetchrow($query)){
$npc_id = $raid_data['id'];
$npc_name = $raid_data["name"];
$lvl = intval($raid_data["level"]);
$query1 = $dbg[$_serv]->sql_query("SELECT `respawnDate` FROM `epic_boss_spawn` WHERE `bossId`='$npc_id'");
$respawn_time = $dbg[$_serv]->sql_fetchrow($query1);
$respawn_time = $respawn_time[0];
if($respawn_time != '' && $respawn_time != 0){
$die_stat = 'Мёртв';
$npc_name = "<span class='female'><b>$npc_name</b></span><br><small><b>Время респавна:</b> ".GetDateString($respawn_time,$la2config["timezone"])."</small>";
}
else{
$die_stat = 'Жив';
$npc_name = "<span class='male'><b>$npc_name</b></span>";
}
$lineage .= '<tr'.(($i++ % 2)? '' : " class='alternateRow'").">";
$lineage .= "<td>$i.</td><td class='name'>$npc_name</td><td>$lvl</td><td>$die_stat</td></tr>\n";
}
$lineage.= "</tbody>\n</table>\n";
}
elseif($_action == 'rich'){
буду тыкать спасибо.
0
· 13.07.2009, 18:34
собственно вот
Цитата
-- Table "npc" DDL
CREATE TABLE `npc` (
`ordinal` smallint(4) unsigned NOT NULL default '0',
`id` int(11) unsigned NOT NULL default '0',
`name` varchar(45) default NULL,
`title` varchar(25) NOT NULL,
`class` varchar(50) default NULL,
`collision_radius` decimal(5,2) default NULL,
`collision_height` decimal(5,2) default NULL,
`level` int(11) NOT NULL default '1',
`sex` varchar(6) NOT NULL default 'male',
`type` varchar(20) NOT NULL default 'L2Npc',
`ai_type` varchar(50) NOT NULL default 'npc',
`attackrange` int(11) NOT NULL default '40',
`hp` int(11) NOT NULL default '2444',
`base_hp_regen` double(11,3) NOT NULL default '7.500',
`mp` int(11) NOT NULL default '2444',
`base_mp_regen` double(11,3) NOT NULL default '2.700',
`str` int(11) NOT NULL default '40',
`con` int(11) NOT NULL default '43',
`dex` int(11) NOT NULL default '30',
`int` int(11) NOT NULL default '21',
`wit` int(11) NOT NULL default '20',
`men` int(11) NOT NULL default '10',
`exp` int(11) NOT NULL default '0',
`sp` int(11) NOT NULL default '0',
`patk` int(11) NOT NULL default '500',
`pdef` int(11) NOT NULL default '500',
`matk` int(11) NOT NULL default '500',
`mdef` int(11) NOT NULL default '500',
`atkspd` int(11) NOT NULL default '253',
`aggro` int(11) NOT NULL default '0',
`matkspd` int(11) NOT NULL default '500',
`rhand` int(11) NOT NULL default '0',
`lhand` int(11) NOT NULL default '0',
`armor` int(11) NOT NULL default '0',
`walkspd` int(11) NOT NULL default '110',
`runspd` int(11) NOT NULL default '180',
`faction_id` varchar(40) NOT NULL,
`faction_range` int(11) NOT NULL default '0',
`displayId` int(11) NOT NULL default '0',
`shield_defense_rate` int(11) NOT NULL default '0',
`shield_defense` int(11) NOT NULL default '0',
`corpse_time` int(11) NOT NULL default '7',
`base_rand_dam` int(11) NOT NULL default '30',
`base_critical` int(11) NOT NULL default '4',
`physical_hit_modify` int(11) NOT NULL default '4',
`base_reuse_delay` int(11) NOT NULL default '0',
`physical_avoid_modify` int(11) NOT NULL default '0',
`hit_time_factor` double(11,2) NOT NULL default '0.60',
`isDropHerbs` enum('false','true') NOT NULL default 'true',
`shots` enum('NONE','SOUL','SPIRIT','BSPIRIT','SOUL_SPIRIT','SOUL_BSPIRIT') NOT NULL default 'NONE',
`map_flag` tinyint(1) NOT NULL default '0',
`boss_flag` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `map_flag` (`map_flag`,`boss_flag`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `npc` (
`ordinal` smallint(4) unsigned NOT NULL default '0',
`id` int(11) unsigned NOT NULL default '0',
`name` varchar(45) default NULL,
`title` varchar(25) NOT NULL,
`class` varchar(50) default NULL,
`collision_radius` decimal(5,2) default NULL,
`collision_height` decimal(5,2) default NULL,
`level` int(11) NOT NULL default '1',
`sex` varchar(6) NOT NULL default 'male',
`type` varchar(20) NOT NULL default 'L2Npc',
`ai_type` varchar(50) NOT NULL default 'npc',
`attackrange` int(11) NOT NULL default '40',
`hp` int(11) NOT NULL default '2444',
`base_hp_regen` double(11,3) NOT NULL default '7.500',
`mp` int(11) NOT NULL default '2444',
`base_mp_regen` double(11,3) NOT NULL default '2.700',
`str` int(11) NOT NULL default '40',
`con` int(11) NOT NULL default '43',
`dex` int(11) NOT NULL default '30',
`int` int(11) NOT NULL default '21',
`wit` int(11) NOT NULL default '20',
`men` int(11) NOT NULL default '10',
`exp` int(11) NOT NULL default '0',
`sp` int(11) NOT NULL default '0',
`patk` int(11) NOT NULL default '500',
`pdef` int(11) NOT NULL default '500',
`matk` int(11) NOT NULL default '500',
`mdef` int(11) NOT NULL default '500',
`atkspd` int(11) NOT NULL default '253',
`aggro` int(11) NOT NULL default '0',
`matkspd` int(11) NOT NULL default '500',
`rhand` int(11) NOT NULL default '0',
`lhand` int(11) NOT NULL default '0',
`armor` int(11) NOT NULL default '0',
`walkspd` int(11) NOT NULL default '110',
`runspd` int(11) NOT NULL default '180',
`faction_id` varchar(40) NOT NULL,
`faction_range` int(11) NOT NULL default '0',
`displayId` int(11) NOT NULL default '0',
`shield_defense_rate` int(11) NOT NULL default '0',
`shield_defense` int(11) NOT NULL default '0',
`corpse_time` int(11) NOT NULL default '7',
`base_rand_dam` int(11) NOT NULL default '30',
`base_critical` int(11) NOT NULL default '4',
`physical_hit_modify` int(11) NOT NULL default '4',
`base_reuse_delay` int(11) NOT NULL default '0',
`physical_avoid_modify` int(11) NOT NULL default '0',
`hit_time_factor` double(11,2) NOT NULL default '0.60',
`isDropHerbs` enum('false','true') NOT NULL default 'true',
`shots` enum('NONE','SOUL','SPIRIT','BSPIRIT','SOUL_SPIRIT','SOUL_BSPIRIT') NOT NULL default 'NONE',
`map_flag` tinyint(1) NOT NULL default '0',
`boss_flag` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `map_flag` (`map_flag`,`boss_flag`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Цитата
-- Table "epic_boss_spawn" DDL
CREATE TABLE `epic_boss_spawn` (
`bossId` smallint(5) unsigned NOT NULL,
`respawnDate` int(11) NOT NULL,
`state` int(11) NOT NULL,
PRIMARY KEY (`bossId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `epic_boss_spawn` (
`bossId` smallint(5) unsigned NOT NULL,
`respawnDate` int(11) NOT NULL,
`state` int(11) NOT NULL,
PRIMARY KEY (`bossId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
0
· 13.07.2009, 21:26
Эм... да как бы, вроде, ничего править и не надо здесь, в общем-то.
А что выдает при использовании модуля?
— Random Post Generator
0
· 14.07.2009, 10:22
на основании структуры таблиц, вывести только эпик не получится, ведь у всех рб boss_flag = 1? если же этот флаг для эпиков другой - то по нему и делать запрос.
я бы просто выписал ид нужных рб и только их отображал:
Код
$epic_rbs = array(1,2,3,4) //id нужных для отображения рб
$query = $dbg[$_serv]->sql_query("SELECT `id`, `name`, `level` FROM `npc` WHERE `boss_flag`='1' AND `map_flag`='1' AND `id` IN (".implode(",",$epic_rbs).") ORDER BY `level` DESC");
$query = $dbg[$_serv]->sql_query("SELECT `id`, `name`, `level` FROM `npc` WHERE `boss_flag`='1' AND `map_flag`='1' AND `id` IN (".implode(",",$epic_rbs).") ORDER BY `level` DESC");
еще можно второй запрос засунуть в этот же, если конешно производительность критична.
0
· 14.07.2009, 13:09
ну что ж приду домой проверю как работает запрос, в принципе весь стандартный запрос и вывод можно заменить этим ?
0
· 14.07.2009, 13:19
нет, весь заменить этим нельзя - нужно его немного подправить. то что я написал просто изменяет запрос на выборку только нпц с нужным ид.
для замены обоих запросов одним надо использовать запрос:
Код
$query = $dbg[$_serv]->sql_query("
SELECT n.id, n.name, n.level, s.respawnDate
FROM npc n
LEFT JOIN epic_boss_spawn s ON s.bossId = n.id
WHERE n.boss_flag='1' AND n.map_flag='1' AND n.id IN (".implode(",",$epic_rbs).")
ORDER BY n.level DESC
");
SELECT n.id, n.name, n.level, s.respawnDate
FROM npc n
LEFT JOIN epic_boss_spawn s ON s.bossId = n.id
WHERE n.boss_flag='1' AND n.map_flag='1' AND n.id IN (".implode(",",$epic_rbs).")
ORDER BY n.level DESC
");
а какой вывод вы хотите чем то заменить??
з.ы. в моем предыдущем посте после объявления массива надо поставить ; - я забыл, но интерпретатор сразу закричит и все скажет.
0
Тема закрыта для ответов


