Ir para conteúdo
  • Cadastre-se

[GESIOR] Guild Shop System Remake


Posts Recomendados

  • Administrador

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>&nbsp;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>&nbsp;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>&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['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>&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=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>&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=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>&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=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>&nbsp;<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">&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=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>&nbsp;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>&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($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>&nbsp;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(OBS: 1 de cada vez)

1

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

2OBS: 1 de cada vez)

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

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 Erimyth (veja o histórico de edições)

TibiaKing Team- KingTópicos
www.tibiaking.com

Link para o post
Compartilhar em outros sites
  • Administrador

Na area do shop ele tema algumas abas como

Mount,Item...etc

TibiaKing Team- KingTópicos
www.tibiaking.com

Link para o post
Compartilhar em outros sites
  • Administrador

acho que cria a tabela accounts do guild shop

para adicionar os points e se recordar de cada transação que cade jogar fez.

TibiaKing Team- KingTópicos
www.tibiaking.com

Link para o post
Compartilhar em outros sites

O 1º comando faz isso, o 3º cria a tabela accounts [no caso ja vai ta criado] e da adiciona [insert] uma account nova com todo acesso ao site! 

Comando: (1, '1', '765d7d1f3dcd58cb85c29482b2548c764caede3c', '', 65535, 0, '[email protected]', '', 0, 0, 1, 1353015990, '', 0, 0, '', '', 6, '0', 0, 0, 0, 1274912789, '', 0, 0, 0, 0);


Remova o 3º comando, é inutil!

Espero ter ajudado!
Link para o post
Compartilhar em outros sites
  • Administrador

Topico arrumado!

TibiaKing Team- KingTópicos
www.tibiaking.com

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

mas e depois de achar essa linha <a href='?subtopic=shopsystem'> no "www" layout/tibiacom/layout.php

 

como vai ficar? esse ; no final não vai fuder tudo? tava vendo que ali não tem outros tags com ; e dai então não sei colocar, pode me falar como ficaria se colocasse?

Se Ajudei Rep+ pra mim ^^

tumblr_lyd1xtGgx81qf9l6uo1_500.gif

Link para o post
Compartilhar em outros sites

procure o final da tag ANCORA (</a>; ) ai coloca o resto!

 

<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>";
Link para o post
Compartilhar em outros sites

 

procure o final da tag ANCORA (</a>; ) ai coloca o resto!

 

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

beleza, eu consegui achar :D só não entendi como colocar do DB isso ai, mas vai ficar pra depois.... pois não consigo acessar o phpmyadmin, até fiz o tópico e tal ....

mas poderia falar onde colocar fazendo o favor

Se Ajudei Rep+ pra mim ^^

tumblr_lyd1xtGgx81qf9l6uo1_500.gif

Link para o post
Compartilhar em outros sites

luanluciano93, em 27 Mai 2014 - 11:04 PM, disse:

coloca oq?

depois abra seu phpmyadmin e adicione isso a sua db(OBS: 1 de cada vez)

1

ALTER TABLE

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

2OBS: 1 de cada vez)

-- phpMyAdmin SQL Dump

-- version 3.3.2deb1ubuntu1

-- http://www.phpmyadmin.net

--

-- Servidor: localhost

-- Tempo de Gera&ccedil;&atilde;o: Nov 19, 2012 as 05:58 PM

-- Vers&atilde;o do Servidor: 5.1.63

-- Vers&atilde;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&Atilde;&iexcl; +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);

essas tags, o cara falo q tem q por no DB

e ahh, tem um erro quando tento abrir a page.... eu fiz como voc&ecirc; falou, ficou direitinho, mas ele d&aacute; esses erros

Error occured!

Error ID: ObjectData::getCustomField - Field guild_points does not exist in data / is not loaded.

More info:

File: C:\xampp\htdocs\classes/objectdata.php Line: 52

File: C:\xampp\htdocs\pages/shopguild.php Line: 6

File: C:\xampp\htdocs\system/load.page.php Line: 7

File: C:\xampp\htdocs/index.php Line: 37

Editado por Schiffert (veja o histórico de edições)

Se Ajudei Rep+ pra mim ^^

tumblr_lyd1xtGgx81qf9l6uo1_500.gif

Link para o post
Compartilhar em outros sites

vai no phpmyadmin, entra na sua database, vai ter a opção SQL, entra nela, coloca o código e executa!

 

fiz exatamente como você falou.... refiz todo o tutorial, e ainda dá esse erro

 

Error occured!

Error ID: ObjectData::getCustomField - Field guild_points does not exist in data / is not loaded.

More info: 

File: C:\xampp\htdocs\classes/objectdata.php   Line: 52

File: C:\xampp\htdocs\pages/shopguild.php   Line: 6

File: C:\xampp\htdocs\system/load.page.php   Line: 7

File: C:\xampp\htdocs/index.php   Line: 37

 

 

 

 

 

OLHA, ele até funciona agora, mas ele não funciona direito, tipo.... se eu logar em uma conta e tentar acessar ele dá os mesmos erros

mas se eu nao logar ele aparece as coisas e agora?

Editado por Schiffert (veja o histórico de edições)

Se Ajudei Rep+ pra mim ^^

tumblr_lyd1xtGgx81qf9l6uo1_500.gif

Link para o post
Compartilhar em outros sites

Você executou esse comando no phpmyadmin?

 

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

 

Coloque aqui seu classes/account.php em spoiler por favor (para colocar em spoiler abra e feche o códigos com as tags [spoiler#] e [/spoiler#] sem os # ...

Link para o post
Compartilhar em outros sites

Você executou esse comando no phpmyadmin?

 

 

 

 

Coloque aqui seu classes/account.php em spoiler por favor (para colocar em spoiler abra e feche o códigos com as tags [spoiler#] e [/spoiler#] sem os # ...

 

if(!defined('INITIALIZED'))

exit;

class Account extends ObjectData

{

const LOADTYPE_ID = 'id';

const LOADTYPE_NAME = 'name';

const LOADTYPE_MAIL = 'email';

public static $table = 'accounts';

public $data = array('name' => null, 'password' => null, 'premdays' => null, 'lastday' => null, 'email' => null, 'key' => null, 'create_ip' => null, 'creation' => null, 'premium_points' => null, 'page_access' => null, 'location' => null, 'rlname' => null, 'email_new' => null, 'email_new_time' => null, 'email_code' => null, 'next_email' => null, 'last_post' => null, 'flag' => null);

public static $fields = array('id', 'name', 'password', 'premdays', 'lastday', 'email', 'key', 'create_ip', 'creation', 'premium_points', 'page_access', 'location', 'rlname', 'email_new', 'email_new_time', 'email_code', 'next_email', 'last_post', 'flag');

public $players;

public $playerRanks;

public $guildAccess;

public $bans;

public function __construct($search_text = null, $search_by = self::LOADTYPE_ID)

{

if($search_text != null)

$this->load($search_text, $search_by);

}

public function load($search_text, $search_by = self::LOADTYPE_ID)

{

if(in_array($search_by, self::$fields))

$search_string = $this->getDatabaseHandler()->fieldName($search_by) . ' = ' . $this->getDatabaseHandler()->quote($search_text);

else

new Error_Critic('', 'Wrong Account search_by type.');

$fieldsArray = array();

foreach(self::$fields as $fieldName)

$fieldsArray[$fieldName] = $this->getDatabaseHandler()->fieldName($fieldName);

$this->data = $this->getDatabaseHandler()->query('SELECT ' . implode(', ', $fieldsArray) . ' FROM ' . $this->getDatabaseHandler()->tableName(self::$table) . ' WHERE ' . $search_string)->fetch();

}

public function loadById($id)

{

$this->load($id, 'id');

}

public function loadByName($name)

{

$this->load($name, 'name');

}

public function loadByEmail($mail)

{

$this->load($mail, 'email');

}

public function save($forceInsert = false)

{

if(!isset($this->data['id']) || $forceInsert)

{

$keys = array();

$values = array();

foreach(self::$fields as $key)

if($key != 'id')

{

$keys[] = $this->getDatabaseHandler()->fieldName($key);

$values[] = $this->getDatabaseHandler()->quote($this->data[$key]);

}

$this->getDatabaseHandler()->query('INSERT INTO ' . $this->getDatabaseHandler()->tableName(self::$table) . ' (' . implode(', ', $keys) . ') VALUES (' . implode(', ', $values) . ')');

$this->setID($this->getDatabaseHandler()->lastInsertId());

}

else

{

$updates = array();

foreach(self::$fields as $key)

if($key != 'id')

$updates[] = $this->getDatabaseHandler()->fieldName($key) . ' = ' . $this->getDatabaseHandler()->quote($this->data[$key]);

$this->getDatabaseHandler()->query('UPDATE ' . $this->getDatabaseHandler()->tableName(self::$table) . ' SET ' . implode(', ', $updates) . ' WHERE ' . $this->getDatabaseHandler()->fieldName('id') . ' = ' . $this->getDatabaseHandler()->quote($this->data['id']));

}

}

public function getPlayers($forceReload = false)

{

if(!isset($this->players) || $forceReload)

{

$this->players = new DatabaseList('Player');

$this->players->setFilter(new SQL_Filter(new SQL_Field('account_id'), SQL_Filter::EQUAL, $this->getID()));

$this->players->addOrder(new SQL_Order(new SQL_Field('name')));

}

return $this->players;

}

/*

public function getGuildRanks($forceReload = false)

{

if(!isset($this->playerRanks) || $forceReload)

{

$this->playerRanks = new DatabaseList('AccountGuildRank');

$filterAccount = new SQL_Filter(new SQL_Field('account_id', 'players'), SQL_Filter::EQUAL, $this->getID());

$filterPlayer1 = new SQL_Filter(new SQL_Field('id', 'players'), SQL_Filter::EQUAL, new SQL_Field('player_id', 'guild_membership'));

$filterPlayer2 = new SQL_Filter(new SQL_Field('rank_id', 'guild_membership'), SQL_Filter::EQUAL, new SQL_Field('id', 'guild_ranks'));

$filterGuild = new SQL_Filter(new SQL_Field('guild_id', 'guild_ranks'), SQL_Filter::EQUAL, new SQL_Field('id', 'guilds'));

$filter = new SQL_Filter($filterAccount, SQL_Filter::CRITERIUM_AND, $filterPlayer1);

$filter = new SQL_Filter($filter, SQL_Filter::CRITERIUM_AND, $filterPlayer2);

$filter = new SQL_Filter($filter, SQL_Filter::CRITERIUM_AND, $filterGuild);

$this->playerRanks->setFilter($filter);

}

return $this->playerRanks;

}

public function loadGuildAccess($forceReload = false)

{

if(!isset($this->guildAccess) || $forceReload)

{

$this->guildAccess = array();

foreach($this->getGuildRanks($forceReload) as $rank)

if($rank->getOwnerID() == $rank->getPlayerID())

$this->guildAccess[$rank->getGuildID()] = Guild::LEVEL_OWNER;

elseif(!isset($this->guildAccess[$rank->getGuildID()]) || $rank->getLevel() > $this->guildAccess[$rank->getGuildID()])

$this->guildAccess[$rank->getGuildID()] = $rank->getLevel();

}

}

public function isInGuild($guildId, $forceReload = false)

{

$this->loadGuildAccess($forceReload);

return isset($this->guildAccess[$guildId]);

}

public function getGuildLevel($guildId, $forceReload = false)

{

$this->loadGuildAccess($forceReload);

if(isset($this->guildAccess[$guildId]))

return $this->guildAccess[$guildId];

else

return 0;

}

*/

public function unban()

{

$this->getDatabaseHandler()->query('DELETE FROM ' . $this->getDatabaseHandler()->tableName('account_bans') . ' WHERE ' . $this->getDatabaseHandler()->fieldName('account_id') . ' = ' . $this->getDatabaseHandler()->quote($this->data['id']));

unset($this->bans);

}

public function loadBans($forceReload = false)

{

if(!isset($this->bans) || $forceReload)

{

$this->bans = new DatabaseList('AccountBan');

$filter = new SQL_Filter(new SQL_Field('account_id'), SQL_Filter::EQUAL, $this->data['id']);

$this->bans->setFilter($filter);

}

}

public function isBanned($forceReload = false)

{

$this->loadBans($forceReload);

return count($this->bans) > 0;

}

public function getBanTime($forceReload = false)

{

$this->loadBans($forceReload);

$lastExpires = 0;

foreach($bans as $ban)

{

if($ban->getExpiresAt() <= 0)

{

$lastExpires = 0;

break;

}

if($ban->getExpiresAt() > time() && $ban->getExpiresAt() > $lastExpires)

$lastExpires = $ban->getExpiresAt();

}

return $lastExpires;

}

public function delete()

{

$this->getDatabaseHandler()->query('DELETE FROM ' . $this->getDatabaseHandler()->tableName(self::$table) . ' WHERE ' . $this->getDatabaseHandler()->fieldName('id') . ' = ' . $this->getDatabaseHandler()->quote($this->data['id']));

unset($this->data['id']);

}

public function setID($value){$this->data['id'] = $value;}

public function getID(){return $this->data['id'];}

public function setName($value){$this->data['name'] = $value;}

public function getName(){return $this->data['name'];}

public function setPassword($value)

{

$this->data['password'] = Website::encryptPassword($value, $this);

}

public function getPassword(){return $this->data['password'];}

public function setPremDays($value){$this->data['premdays'] = $value;}

public function getPremDays(){return $this->data['premdays'] - (date("z", time()) + (365 * (date("Y", time()) - date("Y", $this->data['lastday']))) - date("z", $this->data['lastday']));}

public function setLastDay($value){$this->data['lastday'] = $value;}

public function getLastDay(){return $this->data['lastday'];}

public function setMail($value){$this->data['email'] = $value;}

public function getMail(){return $this->data['email'];}

public function setKey($value){$this->data['key'] = $value;}

public function getKey(){return $this->data['key'];}

/*

* Custom AAC fields

* create_ip , INT, default 0

* premium_points , INT, default 0

* page_access, INT, default 0

* location, VARCHAR(255), default ''

* rlname, VARCHAR(255), default ''

*/

public function setCreateIP($value){$this->data['create_ip'] = $value;}

public function getCreateIP(){return $this->data['create_ip'];}

public function setCreateDate($value){$this->data['creation'] = $value;}

public function getCreateDate(){return $this->data['creation'];}

public function setPremiumPoints($value){$this->data['premium_points'] = $value;}

public function getPremiumPoints(){return $this->data['premium_points'];}

public function setPageAccess($value){$this->data['page_access'] = $value;}

public function getPageAccess(){return $this->data['page_access'];}

public function setLocation($value){$this->data['location'] = $value;}

public function getLocation(){return $this->data['location'];}

public function setRLName($value){$this->data['rlname'] = $value;}

public function getRLName(){return $this->data['rlname'];}

public function setFlag($value){$this->data['flag'] = $value;}

public function getFlag(){return $this->data['flag'];}

/*

* for compability with old scripts

*/

public function getEMail(){return $this->getMail();}

public function setEMail($value){$this->setMail($value);}

public function getPlayersList(){return $this->getPlayers();}

public function getGuildAccess($guildID){return $this->getGuildLevel($guildID);}

public function isValidPassword($password)

{

return ($this->data['password'] == Website::encryptPassword($password, $this));

}

public function find($name){$this->loadByName($name);}

public function findByEmail($email){$this->loadByEmail($email);}

public function isPremium(){return ($this->getPremDays() > 0);}

public function getLastLogin(){return $this->getLastDay();}

}

Editado por Schiffert (veja o histórico de edições)

Se Ajudei Rep+ pra mim ^^

tumblr_lyd1xtGgx81qf9l6uo1_500.gif

Link para o post
Compartilhar em outros sites

if(!defined('INITIALIZED'))

exit;

class Account extends ObjectData

{

.....

 

Abra >classes/account.php:

 

Em:

public $data = array

Adicione:

'guild_points' => null

Em:

public static $fields = array

Adicione:

'guild_points'

Em:

public function setPremiumPoints($value){$this->data['premium_points'] = $value;}
public function getPremiumPoints(){return $this->data['premium_points'];}

Adicione abaixo:

public function setGuildPoints($value){$this->data['guild_points'] = $value;}
public function getGuildPoints(){return $this->data['guild_points'];}

Veja se resolve!

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

opa, beleza :D resolveu sim,...

porém queria saber pq q não aparece as imagens dos itens, tenho que pegar as imagens do tibia wiki pra colocar num tag pra elas aparecerem?

e como faz pra por outfits e mounts?

Se Ajudei Rep+ pra mim ^^

tumblr_lyd1xtGgx81qf9l6uo1_500.gif

Link para o post
Compartilhar em outros sites

opa, beleza :D resolveu sim,...

porém queria saber pq q não aparece as imagens dos itens, tenho que pegar as imagens do tibia wiki pra colocar num tag pra elas aparecerem?

e como faz pra por outfits e mounts?

 

Talvez o seu shopguild.php esteja direcionando pra uma pasta que não existe, posta o php ai:

 

http://pastebin.com/

 

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

EDIT

Ou baixa essa pasta e bota na pasta do site e ver se resolve:

item_images

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

Talvez o seu shopguild.php esteja direcionando pra uma pasta que não existe, posta o php ai:

 

http://pastebin.com/

 

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

EDIT

Ou baixa essa pasta e bota na pasta do site e ver se resolve:

item_images

 

 

vou baixar aqui, e ja retorno..

mas em, qual comando eu uso pra colocar guildpoints no char?

 

!guildpoints ?

 

 

EDIT: não sei onde jogar a pasta, são tantas pastas onde dá pra jogar as fotos kk

jogo onde? htdocs/images?

Editado por Schiffert (veja o histórico de edições)

Se Ajudei Rep+ pra mim ^^

tumblr_lyd1xtGgx81qf9l6uo1_500.gif

Link para o post
Compartilhar em outros sites
  • Erimyth mudou o título para [GESIOR] Guild Shop System Remake

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo