Ir para conteúdo
  • Cadastre-se

(Resolvido)[ERRO] Gesior não entrega Item comprado no SHOP


Ir para solução Resolvido por alissonfgp,

Posts Recomendados

  Em 25/02/2017 em 21:16, Dornellas disse:

20j4bxw.png

O erro que está acontecendo aqui é esse.

Testei em um char e o item não chegou no char

Depois testei em outro e agora não para de vi mais bota.. vem toda hora a cada 30 segundos

 

Mostrar mais  

 

usa esse shop.lua pra ver se para de dar erro

 

  Citar

-- ### 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

Mostrar mais  

 

Link para o post
Compartilhar em outros sites
  • Respostas 22
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

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.storeQuery("SELECT * FROM z_ots_comunication")     if(result_plr ~= false) then         repeat             local id = tonumber(result.getDataInt(result_plr, "id"))             local ac

Substitui o que tem dentro de seu Shop.lua pro esse arquivo aqui:  

  Em 25/02/2017 em 22:02, Biinhows disse:

 

usa esse shop.lua pra ver se para de dar erro

 

 

Expand   Mostrar mais  

Amigo, coloquei seu script pra rodar porem aparece assim na DISTRO "Event OnThink not found"

e pra piorar a situação, eu fui executar dois comandos query daquele link que você mandou (Shop)

 

DROP TABLE IF EXISTS `z_shop_history_item`; 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` varchar(255) NOT NULL DEFAULT '', `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=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
DROP TABLE IF EXISTS `z_shop_offer`; 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, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

e agora eu não consigo adicionar nenhum item no shop mais kkk

Aparece a seguinte mensagem quando eu adiciono um item no shop:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'pid' in 'field list'' in C:\xampp\htdocs\shopadmin.php:73 Stack trace: #0 C:\xampp\htdocs\shopadmin.php(73): PDO->query('INSERT INTO `z_...') #1 C:\xampp\htdocs\index.php(323): include('C:\xampp\htdocs...') #2 {main} thrown in C:\xampp\htdocs\shopadmin.php on line 73

 

Me ajuda porfavor

 

Link para o post
Compartilhar em outros sites
  • 2 years later...

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 KotZletY
      Salve geral, recentemente fiz um Task System para meu servidor, então gostaria de compartilha ele com vocês, assim como outros scripts que fiz e gostaria de compartilhar. Bom, vamos ao que interessa.
                        
       
                                                                                                               Informações!!
      Task Normal - Você 1x por vez, quantas vezes quiser, repetindo a task se também quiser.
      Task Diaria -  Você faz uma vez por dia, não podendo repeti em quanto as 24 horas não terminar.
      Task Rank - É mostrado na descrição do player qual rank task ele possui.
      Task Rank Quest - Um extra desse task system é o piso task, será explicado na parte do script, leiam com atenção.
      Task Comandos - Comandos task, 1 para ver o progresso das suas task e outro para mostrar informações do seu personagem, como uma consulta, os comandos são: !task que mostra quais task você ta fazendo, tanto diaria quanto normal e !task me que mostrar informações do seu personagem, como rank, quantidade de pontos task e quantidade de pontos task rank.
      Well, o resto é surpresa, cabe você descobrir! xD
       
       
      Para não ficar só nas palavras, mostrarei algumas imagens, várias no caso: Removida, colocarei novas!
       
                                                                                                               Instalação!!
      Muito bem, chega de conversa, como instalar logo essa bagaça. Primeiramente vá em data/lib e abra o arquivo lib.lua e adicione:
      dofile('data/lib/task system.lua') Ainda na pasta lib crie um arquivo.lua chamado task system.lua e adicione esse code dentro:
       
      No final do tópico, ensinarei a configurar a lib. Agora vai em, data/npc e crie um arquivo.xml chamado  task.xml e coloque esse code dentro:
      <?xml version="1.0" encoding="UTF-8"?> <npc name="NPC Task" script="task system.lua" walkinterval="0" floorchange="0"> <health now="150" max="150"/> <look type="430"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|. I'm in charge of delivering missions to the players. Would you like to do a {normal} task, {daily} task, {receive} your reward from a task or {abandon} a task ? You can also see the {normal task list} and the {daily task list}."/> <parameter key="message_farewell" value="See you later." /> <parameter key="message_walkaway" value="See you later." /> </parameters> </npc> Ainda na pasta npc, entre na pasta scripts e crie um arquivo.lua chamado task system.lua e adicione esse code dentro:
       
      Agora vá em data/talkactions e abra o arquivo talkactions.xml e adicione a seguinte tag:
      <talkaction words="!task" separator=" " script="task system.lua" /> Ainda na pasta talkactions entre na pasta scripts e crie um arquivo.lua chamado task system.lua e adicione esse code dentro dele:
       
      Agora vá em data/creaturescripts e abra o arquivo creaturescripts.xl e adicione a seguinte tag:
      <event type="kill" name="tasksystem" script="task system.lua"/> Ainda na pasta creaturescripts entre na pasta scripts e crie um arquivo.lua chamado task system.lua e adicione esse code dentro dele:
      Ainda na pasta script  abra o login.lua e adicione dentro:
      player:registerEvent("tasksystem") Agora vá em data/events/scripts e abra o arquivo player.lua, depois de aberto, antes de:
      self:sendTextMessage(MESSAGE_INFO_DESCR, description) adicione:
      if thing:isCreature() then if thing:isPlayer() then description = string.format("%s\nTask Rank: "..getRankTask(thing), description) end end  
                                                                                              Extra(Opcional)!!
       
      Extra,  vá em data/movements/scripts e crie um  arquivo chamado tile task.lua, depois de aberto, antes de:
            
      Vá em data/movements/movements.xml adicione: 
      <movevent event="StepIn" actionid="XXXX" script="tile task.lua"/>  
      Explicação: Com esse movements acima, você só poderá passar por o piso caso tenha pontos task necessário para passar, se ativar a opção, removePoints então a mesma quantidade de pontos necessária para passar, será removida, ao passar, caso esteja desativada, então
      apenas será necessário ter os pontos task para passar. Em XXXX coloque o actionid, e o actionid coloque no piso desejado!
       
      New Extra: Vá em data/movements/scripts e crie um arquivo chamado tile task2.lua e adicione o seguinte scripts:
       
      Vá em data/movements/movements.xml adicione:  
      <movevent event="StepIn" actionid="XXXX" script="tile task2.lua"/> Explicação: Ao adicionar esse movements acima, você só poderá passar pelo piso caso seu rank task seja igual ou superior ao rank definido na variável, caso não seja igual e nem superior, não será possível passar.
      Configure na lib, a sequência de ranks de acordo com a sequência de rank da tabela de pontos, assim:
       
      A sequência precisa está igual e numeradas.
                                                                                               Configurando!!
      task_monsters = { [1] = {name = "monster1", mons_list = {"monster_t2", "monster_t3"}, storage = 30000, amount = 20, exp = 5000, pointsTask = {1, 1}, items = {{id = 2157, count = 1}, {id = 2160, count = 3}}}, [2] = {name = "monster2", mons_list = {"", ""}, storage = 30001, amount = 10, exp = 10000, pointsTask = {1, 1}, items = {{id = 10521, count = 1}, {id = 2160, count = 5}}}, [3] = {name = "monster3", mons_list = {"", ""}, storage = 30002, amount = 10, exp = 18000, pointsTask = {1, 1}, items = {{id = 2195, count = 1}, {id = 2160, count = 8}}}, [4] = {name = "monster4", mons_list = {"", ""}, storage = 30003, amount = 10, exp = 20000, pointsTask = {1, 1}, items = {{id = 2520, count = 1}, {id = 2160, count = 10}}} } task_daily = { [1] = {name = "monsterDay1", mons_list = {"monsterDay1_t2", "monsterDay1_t3"}, storage = 40000, amount = 10, exp = 5000, pointsTask = {1, 1}, items = {{id = 2157, count = 1}, {id = 2160, count = 3}}}, [2] = {name = "monsterDay2", mons_list = {"", ""}, storage = 40001, amount = 10, exp = 10000, pointsTask = {1, 1}, items = {{id = 10521, count = 1}, {id = 2160, count = 5}}}, [3] = {name = "monsterDay3", mons_list = {"", ""}, storage = 40002, amount = 10, exp = 18000, pointsTask = {1, 1}, items = {{id = 2195, count = 1}, {id = 2160, count = 8}}}, [4] = {name = "monsterDay4", mons_list = {"", ""}, storage = 40003, amount = 10, exp = 20000, pointsTask = {1, 1}, items = {{id = 2520, count = 1}, {id = 2160, count = 10}}} }                                        
                                                    
      nome - Nome do monstro.
      mons_list - Nome dos monstro que são semelhantes e que matando eles também contará.
      Exemplo:
      name = "troll", mons_list = {"troll","frost troll","island troll"} e assim matando,  troll, frost troll e island troll contará na task também.
      storage - É a storage que salva a quantidade de monstros já matados.
      amount - É a quantidade necessária de monstros matados para finalizar a task.
      exp - É a quantidade de Experiência que vai ganhar ao finalizar a task, caso não queira dar experiência, basta deixar em 0.
      pointsTask = {Task Points Que vai ganhar(Pontos usado no piso e etc..), Pontos Rank, que irá ganhar e aumentar seu rank.}
      items - Itens que o player vai ganhar, devem está tabelados, dentro da tabela item, adicione das tabelas contendo o id do item e count, quantidade de items que irá ganhar.
      Ex: items = {{id = 2157, count = 1}, {id = 2160, count = 3}} -- Aqui contém 2x tipos de itens, o 2157 e o 2160, e suas devidas quantidades que irá ganhar.
      items = {{id = 2157, count = 1}} -- Aqui só tem 1 tipo de item e a quantidade que vai ganhar.
      Adicione quantos itens quiser. O mesmo vale para as task diarias!
       
       
       
      Bom, é isso ae, qualquer duvida, crítica, sugestões, deixem ae, se precisa de suporte na instalação ou está com erro em algo estarei dando suporte, abraços e bom uso do sistema.
      É totalmente proibido leva meu sistema para outro site, blog ou fórum!
    • Por elitehox
      boa tarde a todos,
      Estou tentando instalar o plugin gesior shop for Myaac. quando tento acessar gifts.php retorno erro 500 http.
      Alguém pode me ajudar? este é o log de erros do Apache ...
       
       
      [php7:error] [pid 24148] [client 177.130.9.96:56512] PHP Fatal error: Uncaught PDOException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'ordering' in 'order clause' in /var/www/html/system/libs/pot/OTS_Base_DB.php:86\nStack trace:\n#0 /var/www/html/system/libs/pot/OTS_Base_DB.php(86): PDO->query()\n#1 /var/www/html/system/libs/pot/OTS_DB_PDOQuery.php(13): OTS_Base_DB->doQuery()\n#2 /var/www/html/plugins/gesior-shop-system/libs/shop-system.php(137): OTS_Base_DB->query()\n#3 /var/www/html/system/pages/gifts.php(199): GesiorShop::getOffers()\n#4 /var/www/html/index.php(362): require('/var/www/html/s...')\n#5 {main}\n thrown in /var/www/html/system/libs/pot/OTS_Base_DB.php on line 86  
       
       

    • Por Bagon
      Bom, hoje venho trazer á vocês um sistema de Pet System DIFERENCIADO de alguns presentes no fórum. Este sistema tem diversos comandos diferenciados, como: 
       
      !pet nomedopet este comando irá sumonar o pet. 
      !remove irá remover o pet.
      !fale eu sou lindo o pet falará "eu sou lindo"
      !conversar o pet irá conversar com vc. 
       
      Então sem mais delongas vamos ao script.
       
      OBS: SCRIPT TESTADO SOMENTE EM TFS 0.4/0.3, e este script foi feito com a intenção de ser vendido no site do ot ou em poderá usar como quest usando o item selecionado como premio. fique ao seu critério.
       
      Primeiro vá até a pasta talkaction/script e crie um arquivo chamado petsystem.lua, depois coloque o seguinte script:
       
       
      Agora em talkactions/talkactions.xml adicione a seguinte tag:
       
      <talkaction words="!pet;!remove;!fale;!conversar" event="script" value="petsystem.lua" />  
      EXPLICAÇÂO:
      As partes em Negrito, são os pets. Você pode alterar ou criar monstros para fazer eles como pets. (Recomendo criar um monstro para que seja somente pet.)
       
      Exemplo: ["dog"]= {stor=78552},      
       
       
      Lembrando que é necessário mudar esta parte no script do monstro colocado a cima.
       
      <flag attackable="1" /> para :
       
      <flag attackable="0" />  
      agora vá em action/script e crie um arquivo chamado pet com o seguinte script:
       
       
      e vá em action.xml e adiciona a seguinte tag:
       
      <action itemid="10063" script="pet.lua"/> Explicação: Na tag da action o itemid é o item que deverá ser usado para ganhar a storage 78552, e assim podera sumonar o monstro com esta storage.
       
                                              
                                                         CRIE UMA ACTION COM A TAG A CIMA PARA CADA MONSTRO COLOCADO NA TALKACTION,
                                                         BASTA VC ALTERAR A STORAGE DO SCRIPT DA ACTION
                                                         EXEMPLO: em action altere as storage que estão em vermelho, como mostra abaixo
       
                                                              if getPlayerStorageValue(cid, 78552) < 1 then
                                                              setPlayerStorageValue(cid, 78552, 1)
       
                                                         aonde tem 78552 altere para 78553 que no caso é a storage do cyclops escolhido lá no script da talkaction
                                                         e assim susecivelmente.
       
       
       
      CREDITOS:
      Mulizeu
      Smartbox
      Bagon 
       
    • Por Imperius
      Olá, pessoal! Acabei encontrando um script que tinha feito a um tempo atrás. Estou compartilhando aqui para quem quiser usar ou melhorar.
       
      É bem parecido com os outros sistemas de roleta, igual deste tópico: https://tibiaking.com/forums/topic/101557-action-cassino-roleta-de-items/
       
      Como funciona?
       
      O "Treasure Chest" é um item custom, onde o jogador têm a possibilidade de ganhar itens raros ou bem meia boca. Tudo dependerá da sorte.
       
      O jogador precisa tacar o treasure chest na bancada e acionar a alavanca. O treasure chest irá se transformar em vários itens de forma randômica no qual o jogador poderá ou não ganhar. No final, apenas um item é entregue ao jogador.
       
      Para entender melhor o seu funcionamento, segue o GIF abaixo:
       

       
       
      em data > actions > actions.xml
       
       
      em data > actions > scripts > crie um arquivo chamado leverTreasureChest.lua
       
       
      no banco de dados do servidor, adicione o seguinte código em "SQL":
       
       
       

      Também estou disponibilizando uma página PHP, para quem quiser usar no site do servidor. Na página tem informações sobre o funcionamento, quais são os possíveis prêmios e a lista de jogadores que ganharam os itens raros.
       

       
       
      Espero ter ajudado de alguma forma! : )
       
      treasure_chest.php
    • Por 4Marsupilami
      I present my newest beautiful and tasty layout called Silver brown cake. If you are interested in a unique layout, write to me on discord.
       
      • E-mail: 4Marsupilami@gmail.com
      • Discord: 4Marsupilami#1243
       
       


  • Estatísticas dos Fóruns

    96842
    Tópicos
    519594
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo