Ir para conteúdo
  • Cadastre-se

Sistema Para ir itens direto ao player


Posts Recomendados

Boa Tarde Galera do tibiaKing ,

tenho um pedido , estou montando o site para meu server : Gesior 0.3.8 serve 8.60.

só que quando o player compra o item no site ele não vai para o player nem para lugar algum , alguém ai tem como me ajudar ! Vlw

 

REP +++

Link para o post
Compartilhar em outros sites

O tópico foi movido para a área correta, preste mais atenção da próxima vez!

Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680

Este tópico foi movido:

De: "OTServScriptingSistemas e MODs"

Para: "OTServSuporte OTServ"

"A alma permanece em suas criações" V89E5aN.png


142c9d3439.jpg
(Não dou suporte por mensagem privada.)

Link para o post
Compartilhar em outros sites

vá na pasta globalevents/script

e crie um arquivo chamado shop.lua e cole o codigo abaixo

 

-- ### 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)
                        doItemSetAttribute(new_container, "description", 'Comprado por: ' .. getCreatureName(cid) .. ' [iD:' .. id .. '].')
                        local iter = 0
                        while iter ~= container_count do
                            local new_item = doCreateItemEx(itemtogive_id, itemtogive_count)
                            doItemSetAttribute(new_item, "description", 'Comprado por: ' .. getCreatureName(cid) .. ' [iD:' .. id .. '].')
                            doAddContainerItemEx(new_container, new_item)
                            iter = iter + 1
                        end
                        received_item = doPlayerAddItemEx(cid, new_container)
                    else
                        local new_item = doCreateItemEx(itemtogive_id, itemtogive_count)
                        doItemSetAttribute(new_item, "description", 'Comprado por: ' .. getCreatureName(cid) .. ' [iD:' .. id .. '].')
                        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.')
                        doPlayerSave(cid)
                        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

 

depois abra o globalevents.xml e adicione isso

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

 

tente e me diz se dá algum erro.

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites

mude o interval de 30 para 30000

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites

Mude para 3000, não lembro muito bem a configuração de tempo no TFS 0.4 kkk

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites

3000 equivale a 30 segundos.
como 30 equivale a 3milesconds, o "server" não consegue processar o tanto de informação e "buga", fazendo que dê muitos itens.

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites

Use minha pagina(shopsystem,php) e teste.
OBS: use interval 30, no script e na tag(xml)

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />


