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

[Znote Acc 1.5] Shop item list + Categories + Style

Perfect man, now I only get this error in all sellables:

Notice: Undefined index: shop_auction in C:\xampp\htdocs\services.php on line 81

PD: Are u spanish?
 
Perfect man, now I only get this error in all sellables:

Notice: Undefined index: shop_auction in C:\xampp\htdocs\services.php on line 81

PD: Are u spanish?
ten pongo mi services.php y miras si esta igual que el tuyo.
PHP:
<?php require_once 'engine/init.php';
protect_page();
include 'layout/overall/header.php';
// Import from config:
$shop = $config['shop'];
$shop_list = $config['shop_services'];
if (!empty($_POST['buy'])) {
        $time = time();
        $player_points = (int)$user_znote_data['points'];
        $cid = (int)$user_data['id'];
        // Sanitizing post, setting default buy value
        $buy = false;
        $post = (int)$_POST['buy'];
      
        foreach ($shop_list as $key => $value) {
                if ($key === $post) {
                        $buy = $value;
                }
        }
        if ($buy === false) die("Error: Shop offer ID mismatch.");
      
        // Verify that user can afford this offer.
        if ($player_points >= $buy['points']) {
                $data = mysql_select_single("SELECT `points` FROM `znote_accounts` WHERE `account_id`='$cid';");
                if (!$data) die("0: Account is not converted to work with Znote AAC");
                $old_points = $data['points'];
                if ((int)$old_points != (int)$player_points) die("1: Failed to equalize your points.");
                // Remove points if they can afford
                // Give points to user
                $expense_points = $buy['points'];
                $new_points = $old_points - $expense_points;
                $update_account = mysql_update("UPDATE `znote_accounts` SET `points`='$new_points' WHERE `account_id`='$cid'");
              
                $data = mysql_select_single("SELECT `points` FROM `znote_accounts` WHERE `account_id`='$cid';");
                $verify = $data['points'];
                if ((int)$old_points == (int)$verify) die("2: Failed to equalize your points.". var_dump((int)$old_points, (int)$verify, $new_points, $expense_points));
              
                // Do the magic (insert into db, or change sex etc)
                // If type is 2 or 3
                if ($buy['type'] == 2) {
                        // Add premium days to account
                        user_account_add_premdays($cid, $buy['count']);
                        echo '<font color="green" size="4">You now have '.$buy['count'].' additional days of premium membership.</font>';
                } else if ($buy['type'] == 3) {
                        // Character Gender
                        mysql_insert("INSERT INTO `znote_shop_orders` (`account_id`, `type`, `itemid`, `count`, `time`) VALUES ('$cid', '". $buy['type'] ."', '". $buy['itemid'] ."', '". $buy['count'] ."', '$time')");
                        echo '<font color="green" size="4">You now have access to change character gender on your characters. Visit <a href="myaccount.php">My Account</a> to select character and change the gender.</font>';
                } else if ($buy['type'] == 4) {
                        // Character Name
                        mysql_insert("INSERT INTO `znote_shop_orders` (`account_id`, `type`, `itemid`, `count`, `time`) VALUES ('$cid', '". $buy['type'] ."', '". $buy['itemid'] ."', '". $buy['count'] ."', '$time')");
                        echo '<font color="green" size="4">You now have access to change character name on your characters. Visit <a href="myaccount.php">My Account</a> to select character and change the name.</font>';
                } else {
                        mysql_insert("INSERT INTO `znote_shop_orders` (`account_id`, `type`, `itemid`, `count`, `time`) VALUES ('$cid', '". $buy['type'] ."', '". $buy['itemid'] ."', '". $buy['count'] ."', '$time')");
                        echo '<font color="green" size="4">Your order is ready to be delivered. Write this command in-game to get it: [!shop].<br>Make sure you are in depot and can carry it before executing the command!</font>';
                }
              
                // No matter which type, we will always log it.
                mysql_insert("INSERT INTO `znote_shop_logs` (`account_id`, `player_id`, `type`, `itemid`, `count`, `points`, `time`) VALUES ('$cid', '0', '". $buy['type'] ."', '". $buy['itemid'] ."', '". $buy['count'] ."', '". $buy['points'] ."', '$time')");
              
        } else echo '<font color="red" size="4">You need more points, this offer cost '.$buy['points'].' points.</font>';
        //var_dump($buy);
        //echo '<font color="red" size="4">'. $_POST['buy'] .'</font>';
}
if ($shop['enabled']) {
?>
<h1>Shop Offers</h1>
<?php
if (!empty($_POST['buy'])) {
        if ($user_znote_data['points'] >= $buy['points']) {
                ?><td>You have <?php echo (int)($user_znote_data['points'] - $buy['points']); ?> points. (<a href="buypoints.php">Buy points</a>).</td><?php
        } else {
                ?><td>You have <?php echo $user_znote_data['points']; ?> points. (<a href="buypoints.php">Buy points</a>).</td><?php
        }
} else {
        ?><td>You have <?php echo $user_znote_data['points']; ?> points. (<a href="buypoints.php">Buy points</a>).</td><?php
}
if ($config['shop_auction']['characterAuction']) {
        ?>
        <p>Interested in buying characters? View the <a href="auctionChar.php">character auction page!</a></p>
        <?php
}
?>


<table id="1"><h3>Services:</h3>
        <tr class="yellow">
                <?php if ($config['shop']['showImage']) { ?><td>Img:</td><?php } ?>
                <td>Description:</td>
                <td>Count:</td>
                <td width="100px">Points:</td>
                <td>Action:</td>
        </tr>
                <?php
                foreach ($shop_list as $key => $offers) {
                echo '<tr class="special">';
                if ($config['shop']['showImage']) echo '<td><img src="http://'. $config['shop']['imageServer'] .'/'. $offers['itemid'] .'.'. $config['shop']['imageType'] .'" alt="img"></td>';
                echo '<td>'. $offers['description'] .'</td>';
                if ($offers['type'] == 2) echo '<td>'. $offers['count'] .' Days</td>';
                else if ($offers['type'] == 3 && $offers['count'] == 0) echo '<td>Unlimited</td>';
                else echo '<td>'. $offers['count'] .'x</td>';
                echo '<td class="points">'. $offers['points'] .'</td>';
                echo '<td>';
                ?>
                <form action="" method="POST">
                        <input type="hidden" name="buy" value="<?php echo (int)$key; ?>">
                        <input type="submit" value="  PURCHASE  "  class="needconfirmation" data-item-name="<?php echo $offers['description']; ?>" data-item-cost="<?php echo $offers['points']; ?>">
                </form>
                <?php
                echo '</td>';
                echo '</tr>';
                }
                ?>
</table>

<?php if ($shop['enableShopConfirmation']) { ?>
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script>
    $(document).ready(function(){
        $(".needconfirmation").each(function(e){
            $(this).click(function(e){
                var itemname = $(this).attr("data-item-name");
                var itemcost = $(this).attr("data-item-cost");
                                var r = confirm("Do you really want to purchase "+itemname+" for "+itemcost+" points?")
                                if(r == false){
                                        e.preventDefault();
                                }                     
            });
        });
    });
</script>
<?php }
} else echo '<h1>Buy Points system disabled.</h1><p>Sorry, this functionality is disabled.</p>';
include 'layout/overall/footer.php'; ?>
 
ten pongo mi services.php y miras si esta igual que el tuyo.
PHP:
<?php require_once 'engine/init.php';
protect_page();
include 'layout/overall/header.php';
// Import from config:
$shop = $config['shop'];
$shop_list = $config['shop_services'];
if (!empty($_POST['buy'])) {
        $time = time();
        $player_points = (int)$user_znote_data['points'];
        $cid = (int)$user_data['id'];
        // Sanitizing post, setting default buy value
        $buy = false;
        $post = (int)$_POST['buy'];
     
        foreach ($shop_list as $key => $value) {
                if ($key === $post) {
                        $buy = $value;
                }
        }
        if ($buy === false) die("Error: Shop offer ID mismatch.");
     
        // Verify that user can afford this offer.
        if ($player_points >= $buy['points']) {
                $data = mysql_select_single("SELECT `points` FROM `znote_accounts` WHERE `account_id`='$cid';");
                if (!$data) die("0: Account is not converted to work with Znote AAC");
                $old_points = $data['points'];
                if ((int)$old_points != (int)$player_points) die("1: Failed to equalize your points.");
                // Remove points if they can afford
                // Give points to user
                $expense_points = $buy['points'];
                $new_points = $old_points - $expense_points;
                $update_account = mysql_update("UPDATE `znote_accounts` SET `points`='$new_points' WHERE `account_id`='$cid'");
             
                $data = mysql_select_single("SELECT `points` FROM `znote_accounts` WHERE `account_id`='$cid';");
                $verify = $data['points'];
                if ((int)$old_points == (int)$verify) die("2: Failed to equalize your points.". var_dump((int)$old_points, (int)$verify, $new_points, $expense_points));
             
                // Do the magic (insert into db, or change sex etc)
                // If type is 2 or 3
                if ($buy['type'] == 2) {
                        // Add premium days to account
                        user_account_add_premdays($cid, $buy['count']);
                        echo '<font color="green" size="4">You now have '.$buy['count'].' additional days of premium membership.</font>';
                } else if ($buy['type'] == 3) {
                        // Character Gender
                        mysql_insert("INSERT INTO `znote_shop_orders` (`account_id`, `type`, `itemid`, `count`, `time`) VALUES ('$cid', '". $buy['type'] ."', '". $buy['itemid'] ."', '". $buy['count'] ."', '$time')");
                        echo '<font color="green" size="4">You now have access to change character gender on your characters. Visit <a href="myaccount.php">My Account</a> to select character and change the gender.</font>';
                } else if ($buy['type'] == 4) {
                        // Character Name
                        mysql_insert("INSERT INTO `znote_shop_orders` (`account_id`, `type`, `itemid`, `count`, `time`) VALUES ('$cid', '". $buy['type'] ."', '". $buy['itemid'] ."', '". $buy['count'] ."', '$time')");
                        echo '<font color="green" size="4">You now have access to change character name on your characters. Visit <a href="myaccount.php">My Account</a> to select character and change the name.</font>';
                } else {
                        mysql_insert("INSERT INTO `znote_shop_orders` (`account_id`, `type`, `itemid`, `count`, `time`) VALUES ('$cid', '". $buy['type'] ."', '". $buy['itemid'] ."', '". $buy['count'] ."', '$time')");
                        echo '<font color="green" size="4">Your order is ready to be delivered. Write this command in-game to get it: [!shop].<br>Make sure you are in depot and can carry it before executing the command!</font>';
                }
             
                // No matter which type, we will always log it.
                mysql_insert("INSERT INTO `znote_shop_logs` (`account_id`, `player_id`, `type`, `itemid`, `count`, `points`, `time`) VALUES ('$cid', '0', '". $buy['type'] ."', '". $buy['itemid'] ."', '". $buy['count'] ."', '". $buy['points'] ."', '$time')");
             
        } else echo '<font color="red" size="4">You need more points, this offer cost '.$buy['points'].' points.</font>';
        //var_dump($buy);
        //echo '<font color="red" size="4">'. $_POST['buy'] .'</font>';
}
if ($shop['enabled']) {
?>
<h1>Shop Offers</h1>
<?php
if (!empty($_POST['buy'])) {
        if ($user_znote_data['points'] >= $buy['points']) {
                ?><td>You have <?php echo (int)($user_znote_data['points'] - $buy['points']); ?> points. (<a href="buypoints.php">Buy points</a>).</td><?php
        } else {
                ?><td>You have <?php echo $user_znote_data['points']; ?> points. (<a href="buypoints.php">Buy points</a>).</td><?php
        }
} else {
        ?><td>You have <?php echo $user_znote_data['points']; ?> points. (<a href="buypoints.php">Buy points</a>).</td><?php
}
if ($config['shop_auction']['characterAuction']) {
        ?>
        <p>Interested in buying characters? View the <a href="auctionChar.php">character auction page!</a></p>
        <?php
}
?>


<table id="1"><h3>Services:</h3>
        <tr class="yellow">
                <?php if ($config['shop']['showImage']) { ?><td>Img:</td><?php } ?>
                <td>Description:</td>
                <td>Count:</td>
                <td width="100px">Points:</td>
                <td>Action:</td>
        </tr>
                <?php
                foreach ($shop_list as $key => $offers) {
                echo '<tr class="special">';
                if ($config['shop']['showImage']) echo '<td><img src="http://'. $config['shop']['imageServer'] .'/'. $offers['itemid'] .'.'. $config['shop']['imageType'] .'" alt="img"></td>';
                echo '<td>'. $offers['description'] .'</td>';
                if ($offers['type'] == 2) echo '<td>'. $offers['count'] .' Days</td>';
                else if ($offers['type'] == 3 && $offers['count'] == 0) echo '<td>Unlimited</td>';
                else echo '<td>'. $offers['count'] .'x</td>';
                echo '<td class="points">'. $offers['points'] .'</td>';
                echo '<td>';
                ?>
                <form action="" method="POST">
                        <input type="hidden" name="buy" value="<?php echo (int)$key; ?>">
                        <input type="submit" value="  PURCHASE  "  class="needconfirmation" data-item-name="<?php echo $offers['description']; ?>" data-item-cost="<?php echo $offers['points']; ?>">
                </form>
                <?php
                echo '</td>';
                echo '</tr>';
                }
                ?>
</table>

<?php if ($shop['enableShopConfirmation']) { ?>
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script>
    $(document).ready(function(){
        $(".needconfirmation").each(function(e){
            $(this).click(function(e){
                var itemname = $(this).attr("data-item-name");
                var itemcost = $(this).attr("data-item-cost");
                                var r = confirm("Do you really want to purchase "+itemname+" for "+itemcost+" points?")
                                if(r == false){
                                        e.preventDefault();
                                }                    
            });
        });
    });
</script>
<?php }
} else echo '<h1>Buy Points system disabled.</h1><p>Sorry, this functionality is disabled.</p>';
include 'layout/overall/footer.php'; ?>

y en config.php busca esto:

PHP:
    $config['shop_auction'] = array(
            'characterAuction' => true, // Enable/disable this system
            'requiredLevel' => 50, // Minimum level of sold character
            'leastValue' => 10, // Lowest donation points a char can be sold for.
            'leastTime' => 24, // In hours. False to disable.
            // leastTime = Lowest duration of time an auctioned player has to be
            // sellable before auctioneer can claim character back.
        );
 
Now the error is:

Notice: Undefined index: shop_offers in C:\xampp\htdocs\shop.php on line 7

 
Okey, solved, how i havent seen that xD

Just erase the line 7. For that people who have same problem.
 
I changed my layout, and now I have put a 1.4 layout, and I have desactivated sub-pages. And my layout hasn't got the file "head", anywhere. So I copied the head.php of my original layout. Nothing happens. I get this:

n2VmL5h.png
 
I changed my layout, and now I have put a 1.4 layout, and I have desactivated sub-pages. And my layout hasn't got the file "head", anywhere. So I copied the head.php of my original layout. Nothing happens. I get this:

n2VmL5h.png
you may be missiong some css styles
 
Yes, It's what Im really questioning. I have menu.css in css folder, but I dont have head.php (this php file links css and shop.php). How I add this system without head.php
 
Yes, It's what Im really questioning. I have menu.css in css folder, but I dont have head.php (this php file links css and shop.php). How I add this system without head.php
You can place the stylesheet linker inside overall/header.php instead.
Code:
<link rel="stylesheet" type="text/css" href="layout/css/menu.css" />

You can't just add a file and name it head.php, you need to include it somewhere.
But that won't work since your using code from another layout into the your using (if head.php contains somehting else).
 
Last edited:
Its working but not looks very good. How to improve look of this.

nhCt1pV.jpg
 
After buying an item in the shop it tells you to go to a depot and say !shop
But shouldnt I need to change something in talkactions.xml and have a shop.lua file ?
 
Back
Top