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

Geisor shop problem

Flighty

New Member
Joined
Jul 3, 2009
Messages
93
Reaction score
0
Hello , i got this problem. When i buy any item i dont receive it in game , could some1 help me please?

PHP:
<?PHP
//  ALTER TABLE `z_shop_history_item` CHANGE `offer_id` `offer_id` VARCHAR( 255 ) NOT NULL;
// UPDATE `z_shop_history_item`, `z_shop_offer` SET `z_shop_history_item`.`offer_id` = `z_shop_offer`.`offer_name` WHERE `z_shop_history_item`.`offer_id` = `z_shop_offer`.`id`;
if($config['site']['shop_system'] == 1)
{
if($logged)
{
  $user_premium_points = $account_logged->getCustomField('premium_points');
}
else
{
  $user_premium_points = 'Login first';
}
function getItemByID($id)
{
  $id = (int) $id;
  $SQL = $GLOBALS['SQL'];
  $data = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shop_offer').' WHERE '.$SQL->fieldName('id').' = '.$SQL->quote($id).';')->fetch();
  if ($data['offer_type'] == 'pacc')
  {
    $offer['id'] = $data['id'];
    $offer['type'] = $data['offer_type'];
    $offer['days'] = $data['count1'];
    $offer['points'] = $data['points'];
    $offer['description'] = $data['offer_description'];
    $offer['name'] = $data['offer_name'];
  }
  elseif ($data['offer_type'] == 'item')
  {
    $offer['id'] = $data['id'];
    $offer['type'] = $data['offer_type'];
    $offer['item_id'] = $data['itemid1'];
    $offer['item_count'] = $data['count1'];
    $offer['points'] = $data['points'];
    $offer['description'] = $data['offer_description'];
    $offer['name'] = $data['offer_name'];
  }
  elseif ($data['offer_type'] == 'container')
  {
    $offer['id'] = $data['id'];
    $offer['type'] = $data['offer_type'];
    $offer['container_id'] = $data['itemid2'];
    $offer['container_count'] = $data['count2'];
    $offer['item_id'] = $data['itemid1'];
    $offer['item_count'] = $data['count1'];
    $offer['points'] = $data['points'];
    $offer['description'] = $data['offer_description'];
    $offer['name'] = $data['offer_name'];
  }
    elseif ($data['offer_type'] == 'unban')
  {
    $offer['id'] = $data['id'];
    $offer['type'] = $data['offer_type'];
    $offer['points'] = $data['points'];
    $offer['description'] = $data['offer_description'];
    $offer['name'] = $data['offer_name'];
  }
        elseif ($data['offer_type'] == 'redskull')
  {
    $offer['id'] = $data['id'];
    $offer['type'] = $data['offer_type'];
    $offer['points'] = $data['points'];
    $offer['description'] = $data['offer_description'];
    $offer['name'] = $data['offer_name'];
  }
          elseif ($data['offer_type'] == 'itemlogout')
  {
    $offer['id'] = $data['id'];
    $offer['type'] = $data['offer_type'];
    $offer['points'] = $data['points'];
    $offer['description'] = $data['offer_description'];
    $offer['pid'] = $data['pid'];
    $offer['count1'] = $data['count1'];
    $offer['item_id'] = $data['itemid1'];
    $offer['free_cap'] = $data['free_cap'];
  }
            elseif ($data['offer_type'] == 'changename')
  {
    $offer['id'] = $data['id'];
    $offer['type'] = $data['offer_type'];
    $offer['points'] = $data['points'];
    $offer['description'] = $data['offer_description'];
    $offer['name'] = $data['offer_name'];
  }
  return $offer;
}

function getOfferArray()
{
  $offer_list = $GLOBALS['SQL']->query('SELECT * FROM '.$GLOBALS['SQL']->tableName('z_shop_offer').';');
  $i_pacc = 0;
  $i_item = 0;
  $i_container = 0;
  $i_unban = 0;
  $i_redskull = 0;
  $i_itemlogout = 0;
  $i_changename = 0;
  while($data = $offer_list->fetch()) {
    if ($data['offer_type'] == 'pacc')
    {
      $offer_array['pacc'][$i_pacc]['id'] = $data['id'];
      $offer_array['pacc'][$i_pacc]['days'] = $data['count1'];
      $offer_array['pacc'][$i_pacc]['points'] = $data['points'];
      $offer_array['pacc'][$i_pacc]['description'] = $data['offer_description'];
      $offer_array['pacc'][$i_pacc]['name'] = $data['offer_name'];
      $i_pacc++;
    }
    elseif ($data['offer_type'] == 'item')
    {
      $offer_array['item'][$i_item]['id'] = $data['id'];
      $offer_array['item'][$i_item]['item_id'] = $data['itemid1'];
      $offer_array['item'][$i_item]['item_count'] = $data['count1'];
      $offer_array['item'][$i_item]['points'] = $data['points'];
      $offer_array['item'][$i_item]['description'] = $data['offer_description'];
      $offer_array['item'][$i_item]['name'] = $data['offer_name'];
      $i_item++;
    }
    elseif ($data['offer_type'] == 'container')
    {
      $offer_array['container'][$i_container]['id'] = $data['id'];
      $offer_array['container'][$i_container]['container_id'] = $data['itemid2'];
      $offer_array['container'][$i_container]['container_count'] = $data['count2'];
      $offer_array['container'][$i_container]['item_id'] = $data['itemid1'];
      $offer_array['container'][$i_container]['item_count'] = $data['count1'];
      $offer_array['container'][$i_container]['points'] = $data['points'];
      $offer_array['container'][$i_container]['description'] = $data['offer_description'];
      $offer_array['container'][$i_container]['name'] = $data['offer_name'];
      $i_container++;
    }
        elseif ($data['offer_type'] == 'unban')
    {
      $offer_array['unban'][$i_unban]['id'] = $data['id'];
      $offer_array['unban'][$i_unban]['points'] = $data['points'];
      $offer_array['unban'][$i_unban]['description'] = $data['offer_description'];
      $offer_array['unban'][$i_unban]['name'] = $data['offer_name'];
      $i_unban++;
    }
                elseif ($data['offer_type'] == 'redskull')
    {
      $offer_array['redskull'][$i_redskull]['id'] = $data['id'];
      $offer_array['redskull'][$i_redskull]['points'] = $data['points'];
      $offer_array['redskull'][$i_redskull]['description'] = $data['offer_description'];
      $offer_array['redskull'][$i_redskull]['name'] = $data['offer_name'];
      $i_redskull++;
    }
                    elseif ($data['offer_type'] == 'itemlogout')
    {
      $offer_array['itemlogout'][$i_itemlogout]['id'] = $data['id'];
      $offer_array['itemlogout'][$i_itemlogout]['points'] = $data['points'];
      $offer_array['itemlogout'][$i_itemlogout]['description'] = $data['offer_description'];
      $offer_array['itemlogout'][$i_itemlogout]['name'] = $data['offer_name'];
      $offer_array['itemlogout'][$i_itemlogout]['count1'] = $data['count1'];
      $offer_array['itemlogout'][$i_itemlogout]['pid'] = $data['pid'];
      $offer_array['itemlogout'][$i_itemlogout]['item_id'] = $data['itemid1'];
      $offer_array['itemlogout'][$i_itemlogout]['free_cap'] = $data['free_cap'];
      $i_itemlogout++;
    }
                        elseif ($data['offer_type'] == 'changename')
    {
      $offer_array['changename'][$i_changename]['id'] = $data['id'];
      $offer_array['changename'][$i_changename]['points'] = $data['points'];
      $offer_array['changename'][$i_changename]['description'] = $data['offer_description'];
      $offer_array['changename'][$i_changename]['name'] = $data['offer_name'];
      $i_changename++;
    }
  }
  return $offer_array;
}

  if($action == '')
  {
    unset($_SESSION['viewed_confirmation_page']);
    $main_content .= '<h2>Welcome to OTS shop. Here you can buy items, PACC, and Unban account!.</h2>';
    $offer_list = getOfferArray();
    //show list of pacc offers
    if(count($offer_list['changename']) > 0)
    {
      $main_content .= '<table border="0" cellpadding="1" cellspacing="1" width="650"><tr width="650" bgcolor="black"><td colspan="3"><font color="gold" size="4"><b>&nbsp;Change Name</b></font></td></tr><tr bgcolor="black"><td width="50" align="center"><font color=red><b>Days</b></font></td><td width="350" align="left"><font color=red><b>Description</b></font></td><td width="250" align="center"><font color=red><b>Select product</b></font></td></tr>';
      foreach($offer_list['changename'] as $changename)
      {
        $main_content .= '<tr bgcolor="gold"><td align="center">'.$changename['days'].'</td><td><b>'.$changename['name'].'</b> ('.$changename['points'].' points)<br />'.$changename['description'].'</td><td align="center">';
        if(!$logged)
        {
          $main_content .= '<b>Login to buy</b>';
        }
        else
        {
          $main_content .= '<form action="index.php?subtopic=shopsystem&action=select_player" method=POST><input type="hidden" name="buy_id" value="'.$changename['id'].'"><input type="submit" value="Buy '.$changename['name'].'"><br><b>for '.$changename['points'].' points</b></form>';
        }
      }
      $main_content .= '</table><br />';
    }
    if(count($offer_list['pacc']) > 0)
    {
      $main_content .= '<table border="0" cellpadding="1" cellspacing="1" width="650"><tr width="650" bgcolor="black"><td colspan="3"><font color="gold" size="4"><b>&nbsp;PACC</b></font></td></tr><tr bgcolor="black"><td width="50" align="center"><font color=red><b>Days</b></font></td><td width="350" align="left"><font color=red><b>Description</b></font></td><td width="250" align="center"><font color=red><b>Select product</b></font></td></tr>';
      foreach($offer_list['pacc'] as $pacc)
      {
        $main_content .= '<tr bgcolor="gold"><td align="center">'.$pacc['days'].'</td><td><b>'.$pacc['name'].'</b> ('.$pacc['points'].' points)<br />'.$pacc['description'].'</td><td align="center">';
        if(!$logged)
        {
          $main_content .= '<b>Login to buy</b>';
        }
        else
        {
          $main_content .= '<form action="index.php?subtopic=shopsystem&action=select_player" method=POST><input type="hidden" name="buy_id" value="'.$pacc['id'].'"><input type="submit" value="Buy '.$pacc['name'].'"><br><b>for '.$pacc['points'].' points</b></form>';
        }
      }
      $main_content .= '</table><br />';
    }
    //show list of items offers
    if(count($offer_list['item']) > 0)
    {
      $main_content .= '<table border="0" cellpadding="1" cellspacing="1" width="650"><tr width="650" bgcolor="black"><td colspan="3"><font color="gold" size="4"><b>&nbsp;ITEMS</b></font></td></tr><tr bgcolor="black"><td width="50" align="center"><font color=red><b>Picture</b></font></td><td width="350" align="left"><font color=red><b>Description</b></font></td><td width="250" align="center"><font color=red><b>Select product</b></font></td></tr>';
      foreach($offer_list['item'] as $item)
      {
        $main_content .= '<tr bgcolor="gold"><td align="center"><img src="item_images/'.$item['id'].'.jpg"></td><td><b>'.$item['name'].'</b> ('.$item['points'].' points)<br />'.$item['description'].'</td><td align="center">';
        if(!$logged)
        {
          $main_content .= '<b>Login to buy</b>';
        }
        else
        {
          $main_content .= '<form action="index.php?subtopic=shopsystem&action=select_player" method=POST><input type="hidden" name="buy_id" value="'.$item['id'].'"><input type="submit" value="Buy '.$item['name'].'"><br><b>for '.$item['points'].' points</b></form>';
        }
        $main_content .= '</td></tr>';
      }
      $main_content .= '</table><br />';
    }

    if(count($offer_list['unban']) > 0)
    {
      $main_content .= '<table border="0" cellpadding="1" cellspacing="1" width="650"><tr width="650" bgcolor="black"><td colspan="3"><font color="gold" size="4"><b>&nbsp;Unban</b></font></td></tr><tr bgcolor="black"><td width="50" align="center"><font color=red><b>Picture</b></font></td><td width="350" align="left"><font color=red><b>Description</b></font></td><td width="250" align="center"><font color=red><b>Select product</b></font></td></tr>';
      foreach($offer_list['unban'] as $unban)
      {
        $main_content .= '<tr bgcolor="gold"><td align="center"><img src="item_images/'.$unban['id'].'.jpg"></td><td><b>'.$unban['name'].'</b> ('.$unban['points'].' points)<br />'.$unban['description'].'</td><td align="center">';
        if(!$logged)
        {
          $main_content .= '<b>Login to buy</b>';
        }
        else
        {
          $main_content .= '<form action="index.php?subtopic=shopsystem&action=select_player" method=POST><input type="hidden" name="buy_id" value="'.$unban['id'].'"><input type="submit" value="Buy '.$unban['name'].'"><br><b>for '.$unban['points'].' points</b></form>';
        }
        $main_content .= '</td></tr>';
      }
      $main_content .= '</table><br />';
    }
    if(count($offer_list['itemlogout']) > 0)
    {
      $main_content .= '<table border="0" cellpadding="1" cellspacing="1" width="650"><tr width="650" bgcolor="black"><td colspan="3"><font color="gold" size="4"><b>&nbsp;Receive Item on Logout</b></font></td></tr><tr bgcolor="black"><td width="50" align="center"><font color=red><b>Picture</b></font></td><td width="350" align="left"><font color=red><b>Description</b></font></td><td width="250" align="center"><font color=red><b>Select product</b></font></td></tr>';
      foreach($offer_list['itemlogout'] as $itemlogout)
      {
        $main_content .= '<tr bgcolor="gold"><td align="center"><img src="item_images/'.$itemlogout['id'].'.jpg"></td><td><b>'.$itemlogout['name'].'</b> ('.$itemlogout['points'].' points)<br />'.$itemlogout['description'].'</td><td align="center">';
        if(!$logged)
        {
          $main_content .= '<b>Login to buy</b>';
        }
        else
        {
          $main_content .= '<form action="index.php?subtopic=shopsystem&action=select_player" method=POST><input type="hidden" name="buy_id" value="'.$itemlogout['id'].'"><input type="submit" value="Buy '.$itemlogout['name'].'"><br><b>for '.$itemlogout['points'].' points</b></form>';
        }
        $main_content .= '</td></tr>';
      }
      $main_content .= '</table><br />';
    }

    if(count($offer_list['redskull']) > 0)
    {
      $main_content .= '<table border="0" cellpadding="1" cellspacing="1" width="650"><tr width="650" bgcolor="black"><td colspan="3"><font color="gold" size="4"><b>&nbsp;Remove Skull</b></font></td></tr><tr bgcolor="black"><td width="50" align="center"><font color=red><b>Picture</b></font></td><td width="350" align="left"><font color=red><b>Description</b></font></td><td width="250" align="center"><font color=red><b>Select product</b></font></td></tr>';
      foreach($offer_list['redskull'] as $redskull)
      {
        $main_content .= '<tr bgcolor="gold"><td align="center"><img src="item_images/'.$redskull['id'].'.jpg"></td><td><b>'.$redskull['name'].'</b> ('.$level['points'].' points)<br />'.$redskull['description'].'</td><td align="center">';
        if(!$logged)
        {
          $main_content .= '<b>Login to buy</b>';
        }
        else
        {
          $main_content .= '<form action="index.php?subtopic=shopsystem&action=select_player" method=POST><input type="hidden" name="buy_id" value="'.$redskull['id'].'"><input type="submit" value="Buy '.$redskull['name'].'"><br><b>for '.$redskull['points'].' points</b></form>';
        }
        $main_content .= '</td></tr>';
      }
      $main_content .= '</table><br />';
    }
    //show list of containers offers
    if(count($offer_list['container']) > 0)
    {
      $main_content .= '<table border="0" cellpadding="1" cellspacing="1" width="650"><tr width="650" bgcolor="black"><td colspan="3"><font color="gold" size="4"><b>&nbsp;CONTAINERS WITH ITEMS</b></font></td></tr><tr bgcolor="black"><td width="50" align="center"><font color=red><b>Picture</b></font></td><td width="350" align="left"><font color=red><b>Description</b></font></td><td width="250" align="center"><font color=red><b>Select product</b></font></td></tr>';
      foreach($offer_list['container'] as $container)
      {
        $main_content .= '<tr bgcolor="gold"><td align="center"><img src="item_images/'.$container['id'].'.jpg"></td><td><b>'.$container['name'].'</b> ('.$container['points'].' points)<br />'.$container['description'].'</td><td align="center">';
        if(!$logged)
        {
          $main_content .= '<b>Login to buy</b>';
        }
        else
        {
          $main_content .= '<form action="index.php?subtopic=shopsystem&action=select_player" method=POST><input type="hidden" name="buy_id" value="'.$container['id'].'"><input type="submit" value="Buy '.$container['name'].'"><br><b>for '.$container['points'].' points</b></form>';
        }
        $main_content .= '</td></tr>';
      }
      $main_content .= '</table><br />';
    }
  }

elseif($action == 'select_player')
  {
    unset($_SESSION['viewed_confirmation_page']);
    if(!$logged) {
      $main_content .= 'Please login first.';
    }
    else
    {
      $buy_id = (int) $_REQUEST['buy_id'];
      if(empty($buy_id))
      {
        $main_content .= 'Please <a href="index.php?subtopic=shopsystem">select item</a> first.';
      }
      else
      {
        $buy_offer = getItemByID($buy_id);
        if(isset($buy_offer['id'])) //item exist in database
        {
        if($buy_offer['type'] != 'changename') {
          if($user_premium_points >= $buy_offer['points'])
          {
            $main_content .= '<h2>Select player</h2>
            <table border="0" cellpadding="1" cellspacing="1" width="650">
            <tr bgcolor="black"><td colspan="2"><font color="gold" size="4"><b>Selected offer</b></font></td></tr>
            <tr bgcolor="gold"><td width="100"><b>Name:</b></td><td width="550">'.$buy_offer['name'].'</td></tr>
            <tr bgcolor="gold"><td width="100"><b>Description:</b></td><td width="550">'.$buy_offer['description'].'</td></tr>
            </table><br />
            <form action="index.php?subtopic=shopsystem&action=confirm_transaction" method=POST><input type="hidden" name="buy_id" value="'.$buy_id.'">
            <table border="0" cellpadding="1" cellspacing="1" width="650">
            <tr bgcolor="black"><td colspan="2"><font color="gold" size="4"><b>Give item/pacc* to player from your account</b></font></td></tr>
            <tr bgcolor="gold"><td width="110"><b>Name:</b></td><td width="550"><select name="buy_name">';
            $players_from_logged_acc = $account_logged->getPlayersList();
            if(count($players_from_logged_acc) > 0)
            {
              $players_from_logged_acc->orderBy('name');
              foreach($players_from_logged_acc as $player)
              {
                $main_content .= '<option>'.$player->getName().'</option>';
              }
            }
            else
            {
              $main_content .= 'You don\'t have any character on your account.';
            }
            $main_content .= '</select>&nbsp;<input type="submit" value="Give"></td></tr>
            </table>
            </form><br /><form action="index.php?subtopic=shopsystem&action=confirm_transaction" method=POST><input type="hidden" name="buy_id" value="'.$buy_id.'">
              <table border="0" cellpadding="1" cellspacing="1" width="650">
              <tr bgcolor="black"><td colspan="2"><font color="gold" size="4"><b>Give item/pacc* to other player</b></font></td></tr>
              <tr bgcolor="gold"><td width="110"><b>To player:</b></td><td width="550"><input type="text" name="buy_name"> - name of player on</td></tr>
              <tr bgcolor="gold"><td width="110"><b>From:</b></td><td width="550"><input type="text" name="buy_from">&nbsp;<input type="submit" value="Give"> - your nick, \'empty\' = Anonymous</td></tr>
              </table><br />
              </form>';

            $main_content .= '*PACC is for all characters from account of selected player name';
          }
          else
          {
            $main_content .= 'For this item you need <b>'.$buy_offer['points'].'</b> points. You have only <b>'.$user_premium_points.'</b> premium points. Please <a href="index.php?subtopic=shopsystem">select other item</a> or buy premium points.';
          }
        }
        else
        {
              $main_content .= '<form action="index.php?subtopic=shopsystem&action=confirm_transaction" method=POST><input type="hidden" name="buy_id" value="'.$buy_id.'">
              <table border="0" cellpadding="1" cellspacing="1" width="650">
              <tr bgcolor="black"><td colspan="2"><font color="gold" size="4"><b>Change Name:</b></font></td></tr>
              <tr bgcolor="gold"><td width="110"><b>Name:</b></td><td width="550"><select name="buy_name">';
            $players_from_logged_acc = $account_logged->getPlayersList();
            if(count($players_from_logged_acc) > 0)
            {
              $players_from_logged_acc->orderBy('name');
              foreach($players_from_logged_acc as $player)
              {
                $main_content .= '<option>'.$player->getName().'</option>';
              }
            }
            else
            {
              $main_content .= 'You don\'t have any character on your account.';
            }
            $main_content .= '</select></td></tr>
              <tr bgcolor="gold"><td width="110"><b>New name:</b></td><td width="550"><input type="text" name="buy_from">&nbsp;<input type="submit" value="Change Name"></td></tr>
              </table><br />
              </form>';
              }
        }
        else
        {
          $main_content .= 'Offer with ID <b>'.$buy_id.'</b> doesn\'t exist. Please <a href="index.php?subtopic=shopsystem">select item</a> again.';
        }
      }
    }
  }
  elseif($action == 'confirm_transaction')
  {
    if(!$logged) {
      $main_content .= 'Please login first.';
    }
    else
    {
      $buy_id = (int) $_POST['buy_id'];
      $buy_name = stripslashes(urldecode($_POST['buy_name']));
      $buy_from = stripslashes(urldecode($_POST['buy_from']));
      if(empty($buy_id))
      {
        $main_content .= 'Please <a href="index.php?subtopic=shopsystem">select item</a> first.';
      }
      else
      {
        if($buy_offer['type'] == 'changename'){
        if(!check_name_new_char($buy_from))
        {
          $main_content .= 'Invalid name format of new name.';
        }
        }
        else
        {
          $buy_offer = getItemByID($buy_id);
          $check_name_in_database = $ots->createObject('Player');
        $check_name_in_database->find($buy_from);
        if($buy_offer['type'] == 'changename'){
        if(!$check_name_in_database->isLoaded()) {
        }
        }
          if(isset($buy_offer['id'])) //item exist in database
          {
            if($user_premium_points >= $buy_offer['points'])
            {
              if(check_name($buy_name))
              {
                $buy_player = new OTS_Player();
                $buy_player->find($buy_name);
                if($buy_player->isLoaded())
                {
                  $buy_player_account = $buy_player->getAccount();
                  if($_SESSION['viewed_confirmation_page'] == 'yes' && $_POST['buy_confirmed'] == 'yes')
                  {
                    if($buy_offer['type'] == 'pacc')
                    {
                      $player_premdays = $buy_player_account->getCustomField('premdays');
                      $player_lastlogin = $buy_player_account->getCustomField('lastday');
                      $save_transaction = 'INSERT INTO '.$SQL->tableName('z_shop_history_pacc').' (id, to_name, to_account, from_nick, from_account, price, pacc_days, trans_state, trans_start, trans_real) VALUES (NULL, '.$SQL->quote($buy_player->getName()).', '.$SQL->quote($buy_player_account->getId()).', '.$SQL->quote($buy_from).',  '.$SQL->quote($account_logged->getId()).', '.$SQL->quote($buy_offer['points']).', '.$SQL->quote($buy_offer['days']).', \'realized\', '.$SQL->quote(time()).', '.$SQL->quote(time()).');';
                      $SQL->query($save_transaction);
                      $buy_player_account->setCustomField('premdays', $player_premdays+$buy_offer['days']);
                      $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']);
                      $user_premium_points = $user_premium_points - $buy_offer['points'];
                      if($player_premdays == 0)
                      {
                        $buy_player_account->setCustomField('lastday', time());
                      }
                      $main_content .= '<h2>PACC added!</h2><b>'.$buy_offer['days'].' days</b> of Premium Account added to account of player <b>'.$buy_player->getName().'</b> for <b>'.$buy_offer['points'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br /><a href="index.php?subtopic=shopsystem">GO TO MAIN SHOP SITE</a>';
                    }
elseif($buy_offer['type'] == 'unban')
  {
  $my_acc_id = $account_logged->getCustomField('id');
  $datadata = $SQL->query('SELECT * FROM '.$SQL->tableName('bans').' WHERE value = '.$my_acc_id.';')->fetch();
  if($datadata['value'] == $my_acc_id) {

    if($SQL->query('DELETE FROM bans WHERE value= '.$my_acc_id.' LIMIT 1;')) {
    }
    else
    {
    $SQL->query('DELETE FROM bans WHERE account= '.$my_acc_id.' LIMIT 1;');
    }
    $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']);
    $user_premium_points = $user_premium_points - $buy_offer['points'];
    $main_content .= '
      <h2>
        Ban Deleted!
      </h2>
      <b>
        Your account has been unbanned for '.$buy_offer['points'].' premium points
      </b>
      from your account.
      <br>
      Now you have
        <b>
          '.$user_premium_points.' premium points
        </b>.
      <br>
      <a href="index.php?subtopic=shopsystem">
        GO TO MAIN SHOP SITE
      </a>';
  } else
  {
    $main_content .= '
    <b>
      You don\'t have any bans in your account!
    </b>
    <br>
    <a href="index.php?subtopic=shopsystem">
      GO BACK
    </a>';
  }
  }
  ////////////////////////////////
  elseif($buy_offer['type'] == 'itemlogout')
  {
  $my_acc_id = $buy_player->getCustomField('id');
  $datadata = $SQL->query('SELECT * FROM '.$SQL->tableName('players').' WHERE id = '.$my_acc_id.';')->fetch();
  $datadata2 = $SQL->query('SELECT * FROM '.$SQL->tableName('player_items').' WHERE player_id = '.$my_acc_id.';')->fetch();
  if($datadata['online'] == '0') {
  if ($datadata2['pid'] != '10') {
  if ($datadata['cap'] >= $SQL->quote($buy_offer['free_cap'])) {
    $SQL->query('INSERT INTO player_items (player_id, pid, itemtype, count) VALUES ('.$my_acc_id.', '.$SQL->quote($buy_offer['pid']).', '.$SQL->quote($buy_offer['item_id']).', '.$SQL->quote($buy_offer['count1']).');');
    $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']);
    $user_premium_points = $user_premium_points - $buy_offer['points'];
    $main_content .= '
      <h2>
        Item received to player: '.$buy_player->getName().'!
      </h2>
      <br>
      Now you have
        <b>
          '.$user_premium_points.' premium points
        </b>.
      <br>
      <a href="index.php?subtopic=shopsystem">
        GO TO MAIN SHOP SITE
      </a>';
  } else
  {
    $main_content .= '
    <b>
      You need '.$SQL->quote($buy_offer['free_cap']).' or more of cap!
    </b>
    <br>
    <a href="index.php?subtopic=shopsystem">
      GO BACK
    </a>';
  }
  } else
  {

    $main_content .= '
    <b>
      Please leave the arrow slot in blank to receive item!
    </b>
    <br>
    <a href="index.php?subtopic=shopsystem">
      GO BACK
    </a>';
  }
  } else
  {
    $main_content .= '
    <b>
      You need to be offline!
    </b>
    <br>
    <a href="index.php?subtopic=shopsystem">
      GO BACK
    </a>';
  }
  }
  ////////////////////////////////
  //////////////////////////
  elseif($buy_offer['type'] == 'changename')
  {
  $my_acc_id = $buy_player->getCustomField('id');
  $dataget = $SQL->query('SELECT * FROM '.$SQL->tableName('players').' WHERE '.$SQL->fieldName('id').' = '.$my_acc_id.';')->fetch();
  if($dataget['online'] == '0') {
  $buybuy = 'buy_from';
      $SQL->query('UPDATE `players` SET `name` = '. $SQL->quote($buy_from) .' WHERE `id` = '. $my_acc_id.' ;');

    $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']);
    $user_premium_points = $user_premium_points - $buy_offer['points'];
    $suma_levels = $buy_offer['level'] + $dataget['level'];
    $main_content .= '
      <h2>
        Your name has changed to '.$buy_from.'
      </h2>
      <b>
        You have
      </b>
      <br>
        <b>
          '.$user_premium_points.' premium points left
        </b>.
      <br>
      <a href="index.php?subtopic=shopsystem">
        GO TO MAIN SHOP SITE
      </a>';
  } else
  {
  $suma_levels = $buy_offer['level'] + $dataget['level'];
    $main_content .= '
    <b>
     '.$buy_name.' has to be offline to complete transaction.
    </b>
    <br>
    <a href="index.php?subtopic=shopsystem">
      GO BACK
    </a>';
  }
  }
  //////////////////////////
    ////////////////////////////////
  elseif($buy_offer['type'] == 'redskull')
  {
  //Obtener id ed la cuenta
  $my_acc_id = $buy_player->getCustomField('id');
  $dataget = $SQL->query('SELECT * FROM '.$SQL->tableName('players').' WHERE '.$SQL->fieldName('id').' = '.$my_acc_id.';')->fetch();
  if($dataget['redskull'] == '1' AND $dataget['online'] >= '0' AND $dataget['redskulltime'] > '0') {

        $SQL->query('UPDATE players SET redskull=0, redskulltime=0 WHERE id='. $my_acc_id .';');
    $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']);
    $user_premium_points = $user_premium_points - $buy_offer['points'];
    $main_content .= '
      <h2>
        RedSkull Removed!
      </h2>
      <b>
        Your redskull has been removed to the player '.$buy_player->getName().',
      <br>
      Now you have
        <b>
          '.$user_premium_points.' premium points
        </b>.
      <br>
      <a href="index.php?subtopic=shopsystem">
        GO TO MAIN SHOP SITE
      </a>';
  } else
  {
    $main_content .= '
    <b>
    '.$buy_player->getName().' has to be offline or have redskull to complete transaction!.
    </b>
    <br>
    <a href="index.php?subtopic=shopsystem">
      GO BACK
    </a>';
  }
  }
  //////////////////////////



              elseif($buy_offer['type'] == 'item')
                    {
                      $sql = 'INSERT INTO '.$SQL->tableName('z_ots_comunication').' (id, name, type, action, param1, param2, param3, param4, param5, param6, param7, delete_it) VALUES (NULL, '.$SQL->quote($buy_player->getName()).', \'login\', \'give_item\', '.$SQL->quote($buy_offer['item_id']).', '.$SQL->quote($buy_offer['item_count']).', \'\', \'\', \'item\', '.$SQL->quote($buy_offer['name']).', \'\', \'1\');';
                      $SQL->query($sql);
                      $save_transaction = 'INSERT INTO '.$SQL->tableName('z_shop_history_item').' (id, to_name, to_account, from_nick, from_account, price, offer_id, trans_state, trans_start, trans_real) VALUES ('.$SQL->lastInsertId().', '.$SQL->quote($buy_player->getName()).', '.$SQL->quote($buy_player_account->getId()).', '.$SQL->quote($buy_from).',  '.$SQL->quote($account_logged->getId()).', '.$SQL->quote($buy_offer['points']).', '.$SQL->quote($buy_offer['name']).', \'wait\', '.$SQL->quote(time()).', \'0\');';
                      $SQL->query($save_transaction);
                      $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']);
                      $user_premium_points = $user_premium_points - $buy_offer['points'];
                      $main_content .= '<h2>Item added!</h2><b>'.$buy_offer['name'].'</b> added to player <b>'.$buy_player->getName().'</b> items (he will get this items after relog) for <b>'.$buy_offer['points'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br /><a href="index.php?subtopic=shopsystem">GO TO MAIN SHOP SITE</a>';
                    }
                    elseif($buy_offer['type'] == 'container')
                    {
                      $sql = 'INSERT INTO '.$SQL->tableName('z_ots_comunication').' (id, name, type, action, param1, param2, param3, param4, param5, param6, param7, delete_it) VALUES (NULL, '.$SQL->quote($buy_player->getName()).', \'login\', \'give_item\', '.$SQL->quote($buy_offer['item_id']).', '.$SQL->quote($buy_offer['item_count']).', '.$SQL->quote($buy_offer['container_id']).', '.$SQL->quote($buy_offer['container_count']).', \'container\', '.$SQL->quote($buy_offer['name']).', \'\', \'1\');';
                      $SQL->query($sql);
                      $save_transaction = 'INSERT INTO '.$SQL->tableName('z_shop_history_item').' (id, to_name, to_account, from_nick, from_account, price, offer_id, trans_state, trans_start, trans_real) VALUES ('.$SQL->lastInsertId().', '.$SQL->quote($buy_player->getName()).', '.$SQL->quote($buy_player_account->getId()).', '.$SQL->quote($buy_from).',  '.$SQL->quote($account_logged->getId()).', '.$SQL->quote($buy_offer['points']).', '.$SQL->quote($buy_offer['name']).', \'wait\', '.$SQL->quote(time()).', \'0\');';
                      $SQL->query($save_transaction);
                      $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']);
                      $user_premium_points = $user_premium_points - $buy_offer['points'];
                      $main_content .= '<h2>Container of items added!</h2><b>'.$buy_offer['name'].'</b> added to player <b>'.$buy_player->getName().'</b> items (he will get this container with items after relog) for <b>'.$buy_offer['points'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br /><a href="index.php?subtopic=shopsystem">GO TO MAIN SHOP SITE</a>';
                    }
                  }
                  else
                  {
                  if($buy_offer['type'] != 'changename') {
                    $set_session = TRUE;
                    $_SESSION['viewed_confirmation_page'] = 'yes';
                    $main_content .= '<h2>Confirm transaction</h2>
                    <table border="0" cellpadding="1" cellspacing="1" width="650">
                    <tr bgcolor="black"><td colspan="3"><font color="gold" size="4"><b>Confirm transaction</b></font></td></tr>
                    <tr bgcolor="gold"><td width="100"><b>Name:</b></td><td width="550" colspan="2">'.$buy_offer['name'].'</td></tr>
                    <tr bgcolor="gold"><td width="100"><b>Description:</b></td><td width="550" colspan="2">'.$buy_offer['description'].'</td></tr>
                    <tr bgcolor="gold"><td width="100"><b>Cost:</b></td><td width="550" colspan="2"><b>'.$buy_offer['points'].' premium points</b> from your account</td></tr>
                    <tr bgcolor="gold"><td width="100"><b>For Player:</b></td><td width="550" colspan="2"><font color="red">'.$buy_player->getName().'</font></td></tr>
                    <tr bgcolor="gold"><td width="100"><b>From:</b></td><td width="550" colspan="2"><font color="red">'.$buy_from.'</font></td></tr>
                    <tr bgcolor="red"><td width="100"><b>Transaction?</b></td><td width="275" align="left">
                    <form action="index.php?subtopic=shopsystem&action=confirm_transaction" method="POST"><input type="hidden" name="buy_confirmed" value="yes"><input type="hidden" name="buy_id" value="'.$buy_id.'"><input type="hidden" name="buy_from" value="'.urlencode($new_name).'"><input type="hidden" name="buy_name" value="'.urlencode($buy_name).'"><input type="submit" value="Accept"></form></td>
                    <td align="right"><form action="index.php?subtopic=shopsystem" method="POST"><input type="submit" value="Cancel"></form></td></tr>
                    </table>
                    ';
                    }
                    else
                    {
                    $set_session = TRUE;
                    $_SESSION['viewed_confirmation_page'] = 'yes';
                    $main_content .= '<h2>Confirm change name</h2>
                    <table border="0" cellpadding="1" cellspacing="1" width="650">
                    <tr bgcolor="black"><td colspan="3"><font color="gold" size="4"><b>Confirm transaction</b></font></td></tr>
                    <tr bgcolor="gold"><td width="100"><b>Name:</b></td><td width="550" colspan="2">'.$buy_offer['name'].'</td></tr>
                    <tr bgcolor="gold"><td width="100"><b>Description:</b></td><td width="550" colspan="2">'.$buy_offer['description'].'</td></tr>
                    <tr bgcolor="gold"><td width="100"><b>Cost:</b></td><td width="550" colspan="2"><b>'.$buy_offer['points'].' premium points</b> from your account</td></tr>
                    <tr bgcolor="gold"><td width="100"><b>Current Name:</b></td><td width="550" colspan="2"><font color="red">'.$buy_player->getName().'</font></td></tr>
                    <tr bgcolor="gold"><td width="100"><b>New Name:</b></td><td width="550" colspan="2"><font color="red">'.$buy_from.'</font></td></tr>
                    <tr bgcolor="red"><td width="100"><b>Change Name?</b></td><td width="275" align="left">
                    <form action="index.php?subtopic=shopsystem&action=confirm_transaction" method="POST"><input type="hidden" name="buy_confirmed" value="yes"><input type="hidden" name="buy_id" value="'.$buy_id.'"><input type="hidden" name="buy_from" value="'.urlencode($buy_from).'"><input type="hidden" name="buy_name" value="'.urlencode($buy_name).'"><input type="submit" value="Accept"></form></td>
                    <td align="right"><form action="index.php?subtopic=shopsystem" method="POST"><input type="submit" value="Cancel"></form></td></tr>
                    </table>
                    ';
                    }
                  }
                }
                else
                {
                  $main_content .= 'Player with name <b>'.$buy_name.'</b> doesn\'t exist. Please <a href="index.php?subtopic=shopsystem&action=select_player&buy_id='.$buy_id.'">select other name</a>.';
                }
              }
              else
              {
                $main_content .= 'Invalid name format. Please <a href="index.php?subtopic=shopsystem&action=select_player&buy_id='.$buy_id.'">select other name</a> or contact with administrator.';
              }
            }
            else
            {
              $main_content .= 'For this item you need <b>'.$buy_offer['points'].'</b> points. You have only <b>'.$user_premium_points.'</b> premium points. Please <a href="index.php?subtopic=shopsystem">select other item</a> or buy premium points.';
            }
          }
          else
          {
            $main_content .= 'Offer with ID <b>'.$buy_id.'</b> doesn\'t exist. Please <a href="index.php?subtopic=shopsystem">select item</a> again.';
          }
        }
      }
    }
    if(!$set_session)
    {
      unset($_SESSION['viewed_confirmation_page']);
    }
  }
  elseif($action == 'show_history')
  {
    if(!$logged) {
      $main_content .= 'Please login first.';
    }
    else
    {
      $items_history_received = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shop_history_item').' WHERE '.$SQL->fieldName('to_account').' = '.$SQL->quote($account_logged->getId()).' OR '.$SQL->fieldName('from_account').' = '.$SQL->quote($account_logged->getId()).';');
      if(is_object($items_history_received)) {
        foreach($items_history_received as $item_received)
        {
          if($account_logged->getId() == $item_received['to_account'])
            $char_color = 'green';
          else
            $char_color = 'red';
          $items_received_text .= '<tr bgcolor="gold"><td><font color="'.$char_color.'">'.$item_received['to_name'].'</font></td><td>';
          if($account_logged->getId() == $item_received['from_account'])
            $items_received_text .= '<i>Your account</i>';
          else
            $items_received_text .= $item_received['from_nick'];
          $items_received_text .= '</td><td>'.$item_received['offer_id'].'</td><td>'.date("j F Y, H:i:s", $item_received['trans_start']).'</td>';
          if($item_received['trans_real'] > 0)
            $items_received_text .= '<td>'.date("j F Y, H:i:s", $item_received['trans_real']).'</td>';
          else
            $items_received_text .= '<td><b><font color="red">Not realized yet.</font></b></td>';
          $items_received_text .= '</tr>';
        }
      }
      $paccs_history_received = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shop_history_pacc').' WHERE '.$SQL->fieldName('to_account').' = '.$SQL->quote($account_logged->getId()).' OR '.$SQL->fieldName('from_account').' = '.$SQL->quote($account_logged->getId()).';');
      if(is_object($paccs_history_received)) {
        foreach($paccs_history_received as $pacc_received)
        {
          if($account_logged->getId() == $pacc_received['to_account'])
            $char_color = 'green';
          else
            $char_color = 'red';
          $paccs_received_text .= '<tr bgcolor="gold"><td><font color="'.$char_color.'">'.$pacc_received['to_name'].'</font></td><td>';
          if($account_logged->getId() == $pacc_received['from_account'])
            $paccs_received_text .= '<i>Your account</i>';
          else
            $paccs_received_text .= $pacc_received['from_nick'];
          $paccs_received_text .= '</td><td>'.$pacc_received['pacc_days'].' days</td><td>'.$pacc_received['price'].' Points</td><td>'.date("j F Y, H:i:s", $pacc_received['trans_real']).'</td></tr>';
        }
      }
      $main_content .= '<center><h1>Transactions History</h1></center>';
      if(!empty($items_received_text))
      {
        $main_content .= '<h2>Item transactions</h2><table BORDER=0 CELLPADDING=1 CELLSPACING=1 WIDTH=100%><tr bgcolor="gold"><td><b>To:</b></td><td><b>From:</b></td><td><b>Offer name</b></td><td><b>Bought on page</b></td><td><b>Received on OTS</b></td></tr>'.$items_received_text.'</table><br />';
      }
      if(!empty($paccs_received_text))
      {
        $main_content .= '<h2>PACC transactions</h2><table BORDER=0 CELLPADDING=1 CELLSPACING=1 WIDTH=100%><tr bgcolor="gold"><td><b>To:</b></td><td><b>From:</b></td><td><b>Duration</b></td><td><b>Cost</b></td><td><b>Added:</b></td></tr>'.$paccs_received_text.'</table><br />';
      }
      if(empty($paccs_received_text) && empty($items_received_text))
        $main_content .= 'You did not buy/receive any item or PACC.';
    }
  }
  $main_content .= '<br><br><b><font color="green">You have premium points: </font></b>'.$user_premium_points;
}
else
  $main_content .= 'Shop system is blocked on this server. Admin must install this script (LUA and in database only, PHP is installed) on server and set <b>shop_system = "1"</b> in config.ini file';
?>
 
Delete you login.lua in creaturescript/scripts and create a new one and paste it:
TFS 0.2.x
Lua:
-- ### CONFIG ###
-- message send to player by script "type" (types you can check in "global.lua")
SHOP_MSG_TYPE = 17
-- time (in seconds) between connections to SQL database by shop script
SQL_interval = 30
-- ### END OF CONFIG ###
SQL_COMUNICATION_INTERVAL = SQL_interval * 1000
function onLogin(cid)
    if(InitShopComunication == 0) then
        local eventServ = addEvent(sql_communication, SQL_COMUNICATION_INTERVAL, {})
        InitShopComunication = eventServ
    end
    registerCreatureEvent(cid, "PlayerDeath")
    return TRUE
end

function sql_communication(parameters)
    dofile("./config.lua")
    env = assert(luasql.mysql())
    con = assert(env:connect(mysqlDatabase, mysqlUser, mysqlPass, mysqlHost, mysqlPort))
    result_plr = assert(con:execute("SELECT * FROM z_ots_comunication WHERE `type` = 'login';"))
    todo = result_plr:fetch({}, "a")
    while todo do
        id = tonumber(todo.id)
        action = tostring(todo.action)
        delete = tonumber(todo.delete_it)
        cid = getPlayerByName(tostring(todo.name))
        if isPlayer(cid) == TRUE then
            local itemtogive_id = tonumber(todo.param1)
            local itemtogive_count = tonumber(todo.param2)
            local container_id = tonumber(todo.param3)
            local container_count = tonumber(todo.param4)
            local add_item_type = tostring(todo.param5)
            local add_item_name = tostring(todo.param6)
            local received_item = 0
            local full_weight = 0
            if add_item_type == 'container' then
                container_weight = getItemWeight(container_id, 1)
                items_weight = container_count * getItemWeight(itemtogive_id, itemtogive_count)
                full_weight = items_weight + container_weight
            else
                full_weight = getItemWeight(itemtogive_id, itemtogive_count)
            end
            local free_cap = getPlayerFreeCap(cid)
            if full_weight <= free_cap then
                if add_item_type == 'container' then
                    local new_container = doCreateItemEx(container_id, 1)
                    local iter = 0
                    while iter ~= container_count do
                        doAddContainerItem(new_container, itemtogive_id, itemtogive_count)
                        iter = iter + 1
                    end
                    received_item = doPlayerAddItemEx(cid, new_container)
                else
                    local new_item = doCreateItemEx(itemtogive_id, itemtogive_count)
                    received_item = doPlayerAddItemEx(cid, new_item)
                end
                if received_item == RETURNVALUE_NOERROR then
                    doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from OTS shop.')
                    delete = assert(con:execute("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";"))
                    assert(con:execute("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";"))
                else
                    doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. SQL_interval ..' seconds to get it.')
                end
            else
                doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot and wait about '.. SQL_interval ..' seconds to get it.')
            end
            end
        todo = result_plr:fetch (todo, "a")
    end
    con:close()
    env:close()
    local eventServ = addEvent(sql_communication, SQL_COMUNICATION_INTERVAL, parameters)
end

TFS 0.3.x
Lua:
-- CONFIG --
SHOP_MSG_TYPE = 27

SQL_interval = 30

local config = {
    loginMessage = getConfigValue('loginMessage')
}
-- END OF CONFIG --

SQL_COMUNICATION_INTERVAL = SQL_interval * 1000
function onLogin(cid)
    if(InitShopComunication == 0) then
        local eventServ = addEvent(sql_communication, SQL_COMUNICATION_INTERVAL, {})
        InitShopComunication = eventServ
    end
    local loss = getConfigValue('deathLostPercent')
    if(loss ~= nil) then
        doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10)
    end

    local accountManager = getPlayerAccountManager(cid)
    if(accountManager == MANAGER_NONE) then
        local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage
        if(lastLogin > 0) then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
            str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "."
        else
            str = str .. " Please choose your outfit."
            doPlayerSendOutfitWindow(cid)
        end

        doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
    elseif(accountManager == MANAGER_NAMELOCK) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, it appears that your character has been namelocked, what would you like as your new name?")
    elseif(accountManager == MANAGER_ACCOUNT) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to manage your account and if you want to start over then type 'cancel'.")
    else
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to create an account or type 'recover' to recover an account.")
    end

    if(not isPlayerGhost(cid)) then
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
    end

    registerCreatureEvent(cid, "Mail")
    registerCreatureEvent(cid, "GuildMotd")
    registerCreatureEvent(cid, "Idle")
    registerCreatureEvent(cid, "SkullCheck")
    registerCreatureEvent(cid, "ReportBug")
    return TRUE
end

function sql_communication(parameters)
    local result_plr = db.getResult("SELECT * FROM z_ots_comunication WHERE `type` = 'login';")
    if(result_plr:getID() ~= -1) then
        while(true) do
            id = tonumber(result_plr:getDataInt("id"))
            action = tostring(result_plr:getDataString("action"))
            delete = tonumber(result_plr:getDataInt("delete_it"))
            cid = getPlayerByName(tostring(result_plr:getDataString("name")))
            if isPlayer(cid) == TRUE then
                if action == 'give_item' then
                    local itemtogive_id = tonumber(result_plr:getDataInt("param1"))
                    local itemtogive_count = tonumber(result_plr:getDataInt("param2"))
                    local container_id = tonumber(result_plr:getDataInt("param3"))
                    local container_count = tonumber(result_plr:getDataInt("param4"))
                    local add_item_type = tostring(result_plr:getDataString("param5"))
                    local add_item_name = tostring(result_plr:getDataString("param6"))
                    local b_head_slot = getPlayerSlotItem(cid, 1)
                    local b_necklace_slot = getPlayerSlotItem(cid, 2)
                    local b_backpack_slot = getPlayerSlotItem(cid, 3)
                    local b_armor_slot = getPlayerSlotItem(cid, 4)
                    local b_right_hand = getPlayerSlotItem(cid, 5)
                    local b_left_hand = getPlayerSlotItem(cid, 6)
                    local b_legs_slot = getPlayerSlotItem(cid, 7)
                    local b_feet_slot = getPlayerSlotItem(cid, 8)
                    local b_ring_slot = getPlayerSlotItem(cid, 9)
                    local b_arrow_slot = getPlayerSlotItem(cid, 10)
                    if b_arrow_slot.itemid == 0 or (b_left_hand.itemid == 0 and b_right_hand.itemid == 0) then
                        local full_weight = 0
                        if add_item_type == 'container' then
                            container_weight = getItemWeightById(container_id, 1)
                            items_weight = container_count * getItemWeightById(itemtogive_id, itemtogive_count)
                            full_weight = items_weight + container_weight
                        else
                            full_weight = getItemWeightById(itemtogive_id, itemtogive_count)
                        end
                        local free_cap = getPlayerFreeCap(cid)
                        if full_weight <= free_cap then
                            if add_item_type == 'container' then
                                local new_container = doCreateItemEx(container_id)
                                local iter = 0
                                while iter ~= container_count do
                                doAddContainerItem(new_container, itemtogive_id, itemtogive_count)
                                    iter = iter + 1
                                end
                                doPlayerAddItemEx(cid, new_container)
                                itemtogive_id = container_id
                            else
                                local addeditem = doPlayerAddItem(cid, itemtogive_id, itemtogive_count)
                            end
                            local head_slot = getPlayerSlotItem(cid, 1)
                            local necklace_slot = getPlayerSlotItem(cid, 2)
                            local backpack_slot = getPlayerSlotItem(cid, 3)
                            local armor_slot = getPlayerSlotItem(cid, 4)
                            local right_hand = getPlayerSlotItem(cid, 5)
                            local left_hand = getPlayerSlotItem(cid, 6)
                            local legs_slot = getPlayerSlotItem(cid, 7)
                            local feet_slot = getPlayerSlotItem(cid, 8)
                            local ring_slot = getPlayerSlotItem(cid, 9)
                            local arrow_slot = getPlayerSlotItem(cid, 10)
                            if ring_slot.itemid == itemtogive_id or feet_slot.itemid == itemtogive_id or legs_slot.itemid == itemtogive_id or armor_slot.itemid == itemtogive_id or necklace_slot.itemid == itemtogive_id or head_slot.itemid == itemtogive_id or arrow_slot.itemid == itemtogive_id or left_hand.itemid == itemtogive_id or right_hand.itemid == itemtogive_id or backpack_slot.itemid == itemtogive_id then
                                if b_ring_slot.uid ~= ring_slot.uid or b_feet_slot.uid ~= feet_slot.uid or b_legs_slot.uid ~= legs_slot.uid or b_armor_slot.uid ~= armor_slot.uid or b_necklace_slot.uid ~= necklace_slot.uid or b_head_slot.uid ~= head_slot.uid or b_backpack_slot.uid ~= backpack_slot.uid or b_right_hand.uid ~= right_hand.uid or b_left_hand.uid ~= left_hand.uid or b_arrow_slot.uid ~= arrow_slot.uid then
                                doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from OTS shop. You should re-login now to become sure your new item will not disappear if any error occur.')
                                db.executeQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")
                                db.executeQuery("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";")
                                else
                                    doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop not added. Unknown error occured. Wait about '.. SQL_interval ..' seconds. If error will occur again contact with admin. Error item ID is: '.. id ..'')
                                end
                            else
                                doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop not added. Unknown error occured. Wait about '.. SQL_interval ..' seconds. If error will occur again contact with admin. Error item ID is: '.. id ..'')
                            end
                        else
                            doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot or give to friend and wait about '.. SQL_interval ..' seconds to get it.')
                        end
                        
                        
                    else
                        doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. Please take items from both hands or item from arrow slot and wait about '.. SQL_interval ..' seconds to get it.')
                    end
                end
            end
            if not(result_plr:next()) then
                break
            end
        end
        result_plr:free()
    end
    local eventServ = addEvent(sql_communication, SQL_COMUNICATION_INTERVAL, parameters)
end

And paste it on lib/constat if you use 0.3.x
Code:
InitShopComunication = 0
but if you use 0.2.x paste it on global.lua
Code:
InitShopComunication = 0

REP? :]
 
Back
Top