Ir para conteúdo
  • Cadastre-se

(Resolvido)[AJUDA] Guild shop não está enviando os itens para os players


Ir para solução Resolvido por VitorNM,

Posts Recomendados

Instalei o sistema de Guild Shop em meu gesior, ele abre a página normalmente, quando alguém compra algum item, os pontos são removidos normalmente, porém o item não chega ao player, e na database "z_shopguild_history_item" fica com status "wait".

 

Segue a imagem:

xioF9Th.jpg?1

 

Vale ressaltar que não ocorre nenhum erro na distro e nem na página do site, ocorre tudo normal como se estivesse funcionando, apenas o que acontece é do item não chegar ao player.

 

Rep+ para quem me ajudar ou pelo menos tentar :)

 

-- EDIT --

 

Postei em área errada, me perdoem, foi sem querer... Se possível alguém mover para Suporte de Websites seria grato.


@UP

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

nbeTETb.png?1

 

Link para o post
Compartilhar em outros sites

Vou tentar te ajudar... 

Antes de tudo, faça backup de todos os arquivos do seu shop.

 

Em globalevents.xml verifique se há isso no arquivo:

<globalevent name="shop" interval="30" script="shop.lua"/>

Em data/lib/000-constant.lua ou data/lib/constant.lua, verifique se há:

InitShopComunication = 0

Por último, substitua seu Shop.lua por esse:

-- ### CONFIG ### 
-- message send to player by script "type" (types you can check in "global.lua") 
SHOP_MSG_TYPE = 19 
-- time (in seconds) between connections to SQL database by shop script 
SQL_interval = 30 
-- ### END OF CONFIG ### 
function onThink(interval, lastExecution) 
    local result_plr = db.getResult("SELECT * FROM z_ots_comunication WHERE `type` = 'login';") 
    if(result_plr:getID() ~= -1) then 
        while(true) do 
            id = tonumber(result_plr:getDataInt("id")) 
            action = tostring(result_plr:getDataString("action")) 
            delete = tonumber(result_plr:getDataInt("delete_it")) 
            cid = getCreatureByName(tostring(result_plr:getDataString("name"))) 
            if isPlayer(cid) == TRUE then 
                local itemtogive_id = tonumber(result_plr:getDataInt("param1")) 
                local itemtogive_count = tonumber(result_plr:getDataInt("param2")) 
                local container_id = tonumber(result_plr:getDataInt("param3")) 
                local container_count = tonumber(result_plr:getDataInt("param4")) 
                local add_item_type = tostring(result_plr:getDataString("param5")) 
                local add_item_name = tostring(result_plr:getDataString("param6")) 
                local received_item = 0 
                local full_weight = 0 
                if add_item_type == 'container' then 
                    container_weight = getItemWeightById(container_id, 1) 
                    if isItemRune(itemtogive_id) == TRUE then 
                        items_weight = container_count * getItemWeightById(itemtogive_id, 1) 
                    else 
                        items_weight = container_count * getItemWeightById(itemtogive_id, itemtogive_count) 
                    end 
                    full_weight = items_weight + container_weight 
                else 
                    full_weight = getItemWeightById(itemtogive_id, itemtogive_count) 
                    if isItemRune(itemtogive_id) == TRUE then 
                        full_weight = getItemWeightById(itemtogive_id, 1) 
                    else 
                        full_weight = getItemWeightById(itemtogive_id, itemtogive_count) 
                    end 
                end 
                local free_cap = getPlayerFreeCap(cid) 
                if full_weight <= free_cap then 
                    if add_item_type == 'container' then 
                        local new_container = doCreateItemEx(container_id, 1) 
                        local iter = 0 
                        while iter ~= container_count do 
                            doAddContainerItem(new_container, itemtogive_id, itemtogive_count) 
                            iter = iter + 1 
                        end 
                        received_item = doPlayerAddItemEx(cid, new_container) 
                    else 
                        local new_item = doCreateItemEx(itemtogive_id, itemtogive_count) 
                        received_item = doPlayerAddItemEx(cid, new_item) 
                    end 
                    if received_item == RETURNVALUE_NOERROR then 
                        doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from OTS shop.') 
                        db.executeQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";") 
                        db.executeQuery("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";") 
                    else 
                        doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. SQL_interval ..' seconds to get it.') 
                    end 
                else 
                    doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot and wait about '.. SQL_interval ..' seconds to get it.') 
                end 
            end 
            if not(result_plr:next()) then 
                break 
            end 
        end 
        result_plr:free() 
    end 
    return TRUE 
