• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Characterprofile.php show flag

bybbzan

mapper
Joined
Aug 4, 2012
Messages
809
Solutions
2
Reaction score
136
Location
Sweden
How do i write to get the country flag for the account?

characterprofile.php
HTML:
            <tr><td>Name:</td><td><?php echo $profile_data['name']; ?></td></tr>
            <tr><td>Country:</td><td><?php echo $profile_data['flag']; ?></td></tr>          
            <tr><td>Level:</td><td><?php echo $profile_data['level']; ?></td></tr>
            <tr><td>Vocation:</td><td><?php echo vocation_id_to_name($profile_data['vocation']); ?></td></tr>

Right now its obviously blank..
1677098312762.png
 
Flag/country is loaded from:
which is znote_accounts table in database. Records in it only exists for accounts created by Znote AAC, not by phpMyAdmin or by other acc. maker 'before you installed Znote AAC', so it may not work for 'GM' account you've created by some database manager (phpMyAdmin etc.).

Also on ZnoteAAC 'flag' is not a part of $profile_data (accounts table). It's from table znote_accounts:
and after loading it gets into $account_data
 
Flag/country is loaded from:
which is znote_accounts table in database. Records in it only exists for accounts created by Znote AAC, not by phpMyAdmin or by other acc. maker 'before you installed Znote AAC', so it may not work for 'GM' account you've created by some database manager (phpMyAdmin etc.).

Also on ZnoteAAC 'flag' is not a part of $profile_data (accounts table). It's from table znote_accounts:
and after loading it gets into $account_data

Thank you for the information.
Could you help me include the flag code, to load properly?
I've got no experience with .php, and deleted some lines to get the character page "cleaner".

This is how it looks right now.
characterprofile.php
PHP:
<?php require_once 'engine/init.php'; include 'layout/overall/header.php';
if ($config['log_ip']) {
    znote_visitor_insert_detailed_data(4);
}
if (isset($_GET['name']) === true && empty($_GET['name']) === false) {
    $name = $_GET['name'];
 
    if (user_character_exist($name)) {
        $user_id = user_character_id($name);
        if ($config['TFSVersion'] == 'TFS_10') {
                $profile_data = user_character_data($user_id, 'name', 'level', 'vocation', 'lastlogin', 'town_id');
                $profile_data['online'] = user_is_online_10($user_id);
        } else $profile_data = user_character_data($user_id, 'name', 'level', 'vocation', 'lastlogin', 'town_id', 'online');
        $profile_znote_data = user_znote_character_data($user_id, 'created', 'hide_char', 'comment');
    
        $guild_exist = false;
        if (get_character_guild_rank($user_id) > 0) {
                $guild_exist = true;
                $guild = get_player_guild_data($user_id);
                $guild_name = get_guild_name($guild['guild_id']);
        }
        ?>

        <!-- PROFILE MARKUP HERE-->
        <h2>Character Profile:</h2>
        <table>
            <tr><td>Name:</td><td><?php echo $profile_data['name']; ?></td></tr>
            <tr><td>Country:</td><td><?php echo $profile_data['flag']; ?></td></tr>           
            <tr><td>Level:</td><td><?php echo $profile_data['level']; ?></td></tr>
            <tr><td>Vocation:</td><td><?php echo vocation_id_to_name($profile_data['vocation']); ?></td></tr>
            <tr>
                <td>Guild:</td>
                <td><?php
                        if ($guild_exist) {
                        ?>
                        <?php echo $guild['rank_name']; ?> of <a href="guilds.php?name=<?php echo $guild_name; ?>"><?php echo $guild_name; ?></a>
                        <?php
                        }
                        else {
                        echo 'None';
                        }
                ?></td>
            </tr>
            <tr>
                <td>Residence</td>
                <td><?php echo $config['towns'][$profile_data['town_id']]; ?></td>
            </tr>
            <tr>
                <td>Last Login:</td>
                <td><?php
                    if ($profile_data['lastlogin'] != 0) { echo getClock($profile_data['lastlogin'], true, false); } else { echo 'Never.'; }
                ?></td>
            </tr>
            <tr>
                <td>Status:</td>
                <td><?php
                    if ($config['TFSVersion'] == 'TFS_10') {
                        if ($profile_data['online']) {
                            echo '<font class="profile_font" name="profile_font_online" color="green"><b>ONLINE</b></font>';
                        } else {
                            echo '<font class="profile_font" name="profile_font_online" color="red"><b>OFFLINE</b></font>';
                        }
                    } else {
                        if ($profile_data['online'] == 1) {
                            echo '<font class="profile_font" name="profile_font_online" color="green"><b>ONLINE</b></font>';
                        } else {
                            echo '<font class="profile_font" name="profile_font_online" color="red"><b>OFFLINE</b></font>';
                        }
                    }
                ?></td>
            </tr>
            <tr>
                <td>Created:</td>
                <td><?php echo getClock($profile_znote_data['created'], true); ?></td>
            </tr>
        </table>
<?php
/*/
/   Znote AAC 1.4+ detailed character info (HP, MP, lvL, Exp, skills)
/   HTML code based on code from Gesior
/*/
$tableWidth = 540;
if ($config['TFSVersion'] != 'TFS_10') {
    $playerData = mysql_select_multi("SELECT `value` FROM `player_skills` WHERE `player_id`='$user_id' LIMIT 7;");
    $playerData['fist'] = $playerData[0]['value']; unset($playerData[0]);
    $playerData['club'] = $playerData[1]['value']; unset($playerData[1]);
    $playerData['sword'] = $playerData[2]['value']; unset($playerData[2]);
    $playerData['axe'] = $playerData[3]['value']; unset($playerData[3]);
    $playerData['dist'] = $playerData[4]['value']; unset($playerData[4]);
    $playerData['shield'] = $playerData[5]['value']; unset($playerData[5]);
    $playerData['fish'] = $playerData[6]['value']; unset($playerData[6]);

    $player = mysql_select_single("SELECT `health`, `healthmax`, `mana`, `manamax`, `experience`, `maglevel`, `level` FROM `players` WHERE `id`='$user_id' LIMIT 1;");
    $playerData['magic'] = $player['maglevel'];
    $playerData['exp'] = array(
        'now' => $player['experience'],
        'next' => (int)(level_to_experience($player['level']+1) - $player['experience']),
        'percent' => (int)(($player['experience'] - level_to_experience($player['level'])) / (level_to_experience($player['level']+1) - $player['experience']) * 100)
    );
    $playerData['health'] = array(
        'now' => $player['health'],
        'max' => $player['healthmax'],
        'percent' => (int)($player['health'] / $player['healthmax'] * 100),
    );
    $playerData['mana'] = array(
        'now' => $player['mana'],
        'max' => $player['manamax'],
        'percent' => (int)($player['mana'] / $player['manamax'] * 100),
    );
} else {
    $player = mysql_select_single("SELECT `health`, `healthmax`, `mana`, `manamax`, `experience`, `skill_fist`, `skill_club`, `skill_sword`, `skill_axe`, `skill_dist`, `skill_shielding`, `skill_fishing`, `maglevel`, `level` FROM `players` WHERE `id`='$user_id' LIMIT 1;");
    $playerData = array(
        'fist' => $player['skill_fist'],
        'club' => $player['skill_club'],
        'sword' => $player['skill_sword'],
        'axe' => $player['skill_axe'],
        'dist' => $player['skill_dist'],
        'shield' => $player['skill_shielding'],
        'fish' => $player['skill_fishing'],
        'magic' => $player['maglevel'],
        'exp' => array(
            'now' => $player['experience'],
            'next' => (int)(level_to_experience($player['level']+1) - $player['experience']),
            'percent' => (int)(($player['experience'] - level_to_experience($player['level'])) / (level_to_experience($player['level']+1) - $player['experience']) * 100)
        ),
        'health' => array(
            'now' => $player['health'],
            'max' => $player['healthmax'],
            'percent' => (int)($player['health'] / $player['healthmax'] * 100),
        ),
        'mana' => array(
            'now' => $player['mana'],
            'max' => $player['manamax'],
            'percent' => (int)($player['mana'] / $player['manamax'] * 100),
        )
    );
}
// Incase they have more health/mana than they should due to equipment bonus etc
if ($playerData['exp']['percent'] > 100) $playerData['exp']['percent'] = 100;
if ($playerData['health']['percent'] > 100) $playerData['health']['percent'] = 100;
if ($playerData['mana']['percent'] > 100) $playerData['mana']['percent'] = 100;
//data_dump($playerData, false, "Player Data");
?>
<!-- PLAYER SKILLS TABLE -->
<center><table cellspacing="1" cellpadding="4" style="width: <?php echo $tableWidth; ?>px;">
    <tr class="yellow">
        <th>Magic</th>
        <th>Club</th>
        <th>Sword</th>
        <th>Axe</th>
        <th>Dist</th>
        <th>Shield</th>
    </tr>
    <tr>
        <td bgcolor="#0d0d0d" align="center">
            <?php echo $playerData['magic']; ?>
        </td>
        <td bgcolor="#0d0d0d" align="center">
            <?php echo $playerData['club']; ?>
        </td>
        <td bgcolor="#0d0d0d" align="center">
            <?php echo $playerData['sword']; ?>
        </td>
        <td bgcolor="#0d0d0d" align="center">
            <?php echo $playerData['axe']; ?>
        </td>
        <td bgcolor="#0d0d0d" align="center">
            <?php echo $playerData['dist']; ?>
        </td>
        <td bgcolor="#0d0d0d" align="center">
            <?php echo $playerData['shield']; ?>
        </td>
    </tr>
</table></center>

<?php
/*/
/   Player character profile EQ shower
/   Based on code from CorneX
/   Written to Znote AAC by Znote.
/   Should work on all TFS versions.
/   Znote AAC 1.4+
/*/

// Item image server
$imageServer = $config['shop']['imageServer'];
$imageType = $config['shop']['imageType'];
if (count($imageType) < 3) $imageType = 'gif';
// Fetch player equipped data
$PEQD = mysql_select_multi("SELECT `player_id`, `pid`, `itemtype`, `count` FROM `player_items` WHERE `player_id`='$user_id' AND `pid`<'11'");
// If player have equipped items
if ($PEQD !== false) {
    // PEQD = Player EQ Data
    $PEQ = array(
        1 => false,
        2 => false,
        3 => false,
        4 => false,
        5 => false,
        6 => false,
        7 => false,
        8 => false,
        9 => false,
        10 => false,
    );
    // Fill player equipments array with fetched data results (PEQD)
    foreach ($PEQD as $EQ) $PEQ[$EQ['pid']] = "http://{$imageServer}/".$EQ['itemtype'].".{$imageType}";
    ?>
?>    <!-- END EQ SHOWER -->

<table id="questTable">
    <?php
    $completed = '<font color="green">[Completed]</font>';
    $notstarted = '<font color="red">[Incomplete]</font>';
    function Progress($min, $max, $design = '<font color="orange">[x%]</font>') {
        $design = explode("x%",$design);
        $percent = ($min / $max) * 100;
        return $design[0] . $percent . $design[1];
    }
    $quests = array(
        // Simple quests
        'Demon Helmet Quest' => 13445,
        'Annihilator' => 1337,
        'Pits Of Inferno' => 2640,       

        // Advanced quest with progress par:
        'Pharaohs Challenge Quest' => array(
            1338,
            3,
        ),
    );
    ?>
    <tr class="yellow">
        <td>Quest Name</td>
        <td>Status</td>
    </tr>
    <?php
    // Rolling through quests
    foreach ($quests as $key => $quest) {

        // Is quest NOT an array (advanced quest?)
        if (!is_array($quest)) {
            // Query to find quest results
            $query = mysql_select_single("SELECT `value` FROM `player_storage` WHERE `key`='$quest' AND `player_id`='$user_id' AND `value`='1' LIMIT 1;");

            if ($query !== false) $quest = $completed;
            else $quest = $notstarted;

        } else {
            $query = mysql_select_single("SELECT `value` FROM `player_storage` WHERE `key`='".$quest[0]."' AND `player_id`='$user_id' AND `value`>'0' LIMIT 1;");
            if (!$query) $quest = $notstarted;
            else {
                if ($query['value'] >= $quest[1]) $quest = $completed;
                else $quest = Progress($query['value'], $quest[1]);
            }
        }
        ?>
        <tr>
            <td><?php echo $key; ?></td>
            <td><?php echo $quest; ?></td>
        </tr>
        <?php
    }
    ?>
</table>
<!-- PLAYER INFO TABLE -->
<center><table cellspacing="1" cellpadding="4" style="width: <?php echo $tableWidth; ?>px;">
    <tr>
        <td bgcolor="#0d0d0d" align="left" width="20%">
            <b>Player Health:</b>
        </td>
        <td bgcolor="#0d0d0d" align="left">
            <?php echo $playerData['health']['now'].'/'.$playerData['health']['max']; ?>
            <div style="width: 100%; height: 3px; border: 1px solid #000;">
                <div style="background: red; width: <?php echo $playerData['health']['percent']; ?>%; height: 3px;">
                </div>
            </div>
        </td>
    </tr>
    <tr>
        <td bgcolor="#0d0d0d" align="left">
            <b>Player Mana:</b>
        </td>
        <td bgcolor="#0d0d0d" align="left">
            <?php echo $playerData['mana']['now'].'/'.$playerData['mana']['max']; ?>
            <div style="width: 100%; height: 3px; border: 1px solid #000;">
                <div style="background: blue; width: <?php echo $playerData['mana']['percent']; ?>%; height: 3px;">
                </div>
            </div>
        </td>
    </tr>
    <tr>
        <td bgcolor="#0d0d0d" align="left">
            <b>Player Exp:</b>
        </td>
        <td bgcolor="#0d0d0d" align="left">
            <?php echo number_format($playerData['exp']['now'], 0, "", " "); ?> Experience.
        </td>
    </tr>
    <tr>
        <td bgcolor="#0d0d0d" align="left">
            <b>To Next Lvl:</b>
        </td>
        <td bgcolor="#0d0d0d" align="left">
            Need <b><?php echo number_format($playerData['exp']['next'], 0, "", " "); ?> experience (<?php echo 100-$playerData['exp']['percent']; ?>%)</b> to Level <b><?php echo $player['level']+1; ?></b>.
            <div title="99.320604545 %" style="width: 100%; height: 3px; border: 1px solid #000;">
                <div style="background: red; width: <?php echo $playerData['exp']['percent']; ?>%; height: 3px;"></div>
            </div>
        </td>
    </tr>
</table></center>
<!-- END detailed character info -->
<!-- DEATH LIST -->
<h2>Death List:</h2><br>
<table id="characterprofileTable" class="table table-striped table-hover">
    <tr class="yellow">
        <th>Date:</th>
        <th>Level:</th>
        <th>Killed by:</th>
    </tr>
    <?php
    if ($config['TFSVersion'] == 'TFS_02' || $config['TFSVersion'] == 'TFS_10') {
        $array = user_fetch_deathlist($user_id);
        if ($array) {
            
                // Design and present the list
                foreach ($array as $value) {
                    echo '<tr>';
                    // $value[0]
                    $value['time'] = getClock($value['time'], true);                                   
                    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'] .'.';
                    }
                
                    echo '<td>'. $value['time'] .'</td>
                    <td> Killed at level '. $value['level'] .'</td>
                    <td>'. $value['killed_by'];'</td>
                    </tr>';
                }
            
            } else {
                echo '<b><font color="green">This player has never died.</font></b>';
            }
            //Done.
        } else if ($config['TFSVersion'] == 'TFS_03') {
            $array = user_fetch_deathlist03($user_id);
            if ($array) {
        
                // Design and present the list
                foreach ($array as $value) {
                    echo '<tr>';
                    $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] = '<a href="characterprofile.php?name='. $value[3] .'">'. $value[3] .'</a>';
                        } else {
                            $value[3] = 'deleted player.';
                        }
                    } else {
                        $value[3] = user_get_killer_m_name(user_get_kid($value['id']));
                        if ($value[3] === false) $value[3] = 'deleted player.';
                    }
                    echo '<td>'. getClock($value['date'], true) .'</td> <td>Killed at level '. $value['level'] .'.</td> <td>'. $value[3];
                    '</td></tr>';
                }
        
            } else {
                echo '<b><font color="green">This player has never died.</font></b>';
            }
        }
        ?>
</table>
<!-- END DEATH LIST -->         
<!-- CHARACTER LIST -->
<?php
if (user_character_hide($profile_data['name']) != 1 && user_character_list_count(user_character_account_id($name)) > 1) {
?>
    <h2>Other visible characters on this account:</h2><br>
    <?php
    $characters = user_character_list(user_character_account_id($profile_data['name']));
    // characters: [0] = name, [1] = level, [2] = vocation, [3] = town_id, [4] = lastlogin, [5] = online
    if ($characters && count($characters) > 1) {
        ?>
        <table id="characterprofileTable" class="table table-striped table-hover">
            <tr class="yellow">
                <th>Name:</th>
                <th>Level:</th>
                <th>Vocation:</th>
                <th>Last login:</th>
                <th>Status:</th>
            </tr>
            <?php
            // Design and present the list
            foreach ($characters as $char) {
                if ($char['name'] != $profile_data['name']) {
                    if (hide_char_to_name(user_character_hide($char['name'])) != 'hidden') {
                        echo '<tr>';
                        echo '<td><a href="characterprofile.php?name='. $char['name'] .'">'. $char['name'] .'</a></td>';
                        echo '<td>'. $char['level'] .'</td>';
                        echo '<td>'. $char['vocation'] .'</td>';
                        echo '<td>'. $char['lastlogin'] .'</td>';
                        echo '<td>'. $char['online'] .'</td>';
                        echo '</tr>';
                    }
                }
            }
            ?>
        </table>
        <?php
    } else {
        echo '<b><font color="green">This player has never died.</font></b>';
    }
    //Done.
}
?>
<!-- END CHARACTER LIST -->
<font class="profile_font" name="profile_font_share_url">Address: <a href="<?php
        if ($config['htwrite']) echo "http://".$_SERVER['HTTP_HOST']."/". $profile_data['name'];
        else echo "http://".$_SERVER['HTTP_HOST']."/characterprofile.php?name=". $profile_data['name'];
?>"><?php
        if ($config['htwrite']) echo "http://".$_SERVER['HTTP_HOST']."/". $profile_data['name'];
        else echo "http://".$_SERVER['HTTP_HOST']."/characterprofile.php?name=". $profile_data['name'];
?></a></font>
<!-- END PROFILE MARKUP HERE-->
<?php
} else {
    echo htmlentities(strip_tags($name, ENT_QUOTES)).' does not exist.';
}
} else {
    header('Location: index.php');
}
include 'layout/overall/footer.php'; ?>
 
Back
Top