Tente esse:
GlobalEvents/scripts/shop.lua
-- ### 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", 'Bought by ' .. getCreatureName(cid) .. ' [iD:' .. id .. '].')
local iter = 0
while iter ~= container_count do
local new_item = doCreateItemEx(itemtogive_id, itemtogive_count)
doItemSetAttribute(new_item, "description", 'Bought by ' .. 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", 'Bought by ' .. 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
No Phpmyadmin execute essa query:
1 =
CREATE TABLE IF NOT EXISTS `z_shop_history_item` ( `id` int(11) NOT NULL AUTO_INCREMENT, `to_name` varchar(255) NOT NULL DEFAULT '0', `to_account` int(11) NOT NULL DEFAULT '0', `from_nick` varchar(255) NOT NULL, `from_account` int(11) NOT NULL DEFAULT '0', `price` int(11) NOT NULL DEFAULT '0', `offer_id` int(11) NOT NULL DEFAULT '0', `trans_state` varchar(255) NOT NULL, `trans_start` int(11) NOT NULL DEFAULT '0', `trans_real` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
2 =
CREATE TABLE IF NOT EXISTS `z_shop_history_pacc` ( `id` int(11) NOT NULL AUTO_INCREMENT, `to_name` varchar(255) NOT NULL DEFAULT '0', `to_account` int(11) NOT NULL DEFAULT '0', `from_nick` varchar(255) NOT NULL, `from_account` int(11) NOT NULL DEFAULT '0', `price` int(11) NOT NULL DEFAULT '0', `pacc_days` int(11) NOT NULL DEFAULT '0', `trans_state` varchar(255) NOT NULL, `trans_start` int(11) NOT NULL DEFAULT '0', `trans_real` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
3 =
CREATE TABLE IF NOT EXISTS `z_shop_offer` ( `id` int(11) NOT NULL AUTO_INCREMENT, `points` int(11) NOT NULL DEFAULT '0', `itemid1` int(11) NOT NULL DEFAULT '0', `count1` int(11) NOT NULL DEFAULT '0', `itemid2` int(11) NOT NULL DEFAULT '0', `count2` int(11) NOT NULL DEFAULT '0', `offer_type` varchar(255) DEFAULT NULL, `offer_description` text NOT NULL, `offer_name` varchar(255) NOT NULL, `pid` int(11) NOT NULL DEFAULT '0', `category` int(11) NOT NULL DEFAULT '1', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
4 =
CREATE TABLE IF NOT EXISTS `z_ots_comunication` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `type` varchar(255) NOT NULL, `action` varchar(255) NOT NULL, `param1` varchar(255) NOT NULL, `param2` varchar(255) NOT NULL, `param3` varchar(255) NOT NULL, `param4` varchar(255) NOT NULL, `param5` varchar(255) NOT NULL, `param6` varchar(255) NOT NULL, `param7` varchar(255) NOT NULL, `delete_it` int(2) NOT NULL default '1', PRIMARY KEY (`id`) );
Adicionada aqui Tendo Tensei valeu ![]()
Espero ter ajudado.






info
Grupo: Campones
Registrado: 25/10/10
Posts: 2
Reputação: 0
BOM ESTOU AKI PARA PEDIR AJUDA.
QUANDO CRIO O SITE PARA MEU OT E VOU EDITAR O SISTEMA DO SHOP E ENTREGA DE ITENS EM 30 SEGUNDOS COMO NESTE TOPICO FALA :http://www.xtibia.com/forum/topic/147394-globalevents-entregando-itens-do-site-automaticamente/
NAO CONSIGO RECEBER O ITEM E TAMBEM O SERVER PARA DE SALVAR, NAO SEI O QUE FAÇO
ALGUEM PODE ME AJUDAR?? OBRIGADO