end 
Editado por Larissa Azhaurn (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Então, não há nenhum arquivo chamado constant.lua na pasta do meu ot e_e

Pode ser por isso? Estou usando TFS 1.0

 

Rep por tentar ajudar ^^

nbeTETb.png?1

 

Link para o post
Compartilhar em outros sites

@UP

As informações passadas até aqui estão erradas.

Na sua database provavelmente não existe a coluna "z_ots_guildcomunication", execute a query abaixo no phpmyadmin, compre o item novamente, e veja se chega, se não resolver, poste o arquivo php do shop guild.

CREATE TABLE IF NOT EXISTS `z_ots_guildcomunication` (
                        `id` int(11) NOT NULL AUTO_INCREMENT,
                        `name` varchar(255) NOT NULL,
                        `type` varchar(255) NOT NULL,
                        `action` varchar(255) NOT NULL,
                        `param1` varchar(255) NOT NULL,
                        `param2` varchar(255) NOT NULL,
                        `param3` varchar(255) NOT NULL,
                        `param4` varchar(255) NOT NULL,
                        `param5` varchar(255) NOT NULL,
                        `param6` varchar(255) NOT NULL,
                        `param7` varchar(255) NOT NULL,
                        `delete_it` int(2) NOT NULL DEFAULT '1',
                        PRIMARY KEY (`id`)
                  ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=13107;
                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites

Snowsz, há a tabela "z_ots_guildcomunication" na minha database, eu até tentei dropar ela e adicioná-la de novo com o comando que você passou, mas continua a mesma coisa... Segue meu shopguild.php:

 

<?php
if(!defined('INITIALIZED'))
exit;
 
if($config['site']['shopguild_system'])
{
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'] == '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'] == 'mount')
{
$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'] == 'addon')
{
$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['item_id'] = $data['itemid1'];
$offer['item_count'] = $data['count1'];
$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_item = 0;
$i_mount = 0;
$i_addon = 0;
$i_container = 0;
while($data = $offer_list->fetch())
{
if($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'] == 'mount')
{
$offer_array['mount'][$i_mount]['id'] = $data['id'];
$offer_array['mount'][$i_mount]['container_id'] = $data['itemid1'];
$offer_array['mount'][$i_mount]['container_count'] = $data['count1'];
$offer_array['mount'][$i_mount]['item_id'] = $data['itemid1'];
$offer_array['mount'][$i_mount]['item_count'] = $data['count2'];
$offer_array['mount'][$i_mount]['points'] = $data['points'];
$offer_array['mount'][$i_mount]['description'] = $data['offer_description'];
$offer_array['mount'][$i_mount]['name'] = $data['offer_name'];
$i_mount++;
}
elseif($data['offer_type'] == 'addon')
{
$offer_array['addon'][$i_addon]['id'] = $data['id'];
$offer_array['addon'][$i_addon]['container_id'] = $data['itemid1'];
$offer_array['addon'][$i_addon]['container_count'] = $data['count1'];
$offer_array['addon'][$i_addon]['item_id'] = $data['itemid1'];
$offer_array['addon'][$i_addon]['item_count'] = $data['count2'];
$offer_array['addon'][$i_addon]['points'] = $data['points'];
$offer_array['addon'][$i_addon]['description'] = $data['offer_description'];
$offer_array['addon'][$i_addon]['name'] = $data['offer_name'];
$i_addon++;
}
elseif($data['offer_type'] == 'container')
{
$offer_array['container'][$i_container]['id'] = $data['id'];
$offer_array['container'][$i_container]['container_id'] = $data['itemid1'];
$offer_array['container'][$i_container]['container_count'] = $data['count1'];
$offer_array['container'][$i_container]['item_id'] = $data['itemid2'];
$offer_array['container'][$i_container]['item_count'] = $data['count2'];
$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++;
}
}
return $offer_array;
}
if(($action == '') or ($action == 'item') or ($action == 'mount') or ($action == 'addon') or ($action == 'container'))
{
unset($_SESSION['viewed_confirmation_page']);
$offer_list = getOfferArray();
 
if(empty($action))
{
if(count($offer_list['item']) > 0)
$action = 'item';
elseif(count($offer_list['mount']) > 0)
$action = 'mount';
elseif(count($offer_list['addon']) > 0)
$action = 'addon';
elseif(count($offer_list['container']) > 0)
$action = 'container';
}
 
function selectcolor($value)
{
if($GLOBALS['action'] == $value)
return '#505050; color: #FFFFFF';
else
return '#303030; color: #aaaaaa';
}
 
 $main_content .= '<table border="0" cellpadding="10" cellspacing="1" width="100%"><td width="8%" align="center" class="#5A2800"><b><h2>Welcome to Celtic Guild Shop</h2></b></td>';
 
  $main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%"><td width="8%" align="center" class="#303030"><b>Para receber os 15 points você precisa ter pelo menos 6 membros ativos em diferentes IPs e falar !guildpoints</b></td>';
}
 
//show list of items offers
if((count($offer_list['item']) > 0) and ($action == 'item'))
{
$main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="8%" align="center" class="white"><b>Points</b></td><td width="9%" align="center" class="white"><b>Picture</b></td><td width="350" align="left" class="white"><b>Description</b></td><td width="250" align="center" class="white"><b>Select product</b></td></tr>';
foreach($offer_list['item'] as $item)
{
if(!is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;
$main_content .= '<tr bgcolor="'.$bgcolor.'"><td align="center"><b>'.$item['points'].'</b></td><td align=center"><img src="' . $config['site]['item_images_url'] . $item['item_id'] . $config['site']['item_images_extension'] . '"></td><td><b>'.htmlspecialchars($item['name']).'</b> ('.$item['points'].' points)<br />'.htmlspecialchars($item['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" name="itemform_'.$item['id'].'"><input type=hidden" name="buy_id" value="'.$item['id].'"><div class="navibutton"><a href="" onClick="itemform_'.$item['id'].'.submit();return false;">BUY</a></div></form>';
}
$main_content .= '</td></tr>';
}
$main_content .= '</table>';
}
//show list of mount offers
if((count($offer_list['mount']) > 0) and ($action == 'mount'))
{
$main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="8%" align="center" class="white"><b>Points</b></td><td width="9%" align="center" class="white"><b>Picture</b></td><td width="350" align="left" class="white"><b>Description</b></td><td width="250" align="center" class="white"><b>Select product</b></td></tr>';
foreach($offer_list['mount'] as $mount)
{
if(!is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;
$main_content .= '<tr bgcolor="'.$bgcolor.'"><td align="center"><b>'.$mount['points'].'</b></td><td align=center"><img src="' . $config['site]['item_images_url'] . $mount['id'] . $config['site']['item_images_extension'] . '"></td><td><b>'.htmlspecialchars($mount['name']).'</b> ('.$mount['points'].' points)<br />'.htmlspecialchars($mount['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" name="itemform_'.$mount['id'].'"><input type=hidden" name="buy_id" value="'.$mount['id].'"><div class="navibutton"><a href="" onClick="itemform_'.$mount['id'].'.submit();return false;">BUY</a></div></form>';
}
$main_content .= '</td></tr>';
}
$main_content .= '</table>';
}
//show list of addon offers
if((count($offer_list['addon']) > 0) and ($action == 'addon'))
{
$main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="8%" align="center" class="white"><b>Points</b></td><td width="9%" align="center" class="white"><b>Picture</b></td><td width="350" align="left" class="white"><b>Description</b></td><td width="250" align="center" class="white"><b>Select product</b></td></tr>';
foreach($offer_list['addon'] as $addon)
{
if(!is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;
$main_content .= '<tr bgcolor="'.$bgcolor.'"><td align="center"><b>'.$addon['points'].'</b></td><td align=center"><img src="' . $config['site]['item_images_url'] . $addon['id'] . $config['site']['item_images_extension'] . '"></td><td><b>'.htmlspecialchars($addon['name']).'</b> ('.$addon['points'].' points)<br />'.htmlspecialchars($addon['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" name="itemform_'.$addon['id'].'"><input type=hidden" name="buy_id" value="'.$addon['id].'"><div class="navibutton"><a href="" onClick="itemform_'.$addon['id'].'.submit();return false;">BUY</a></div></form>';
}
$main_content .= '</td></tr>';
}
$main_content .= '</table>';
}
//show list of containers offers
if((count($offer_list['container']) > 0) and ($action == 'container'))
{
if(!is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;
$main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td width="8%" align="center" class="white"><b>Points</b></td><td width="9%" align="center" class="white"><b>Picture</b></td><td width="350" align="left" class="white"><b>Description</b></td><td width="250" align="center" class="white"><b>Select product</b></td></tr>';
foreach($offer_list['container'] as $container)
{
$main_content .= '<tr bgcolor="'.$bgcolor.'"><td align="center"><b>'.$container['points'].'</b></td><td align=center"><img src="' . $config['site]['item_images_url'] . $container['item_id'] . $config['site']['item_images_extension'] . '"></td><td><b>'.htmlspecialchars($container['name']).'</b> ('.$container['points'].' points)<br />'.htmlspecialchars($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" name="contform_'.$container['id'].'"><input type=hidden" name="buy_id" value="'.$container['id].'"><div class="navibutton"><a href="" onClick="contform_'.$container['id'].'.submit();return false;">BUY</a></div></form>';
}
$main_content .= '</td></tr>';
}
$main_content .= '</table>';
}
//Finish container
if((count($offer_list['item']) > 0) or (count($offer_list['mount']) > 0) or (count($offer_list['addon']) > 0) or (count($offer_list['container']) > 0))
{
$main_content .= '<table BORDER=0 CELLPaDDING="4" CELLSPaCING="1" style="width:100%;font-weight:bold;text-align:center;">
<tr style="background:#505050;">
<td colspan="3" style="height:px;"></td>
</tr>
</table>';
}
}
if($action == 'select_player')
{
unset($_SESSION['viewed_confirmation_page']);
if(!$logged) {
$errormessage .= 'Please login first.';
}
else
{
$buy_id = (int) $_REQUEST['buy_id'];
if(empty($buy_id))
{
$errormessage .= 'Please <a href="?subtopic=shopguild">select item</a> first.';
}
else
{
$buy_offer = getItemByID($buy_id);
if(isset($buy_offer['id'])) //item exist in database
{
if($user_guild_points >= $buy_offer['points'])
{
$main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%">
<tr bgcolor="'.$config['site']['vdarkborder'].'"><td colspan="2" class="white"><b>Selected Offer</b></td></tr>
<tr bgcolor="'.$config['site']['lightborder'].'"><td width=100"><b>Name:</b></td><td width="550">'.htmlspecialchars($buy_offer['name]).'</td></tr>
<tr bgcolor="'.$config['site']['darkborder'].'"><td width=100"><b>Description:</b></td><td width="550">'.htmlspecialchars($buy_offer['description]).'</td></tr>
</table><br />
<form action="?subtopic=shopguild&action=confirm_transaction" method="POST"><input type="hidden" name="buy_id" value="'.$buy_id.'">
<table border="0" cellpadding="4" cellspacing="1" width="100%">
<tr bgcolor="'.$config['site']['vdarkborder'].'"><td colspan="2" class="white"><b>Give item to player from your account</b></td></tr>
<tr bgcolor="'.$config['site']['lightborder'].'"><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)
{
foreach($players_from_logged_acc as $player)
{
$main_content .= '<option>'.htmlspecialchars($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="?subtopic=shopguild&action=confirm_transaction" method="POST"><input type="hidden" name="buy_id" value="'.$buy_id.'">
<table border="0" cellpadding="4" cellspacing="1" width="100%">
<tr bgcolor="'.$config['site']['vdarkborder'].'"><td colspan="2" class="white"><b>Give item to other player</b></td></tr>
<tr bgcolor="'.$config['site']['lightborder'].'"><td width="110"><b>To player:</b></td><td width="550"><input type="text" name="buy_name"> - name of player</td></tr>
<tr bgcolor="'.$config['site']['darkborder'].'"><td width="110"><b>From:</b></td><td width="550"><input type="text" name="buy_from">&nbsp;<input type="submit" value="Give"> - your nick, \'empty\' = Anonymous</td></tr>
</table><br />
</form>';
 
}
else
{
$errormessage .= 'For this item you need <b>'.$buy_offer['points'].'</b> points. You have only <b>'.$user_guild_points.'</b> guild points. Please <a href="?subtopic=shopguild">select other item</a> or buy guild points.';
}
}
else
{
$errormessage .= 'Offer with ID <b>'.$buy_id.'</b> doesn\'t exist. Please <a href="?subtopic=shopguild">select item</a> again.';
}
}
}
if(!empty($errormessage))
{
$main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4>
<TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Informations</B></TD></TR>
<TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.$errormessage.'</b></TD></TR>
</table>';
}
}
elseif($action == 'confirm_transaction')
{
if(!$logged)
{
$errormessage .= 'Please login first.';
}
else
{
$buy_id = (int) $_POST['buy_id'];
$buy_name = trim($_POST['buy_name']);
$buy_from = trim($_POST['buy_from']);
if(empty($buy_from))
{
$buy_from = 'Anonymous';
}
if(empty($buy_id))
{
$errormessage .= 'Please <a href="?subtopic=shopguild">select item</a> first.';
}
else
{
if(!check_name($buy_from))
{
$errormessage .= 'Invalid nick ("from player") format. Please <a href="?subtopic=shopguild&action=select_player&buy_id='.$buy_id.'">select other name</a> or contact with administrator.';
}
else
{
$buy_offer = getItemByID($buy_id);
if(isset($buy_offer['id'])) //item exist in database
{
if($user_guild_points >= $buy_offer['points'])
{
if(check_name($buy_name))
{
$buy_player = new 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'] == 'item')
{
$sql = 'INSERT INTO '.$SQL->tableName('z_ots_guildcomunication').' ('.$SQL->fieldName('id').','.$SQL->fieldName('name').','.$SQL->fieldName('type').','.$SQL->fieldName('action').','.$SQL->fieldName('param1').','.$SQL->fieldName('param2').','.$SQL->fieldName('param3').','.$SQL->fieldName('param4').','.$SQL->fieldName('param5').','.$SQL->fieldName('param6').','.$SQL->fieldName('param7').','.$SQL->fieldName('delete_it').') VALUES (NULL, '.$SQL->quote($buy_player->getName()).', '.$SQL->quote('login').', '.$SQL->quote('give_item').', '.$SQL->quote($buy_offer['item_id']).', '.$SQL->quote($buy_offer['item_count']).', '.$SQL->quote('').', '.$SQL->quote('').', '.$SQL->quote('item').', '.$SQL->quote($buy_offer['name']).', '.$SQL->quote($buy_offer['id']).', '.$SQL->quote(1).');';
$SQL->query($sql);
$save_transaction = 'INSERT INTO '.$SQL->tableName('z_shopguild_history_item').' ('.$SQL->fieldName('id').','.$SQL->fieldName('to_name').','.$SQL->fieldName('to_account').','.$SQL->fieldName('from_nick').','.$SQL->fieldName('from_account').','.$SQL->fieldName('price').','.$SQL->fieldName('offer_id').','.$SQL->fieldName('trans_state').','.$SQL->fieldName('trans_start').','.$SQL->fieldName('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']).', '.$SQL->quote('wait').', '.$SQL->quote(time()).', '.$SQL->quote(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 .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4>
<TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Item added!</B></TD></TR>
<TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.htmlspecialchars($buy_offer['name']).'</b> added to player <b>'.htmlspecialchars($buy_player->getName()).'</b> items (he will get this items after relog) for <b>'.$buy_offer['points'].' guild points</b> from your account.<br />Now you have <b>'.$user_guild_points.' guild points</b>.<br /><a href="?subtopic=shopguild">GO TO MAIN SHOP SITE</a></TD></TR>
</table>';
}
elseif($buy_offer['type'] == 'mount')
{
$sql = 'INSERT INTO '.$SQL->tableName('z_ots_guildcomunication').' ('.$SQL->fieldName('id').','.$SQL->fieldName('name').','.$SQL->fieldName('type').','.$SQL->fieldName('action').','.$SQL->fieldName('param1').','.$SQL->fieldName('param2').','.$SQL->fieldName('param3').','.$SQL->fieldName('param4').','.$SQL->fieldName('param5').','.$SQL->fieldName('param6').','.$SQL->fieldName('param7').','.$SQL->fieldName('delete_it').') VALUES (NULL, '.$SQL->quote($buy_player->getName()).', '.$SQL->quote('login').', '.$SQL->quote('give_item').', '.$SQL->quote($buy_offer['item_id']).', '.$SQL->quote($buy_offer['item_count']).', '.$SQL->quote('').', '.$SQL->quote('').', '.$SQL->quote('item').', '.$SQL->quote($buy_offer['name']).', '.$SQL->quote($buy_offer['id']).', '.$SQL->quote(1).');';
$SQL->query($sql);
$save_transaction = 'INSERT INTO '.$SQL->tableName('z_shopguild_history_item').' ('.$SQL->fieldName('id').','.$SQL->fieldName('to_name').','.$SQL->fieldName('to_account').','.$SQL->fieldName('from_nick').','.$SQL->fieldName('from_account').','.$SQL->fieldName('price').','.$SQL->fieldName('offer_id').','.$SQL->fieldName('trans_state').','.$SQL->fieldName('trans_start').','.$SQL->fieldName('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']).', '.$SQL->quote('wait').', '.$SQL->quote(time()).', '.$SQL->quote(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 .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4>
<TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Mount added!</B></TD></TR>
<TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.htmlspecialchars($buy_offer['name']).'</b> added to player <b>'.htmlspecialchars($buy_player->getName()).'</b> items (he will get this items after relog) for <b>'.$buy_offer['points'].' guild points</b> from your account.<br />Now you have <b>'.$user_guild_points.' guild points</b>.<br /><a href="?subtopic=shopguild">GO TO MAIN SHOP SITE</a></TD></TR>
</table>';
}
elseif($buy_offer['type'] == 'addon')
{
$sql = 'INSERT INTO '.$SQL->tableName('z_ots_guildcomunication').' ('.$SQL->fieldName('id').','.$SQL->fieldName('name').','.$SQL->fieldName('type').','.$SQL->fieldName('action').','.$SQL->fieldName('param1').','.$SQL->fieldName('param2').','.$SQL->fieldName('param3').','.$SQL->fieldName('param4').','.$SQL->fieldName('param5').','.$SQL->fieldName('param6').','.$SQL->fieldName('param7').','.$SQL->fieldName('delete_it').') VALUES (NULL, '.$SQL->quote($buy_player->getName()).', '.$SQL->quote('login').', '.$SQL->quote('give_item').', '.$SQL->quote($buy_offer['item_id']).', '.$SQL->quote($buy_offer['item_count']).', '.$SQL->quote('').', '.$SQL->quote('').', '.$SQL->quote('item').', '.$SQL->quote($buy_offer['name']).', '.$SQL->quote($buy_offer['id']).', '.$SQL->quote(1).');';
$SQL->query($sql);
$save_transaction = 'INSERT INTO '.$SQL->tableName('z_shopguild_history_item').' ('.$SQL->fieldName('id').','.$SQL->fieldName('to_name').','.$SQL->fieldName('to_account').','.$SQL->fieldName('from_nick').','.$SQL->fieldName('from_account').','.$SQL->fieldName('price').','.$SQL->fieldName('offer_id').','.$SQL->fieldName('trans_state').','.$SQL->fieldName('trans_start').','.$SQL->fieldName('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']).', '.$SQL->quote('wait').', '.$SQL->quote(time()).', '.$SQL->quote(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 .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4>
<TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Addon added!</B></TD></TR>
<TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.htmlspecialchars($buy_offer['name']).'</b> added to player <b>'.htmlspecialchars($buy_player->getName()).'</b> items (he will get this items after relog) for <b>'.$buy_offer['points'].' guild points</b> from your account.<br />Now you have <b>'.$user_guild_points.' guild points</b>.<br /><a href="?subtopic=shopguild">GO TO MAIN SHOP SITE</a></TD></TR>
</table>';
}
elseif($buy_offer['type'] == 'container')
{
$sql = 'INSERT INTO '.$SQL->tableName('z_ots_guildcomunication').' ('.$SQL->fieldName('id').','.$SQL->fieldName('name').','.$SQL->fieldName('type').','.$SQL->fieldName('action').','.$SQL->fieldName('param1').','.$SQL->fieldName('param2').','.$SQL->fieldName('param3').','.$SQL->fieldName('param4').','.$SQL->fieldName('param5').','.$SQL->fieldName('param6').','.$SQL->fieldName('param7').','.$SQL->fieldName('delete_it').') VALUES (NULL, '.$SQL->quote($buy_player->getName()).', '.$SQL->quote('login').', '.$SQL->quote('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']).', '.$SQL->quote('container').', '.$SQL->quote($buy_offer['name']).', '.$SQL->quote($buy_offer['id']).', '.$SQL->quote(1).');';
$SQL->query($sql);
$save_transaction = 'INSERT INTO '.$SQL->tableName('z_shopguild_history_item').' ('.$SQL->fieldName('id').','.$SQL->fieldName('to_name').','.$SQL->fieldName('to_account').','.$SQL->fieldName('from_nick').','.$SQL->fieldName('from_account').','.$SQL->fieldName('price').','.$SQL->fieldName('offer_id').','.$SQL->fieldName('trans_state').','.$SQL->fieldName('trans_start').','.$SQL->fieldName('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']).', '.$SQL->quote('wait').', '.$SQL->quote(time()).', '.$SQL->quote(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 .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4>
<TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Container of items added!</B></TD></TR>
<TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.htmlspecialchars($buy_offer['name']).'</b> added to player <b>'.htmlspecialchars($buy_player->getName()).'</b> items (he will get this container with items after relog) for <b>'.$buy_offer['points'].' guild points</b> from your account.<br />Now you have <b>'.$user_guild_points.' guild points</b>.<br /><a href="?subtopic=shopguild">GO TO MAIN SHOP SITE</a></TD></TR>
</table>';
}
}
else
{
$set_session = TRUE;
$_SESSION['viewed_confirmation_page'] = 'yes';
$main_content .= '<table border="0" cellpadding="4" cellspacing="1" width="100%">
<tr bgcolor="'.$config['site']['vdarkborder'].'"><td colspan="3" class="white"><b>Confirm Transaction</b></td></tr>
<tr bgcolor="'.$config['site']['lightborder'].'"><td width=100"><b>Name:</b></td><td width="550" colspan="2">'. htmlspecialchars($buy_offer['name]).'</td></tr>
<tr bgcolor="'.$config['site']['darkborder'].'"><td width=100"><b>Description:</b></td><td width="550" colspan="2">'. htmlspecialchars($buy_offer['description]).'</td></tr>
<tr bgcolor="'.$config['site']['lightborder'].'"><td width=100"><b>Cost:</b></td><td width="550" colspan="2"><b>'. htmlspecialchars($buy_offer['points]).' guild points</b> from your account</td></tr>
<tr bgcolor="'.$config['site']['darkborder'].'"><td width="100"><b>For Player:</b></td><td width="550" colspan="2"><font color="red">'.htmlspecialchars($buy_player->getName()).'</font></td></tr>
<tr bgcolor="'.$config['site']['lightborder'].'"><td width="100"><b>From:</b></td><td width="550" colspan="2"><font color="red">'.htmlspecialchars($buy_from).'</font></td></tr>
<tr bgcolor="'.$config['site']['darkborder'].'"><td colspan="3"></td></tr>
<tr bgcolor="'.$config['site']['darkborder'].'"><td width="100"><b>Transaction?</b></td><td width="275" align="left">
<form action="?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="'.htmlspecialchars($buy_from).'"><input type="hidden" name="buy_name" value="'.htmlspecialchars($buy_name).'"><input type="submit" value="Accept"></form></td>
<td align="right"><form action="?subtopic=shopguild" method="POST"><input type="submit" value="Cancel"></form></td></tr>
<tr bgcolor="'.$config['site']['darkborder'].'"><td colspan="3"></td></tr>
</table> 
';
}
}
else
{
$errormessage .= 'Player with name <b>'.htmlspecialchars($buy_name).'</b> doesn\'t exist. Please <a href="?subtopic=shopguild&action=select_player&buy_id='.$buy_id.'">select other name</a>.';
}
}
else
{
$errormessage .= 'Invalid name format. Please <a href="?subtopic=shopguild&action=select_player&buy_id='.$buy_id.'">select other name</a> or contact with administrator.';
}
}
else
{
$errormessage .= 'For this item you need <b>'.$buy_offer['points'].'</b> points. You have only <b>'.$user_guild_points.'</b> guild points. Please <a href="?subtopic=shopguild">select other item</a> or buy guild points.';
}
}
else
{
$errormessage .= 'Offer with ID <b>'.$buy_id.'</b> doesn\'t exist. Please <a href="?subtopic=shopguild">select item</a> again.';
}
}
}
}
if(!empty($errormessage))
{
$main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4>
<TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Informations</B></TD></TR>
<TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b>'.$errormessage.'</b></TD></TR>
</table>';
}
if(!$set_session)
{
unset($_SESSION['viewed_confirmation_page']);
}
}
        elseif($action == 'show_history') {
                if(!$logged) {
                        $main_content .= 'Please login first.';
                } else{
                        $items_history_received = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shop_history_item').' WHERE '.$SQL->fieldName('to_account').' = '.$SQL->quote($account_logged->getId()).' OR '.$SQL->fieldName('from_account').' = '.$SQL->quote($account_logged->getId()).';');
                        if(is_object($items_history_received)) {
                                foreach($items_history_received as $item_received) {
                                        if($account_logged->getId() == $item_received['to_account'])
                                                $char_color = 'green';
                                        else
                                                $char_color = 'red';
                                                $items_received_text .= '<tr bgcolor="#F1E0C6"><td><font color="'.$char_color.'">'.$item_received['to_name'].'</font></td><td>';
                                        if($account_logged->getId() == $item_received['from_account'])
                                                $items_received_text .= '<i>Your account</i>';
                                        else
                                                $items_received_text .= $item_received['from_nick'];
                                               
                                                $items_received_text .= '</td><td>'.$item_received['offer_id'].'</td><td>'.$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>';
                                }
                        }
                        $itemsguild_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($itemsguild_history_received)) {
                                foreach($itemsguild_history_received as $itemguild_received) {
                                        if($account_logged->getId() == $itemguild_received['to_account'])
                                                $char_color = 'green';
                                        else
                                                $char_color = 'red';
                                                $itemsguild_received_text .= '<tr bgcolor="#F1E0C6"><td><font color="'.$char_color.'">'.$itemguild_received['to_name'].'</font></td><td>';
                                        if($account_logged->getId() == $itemguild_received['from_account'])
                                                $itemsguild_received_text .= '<i>Your account</i>';
                                        else
                                                $itemsguild_received_text .= $itemguild_received['from_nick'];
                                               
                                                $itemsguild_received_text .= '</td><td>'.$itemguild_received['offer_id'].'</td><td>'.$itemguild_received['price'].' Points</td><td>'.date("j F Y, H:i:s", $itemguild_received['trans_start']).'</td>';
                                       
                                       
                                       
                                       
                                        if($itemguild_received['trans_real'] > 0)
                                                $itemsguild_received_text .= '<td>'.date("j F Y, H:i:s",$itemguild_received['trans_real']).'</td>';
                                        else
                                                $itemsguild_received_text .= '<td><b><font color="red">Not realized yet.</font></b></td>';
                                                $itemsguild_received_text .= '</tr>';
                                }
                        }
                        $paccs_history_received = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shop_history_pacc').' WHERE '.$SQL->fieldName('to_account').' = '.$SQL->quote($account_logged->getId()).' OR '.$SQL->fieldName('from_account').' = '.$SQL->quote($account_logged->getId()).';');
                        if(is_object($paccs_history_received)) {
                                foreach($paccs_history_received as $pacc_received) {
                                        if($account_logged->getId() == $pacc_received['to_account'])
                                                $char_color = 'green';
                                        else
                                                $char_color = 'red';
                                                $paccs_received_text .= '<tr bgcolor="#F1E0C6"><td><font color="'.$char_color.'">'.$pacc_received['to_name'].'</font></td><td>';
                                        if($account_logged->getId() == $pacc_received['from_account'])
                                                $paccs_received_text .= '<i>Your account</i>';
                                        else
                                                $paccs_received_text .= $pacc_received['from_nick'];
                                                $paccs_received_text .= '</td><td>'.$pacc_received['pacc_days'].' days</td><td>'.$pacc_received['price'].' Points</td><td>'.date("j F Y, H:i:s", $pacc_received['trans_real']).'</td></tr>';
                                }
                        }
                        $paccsguild_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($paccsguild_history_received)) {
                                foreach($paccsguild_history_received as $paccguild_received) {
                                        if($account_logged->getId() == $paccguild_received['to_account'])
                                                $char_color = 'green';
                                        else
                                                $char_color = 'red';
                                                $paccsguild_received_text .= '<tr bgcolor="#F1E0C6"><td><font color="'.$char_color.'">'.$paccguild_received['to_name'].'</font></td><td>';
                                        if($account_logged->getId() == $paccguild_received['from_account'])
                                                $paccsguild_received_text .= '<i>Your account</i>';
                                        else
                                                $paccsguild_received_text .= $paccguild_received['from_nick'];
                                                $paccsguild_received_text .= '</td><td>'.$paccguild_received['pacc_days'].' days</td><td>'.$paccguild_received['price'].' Points</td><td>'.date("j F Y, H:i:s", $paccguild_received['trans_real']).'</td></tr>';
                                }
                        }
                        $main_content .= '<center><h1>Transactions History</h1></center>';
                        if(!empty($items_received_text))
                                $main_content .= '<center><table BORDER=0 CELLPADDING=1 CELLSPACING=1 WIDTH=95%><tr width="100%" bgcolor="#505050"><td colspan="6"><font color="white" size="4"><b>&nbsp;ShopServer Item Transactions</b></font></td></tr><tr bgcolor="#D4C0A1"><td><b>To:</b></td><td><b>From:</b></td><td><b>Offer name</b></td><td><b>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($itemsguild_received_text))
                                $main_content .= '<center><table BORDER=0 CELLPADDING=1 CELLSPACING=1 WIDTH=95%><tr width="100%" bgcolor="#505050"><td colspan="6"><font color="white" size="4"><b>&nbsp;ShopGuild Item Transactions</b></font></td></tr><tr bgcolor="#D4C0A1"><td><b>To:</b></td><td><b>From:</b></td><td><b>Offer name</b></td><td><b>Cost</b></td><td><b>Bought on page</b></td><td><b>Received on '.$config['server']['serverName'].'</b></td></tr>'.$itemsguild_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;ShopServer VIP 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($paccsguild_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;ShopGuild VIP 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>'.$paccsguild_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(empty($paccsguild_received_text) && empty($itemsguild_received_text))
                                $main_content .= 'You did not buy/receive any items or PACC.';
}
}
$main_content .= '<br><TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4>
<TR><TD ALIGN=center><b><font color="green">You have guild points: </font></b>'.$user_guild_points.'</TD></TR>
</table>';

 
Rep+ por estar tentando ajudar, obrigado pela atenção :)

nbeTETb.png?1

 

Link para o post
Compartilhar em outros sites

Pelo que vi no arquivo.php tem essa tabela, se ao comprar um item no shop, for adicionado algo lá, está funcionando perfeitamente essa parte, o problema é o script para enviar ao player o item da tabela, qual a versao do tfs? E me responda se ele realmente ta adicionando algo na tabela z_ots_guildcomunication ao comprar.

                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites

Estou usando TFS 1.0, quando eu compro alguma coisa, realmente adiciona uma linha no "z_ots_guildcomunication" e no "z_shopguild_history_item"  

 

Da uma olhada no z_ots_guildcomunication:

3FNhsEr.png?1

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

nbeTETb.png?1

 

Link para o post
Compartilhar em outros sites

Em globalevents troque seu sistema de entrega por esse:
Xml:

<globalevent name="GuildShop" interval="30000" script="shopguild.lua"/>

shopguild.lua:
 

-- <globalevent name="GuildShop" interval="30000" script="shopguild.lua"/>

function onThink(interval, lastExecution)
	
	local queryShop = db.storeQuery('SELECT * FROM `z_ots_guildcomunication`;')
	if queryShop ~= false then
		repeat
			local id, player = result.getNumber(queryShop, 'id'), Player(result.getString(queryShop, 'name'))
			if player then
				local item_id, item_count = result.getNumber(queryShop, 'param1'), result.getNumber(queryShop, 'param2')
				local container_id, container_count = result.getNumber(queryShop, 'param3'), result.getNumber(queryShop, 'param4')
				local offer_type = result.getString(queryShop, 'param5')
				local item_name = result.getString(queryShop, 'param6')

				-- ITEM
				if offer_type == 'item' then
					player:getInbox():addItem(item_id, item_count, INDEX_WHEREEVER, FLAG_NOLIMIT)
					player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Voce recebeu >> '.. item_name ..' << do guild shop em seu depot.')
				
				-- CONTAINER
				elseif offer_type == 'container' then
					local container_id, container_count = result.getNumber(queryShop, 'param3'), result.getNumber(queryShop, 'param4')
					local i, new_container = 0, player:getInbox():addItem(container_id, 1, INDEX_WHEREEVER, FLAG_NOLIMIT)
					while i ~= container_count do
						new_container:addItem(item_id, item_count, INDEX_WHEREEVER, FLAG_NOLIMIT)
						i = i + 1
					end
				
					player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Voce recebeu >> '.. item_name ..' << do guild shop em seu depot.')
				
				-- ADDON
				elseif offer_type == 'addon' then
					player:addOutfitAddon(item_id, 3)
					player:addOutfitAddon(item_count, 3) 
					player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Voce recebeu >> '.. item_name ..'<< do guild shop.')
					
				-- MOUNT
				elseif offer_type == 'mount' then
					player:addMount(item_id)
					player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Voce recebeu >> '.. item_name ..' << do guild shop.')
				end

				db.asyncQuery('DELETE FROM `z_ots_guildcomunication` WHERE `id` = ' .. id)
				db.asyncQuery('UPDATE `z_shopguild_history_item` SET `trans_state` = \'realized\', `trans_real` = ' .. os.time() .. ' WHERE id = '..id..';')
			end
		
		until not result.next(queryShop)
		result.free(queryShop)
	end

	return true
end
                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites

Não funcionou... Está dando um erro na distro agora:

Awr1IYL.png?1

 

Não tenho muito conhecimento para resolver :(

Desculpe estar tomando seu tempo, mas obrigado por tentar me ajudar

nbeTETb.png?1

 

Link para o post
Compartilhar em outros sites

Tenta:
 

-- <globalevent name="GuildShop" interval="30000" script="shopguild.lua"/>

function onThink(interval, lastExecution)
	
	local queryShop = db.storeQuery('SELECT * FROM `z_ots_guildcomunication`;')
	if queryShop ~= false then
		repeat
			local id, player = tonumber(result.getString(queryShop, 'id')), Player(result.getString(queryShop, 'name'))
			if player then
				local item_id, item_count = tonumber(result.getString(queryShop, 'param1')), tonumber(result.getString(queryShop, 'param2'))
				local container_id, container_count = tonumber(result.getString(queryShop, 'param3')), tonumber(result.getString(queryShop, 'param4'))
				local offer_type = result.getString(queryShop, 'param5')
				local item_name = result.getString(queryShop, 'param6')

				-- ITEM
				if offer_type == 'item' then
					player:getInbox():addItem(item_id, item_count, INDEX_WHEREEVER, FLAG_NOLIMIT)
					player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Voce recebeu >> '.. item_name ..' << do guild shop em seu depot.')
				
				-- CONTAINER
				elseif offer_type == 'container' then
					local container_id, container_count = result.getNumber(queryShop, 'param3'), result.getNumber(queryShop, 'param4')
					local i, new_container = 0, player:getInbox():addItem(container_id, 1, INDEX_WHEREEVER, FLAG_NOLIMIT)
					while i ~= container_count do
						new_container:addItem(item_id, item_count, INDEX_WHEREEVER, FLAG_NOLIMIT)
						i = i + 1
					end
				
					player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Voce recebeu >> '.. item_name ..' << do guild shop em seu depot.')
				
				-- ADDON
				elseif offer_type == 'addon' then
					player:addOutfitAddon(item_id, 3)
					player:addOutfitAddon(item_count, 3) 
					player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Voce recebeu >> '.. item_name ..'<< do guild shop.')
					
				-- MOUNT
				elseif offer_type == 'mount' then
					player:addMount(item_id)
					player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Voce recebeu >> '.. item_name ..' << do guild shop.')
				end

				db.asyncQuery('DELETE FROM `z_ots_guildcomunication` WHERE `id` = ' .. id)
				db.asyncQuery('UPDATE `z_shopguild_history_item` SET `trans_state` = \'realized\', `trans_real` = ' .. os.time() .. ' WHERE id = '..id..';')
			end
		
		until not result.next(queryShop)
		result.free(queryShop)
	end

	return true
end

Se não funcionar, vá na lib, e procure por um arquivo que contém o nome database ou parecido com esse e poste aqui.

                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites

Não funcionou, agora ta dando esse erro:

 

Rj8Sm2e.jpg?1

 

 

E na minha pasta lib, isso é tudo o que tem la dentro:

 

hUTFaC5.jpg?1

 

Qual deles é? D:

nbeTETb.png?1

 

Link para o post
Compartilhar em outros sites

Não tem a lib... Essa vai ser minha última tentativa pois, não sei as funções certas de se lidar com query no tfs 1.0.

-- <globalevent name="GuildShop" interval="30000" script="others/shopguild.lua"/>

function onThink(interval, lastExecution)
	
	local queryShop = db.storeQuery('SELECT * FROM `z_ots_guildcomunication`;')
	if queryShop ~= false then
		repeat
			local id, player = result.getDataInt(queryShop, 'id'), Player(result.getDataString(queryShop, 'name'))
			if player then
				local item_id, item_count = result.getDataInt(queryShop, 'param1'), result.getDataInt(queryShop, 'param2')
				local container_id, container_count = result.getDataInt(queryShop, 'param3'), result.getDataInt(queryShop, 'param4')
				local offer_type = result.getDataString(queryShop, 'param5')
				local item_name = result.getDataString(queryShop, 'param6')

				-- ITEM
				if offer_type == 'item' then
					player:getInbox():addItem(item_id, item_count, INDEX_WHEREEVER, FLAG_NOLIMIT)
					player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Voce recebeu >> '.. item_name ..' << do guild shop em seu depot.')
				
				-- CONTAINER
				elseif offer_type == 'container' then
					local container_id, container_count = result.getDataInt(queryShop, 'param3'), result.getDataInt(queryShop, 'param4')
					local i, new_container = 0, player:getInbox():addItem(container_id, 1, INDEX_WHEREEVER, FLAG_NOLIMIT)
					while i ~= container_count do
						new_container:addItem(item_id, item_count, INDEX_WHEREEVER, FLAG_NOLIMIT)
						i = i + 1
					end
				
					player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Voce recebeu >> '.. item_name ..' << do guild shop em seu depot.')
				
				-- ADDON
				elseif offer_type == 'addon' then
					player:addOutfitAddon(item_id, 3)
					player:addOutfitAddon(item_count, 3) 
					player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Voce recebeu >> '.. item_name ..'<< do guild shop.')
					
				-- MOUNT
				elseif offer_type == 'mount' then
					player:addMount(item_id)
					player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Voce recebeu >> '.. item_name ..' << do guild shop.')
				end

				db.asyncQuery('DELETE FROM `z_ots_guildcomunication` WHERE `id` = ' .. id)
				db.asyncQuery('UPDATE `z_shopguild_history_item` SET `trans_state` = \'realized\', `trans_real` = ' .. os.time() .. ' WHERE id = '..id..';')
			end
		
		until not result.next(queryShop)
		result.free(queryShop)
	end

	return true
end
                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites
  • Solução

Consegui chegar a uma solução: copiei o shop.lua (globalevents do shopsystem) e adaptei as querys para o guild shop.

 

Segue o shopguild.lua:

-- ### CONFIG ###
-- message send to player by script "type" (types you can check in "global.lua")
SHOP_MSG_TYPE = 18
-- time (in seconds) between connections to SQL database by shop script
SQL_interval = 30
-- ### END OF CONFIG ###
function onThink(interval, lastExecution)
    local result_plr = db.storeQuery("SELECT * FROM z_ots_guildcomunication")
    if(result_plr ~= false) then
        repeat
            local id = tonumber(result.getDataInt(result_plr, "id"))
            local action = tostring(result.getDataString(result_plr, "action"))
            local delete = tonumber(result.getDataInt(result_plr, "delete_it"))
            local cid = getPlayerByName(tostring(result.getDataString(result_plr, "name")))
            if(cid) then
                local itemtogive_id = tonumber(result.getDataInt(result_plr, "param1"))
                local itemtogive_count = tonumber(result.getDataInt(result_plr, "param2"))
                local container_id = tonumber(result.getDataInt(result_plr, "param3"))
                local container_count = tonumber(result.getDataInt(result_plr, "param4"))
                local add_item_type = tostring(result.getDataString(result_plr, "param5"))
                local add_item_name = tostring(result.getDataString(result_plr, "param6"))
                local storage = tostring(result.getDataString(result_plr, "param7"))
                local received_item = 0
                local full_weight = 0
                if(add_item_type == 'container') then
                    container_weight = getItemWeight(container_id, 1)
                    if(isItemRune(itemtogive_id)) then
                        items_weight = container_count * getItemWeight(itemtogive_id, 1)
                    else
                        items_weight = container_count * getItemWeight(itemtogive_id, itemtogive_count)
                    end
                    full_weight = items_weight + container_weight
                else
                    full_weight = getItemWeight(itemtogive_id, itemtogive_count)
                    if(isItemRune(itemtogive_id)) then
                        full_weight = getItemWeight(itemtogive_id, 1)
                    else
                        full_weight = getItemWeight(itemtogive_id, itemtogive_count)
                    end
                end
                local free_cap = getPlayerFreeCap(cid)
                if(full_weight <= free_cap) then
                    if(add_item_type == 'container') then
                        local new_container = doCreateItemEx(container_id, 1)
                        local iter = 0
                        while(iter ~= container_count) do
                            doAddContainerItem(new_container, itemtogive_id, itemtogive_count)
                            iter = iter + 1
                        end
                        received_item = doPlayerAddItemEx(cid, new_container)
                    else
                        local new_item = doCreateItemEx(itemtogive_id, itemtogive_count)
                        received_item = doPlayerAddItemEx(cid, new_item)
                    end
                    if(type(received_item) == "number" and received_item == RETURNVALUE_NOERROR) then
                        doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received '.. add_item_name ..' from Celtic Guild Shop.')
setPlayerStorageValue(cid,storage+555884621212,1)
                        db.query("DELETE FROM `z_ots_guildcomunication` WHERE `id` = " .. id .. ";")
                        db.query("UPDATE `z_shopguild_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";")
                    else
                        doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, ' '.. add_item_name ..' from Celtic Guild Shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. SQL_interval ..' seconds to get it.')
                    end
                else
                    doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, ' '.. add_item_name ..' Celtic Guild Shop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot and wait about '.. SQL_interval ..' seconds to get it.')
                end
            end
        until not result.next(result_plr)
        result.free(result_plr)
    end
    return true
end

 

 

Realmente obrigado pelo tempo dedicado a esse problema Snowsz, vou te reputar sempre que possível, você é foda!  ^^

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

nbeTETb.png?1

 

Link para o post
Compartilhar em outros sites
  • 3 months later...

estou msm problema 

mas nao testei do jeito que realmente pede 7 char on

 

Minimo de Players On-line: 7 On-line
IPs Diferentes: Todos com ips diferentes

 

nao testei so no god compro desconta os pontos e pede pra desloga e loga nao pega

Link para o post
Compartilhar em outros sites
  • 2 years later...
Em 28/09/2015 em 21:52, VitorNM disse:

Consegui chegar a uma solução: copiei o shop.lua (globalevents do shopsystem) e adaptei as querys para o guild shop.

 

Segue o shopguild.lua:

 

 

Conteúdo Oculto

 

 

 

Realmente obrigado pelo tempo dedicado a esse problema Snowsz, vou te reputar sempre que possível, você é foda!  ^^

 

onde vc colocou isso?

Link para o post
Compartilhar em outros sites

Participe da conversa

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

Visitante
Responder

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

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

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

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

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo