Ir para conteúdo
  • Cadastre-se

(Resolvido)(Ajude-me) Shop.lua Nao para de enviar itens. TFS 1.1


Ir para solução Resolvido por luanluciano93,

Posts Recomendados

Meu shop.lua nao para de enviar itens.

 

Fica aparecendo esta mensagem. 

 

100 Crystal coins from Manera Shop is waiting for you. Please make place for this item in your backpack/hands and wait about 30 seconds to get it.

 

 

Esta mensagem aparece a cada 30 segundos e o item fica aparecendo.

o cara compra 1kk no shop e fica recebendo 1kk a cada 30 segundos,

 

data/globalevents/Shop.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_comunication")
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 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 Manera Shop.')
db.query("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")
db.query("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 Manera 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 ..' Manera 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

 

data/globalevents.xml

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

 

c:/xammp/htdocs/pages/shopsystem.php

 

<img id="ContentBoxHeadline" class="Title" src="layouts/tibiacom/images/header/headline-shopsystem.gif" alt="Contentbox headline">

<?php
if(!defined('INITIALIZED'))
exit;
 
if($config['site']['shop_system'])
{
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'] == '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'] == 'VipDays')
{
$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'] == 'Golds')
{
$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'] == 'Containers')
{
$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_shop_offer').';');
$i_item = 0;
$i_mount = 0;
$i_addon = 0;
$i_VipDays = 0;
$i_Golds = 0;
$i_Containers = 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'] == 'VipDays')
{
$offer_array['VipDays'][$i_VipDays]['id'] = $data['id'];
$offer_array['VipDays'][$i_VipDays]['container_id'] = $data['itemid1'];
$offer_array['VipDays'][$i_VipDays]['container_count'] = $data['count1'];
$offer_array['VipDays'][$i_VipDays]['item_id'] = $data['itemid1'];
$offer_array['VipDays'][$i_VipDays]['item_count'] = $data['count2'];
$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'] == 'Golds')
{
$offer_array['Golds'][$i_Golds]['id'] = $data['id'];
$offer_array['Golds'][$i_Golds]['container_id'] = $data['itemid1'];
$offer_array['Golds'][$i_Golds]['container_count'] = $data['count1'];
$offer_array['Golds'][$i_Golds]['item_id'] = $data['itemid1'];
$offer_array['Golds'][$i_Golds]['item_count'] = $data['count2'];
$offer_array['Golds'][$i_Golds]['points'] = $data['points'];
$offer_array['Golds'][$i_Golds]['description'] = $data['offer_description'];
$offer_array['Golds'][$i_Golds]['name'] = $data['offer_name'];
$i_Golds++;
}
elseif($data['offer_type'] == 'Containers')
{
$offer_array['Containers'][$i_Golds]['id'] = $data['id'];
$offer_array['Containers'][$i_Golds]['container_id'] = $data['itemid1'];
$offer_array['Containers'][$i_Golds]['container_count'] = $data['count1'];
$offer_array['Containers'][$i_Golds]['item_id'] = $data['itemid1'];
$offer_array['Containers'][$i_Golds]['item_count'] = $data['count2'];
$offer_array['Containers'][$i_Golds]['points'] = $data['points'];
$offer_array['Containers'][$i_Golds]['description'] = $data['offer_description'];
$offer_array['Containers'][$i_Golds]['name'] = $data['offer_name'];
$i_Golds++;
}
}
return $offer_array;
}
if(($action == '') or ($action == 'item') or ($action == 'mount') or ($action == 'addon') or ($action == 'VipDays') or ($action == 'Golds') or ($action == 'Containers'))
{
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['VipDays']) > 0)
$action = 'VipDays';
elseif(count($offer_list['Golds']) > 0)
$action = 'Golds';
elseif(count($offer_list['Containers']) > 0)
$action = 'Containers';
}
 
function selectcolor($value)
{
if($GLOBALS['action'] == $value)
return '#505050; color: #FFFFFF';
else
return '#303030; color: #aaaaaa';
}
 
if((count($offer_list['item']) > 0) or (count($offer_list['mount']) > 0) or (count($offer_list['addon']) > 0) or (count($offer_list['VipDays']) > 0) or (count($offer_list['Golds']) > 0) or (count($offer_list['Containers']) > 0))
{
$main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=0 CELLPADDING=4><TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white colspan="2"><B>Choose a categorie: </B>';
if(count($offer_list['item']) > 0) $main_content .= '<a href="?subtopic=shopsystem&action=item" style="padding: 5px 5px 7px 5px; margin: 5px 1px 0px 1px; background-color: '.selectcolor('item').';">Items</a>';
if(count($offer_list['mount']) > 0) $main_content .= '<a href="?subtopic=shopsystem&action=mount" style="padding: 5px 5px 7px 5px; margin: 5px 1px 0px 1px; background-color: '.selectcolor('mount').';">Mounts</a>';
if(count($offer_list['addon']) > 0) $main_content .= '<a href="?subtopic=shopsystem&action=addon" style="padding: 5px 5px 7px 5px; margin: 5px 1px 0px 1px; background-color: '.selectcolor('addon').';">Addons</a>';
if(count($offer_list['VipDays']) > 0) $main_content .= '<a href="?subtopic=shopsystem&action=VipDays" style="padding: 5px 5px 7px 5px; margin: 5px 1px 0px 1px; background-color: '.selectcolor('VipDays').';">VipDays</a>';
if(count($offer_list['Golds']) > 0) $main_content .= '<a href="?subtopic=shopsystem&action=Golds" style="padding: 5px 5px 7px 5px; margin: 5px 1px 0px 1px; background-color: '.selectcolor('Golds').';">Golds</a>';
if(count($offer_list['Containers']) > 0) $main_content .= '<a href="?subtopic=shopsystem&action=Containers" style="padding: 5px 5px 7px 5px; margin: 5px 1px 0px 1px; background-color: '.selectcolor('Containers').';">Containers</a>';
$main_content .= '</TD></TR></TD></TR></table><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>';
}
 
//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=shopsystem&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=shopsystem&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=shopsystem&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 VipDays offers
if((count($offer_list['VipDays']) > 0) and ($action == 'VipDays'))
{
$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['VipDays'] as $VipDays)
{
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>'.$VipDays['points'].'</b></td><td align=center"><img src="' . $config['site]['item_images_url'] . $VipDays['item_id'] . $config['site']['item_images_extension'] . '"></td><td><b>'.htmlspecialchars($VipDays['name']).'</b> ('.$VipDays['points'].' points)<br />'.htmlspecialchars($VipDays['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" name="itemform_'.$VipDays['id'].'"><input type=hidden" name="buy_id" value="'.$VipDays['id].'"><div class="navibutton"><a href="" onClick="itemform_'.$VipDays['id'].'.submit();return false;">BUY</a></div></form>';
}
$main_content .= '</td></tr>';
}
$main_content .= '</table>';
}
//show list of Golds offers
if((count($offer_list['Golds']) > 0) and ($action == 'Golds'))
{
$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['Golds'] as $Golds)
{
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>'.$Golds['points'].'</b></td><td align=center"><img src="' . $config['site]['item_images_url'] . $Golds['item_id'] . $config['site']['item_images_extension'] . '"></td><td><b>'.htmlspecialchars($Golds['name']).'</b> ('.$Golds['points'].' points)<br />'.htmlspecialchars($Golds['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" name="itemform_'.$Golds['id'].'"><input type=hidden" name="buy_id" value="'.$Golds['id].'"><div class="navibutton"><a href="" onClick="itemform_'.$Golds['id'].'.submit();return false;">BUY</a></div></form>';
}
$main_content .= '</td></tr>';
}
$main_content .= '</table>';
}
//show list of Containers offers
if((count($offer_list['Containers']) > 0) and ($action == 'Containers'))
{
$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['Containers'] as $Containers)
{
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>'.$Containers['points'].'</b></td><td align=center"><img src="' . $config['site]['item_images_url'] . $Containers['item_id'] . $config['site']['item_images_extension'] . '"></td><td><b>'.htmlspecialchars($Containers['name']).'</b> ('.$Containers['points'].' points)<br />'.htmlspecialchars($Containers['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" name="itemform_'.$Containers['id'].'"><input type=hidden" name="buy_id" value="'.$Containers['id].'"><div class="navibutton"><a href="" onClick="itemform_'.$Containers['id'].'.submit();return false;">BUY</a></div></form>';
}
$main_content .= '</td></tr>';
}
$main_content .= '</table>';
}
//Finish Containers
if((count($offer_list['item']) > 0) or (count($offer_list['mount']) > 0) or (count($offer_list['addon']) > 0) or (count($offer_list['VipDays']) > 0) or (count($offer_list['Golds']) > 0) or (count($offer_list['Containers']) > 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=shopsystem">select item</a> first.';
}
else
{
$buy_offer = getItemByID($buy_id);
if(isset($buy_offer['id'])) //item exist in database
{
if($user_premium_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=shopsystem&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=shopsystem&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_premium_points.'</b> premium points. Please <a href="?subtopic=shopsystem">select other item</a> or buy premium points.';
}
}
else
{
$errormessage .= 'Offer with ID <b>'.$buy_id.'</b> doesn\'t exist. Please <a href="?subtopic=shopsystem">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=shopsystem">select item</a> first.';
}
else
{
if(!check_name($buy_from))
{
$errormessage .= 'Invalid nick ("from player") format. Please <a href="?subtopic=shopsystem&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_premium_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_comunication').' ('.$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_shop_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('premium_points', $user_premium_points-$buy_offer['points']);
$user_premium_points = $user_premium_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'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br /><a href="?subtopic=shopsystem">GO TO MAIN SHOP SITE</a></TD></TR>
</table>';
}
elseif($buy_offer['type'] == 'mount')
{
$sql = 'INSERT INTO '.$SQL->tableName('z_ots_comunication').' ('.$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_shop_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('premium_points', $user_premium_points-$buy_offer['points']);
$user_premium_points = $user_premium_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'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br /><a href="?subtopic=shopsystem">GO TO MAIN SHOP SITE</a></TD></TR>
</table>';
}
elseif($buy_offer['type'] == 'addon')
{
$sql = 'INSERT INTO '.$SQL->tableName('z_ots_comunication').' ('.$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_shop_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('premium_points', $user_premium_points-$buy_offer['points']);
$user_premium_points = $user_premium_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'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br /><a href="?subtopic=shopsystem">GO TO MAIN SHOP SITE</a></TD></TR>
</table>';
}
elseif($buy_offer['type'] == 'VipDays')
{
$sql = 'INSERT INTO '.$SQL->tableName('z_ots_comunication').' ('.$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_shop_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('premium_points', $user_premium_points-$buy_offer['points']);
$user_premium_points = $user_premium_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>VipDays 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'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br /><a href="?subtopic=shopsystem">GO TO MAIN SHOP SITE</a></TD></TR>
</table>';
}
elseif($buy_offer['type'] == 'Golds')
{
$sql = 'INSERT INTO '.$SQL->tableName('z_ots_comunication').' ('.$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_shop_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('premium_points', $user_premium_points-$buy_offer['points']);
$user_premium_points = $user_premium_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>Golds 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'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br /><a href="?subtopic=shopsystem">GO TO MAIN SHOP SITE</a></TD></TR>
</table>';
}
elseif($buy_offer['type'] == 'Containers')
{
$sql = 'INSERT INTO '.$SQL->tableName('z_ots_comunication').' ('.$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_shop_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('premium_points', $user_premium_points-$buy_offer['points']);
$user_premium_points = $user_premium_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>Containers 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'].' premium points</b> from your account.<br />Now you have <b>'.$user_premium_points.' premium points</b>.<br /><a href="?subtopic=shopsystem">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]).' premium 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=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="'.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=shopsystem" 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=shopsystem&action=select_player&buy_id='.$buy_id.'">select other name</a>.';
}
}
else
{
$errormessage .= 'Invalid name format. Please <a href="?subtopic=shopsystem&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_premium_points.'</b> premium points. Please <a href="?subtopic=shopsystem">select other item</a> or buy premium points.';
}
}
else
{
$errormessage .= 'Offer with ID <b>'.$buy_id.'</b> doesn\'t exist. Please <a href="?subtopic=shopsystem">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)
{
$errormessage .= '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="'.$config['site']['lightborder'].'"><td><font color='.$char_color.'">'.htmlspecialchars($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 .= htmlspecialchars($item_received['from_nick']);
$items_received_text .= '</td><td>'.htmlspecialchars($item_received['offer_id']).'</td><td>'.date("j F Y, H:i:s", $item_received['trans_start']).'</td>';
if($item_received['trans_real'] > 0)
$items_received_text .= '<td>'.date("j F Y, H:i:s", $item_received['trans_real']).'</td>';
else
$items_received_text .= '<td><b><font color="red">Not realized yet.</font></b></td>';
$items_received_text .= '</tr>';
}
}
$main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4>
<TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'"></TD></TR>
<TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><center><B>Transactions History</B></center></TD></TR>
<TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'"></TD></TR>
</table><br>';
 
if(!empty($items_received_text))
{
$main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4>
<TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white colspan="5"><B>Item Transactions</B></TD></TR>
<tr bgcolor="'.$config['site']['darkborder'].'"><td><b>To:</b></td><td><b>From:</b></td><td><b>Offer name</b></td><td><b>Bought on page</b></td><td><b>Received on OTS</b></td></tr>
'.$items_received_text.'
</table><br />';
}
if(empty($items_received_text))
$errormessage .= 'You did not buy/receive any item.';
}
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>';
}
}
$main_content .= '<br><TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4>
<TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=left CLASS=white><B>Premium Points</B></TD></TR>
<TR><TD BGCOLOR="'.$config['site']['lightborder'].'" ALIGN=left><b><font color="green">You have premium points: </font></b>'.$user_premium_points.'</TD></TR>
</table>';
}
else
$main_content .= '<TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4>
<TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" ALIGN=center CLASS=white ><B>Shop Information</B></TD></TR>
<TR><TD BGCOLOR="'.$config['site']['darkborder'].'"><center>Shop is currently closed. [to admin: edit it in \'config/config.php\']</TD></TR>
</table>';

Link para o post
Compartilhar em outros sites

andreoam, boa tarde

Aparece algum erro na sua distro?

Nenhum, a distro fica intacta, limpinha, sem erro nenhum

 

@Edit

keilost1

Aparece um erro sim, mas nao relacionado com este do shop.

post-103802-0-02462200-1431367831_thumb.
 

 

post-103802-0-02462200-1431367831_thumb.

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

Gostaria de saber se há erro quando o item é enviado repetidas vezes para o player.

Não, nenhum. apenas esta mensagem pra esperar 30 segundos que fica aparecendo a cada 30 segundos, e o item sendo enviado varias vezes a cada 30 segundos.

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

Tente usar este: 

 

-- ### CONFIG ###
-- 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_comunication')
        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 player = Player(tostring(result.getDataString(result_plr, 'name')))
                        if player 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 received_item = 0
                                local full_weight = 0
                                local itemType = ItemType(itemtogive_id)
                                if add_item_type == 'container' then
                                        if itemType:isRune() then
                                                full_weight = container_count * itemType:getWeight()
                                        else
                                                full_weight = container_count * itemType:getWeight(itemtogive_count)
                                        end
                                        full_weight = full_weight + ItemType(container_id):getWeight()
                                else
                                        if itemType:isRune() then
                                                full_weight = itemType:getWeight()
                                        else
                                                full_weight = itemType:getWeight(itemtogive_count)
                                        end
                                end
 
                                local free_cap = player:getFreeCapacity()
                                if full_weight <= free_cap then
                                        if add_item_type == 'container' then
                                                local new_container = Game.createItem(container_id, 1)
                                                local iter = 0
                                                while iter ~= container_count do
                                                        new_container:addItem(itemtogive_id, itemtogive_count)
                                                        iter = iter + 1
                                                end
                                                received_item = player:addItemEx(new_container)
                                        else
                                                local new_item = Game.createItem(itemtogive_id, itemtogive_count)
                                                received_item = player:addItemEx(new_item)
                                        end
 
                                        if type(received_item) == 'number' and received_item == 0 then
                                                player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'You received >> ' .. add_item_name .. ' << from OTS shop.')
                                                db.query('DELETE FROM `z_ots_comunication` WHERE `id` = ' .. id)
                                                db.query('UPDATE `z_shop_history_item` SET `trans_state` = \'realized\', `trans_real` = ' .. os.time() .. ' WHERE id = ' .. id)
                                        else
                                                player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, '>> ' .. 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
                                        player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, '>> ' .. 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
                until not result.next(result_plr)
                result.free(result_plr)
        end
        return true
end

Link para o post
Compartilhar em outros sites

Caso não der, pode usar o meu

-- ### 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, 'Você recebeu: '.. add_item_name ..' do shopping online.')
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 ..' << Seu item esta esperando por você. Por favor libeere um local para este item em sua mochila e aguarde '.. SQL_interval ..' segundos para obte-lo.')
end
else
doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << Seu item esta esperando por você. O peso do item é '.. full_weight ..' oz. Você tem no momento '.. free_cap ..' oz. de capacidade livre. Coloque alguns itens no depósito e espere cerca de '.. SQL_interval ..' segundos para obte-lo.')
end
end
if not(result_plr:next()) then
break
end
end
result_plr:free()
end
return TRUE
end
Link para o post
Compartilhar em outros sites

luanluciano93

Eu usei esse uma vez e ele funcionou por algumas horas e depois o bug continuou, estou usando ele agora e esta fucionando normalmente, vou deixar online pra ver se vai bugar de novo.

 

-- ### CONFIG ###
-- 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_comunication')
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 player = Player(tostring(result.getDataString(result_plr, 'name')))
if player 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 received_item = 0
local full_weight = 0
local itemType = ItemType(itemtogive_id)
if add_item_type == 'container' then
if itemType:isRune() then
full_weight = container_count * itemType:getWeight()
else
full_weight = container_count * itemType:getWeight(itemtogive_count)
end
full_weight = full_weight + ItemType(container_id):getWeight()
else
if itemType:isRune() then
full_weight = itemType:getWeight()
else
full_weight = itemType:getWeight(itemtogive_count)
end
end

local free_cap = player:getFreeCapacity()
if full_weight <= free_cap then
if add_item_type == 'container' then
local new_container = Game.createItem(container_id, 1)
local iter = 0
while iter ~= container_count do
new_container:addItem(itemtogive_id, itemtogive_count)
iter = iter + 1
end
received_item = player:addItemEx(new_container)
else
local new_item = Game.createItem(itemtogive_id, itemtogive_count)
received_item = player:addItemEx(new_item)
end

if type(received_item) == 'number' and received_item == 0 then
player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'You received >> ' .. add_item_name .. ' << from OTS shop.')
db.query('DELETE FROM `z_ots_comunication` WHERE `id` = ' .. id)
db.query('UPDATE `z_shop_history_item` SET `trans_state` = \'realized\', `trans_real` = ' .. os.time() .. ' WHERE id = ' .. id)
else
player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, '>> ' .. 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
player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, '>> ' .. 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
until not result.next(result_plr)
result.free(result_plr)
end
return true
end

 

 

luanluciano93 e o nosso sistema vip que estamos vendo neste topico, http://www.tibiaking.com/forum/topic/49770-tfs-11-vip-system-by-luanluciano93/

você nao respondeu mas =(

 

 

keilost1

o seu da o seguinte erro.

post-103802-0-99154400-1431383834_thumb.

 

post-103802-0-99154400-1431383834_thumb.

Link para o post
Compartilhar em outros sites

Opa, esqueci de mudar uma função

-- ### 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.storeQuery("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, 'Você recebeu: '.. add_item_name ..' do shopping online.')
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 ..' << Seu item esta esperando por você. Por favor libeere um local para este item em sua mochila e aguarde '.. SQL_interval ..' segundos para obte-lo.')
end
else
doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << Seu item esta esperando por você. O peso do item é '.. full_weight ..' oz. Você tem no momento '.. free_cap ..' oz. de capacidade livre. Coloque alguns itens no depósito e espere cerca de '.. SQL_interval ..' segundos para obte-lo.')
end
end
if not(result_plr:next()) then
break
end
end
result_plr:free()
end
return TRUE
end
Editado por keilost1 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Tente usar este: 

 

-- ### CONFIG ###
-- 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_comunication')
        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 player = Player(tostring(result.getDataString(result_plr, 'name')))
                        if player 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 received_item = 0
                                local full_weight = 0
                                local itemType = ItemType(itemtogive_id)
                                if add_item_type == 'container' then
                                        if itemType:isRune() then
                                                full_weight = container_count * itemType:getWeight()
                                        else
                                                full_weight = container_count * itemType:getWeight(itemtogive_count)
                                        end
                                        full_weight = full_weight + ItemType(container_id):getWeight()
                                else
                                        if itemType:isRune() then
                                                full_weight = itemType:getWeight()
                                        else
                                                full_weight = itemType:getWeight(itemtogive_count)
                                        end
                                end
 
                                local free_cap = player:getFreeCapacity()
                                if full_weight <= free_cap then
                                        if add_item_type == 'container' then
                                                local new_container = Game.createItem(container_id, 1)
                                                local iter = 0
                                                while iter ~= container_count do
                                                        new_container:addItem(itemtogive_id, itemtogive_count)
                                                        iter = iter + 1
                                                end
                                                received_item = player:addItemEx(new_container)
                                        else
                                                local new_item = Game.createItem(itemtogive_id, itemtogive_count)
                                                received_item = player:addItemEx(new_item)
                                        end
 
                                        if type(received_item) == 'number' and received_item == 0 then
                                                player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'You received >> ' .. add_item_name .. ' << from OTS shop.')
                                                db.query('DELETE FROM `z_ots_comunication` WHERE `id` = ' .. id)
                                                db.query('UPDATE `z_shop_history_item` SET `trans_state` = \'realized\', `trans_real` = ' .. os.time() .. ' WHERE id = ' .. id)
                                        else
                                                player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, '>> ' .. 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
                                        player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, '>> ' .. 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
                until not result.next(result_plr)
                result.free(result_plr)
        end
        return true
end

Tópico resolvido. Fica a vontade pra fechar.

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 ismaeljunior1991
      bom dia galera do TK , estou com dificuldades em achar um shop.lua pro meu servidor pois nao sei criar um do zero , preciso de um para vender apenas 1 item no site as configuracoes do site ja estao arrumadas porem preciso de um shop.lua se alguem puder me indicar um tutorial ou me ajudar a fazer um ficaria grato , estou esperando respostas , desde já agradesco a todos que puder ajudar
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo