Ir para conteúdo
  • Cadastre-se

Posts Recomendados

ola pessoal do tibia king estou com um bug em meu gesior , quando eu compro um item no shop fica enviando ate a cap chegar no ZERO eu usei varios modos que encontrei mais nenhum deu certo gostaria que vc's me ajudem

Obrigado

Link para o post
Compartilhar em outros sites

Hmm pode ser o shopsystem.php

Troque-o por esse e veja se ajudou



<?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'] == 'vipdays')

  {

    $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'] == 'itemvip')

  {

    $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_vipdays = 0;

  $i_itemvip = 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'] == 'vipdays')

    {

      $offer_array['vipdays'][$i_vipdays]['id'] = $data['id'];

      $offer_array['vipdays'][$i_vipdays]['days'] = $data['count1'];

      $offer_array['vipdays'][$i_vipdays]['points'] = $data['points'];

      $offer_array['vipdays'][$i_vipdays]['description'] = $data['offer_description'];

      $offer_array['vipdays'][$i_vipdays]['name'] = $data['offer_name'];

      $i_vipdays++;

    }

    elseif ($data['offer_type'] == 'itemvip')

    {

      $offer_array['itemvip'][$i_itemvip]['id'] = $data['id'];

      $offer_array['itemvip'][$i_itemvip]['item_id'] = $data['itemid1'];

      $offer_array['itemvip'][$i_itemvip]['item_count'] = $data['count1'];

      $offer_array['itemvip'][$i_itemvip]['points'] = $data['points'];

      $offer_array['itemvip'][$i_itemvip]['description'] = $data['offer_description'];

      $offer_array['itemvip'][$i_itemvip]['name'] = $data['offer_name'];

      $i_itemvip++;

    }

    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 .= '<center><img src="http://img407.imageshack.us/img407/3250/imagemblackout.png"></center>';

$offer_list = getOfferArray();

//show list of vipdays offers

if(count($offer_list['vipdays']) > 0) {

$main_content .= '<center><table border="0" cellpadding="1" cellspacing="1" width="650"><tr width="650" bgcolor="#505050"><td colspan="3"><font color="white" size="4"><b>&nbsp;VIP Days</b></font></td></tr><tr bgcolor="#D4C0A1"><td width="50" align="center"><b>Picture</b></td><td width="350" align="left"><b>Description</b></td><td width="250" align="center"><b>Select product</b></td></tr>';

foreach($offer_list['vipdays'] as $vipdays) {

$main_content .= '<tr bgcolor="#F1E0C6"><td align="center">'.$vipdays['days'].'</td><td><b>'.$vipdays['name'].'</b> ('.$vipdays['points'].' points)<br />'.$vipdays['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="'.$vipdays['id'].'"><input type="submit" value="Buy '.$vipdays['name'].'"><br><b>for '.$vipdays['points'].' points</b></form>';

$main_content .= '</td></tr>';

}

$main_content .= '</table><br />';

}

//show list of itemsvip offers

if(count($offer_list['itemvip']) > 0) {

$main_content .= '<center><table border="0" cellpadding="1" cellspacing="1" width="650"><tr width="650" bgcolor="#505050"><td colspan="3"><font color="white" size="4"><b>&nbsp;Items VIP</b></font></td></tr><tr bgcolor="#D4C0A1"><td width="50" align="center"><b>Picture</b></td><td width="350" align="left"><b>Description</b></td><td width="250" align="center"><b>Select product</b></td></tr>';

foreach($offer_list['itemvip'] as $itemvip) {

$main_content .= '<tr bgcolor="#F1E0C6"><td align="center"><img src="item_images/'.$itemvip['id'].'.gif"></td><td><b>'.$itemvip['name'].'</b> ('.$itemvip['points'].' points)<br />'.$itemvip['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="'.$itemvip['id'].'"><input type="submit" value="Buy '.$itemvip['name'].'"><br><b>for '.$item['points'].' points</b></form>';

$main_content .= '</td></tr>';

}

$main_content .= '</table><br />';

}

//show list of items offers

if(count($offer_list['item']) > 0 or count($offer_list['container']) > 0 or count($offer_list['itemlogout']) > 0)

$main_content .= '<center><table border="0" cellpadding="1" cellspacing="1" width="650"><tr width="650" bgcolor="#505050"><td colspan="3"><font color="white" size="4"><b>&nbsp;ITEMS</b></font></td></tr><tr bgcolor="#D4C0A1"><td width="50" align="center"><b>Picture</b></td><td width="350" align="left"><b>Description</b></td><td width="250" align="center"><b>Select product</b></td></tr>';

if(count($offer_list['item']) > 0) {

foreach($offer_list['item'] as $item) {

$main_content .= '<tr bgcolor="#F1E0C6"><td align="center"><img src="item_images/'.$item['id'].'.gif"></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 />';

}

//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="#505050"><td colspan="3"><font color="white" size="4"><b>&nbsp;CONTAINERS WITH ITEMS</b></font></td></tr><tr bgcolor="#D4C0A1"><td width="50" align="center"><b>Picture</b></td><td width="350" align="left"><b>Description</b></td><td width="250" align="center"><b>Select product</b></td></tr>';

foreach($offer_list['container'] as $container) {

$main_content .= '<tr bgcolor="#F1E0C6"><td align="center"><img src="item_images/'.$container['id'].'.gif"></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="?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 />';

}

if(count($offer_list['itemlogout']) > 0) {

$main_content .= '<table border="0" cellpadding="1" cellspacing="1" width="650"><tr width="650" bgcolor="#505050"><td colspan="3"><font color="white" size="4"><b>&nbsp;Receive Item on Logout</b></font></td></tr><tr bgcolor="#D4C0A1"><td width="50" align="center"><b>Picture</b></font></td><td width="350" align="left"><b>Description</b></font></td><td width="250" align="center"><b>Select product</b></font></td></tr>';

foreach($offer_list['itemlogout'] as $itemlogout) {

$main_content .= '<tr bgcolor="#F1E0C6"><td align="center"><img src="item_images/'.$itemlogout['id'].'.gif"></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['changename']) > 0 or count($offer_list['pacc']) > 0 or count($offer_list['redskull']) > 0 or count($offer_list['unban']) > 0 )

$main_content .= '<center><table border="0" cellpadding="1" cellspacing="1" width="650"><tr width="650" bgcolor="#505050"><td colspan="3"><font color="white" size="4"><b>&nbsp;Others</b></font></td></tr><tr bgcolor="#D4C0A1"><td width="50" align="center"><b>#</b></td><td width="350" align="left"><b>Description</b></td><td width="250" align="center"><b>Select product</b></td></tr>';

//Pacc

if(count($offer_list['pacc']) > 0)

foreach($offer_list['pacc'] as $pacc) {

$main_content .= '<tr bgcolor="#F1E0C6"><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>';

}

//Change Name

if(count($offer_list['changename']) > 0)

foreach($offer_list['changename'] as $changename) {

$main_content .= '<tr bgcolor="#F1E0C6"><td align="center">Change Name</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>';

}

//Remove Red Skull

if(count($offer_list['redskull']) > 0)

foreach($offer_list['redskull'] as $redskull) {

$main_content .= '<tr bgcolor="#F1E0C6"><td align="center"><img src="item_images/'.$redskull['id'].'.gif"></td><td><b>'.$redskull['name'].'</b> ('.$redskull['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>';

}

//Unban

if(count($offer_list['unban']) > 0)

foreach($offer_list['unban'] as $unban){

$main_content .= '<tr bgcolor="#F1E0C6"><td align="center">Unban</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>';

}

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 .= '<center><h2>Select player</h2><table border="0" cellpadding="1" cellspacing="1" width="650">

<tr bgcolor="#505050"><td colspan="2"><font color="white" size="4"><b>Selected offer</b></font></td></tr>

<tr bgcolor="#F1E0C6"><td width="100"><b>Name:</b></td><td width="550">'.$buy_offer['name'].'</td></tr>

<tr bgcolor="#D4C0A1"><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="#505050"><td colspan="2"><font color="white" size="4"><b>Give item to a player from your account</b></font></td></tr>

<tr bgcolor="#F1E0C6"><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="#505050"><td colspan="2"><font color="white" size="4"><b>Give item to other player</b></font></td></tr>

<tr bgcolor="#D4C0A1"><td width="110"><b>To player:</b></td><td width="550"><input type="text" name="buy_name"> - name of the player who should get item</td></tr>

<tr bgcolor="#F1E0C6"><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>';

} else {

$main_content .= 'For this item you need <b>'.$buy_offer['points'].'</b> points.<br>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 .= '<center><h2>Change Name</h2><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="#505050"><td colspan="2"><font color="white" size="4"><b>Change Name:</b></font></td></tr>

<tr bgcolor="#D4C0A1"><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="#F1E0C6"><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_vip_time = $buy_player_account->getCustomField('premdays');

if($player_vip_time > 0)

$buy_player_account->setCustomField('premdays', $player_vip_time + $buy_offer['days']);

else

$buy_player_account->setCustomField('premdays', $player_vip_time + $buy_offer['days']);

$buy_player_account->setCustomField('premium_points', $user_premium_points-$buy_offer['points']);

$user_premium_points = $user_premium_points - $buy_offer['points'];

if ($player_vip_days >= 1) {

}

$main_content .= '<center><h2>VIP Days added!</h2><b>'.$buy_offer['days'].' days</b> of VIP days added to the 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><br><a href="index.php?subtopic=shopsystem">Go to Shop Site</a><br>';

}

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 .= '<center><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><br><a href="index.php?subtopic=shopsystem">Go to Shop Site</a><br>';

} else {

$main_content .= '<center><b>You don\'t have any bans in your account!</b><br><br><a href="index.php?subtopic=shopsystem">Go back</a><br>';

}

}

////////////////////////////////

elseif($buy_offer['type'] == 'itemlogout') {

$my_acc_id = $buy_player->getCustomField('id');

$playerinfo = $SQL->query('SELECT * FROM '.$SQL->tableName('players').' WHERE id = '.$my_acc_id.';')->fetch();

$playerslot = $SQL->query('SELECT * FROM '.$SQL->tableName('player_items').' WHERE player_id = '.$my_acc_id.';')->fetch();

if($playerinfo['online'] == '0') {

if ($playerslot['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 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');

$playerinfo = $SQL->query('SELECT * FROM '.$SQL->tableName('players').' WHERE '.$SQL->fieldName('id').' = '.$my_acc_id.';')->fetch();

$checkname = $SQL->query('SELECT * FROM '.$SQL->tableName('players').' WHERE '.$SQL->fieldName('name').' = '. $SQL->quote($buy_from) .';')->fetch();

  if($playerinfo['online'] == '0') {

if($checkname == false) { 

$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'];

$main_content .= '<center><h2>Your name has been changed to '.$buy_from.'.</h2><br><b>You have '.$user_premium_points.' premium points left</b>.

<br><br><a href="index.php?subtopic=shopsystem">Go to Shop Site</a><br>';

} else {

$main_content .= '<center><h2>Sorry, the name "<i>'.$buy_from.'</i>" does already exist.<br>Please select another name.</h2><br>';

}

} else {

$main_content .= '<center><h2>'.$buy_name.' has to be offline to complete transaction.</h2><br><br><a href="index.php?subtopic=shopsystem">Go back</a><br>';

}

}

////////////////////////////////

elseif($buy_offer['type'] == 'redskull') {

$my_acc_id = $buy_player->getCustomField('id');

$playerinfo = $SQL->query('SELECT * FROM '.$SQL->tableName('players').' WHERE '.$SQL->fieldName('id').' = '.$my_acc_id.';')->fetch();

if($playerinfo['skull'] == '4' AND $playerinfo['online'] >= '0' AND $playerinfo['skulltime'] > '0') {

$SQL->query('UPDATE killers SET unjustified=0 WHERE id IN (SELECT kill_id FROM player_killers WHERE player_id='. $my_acc_id .');');

$SQL->query('UPDATE players SET skulltime=0, skull=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 .= '<center><h2>RedSkull Removed!</h2><br><b>Your redskull has been removed from the player '.$buy_player->getName().'.</b>

<br>Now you have<b> '.$user_premium_points.' premium points</b>.<br><br><a href="index.php?subtopic=shopsystem">Go to Shop Site</a><br>';

} else {

$main_content .= '<center><b>'.$buy_player->getName().' has to be offline or have redskull to complete transaction!.</b><br><br><a href="index.php?subtopic=shopsystem">Go back</a><br>';

}

}

//////////////////////////

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 .= '<center><h2>Item added!</h2><b>'.$buy_offer['name'].'</b> added to 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><br><a href="index.php?subtopic=shopsystem">GO TO MAIN SHOP SITE</a><br>';

}

                                                                                if($buy_offer['type'] == 'vipdays') {

                                                                                        $player_vip_time = $buy_player_account->getCustomField('vip_time');

                                                                                        $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);

                                                                                        if($player_vip_time > 0)

                                                                                                 $buy_player_account->setCustomField('vip_time', $player_vip_time + $buy_offer['days'] * 25000);

                                                                                        else

                                                                                                 $buy_player_account->setCustomField('vip_time', time() + $buy_offer['days'] * 25000);

                                                                                        $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']);

                                                                                        $user_premium_points = $user_premium_points - $buy_offer['points'];

                                                                                        if ($player_vip_days >= 1) {

                                                                                        }

                                                                                        $main_content .= '<center><h2>VIP Days added!</h2><b>'.$buy_offer['days'].' days</b> of VIP days added to the 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><br><a href="index.php?subtopic=shopsystem">Go to Shop Site</a><br>';

                                                                                        }  

elseif($buy_offer['type'] == 'itemvip') {

$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['megaitems_count']).', \'\', \'\', \'megaitems\', '.$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 .= '<center><h2>Mega Item added!</h2><b>'.$buy_offer['name'].'</b> added to 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><br><a href="index.php?subtopic=shopsystem">GO TO MAIN SHOP SITE</a><br>';

}

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 .= '<center><h2>Container of items added!</h2><b>'.$buy_offer['name'].'</b> added to 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><br><a href="index.php?subtopic=shopsystem">GO TO MAIN SHOP SITE</a><br>';

}

} else {

if($buy_offer['type'] != 'changename') {

$set_session = TRUE;

$_SESSION['viewed_confirmation_page'] = 'yes';

$main_content .= '<center><h2>Confirm transaction</h2>

<table border="0" cellpadding="1" cellspacing="1" width="700">

<tr bgcolor="#505050"><td colspan="3"><font color="white" size="4"><b>Confirm transaction</b></font></td></tr>

<tr bgcolor="#D4C0A1"><td width="100"><b>Name:</b></td><td width="550" colspan="2">'.$buy_offer['name'].'</td></tr>

<tr bgcolor="#F1E0C6"><td width="100"><b>Description:</b></td><td width="550" colspan="2">'.$buy_offer['description'].'</td></tr>

<tr bgcolor="#D4C0A1"><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="#F1E0C6"><td width="100"><b>For Player:</b></td><td width="550" colspan="2"><font color="red">'.$buy_player->getName().'</font></td></tr>

<tr bgcolor="#D4C0A1"><td width="100"><b>From:</b></td><td width="550" colspan="2"><font color="red">'.$buy_from.'</font></td></tr>

<tr bgcolor="#F1E0C6"><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 .= '<center><h2>Confirm Name Changing</h2>

<table border="0" cellpadding="1" cellspacing="1" width="700">

<tr bgcolor="#505050"><td colspan="3"><font color="white" size="4"><b>Confirm transaction</b></font></td></tr>

<tr bgcolor="#D4C0A1"><td width="130"><b>Name:</b></td><td width="550" colspan="2">'.$buy_offer['name'].'</td></tr>

<tr bgcolor="#F1E0C6"><td width="130"><b>Description:</b></td><td width="550" colspan="2">'.$buy_offer['description'].'</td></tr>

<tr bgcolor="#D4C0A1"><td width="130"><b>Cost:</b></td><td width="550" colspan="2"><b>'.$buy_offer['points'].' premium points</b> from your account</td></tr>

<tr bgcolor="#F1E0C6"><td width="130"><b>Current Name:</b></td><td width="550" colspan="2"><font color="red">'.$buy_player->getName().'</font></td></tr>

<tr bgcolor="#D4C0A1"><td width="130"><b>New Name:</b></td><td width="550" colspan="2"><font color="red">'.$buy_from.'</font></td></tr>

<tr bgcolor="#F1E0C6"><td width="130"><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="#F1E0C6"><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="#F1E0C6"><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 .= '<center><table BORDER=0 CELLPADDING=1 CELLSPACING=1 WIDTH=95%><tr width="100%" bgcolor="#505050"><td colspan="5"><font color="white" size="4"><b>&nbsp;Item Transactions</b></font></td></tr><tr bgcolor="#D4C0A1"><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 '.$config['server']['serverName'].'</b></td></tr>'.$items_received_text.'</table><br />';

if(!empty($paccs_received_text))

$main_content .= '<center><table BORDER=0 CELLPADDING=1 CELLSPACING=1 WIDTH=95%><tr width="100%" bgcolor="#505050"><td colspan="5"><font color="white" size="4"><b>&nbsp;Pacc Transactions</b></font></td></tr><tr bgcolor="#D4C0A1"><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 items or PACC.';

}

}

if(!$logged)

$main_content .= 'Please login to see how much points you have.';

else

$main_content .= '<br><b><font color="green">You have premium points: </font></b>'.$user_premium_points;

}

else

$main_content .= '<br><center><b>Shop System is currently disabled for this server.Please ask the admin for more information.</b></center>';?>
Veja se as seguintes tabelas na sua db existem
z_shop_history_item

`z_shop_offer
Se não existe crie elas

Ou tbm pode ser no ot o shop.lua

 CREATE TABLE IF NOT EXISTS `z_shop_offer` (

`id` int(11) NOT NULL auto_increment,

`points` int(11) NOT NULL default '0',

`itemid1` int(11) NOT NULL default '0',

`count1` int(11) NOT NULL default '0',

`itemid2` int(11) NOT NULL default '0',

`count2` int(11) NOT NULL default '0',

`offer_type` varchar(255) default NULL,

`offer_description` text NOT NULL,

`offer_name` varchar(255) NOT NULL,

PRIMARY KEY (`id`)

); 


CREATE TABLE IF NOT EXISTS `z_shop_history_item` (

`id` int(11) NOT NULL auto_increment,

`to_name` varchar(255) NOT NULL default '0',

`to_account` int(11) NOT NULL default '0',

`from_nick` varchar(255) NOT NULL,

`from_account` int(11) NOT NULL default '0',

`price` int(11) NOT NULL default '0',

`offer_id` int(11) NOT NULL default '0',

`trans_state` varchar(255) NOT NULL,

`trans_start` int(11) NOT NULL default '0',

`trans_real` int(11) NOT NULL default '0',

PRIMARY KEY (`id`)

);

Link para o post
Compartilhar em outros sites

/\ como ele disse:

globalevents/scripts

shop.lua

local SHOP_MSG_TYPE = MESSAGE_EVENT_ORANGE

local SQL_interval = 1

function onThink(interval, lastExecution)

local result_plr = db.getResult("SELECT * FROM z_ots_comunication WHERE `type` = 'login';")

if(result_plr:getID() ~= -1) then

while(true) do

local id = tonumber(result_plr:getDataInt("id"))

local action = tostring(result_plr:getDataString("action"))

local delete = tonumber(result_plr:getDataInt("delete_it"))

local cid = getCreatureByName(tostring(result_plr:getDataString("name")))

if isPlayer(cid) 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 received_item = 0

local full_weight = 0

if add_item_type == 'container' then

container_weight = getItemWeightById(container_id, 1)

if isItemRune(itemtogive_id) == TRUE then

items_weight = container_count * getItemWeightById(itemtogive_id, 1)

else

items_weight = container_count * getItemWeightById(itemtogive_id, itemtogive_count)

end

full_weight = items_weight + container_weight

else

full_weight = getItemWeightById(itemtogive_id, itemtogive_count)

if isItemRune(itemtogive_id) == TRUE then

full_weight = getItemWeightById(itemtogive_id, 1)

else

full_weight = getItemWeightById(itemtogive_id, itemtogive_count)

end

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)

doItemSetAttribute(new_item, "description", "This item can only be used by the player ".. getPlayerName(cid) .."!")

doItemSetAttribute(new_item, "aid", getPlayerGUID(cid)+10000)

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.')

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

if not(result_plr:next()) then

break

end

end

result_plr:free()

end

return true

end

Sign's


r6z42f.png
Feito por: Anne Motta

dxo51e.png
Feito por: Mim! kk ' Primeira Sign *-*




Link para o post
Compartilhar em outros sites

Ainda estou Com o Problema não para de entregar item

Eu me lembro que meu amigo tinha colocado uma "TAG" na pasta lib em constant.lua

Link para o post
Compartilhar em outros sites

Intao eu formatei meu pc ... meu antigo otserv era baiak agora estou com global tinha esse bug la tbm mais eu lembro que coloquei uma tag na constant.lua e deu certo ;/

Tipo eu compro o item no shop ai aparece 1 vez e fica pra sempre mandando ate acabar a cap

Para poder parar de mandar o item e preciso excluir a compra em z_ots_comunication

Editado por Whonerz (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

em shop.lua, procure por (db.executeQuery) e troque por db.query, vai ter varios (db.executeQuery) troque todos e veja oque da, logo em seguida /reload globalevents, boa sorte (:

Link para o post
Compartilhar em outros sites
  • 1 year later...

Galera, estou com este problema também, já procurei por todo o fórum, internet inteira e não consigo resolver. Só achei uns caras que reslveram mas ninguém disse como! Quando resolver alguma coisa postem qual a solução, e não somente: Solucionado, obrigado, REP+....

Por conta disto estou com um problema no meu servidor, e os players compram os itens e não vai para a bp porque eu desabilitei a compra por conta deste bug.

Se eu habilitar, o item fica aparecendo na bp direto!

protecteur_l.gif Att,   Aricles  :fuckyea:

Link para o post
Compartilhar em outros sites
  • 6 months later...
  • 2 months later...
  • 1 year later...

@WalaceBz pode me ajudar?

Eu estava com o mesmo problema, eu conseguia até adicionar os itens no shop do meu Gesior

E agora eu tentei executar esses dois comandos na db do meu servidor "z_shop_history_item `z_shop_offer"

 

Agora eu não consigo mais adicionar itens no meu Shop, pois aparece o seguinte erro:

"Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'pid' in 'field list'' in C:\xampp\htdocs\shopadmin.php:73 Stack trace: #0 C:\xampp\htdocs\shopadmin.php(73): PDO->query('INSERT INTO `z_...') #1 C:\xampp\htdocs\index.php(323): include('C:\xampp\htdocs...') #2 {main} thrown in C:\xampp\htdocs\shopadmin.php on line 73"

 

Obs: Segue a linha 73 do meu arquivo shopadmin.php

$SQL->query('INSERT INTO `z_shop_offer` (id, points, itemid1, count1, itemid2, count2, offer_type, offer_description, offer_name, pid) VALUES (NULL, '.$SQL->quote($shop_points).', '.$SQL->quote($shop_itemid1).', '.$SQL->quote($shop_count1).', '.$SQL->quote($shop_itemid2).', '.$SQL->quote($shop_count2).', '.$SQL->quote($shop_offer_type).', '.$SQL->quote($shop_offer_description).', '.$SQL->quote($shop_offer_name).', 0)');
            $main_content .= '<center><h2><font color="red">Added to Shop:</font></h2></center><hr/>

 

O que eu posso fazer? tem como desfazer o comando pra voltar na condição anterior?

Obrigado

 

Pra facilitar, segue os comandos que eu executei:

z_shop_history_item:

DROP TABLE IF EXISTS `z_shop_history_item`; CREATE TABLE IF NOT EXISTS `z_shop_history_item` ( `id` int(11) NOT NULL AUTO_INCREMENT, `to_name` varchar(255) NOT NULL DEFAULT '0', `to_account` int(11) NOT NULL DEFAULT '0', `from_nick` varchar(255) NOT NULL, `from_account` int(11) NOT NULL DEFAULT '0', `price` int(11) NOT NULL DEFAULT '0', `offer_id` varchar(255) NOT NULL DEFAULT '', `trans_state` varchar(255) NOT NULL, `trans_start` int(11) NOT NULL DEFAULT '0', `trans_real` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

 

z_shop_offer:

DROP TABLE IF EXISTS `z_shop_offer`; CREATE TABLE IF NOT EXISTS `z_shop_offer` ( `id` int(11) NOT NULL AUTO_INCREMENT, `points` int(11) NOT NULL DEFAULT '0', `itemid1` int(11) NOT NULL DEFAULT '0', `count1` int(11) NOT NULL DEFAULT '0', `itemid2` int(11) NOT NULL DEFAULT '0', `count2` int(11) NOT NULL DEFAULT '0', `offer_type` varchar(255) DEFAULT NULL, `offer_description` text NOT NULL, `offer_name` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

 

Editado por Dornellas
informações adicionais (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por daviscript
      Após verificar que vários servidores estão sofrendo com problemas na página Guilds, onde era possível fazer diversas modificações com os players de qualquer guild, até a Cipsoft passou por esse problema recentemente...
      Resolvi compartilhar com vocês a correção de todos os Bugs conhecidos na Página de Guilds.
       
      Foram fixados os seguintes Bugs:
      ● Remover Players que não forem de sua guild.
      ● Aceitar guild com 1 personagem que não seja da sua conta.
      ● Editar o Text/Title de 1 player que não esteja na sua guild.
      ● Editar Ranks que não sejam da sua guild.
      ● Editar Rank de Players que não são da sua guild.
       
      Qualquer outro BUG que você encontrar... Pode listar aqui nesse tópico.
       
      OBS: É meu primeiro post... Então se estiver no local errado ou se algum moderador quiser reformular / formatar o tópico, fique a vontade.
       
       Vou deixar o Spoiler do php abaixo, mas também estou anexando o arquivo.
       
       
      Download: Mediafire
      Scan: Virus Total
       
       
    • Por Barca Furada
      Boa noite meus caros colegas!
      Preciso de um Help!
       
       
      Quando eu coloco meu itens editados no meu xml e otb, acontece isso com os teleportes, perde todas as propriedades:
       
      No lado direito é sem meu Itemxml
      No lado Esquerdo é com meu Itemxml
       
      Como vcs pode vem ele perde a propriedade de destino!
       
      O arquivo Check File Signatures está desativados!
       
      Quando eu entro no REM com meu Itemxml, ele da essas mensagem de erro:
       
       
       
      Antes de fazer tudo isso eu No item editor, todos itens estava com essa borda vermelha, eu tinha dado reload em todos itens para o cliente OTCv8 conseguir visualizar, no primeiro momento achei que era isso que tinha acontecido para bugar meus teleportes, então eu dei reload em todos itens um por um e deixei o teleport sem dar reload, para ver se era esses o bug! e deu na mesma , quando edito o mapa para colocar novas hunt e cidade ele buga todos teleportes!
       
       
       
       
      No itemxml o teleport está com mesmo id!
       
      alguma alma bondosa para ajudar um colega?
    • Por marvadon
      Boa noite pessoal.
       
       
      To com problemas com os npcs dos bank.
       
      o único que funciona é o NPC de Thais, o resto dos npcs não respondem aos comandos(balance, deposit, withdraw)
       
       
      alguém poderia me ajudar?
       
       
      obrigado
    • Por Digoshow
      Gente eu troquei de distro e com ele veio alguns bugs, quero saber se voces podem me ajudar com algum deles, pois to tendo muito trabalho para conseguir arrumar esses erros.
       

       
      Alguem ae sabe resolver algum desses erros?
      Obrigado, REP + .
    • Por Poliar
      estou tentando abrir accounts tudo aqui ta dando esse erro, alguem poderia me ajudar forgottenserver
       
      can't read "hndClass(Enterprise)": no such element in array     while executing "$hndClass($defHnd) ::#auto"     (procedure "::Formatter::format" body line 14)     invoked from within "Formatter::format [decode $row(sql)]"     invoked from within "::database0 eval {SELECT sql FROM sqlite_master WHERE name = 'accounts'} row { $_sqlEditor setContents [Formatter::format [decode $row(sql)]] set ..."     ("uplevel" body line 1)     invoked from within "uplevel [list $_db eval {*}$args]"     while executing "error $::errorInfo"     (object "::sqlite30" method "::DB::eval" body line 9)     invoked from within "$_db eval "SELECT sql FROM sqlite_master WHERE name = '[string map [list ' ''] $_table]'" row { $_sqlEditor setContents [Formatter::format [decode $..."     (object "::tableWin1" method "::TableWin::refreshColumns" body line 4)     invoked from within "refreshColumns"     while constructing object "::tableWin1" in ::TableWin::constructor (body line 157)     invoked from within "TableWin ::#auto $title $db $table"     (object "::.mainWin.d.l.sb" method "::DBTree::openTableWindow" body line 8)     invoked from within "openTableWindow $db [lindex $data 2]"     ("TABLE" arm line 2)     invoked from within "switch -- [lindex $data 0] { "DATABASE" { if {[$db isOpen]} { if {[$_tree item isopen $it]} { $_tree item collapse $it } else { ..."     (object "::.mainWin.d.l.sb" method "::DBTree::doubleClicked" body line 10)     invoked from within "::.mainWin.d.l.sb doubleClicked 118 64"     (command bound to event)
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo