Jump to content

Scripting [AJUDA] BUG CASSINO


Go to solution Solved by Capitao wyz,

Recommended Posts

Olá pessoal boa noite,

 

Gostaria de pedir uma ajuda a vocês, meu script de cassino está com 2 problemas.

 

1° Está dando erro na distro

Spoiler

[Error - Action Interface]
In a timer event called from:
data/actions/scripts/ReliquiaCassino.lua:onUse
Description:
(LuaInterface::luaDoCreatureSay) Creature not found

 

2° Gostaria que melhorava a velocidade dele na criação dos item, removendo, etc. Enfim deixa-lo mais rapido em geral!

 

3° Adicionar um broadcast divulgado X jogador ganhou X item.

 

Script do sistema

Spoiler

local config = {
    effect = 54, -- efeito em cima do jogador
    effectReward = 30, -- efeito em cima do premio
    effectLever = 26, -- efeito em cima da alavanca
    eventCoin = 12637, -- valor para jogar
    qtdCoin = 5, -- quantidade do coin para jogar
    effectLose = 29, -- efeito em cima do premio quando perder
    exaust = 10.0, -- Segundos de exaust
    storage = 23111, -- Storage do exaust
    used = 10, -- Tempo da duração da roleta
    used_storage = 23112, -- Storage pra verificar se a roleta esta sendo usada
    used = 10,
	
    poss = {
        [1] = {x = 150, y = 50, z = 9}, -- Coloque a coordenada da POS1 no Map Editor
        [2] = {x = 151, y = 50, z = 9}, -- Coloque a coordenada da POS2 no Map Editor
        [3] = {x = 152, y = 50, z = 9}, -- Coloque a coordenada da POS3 no Map Editor
        [4] = {x = 153, y = 50, z = 9}, -- Coloque a coordenada da POS4 no Map Editor
        [5] = {x = 154, y = 50, z = 9}, -- Coloque a coordenada da POS5 no Map Editor  - local do premio
		[6] = {x = 155, y = 50, z = 9}, -- Coloque a coordenada da POS6 no Map Editor
		[7] = {x = 156, y = 50, z = 9}, -- Coloque a coordenada da POS7 no Map Editor
		[8] = {x = 157, y = 50, z = 9}, -- Coloque a coordenada da POS8 no Map Editor
		[9] = {x = 158, y = 50, z = 9} -- Coloque a coordenada da POS9 no Map Editor
    },
	
    items = { -- id = id do item - chance = chance de aparecer o item - count = a quantidade de item que a pessoa ira ganhar
        [1] = {id = 9693, chance = 65, count = 1},
        [2] = {id = 2346, chance = 60, count = 1},
        [3] = {id = 12630, chance = 75, count = 1},
        [4] = {id = 5957, chance = 50, count = 1},
        [5] = {id = 2157, chance = 70, count = 50},
        [6] = {id = 8851, chance = 15, count = 1},
        [7] = {id = 2453, chance = 15, count = 1},
        [8] = {id = 2447, chance = 15, count = 1},
        [9] = {id = 8931, chance = 15, count = 1},
        [10] = {id = 7455, chance = 15, count = 1},
        [11] = {id = 10503, chance = 10, count = 1},
		[12] = {id = 10309, chance = 30, count = 1}
    }
}
 
local slot1, slot2, slot3, slot4, slot5, slot6, slot7, slot8, slot9
 
local function cleanTile(item, i)
    doCleanTile(config.poss[i], true)
    doCreateItem(item, 1, config.poss[i])
end
 
local function raffle(item)
	if slot8 ~= nil then
        slot9 = slot8
        cleanTile(471, 9)
        doCreateItem(slot9.id, slot9.count, config.poss[9])
    end
	if slot7 ~= nil then
        slot8 = slot7
        cleanTile(471, 8)
        doCreateItem(slot8.id, slot8.count, config.poss[8])
    end
	if slot6 ~= nil then
        slot7 = slot6
        cleanTile(471, 7)
        doCreateItem(slot7.id, slot7.count, config.poss[7])
    end
	if slot5 ~= nil then
        slot6 = slot5
        cleanTile(471, 6)
        doCreateItem(slot6.id, slot6.count, config.poss[6])
    end
    if slot4 ~= nil then
        slot5 = slot4
        cleanTile(11059, 5)
        doCreateItem(slot5.id, slot5.count, config.poss[5])
    end
    if slot3 ~= nil then
        slot4 = slot3
        cleanTile(471, 4)
        doCreateItem(slot4.id, slot4.count, config.poss[4])
    end
    if slot2 ~= nil then
        slot3 = slot2
        cleanTile(471, 3)
        doCreateItem(slot3.id, slot3.count, config.poss[3])
    end
    if slot1 ~= nil then
        slot2 = slot1
        cleanTile(471, 2)
        doCreateItem(slot2.id, slot2.count, config.poss[2])
    end
    slot1 = {id = item.id, count = item.count}
    cleanTile(471, 1)
    doCreateItem(slot1.id, slot1.count, config.poss[1])
end
 
local function result(uid)
    if isPlayer(uid) then
        if config.lose and slot5.id == config.itemLose then
            doSendMagicEffect(getCreaturePosition(uid), CONST_ME_POFF)
            doSendMagicEffect(config.poss[5], config.effectLose)
            doCreatureSay(cid,"[ROLETA MALUTA] Que azar, tente novamente!",TALKTYPE_ORANGE_1)
        else
            doSendMagicEffect(getCreaturePosition(uid), config.effect)
            doSendMagicEffect(config.poss[5], config.effectReward)
            doCreatureSay(cid,"[ROLETA MALUTA] Você ganhou " .. slot5.count .. " " .. getItemNameById(slot5.id) .. ". Parabens sortudo!!",TALKTYPE_ORANGE_1)
			doPlayerAddItem(uid, slot5.id, slot5.count)
        end
    end
end
 
function onUse(cid, item, pos, itemEx, posEx)
    if item.itemid == 1945 then doTransformItem(item.uid, item.itemid + 1) end
    if item.itemid == 1946 then doTransformItem(item.uid, item.itemid - 1) end
 
    if getGlobalStorageValue(config.used_storage) <= os.time() then
        if not exhaustion.check(cid, config.storage) then
            if getPlayerItemCount(cid, config.eventCoin) >= config.qtdCoin then
                local rand = math.random(10, 30)
                doSendMagicEffect(pos, config.effectLever)
                setGlobalStorageValue(config.used_storage, rand + 5 + os.time())
                exhaustion.set(cid, config.storage, rand)
                doPlayerRemoveItem(cid, config.eventCoin, config.qtdCoin)
                local loop = 0
                slot1 = nil
                slot2 = nil
                slot3 = nil
                slot4 = nil
                slot5 = nil
				slot6 = nil
				slot7 = nil
				slot8 = nil
				slot9 = nil
 
                for i = 1, #config.poss do
                    if i == 5 then
                        cleanTile(11059, i)
                    else
                        cleanTile(471, i)
                    end
                end
 
                while rand >= loop do
                    local roll = math.random(1, 100)
                    index = math.random(#config.items)
                    if roll <= config.items[index].chance then
                        local item = config.items[index]
                        loop = loop + 1
                        addEvent(raffle, loop * 1000, item)
                    end
                end
                addEvent(result, (rand + 2) * 1000, cid)
            else
                doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
                doCreatureSay(cid,"[ROLETA MALUCA] Voce precisa ter " .. config.qtdCoin .. " " .. getItemNameById(config.eventCoin) .. " na BP!",TALKTYPE_ORANGE_1)
            end
        else
            doSendMagicEffect(fromPosition, CONST_ME_POFF)
            doCreatureSay(cid,"Exhaustion, aguarde " .. exhaustion.get(cid, config.storage) .. " segundos para usar a roleta novamente!",TALKTYPE_ORANGE_1)
            return false
        end
        return true
    else
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
        doCreatureSay(cid,"[ROLETA MALUCA] Sorteio em andamento, espere finalizar para iniciar outro.",TALKTYPE_ORANGE_1)
    end
end

 

 

Utilizo OTX 8.6 - 0.4

 

Muito obrigado desde já!

Link to post
Share on other sites
  • Moderator
local config = {
    effect = 54, -- efeito em cima do jogador
    effectReward = 30, -- efeito em cima do premio
    effectLever = 26, -- efeito em cima da alavanca
    eventCoin = 12637, -- valor para jogar
    qtdCoin = 5, -- quantidade do coin para jogar
    effectLose = 29, -- efeito em cima do premio quando perder
    exaust = 10.0, -- Segundos de exaust
    storage = 23111, -- Storage do exaust
    used = 10, -- Tempo da duração da roleta
    used_storage = 23112, -- Storage pra verificar se a roleta esta sendo usada
    used = 10,
	
    poss = {
        [1] = {x = 150, y = 50, z = 9}, -- Coloque a coordenada da POS1 no Map Editor
        [2] = {x = 151, y = 50, z = 9}, -- Coloque a coordenada da POS2 no Map Editor
        [3] = {x = 152, y = 50, z = 9}, -- Coloque a coordenada da POS3 no Map Editor
        [4] = {x = 153, y = 50, z = 9}, -- Coloque a coordenada da POS4 no Map Editor
        [5] = {x = 154, y = 50, z = 9}, -- Coloque a coordenada da POS5 no Map Editor  - local do premio
		[6] = {x = 155, y = 50, z = 9}, -- Coloque a coordenada da POS6 no Map Editor
		[7] = {x = 156, y = 50, z = 9}, -- Coloque a coordenada da POS7 no Map Editor
		[8] = {x = 157, y = 50, z = 9}, -- Coloque a coordenada da POS8 no Map Editor
		[9] = {x = 158, y = 50, z = 9} -- Coloque a coordenada da POS9 no Map Editor
    },
	
    items = { -- id = id do item - chance = chance de aparecer o item - count = a quantidade de item que a pessoa ira ganhar
        [1] = {id = 9693, chance = 65, count = 1},
        [2] = {id = 2346, chance = 60, count = 1},
        [3] = {id = 12630, chance = 75, count = 1},
        [4] = {id = 5957, chance = 50, count = 1},
        [5] = {id = 2157, chance = 70, count = 50},
        [6] = {id = 8851, chance = 15, count = 1},
        [7] = {id = 2453, chance = 15, count = 1},
        [8] = {id = 2447, chance = 15, count = 1},
        [9] = {id = 8931, chance = 15, count = 1},
        [10] = {id = 7455, chance = 15, count = 1},
        [11] = {id = 10503, chance = 10, count = 1},
		[12] = {id = 10309, chance = 30, count = 1}
    }
}
 
local slot1, slot2, slot3, slot4, slot5, slot6, slot7, slot8, slot9
 
local function cleanTile(item, i)
    doCleanTile(config.poss[i], true)
    doCreateItem(item, 1, config.poss[i])
end
 
local function raffle(item)
	if slot8 ~= nil then
        slot9 = slot8
        cleanTile(471, 9)
        doCreateItem(slot9.id, slot9.count, config.poss[9])
    end
	if slot7 ~= nil then
        slot8 = slot7
        cleanTile(471, 8)
        doCreateItem(slot8.id, slot8.count, config.poss[8])
    end
	if slot6 ~= nil then
        slot7 = slot6
        cleanTile(471, 7)
        doCreateItem(slot7.id, slot7.count, config.poss[7])
    end
	if slot5 ~= nil then
        slot6 = slot5
        cleanTile(471, 6)
        doCreateItem(slot6.id, slot6.count, config.poss[6])
    end
    if slot4 ~= nil then
        slot5 = slot4
        cleanTile(11059, 5)
        doCreateItem(slot5.id, slot5.count, config.poss[5])
    end
    if slot3 ~= nil then
        slot4 = slot3
        cleanTile(471, 4)
        doCreateItem(slot4.id, slot4.count, config.poss[4])
    end
    if slot2 ~= nil then
        slot3 = slot2
        cleanTile(471, 3)
        doCreateItem(slot3.id, slot3.count, config.poss[3])
    end
    if slot1 ~= nil then
        slot2 = slot1
        cleanTile(471, 2)
        doCreateItem(slot2.id, slot2.count, config.poss[2])
    end
    slot1 = {id = item.id, count = item.count}
    cleanTile(471, 1)
    doCreateItem(slot1.id, slot1.count, config.poss[1])
end
 
local function result(uid)
    if isPlayer(uid) then
        if config.lose and slot5.id == config.itemLose then
            doSendMagicEffect(getCreaturePosition(uid), CONST_ME_POFF)
            doSendMagicEffect(config.poss[5], config.effectLose)
            doCreatureSay(cid,"[ROLETA MALUTA] Que azar, tente novamente!",TALKTYPE_ORANGE_1)
        else
            doSendMagicEffect(getCreaturePosition(uid), config.effect)
            doSendMagicEffect(config.poss[5], config.effectReward)
            doCreatureSay(uid,"[ROLETA MALUTA] Você ganhou " .. slot5.count .. " " .. getItemNameById(slot5.id) .. ". Parabens sortudo!!",TALKTYPE_ORANGE_1)
			doPlayerAddItem(uid, slot5.id, slot5.count)
            doBroadcastMessage("[ROLETA MALUCA]: O jogador "..getPlayerName(uid).." ganhou "..getItemNameById(slot5.id).." na roleta maluca, que sorte!", 20)
        end
    end
end
 
function onUse(cid, item, pos, itemEx, posEx)
    if item.itemid == 1945 then doTransformItem(item.uid, item.itemid + 1) end
    if item.itemid == 1946 then doTransformItem(item.uid, item.itemid - 1) end
 
    if getGlobalStorageValue(config.used_storage) <= os.time() then
        if not exhaustion.check(cid, config.storage) then
            if getPlayerItemCount(cid, config.eventCoin) >= config.qtdCoin then
                local rand = math.random(10, 30)
                doSendMagicEffect(pos, config.effectLever)
                setGlobalStorageValue(config.used_storage, rand + 5 + os.time())
                exhaustion.set(cid, config.storage, rand)
                doPlayerRemoveItem(cid, config.eventCoin, config.qtdCoin)
                local loop = 0
                slot1 = nil
                slot2 = nil
                slot3 = nil
                slot4 = nil
                slot5 = nil
				slot6 = nil
				slot7 = nil
				slot8 = nil
				slot9 = nil
 
                for i = 1, #config.poss do
                    if i == 5 then
                        cleanTile(11059, i)
                    else
                        cleanTile(471, i)
                    end
                end
 
                while rand >= loop do
                    local roll = math.random(1, 100)
                    index = math.random(#config.items)
                    if roll <= config.items[index].chance then
                        local item = config.items[index]
                        loop = loop + 1
                        addEvent(raffle, loop * 400, item)
                    end
                end
                addEvent(result, (rand + 2) * 1000, cid)
            else
                doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
                doCreatureSay(cid,"[ROLETA MALUCA] Voce precisa ter " .. config.qtdCoin .. " " .. getItemNameById(config.eventCoin) .. " na BP!",TALKTYPE_ORANGE_1)
            end
        else
            doSendMagicEffect(fromPosition, CONST_ME_POFF)
            doCreatureSay(cid,"Exhaustion, aguarde " .. exhaustion.get(cid, config.storage) .. " segundos para usar a roleta novamente!",TALKTYPE_ORANGE_1)
            return false
        end
        return true
    else
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
        doCreatureSay(cid,"[ROLETA MALUCA] Sorteio em andamento, espere finalizar para iniciar outro.",TALKTYPE_ORANGE_1)
    end
end

 

Link to post
Share on other sites

@So volto tarde Opa blz, testei aqui. 

 

Parou o erro na distro, está mais rapido e também está mandando o broadcast.

 

Porem quanto chega no item sorteado ele fica uns 10 segundos parado (sem ação). Ai só depóis ele entrega o prémio...

Gostaria que quando já chegar no item já ganhasse...

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.


  • Similar Content

    • By daniel.braga989
      Desde já agradeço se alguém conseguir arrumar, pois eu tentei por dias.


      Spells:
      local combat1 = createCombatObject()
      setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, COLOR_PINK)
      setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
      setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 4)
      setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -34.0, 0, -49.5, 0)
      local function onCastSpell1(parameters)
      if isCreature(parameters.cid) and getCreatureTarget(parameters.cid) then
      if getPlayerStorageValue(parameters.cid, 58482) >= 1 then
          local position1 = {x = getThingPosition(getCreatureTarget(parameters.cid)).x + 0, y = getThingPosition(getCreatureTarget(parameters.cid)).y + 0, z = getCreaturePosition(getCreatureTarget(parameters.cid)).z}
          doSendMagicEffect(position1, 4)
      end
      setPlayerStorageValue(parameters.cid, 58482, 1)
      return doCombat(parameters.cid, parameters.combat1, parameters.var)
      end
      end
      function onCastSpell(cid, var)
      local parameters = {cid = cid, var = var, combat1 = combat1}
      local waittime = 1 -- Tempo de exhaustion
      local storage = 12001
      if(isPlayer(cid) and exhaustion.check(cid, 12001)) then
      return false
      end
      exhaustion.set(cid, storage, waittime)
      for k = 1, 4 do
          addEvent(function()
              if isCreature(cid) then
                  addEvent(onCastSpell1, 1, parameters)
              end
          end, 1 + ((k-1) * 525))
      end
      return true
      end







      Erro:

      [17:14:22.256] [Error - Spell Interface]
      [17:14:22.258] In a timer event called from:
      [17:14:22.259] data/spells/scripts/LvL100/kaioken brust.lua:onCastSpell
      [17:14:22.260] Description:
      [17:14:22.260] (LuaInterface::luaGetThingPosition) Thing not found
      [17:14:22.261] [Error - Spell Interface]
      [17:14:22.262] In a timer event called from:
      [17:14:22.263] data/spells/scripts/LvL100/kaioken brust.lua:onCastSpell
      [17:14:22.263] Description:
      [17:14:22.263] data/spells/scripts/LvL100/kaioken brust.lua:9: attempt to index a boolean value
      [17:14:22.264] stack traceback:
      [17:14:22.264]  data/spells/scripts/LvL100/kaioken brust.lua:9: in function <data/spells/scripts/LvL100/kaioken brust.lua:6>

      Esse erro acontece ao matar o monstro, ou ao sair da tela do alvo enquanto tem animação da spell.
    • By usoparagames
      Meu servidor é uma base cyan (pda) tsf 0.4
       
      eu tenho um held system mt bom e funcional ,porem o único que eu não consegui colocar pra funcionar bem é o y-Ghost , 
      que eu creio que seja configurado no somefunctions.lua , porem eu não tenho o conhecimento suficiente para desenvolver .( ja tentei ).
       
      o item já é utilizável porem quando eu coloco no Pokémon ele não muda nada e não da a característica de Ghost (atravessar paredes e itens) que deveria .
      se alguém puder me ajudar ficarei muito grato !
       
       
       
         
       
       
    • By TheFrost
      Alguém poderia colocar uma certa quantidade de item nesse script, para ser forjado. Como já ta no script, é de 1 em 1.
      Exemplo:
      1- necessita de 1 item
      2- necessita de 10 item
      3- necessita de 10 item
       
      function onUse(cid, item, fromPosition, itemEx, toPosition)
      local Configs = {
      ----------------------------- Rare ---------------------------------------
          pos_bancada1 = {x=983,y=965,z=8},
          pos_bancada2 = {x=984,y=965,z=8},
          pos_bancada3 = {x=985,y=965,z=8},
          pos_premio1 = {x=983,y=967,z=8},
          item1_craft = {item1=7463},
          item2_craft = {item2=11388},
          item3_craft = {item3=11387},
          item4_craft = {premio=11215, nome_do_item='Pink Hard'},
      ----------------------------- End ---------------------------------------
      }
      local Script = {
          stack1 = getItemStackpos(Configs.pos_bancada1,Configs.item1_craft.item1),
          stack2 = getItemStackpos(Configs.pos_bancada2,Configs.item2_craft.item2),
          stack3 = getItemStackpos(Configs.pos_bancada3,Configs.item3_craft.item3),

      }
                  if Script.stack1 and Script.stack2 and Script.stack3 then
                      doCleanTile(Configs.pos_bancada1)
                      doCleanTile(Configs.pos_bancada2)
                      doCleanTile(Configs.pos_bancada3)
                                      addEvent(doCreateItem, 100, Configs.item4_craft.premio, 1, Configs.pos_premio1)
                      doPlayerSendTextMessage(cid, 22, "Parabens, Voce Forjou uma"..Configs.item4_craft.nome_do_item.." .")
                      doSendMagicEffect(Configs.pos_bancada1, 122)
                      doSendMagicEffect(Configs.pos_bancada2, 122)
                      doSendMagicEffect(Configs.pos_bancada3, 122)
                      return true
                  end
              doPlayerSendTextMessage(cid, 28, "Voce nao tem os 3 itens, para Craftar!")
       return true
      end
      function getItemStackpos(position, id)
          if getTileItemById(position, id).itemid == 0 then 
              return nil 
          end
          for i = 0, 255 do
              local pos = getThingFromPos({x=position.x, y=position.y, z=position.z, stackpos=i})
              if pos.itemid == id then
                  return i
              end
          end
      end
       
      Up
    • By ericles
      .Qual servidor ou website você utiliza como base? 
      Base pokeroxy
      Qual o motivo deste tópico? 
      Esses erros acontecem e a caba derrubando o jogo 
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
    • By huancaio
      PESSOAL, CONSEGUI RESOLVER O PROBLEMA. O ERRO ESTAVA NA DATABASE OZ_OTS_COMUNICATION. HAVIA INTENS QUE NÃO ESTAVAM SENDO ENTREGADOS AOS PLAYERS. COM A EXCLUSÃO NA BASE DE DADOS, O PROBLEMA FOI SANADO.
       
       
      Qual servidor ou website você utiliza como base?
      Bom dia pessoal, estou utilizando um servidor Baiak com site Gesior.
      Preciso da ajuda de vocês para solucionar um erro no shop.lua. 
      O erro que aparece é esse aqui:
       
       
      Aqui está meu shop.lua:
      local SHOP_MSG_TYPE = MESSAGE_STATUS_CONSOLE_RED local SQL_interval = 30 function generateSerial() --local lettersUsedToGenerateHash = "AaBbCcDdEeFfGgHhIiJjKkLlMmOoPpQqRrSsTtUuVvWwXxYyZz" local lettersUsedToGenerateHash = "ABCDEFGHIJKLMOPQRSTUVWXYZ" local newSerial = "!" for k = 1, 10 do local l = math.random(1, string.len(lettersUsedToGenerateHash)) newSerial = newSerial .. string.sub(lettersUsedToGenerateHash, l, l) end local newSerialInt = math.random(999999) newSerial = newSerial .."-" .. newSerialInt -- Set TIME -> newSerial = newSerialStr .. "-" .. os.time() .. "-" .. newSerialInt -- length: ![10 letters]-[10 numbers (unix date)]-[6 numbers] -- length = 29 [always!] return newSerial end 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 local id = tonumber(result_plr:getDataInt("id")) local action = tostring(result_plr:getDataString("action")) local delete = tonumber(result_plr:getDataInt("delete_it")) local cid = getCreatureByName(tostring(result_plr:getDataString("name"))) if isPlayer(cid) 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) --doItemSetAttribute(new_item, "description", "Name: ".. getPlayerName(cid) ..". Data: ".. os.date("%d %B %Y Hora: %X. ").."Serial: "..generateSerial().."") doItemSetAttribute(new_item, "description", "Serial: "..generateSerial().."") --doItemSetAttribute(new_item, "description", "This item was purchased at the shop by the player ".. getPlayerName(cid) ..".") --doItemSetAttribute(new_item, "aid", getPlayerGUID(cid)+10000) received_item = doPlayerAddItemEx(cid, new_item) end if received_item == RETURNVALUE_NOERROR then doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '{Shopping System} Entrega do Item '.. add_item_name ..' Feita com Sucesso!.') 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, ' {Shopping System} Sua Backpack Nao Tem Espaco Para Receber o Item '.. add_item_name ..' Por Favor Abra Espaco em Sua Backpack, Estaremos Tentando Entregar o Item Em '.. SQL_interval ..' Segundos!.') 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   
      Desde já agradeço a ajuda de vocês
      O erro que ocorre é esse:
       

×
×
  • Create New...

Important Information

Confirmação de Termo