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

Windows Problems with recieving the items twice. Tfs 0.3.6, znote_03

niti

New Member
Joined
Nov 22, 2009
Messages
258
Reaction score
2
Hi all.
When I write !shop in the server I recieve the items, then I buy an another thing again but it doesn't work twice. You can only write !shop once and reiceve your item. Next time you try there are no errors in the server log or anything? You can't recieve your item more than twice from the website. What's wrong?
REP++ for help
 
This is my shop.php, I don't got donation.php



Code:
<?php require_once 'engine/init.php';
protect_page();
include 'layout/overall/header.php';

// Import from config:
$shop = $config['shop'];
$shop_list = $config['shop_offers'];

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']) {
        $old_points = mysql_result(mysql_query("SELECT `points` FROM `znote_accounts` WHERE `account_id`='$cid';"), 0, '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_query("UPDATE `znote_accounts` SET `points`='$new_points' WHERE `account_id`='$cid'");
      
        $verify = mysql_result(mysql_query("SELECT `points` FROM `znote_accounts` WHERE `account_id`='$cid';"), 0, '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 sex
            mysql_query("INSERT INTO `znote_shop_orders` (`account_id`, `type`, `itemid`, `count`, `time`) VALUES ('$cid', '". $buy['type'] ."', '". $buy['itemid'] ."', '". $buy['count'] ."', '$time')") or die(mysql_error());
            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 {
            mysql_query("INSERT INTO `znote_shop_orders` (`account_id`, `type`, `itemid`, `count`, `time`) VALUES ('$cid', '". $buy['type'] ."', '". $buy['itemid'] ."', '". $buy['count'] ."', '$time')") or die(mysql_error());
            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_query("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')") or die(mysql_error());
      
    } 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
}
?>
<table id="shopTable">
    <tr class="yellow">
        <td>Describtion:</td>
        <?php if ($config['shop']['showImage']) { ?><td>Image:</td><?php } ?>
        <td>Count/duration:</td>
        <td>Points:</td>
        <td>Action:</td>
    </tr>
        <?php
        foreach ($shop_list as $key => $offers) {
        echo '<tr class="special">';
        echo '<td>'. $offers['describtion'] .'</td>';
        if ($config['shop']['showImage']) echo '<td><img src="http://'. $config['shop']['imageServer'] .'/'. $offers['itemid'] .'.gif" alt="img"></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>'. $offers['points'] .'</td>';
        echo '<td>';
        ?>
        <form action="" method="POST">
            <input type="hidden" name="buy" value="<?php echo (int)$key; ?>">
            <input type="submit" value="  PURCHASE  ">
        </form>
        <?php
        echo '</td>';
        echo '</tr>';
        }
        ?>
</table>
<?php
} else echo '<h1>Buy Points system disabled.</h1><p>Sorry, this functionality is disabled.</p>';
include 'layout/overall/footer.php'; ?>
 
@StreamSide ; I don't see why you would not use gesior aac really, some of the top ots in otservlist use it, it's totally secure... However if you lack PHP knowledge then most probably your gonna stick to znote's account maker
 
@StreamSide ; I don't see why you would not use gesior aac really, some of the top ots in otservlist use it, it's totally secure... However if you lack PHP knowledge then most probably your gonna stick to znote's account maker
not cus everyone use gesior means its good, znote or devaac are better.
 
lmao bro y u so mad, gesior is shit, got lot of codes cus noobs (the ones who use that shit) thinks is better so they do stupid php codes with lot of shit and stupid queries, if you use that shit wp but shit anyways
and if you think that ppl use znote cus the easy install you wrong :)
ps. less script involved? you wrong m8
 
lmao bro y u so mad, gesior is shit, got lot of codes cus noobs (the ones who use that shit) thinks is better so they do stupid php codes with lot of shit and stupid queries, if you use that shit wp but shit anyways
and if you think that ppl use znote cus the easy install you wrong :)
ps. less script involved? you wrong m8

Please do tell what the problems with gesior is, there are no problems except is if you wanna use bootstrap or any other "none tibiacom" based layout.
Ive used it myself since 2008, and the 2012 version is safe. I have also modified my files to work with bootstrap might release it some day :)

gesior is best, more secure then znote aac.

Well ... They are both secure, I have no ide if gesior or znote is more secure.
It all depends on what you want and what you prefer, some prefer using znote and customizing everything or wanna use gesior where you can find alot on otland stuff.
But I would say if you are a newbie / prefer the gesior system(as I do) then go with gesior, otherwise go with znote since its easier to add custom layouts etc.
 
Please do tell what the problems with gesior is, there are no problems except is if you wanna use bootstrap or any other "none tibiacom" based layout.
Ive used it myself since 2008, and the 2012 version is safe. I have also modified my files to work with bootstrap might release it some day :)
w0w you should release that files :) like the amiroslo bootstrap lay
 
w0w you should release that files :) like the amiroslo bootstrap lay

Well I think ive seen some, but yes its a fully working bootstrap layout :)
Just that im never really satisfied with the forum layout haha
If I don't get any new projects running I will release it.
 
Back
Top