Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Bom galera,quero ver se alguem me ajuda,estou usando o 

 

http://www.tibiaking.com/forum/topic/36403-global-full-10371051-e-1053-tfs-10-completo-atualiza%C3%A7%C3%A3o-v4/

,a database que está no topico tmb.

 

 

Porém ,os itens do shopping,não para de chegar no char,verifiquei no phpmyadmin ,na tabela,z_ots_comunication,o registro do

item fica lá,pelo que vi no shop.lua,tem uma função que após ele receber o item,ele apaga do z_ots_comunication.mas não está

apagando e também no z_shop_history_item,ele continua no modo "wait",como se n tivesse recebido o item.

 

Ajuda!! Urgente

 
  •  
 
  •  
  •  
  •  
  •  

 

Ajudei ? Clique em GOSTEI!

Skype : neoowned
Link para o post
Compartilhar em outros sites

Poste o script do shop e fale a versão do seu TFS/OT

Não se esqueça de dar REP+ para quem te ajudou e caso seja a solução marcar como melhor resposta!

 

NÃO CLIQUE AQUI!

NEM AQUI!

________________________________________________________________________________________________________________________________________________________________________________________________________________________

 

A imaginação é mais importante que o conhecimento.” Albert Einstein

Link para o post
Compartilhar em outros sites

 

-- ### CONFIG ###

-- message send to player by script "type" (types you can check in "global.lua")
SHOP_MSG_TYPE = 18
-- 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 action = tostring(result.getDataString(result_plr, "action"))
  local delete = tonumber(result.getDataInt(result_plr, "delete_it"))
  local cid = getPlayerByName(tostring(result.getDataString(result_plr, "name")))
  if(cid) then
  local itemtogive_id = tonumber(result.getDataInt(result_plr, "param1"))
  local itemtogive_count = tonumber(result.getDataInt(result_plr, "param2"))
  local container_id = tonumber(result.getDataInt(result_plr, "param3"))
  local container_count = tonumber(result.getDataInt(result_plr, "param4"))
  local add_item_type = tostring(result.getDataString(result_plr, "param5"))
  local add_item_name = tostring(result.getDataString(result_plr, "param6"))
  local received_item = 0
  local full_weight = 0
  if(add_item_type == 'container') then
  container_weight = getItemWeight(container_id, 1)
  if(isItemRune(itemtogive_id)) then
  items_weight = container_count * getItemWeight(itemtogive_id, 1)
  else
  items_weight = container_count * getItemWeight(itemtogive_id, itemtogive_count)
  end
  full_weight = items_weight + container_weight
  else
  full_weight = getItemWeight(itemtogive_id, itemtogive_count)
  if(isItemRune(itemtogive_id)) then
  full_weight = getItemWeight(itemtogive_id, 1)
  else
  full_weight = getItemWeight(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(type(received_item) == "number" and received_item == RETURNVALUE_NOERROR) then
  doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from OTS shop.')
  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
  until not result.next(result_plr)
  result.free(result_plr)
  end
  return true
end

Uso tfs 1.0 (10.53) pelo que fiquei sabendo,tem que mudar algumas funções pq na versão 10.53 mudou,agora só não sei quais =/

Ajudei ? Clique em GOSTEI!

Skype : neoowned
Link para o post
Compartilhar em outros sites

Parece perfeitamente correto. Algum erro no distro?

Não se esqueça de dar REP+ para quem te ajudou e caso seja a solução marcar como melhor resposta!

 

NÃO CLIQUE AQUI!

NEM AQUI!

________________________________________________________________________________________________________________________________________________________________________________________________________________________

 

A imaginação é mais importante que o conhecimento.” Albert Einstein

Link para o post
Compartilhar em outros sites

Pois é.. nenhum erro no distro.

 

somente fica enviando itens sem parar para o char.

 

o que deve ter algo de errado é na parte

 

 

  if(type(received_item) == "number" and received_item == RETURNVALUE_NOERROR) then

  doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from OTS shop.')
  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

onde se o player recebeu o item,ele se comunica com a tabela z_ots_comunication,e deleta o registro de envio do item dela,que é o que faz parar de enviar o item pro char.

 

Tá complicado rs.

Ajudei ? Clique em GOSTEI!

Skype : neoowned
Link para o post
Compartilhar em outros sites

amigo esse erro ai é porque a database que você esta usando nao é compativel com a versao 10.53, temos que atualizar algums Bites Codigos e fontes... Se  minha resposta foi O Suficiente para sua duvida da um Rep++ ai Vlw.

Link para o post
Compartilhar em outros sites

Tem previsão para que saia,a nova database então ?,to precisando muito....

 

Após todas duvidas sanadas,irei dar rep++

Ajudei ? Clique em GOSTEI!

Skype : neoowned
Link para o post
Compartilhar em outros sites

Corrigido.

 

 

-- ### CONFIG ###

-- 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 action = tostring(result.getDataString(result_plr, 'action'))
                        local delete = tonumber(result.getDataInt(result_plr, 'delete_it'))
                        local player = Player(tostring(result.getDataString(result_plr, 'name')))
                        if player then
                                local itemtogive_id = tonumber(result.getDataInt(result_plr, 'param1'))
                                local itemtogive_count = tonumber(result.getDataInt(result_plr, 'param2'))
                                local container_id = tonumber(result.getDataInt(result_plr, 'param3'))
                                local container_count = tonumber(result.getDataInt(result_plr, 'param4'))
                                local add_item_type = tostring(result.getDataString(result_plr, 'param5'))
                                local add_item_name = tostring(result.getDataString(result_plr, 'param6'))
                                local received_item = 0
                                local full_weight = 0
                                local itemType = ItemType(itemtogive_id)
                                if add_item_type == 'container' then
                                        if itemType:isRune() then
                                                full_weight = container_count * itemType:getWeight()
                                        else
                                                full_weight = container_count * itemType:getWeight(itemtogive_count)
                                        end
                                        full_weight = full_weight + ItemType(container_id):getWeight()
                                else
                                        if itemType:isRune() then
                                                full_weight = itemType:getWeight()
                                        else
                                                full_weight = itemType:getWeight(itemtogive_count)
                                        end
                                end
 
                                local free_cap = player:getFreeCapacity()
                                if full_weight <= free_cap then
                                        if add_item_type == 'container' then
                                                local new_container = Game.createItem(container_id, 1)
                                                local iter = 0
                                                while iter ~= container_count do
                                                        new_container:addItem(itemtogive_id, itemtogive_count)
                                                        iter = iter + 1
                                                end
                                                received_item = player:addItemEx(new_container)
                                        else
                                                local new_item = Game.createItem(itemtogive_id, itemtogive_count)
                                                received_item = player:addItemEx(new_item)
                                        end
 
                                        if type(received_item) == 'number' and received_item == 0 then
                                                player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'You received >> ' .. add_item_name .. ' << from OTS shop.')
                                                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
                                                player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, '>> ' .. 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
                                        player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, '>> ' .. 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
                until not result.next(result_plr)
                result.free(result_plr)
        end
        return true
end

Ajudei ? Clique em GOSTEI!

Skype : neoowned
Link para o post
Compartilhar em outros sites
  • 3 weeks later...

ae cara como vc arrumou?

to com um problema tbm no meu shop D;

Venha para a evolução do mapa HEROSERV -- Versão 8.60 -

Faça parte dessa família: http://kaiakserv.com

 

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.

  • Conteúdo Similar

    • Por willian646
      O evento é totalmente baseado no Foxy Quiz proveniente do GLA, no entanto é apenas uma base para vocês alterarem como acharem melhor.
      Para começar será necessario que você crie um arquivo em talkactions>scripts para entrar no evento, como por exemplo : participar.lua
      e entao colocar sua tag em talkactions.xml, como por exemplo: 
      <talkaction words="!participar;/participar" script="!participar.lua"/> Tendo feito isso você irá colar esse codigo dentro desse arquivo: 
      function onSay(cid, words, param)pos = {x=1236, y=1125, z=15} --POSIÇAO QUE O PLAYER IRÁ COM O COMANDO if getGlobalStorageValue(88788) == 1 then doSendMagicEffect(getPlayerPosition(cid),19) doTeleportThing(cid,pos) else doPlayerSendCancel(cid, "Desculpe mas o evento esta fechado !") end return true end Agora iremos para o script principal, vá em global events>scripts e crie o arquivo pokequiz.lua em seguida coloque sua tag em globalevents.xml como por exemplo: 
      <globalevent name="Pokequiz" interval="10" event="script" value="pokequiz.lua"/> Lembrando que o intervalo de inicio do evento é com vcs, Tendo feito isso abra o arquivo e cole o  seguinte código dentro : 
      quizstrg = 88788 local wave = 0 local CPpos = {x=1051, y=1047, z=7} --POSIÇAO QUE O PLAYER IRÁ SE ERRAR function wave_acresc() wave = wave + 1 addEvent(Quiz, 5000) end function Quiz() if wave == 1 then doBroadcastMessage("Na serie pokemon RAYQUAZA possui mega evolucao ?", RED) addEvent(Resposta, 10000) elseif wave == 2 then doBroadcastMessage("Na serie pokemon ARCEUS e considerado um pokemon RARO ?", RED) addEvent(Resposta, 10000) elseif wave == 3 then doBroadcastMessage("Na serie pokemon MEW criou os 3 caes lendarios ?", RED) addEvent(Resposta, 10000) elseif wave == 4 then doBroadcastMessage("Na serie pokemon ARCEUS tem o poder de mudar de tipo livremente ?", RED) addEvent(Resposta, 10000) elseif wave == 5 then doBroadcastMessage("Na serie pokemon GIRATINA possui 2 formas sendo elas alterada e fantasma ?", RED) addEvent(Resposta, 10000) elseif wave == 6 then doBroadcastMessage("Na serie pokemon DIALGA e PALKIA sao rivais ?", RED) addEvent(Resposta, 10000) elseif wave == 7 then doBroadcastMessage("Na serie pokemon CELEBI possui a habilidade de viajar entre dimensoes ?", RED) addEvent(Resposta, 10000) elseif wave == 8 then doBroadcastMessage("Na serie pokemon SOLGALEO e a primeira evolucao de cosmog ?", RED) addEvent(Resposta, 10000) elseif wave == 9 then doBroadcastMessage("Na serie pokemon MAGEARNA e uma das ultra beasts ?", RED) addEvent(Resposta, 10000) elseif wave == 10 then doBroadcastMessage("Na serie pokemon a cor original de MAGEARNA e laranja ?", RED) addEvent(Resposta, 10000) elseif wave == 11 then doBroadcastMessage("O evento Quiz terminou !", RED) addEvent(winPlayers, 5000) end end function Resposta() if wave == 1 then addEvent(TPFalso, 5000) elseif wave == 2 then addEvent(TPVerdadeiro, 5000) elseif wave == 3 then addEvent(TPVerdadeiro, 5000) elseif wave == 4 then addEvent(TPFalso, 5000) elseif wave == 5 then addEvent(TPVerdadeiro, 5000) elseif wave == 6 then addEvent(TPFalso, 5000) elseif wave == 7 then addEvent(TPVerdadeiro, 5000) elseif wave == 8 then addEvent(TPVerdadeiro, 5000) elseif wave == 9 then addEvent(TPVerdadeiro, 5000) elseif wave == 10 then addEvent(TPFalso, 5000) end end function TPFalso() for _, sid in ipairs(getPlayersOnline()) do local posi = {x=1236, y=1122, z=15} local posf = {x=1243, y=1128, z=15} local pos = getPlayerPosition(sid) if isInArea(pos, posi, posf) then doTeleportThing(sid,CPpos) end addEvent(wave_acresc, 5000) end end function TPVerdadeiro() for _, sid in ipairs(getPlayersOnline()) do local posi = {x=1228, y=1122, z=15} local posf = {x=1235, y=1128, z=15} local pos = getPlayerPosition(sid) if isInArea(pos, posi, posf) then doTeleportThing(sid,CPpos) end addEvent(wave_acresc, 5000) end end function winPlayers() for _, sid in ipairs(getPlayersOnline()) do local posi = {x=1228, y=1122, z=15} local posf = {x=1243, y=1128, z=15} local pos = getPlayerPosition(sid) if isInArea(pos, posi, posf) then doTeleportThing(sid,CPpos) doPlayerAddItem(sid,2159, 10) end wave = 0 setGlobalStorageValue(88788, 0) end end --AVISOS DE INICIO function finalEventWarning() if getGlobalStorageValue(quizstrg) == 1 then setGlobalStorageValue(88788, 2) doBroadcastMessage("O evento Quiz fechou, a primeira pergunta surgira em 30 segundos.", RED) addEvent(wave_acresc, 30000) end end function secondEventWarning() if getGlobalStorageValue(quizstrg) == 1 then doBroadcastMessage("O evento Quiz ira iniciar em 1 minuto, usem o comando !participar ou /participar.", RED) addEvent(finalEventWarning, 60000) end end function firstEventWarning() if getGlobalStorageValue(quizstrg) == 1 then doBroadcastMessage("O evento Quiz ira iniciar em 3 minutos, usem o comando !participar ou /participar.", RED) addEvent(secondEventWarning, 120000) end end function onThink(interval, lastExecution) if getGlobalStorageValue(quizstrg) == 0 then setGlobalStorageValue(88788, 1) doBroadcastMessage("O evento Quiz ira iniciar em 5 minutos, usem o comando !participar ou /participar.", RED) addEvent(firstEventWarning, 120000) end return true end Já ia me esquecendo, a unica coisa ao qual vocês devem mudar de acordo com as coordenadas do seu mapa e área do evento são as funções TPVerdadeiro , TPFalso, winPlayers , elas servem para indicar qual área é a errada e teleportar quem tiver nessa área pro cp, caso o lado errado seja o esquerdo então será usado a função  TPVerdadeiro, e é a msm coisa para o outro lado, no caso da winPlayers é toda a área do evento.
       
      Aqui vai um exemplo: 
       
      E é isso rapaziada, não sei se já possui algum evento parecido por essas bandas, mas eu não encontrei ,então fiz  e resolvi contribuir com a comunidade, peço que se for repostar em algum outro lugar dê os devidos créditos, obg e até a próxima.
    • Por .Smile
      Olá a todos, atualmente estou aprendendo programação e desenvolvendo um Servidor, uma das coisas chatas a se fazer era ficar alternando entre um Personagem PLAYER e outro GOD para testar algumas coisas, com esses 2 scripts eu resolvi esse problema.

      É um script simples que eu pretendo futuramente melhorá-lo.

      What does the command do?
      /adm - Transforma seu personagem em GOD e kika ele
      /player - Transforma seu personagem em PLAYER e kika ele
       
      LEMBRANDO QUE: Não é qualquer que consegue usar esse comando, você precisa ter dado a sua conta o acesso de god, assim podendo ter esse comando num Servidor Online com outros jogadores sem que os mesmos possam usar.

      \data\talkactions
      talkactions.xml
      Code: <talkaction words="/player" script="player.lua" /> <talkaction words="/adm" script="adm.lua" /> \data\talkactions\scripts 
      adm.lua
      Code: function onSay(player, words, param) if player:getAccountType() < ACCOUNT_TYPE_GOD then return false end local position = player:getPosition() player:setGroup(Group(3)) position:sendMagicEffect(14) player:remove() return false end \data\talkactions\scripts
      player.lua
      function onSay(player, words, param) if player:getAccountType() < ACCOUNT_TYPE_GOD then return false end local position = player:getPosition() player:setGroup(Group(1)) position:sendMagicEffect(13) player:remove() return false end  
    • Por DeanWinchester
      Xamp dando o seguinte erro

      ja apaguei oque tinha que apagar no config.lua e não funciona
    • Por gabriel luccera zika
      como vc leram no topico erri no meu globalevents
       

    • Por baiakuda
      Boa noite.
       
      Gostaria de saber se é possivel editar esse script abaixo.
      Queria ao invez de ser por tempo (exemplo: 4 horas) fosse por dia e hora (exemplo: ["Monday"] ["12:00"] )
       
      Link do script
       http://www.tibiaking.com/forum/topic/36629-criar-teleport-de-evento-autom%C3%A1tico/ NOMEDOSCRIPT.lua
      function onThink(interval, lastExecution, thinkInterval) local config = { pos = {x=152, y=50, z=7}, -- Posição aonde sera criado o teleport topos = {x=1235, y=1197, z=7}, -- Posição pra onde o teleport ira levar o player tpid = 1387, -- id do teleport time = 5 -- tempo que o teleport ira sumir em minutos } function DelTp() local t = getTileItemById(config.pos, config.tpid) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(config.pos, CONST_ME_POFF) end end local time = 116 for i = 1,time do formula = time - 1*i addEvent(doSendAnimatedText,i*1000, config.pos, formula, 192) end doCreateTeleport(config.tpid, config.topos, config.pos) doBroadcastMessage("Evento VIP foi aberto!por favor os entereçados corram para o teleport que se localiza no templo e se fechara "..config.time.." minutos") addEvent(DelTp, config.time*60*1000) addEvent(doBroadcastMessage, config.time*60*1000, "Evento VIP. Proximo evento em 1h.") return true end em globalevents.xml
      <globalevent name="NOMEDOSCRIPT" interval="240000" event="script" value="NOMEDOSCRIPT.lua"/>
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo