Ir para conteúdo

GuildShop system+gesior reformulado


eder009009

Posts Recomendados

e ai galera estou aqui para postar o guild shop system 100%

 

1:va em www/config/config.php e busque pela linha

 

 

$config['site']['shop_system'] = 1;

 

 

de enter e coloque

 

 

$config['site']['shopguild_system'] = 1;

 

ficara assim

 

 

$config['site']['shop_system'] = 1;
$config['site']['shopguild_system'] = 1;

 

apos isso crie na pasta www o arquivo e renomei para shopguild.php

 

 

<?PHP

// ALTER TABLE `z_shop_history_item` CHANGE `offer_id` `offer_id` VARCHAR( 255 ) NOT NULL;

// UPDATE `z_shopguild_history_item`, `z_shopguild_offer` SET `z_shopguild_history_item`.`offer_id` = `z_shopguild_offer`.`offer_name` WHERE `z_shopguild_history_item`.`offer_id` = `z_shopguild_offer`.`id`;

if($config['site']['shopguild_system'] == 1) {

if($logged)

$user_guild_points = $account_logged->getCustomField('guild_points');

else

$user_guild_points = 'Login first';

 

function getItemByID($id)

{

$id = (int) $id;

$SQL = $GLOBALS['SQL'];

$data = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shopguild_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_shopguild_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 .= '<h2><center>Bem Vindo ao '.$config['server']['serverName'].' Shop.</center></h2><h2><center>Guild Points Shopping.</h2><br><center><h2>Saiba como adquirir seus pontos no menu Library > Guild Points</h2></center></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> Premium TIME</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=shopguild&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> Items Specials</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['item_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=shopguild&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> 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['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=shopguild&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> 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=shopguild&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> 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=shopguild&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> 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=shopguild&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=shopguild&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=shopguild&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=shopguild&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=shopguild">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_guild_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=shopguild&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> <input type="submit" value="Give"></td></tr></table>

</form><br /><form action="index.php?subtopic=shopguild&action=confirm_transaction" method=POST><input type="hidden" name="buy_id" value="'.$buy_id.'">

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

</table><br /></form>';

} else {

$main_content .= 'For this item you need <b>'.$buy_offer['points'].'</b> points.<br>You have only <b>'.$user_guild_points.'</b> premium points. Please <a href="index.php?subtopic=shopguild">select other item</a> or buy premium points.';

}

} else {

$main_content .= '<center><h2>Change Name</h2><form action="index.php?subtopic=shopguild&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"> <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=shopguild">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=shopguild">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_guild_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_viptime = $buy_player_account->getCustomField('viptime');

$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['guild points']).', '.$SQL->quote($buy_offer['days']).', \'realized\', '.$SQL->quote(time()).', '.$SQL->quote(time()).');';

$SQL->query($save_transaction);

if($player_viptime > 0)

$buy_player_account->setCustomField('viptime', $player_viptime + $buy_offer['days'] * 86400);

else

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

$buy_player_account->setCustomField('guild_points', $user_guild_points-$buy_offer['guild points']);

$user_guild_points = $user_guild_points - $buy_offer['guild 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['guild points'].' guild points</b> from your account.<br />Now you have <b>'.$user_guild_points.' guild points</b>.<br><br><a href="index.php?subtopic=shopguild">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('guild_points', $user_guild_points-$buy_offer['points']);

$user_guild_points = $user_guild_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_guild_points.' premium points</b>.<br><br><a href="index.php?subtopic=shopguild">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=shopguild">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('guild_points', $user_guild_points-$buy_offer['points']);

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

$main_content .= '<h2>Item received to player: '.$buy_player->getName().'!</h2><br>Now you have <b>'.$user_guild_points.' premium points</b>.

<br><a href="index.php?subtopic=shopguild">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=shopguild">Go back</a>';

}

} else {

$main_content .= '<b>Please leave the arrow slot in blank to receive item!</b><br><a href="index.php?subtopic=shopguild">Go back</a>';

}

} else {

$main_content .= '<b>You need to be offline!</b><br><a href="index.php?subtopic=shopguild">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('guild_points', $user_guild_points-$buy_offer['points']);

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

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

<br><br><a href="index.php?subtopic=shopguild">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=shopguild">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('guild_points', $user_guild_points-$buy_offer['points']);

$user_guild_points = $user_guild_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_guild_points.' premium points</b>.<br><br><a href="index.php?subtopic=shopguild">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=shopguild">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_shopguild_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('guild_points', $user_guild_points-$buy_offer['points']);

$user_guild_points = $user_guild_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_guild_points.' premium points</b>.<br><br><a href="index.php?subtopic=shopguild">GO TO MAIN SHOP SITE</a><br>';

}

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

$player_premdays = $buy_player_account->getCustomField('premdays');

$player_lastlogin = $buy_player_account->getCustomField('lastday');

$save_transaction = 'INSERT INTO '.$SQL->tableName('z_shopguild_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('guild_points', $user_guild_points-$buy_offer['points']);

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

 

$main_content .= '<center><h2>VIP account added!</h2><b>'.$buy_offer['days'].' days</b> of VIP account 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_guild_points.' premium points</b>.<br><br><a href="index.php?subtopic=shopguild">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_shopguild_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('guild_points', $user_guild_points-$buy_offer['points']);

$user_guild_points = $user_guild_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_guild_points.' premium points</b>.<br><br><a href="index.php?subtopic=shopguild">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_shopguild_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('guild_points', $user_guild_points-$buy_offer['points']);

$user_guild_points = $user_guild_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_guild_points.' premium points</b>.<br><br><a href="index.php?subtopic=shopguild">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=shopguild&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=shopguild" 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=shopguild&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=shopguild" 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=shopguild&action=select_player&buy_id='.$buy_id.'">select other name</a>.';

}

} else {

$main_content .= 'Invalid name format. Please <a href="index.php?subtopic=shopguild&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_guild_points.'</b> premium points. Please <a href="index.php?subtopic=shopguild">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=shopguild">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_shopguild_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['price'].' Points</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_shopguild_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>';

}

}

$pagseguro_history_received = $SQL->query('SELECT * FROM '.$SQL->tableName('PagSeguroTransacoes').' WHERE '.$SQL->fieldName('Anotacao').' = '.$SQL->quote($account_logged->getCustomField("name")).';');

if(is_object($pagseguro_history_received)) {

foreach($pagseguro_history_received as $pagseguro_received) {

if($account_logged->getCustomField("name") == $pagseguro_received['Anotacao'])

$char_color = 'green';

else

$char_color = 'red';

$pagseguro_received_text .= '<tr bgcolor="#F1E0C6"><td><font color="'.$char_color.'">'.$pagseguro_received['TransacaoID'].'</font></td><td>';

 

$pagseguro_received_text .= ''.$pagseguro_received['TipoPagamento'].'';

 

$pagseguro_received_text .= '</td><td>R$'.$pagseguro_received['NumItens'].',00</td><td>'.$pagseguro_received['Extras'].' Points</td><td><b style="color:red;">'.$pagseguro_received['StatusTransacao'].'</b></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> Item Transactions</b></font></td></tr><tr bgcolor="#D4C0A1"><td><b>To:</b></td><td><b>From:</b></td><td><b>Cost</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> 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($pagseguro_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> PagSeguro Donations</b></font></td></tr><tr bgcolor="#D4C0A1"><td><b>ID:</b></td><td><b>Type</b></td><td><b>Cost</b></td><td><b>Points</b></td><td><b>Status</b></td></tr>'.$pagseguro_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 guild points: </font></b>'.$user_guild_points;

}

else

$main_content .= '<br><center><b>Shop System is currently disabled for this server.Please ask the admin for more information.</b></center>';

?>

 

 

 

 

apos isso vai em index e adicione essa linha

 

 

case "shopguild";

$topic = "Shop Guild";

$subtopic = "shopguild";

include("shopguild.php");

break;

 

 

 

apos isso va em www\layouts\tibiacom/leyout.php e procure pela linha

 

 

<a href='?subtopic=shopsystem'>

e adicione depois essa linha

 

 

 

 

<a href='?subtopic=shopguild'>

<div id='submenu_shopguild' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'>

<div class='LeftChain' style='background-image:url(".$layout_name."/images/general/chain.gif);'></div>

<div id='ActiveSubmenuItemIcon_shopsystem' class='ActiveSubmenuItemIcon' style='background-image:url(".$layout_name."/images/menu/icon-activesubmenu.gif);'></div>

<div class='SubmenuitemLabel'><font color=red>Shop Guild</font></div>

<div class='RightChain' style='background-image:url(".$layout_name."/images/general/chain.gif);'></div>

</div>

</a>";

 

 

 

 

depois abra seu phpmyadmin e adicione isso a sua db

 

 

 

ALTER TABLE `accounts` ADD `guild_points` INTEGER NOT NULL DEFAULT 0

 

 

querry 2

 

-- phpMyAdmin SQL Dump

-- version 3.3.2deb1ubuntu1

-- http://www.phpmyadmin.net

--

-- Servidor: localhost

-- Tempo de Geração: Nov 19, 2012 as 05:58 PM

-- Versão do Servidor: 5.1.63

-- Versão do PHP: 5.3.2-1ubuntu4.18

 

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

 

 

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;

/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;

/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;

/*!40101 SET NAMES utf8 */;

 

--

-- Banco de Dados: `zenon`

--

 

-- --------------------------------------------------------

 

--

-- Estrutura da tabela `z_shopguild_history_item`

--

 

CREATE TABLE IF NOT EXISTS `z_shopguild_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`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=66 ;

 

--

-- Extraindo dados da tabela `z_shopguild_history_item`

--

 

INSERT INTO `z_shopguild_history_item` (`id`, `to_name`, `to_account`, `from_nick`, `from_account`, `price`, `offer_id`, `trans_state`, `trans_start`, `trans_real`) VALUES

(65, 'Planta', 3876497, '', 3876497, 3, 100, 'wait', 1352659901, 0),

(13, 'Teste', 9560780, '', 9560780, 3, 0, 'wait', 1352933205, 0);

 

-- --------------------------------------------------------

 

--

-- Estrutura da tabela `z_shopguild_history_pacc`

--

 

CREATE TABLE IF NOT EXISTS `z_shopguild_history_pacc` (

`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',

`pacc_days` 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`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

 

--

-- Extraindo dados da tabela `z_shopguild_history_pacc`

--

 

 

-- --------------------------------------------------------

 

--

-- Estrutura da tabela `z_shopguild_offer`

--

 

CREATE TABLE IF NOT EXISTS `z_shopguild_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,

`pid` int(11) NOT NULL DEFAULT '0',

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=12656 ;

 

--

-- Extraindo dados da tabela `z_shopguild_offer`

--

 

INSERT INTO `z_shopguild_offer` (`id`, `points`, `itemid1`, `count1`, `itemid2`, `count2`, `offer_type`, `offer_description`, `offer_name`, `pid`) VALUES

(2, 7, 0, 7, 0, 0, 'vipdays', '7 Dias de VIP Days', '7 Dias de VIP Days', 0),

(2160, 3, 2160, 100, 0, 0, 'item', 'Compre 100 crystals coins (1KK)', '100 Crystal Coins', 0),

(2798, 3, 2798, 20, 0, 0, 'item', 'Compre 20 Bloods Herbs para decorar sua House', 'Blood Herbs', 0),

(8884, 3, 8884, 1, 0, 0, 'item', 'Arm:15, shielding +1, protection energy -5%, ice +5%).\r\nIt can only be wielded properly by knights of level 90 or higher.', 'Oceanborn Leviathan Armor', 0),

(8890, 3, 8890, 1, 0, 0, 'item', 'You see a robe of the underworld (Arm:12, protection holy -12%, death +12%).\r\nIt can only be wielded properly by sorcerers of level 100 or higher.\r\nIt weighs 19.00 oz.', 'Robe of the underworld', 0),

(8889, 3, 8889, 1, 0, 0, 'item', 'You see a skullcracker armor (Arm:14, protection holy -5%, death +5%).\r\nIt can only be wielded properly by knights of level 100 or higher.\r\nIt weighs 110.00 oz.', 'Skullcracker armor', 0),

(8881, 5, 8881, 1, 0, 0, 'item', 'You see a fireborn giant armor (Arm:15, sword fighting +2, protection fire +5%, ice -5%).\r\nIt can only be wielded properly by knights of level 90 or higher.\r\nIt weighs 120.00 oz.', 'Fireborn giant armor', 0),

(2495, 5, 2495, 1, 0, 0, 'item', 'You see demon legs (Arm:9).\r\nIt weighs 54.00 oz.', 'Demon Legs', 0),

(6132, 4, 6132, 1, 0, 0, 'item', 'You see a pair of soft boots that has energy for 240 minutes left. It weighs 8.00 oz.', 'Soft Boots', 0),

(8918, 4, 8918, 1, 0, 0, 'item', 'You see a spellbook of dark mysteries (Def:16, magic level +3).\r\nIt can only be wielded properly by sorcerers and druids of level 80 or higher.\r\nIt weighs 28.50 oz.\r\nIt shows your spells and can also shield against attack when worn.', 'Spellbook of the Dark Mysteries', 0),

(8882, 5, 8882, 1, 0, 0, 'item', 'You see an earthborn titan armor (Arm:15, axe fighting +2, protection earth +5%, fire -5%).\r\nIt can only be wielded properly by knights of level 90 or higher.\r\nIt weighs 120.00 oz.', 'Earthborn titan armor', 0),

(6391, 5, 6391, 1, 0, 0, 'item', 'You see a nightmare shield (Def:37).\r\nIt weighs 32.00 oz.\r\nIt was crafted by the ancient order of the nightmare knights.', 'Nightmare Shield', 0),

(2493, 3, 2493, 1, 0, 0, 'item', 'You see a demon helmet (Arm:10).\r\nIt weighs 29.50 oz.\r\nYou hear an evil whispering from the inside.', 'Demon Helmet', 0),

(9778, 3, 9778, 1, 0, 0, 'item', 'You see a yalahari mask (Arm:5, magic level +2).\r\nIt can only be wielded properly by sorcerers and druids of level 80 or higher.\r\nIt weighs 35.00 oz.', 'Yalahari Mask', 0),

(6433, 5, 6433, 1, 0, 0, 'item', 'You see a necromancer shield (Def:37).\r\nIt weighs 32.00 oz.\r\nIt is enchanted with unholy, necromantic powers.', 'Necromancer Shield', 0),

(8888, 3, 8888, 1, 0, 0, 'item', 'You see a master archer''s armor (Arm:15, distance fighting +3).\r\nIt can only be wielded properly by paladins of level 100 or higher.\r\nIt weighs 69.00 oz.', 'Master archer''s armor', 0),

(9776, 3, 9776, 1, 0, 0, 'item', 'You see a yalahari armor (Arm:16, protection death +3%).\r\nIt can only be wielded properly by knights of level 80 or higher.\r\nIt weighs 70.00 oz.', 'Yalahari Armor', 0),

(9777, 3, 9777, 1, 0, 0, 'item', 'You see a yalahari leg piece (Arm:8, distance fighting +2, protection death +5%).\r\nIt can only be wielded properly by paladins of level 80 or higher.\r\nIt weighs 65.00 oz.', 'Yalahari Legs Piece', 0),

(8905, 5, 8905, 1, 0, 0, 'item', 'You see a rainbow shield (Def:30).\r\nIt can only be wielded properly by knights of level 100 or higher.\r\nIt weighs 69.00 oz.', 'Rainbow Shield', 0),

(8930, 5, 8930, 1, 0, 0, 'item', '(Atk:49, Def:33 +3).\r\nIt can only be wielded properly by players of level 100 or higher.\r\nIt weighs 41.00 oz.', 'Emerald Sword', 0),

(8925, 7, 8925, 1, 0, 0, 'item', 'You see a solar axe (Atk:52, Def:29 +3).\r\nIt can only be wielded properly by players of level 130 or higher.', 'Solar Axe', 0),

(9932, 5, 9932, 1, 0, 0, 'item', 'firewalker boots (Arm:2, protection fire +90%)', 'firewalker boots', 0),

(7439, 2, 7439, 1, 0, 0, 'item', 'Dá +5 de axe, club e sword skill e -10 de shielding durante 10 minutos.', 'Berserk Potion', 0),

(8851, 3, 8851, 1, 0, 0, 'item', '(Range:6, Atk +5, Hit% +3).\r\nIt can only be wielded properly by paladins of level 130 or higher.', 'Royal Crossbow', 0),

(1432, 3, 12647, 1, 0, 0, 'item', '(Def:14, magic level +3).\r\nIt can only be wielded properly by sorcerers and druids of level 100 or higher.\r\nIt shows your spells and can also shield against attacks when worn', 'Snake god''s wristguard', 0),

(2494, 2, 2494, 1, 0, 0, 'item', 'You see a demon armor (Arm:16).\r\nIt weighs 80.00 oz.', 'Demon Armor', 0),

(8266, 4, 8266, 1, 0, 0, 'item', '(protection holy -50%, death +8%).', 'Koshei''s ancient amulet', 0),

(8867, 3, 8867, 1, 0, 0, 'item', 'You see a dragon robe (Arm:12, protection fire +12%, ice -12%).\r\nIt can only be wielded properly by sorcerers.', 'Dragon Robe', 0),

(8927, 7, 8927, 1, 0, 0, 'item', 'You see a dark trinity mace (Atk:51, Def:32 -1).\r\nIt can only be wielded properly by players of level 120 or higher.\r\nIt weighs 99.00 oz.', 'Dark Trinity Mace', 0),

(8865, 4, 8865, 1, 0, 0, 'item', 'You see a dark lord''s cape (Arm:11, protection holy -8%, death +8%). Para sorcerers.', 'Dark lord''s cape', 0),

(8924, 5, 8924, 1, 0, 0, 'item', '(Atk:51, Def:28 +2).\r\nIt can only be wielded properly by players of level 110 or higher.\r\nIt weighs 88.00 oz.', 'Hellforged Axe', 0),

(12645, 4, 12645, 1, 0, 0, 'item', 'protection death +3%, distance +2', 'Elite Draken Helmet', 0),

(12643, 4, 12643, 1, 0, 0, 'item', '(Arm:10, magic level +2, protection fire +5%).\r\nIt can only be wielded properly by sorcerers and druids of level 100 or higher.\r\nIt weighs 45.00 oz', 'Royal Scale Robe', 0),

(12642, 4, 12642, 1, 0, 0, 'item', '(Arm:16, shielding +3, protection physical +5%).\r\nIt can only be wielded properly by knights of level 100 or higher.', 'Royal Draken Mail', 0),

(1254, 7, 0, 0, 0, 0, 'redskull', 'Remova seu red skull ou de seu amigo.', 'Remover Red Skull', 0);

 

 

 

querry 3

 

 

 

 

-- phpMyAdmin SQL Dump

-- version 3.3.2deb1ubuntu1

-- http://www.phpmyadmin.net

--

-- Servidor: localhost

-- Tempo de Geração: Nov 19, 2012 as 05:59 PM

-- Versão do Servidor: 5.1.63

-- Versão do PHP: 5.3.2-1ubuntu4.18

 

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

 

 

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;

/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;

/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;

/*!40101 SET NAMES utf8 */;

 

--

-- Banco de Dados: `zenon`

--

 

-- --------------------------------------------------------

 

--

-- Estrutura da tabela `accounts`

--

 

CREATE TABLE IF NOT EXISTS `accounts` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(32) NOT NULL DEFAULT '',

`password` varchar(255) NOT NULL,

`salt` varchar(40) NOT NULL DEFAULT '',

`premdays` int(11) NOT NULL DEFAULT '0',

`lastday` int(10) unsigned NOT NULL DEFAULT '0',

`email` varchar(255) NOT NULL DEFAULT '',

`key` varchar(20) NOT NULL DEFAULT '0',

`blocked` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'internal usage',

`warnings` int(11) NOT NULL DEFAULT '0',

`group_id` int(11) NOT NULL DEFAULT '1',

`page_lastday` int(11) NOT NULL,

`email_new` varchar(255) NOT NULL,

`email_new_time` int(15) NOT NULL,

`created` int(11) NOT NULL DEFAULT '0',

`rlname` varchar(255) NOT NULL DEFAULT '',

`location` varchar(255) NOT NULL DEFAULT '',

`page_access` int(11) NOT NULL DEFAULT '0',

`email_code` varchar(255) NOT NULL DEFAULT '0',

`next_email` int(11) NOT NULL DEFAULT '0',

`premium_points` int(11) NOT NULL DEFAULT '0',

`vote` int(11) NOT NULL,

`last_post` int(11) NOT NULL DEFAULT '0',

`flag` varchar(255) NOT NULL,

`viptime` int(15) NOT NULL DEFAULT '0',

`vip_time` int(15) NOT NULL DEFAULT '0',

`vipdays` int(15) NOT NULL DEFAULT '0',

`guild_points` int(11) NOT NULL DEFAULT '0',

PRIMARY KEY (`id`),

UNIQUE KEY `name` (`name`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=9766198 ;

 

--

-- Extraindo dados da tabela `accounts`

--

 

INSERT INTO `accounts` (`id`, `name`, `password`, `salt`, `premdays`, `lastday`, `email`, `key`, `blocked`, `warnings`, `group_id`, `page_lastday`, `email_new`, `email_new_time`, `created`, `rlname`, `location`, `page_access`, `email_code`, `next_email`, `premium_points`, `vote`, `last_post`, `flag`, `viptime`, `vip_time`, `vipdays`, `guild_points`) VALUES

(1, '1', '765d7d1f3dcd58cb85c29482b2548c764caede3c', '', 65535, 0, 'eduardo.yhago@hotmail.com', '', 0, 0, 1, 1353015990, '', 0, 0, '', '', 6, '0', 0, 0, 0, 1274912789, '', 0, 0, 0, 0);

 

--

-- Gatilhos `accounts`

--

DROP TRIGGER IF EXISTS `ondelete_accounts`;

DELIMITER //

CREATE TRIGGER `ondelete_accounts` BEFORE DELETE ON `accounts`

FOR EACH ROW BEGIN DELETE FROM `bans` WHERE `type` NOT IN(1, 2) AND `value` = OLD.`id`; END

//

DELIMITER ;

 

 

 

depois va no seu em talktion e crie um arquivo chamado guildpoints.lua

 

 

 

 

local playersNeeded = 8

local ipsNeeded = 6

local minimumLevel = 50

local storageId = 41578

local pointsForPlayer = 20

 

local function sendPlayersList(cid, list)

for i, pid in ipairs(list) do

local level = getPlayerLevel(pid) < minimumLevel and " - " .. getPlayerLevel(cid) .. " level " or ""

local valid = getCreatureStorage(pid, storageId) > 1 and " - already received!" or ""

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getCreatureName(pid) .. level)

end

end

 

function onSay(cid, words, param, channel)

if(getPlayerGuildLevel(cid) == 3) then

local leaderGuild = getPlayerGuildId(cid)

local players = getPlayersOnline()

local guildMembersValid = {}

local guildMembersInvalid = {}

for i, pid in ipairs(players) do

if(leaderGuild == getPlayerGuildId(pid)) then

if(getPlayerLevel(pid) >= minimumLevel and tonumber(getCreatureStorage(pid, storageId)) < 2) then

table.insert(guildMembersValid, pid)

else

table.insert(guildMembersInvalid, pid)

end

end

end

 

if(#guildMembersValid >= playersNeeded) then

local IPs = {}

for i, pid in ipairs(guildMembersValid) do

local ip = getPlayerIp(pid)

if(IPs[ip] == nil) then

IPs[ip] = ip

end

end

if(#IPs >= ipsNeeded) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Players that received points:")

sendPlayersList(cid, guildMembersValid)

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Players that did not receive points:")

sendPlayersList(cid, guildMembersInvalid)

local accounts = {}

for i, pid in ipairs(guildMembersValid) do

table.insert(accounts, getPlayerAccountId(pid))

doCreatureSetStorage(pid, storageId, os.time())

end

db.executeQuery("UPDATE `accounts` SET `guild_points` = `guild_points`+" .. pointsForPlayer .. " WHERE `id` IN (" .. table.concat(accounts, ',') .. ");")

else

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, #guildMembersValid .. " players from your guild are valid (" .. playersNeeded .. " required), but you have together only " .. #IPs .. " IPs (" .. ipsNeeded .. " required)")

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Valid players:")

sendPlayersList(cid, guildMembersValid)

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Invalid players:")

sendPlayersList(cid, guildMembersInvalid)

end

else

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, #guildMembersValid .. " players from your guild are valid, " .. playersNeeded .. " required. Minimum level required is " .. minimumLevel)

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Valid players:")

sendPlayersList(cid, guildMembersValid)

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Invalid players:")

sendPlayersList(cid, guildMembersInvalid)

end

else

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Only guild leader can request points.")

end

return true

end

 

 

 

depois va em talkactions.xml e adicione essa linha

 

 

 

<talkaction log="yes" words="!guildpoints" script="guildpoints.lua" />

 

 

 

Créditos:

Hastle Host

ChaitoSoft

Eduardo Lima

Editado por Azimud
Link para o comentário
Compartilhar em outros sites

esse esta 100% funcional e tbm tirei a opçao do shopguild pra passar o item pra otro xar muito util no global e o do outro esta incompleto com bugs como dito no inicio guildshopsystem reformulado

Editado por Azimud
Link para o comentário
Compartilhar em outros sites

nem ta rapas eu modifiquei para n poder tansferi um item pro otro xar pra n ter abuso e tbm ta funcionando 100% o otro nao dava pra acessa a pagina,quando tava deslogado com a acc e logava o shop bugava,entre outros

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

Quando entro em meu site,e logo a Loja de Guild,ela mostra os itens normal...

Mas quando loga na conta de algum jogador,e ele entra na loja,dá o seguinte erro:

 

[b]Fatal error[/b]: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'guild_points' in 'field list'' in C:\xampp\htdocs\pot\OTS_Account.php:772 Stack trace: #0 C:\xampp\htdocs\pot\OTS_Account.php(772): PDO->query('SELECT `guild_p...') #1 C:\xampp\htdocs\shopguild.php(6): OTS_Account->getCustomField('guild_points') #2 C:\xampp\htdocs\index.php(304): include('C:\xampp\htdocs...') #3 {main} thrown in [b]C:\xampp\htdocs\pot\OTS_Account.php[/b] on line [b]772[/b]

 

Me ajudem por gentileza...

 

MEU SITE: http://otbrasil.sytes.net:8090/ < PODEM VER O ERRO

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...
×
×
  • Criar Novo...