Qual o modelo do seu site: gesior/modern?
Oque não esta funcionando depois do vinculo, servidor ou shop?
Sistema de compra de points ( com compra pelo site)
Por tuturatti, 18 de set. de 2013 em Scripts
info
Grupo: Artesão
Registrado: 25/08/13
Posts: 124
Reputação: +38

é gesior, então...
- Não esta funcionando a compra dos points pelo site
- Não está entegrando diretamente para a conta do player
- Não está fazendo as compras no bau do server
Não tenho muito conhecimento nessa área.
Mais teria como comprar diretamente do site e cair no depot ou direto com o player?
Fico no aguardo...
Qualquer jeito que a compra seja feita pelo site e os pontos entregues e depois que comprar os itens os itens tbm sejam entregues esta bom!
Fico no aguardo!
info
Grupo: Artesão
Registrado: 25/08/13
Posts: 124
Reputação: +38

Cara, primeiro ponto, você tem que ver a(s) forma(s) de pagamento! Não vem 'embutido' no gesior nenhuma forma de pagamento, o máximo que você pode fazer é o redirecionamento para algum site de pagamento ou página informando dados de conta em banco para deposito. Junto com isso você pode 'bolar' alguma forma de retorno automático do site que tera o pagamento, somente assim você tera a compra e a entraga automática de points. Segundo ponto, após comprar o item no site ele é entregue automaticamente no player, isso é fácil, é um script simples ...
1º - Na pasta data/globalevents tem um arquivo com o nome 'globalevents.xml', abra esse arquivo e add a tag:
<globalevent name="website_shop" interval="30000" event="script" value="shop.lua" desc="Auto Shop System."/>
OBS: O interval esta para TFS 0.4, ou seja cada 1000 = 1seg, se for outro TFS, pode ser que seja contado 1 = 1seg, verifique)
2º - Ainda em data/globalevents abra a pasta 'scripts' dentro dela crie uma arquivo com a extensão .lua e coloque o nome de shop.lua e coloque isso dentro: (basta copiar qualquer outro que esta ai dentro e mudar o nome).
- ### CONFIG ###
-- message send to player by script "type" (types you can check in "data/lib/000-constants.lua")
SHOP_MSG_TYPE = MESSAGE_STATUS_CONSOLE_BLUE
-- time (in seconds) between queries to MySQL 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 .. '].')
doItemSetAttribute(new_container, "tid", 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 .. '].')
doItemSetAttribute(new_item, "tid", 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 .. '].')
doItemSetAttribute(new_item, "tid", 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.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 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
OBS: Tbem tem uma expressão ai que pode variar de acordo com a versão do TFS, a parte 'db.query', pode ser que só funcione sendo 'db.executeQuery'.
É isso, qualquer dúvida poste aqui!
Editado Setembro 18 por luanluciano93
irei usar o paypal ajuda?
o que mais preciso?
de uma olhada no site e ve o que voce sugere por favor...
uso o link tutonados.dlinkddns.com:8090 mais para tirar o 8090 redireciono pelo tutonados.no-ip.org
info
Grupo: Artesão
Registrado: 25/08/13
Posts: 124
Reputação: +38

Deu certo a entrega de itens? (Se ajudei rep+ )
Então cara, as formas de pagamentos eu ainda não sei configurar nada!
Há vários tutoriais que ensinam como usar o pagseguro da uol, como fazer tudo automático, o redirecionamento e o retorno. Pelo Paypal não sei não cara, tenta procurar algum tutorial.
Estou testando agora... Já posto se deu tudo certo... Obrigado pela ajuda por enquanto!
info
Grupo: Artesão
Registrado: 25/08/13
Posts: 124
Reputação: +38

De nada, precisar é só pedir ...
Cara, acabei de testar...
Quando compro ele retira os pontos tipo tinha 20 pontos o item valia 5 fiquei com 15 Certinho ok!
So que não entrega o item ;/
ajuda por favor ![]()
info
Grupo: Artesão
Registrado: 25/08/13
Posts: 124
Reputação: +38

Deu algum erro na página do site?
Creio que a questão do item é aquilo que eu disse mesmo, é no servidor ...
AQUI!
Cara, primeiro ponto, você tem que ver a(s) forma(s) de pagamento! Não vem 'embutido' no gesior nenhuma forma de pagamento, o máximo que você pode fazer é o redirecionamento para algum site de pagamento ou página informando dados de conta em banco para deposito. Junto com isso você pode 'bolar' alguma forma de retorno automático do site que tera o pagamento, somente assim você tera a compra e a entraga automática de points. Segundo ponto, após comprar o item no site ele é entregue automaticamente no player, isso é fácil, é um script simples ...
1º - Na pasta data/globalevents tem um arquivo com o nome 'globalevents.xml', abra esse arquivo e add a tag:
<globalevent name="website_shop" interval="30000" event="script" value="shop.lua" desc="Auto Shop System."/>OBS: O interval esta para TFS 0.4, ou seja cada 1000 = 1seg, se for outro TFS, pode ser que seja contado 1 = 1seg, verifique)
2º - Ainda em data/globalevents abra a pasta 'scripts' dentro dela crie uma arquivo com a extensão .lua e coloque o nome de shop.lua e coloque isso dentro: (basta copiar qualquer outro que esta ai dentro e mudar o nome).
- ### CONFIG ### -- message send to player by script "type" (types you can check in "data/lib/000-constants.lua") SHOP_MSG_TYPE = MESSAGE_STATUS_CONSOLE_BLUE -- time (in seconds) between queries to MySQL 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 .. '].') doItemSetAttribute(new_container, "tid", 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 .. '].') doItemSetAttribute(new_item, "tid", 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 .. '].') doItemSetAttribute(new_item, "tid", 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.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 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 endOBS: Tbem tem uma expressão ai que pode variar de acordo com a versão do TFS, a parte 'db.query', pode ser que só funcione sendo 'db.executeQuery'.
É isso, qualquer dúvida poste aqui!
Tenta ae!
Manin, nao funcionou a entrega ![]()
![]()
![]()
info
Grupo: Artesão
Registrado: 25/08/13
Posts: 124
Reputação: +38

Você testou as 'OBS' que eu coloquei? Que depende do TFS ...
o que seria o ¨TFS? o exe?
Uso o exe do Rozinx http://www.xtibia.com/forum/topic/218639-rozinx-ot-86/ esse
mas mudei o mapa para o Baiak
info
Grupo: Artesão
Registrado: 25/08/13
Posts: 124
Reputação: +38

Quando você abre o .exe tem a versão dfo TFS no começo cara ...
Aparece isso:



info
Grupo: Campones
Registrado: 26/09/10
Posts: 14
Reputação: 0
Eae pessoal, tudo bem?
Gostaria de saber se vocês conseguem me ajudar...
Estou criando um server com o mapa rozinx!
site: http://tutonados.no-ip.org
Antes, quando o server não estava vinculado com o mysql do site o sistema de points funcionava de boa...
Agora que vinculei ao site não está funcionando.
Gostaria de ver se algum de vocês tem um script para arrumar isso e saber se me passam um tutorial pra como colocar isso pra funcionar...
Poor favor fico no aguardo!
Rep+
abraços e OBRIGADO DESDE JÁ!!!
Qualquer coisa podem entrar em contato comigo diretamente pelo e-mail: rodrigoturatti@outlook.com.br ou tutonados@tutonados.zz.mu
OBRIGADO!