• 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!

AAC Character fraglist for Znote

ralke

(҂ ͠❛ ෴ ͡❛)ᕤ
Joined
Dec 17, 2011
Messages
1,577
Solutions
28
Reaction score
899
Location
Santiago - Chile
GitHub
ralke23
Twitch
ralke23
Hi again ^^
I wonder if there's any chance to convert this to znoteacc @Znote :

[Gesior AAC] Victims list

i was thinking on start by

PHP:
    <?php
    if ($config['TFSVersion'] == 'TFS_02' || $config['TFSVersion'] == 'TFS_10') {
        $array = user_fetch_fraglist($user_id);
        if ($array) {

and then add

PHP:
[*]            //frags list by Xampy
[*]           
[*]            $frags_limit = 10; // frags limit to show? // default: 10
[*]            $player_frags = $SQL->query('SELECT `player_deaths`.*, `players`.`name`, `killers`.`unjustified` FROM `player_deaths` LEFT JOIN `killers` ON `killers`.`death_id` = `player_deaths`.`id` LEFT JOIN `player_killers` ON `player_killers`.`kill_id` = `killers`.`id` LEFT JOIN `players` ON `players`.`id` = `player_deaths`.`player_id` WHERE `player_killers`.`player_id` = '.$player->getId().' ORDER BY `date` DESC LIMIT 0,'.$frags_limit.';');
[*]            if(count($player_frags))
[*]            {
[*]                $frags = 0;
[*]                $frag_add_content .= '<TABLE><br><TR BGCOLOR='.$config['site']['vdarkborder'].'><TD COLSPAN=2 CLASS=white><B>Victims</B></TD></TR>';
[*]                foreach($player_frags as $frag)
[*]                {
[*]                $frags++;
[*]                    if(is_int($number_of_rows / 2)) $bgcolor = $config['site']['darkborder']; else $bgcolor = $config['site']['lightborder'];
[*]                    $number_of_rows++;
[*]                    $frag_add_content .= "<tr bgcolor=\"".$bgcolor."\">
[*]                   <td width=\"20%\" align=\"center\">".date("j M Y, H:i", $frag['date'])."</td>
[*]                   <td>".(($player->getSex() == 0) ? 'She' : 'He')." fragged <a href=\"index.php?subtopic=characters&name=".$frag[name]."\">".$frag[name]."</a> at level ".$frag[level]."";
[*]

[*]                    $frag_add_content .= ". (".(($frag[unjustified] == 0) ? "<font size=\"1\" color=\"green\">Justified</font>" : "<font size=\"1\" color=\"red\">Unjustified</font>").")</td></tr>";
[*]                }
[*]            if($frags >= 1)
[*]                $main_content .= $frag_add_content . '</TABLE>';
[*]            }
[*]            // end of frags list by Xampy

but functions like

PHP:
<TR BGCOLOR='.$config['site']['vdarkborder'].'><TD COLSPAN=2 CLASS=white>

or

PHP:
                    $frag_add_content .= "<tr bgcolor=\"".$bgcolor."\">`

and much others seems to dont fit.

As you can see i dont know much scripting (lua/php) but at least i will try to understand the script u guys make, if you give it a shot, to learn at least by this request ^^ thanks in advance!
 
Last edited:
welp
take it: [PHP] fragsphp - Pastebin.com
edit: you have to edit it for your own ofc

buena @StreamSide gracias te pasaste!

got this error while testing ^^

PHP:
string(274) "SELECT `pd`.`time`, `pd`.`level`, `pd`.`unjustified`, `pd`.`mostdamage_by`, `pd`.`mostdamage_unjustified`, `p`.`name` FROM `player_deaths` AS `pd` INNER JOIN `players` AS `p` ON `pd`.`player_id`=`p`.`id` WHERE `pd`.`killed_by` = 'Felipe' ORDER BY `pd`.`time` DESC LIMIT 10;"
(query - SQL error)
Type: select_multi (select multiple rows from database)

Unknown column 'pd.time' in 'field list'

if im not wrong i supposed i should change `pd` for any table that have the mentioned variables (mostdamage_unjustified, mostdamage_by, etc.)

PHP:
SELECT `pd`.`time`, `pd`.`level`, `pd`.`unjustified`

but i checked my mysql tables and there's a lot of missing variables that are mentioned on the script, i dont know if i should upgrade my mysql tables or try other version with the tables i have on my schemas

player_killers

5492c0a5bf.png


players_deaths

5492cbd53f.png


killers

5492cdce84.png


guess this are the only mysql tables related to my request ^^ thanks in advance


 
Last edited:
using OTX 2.5, supposed to be TFS_03 (at least that is what i use on config.php), but i saw that some .php files that use this line

PHP:
if ($config['TFSVersion'] == 'TFS_10')

and works

change time to date, on my code ofc

tried chaing time to date but there's errors with the other variables

PHP:
Unknown column 'pd.unjustified' in 'field list'

i wonder if im doing right with this @StreamSide:

Ralke said:
"SELECT `player_deaths`.`date`, `player_deaths`.`level`, `killers`.`unjustified`, `killers`.`final_hit`, `killers`.`death_id`, `p`.`name` FROM `player_deaths` AS `pd` INNER JOIN `players` AS `p` ON `pd`.`player_id`=`p`.`id` WHERE `player_killers`.`player_id` = 'Felipe' ORDER BY `pd`.`time` DESC LIMIT 10;"

in any case here is my 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-->
        <h1>Character Profile:</h1>
        <table>
            <tr class="yellow"><th><center>Name:</th><th><?php echo $profile_data['name']; ?></center></th></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>Fist</th>
        <th>Club</th>
        <th>Sword</th>
        <th>Axe</th>
        <th>Dist</th>
        <th>Shield</th>
        <th>Fish</th>
        <th>Magic</th>
    </tr>
    <tr>
        <td bgcolor="#D4C0A1" align="left">
            <?php echo $playerData['fist']; ?>
        </td>
        <td bgcolor="#D4C0A1" align="left">
            <?php echo $playerData['club']; ?>
        </td>
        <td bgcolor="#D4C0A1" align="left">
            <?php echo $playerData['sword']; ?>
        </td>
        <td bgcolor="#D4C0A1" align="left">
            <?php echo $playerData['axe']; ?>
        </td>
        <td bgcolor="#D4C0A1" align="left">
            <?php echo $playerData['dist']; ?>
        </td>
        <td bgcolor="#D4C0A1" align="left">
            <?php echo $playerData['shield']; ?>
        </td>
        <td bgcolor="#D4C0A1" align="left">
            <?php echo $playerData['fish']; ?>
        </td>
        <td bgcolor="#D4C0A1" align="left">
            <?php echo $playerData['magic']; ?>
        </td>
    </tr>
</table></center>
<!-- PLAYER INFO TABLE -->
<center><table cellspacing="1" cellpadding="4" style="width: <?php echo $tableWidth; ?>px;">
    <tr>
        <td bgcolor="#F1E0C6" align="left" width="20%">
            <b>Player HP:</b>
        </td>
        <td bgcolor="#F1E0C6" 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="#D4C0A1" align="left">
            <b>Player MP:</b>
        </td>
        <td bgcolor="#D4C0A1" 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="#D4C0A1" align="left">
            <b>Player XP:</b>
        </td>
        <td bgcolor="#D4C0A1" align="left">
            <?php echo number_format($playerData['exp']['now'], 0, "", " "); ?> Experience.
        </td>
    </tr>
    <tr>
        <td bgcolor="#F1E0C6" align="left">
            <b>To Next Lvl:</b>
        </td>
        <td bgcolor="#F1E0C6" 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 -->
<table>
    <tr class="yellow">
        <th><center>Comment:</center></th>
    </tr>
    <tr>
        <td><center><textarea name="profile_comment_textarea" cols="70" rows="10" readonly="readonly" class="span12"><?php echo $profile_znote_data['comment']; ?></textarea></center></td>
    </tr>
</table>
<!-- DEATH LIST -->
<h1>Death List:</h1><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) {
?>
    <h1>Other visible characters on this account:</h1><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'; ?>
 
show me the config.php part where you define the server version

PHP:
<?php
    if (!defined('ZNOTE_OS')) {
        $isWindows = (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN');
        define('ZNOTE_OS', ($isWindows) ? 'WINDOWS' : 'LINUX');
    }
 
    // Available options: TFS_02, TFS_03
    // TFS 0.2 = TFS_02
    // TFS 0.3 = TFS_03 (If ur using 0.3.6, set $config['salt'] to false)!
    // TFS 0.4 = TFS_03
    // TFS 1.0 = TFS_10 (Under developement)
    $config['TFSVersion'] = 'TFS_03';
    // As far as I know, OTX is based on TFS_03, so make sure TFS version is configured TFS_03
    $config['CustomVersion'] = false;
 
so I should rewrite the entire code, give me a few so see what can I do, maybe add me on discord

ok thanks again any help you need with it just tell me ^^ i recently noticed what discord app is and never used it before :p anyways ive just registered with username ralke
 
Back
Top