Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Assim, SHOP ta perfeito no site.

Mais acho que falta algum script dentro do server,

Pois compro as coisas no SITE, mais nao recebo dentro do jogo.

Alguem consegue me ajuda?

Link para o post
Compartilhar em outros sites

Data/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)

local iter = 0

while iter ~= container_count do

doAddContainerItem(new_container, itemtogive_id, itemtogive_count)

iter = iter + 1

end

received_item = doPlayerAddItemEx(cid, new_container)

else

local new_item = doCreateItemEx(itemtogive_id, itemtogive_count)

received_item = doPlayerAddItemEx(cid, new_item)

end

if received_item == RETURNVALUE_NOERROR then

doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from OTS shop.')

db.executeQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")

db.executeQuery("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";")

else

doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << Seu item esta esperando por voce. Por favor faça o 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 voce. O peso do item e '.. full_weight ..' oz., Vc tem no momento '.. free_cap ..' oz. de capacidade livre. Coloque alguns itens no deposito 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

Data/Globalevents/Globalevents.xml

<globalevent name="shop" interval="30" script="shop.lua"/>
Link para o post
Compartilhar em outros sites

Cara, coloquei esse ai. Mais ainda nao deu.

Uso Modern ACC.

Mais meu ot não tem o sistema de SHOP dentro dele, sera que falta mais alguma coisa?

Porque o SHOP no site ta de boa, ele compra e fala que foi adicionado,

Mais deve ta faltando algo pra chega até o player.

Link para o post
Compartilhar em outros sites

Olha, ao invez de colocar o script acima no SHOP.LUA coloque este:

function onThink(interval, lastExecution, thinkInterval)

local result = db.getResult("SELECT * FROM shop_history WHERE `processed` = 0;")

if(result:getID() ~= -1) then

while(true) do

cid = getCreatureByName(tostring(result:getDataString("player")))

product = tonumber(result:getDataInt("product"))

itemr = db.getResult("SELECT * FROM shop_offer WHERE `id` = "..product..";")

if isPlayer(cid) then

local id = tonumber(itemr:getDataInt("item"))

local tid = tonumber(result:getDataInt("id"))

local count = tonumber(itemr:getDataInt("count"))

local tipe = tonumber(itemr:getDataInt("type"))

local productn = tostring(itemr:getDataString("name"))

if isInArray({5,8},tipe) then

if getPlayerFreeCap(cid) >= getItemWeightById(id, count) then

if isContainer(getPlayerSlotItem(cid, 3).uid) then

received = doAddContainerItem(getPlayerSlotItem(cid, 3).uid, id,count)

if received then

doPlayerSendTextMessage(cid,19, "You have received >> "..productn.." << from our shop system")

db.executeQuery("UPDATE `shop_history` SET `processed`='1' WHERE id = " .. tid .. ";")

else

doPlayerSendTextMessage(cid,19, "Sorry, you don't have enough space on container to receive >> "..productn.." <<")

end

else

doPlayerSendTextMessage(cid,19, "Sorry, you don't have a container to receive >> "..productn.." <<")

end

else

doPlayerSendTextMessage(cid,19, "Sorry, you don't have enough capacity to receive >> "..productn.." << (You need: "..getItemWeightById(id, count).." Capacity)")

end

elseif isInArray({6,7},tipe) then

if tipe == 6 then

bcap = 8

bid = 1987

elseif tipe == 7 then

bcap = 20

bid = 1988

end

if isItemRune(id) then

count = 1

end

if getPlayerFreeCap(cid) >= (getItemWeightById(1987, 1) + getItemWeightById(id,count * bcap)) then

local bag = doCreateItemEx(bid, 1)

for i = 1,bcap do

doAddContainerItem(bag, id, count)

end

received = doPlayerAddItemEx(getPlayerSlotItem(cid, 3).uid, bag)

if received == RETURNVALUE_NOERROR then

doPlayerSendTextMessage(cid,19, "You have received >> "..productn.." << from our shop system")

db.executeQuery("UPDATE `shop_history` SET `processed`='1' WHERE id = " .. tid .. ";")

else

doPlayerSendTextMessage(cid,19, "Sorry, you don't have enough space to receive >> "..productn.." <<")

end

else

doPlayerSendTextMessage(cid,19, "Sorry, you don't have enough capacity to receive >> "..productn.." << (You need: "..getItemWeightById(id, count).." Capacity)")

end

end

end

itemr:free()

if not(result:next()) then

break

end

end

result:free()

end

return true

end

E se for preciso outro Sistema baixe este que está completo:

http://www.speedyshare.com/files/26113666/SHOP.zip

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

Duvida sanada.

Reportado para que seja fechado e movido.

Eu sou GuhPk, não se esqueça!!!

Eu te ajudei? Curtiu eu ou meu trabalho? Da um REP + como incentivo ai!!! =]

Meus Trabalhinhos e outras coisas....

Script's

Mapper

vfgdf.png

Link para o post
Compartilhar em outros sites

Participe da conversa

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

Visitante
Responder

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

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

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

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

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo