/** * save update bosslist */ private function UpdateBossList() { global $user; $bossids = request_var('bossid', array(0 => 0)); $newbossname = utf8_normalize_nfc(request_var('bossname', array(0 => ''), true)); $newbossnameshorts = utf8_normalize_nfc(request_var('bossnameshort', array(0 => ''), true)); $newbosswebids = request_var('bosswebid', array(0 => '')); foreach ($bossids as $boss_id) { $iBoss = new games\Boss($this->game_id); $iBoss->GetBoss($boss_id); $iBoss->setBossWebId($newbosswebids[$boss_id]); $iBoss->setBossName(\htmlspecialchars_decode($newbossname[$boss_id])); $iBoss->setBossShortName(\htmlspecialchars_decode($newbossnameshorts[$boss_id])); $iBoss2 = new games\Boss($this->game_id); $iBoss2->GetBoss($boss_id); if ($iBoss != $iBoss2) { $iBoss->UpdateBoss($iBoss->BossId); } } trigger_error($user->lang['BP_BPSAVED'], E_USER_NOTICE); }
public function GetAllZoneProgress($guild_id, $game_id) { global $phpbb_root_path, $config, $db, $user; $sql_array = array('SELECT' => 'z.id as zoneid, z.imagename, l.name as zonename, l.name_short as zonename_short, z.webid ', 'FROM' => array(ZONEBASE => 'z', BB_LANGUAGE => 'l'), 'WHERE' => " 1=1 AND l.attribute_id = z.id\n AND z.showzone = 1\n AND l.attribute='zone' AND l.language= '" . $config['bbdkp_lang'] . "'\n\t\t\t\t\tAND z.game= '" . $game_id . "' and z.game = l.game_id ", 'ORDER_BY' => 'z.sequence desc '); $bp = new BossProgress($game_id); $zones = array(); $sql = $db->sql_build_query('SELECT', $sql_array); $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { switch ($config['bbdkp_zone_photo']) { case 0: //sepia $progrimg = $phpbb_root_path . 'images/bbdkp/gameworld/' . $game_id . '/zones/normal/' . $row['imagename'] . '.jpg'; $background = $phpbb_root_path . 'images/bbdkp/gameworld/' . $game_id . '/zones/photo/' . $row['imagename'] . '.jpg'; break; case 1: //blackwhite $progrimg = $phpbb_root_path . 'images/bbdkp/gameworld/' . $game_id . '/zones/normal/' . $row['imagename'] . '.jpg'; $background = $phpbb_root_path . 'images/bbdkp/gameworld/' . $game_id . '/zones/sw/' . $row['imagename'] . '.jpg'; break; case 2: $progrimg = ''; $background = $phpbb_root_path . 'images/bbdkp/gameworld/' . $game_id . '/zones/normal/' . $row['imagename'] . '.jpg'; } $gameworld = new games\Boss($game_id); $bossinfo = $gameworld->GetAllBosses($row['zoneid']); $bosses = $bp->get_bossprogress($guild_id, $row['zoneid'], $game_id); $bosskilled = 0; foreach ($bosses as $j => $boss) { if ($boss['bosskilled'] == "1") { $bosskilled++; } } if (count($bossinfo) > 0) { $zonecomplete = $j > 0 ? round($bosskilled / count($bossinfo) * 100, 2) : 0; } else { $zonecomplete = 0; } $zonestats = $user->lang['BOSSPROGRESS'] . ' ' . $bosskilled . '/' . count($bossinfo) . ' (' . $zonecomplete . '%)'; $zones[$row['zoneid']] = array('zoneid' => $row['zoneid'], 'zonename' => $row['zonename'], 'zonename_short' => $row['zonename_short'], 'imagename' => $row['imagename'], 'zoneimage' => $progrimg, 'zonebackground' => $background, 'zonecomplete' => $zonecomplete, 'bosses' => $bosses, 'zonestats' => $zonestats, 'zonekills' => $bosskilled, 'zonebosses' => count($bossinfo), 'webid' => $row['webid']); } return $zones; }