<?PHP
//  ALTER TABLE `z_shop_history_item` CHANGE `offer_id` `offer_id` VARCHAR( 255 ) NOT NULL;
// UPDATE `z_shop_history_item`, `z_shop_offer` SET `z_shop_history_item`.`offer_id` = `z_shop_offer`.`offer_name` WHERE `z_shop_history_item`.`offer_id` = `z_shop_offer`.`id`;
if($config['site']['shop_system'] == 1) {
if($logged)
  $user_premium_points = $account_logged->getCustomField('premium_points');
else
  $user_premium_points = 'Login first';
function getItemByID($id)
{
  $id = (int) $id;
  $SQL = $GLOBALS['SQL'];
  $data = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shop_offer').' WHERE '.$SQL->fieldName('id').' = '.$SQL->quote($id).';')->fetch();
  if ($data['offer_type'] == 'pacc')
  {
        $offer['id'] = $data['id'];
        $offer['type'] = $data['offer_type'];
        $offer['days'] = $data['count1'];
        $offer['points'] = $data['points'];
        $offer['description'] = $data['offer_description'];
        $offer['name'] = $data['offer_name'];
  }
  elseif ($data['offer_type'] == 'item')
  {
        $offer['id'] = $data['id'];
        $offer['type'] = $data['offer_type'];
        $offer['item_id'] = $data['itemid1'];
        $offer['item_count'] = $data['count1'];
        $offer['points'] = $data['points'];
        $offer['description'] = $data['offer_description'];
        $offer['name'] = $data['offer_name'];
  }
  elseif ($data['offer_type'] == 'vipdays')
  {
        $offer['id'] = $data['id'];
        $offer['type'] = $data['offer_type'];
        $offer['days'] = $data['count1'];
        $offer['points'] = $data['points'];
        $offer['description'] = $data['offer_description'];
        $offer['name'] = $data['offer_name'];
  }
  elseif ($data['offer_type'] == 'itemvip')
  {
        $offer['id'] = $data['id'];
        $offer['type'] = $data['offer_type'];
        $offer['item_id'] = $data['itemid1'];
        $offer['item_count'] = $data['count1'];
        $offer['points'] = $data['points'];
        $offer['description'] = $data['offer_description'];
        $offer['name'] = $data['offer_name'];
  }
  elseif ($data['offer_type'] == 'container')
  {
        $offer['id'] = $data['id'];
        $offer['type'] = $data['offer_type'];
        $offer['container_id'] = $data['itemid2'];
        $offer['container_count'] = $data['count2'];
        $offer['item_id'] = $data['itemid1'];
        $offer['item_count'] = $data['count1'];
        $offer['points'] = $data['points'];
        $offer['description'] = $data['offer_description'];
        $offer['name'] = $data['offer_name'];
  }
  elseif ($data['offer_type'] == 'unban')
  {
        $offer['id'] = $data['id'];
        $offer['type'] = $data['offer_type'];
        $offer['points'] = $data['points'];
        $offer['description'] = $data['offer_description'];
        $offer['name'] = $data['offer_name'];
  }
  elseif ($data['offer_type'] == 'redskull')
  {
        $offer['id'] = $data['id'];
        $offer['type'] = $data['offer_type'];
        $offer['points'] = $data['points'];
        $offer['description'] = $data['offer_description'];
        $offer['name'] = $data['offer_name'];
  }
  elseif ($data['offer_type'] == 'itemlogout')
  {
        $offer['id'] = $data['id'];
        $offer['type'] = $data['offer_type'];
        $offer['points'] = $data['points'];
        $offer['description'] = $data['offer_description'];
        $offer['pid'] = $data['pid'];
        $offer['count1'] = $data['count1'];
        $offer['item_id'] = $data['itemid1'];
        $offer['free_cap'] = $data['free_cap'];
  }
  elseif ($data['offer_type'] == 'changename')
  {
        $offer['id'] = $data['id'];
        $offer['type'] = $data['offer_type'];
        $offer['points'] = $data['points'];
        $offer['description'] = $data['offer_description'];
        $offer['name'] = $data['offer_name'];
  }
  return $offer;
}
function getOfferArray()
{
  $offer_list = $GLOBALS['SQL']->query('SELECT * FROM '.$GLOBALS['SQL']->tableName('z_shop_offer').';');
  $i_pacc = 0;
  $i_item = 0;
  $i_vipdays = 0;
  $i_itemvip = 0;
  $i_container = 0;
  $i_unban = 0;
  $i_redskull = 0;
  $i_itemlogout = 0;
  $i_changename = 0;
  while($data = $offer_list->fetch()) {
        if ($data['offer_type'] == 'pacc')
        {
          $offer_array['pacc'][$i_pacc]['id'] = $data['id'];
          $offer_array['pacc'][$i_pacc]['days'] = $data['count1'];
          $offer_array['pacc'][$i_pacc]['points'] = $data['points'];
          $offer_array['pacc'][$i_pacc]['description'] = $data['offer_description'];
          $offer_array['pacc'][$i_pacc]['name'] = $data['offer_name'];
          $i_pacc++;
        }
        elseif ($data['offer_type'] == 'item')
        {
          $offer_array['item'][$i_item]['id'] = $data['id'];
          $offer_array['item'][$i_item]['item_id'] = $data['itemid1'];
          $offer_array['item'][$i_item]['item_count'] = $data['count1'];
          $offer_array['item'][$i_item]['points'] = $data['points'];
          $offer_array['item'][$i_item]['description'] = $data['offer_description'];
          $offer_array['item'][$i_item]['name'] = $data['offer_name'];
          $i_item++;
        }
        elseif ($data['offer_type'] == 'vipdays')
        {
          $offer_array['vipdays'][$i_vipdays]['id'] = $data['id'];
          $offer_array['vipdays'][$i_vipdays]['days'] = $data['count1'];
          $offer_array['vipdays'][$i_vipdays]['points'] = $data['points'];
          $offer_array['vipdays'][$i_vipdays]['description'] = $data['offer_description'];
          $offer_array['vipdays'][$i_vipdays]['name'] = $data['offer_name'];
          $i_vipdays++;
        }
        elseif ($data['offer_type'] == 'itemvip')
        {
          $offer_array['itemvip'][$i_itemvip]['id'] = $data['id'];
          $offer_array['itemvip'][$i_itemvip]['item_id'] = $data['itemid1'];
          $offer_array['itemvip'][$i_itemvip]['item_count'] = $data['count1'];
          $offer_array['itemvip'][$i_itemvip]['points'] = $data['points'];
          $offer_array['itemvip'][$i_itemvip]['description'] = $data['offer_description'];
          $offer_array['itemvip'][$i_itemvip]['name'] = $data['offer_name'];
          $i_itemvip++;
        }
        elseif ($data['offer_type'] == 'container')
        {
          $offer_array['container'][$i_container]['id'] = $data['id'];
          $offer_array['container'][$i_container]['container_id'] = $data['itemid2'];
          $offer_array['container'][$i_container]['container_count'] = $data['count2'];
          $offer_array['container'][$i_container]['item_id'] = $data['itemid1'];
          $offer_array['container'][$i_container]['item_count'] = $data['count1'];
          $offer_array['container'][$i_container]['points'] = $data['points'];
          $offer_array['container'][$i_container]['description'] = $data['offer_description'];
          $offer_array['container'][$i_container]['name'] = $data['offer_name'];
          $i_container++;
        }
        elseif ($data['offer_type'] == 'unban')
        {
          $offer_array['unban'][$i_unban]['id'] = $data['id'];
          $offer_array['unban'][$i_unban]['points'] = $data['points'];
          $offer_array['unban'][$i_unban]['description'] = $data['offer_description'];
          $offer_array['unban'][$i_unban]['name'] = $data['offer_name'];
          $i_unban++;
        }
        elseif ($data['offer_type'] == 'redskull')
        {
          $offer_array['redskull'][$i_redskull]['id'] = $data['id'];
          $offer_array['redskull'][$i_redskull]['points'] = $data['points'];
          $offer_array['redskull'][$i_redskull]['description'] = $data['offer_description'];
          $offer_array['redskull'][$i_redskull]['name'] = $data['offer_name'];
          $i_redskull++;
        }
        elseif ($data['offer_type'] == 'itemlogout')
        {
          $offer_array['itemlogout'][$i_itemlogout]['id'] = $data['id'];
          $offer_array['itemlogout'][$i_itemlogout]['points'] = $data['points'];
          $offer_array['itemlogout'][$i_itemlogout]['description'] = $data['offer_description'];
          $offer_array['itemlogout'][$i_itemlogout]['name'] = $data['offer_name'];
          $offer_array['itemlogout'][$i_itemlogout]['count1'] = $data['count1'];
          $offer_array['itemlogout'][$i_itemlogout]['pid'] = $data['pid'];
          $offer_array['itemlogout'][$i_itemlogout]['item_id'] = $data['itemid1'];
          $offer_array['itemlogout'][$i_itemlogout]['free_cap'] = $data['free_cap'];
          $i_itemlogout++;
        }
        elseif ($data['offer_type'] == 'changename')
        {
          $offer_array['changename'][$i_changename]['id'] = $data['id'];
          $offer_array['changename'][$i_changename]['points'] = $data['points'];
          $offer_array['changename'][$i_changename]['description'] = $data['offer_description'];
          $offer_array['changename'][$i_changename]['name'] = $data['offer_name'];
          $i_changename++;
        }
  }
  return $offer_array;
}
if($action == '') {
  unset($_SESSION['viewed_confirmation_page']);
  $main_content .= '<h2><center>Bem Vindo ao '.$config['server']['serverName'].' Shop.</center></h2><h2><center><a href="index.php?subtopic=donate">Obtenha seus pontos.</a></center></h2>';
  $offer_list = getOfferArray();
   //show list of vipdays offers
        if(count($offer_list['vipdays']) > 0) {
        $main_content .= '<center><table border="0" cellpadding="1" cellspacing="1" width="650"><tr width="650" bgcolor="#505050"><td colspan="3"><font color="white" size="4"><b>&nbsp;VIP Days</b></font></td></tr><tr bgcolor="#D4C0A1"><td width="50" align="center"><b>Imagem</b></td><td width="350" align="left"><b>Descrição</b></td><td width="250" align="center"><b>Select product</b></td></tr>';
         foreach($offer_list['vipdays'] as $vipdays) {
          $main_content .= '<tr bgcolor="#F1E0C6"><td align="center">'.$vipdays['days'].'</td><td><b>'.$vipdays['name'].'</b> ('.$vipdays['points'].' points)<br />'.$vipdays['description'].'</td><td align="center">';
          if(!$logged) $main_content .= '<b>Login to buy</b>'; else
          $main_content .= '<form action="index.php?subtopic=shopsystem&action=select_player" method=POST><input type="hidden" name="buy_id" value="'.$vipdays['id'].'"><input type=submit" value="Compre '.$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>Imagem</b></td><td width="350" align="left"><b>Descrição</b></td><td width="250" align="center"><b>Select product</b></td></tr>';
         foreach($offer_list['itemvip'] as $itemvip) {
          $main_content .= '<tr bgcolor="#F1E0C6"><td align="center"><img src="item_images/'.$itemvip['id'].'.gif"></td><td><b>'.$itemvip['name'].'</b> ('.$itemvip['points'].' points)<br />'.$itemvip['description'].'</td><td align="center">';
          if(!$logged) $main_content .= '<b>Login to buy</b>'; else
          $main_content .= '<form action="index.php?subtopic=shopsystem&action=select_player" method=POST><input type="hidden" name="buy_id" value="'.$itemvip['id'].'"><input type=submit" value="Compre '.$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>Imagem</b></td><td width="350" align="left"><b>Descrição</b></td><td width="250" align="center"><b>Select product</b></td></tr>';
        if(count($offer_list['item']) > 0) {
         foreach($offer_list['item'] as $item) {
          $main_content .= '<tr bgcolor="#F1E0C6"><td align="center"><img src="item_images/'.$item['id'].'.gif"></td><td><b>'.$item['name'].'</b> ('.$item['points'].' points)<br />'.$item['description'].'</td><td align="center">';
          if(!$logged) $main_content .= '<b>Login to buy</b>'; else
          $main_content .= '<form action="index.php?subtopic=shopsystem&action=select_player" method=POST><input type="hidden" name="buy_id" value="'.$item['id'].'"><input type=submit" value="Compre '.$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>Imagem</b></td><td width="350" align="left"><b>Descrição</b></td><td width="250" align="center"><b>Select product</b></td></tr>';
         foreach($offer_list['container'] as $container) {
          $main_content .= '<tr bgcolor="#F1E0C6"><td align="center"><img src="item_images/'.$container['id'].'.gif"></td><td><b>'.$container['name'].'</b> ('.$container['points'].' points)<br />'.$container['description'].'</td><td align="center">';
          if(!$logged) $main_content .= '<b>Login to buy</b>'; else
          $main_content .= '<form action="?subtopic=shopsystem&action=select_player" method=POST><input type="hidden" name="buy_id" value="'.$container['id'].'"><input type=submit" value="Compre '.$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>Imagem</b></font></td><td width="350" align="left"><b>Descrição</b></font></td><td width="250" align="center"><b>Select product</b></font></td></tr>';
         foreach($offer_list['itemlogout'] as $itemlogout) {
          $main_content .= '<tr bgcolor="#F1E0C6"><td align="center"><img src="item_images/'.$itemlogout['id'].'.gif"></td><td><b>'.$itemlogout['name'].'</b> ('.$itemlogout['points'].' points)<br />'.$itemlogout['description'].'</td><td align="center">';
          if(!$logged) $main_content .= '<b>Login to buy</b>'; else
          $main_content .= '<form action="index.php?subtopic=shopsystem&action=select_player" method=POST><input type="hidden" name="buy_id" value="'.$itemlogout['id'].'"><input type=submit" value="Compre '.$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>Descrição</b></td><td width="250" align="center"><b>Select product</b></td></tr>';
        //Pacc
        if(count($offer_list['pacc']) > 0)
         foreach($offer_list['pacc'] as $pacc) {
          $main_content .= '<tr bgcolor="#F1E0C6"><td align="center">'.$pacc['days'].'</td><td><b>'.$pacc['name'].'</b> ('.$pacc['points'].' points)<br />'.$pacc['description'].'</td><td align="center">';
          if(!$logged) $main_content .= '<b>Login to buy</b>'; else
          $main_content .= '<form action="index.php?subtopic=shopsystem&action=select_player" method=POST><input type="hidden" name="buy_id" value="'.$pacc['id'].'"><input type=submit" value="Compre '.$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"><img src="/images/name.gif"></img></td><td><b>'.$changename['name'].'</b> ('.$changename['points'].' points)<br />'.$changename['description'].'</td><td align="center">';
          if(!$logged) $main_content .= '<b>Login to buy</b>'; else
          $main_content .= '<form action="index.php?subtopic=shopsystem&action=select_player" method=POST><input type="hidden" name="buy_id" value="'.$changename['id'].'"><input type=submit" value="Compre '.$changename['name].'"><br><b>for '.$changename['points'].' points</b></form>';
         }
        //Remove Red Skull
        if(count($offer_list['redskull']) > 0)
         foreach($offer_list['redskull'] as $redskull) {
          $main_content .= '<tr bgcolor="#F1E0C6"><td align="center"><img src="item_images/'.$redskull['id'].'.gif"></td><td><b>'.$redskull['name'].'</b> ('.$redskull['points'].' points)<br />'.$redskull['description'].'</td><td align="center">';
          if(!$logged) $main_content .= '<b>Login to buy</b>'; else
          $main_content .= '<form action="index.php?subtopic=shopsystem&action=select_player" method=POST><input type="hidden" name="buy_id" value="'.$redskull['id'].'"><input type=submit" value="Compre '.$redskull['name].'"><br><b>for '.$redskull['points'].' points</b></form>';
          $main_content .= '</td></tr>';
         }
        //Unban
        if(count($offer_list['unban']) > 0)
         foreach($offer_list['unban'] as $unban){
          $main_content .= '<tr bgcolor="#F1E0C6"><td align="center">Unban</td><td><b>'.$unban['name'].'</b> ('.$unban['points'].' points)<br />'.$unban['description'].'</td><td align="center">';
          if(!$logged) $main_content .= '<b>Login to buy</b>'; else
          $main_content .= '<form action="index.php?subtopic=shopsystem&action=select_player" method=POST><input type="hidden" name="buy_id" value="'.$unban['id'].'"><input type=submit" value="Compre '.$unban['name].'"><br><b>for '.$unban['points'].' points</b></form>';
          $main_content .= '</td></tr>';
         }
         $main_content .= '</table>';
}
elseif($action == 'select_player') {
  unset($_SESSION['viewed_confirmation_page']);
  if(!$logged) {
   $main_content .= 'Please login first.';
  } else {
   $buy_id = (int) $_REQUEST['buy_id'];
   if(empty($buy_id)) {
        $main_content .= 'Please <a href="index.php?subtopic=shopsystem">select item</a> first.';
   } else {
        $buy_offer = getItemByID($buy_id);
        if(isset($buy_offer['id'])) {  //item exist in database
         if($buy_offer['type'] != 'changename') {
          if($user_premium_points >= $buy_offer['points']) {
           $main_content .= '<center><h2>Escolha o Char</h2><table border="0" cellpadding="1" cellspacing="1" width="650">
                <tr bgcolor="#505050"><td colspan="2"><font color="white" size="4"><b>Item Selecionado</b></font></td></tr>
                <tr bgcolor="#F1E0C6"><td width="100"><b>Name:</b></td><td width="550">'.$buy_offer['name'].'</td></tr>
                <tr bgcolor="#D4C0A1"><td width="100"><b>Description:</b></td><td width="550">'.$buy_offer['description'].'</td></tr>
                </table><br /><form action="index.php?subtopic=shopsystem&action=confirm_transaction" method=POST><input type="hidden" name="buy_id" value="'.$buy_id.'">
                <table border="0" cellpadding="1" cellspacing="1" width="650">
                <tr bgcolor="#505050"><td colspan="2"><font color="white" size="4"><b>Receber o item em um char de sua propria conta</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="OK"></td></tr></table>
                </form><br /><form action="index.php?subtopic=shopsystem&action=confirm_transaction" method=POST><input type="hidden" name="buy_id" value="'.$buy_id.'">
                <table border="0" cellpadding="1" cellspacing="1" width="650">
                <tr bgcolor="#505050"><td colspan="2"><font color="white" size="4"><b>Presentear o Item para um Amigo</b></font></td></tr>
                <tr bgcolor="#D4C0A1"><td width="110"><b>Para o Player:</b></td><td width="550"><input type="text" name="buy_name"> - Char do amigo que ira receber o item</td></tr>
                <tr bgcolor="#F1E0C6"><td width="110"><b>De:</b></td><td width="550"><input type="text" name="buy_from">&nbsp;<input type="submit" value="Presentear"> - Nome do seu Char, \'Em Branco\' = Anonimo</td></tr>
                </table><br /></form>';
          } else {
           $main_content .= 'For this item you need <b>'.$buy_offer['points'].'</b> points.<br>You have only <b>'.$user_premium_points.'</b> premium points. Please <a href="index.php?subtopic=shopsystem">select other item</a> or buy premium points.';
          }
         } else {
         $main_content .= '<center><h2>Change Name</h2><form action="index.php?subtopic=shopsystem&action=confirm_transaction" method=POST><input type="hidden" name="buy_id" value="'.$buy_id.'">
          <table border="0" cellpadding="1" cellspacing="1" width="650"><tr bgcolor="#505050"><td colspan="2"><font color="white" size="4"><b>Change Name:</b></font></td></tr>
          <tr bgcolor="#D4C0A1"><td width="110"><b>Name:</b></td><td width="550"><select name="buy_name">';
         $players_from_logged_acc = $account_logged->getPlayersList();
          if(count($players_from_logged_acc) > 0) {
           $players_from_logged_acc->orderBy('name');
           foreach($players_from_logged_acc as $player) {
                $main_content .= '<option>'.$player->getName().'</option>';
           }
          } else {
           $main_content .= 'You don\'t have any character on your account.';
          }
          $main_content .= '</select></td></tr><tr bgcolor="#F1E0C6"><td width="110"><b>New name:</b></td><td width="550"><input type="text" name="buy_from">&nbsp;<input type="submit" value="Change Name"></td></tr></table><br /></form>';
         }
        } else {
                          $main_content .= 'Offer with ID <b>'.$buy_id.'</b> doesn\'t exist. Please <a href="index.php?subtopic=shopsystem">select item</a> again.';
        }
   }
  }
}
elseif($action == 'confirm_transaction') {
  if(!$logged) {
   $main_content .= 'Please login first.';
  } else {
   $buy_id = (int) $_POST['buy_id'];
   $buy_name = stripslashes(urldecode($_POST['buy_name']));
   $buy_from = stripslashes(urldecode($_POST['buy_from']));
   if(empty($buy_id)) {
        $main_content .= 'Please <a href="index.php?subtopic=shopsystem">select item</a> first.';
   } else {
        if($buy_offer['type'] == 'changename'){
         if(!check_name_new_char($buy_from)) {
          $main_content .= 'Invalid name format of new name.';
         }
        } else {
         $buy_offer = getItemByID($buy_id);
         $check_name_in_database = $ots->createObject('Player');
         $check_name_in_database->find($buy_from);
         if($buy_offer['type'] == 'changename'){
          if(!$check_name_in_database->isLoaded()) {
          }
         }
         if(isset($buy_offer['id'])) {  //item exist in database
          if($user_premium_points >= $buy_offer['points']) {
           if(check_name($buy_name)) {
                $buy_player = new OTS_Player();
                $buy_player->find($buy_name);
                if($buy_player->isLoaded()) {
                 $buy_player_account = $buy_player->getAccount();
                 if($_SESSION['viewed_confirmation_page'] == 'yes' && $_POST['buy_confirmed'] == 'yes') {
                  if($buy_offer['type'] == 'pacc') {
                   $player_premdays = $buy_player_account->getCustomField('premdays');
                   $player_lastlogin = $buy_player_account->getCustomField('lastday');
                   $save_transaction = 'INSERT INTO '.$SQL->tableName('z_shop_history_pacc').' (id, to_name, to_account, from_nick, from_account, price, pacc_days, trans_state, trans_start, trans_real) VALUES (NULL, '.$SQL->quote($buy_player->getName()).', '.$SQL->quote($buy_player_account->getId()).', '.$SQL->quote($buy_from).',  '.$SQL->quote($account_logged->getId()).', '.$SQL->quote($buy_offer['points']).', '.$SQL->quote($buy_offer['days']).', \'realized\', '.$SQL->quote(time()).', '.$SQL->quote(time()).');';
                   $SQL->query($save_transaction);
                   $buy_player_account->setCustomField('premdays', $player_premdays+$buy_offer['days']);
                   $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']);
                   $user_premium_points = $user_premium_points - $buy_offer['points'];
                  
                   $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_premium_points.' premium points</b>.<br><br><a href="index.php?subtopic=shopsystem">Go to Shop Site</a><br>';
                   }
                  elseif($buy_offer['type'] == 'unban') {
                   $my_acc_id = $account_logged->getCustomField('id');
                   $datadata = $SQL->query('SELECT * FROM '.$SQL->tableName('bans').' WHERE value = '.$my_acc_id.';')->fetch();
                        if($datadata['value'] == $my_acc_id) {
                         if($SQL->query('DELETE FROM bans WHERE value= '.$my_acc_id.' LIMIT 1;')) {
                         } else {
                          $SQL->query('DELETE FROM bans WHERE account= '.$my_acc_id.' LIMIT 1;');
                         }
                         $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']);
                         $user_premium_points = $user_premium_points - $buy_offer['points'];
                         $main_content .= '<center><h2>Ban Deleted!</h2><b>Your account has been unbanned for '.$buy_offer['points'].' premium points</b> from your account.
                          <br>Now you have <b>'.$user_premium_points.' premium points</b>.<br><br><a href="index.php?subtopic=shopsystem">Go to Shop Site</a><br>';
                        } else {
                         $main_content .= '<center><b>You don\'t have any bans in your account!</b><br><br><a href="index.php?subtopic=shopsystem">Go back</a><br>';
                        }
                   }
                  ////////////////////////////////
                  elseif($buy_offer['type'] == 'itemlogout') {
                   $my_acc_id = $buy_player->getCustomField('id');
                   $playerinfo = $SQL->query('SELECT * FROM '.$SQL->tableName('players').' WHERE id = '.$my_acc_id.';')->fetch();
                   $playerslot = $SQL->query('SELECT * FROM '.$SQL->tableName('player_items').' WHERE player_id = '.$my_acc_id.';')->fetch();
                   if($playerinfo['online'] == '0') {
                        if ($playerslot['pid'] != '10') {
                         if ($datadata['cap'] >= $SQL->quote($buy_offer['free_cap'])) {
                          $SQL->query('INSERT INTO player_items (player_id, pid, itemtype, count) VALUES ('.$my_acc_id.', '.$SQL->quote($buy_offer['pid']).', '.$SQL->quote($buy_offer['item_id']).', '.$SQL->quote($buy_offer['count1']).');');
                          $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']);
                          $user_premium_points = $user_premium_points - $buy_offer['points'];
                          $main_content .= '<h2>Item received to player: '.$buy_player->getName().'!</h2><br>Now you have <b>'.$user_premium_points.' premium points</b>.
                           <br><a href="index.php?subtopic=shopsystem">Go to Shop Site</a>';
                         } else {
                          $main_content .= '<b>You need '.$SQL->quote($buy_offer['free_cap']).' or more of cap!</b><br><a href="index.php?subtopic=shopsystem">Go back</a>';
                         }
                        } else {
                         $main_content .= '<b>Please leave the arrow slot in blank to receive item!</b><br><a href="index.php?subtopic=shopsystem">Go back</a>';
                        }
                   } else {
                        $main_content .= '<b>You need to be offline!</b><br><a href="index.php?subtopic=shopsystem">Go back</a>';
                   }
                  }
                  ////////////////////////////////
                  elseif($buy_offer['type'] == 'changename') {
                   $my_acc_id = $buy_player->getCustomField('id');
                   $playerinfo = $SQL->query('SELECT * FROM '.$SQL->tableName('players').' WHERE '.$SQL->fieldName('id').' = '.$my_acc_id.';')->fetch();
                   $checkname = $SQL->query('SELECT * FROM '.$SQL->tableName('players').' WHERE '.$SQL->fieldName('name').' = '. $SQL->quote($buy_from) .';')->fetch();
                        if($playerinfo['online'] == '0') {
                        if($checkname == false) {
                         $SQL->query('UPDATE `players` SET `name` = '. $SQL->quote($buy_from) .' WHERE `id` = '. $my_acc_id.' ;');
                         $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']);
                         $user_premium_points = $user_premium_points - $buy_offer['points'];
                         $main_content .= '<center><h2>Your name has been changed to '.$buy_from.'.</h2><br><b>You have '.$user_premium_points.' premium points left</b>.
                          <br><br><a href="index.php?subtopic=shopsystem">Go to Shop Site</a><br>';
                        } else {
                         $main_content .= '<center><h2>Sorry, the name "<i>'.$buy_from.'</i>" does already exist.<br>Please select another name.</h2><br>';
                        }
                   } else {
                        $main_content .= '<center><h2>'.$buy_name.' has to be offline to complete transaction.</h2><br><br><a href="index.php?subtopic=shopsystem">Go back</a><br>';
                   }
                  }
                  ////////////////////////////////
                  elseif($buy_offer['type'] == 'redskull') {
                   $my_acc_id = $buy_player->getCustomField('id');
                   $playerinfo = $SQL->query('SELECT * FROM '.$SQL->tableName('players').' WHERE '.$SQL->fieldName('id').' = '.$my_acc_id.';')->fetch();
                   if($playerinfo['skull'] == '4' AND $playerinfo['online'] >= '0' AND $playerinfo['skulltime'] > '0') {
                        $SQL->query('UPDATE killers SET unjustified=0 WHERE id IN (SELECT kill_id FROM player_killers WHERE player_id='. $my_acc_id .');');
                        $SQL->query('UPDATE players SET skulltime=0, skull=0 WHERE id='. $my_acc_id .';');
                        $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']);
                        $user_premium_points = $user_premium_points - $buy_offer['points'];
                        $main_content .= '<center><h2>RedSkull Removed!</h2><br><b>Your redskull has been removed from the player '.$buy_player->getName().'.</b>
                         <br>Now you have<b> '.$user_premium_points.' premium points</b>.<br><br><a href="index.php?subtopic=shopsystem">Go to Shop Site</a><br>';
                   } else {
                        $main_content .= '<center><b>'.$buy_player->getName().' has to be offline or have redskull to complete transaction!.</b><br><br><a href="index.php?subtopic=shopsystem">Go back</a><br>';
                   }
                  }
                  //////////////////////////
                  elseif($buy_offer['type'] == 'item') {
                   $sql = 'INSERT INTO '.$SQL->tableName('z_ots_comunication').' (id, name, type, action, param1, param2, param3, param4, param5, param6, param7, delete_it) VALUES (NULL, '.$SQL->quote($buy_player->getName()).', \'login\', \'give_item\', '.$SQL->quote($buy_offer['item_id']).', '.$SQL->quote($buy_offer['item_count']).', \'\', \'\', \'item\', '.$SQL->quote($buy_offer['name']).', \'\', \'1\');';
                   $SQL->query($sql);
                   $save_transaction = 'INSERT INTO '.$SQL->tableName('z_shop_history_item').' (id, to_name, to_account, from_nick, from_account, price, offer_id, trans_state, trans_start, trans_real) VALUES ('.$SQL->lastInsertId().', '.$SQL->quote($buy_player->getName()).', '.$SQL->quote($buy_player_account->getId()).', '.$SQL->quote($buy_from).',  '.$SQL->quote($account_logged->getId()).', '.$SQL->quote($buy_offer['points']).', '.$SQL->quote($buy_offer['name']).', \'wait\', '.$SQL->quote(time()).', \'0\');';
                   $SQL->query($save_transaction);
                   $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']);
                   $user_premium_points = $user_premium_points - $buy_offer['points'];
                   $main_content .= '<center><h2>Item added!</h2><b>'.$buy_offer['name'].'</b> added to player <b>'.$buy_player->getName().'</b> for <b>'.$buy_offer['points'].' premium points</b> from your account.<br>Now you have <b>'.$user_premium_points.' premium points</b>.<br><br><a href="index.php?subtopic=shopsystem">GO TO MAIN SHOP SITE</a><br>';
                  }
                                                                                                                                                                if($buy_offer['type'] == 'vipdays') {
                                                                                                                                                                          $player_premdays = $buy_player_account->getCustomField('premdays');
                   $player_lastlogin = $buy_player_account->getCustomField('lastday');
                   $save_transaction = 'INSERT INTO '.$SQL->tableName('z_shop_history_pacc').' (id, to_name, to_account, from_nick, from_account, price, pacc_days, trans_state, trans_start, trans_real) VALUES (NULL, '.$SQL->quote($buy_player->getName()).', '.$SQL->quote($buy_player_account->getId()).', '.$SQL->quote($buy_from).',  '.$SQL->quote($account_logged->getId()).', '.$SQL->quote($buy_offer['points']).', '.$SQL->quote($buy_offer['days']).', \'realized\', '.$SQL->quote(time()).', '.$SQL->quote(time()).');';
                   $SQL->query($save_transaction);
                   $buy_player_account->setCustomField('premdays', $player_premdays+$buy_offer['days']);
                   $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']);
                   $user_premium_points = $user_premium_points - $buy_offer['points'];
                  
                   $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_premium_points.' premium points</b>.<br><br><a href="index.php?subtopic=shopsystem">Go to Shop Site</a><br>';
                   }
                  elseif($buy_offer['type'] == 'itemvip') {
                   $sql = 'INSERT INTO '.$SQL->tableName('z_ots_comunication').' (id, name, type, action, param1, param2, param3, param4, param5, param6, param7, delete_it) VALUES (NULL, '.$SQL->quote($buy_player->getName()).', \'login\', \'give_item\', '.$SQL->quote($buy_offer['item_id']).', '.$SQL->quote($buy_offer['megaitems_count']).', \'\', \'\', \'megaitems\', '.$SQL->quote($buy_offer['name']).', \'\', \'1\');';
                   $SQL->query($sql);
                   $save_transaction = 'INSERT INTO '.$SQL->tableName('z_shop_history_item').' (id, to_name, to_account, from_nick, from_account, price, offer_id, trans_state, trans_start, trans_real) VALUES ('.$SQL->lastInsertId().', '.$SQL->quote($buy_player->getName()).', '.$SQL->quote($buy_player_account->getId()).', '.$SQL->quote($buy_from).',  '.$SQL->quote($account_logged->getId()).', '.$SQL->quote($buy_offer['points']).', '.$SQL->quote($buy_offer['name']).', \'wait\', '.$SQL->quote(time()).', \'0\');';
                   $SQL->query($save_transaction);
                   $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']);
                   $user_premium_points = $user_premium_points - $buy_offer['points'];
                   $main_content .= '<center><h2>Item added!</h2><b>'.$buy_offer['name'].'</b> added to player <b>'.$buy_player->getName().'</b> for <b>'.$buy_offer['points'].' premium points</b> from your account.<br>Now you have <b>'.$user_premium_points.' premium points</b>.<br><br><a href="index.php?subtopic=shopsystem">GO TO MAIN SHOP SITE</a><br>';
                  }
                  elseif($buy_offer['type'] == 'container') {
                   $sql = 'INSERT INTO '.$SQL->tableName('z_ots_comunication').' (id, name, type, action, param1, param2, param3, param4, param5, param6, param7, delete_it) VALUES (NULL, '.$SQL->quote($buy_player->getName()).', \'login\', \'give_item\', '.$SQL->quote($buy_offer['item_id']).', '.$SQL->quote($buy_offer['item_count']).', '.$SQL->quote($buy_offer['container_id']).', '.$SQL->quote($buy_offer['container_count']).', \'container\', '.$SQL->quote($buy_offer['name']).', \'\', \'1\');';
                   $SQL->query($sql);
                   $save_transaction = 'INSERT INTO '.$SQL->tableName('z_shop_history_item').' (id, to_name, to_account, from_nick, from_account, price, offer_id, trans_state, trans_start, trans_real) VALUES ('.$SQL->lastInsertId().', '.$SQL->quote($buy_player->getName()).', '.$SQL->quote($buy_player_account->getId()).', '.$SQL->quote($buy_from).',  '.$SQL->quote($account_logged->getId()).', '.$SQL->quote($buy_offer['points']).', '.$SQL->quote($buy_offer['name']).', \'wait\', '.$SQL->quote(time()).', \'0\');';
                   $SQL->query($save_transaction);
                   $account_logged->setCustomField('premium_points', $user_premium_points-$buy_offer['points']);
                   $user_premium_points = $user_premium_points - $buy_offer['points'];
                   $main_content .= '<center><h2>Container of items added!</h2><b>'.$buy_offer['name'].'</b> added to player <b>'.$buy_player->getName().'</b> for <b>'.$buy_offer['points'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br><br><a href="index.php?subtopic=shopsystem">GO TO MAIN SHOP SITE</a><br>';
                  }
                 } else {
                  if($buy_offer['type'] != 'changename') {
                   $set_session = TRUE;
                   $_SESSION['viewed_confirmation_page'] = 'yes';
                   $main_content .= '<center><h2>Confirm transaction</h2>
                        <table border="0" cellpadding="1" cellspacing="1" width="700">
                        <tr bgcolor="#505050"><td colspan="3"><font color="white" size="4"><b>Confirm transaction</b></font></td></tr>
                        <tr bgcolor="#D4C0A1"><td width="100"><b>Name:</b></td><td width="550" colspan="2">'.$buy_offer['name'].'</td></tr>
                        <tr bgcolor="#F1E0C6"><td width="100"><b>Description:</b></td><td width="550" colspan="2">'.$buy_offer['description'].'</td></tr>
                        <tr bgcolor="#D4C0A1"><td width="100"><b>Cost:</b></td><td width="550" colspan="2"><b>'.$buy_offer['points'].' premium points</b> from your account</td></tr>
                        <tr bgcolor="#F1E0C6"><td width="100"><b>For Player:</b></td><td width="550" colspan="2"><font color="red">'.$buy_player->getName().'</font></td></tr>
                        <tr bgcolor="#D4C0A1"><td width="100"><b>From:</b></td><td width="550" colspan="2"><font color="red">'.$buy_from.'</font></td></tr>
                        <tr bgcolor="#F1E0C6"><td width="100"><b>Transaction?</b></td><td width="275" align="left">
                        <form action="index.php?subtopic=shopsystem&action=confirm_transaction" method="POST"><input type="hidden" name="buy_confirmed" value="yes"><input type="hidden" name="buy_id" value="'.$buy_id.'"><input type="hidden" name="buy_from" value="'.urlencode($new_name).'"><input type="hidden" name="buy_name" value="'.urlencode($buy_name).'"><input type="submit" value="Aceitar"></form></td>
                        <td align="right"><form action="index.php?subtopic=shopsystem" method="POST"><input type="submit" value="Cancelar"></form></td></tr>
                        </table>';
                  } else {
                   $set_session = TRUE;
                   $_SESSION['viewed_confirmation_page'] = 'yes';
                   $main_content .= '<center><h2>Confirm Name Changing</h2>
                        <table border="0" cellpadding="1" cellspacing="1" width="700">
                        <tr bgcolor="#505050"><td colspan="3"><font color="white" size="4"><b>Confirm transaction</b></font></td></tr>
                        <tr bgcolor="#D4C0A1"><td width="130"><b>Name:</b></td><td width="550" colspan="2">'.$buy_offer['name'].'</td></tr>
                        <tr bgcolor="#F1E0C6"><td width="130"><b>Description:</b></td><td width="550" colspan="2">'.$buy_offer['description'].'</td></tr>
                        <tr bgcolor="#D4C0A1"><td width="130"><b>Cost:</b></td><td width="550" colspan="2"><b>'.$buy_offer['points'].' premium points</b> from your account</td></tr>
                        <tr bgcolor="#F1E0C6"><td width="130"><b>Current Name:</b></td><td width="550" colspan="2"><font color="red">'.$buy_player->getName().'</font></td></tr>
                        <tr bgcolor="#D4C0A1"><td width="130"><b>New Name:</b></td><td width="550" colspan="2"><font color="red">'.$buy_from.'</font></td></tr>
                        <tr bgcolor="#F1E0C6"><td width="130"><b>Change Name?</b></td><td width="275" align="left">
                        <form action="index.php?subtopic=shopsystem&action=confirm_transaction" method="POST"><input type="hidden" name="buy_confirmed" value="yes"><input type="hidden" name="buy_id" value="'.$buy_id.'"><input type="hidden" name="buy_from" value="'.urlencode($buy_from).'"><input type="hidden" name="buy_name" value="'.urlencode($buy_name).'"><input type="submit" value="Accept"></form></td>
                        <td align="right"><form action="index.php?subtopic=shopsystem" method="POST"><input type="submit" value="Cancel"></form></td></tr>
                        </table>';
                  }
                 }
                } else {
                 $main_content .= 'Player with name <b>'.$buy_name.'</b> doesn\'t exist. Please <a href="index.php?subtopic=shopsystem&action=select_player&buy_id='.$buy_id.'">select other name</a>.';
                }
           } else {
                $main_content .= 'Invalid name format. Please <a href="index.php?subtopic=shopsystem&action=select_player&buy_id='.$buy_id.'">select other name</a> or contact with administrator.';
           }
          } else {
           $main_content .= 'For this item you need <b>'.$buy_offer['points'].'</b> points. You have only <b>'.$user_premium_points.'</b> premium points. Please <a href="index.php?subtopic=shopsystem">select other item</a> or buy premium points.';
          }
                          } else {
          $main_content .= 'Offer with ID <b>'.$buy_id.'</b> doesn\'t exist. Please <a href="index.php?subtopic=shopsystem">select item</a> again.';
         }
        }
   }
  }
  if(!$set_session) {
   unset($_SESSION['viewed_confirmation_page']);
  }
}
elseif($action == 'show_history') {
  if(!$logged) {
   $main_content .= 'Please login first.';
  } else{
   $items_history_received = $SQL->query('SELECT * FROM '.$SQL->tableName('z_shop_history_item').' WHERE '.$SQL->fieldName('to_account').' = '.$SQL->quote($account_logged->getId()).' OR '.$SQL->fieldName('from_account').' = '.$SQL->quote($account_logged->getId()).';');
   if(is_object($items_history_received)) {
        foreach($items_history_received as $item_received) {
         if($account_logged->getId() == $item_received['to_account'])
          $char_color = 'green';
         else
          $char_color = 'red';
          $items_received_text .= '<tr bgcolor="#F1E0C6"><td><font color="'.$char_color.'">'.$item_received['to_name'].'</font></td><td>';
         if($account_logged->getId() == $item_received['from_account'])
          $items_received_text .= '<i>Your account</i>';
         else
          $items_received_text .= $item_received['from_nick'];
          $items_received_text .= '</td><td>'.$item_received['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_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>';
        }
   }
$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 premium points: </font></b>'.$user_premium_points;
}
else
$main_content .= '<br><center><b>Shop System is currently disabled for this server.Please ask the admin for more information.</b></center>';
?>

 

deve ser algum erro na pagina de vocês.

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites

Participe da conversa

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

Visitante
Responder

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

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

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

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

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Mathwsz
      Bom galera, estou trazendo um script de fusão que funciona assim:
      Explicação: É necessário de 7 itens, na qual você coloca em tal coordenada e aperte a alavanca, sendo assim formando um item na qual você deseja em tal lugar configurado.
      Exemplo: Você pode fazer 7 bosses na qual dropa tals itens "Parecidos" e formando um item raro de sua escolha, ou como preferir.. Vamos ao script!
       
      Em Data/Actions/Scripts crie um arquivo chamado fusaoitens.lua e adicione isto dentro:
       
       
      Agora, em Data/Actions.xml adicione o seguinte:
       
      <action uniqueid="9900" script="fusaoitens.lua" /> E no seu RemeresMapEditor , pegue sua alavanca, vai em Propriedades e adicione o UniqueID 9900 nele! 
      PRONTO! Agora configure e divirta-se! Obs: Caso lhe ajudei, da um REP+ Aí !
    • Por Maniaco
      Boa Noite TibiaKing!!!
       
      Bom estou procurando uma base de um WEBSITE DE !!DBO!!
      Quem poder DIPONIBILIZAR AGRADEÇO.


      A alguns dias ando procurando essa base mas sem sucesso algum, e gostaria de verificar com vocês se já foi dispobilizado ou até mesmo alguem possa fornecer esse WebSite. para o meu futuro projeto!

      Segue algumas img para facilizar a localização da base, lembrando que já achei varios sites usando a mesma base! então acredito que já está liberado em alguem site-forum-deepWeb! segue os links de outros servidores que utilizam a mesmo WEBSITE!.

      Link Encurtado: l1nq.com/895iG

      2 Link que usa mesma base de site: l1nq.com/NoC69

      3. Link que utiliza a mesma base. l1nq.com/nLuFZ



       
    • Por Gandh
      boa galera , gostaria de pedir uma ajuda, atualmente estou mechendo com poketibia e faltou algumas sprites de paredes relacionadas a poketibia no meu server, entao adicionei as sprites no OB, e Item editor, e passei o items para o RME , para ser usado no mapa, e aparece tudo correto no RME, porem quando salvo e entro ingame, no local aonde coloquei essas paredes/Portas etc, o local fica todo bugado, e me crasha de vez em qndo, poderiam me ajudar? deixarei algumas imgs..

      Itens no RME que coloquei.


      Quando salvo e entro ingame , dá isso:

      primeiro quadrado vermelho => Onde coloquei a wall (Ela ficou invisivel) e buga o mapa.
      Segundo quadrado => Consequencia de ter a wall naquele local , pq no RME tá consertadinho a ground .. (bug)
    • Por Scorpiondaniel
      Quero que o balance do bank do personagem apareça na conta do cara no site

      Script usado:
       
       
       

      NPC BANKMAN
      <?xml version="1.0" encoding="UTF-8"?> <npc name="BankMan" script="data/npc/scripts/bank.lua" walkinterval="25" floorchange="0" access="5" > <health now="150" max="150"/> <look type="132" head="115" body="0" legs="114" feet="0" addons="3" corpse="2212"/> <parameters> <parameter key="message_greet" value="Welcome |PLAYERNAME|! Here, you can {deposit}, {withdraw} or {transfer} your money from your bank account. I can change your coins too."/> <parameter key="message_alreadyfocused" value="You are drunked ? I talk with you."/> <parameter key="message_farewell" value="Goodbye. I wanna see your money... oh you again."/> </parameters> </npc>  
       
       
      bank.lua
      local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid --------------------MESSAGES------------------------------------------------------------------------------ if msgcontains(msg, 'deposit') then selfSay('Please tell me how much gold it is you would like to deposit.', cid) talkState[talkUser] = 1 elseif msgcontains(msg, 'withdraw') then selfSay('Please tell me how much gold you would like to withdraw.', cid) talkState[talkUser] = 3 elseif msgcontains(msg, 'transfer') then selfSay('Please tell me the amount of gold coins you would like to transfer.', cid) talkState[talkUser] = 5 elseif msgcontains(msg, 'change gold') then selfSay('How many platinum coins do you want to get?', cid) talkState[talkUser] = 8 elseif msgcontains(msg, 'change platinum') then selfSay('Do you want to change your platinum coins to gold or crystal?', cid) talkState[talkUser] = 10 elseif msgcontains(msg, 'change crystal') then selfSay('How many crystal coins do you want to change to platinum?', cid) talkState[talkUser] = 15 elseif msgcontains(msg, 'balance') then n = getPlayerBalance(cid) selfSay('Your balance are '..n..' golds.', cid) talkState[talkUser] = 0 ----------------------DEPOSIT------------------------------------------------------- elseif talkState[talkUser] == 1 then if msgcontains(msg, 'all') then n = getPlayerMoney(cid) selfSay('Do you want deposit '..n..' golds ?', cid) talkState[talkUser] = 2 else n = getNumber(msg) selfSay('Do you want deposit '..n..' golds ?', cid) talkState[talkUser] = 2 end elseif talkState[talkUser] == 2 then if msgcontains(msg, 'yes') then if getPlayerMoney(cid) >= n then doPlayerDepositMoney(cid,n) selfSay('Sucessfull. Now your balance account is ' ..getPlayerBalance(cid)..' golds.', cid) talkState[talkUser] = 0 else selfSay('You don\'t have money.', cid) end else selfSay('Ok then', cid) end ----------------------WITHDRAW------------------------------------------------------------------------------------- elseif talkState[talkUser] == 3 then if msgcontains(msg, 'all') then n = getPlayerBalance(cid) selfSay('Do you want withdraw '..n..' golds ?', cid) talkState[talkUser] = 4 else n = getNumber(msg) selfSay('Do you want withdraw '..n..' golds ?', cid) talkState[talkUser] = 4 end elseif talkState[talkUser] == 4 then if msgcontains(msg, 'yes') then if getPlayerBalance(cid) >= n then doPlayerWithdrawMoney(cid, n) selfSay('Here you are, '..n..' gold. Now your balance account is ' ..getPlayerBalance(cid)..' golds.', cid) talkState[talkUser] = 0 else selfSay('There is not enough gold on your account', cid) end else selfSay('Ok then', cid) end ----------------------TRANSFER---------------------------------------------------------------------------------------- elseif talkState[talkUser] == 5 then if msgcontains(msg, 'all') then n = getPlayerBalance(cid) selfSay('Who would you like transfer '..n..' gold to?', cid) talkState[talkUser] = 6 else n = getNumber(msg) selfSay('Who would you like transfer '..n..' gold to?', cid) talkState[talkUser] = 6 end elseif talkState[talkUser] == 6 then p = msg selfSay('So you would like to transfer '..n..' gold to '..p..'?', cid) talkState[talkUser] = 7 elseif talkState[talkUser] == 7 then if msgcontains(msg, 'yes') then if getPlayerBalance(cid) >= n then if doPlayerTransferMoneyTo(cid, p, n) == TRUE then selfSay('You have transferred '..n..' gold to '..p..' and your account balance is '..getPlayerBalance(cid)..' golds.', cid) talkState[talkUser] = 0 else selfSay('This player does not exist. Please tell me a valid name!', cid) talkState[talkUser] = 0 end else selfSay('There is not enough gold on your account', cid) talkState[talkUser] = 0 end else selfSay('Ok then', cid) talkState[talkUser] = 0 end ----------------------CHANGE GOLD--------------------------------------------------------------------------------- elseif talkState[talkUser] == 8 then n = getNumber(msg) b = n * 100 selfSay('So I should change '..b..' of your gold coins to '..n..' platinum coins for you?', cid) talkState[talkUser] = 9 elseif talkState[talkUser] == 9 then if msgcontains(msg, 'yes') then if doPlayerRemoveItem(cid, 2148, b) == TRUE then doPlayerAddItem(cid, 2152, n) talkState[talkUser] = 0 else selfSay('You don\'t have money.', cid) talkState[talkUser] = 0 end else selfSay('Ok. We cancel.', cid) talkState[talkUser] = 0 end ---------------------CHANGE PLATINUM------------------------------------------------------------------------- elseif talkState[talkUser] == 10 then if msgcontains(msg, 'gold') then selfSay('How many platinum coins do you want to change to gold?', cid) talkState[talkUser] = 11 elseif msgcontains(msg, 'crystal') then selfSay('How many crystal coins do you want to get?', cid) talkState[talkUser] = 13 end elseif talkState[talkUser] == 11 then n = getNumber(msg) b = n * 100 selfSay('So I should change '..n..' of your platinum coins to '..b..' gold coins for you?', cid) talkState[talkUser] = 12 elseif talkState[talkUser] == 12 then if msgcontains(msg, 'yes') then if doPlayerRemoveItem(cid, 2152, n) == TRUE then doPlayerAddItem(cid, 2148, b) talkState[talkUser] = 0 else selfSay('You don\'t have money.', cid) talkState[talkUser] = 0 end else selfSay('Ok. We cancel.', cid) talkState[talkUser] = 0 end elseif talkState[talkUser] == 13 then n = getNumber(msg) b = n * 100 selfSay('So I should change '..b..' of your platinum coins to '..n..' crystal coins for you?', cid) talkState[talkUser] = 14 elseif talkState[talkUser] == 14 then if msgcontains(msg, 'yes') then if doPlayerRemoveItem(cid, 2152, b) == TRUE then doPlayerAddItem(cid, 2160, n) talkState[talkUser] = 0 else selfSay('You don\'t have money.', cid) talkState[talkUser] = 0 end else selfSay('Ok. We cancel.', cid) talkState[talkUser] = 0 end ---------------------CHANGE CRYSTAL------------------------------------------------------------------------------- elseif talkState[talkUser] == 15 then n = getNumber(msg) b = n * 100 selfSay('So I should change '..n..' of your crystal coins to '..b..' platinum coins for you?', cid) talkState[talkUser] = 16 elseif talkState[talkUser] == 16 then if msgcontains(msg, 'yes') then if doPlayerRemoveItem(cid, 2160, n) == TRUE then doPlayerAddItem(cid, 2152, b) talkState[talkUser] = 0 else selfSay('You don\'t have money.', cid) talkState[talkUser] = 0 end else selfSay('Ok. We cancel.', cid) talkState[talkUser] = 0 end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) -- function maded by Gesior-- function getNumber(txt) --return number if its number and is > 0, else return 0 x = string.gsub(txt,"%a","") x = tonumber(x) if x ~= nill and x > 0 then return x else return 0 end end
    • Por Kimoszin
      Informações
      Oque é o Rent System?
      É um sistema feito para os jogadores poderem alugar alguns itens por uma quantia e por um certo tempo.
      Hmmm, legal... mas para que esse sistema seria util?
      Bom, para o jogador antes de comprar algum item vip, por exemplo. Ele poderia testar para ver seus hits.
      Ok, Mas como ele funciona?
      O sistema vai entregar para o player um item, depois do tempo configuravel ele irá remover, não importa onde esteja, ele vai remover.
      Instalação
      \mods\rent.xml
      <?xml version="1.0" encoding="UTF-8"?> <mod name="Rent System" version="1.0" author="Kimoszin" contact="tibiaking.com" enabled="yes"> <config name="rent_config"><![CDATA[ messages = { sucess = MESSAGE_INFO_DESCR, fail = MESSAGE_STATUS_WARNING, } warningStorage = 45768 items = { ["knight armor"] = {id=2476, time=1, price=3000, premium=true, cap=false}, ["demon legs"] = {id=2495, time=3, price=3000, premium=true, cap=true}, ["blue legs"] = {id=7730, time=2, price=3000, premium=true, cap=true}, ["demon shield"] = {id=2520, time=1, price=3000, premium=true, cap=true}, } function doWarningItemWasRemoved(cid) if (getCreatureStorage(cid, warningStorage) > -1) then local item = items[getItemNameById(getCreatureStorage(cid, warningStorage))] doPlayerSendTextMessage(cid, messages.sucess, "Ok, "..item.time..(item.time > 1 and " minutes" or " minute").." has passed, the rent of "..getItemNameById(item.id).." ended.") doCreatureSetStorage(cid, warningStorage, -1) end end ]]></config> <talkaction words="!rent" event="buffer"><![CDATA[ domodlib('rent_config') local item, itemuid = items[param:lower()], math.random(1000, 65535) if (param == "") then return doPlayerSendTextMessage(cid, messages.fail, "Sorry, you need to inform parameters.") end if (param == "list") then local str = "~* Rent System by Kimoszin *~\n\n" for name, iten in pairs(items) do str = str..string.sub(name, 0, 1):upper()..string.sub(name, 2):lower().." - "..iten.price.."gps \n" end str = str .."\n WWW.TIBIAKING.COM" return doPlayerPopupFYI(cid, str) end if not(item) then return doPlayerSendTextMessage(cid, messages.fail, "Sorry, but it is not possible to rent this item.") end if (item.premium and not(isPremium(cid))) then return doPlayerSendTextMessage(cid, messages.fail, "You need a premium account.") end if (item.cap and not(getPlayerFreeCap(cid) >= getItemWeightById(item.id, 1, 1))) then return doPlayerSendTextMessage(cid, messages.fail, "You don't have capacity.") end if not(doPlayerRemoveMoney(cid, item.price)) then return doPlayerSendTextMessage(cid, messages.fail, "Sorry, you do not have any money.") end doItemSetAttribute(doPlayerAddItem(cid, item.id, 1), "uid", itemuid) doPlayerSendTextMessage(cid, messages.sucess, "You rented a "..getItemNameById(item.id).." for "..item.time.. (item.time > 1 and " minutes" or " minute")..".") doCreatureSetStorage(cid, warningStorage, item.id) local player_id = getPlayerGUID(cid) addEvent(function() local player = getPlayerByGUID(player_id) if not(isPlayer(player)) then db.executeQuery("DELETE FROM `player_items` WHERE `player_items`.`player_id` = "..player_id.." AND `itemtype` = "..item.id..";") else doPlayerSendTextMessage(cid, messages.sucess, "Ok, "..item.time..(item.time > 1 and " minutes" or " minute").." has passed, the rent of "..getItemNameById(item.id).." ended.") doCreatureSetStorage(cid, warningStorage, -1) doRemoveItem(itemuid, 1) end end, item.time * 60 * 1000) ]]></talkaction> <creatureevent name="rentLogin" type="login" event="buffer"><![CDATA[ domodlib('rent_config') doWarningItemWasRemoved(cid) ]]></creatureevent> </mod>  
      Explicações
      ♣ Comandos:
      !rent itemname: vai alugar o item !rent list: vai mostrar a lista dos item que são alugaveis. ♣ Variaveis
      id: id do item que vai ser alugado time: tempo do item que vai ser alugado price: preço do item que vai ser alugado premium: vai verificar se o player é premium cap: vai verificar se o player tem capacidade para alugar o item
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo