MA
pedido

[Pedido.] Shop Sytem

Por masao, 30 de jun. de 2012 em Scripts

otserv
tibia
script
3
814
masaoM
30 de junho de 2012 às 01:45

Boa Noite Pessoal.

 

Bom Hoje estou aqui para fazer um pedido aos meus queridos Scripters...!

 

Gostaria de Pedir um Sitema de Shop para meu web site.

Gesior account manager 0.3.6 por Gpedro.

 

Bom queria um sistema muito simples, o player vai no site, ele tendo os pontos, logue sua acc e compre oque estiver a venda la no website, portanto preciso que o item seja entregue ao seu destino.

ja consegui adicionar todos os items no site, portanto vi um tutorial

http://www.xtibia.co...ao-shop-gesior/

fiz tudo oque dizia lá mas simplesmente não ocorreu exatamente nada no meu servidor, não deu erros, mas também não foi item nenhum.

Então peço a vocês que sabem dessa area que me ajudem.

 

Bom Final de semana para todos do Xtibia.

 

espero suas respostas

 

OBS: O SITE JÁ CONTÉM SISTEMA DE SHOP, SÓ PRECISO DOS COMPONENTES QUE FAZEM ELE RODAR.

 

Masao.

vinny160600V
30 de junho de 2012 às 02:11

se eu entedi, você quer q o item chegue ao char? certo. então:

 

va em

data/globalevents/globalevents.xml

 

abra e coloque isso:

 

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

 

após va na pasta scripts copie qualquer arquivo la e renomeie para Shop.lua e apague tudo e coloque isso:

 

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

 

tenta ae.

masaoM
30 de junho de 2012 às 08:39

amigo, tentei mas não deu nada, isso que acho ingraçado nao apareçe nenhum error nem nada simplesmente não funciona :/