diff --git a/characterprofile.php b/characterprofile.php index 33a9055..b9143ed 100644 --- a/characterprofile.php +++ b/characterprofile.php @@ -11,36 +11,20 @@ if (isset($_GET['name']) === true && empty($_GET['name']) === false) { if ($user_id !== false) { $loadOutfits = $config['show_outfits']['characterprofile']; - if ($config['ServerEngine'] == 'TFS_10') { - if (!$loadOutfits) { - $profile_data = user_character_data($user_id, 'account_id', 'name', 'level', 'group_id', 'vocation', 'health', 'healthmax', 'experience', 'mana', 'manamax', 'sex', 'lastlogin'); - } else { // Load outfits - if ($config['client'] < 780) { - $profile_data = user_character_data($user_id, 'account_id', 'name', 'level', 'group_id', 'vocation', 'health', 'healthmax', 'experience', 'mana', 'manamax', 'sex', 'lastlogin', 'lookbody', 'lookfeet', 'lookhead', 'looklegs', 'looktype'); - } else { - $profile_data = user_character_data($user_id, 'account_id', 'name', 'level', 'group_id', 'vocation', 'health', 'healthmax', 'experience', 'mana', 'manamax', 'sex', 'lastlogin', 'lookbody', 'lookfeet', 'lookhead', 'looklegs', 'looktype', 'lookaddons'); - } + if (!$loadOutfits) { + $profile_data = user_character_data($user_id, 'account_id', 'name', 'level', 'group_id', 'vocation', 'health', 'healthmax', 'experience', 'mana', 'manamax', 'sex', 'lastlogin'); + } else { // Load outfits + if ($config['client'] < 780) { + $profile_data = user_character_data($user_id, 'account_id', 'name', 'level', 'group_id', 'vocation', 'health', 'healthmax', 'experience', 'mana', 'manamax', 'sex', 'lastlogin', 'lookbody', 'lookfeet', 'lookhead', 'looklegs', 'looktype'); + } else { + $profile_data = user_character_data($user_id, 'account_id', 'name', 'level', 'group_id', 'vocation', 'health', 'healthmax', 'experience', 'mana', 'manamax', 'sex', 'lastlogin', 'lookbody', 'lookfeet', 'lookhead', 'looklegs', 'looktype', 'lookaddons'); } - $profile_data['online'] = user_is_online_10($user_id); + } + $profile_data['online'] = user_is_online_10($user_id); - if ($config['Ach']) { - $user_id = (int) $user_id; - $achievementPoints = mysql_select_single("SELECT SUM(`value`) AS `sum` FROM `player_storage` WHERE `key` LIKE '30___' AND `player_id`={$user_id} LIMIT 1"); - } - } else { // TFS 0.2, 0.3 - if (!$loadOutfits) { - $profile_data = user_character_data($user_id, 'name', 'account_id', 'level', 'group_id', 'vocation', 'health', 'healthmax', 'experience', 'mana', 'manamax', 'lastlogin', 'online', 'sex'); - } else { // Load outfits - if ($config['ServerEngine'] !== 'OTHIRE') { - if ($config['client'] < 780) { - $profile_data = user_character_data($user_id, 'name', 'account_id', 'level', 'group_id', 'vocation', 'health', 'healthmax', 'experience', 'mana', 'manamax', 'lastlogin', 'online', 'sex', 'lookbody', 'lookfeet', 'lookhead', 'looklegs', 'looktype'); - } else { - $profile_data = user_character_data($user_id, 'name', 'account_id', 'level', 'group_id', 'vocation', 'health', 'healthmax', 'experience', 'mana', 'manamax', 'lastlogin', 'online', 'sex', 'lookbody', 'lookfeet', 'lookhead', 'looklegs', 'looktype', 'lookaddons'); - } - } else { - $profile_data = user_character_data($user_id, 'name', 'account_id', 'level', 'group_id', 'vocation', 'health', 'healthmax', 'experience', 'mana', 'manamax', 'lastlogin', 'online', 'sex', 'lookbody', 'lookfeet', 'lookhead', 'looklegs', 'looktype'); - } - } + if ($config['Ach']) { + $user_id = (int) $user_id; + $achievementPoints = mysql_select_single("SELECT SUM(`value`) AS `sum` FROM `player_storage` WHERE `key` LIKE '30___' AND `player_id`={$user_id} LIMIT 1"); } $profile_znote_data = user_znote_character_data($user_id, 'created', 'hide_char', 'comment'); @@ -82,10 +66,22 @@ if (isset($_GET['name']) === true && empty($_GET['name']) === false) { </thead> <tbody> <!-- Player Position --> - <?php if ($profile_data['group_id'] > 1): ?> + <?php if ($profile_data['group_id'] > 1): + $position = mysql_select_single(" + SELECT + `a`.`type` + FROM `players` AS `p` + INNER JOIN `accounts` AS `a` + ON `p`.`account_id` = `a`.`id` + WHERE + `a`.`type` > 1 + AND `p`.`id` = '{$user_id}' + "); + $position = (isset($config['ingame_positions'][$position['type']])) ? $config['ingame_positions'][$position['type']] : "Unknown"; + ?> <tr> <td>Position</td> - <td><?php echo group_id_to_name($profile_data['group_id']); ?></td> + <td><?php echo $position; ?></td> </tr> <?php endif; ?> <!-- Player male / female --> @@ -124,31 +120,20 @@ if (isset($_GET['name']) === true && empty($_GET['name']) === false) { <?php endif; ?> <!-- Display house start --> <?php - if ($config['ServerEngine'] !== 'TFS_02') { - // Compatibility fix - $column_town_id = array( - 'OTHIRE' => 'townid', - 'TFS_03' => 'town' - // Default: town_id - ); - $column_town_id = (isset($column_town_id[$config['ServerEngine']])) - ? $column_town_id[$config['ServerEngine']] - : 'town_id'; - $houses = mysql_select_multi(" - SELECT `id`, `owner`, `name`, `{$column_town_id}` AS `town_id` - FROM `houses` - WHERE `owner` = {$user_id}; - "); + $houses = mysql_select_multi(" + SELECT `id`, `owner`, `name`, `town_id` AS `town_id` + FROM `houses` + WHERE `owner` = {$user_id}; + "); - if ($houses !== false) { - foreach ($houses as $h): ?> - <tr> - <td>House</td> - <td><?php echo $h['name'] . ', ' . $config['towns'][$h['town_id']]; ?></td> - </tr> - <?php endforeach; - } + if ($houses !== false) { + foreach ($houses as $h): ?> + <tr> + <td>House</td> + <td><?php echo $h['name'] . ', ' . $config['towns'][$h['town_id']]; ?></td> + </tr> + <?php endforeach; } ?> <!-- Display player status --> @@ -180,56 +165,30 @@ if (isset($_GET['name']) === true && empty($_GET['name']) === false) { AND `pid`<'11' "); - $soulStamina = (in_array($config['ServerEngine'], ['TFS_10'])) - ? " `soul`, `stamina`," - : " `p`.`soul`, `p`.`stamina`,"; - + $soulStamina = " `soul`, `stamina`,"; if ($config['client'] < 780) { $soulStamina = " 0 AS `soul`, 0 AS `stamina`,"; } - $player_query = (in_array($config['ServerEngine'], ['TFS_10'])) - ? /* true */ "SELECT - `health`, `healthmax`, - `mana`, `manamax`, - `cap`, - `experience`, `level`, - {$soulStamina} - `maglevel`, - `skill_fist`, - `skill_club`, - `skill_sword`, - `skill_axe`, - `skill_dist`, - `skill_shielding`, - `skill_fishing` - FROM `players` - WHERE `id`={$user_id} - LIMIT 1;" - : /* false */ "SELECT - `p`.`health`, `p`.`healthmax`, - `p`.`mana`, `p`.`manamax`, - `p`.`cap`, - `p`.`experience`, `p`.`level`, - {$soulStamina} - `p`.`maglevel`, - `fist`.`value` AS `skill_fist`, - `club`.`value` AS `skill_club`, - `sword`.`value` AS `skill_sword`, - `axe`.`value` AS `skill_axe`, - `dist`.`value` AS `skill_dist`, - `shield`.`value` AS `skill_shielding`, - `fish`.`value` AS `skill_fishing` - FROM `players` AS `p` - LEFT JOIN `player_skills` AS `fist` ON `p`.`id` = `fist`.`player_id` AND `fist`.`skillid` = 0 - LEFT JOIN `player_skills` AS `club` ON `p`.`id` = `club`.`player_id` AND `club`.`skillid` = 1 - LEFT JOIN `player_skills` AS `sword` ON `p`.`id` = `sword`.`player_id` AND `sword`.`skillid` = 2 - LEFT JOIN `player_skills` AS `axe` ON `p`.`id` = `axe`.`player_id` AND `axe`.`skillid` = 3 - LEFT JOIN `player_skills` AS `dist` ON `p`.`id` = `dist`.`player_id` AND `dist`.`skillid` = 4 - LEFT JOIN `player_skills` AS `shield` ON `p`.`id` = `shield`.`player_id` AND `shield`.`skillid` = 5 - LEFT JOIN `player_skills` AS `fish` ON `p`.`id` = `fish`.`player_id` AND `fish`.`skillid` = 6 - WHERE `p`.`id`= {$user_id} - LIMIT 1;"; + $player_query = " + SELECT + `health`, `healthmax`, + `mana`, `manamax`, + `cap`, + `experience`, `level`, + {$soulStamina} + `maglevel`, + `skill_fist`, + `skill_club`, + `skill_sword`, + `skill_axe`, + `skill_dist`, + `skill_shielding`, + `skill_fishing` + FROM `players` + WHERE `id`={$user_id} + LIMIT 1; + "; $playerstats = mysql_select_single($player_query); $playerstats['experience'] = number_format($playerstats['experience'],0,'',','); @@ -252,9 +211,8 @@ if (isset($_GET['name']) === true && empty($_GET['name']) === false) { [133,134,143,144,145], [146,151,152,153,154], [251,268,273,278,289], - [325,328,335,367,430], - [432,463,465,472,512], - //516,541,574,577,610,619,633,634,637,665,667,684,695,697,699,725,733,746,750,760,846,853,873,884,899 + [325,328,335,367], + //430,432,463,465,472,512,516,541,574,577,610,619,633,634,637,665,667,684,695,697,699,725,733,746,750,760,846,853,873,884,899 ); $female_outfits = array( @@ -262,9 +220,8 @@ if (isset($_GET['name']) === true && empty($_GET['name']) === false) { [141,142,147,148,149], [150,155,156,157,158], [252,269,270,279,288], - [324,329,336,366,431], - [433,464,466,471,513], - //514,542,575,578,618,620,632,635,636,664,666,683,694,696,698,724,732,745,749,759,845,852,874,885,900 + [324,329,336,366], + //431,433,464,466,471,513,514,542,575,578,618,620,632,635,636,664,666,683,694,696,698,724,732,745,749,759,845,852,874,885,900 ); $featured_outfits = ($profile_data['sex'] == 1) ? $male_outfits : $female_outfits; @@ -411,11 +368,15 @@ if (isset($_GET['name']) === true && empty($_GET['name']) === false) { } #piv_flex img { position: absolute; + bottom: 0; + right: 0; } #piv_i .inventory_outfit { position: absolute; top: 130px; left: -24px; + width: 64px; + height: 64px; } #piv_lifebar { position: absolute; @@ -711,121 +672,63 @@ if (isset($_GET['name']) === true && empty($_GET['name']) === false) { </thead> <tbody> <?php - if ($config['ServerEngine'] == 'TFS_10') { - $deaths = mysql_select_multi(" - SELECT - `player_id`, - `time`, - `level`, - `killed_by`, - `is_player`, - `mostdamage_by`, - `mostdamage_is_player`, - `unjustified`, - `mostdamage_unjustified` - FROM `player_deaths` - WHERE `player_id`=$user_id - ORDER BY `time` DESC - LIMIT 10; - "); + $deaths = mysql_select_multi(" + SELECT + `player_id`, + `time`, + `level`, + `killed_by`, + `is_player`, + `mostdamage_by`, + `mostdamage_is_player`, + `unjustified`, + `mostdamage_unjustified` + FROM `player_deaths` + WHERE `player_id`=$user_id + ORDER BY `time` DESC + LIMIT 10; + "); - if ($deaths) { - foreach ($deaths as $d) { - $lasthit = ($d['is_player']) - ? "<a href='characterprofile.php?name=".$d['killed_by']."'>".$d['killed_by']."</a>" - : $d['killed_by']; + if ($deaths) { + foreach ($deaths as $d) { + $lasthit = ($d['is_player']) + ? "<a href='characterprofile.php?name=".$d['killed_by']."'>".$d['killed_by']."</a>" + : $d['killed_by']; - ?> - <tr> - <td><?php echo getClock($d['time'], true, true); ?></td> - <td> - <?php - echo "Killed at level ".$d['level']." by {$lasthit}"; - if ($d['unjustified']) { + ?> + <tr> + <td><?php echo getClock($d['time'], true, true); ?></td> + <td> + <?php + echo "Killed at level ".$d['level']." by {$lasthit}"; + if ($d['unjustified']) { + echo " <font color='red' style='font-style: italic;'>(unjustified)</font>"; + } + $mostdmg = ($d['mostdamage_by'] !== $d['killed_by']) ? true : false; + if ($mostdmg) { + $mostdmg = ($d['mostdamage_is_player']) + ? "<a href='characterprofile.php?name=".$d['mostdamage_by']."'>".$d['mostdamage_by']."</a>" + : $d['mostdamage_by']; + + echo "<br>and by $mostdmg."; + + if ($d['mostdamage_unjustified']) { echo " <font color='red' style='font-style: italic;'>(unjustified)</font>"; } - $mostdmg = ($d['mostdamage_by'] !== $d['killed_by']) ? true : false; - if ($mostdmg) { - $mostdmg = ($d['mostdamage_is_player']) - ? "<a href='characterprofile.php?name=".$d['mostdamage_by']."'>".$d['mostdamage_by']."</a>" - : $d['mostdamage_by']; - - echo "<br>and by $mostdmg."; - - if ($d['mostdamage_unjustified']) { - echo " <font color='red' style='font-style: italic;'>(unjustified)</font>"; - } - } else { - echo " <b>(soloed)</b>"; - } - ?> - </td> - </tr> - <?php - } - } else { - ?> - <tr> - <td colspan="2">This player has never died.</td> - </tr> - <?php - } - } elseif ($config['ServerEngine'] == 'TFS_02') { - $array = user_fetch_deathlist($user_id); - if ($array) { - foreach ($array as $value): - if ($value['is_player'] == 1) { - $value['killed_by'] = 'player: <a href="characterprofile.php?name='. $value['killed_by'] .'">'. $value['killed_by'] .'</a>'; - } else { - $value['killed_by'] = 'monster: '. $value['killed_by'] .'.'; - } - ?> - <tr> - <td><?php echo getClock($value['time'], true, true); ?></td> - <td><?php echo 'Killed at level '. $value['level'] .' by '. $value['killed_by']; ?></td> - </tr> - <?php endforeach; - } else { - ?> - <tr> - <td colspan="2">This player has never died.</td> - </tr> - <?php - } - } elseif (in_array($config['ServerEngine'], array('TFS_03', 'OTHIRE'))) { - //mysql_select_single("SELECT * FROM players WHERE name='TEST DEBUG';"); - $array = user_fetch_deathlist03($user_id); - if ($array) { - // Design and present the list - foreach ($array as $value): - $value[3] = user_get_killer_id(user_get_kid($value['id'])); - if ($value[3] !== false && $value[3] >= 1) { - $namedata = user_character_data((int)$value[3], 'name'); - if ($namedata !== false) { - $value[3] = $namedata['name']; - $value[3] = 'player: <a href="characterprofile.php?name='. $value[3] .'">'. $value[3] .'</a>'; } else { - $value[3] = 'deleted player.'; + echo " <b>(soloed)</b>"; } - } else { - $value[3] = user_get_killer_m_name(user_get_kid($value['id'])); - if ($value[3] === false) { - $value[3] = 'deleted player.'; - } - } - ?> - <tr> - <td><?php echo getClock($value['date'], true, true); ?></td> - <td><?php echo 'Killed at level '. $value['level'] .' by '. $value[3]; ?></td> - </tr> - <?php endforeach; - } else { - ?> - <tr> - <td colspan="2">This player has never died.</td> + ?> + </td> </tr> <?php } + } else { + ?> + <tr> + <td colspan="2">This player has never died.</td> + </tr> + <?php } ?> </tbody> @@ -893,14 +796,6 @@ if (isset($_GET['name']) === true && empty($_GET['name']) === false) { <!-- CHARACTER LIST --> <?php - // Backward compatibility - $select_online = "CASE WHEN `l`.`player_id` IS NULL THEN 0 else 1 END as `online`"; - $join_online = "LEFT JOIN `players_online` as `l` ON `p`.`id` = `l`.`player_id`"; - if ($config['ServerEngine'] != 'TFS_10') { - $select_online = "`p`.`online`"; - $join_online = ""; - } - // Load other visible characters $otherChars = mysql_select_multi(" SELECT @@ -909,7 +804,7 @@ if (isset($_GET['name']) === true && empty($_GET['name']) === false) { `p`.`level`, `p`.`vocation`, `p`.`lastlogin`, - {$select_online} + CASE WHEN `l`.`player_id` IS NULL THEN 0 else 1 END as `online` FROM `players` as `o` JOIN `players` as `p` ON `o`.`account_id` = `p`.`account_id` @@ -917,7 +812,7 @@ if (isset($_GET['name']) === true && empty($_GET['name']) === false) { ON `p`.`id` = `z`.`player_id` LEFT JOIN `znote_players` as `z2` ON `o`.`id` = `z2`.`player_id` - {$join_online} + LEFT JOIN `players_online` as `l` ON `p`.`id` = `l`.`player_id` WHERE `o`.`id` = {$user_id} AND `p`.`id` != `o`.`id` AND `z`.`hide_char` = 0