Ir para conteúdo
  • Cadastre-se

Anti Clone System [GlobalEvents] Shop.lua[Gesior] / CheckItens.lua


Posts Recomendados

Em GlobalEvents crie um Arquivo chamado Check.lua 

local function CheckPlayer_Items()
query = db.getResult("SELECT *, SUBSTRING( CONVERT( attributes USING latin1 ) FROM 22) AS  'serial' FROM player_items WHERE CONVERT( attributes USING latin1 ) LIKE  '%description%' GROUP BY SUBSTRING( CONVERT( attributes USING latin1 ) FROM 22) having count(*) > 1")
if (query:getID() == -1) then
textquery = "\n Check Items : Nenhum item encontrado."
print(textquery)
return true 
end
if (query:getID() ~= -1) then
text = "\n[!] -> Deleting item player_items: [Player ID: " .. getPlayerNameByGUID(query:getDataInt("player_id")) .. " - Sid: "..(query:getDataInt("sid")).." - Pid: "..(query:getDataInt("pid")).." - Itemtype: "..(query:getDataInt("itemtype")).." - Serial: " .. query:getDataString("serial") ..""
db.query("DELETE FROM  `otservs`.`player_items` WHERE  `player_items`.`player_id` =" .. (query:getDataInt("player_id")) .. " AND  `player_items`.`sid` ="..(query:getDataInt("sid")).." AND  `player_items`.`pid` ="..(query:getDataInt("pid"))..";")
db.query("DELETE FROM  `otservs`.`player_depotitems` WHERE SUBSTRING(CONVERT(attributes USING latin1) FROM 22) = " .. db.escapeString(query:getDataString("serial")) .. ";")
db.query("DELETE FROM  `otservs`.`tile_items` WHERE SUBSTRING(CONVERT(attributes USING latin1) FROM 22) = " .. db.escapeString(query:getDataString("serial")) .. ";")
f = io.open("data/logs/AntiClone.txt", "a+")
f:write("Player: "..text.." - " .. os.date("%d %B %Y - %X.", os.time()) .."\n\n----------------------------------------------------------\n")
f:close() 
print(text)
if (query:getID() == -1) then
textplayer_items = "\n Check Items : Todos os Items Foram Removidos."
print(textplayer_items)
return true
end
CheckPlayer_Items()
end
return true
end

local function CheckPlayer_DepotItems()
query = db.getResult("SELECT *, SUBSTRING( CONVERT( attributes USING latin1 ) FROM 22) AS  'serial' FROM player_depotitems WHERE CONVERT( attributes USING latin1 ) LIKE  '%description%' GROUP BY SUBSTRING( CONVERT( attributes USING latin1 ) FROM 22) having count(*) > 1")
if (query:getID() == -1) then
textquery = "\n Check Items : Nenhum item encontrado."
print(textquery)
return true 
end
if (query:getID() ~= -1) then
text = "\n[!] -> Deleting item player_depotitems: [Player ID: " .. getPlayerNameByGUID(query:getDataInt("player_id")) .. " - Sid: "..(query:getDataInt("sid")).." - Pid: "..(query:getDataInt("pid")).." - Itemtype: "..(query:getDataInt("itemtype")).." - Serial: " .. query:getDataString("serial") ..""
db.query("DELETE FROM  `otservs`.`player_items` WHERE  `player_items`.`player_id` =" .. (query:getDataInt("player_id")) .. " AND  `player_items`.`sid` ="..(query:getDataInt("sid")).." AND  `player_items`.`pid` ="..(query:getDataInt("pid"))..";")
db.query("DELETE FROM  `otservs`.`player_depotitems` WHERE SUBSTRING(CONVERT(attributes USING latin1) FROM 22) = " .. db.escapeString(query:getDataString("serial")) .. ";")
db.query("DELETE FROM  `otservs`.`tile_items` WHERE SUBSTRING(CONVERT(attributes USING latin1) FROM 22) = " .. db.escapeString(query:getDataString("serial")) .. ";")
f = io.open("data/logs/AntiClone.txt", "a+")
f:write("Player: "..text.." - " .. os.date("%d %B %Y - %X.", os.time()) .."\n\n----------------------------------------------------------\n")
f:close() 
print(text)
if (query:getID() == -1) then
textplayer_items = "\n Check Items : Todos os Items Foram Removidos."
print(textplayer_items)
return true
end
CheckPlayer_DepotItems()
end
return true
end
function onStartup()
CheckPlayer_Items()
CheckPlayer_DepotItems()
return true
end

em globalevents.xml Adicione

<globalevent name="AntiClone" type="start" event="script" value="Check.lua"/>

Para Adicionar a Opção de Verificar itens Clonados Adicione um Serial em todos os Itens Vips :

 

em shop.lua Adicione ( Modern Acc )

function onThink(interval, lastExecution, thinkInterval)

   local result = db.getResult("SELECT * FROM shop_history WHERE `processed` = 0;")
   
      if(result:getID() ~= -1) then
         while(true) do
            cid = getCreatureByName(getPlayerNameByGUID(tonumber(result:getDataInt("player"))))
            product = tonumber(result:getDataInt("product"))
            itemr = db.getResult("SELECT * FROM shop_offer WHERE `id` = "..product..";")
               if isPlayer(cid) then
local um_um = {1,2,3,4,5,6,7,8,9,0}
um = um_um[math.random(1, #um_um)]

local dois_dois = {1,2,3,4,5,6,7,8,9,0}
dois = dois_dois[math.random(1, #dois_dois)]

local tres_tres = {1,2,3,4,5,6,7,8,9,0}
tres = tres_tres[math.random(1, #tres_tres)]

local quatro_quatro = {1,2,3,4,5,6,7,8,9,0}
quatro = quatro_quatro[math.random(1, #quatro_quatro)]

                  local id = tonumber(itemr:getDataInt("item"))
                  local tid = tonumber(result:getDataInt("id"))
                  local count = tonumber(itemr:getDataInt("count"))
                  local tipe = tonumber(itemr:getDataInt("type"))
                  local productn = tostring(itemr:getDataString("name"))
                     if isInArray({5,8},tipe) then
                        if getPlayerFreeCap(cid) >= getItemWeightById(id, count) then
                           if isContainer(getPlayerSlotItem(cid, 3).uid) then
                              received = doPlayerAddItem(cid, id, count, false)
                              if received then
                              doItemSetAttribute(received, "description", ''.. productn ..' by ' .. getCreatureName(cid) .. ' [ID:' .. um .. '' .. dois .. '' .. tres .. '' .. quatro .. '].')
                                 doPlayerSendTextMessage(cid,19, "You have received >> "..productn.." << from our shop system")
                                 db.query("UPDATE `shop_history` SET `processed`='1' WHERE id = " .. tid .. ";")
								f = io.open("data/logs/Shop.txt", "a+")
								f:write("Player : '".. productn .." by ".. getCreatureName(cid) .." [ID: ".. um .."".. dois .."".. tres .."".. quatro .."] Item : "..productn.." - "..getCreatureName(cid).."- " .. os.date("%d %B %Y - %X.", os.time()) .."\n----------------------------------------------------------\n")
								f:close()
                              else
                                 doPlayerSendTextMessage(cid,19, "Sorry, you don't have enough space on container to receive >> "..productn.." <<")
                              end
                           else
                              doPlayerSendTextMessage(cid,19, "Sorry, you don't have a container to receive >> "..productn.." <<")
                           end
                        else
                           doPlayerSendTextMessage(cid,19, "Sorry, you don't have enough capacity to receive >> "..productn.." << (You need: "..getItemWeightById(id, count).." Capacity)")
                        end
                     elseif isInArray({6,7},tipe) then
                           if tipe == 6 then
                              bcap = 8
                              bid = 1987
                           elseif tipe == 7 then
                              bcap = 20
                              bid = 1988
                           end
                           if isItemRune(id) then
                              count = 1
                           end
                           if getPlayerFreeCap(cid) >= (getItemWeightById(1987, 1) + getItemWeightById(id,count * bcap)) then
                              local bag = doCreateItemEx(bid, 1)
                                 for i = 1,bcap do
                                    doAddContainerItem(bag, id, count)
                                 end
                              received = doPlayerAddItemEx(getPlayerSlotItem(cid, 3).uid, bag)
                              if received == RETURNVALUE_NOERROR then
                                 doPlayerSendTextMessage(cid,19, "You have received >> "..productn.." << from our shop system")
                                 db.query("UPDATE `shop_history` SET `processed`='1' WHERE id = " .. tid .. ";")
                              else
                                 doPlayerSendTextMessage(cid,19, "Sorry, you don't have enough space to receive >> "..productn.." <<")
                              end
                           else
                              doPlayerSendTextMessage(cid,19, "Sorry, you don't have enough capacity to receive >> "..productn.." << (You need: "..getItemWeightById(id, count).." Capacity)")
                           end
                     end
               end
            itemr:free()
            if not(result:next()) then
               break
            end
         end
         result:free()
      end
   return true
end

Tag : 

<globalevent name="shop" interval="3000" event="script" value="shop.lua"/>

Creditos : Emerson Henrique < DBO INFINITY>

 

Comandos e Codigos Adaptados de varios sistemas 

 

Ajuda : Arthur Luna (Ajudou no limite de Caracteres)

 

PS : Meu Shop salva na db. apenas o ID do player e não o nome essa Adaptação não vou disponibilizar.

 

http://otsbrasil.com/dbo Servidor Derivado Dragon Ball Online 8.6 + Cast System + War System entre outros sistemas.

 

[ADM] Aaron

 

Autorizo modificações e Postar em Qualquer Forum, esse codigo é meu e fiz de graça e forneço de Graça.

 

PS2 : Se Possivel mudar o Titulo para 

 

Anti Clone System [GlobalEvents] Shop.lua[Modern Acc] / CheckItens.lua Editado por Emersonssss (veja o histórico de edições)

Skype : emersonaaron Se Te ajudei não me REP+ isso não muda nada! kkkkkkkkkkkk

Link para o post
Compartilhar em outros sites

:/ modern eu nao tenho, uso gesior msm :S queria adaptação pro gesior, mas bom trabalho, não vou poder testar mas vai levar meu rep pelo conteudo

Se possivel passa seu Gesior que eu faço a adaptação

Skype : emersonaaron Se Te ajudei não me REP+ isso não muda nada! kkkkkkkkkkkk

Link para o post
Compartilhar em outros sites

Ai Ermeson , tem como se mim ajudar velho? a coloca meu NTO OT para 8.60 com war sistema , so que com account manager tem como?

meu skype é : emersonaaron me adc e nois bola uma ideia

Skype : emersonaaron Se Te ajudei não me REP+ isso não muda nada! kkkkkkkkkkkk

Link para o post
Compartilhar em outros sites

Se possivel passa seu Gesior que eu faço a adaptação

beleza, te passo via skype, pode ser? me manda o seu.... o meu tá bugado pra add por ser pelo face ninguem consegue me achar lá -'-

Se Ajudei Rep+ pra mim ^^

tumblr_lyd1xtGgx81qf9l6uo1_500.gif

Link para o post
Compartilhar em outros sites
  • 1 month later...
  • 4 years later...

Desculpa reviver o tópico mas não tem algum código pra pôr na database não? Porque tipo só isso aí não remove os itens clonados 

Meu Servidor Minecraft : Ip - Skylowcraft.minecraftbr.net:25585 = Servidor 24hrs Sem Lag , Sem Hackers (1.7.2) Servidor De Fullpvp e Survival - Vamos Colocar Minigames!.

Link para o post
Compartilhar em outros sites
55 minutos atrás, Christinacsa disse:

Desculpa reviver o tópico mas não tem algum código pra pôr na database não? Porque tipo só isso aí não remove os itens clonados 

 

 

════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═══╗

Te Ajudei? Rep + e ficamos Quits

166420979_logoyanliimaornight.png.33f822b8970081a5b3646e85dbfd5934.png

Precisando de ajuda?

discord.png.1ecd188791d0141f74d99db371a2e0a4.png.890d5a38d7bcde75543c72b624a65de1.pngDiscord: Yan Liima #3702

Programador Júnior de LUA, PHP e JavaScript

Juntos somos lendas, separados somos Mitos!

╚══════════════════════════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═════════════════════════════╝

Link para o post
Compartilhar em outros sites
4 horas atrás, Yan Liima disse:

 

 

Sabe qual error é esse? é na hora de adicionar a query  #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 0, 30' at line 6

Meu Servidor Minecraft : Ip - Skylowcraft.minecraftbr.net:25585 = Servidor 24hrs Sem Lag , Sem Hackers (1.7.2) Servidor De Fullpvp e Survival - Vamos Colocar Minigames!.

Link para o post
Compartilhar em outros sites
2 horas atrás, Christinacsa disse:

Sabe qual error é esse? é na hora de adicionar a query  #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 0, 30' at line 6

 

Tente assim:

SELECT * , SUBSTRING( CONVERT( attributes
USING latin1 ) 
FROM 18 ) AS 'serial'
FROM player_items
WHERE CONVERT( attributes
USING latin1 ) LIKE '%serial%'

 

════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═══╗

Te Ajudei? Rep + e ficamos Quits

166420979_logoyanliimaornight.png.33f822b8970081a5b3646e85dbfd5934.png

Precisando de ajuda?

discord.png.1ecd188791d0141f74d99db371a2e0a4.png.890d5a38d7bcde75543c72b624a65de1.pngDiscord: Yan Liima #3702

Programador Júnior de LUA, PHP e JavaScript

Juntos somos lendas, separados somos Mitos!

╚══════════════════════════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═════════════════════════════╝

Link para o post
Compartilhar em outros sites
3 horas atrás, Yan Liima disse:

Tente assim:


SELECT * , SUBSTRING( CONVERT( attributes
USING latin1 ) 
FROM 18 ) AS 'serial'
FROM player_items
WHERE CONVERT( attributes
USING latin1 ) LIKE '%serial%'

 

 

Pegou, você sabe me dizer porque no meu players_items só aparece o atributo ? não aparece o serial

Meu Servidor Minecraft : Ip - Skylowcraft.minecraftbr.net:25585 = Servidor 24hrs Sem Lag , Sem Hackers (1.7.2) Servidor De Fullpvp e Survival - Vamos Colocar Minigames!.

Link para o post
Compartilhar em outros sites
  • 4 years later...
Em 12/01/2019 em 09:08, Yan Liima disse:

Tente assim:


SELECT * , SUBSTRING( CONVERT( attributes
USING latin1 ) 
FROM 18 ) AS 'serial'
FROM player_items
WHERE CONVERT( attributes
USING latin1 ) LIKE '%serial%'

 

 

 

estou com esse error:

 

 

[1:17:43.155] [Error - GlobalEvent Interface]
[1:17:43.157] data/globalevents/scripts/Check.lua:onStartup
[1:17:43.160] Description:
[1:17:43.161] (luaGetPlayerNameByGUID) Player not found

[1:17:43.163] [Error - GlobalEvent Interface]
[1:17:43.164] data/globalevents/scripts/Check.lua:onStartup
[1:17:43.165] Description:
[1:17:43.166] data/globalevents/scripts/Check.lua:9: attempt to concatenate a nil value
[1:17:43.167] stack traceback:
[1:17:43.168]   data/globalevents/scripts/Check.lua:9: in function 'CheckPlayer_Items'
[1:17:43.169]   data/globalevents/scripts/Check.lua:53: in function <data/globalevents/scripts/Check.lua:52>

 

 

 

 

 

 

poderia me ajudar?

codigo

 

local function CheckPlayer_Items()
query = db.getResult("SELECT *, SUBSTRING( CONVERT( attributes USING latin1 ) FROM 22) AS  'serial' FROM player_items WHERE CONVERT( attributes USING latin1 ) LIKE  '%description%' GROUP BY SUBSTRING( CONVERT( attributes USING latin1 ) FROM 22) having count(*) > 1")
if (query:getID() == -1) then
textquery = "\n Check Items : Nenhum item encontrado."
print(textquery)
return true 
end
if (query:getID() ~= -1) then
text = "\n[!] -> Deleting item player_items: [Player ID: " .. getPlayerNameByGUID(query:getDataInt("player_id")) .. " - Sid: "..(query:getDataInt("sid")).." - Pid: "..(query:getDataInt("pid")).." - Itemtype: "..(query:getDataInt("itemtype")).." - Serial: " .. query:getDataString("serial") ..""
db.query("DELETE FROM  `otservs`.`player_items` WHERE  `player_items`.`player_id` =" .. (query:getDataInt("player_id")) .. " AND  `player_items`.`sid` ="..(query:getDataInt("sid")).." AND  `player_items`.`pid` ="..(query:getDataInt("pid"))..";")
db.query("DELETE FROM  `otservs`.`player_depotitems` WHERE SUBSTRING(CONVERT(attributes USING latin1) FROM 22) = " .. db.escapeString(query:getDataString("serial")) .. ";")
db.query("DELETE FROM  `otservs`.`tile_items` WHERE SUBSTRING(CONVERT(attributes USING latin1) FROM 22) = " .. db.escapeString(query:getDataString("serial")) .. ";")
f = io.open("data/logs/AntiClone.txt", "a+")
f:write("Player: "..text.." - " .. os.date("%d %B %Y - %X.", os.time()) .."\n\n----------------------------------------------------------\n")
f:close() 
print(text)
if (query:getID() == -1) then
textplayer_items = "\n Check Items : Todos os Items Foram Removidos."
print(textplayer_items)
return true
end
CheckPlayer_Items()
end
return true
end

local function CheckPlayer_DepotItems()
query = db.getResult("SELECT *, SUBSTRING( CONVERT( attributes USING latin1 ) FROM 22) AS  'serial' FROM player_depotitems WHERE CONVERT( attributes USING latin1 ) LIKE  '%description%' GROUP BY SUBSTRING( CONVERT( attributes USING latin1 ) FROM 22) having count(*) > 1")
if (query:getID() == -1) then
textquery = "\n Check Items : Nenhum item encontrado."
print(textquery)
return true 
end
if (query:getID() ~= -1) then
text = "\n[!] -> Deleting item player_depotitems: [Player ID: " .. getPlayerNameByGUID(query:getDataInt("player_id")) .. " - Sid: "..(query:getDataInt("sid")).." - Pid: "..(query:getDataInt("pid")).." - Itemtype: "..(query:getDataInt("itemtype")).." - Serial: " .. query:getDataString("serial") ..""
db.query("DELETE FROM  `otservs`.`player_items` WHERE  `player_items`.`player_id` =" .. (query:getDataInt("player_id")) .. " AND  `player_items`.`sid` ="..(query:getDataInt("sid")).." AND  `player_items`.`pid` ="..(query:getDataInt("pid"))..";")
db.query("DELETE FROM  `otservs`.`player_depotitems` WHERE SUBSTRING(CONVERT(attributes USING latin1) FROM 22) = " .. db.escapeString(query:getDataString("serial")) .. ";")
db.query("DELETE FROM  `otservs`.`tile_items` WHERE SUBSTRING(CONVERT(attributes USING latin1) FROM 22) = " .. db.escapeString(query:getDataString("serial")) .. ";")
f = io.open("data/logs/AntiClone.txt", "a+")
f:write("Player: "..text.." - " .. os.date("%d %B %Y - %X.", os.time()) .."\n\n----------------------------------------------------------\n")
f:close() 
print(text)
if (query:getID() == -1) then
textplayer_items = "\n Check Items : Todos os Items Foram Removidos."
print(textplayer_items)
return true
end
CheckPlayer_DepotItems()
end
return true
end
function onStartup()
CheckPlayer_Items()
CheckPlayer_DepotItems()
return true
end

 

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

 

 

ERROR CORRIGIDO e codigo atualizaçao pra remover itens especifico do jogador ao inicia o server:

 

 

local function CheckPlayer_Items()
  local query = db.getResult("SELECT *, SUBSTRING(CONVERT(attributes USING latin1) FROM 22) AS 'serial' FROM player_items WHERE CONVERT(attributes USING latin1) LIKE '%description%' GROUP BY SUBSTRING(CONVERT(attributes USING latin1) FROM 22) HAVING COUNT(*) > 1")

  if query:getID() == -1 then
    local textquery = "\n Check Items: Nenhum item clonado foi encontrado."
    print(textquery)
    return true
  end

  if query:getID() ~= -1 then
    local playerName = getPlayerNameByGUID(query:getDataInt("player_id"))
    if playerName == nil then
      playerName = "Player Not Found"
    end
    local text = "\n[!] -> Deleting item player_items: [Player ID: " .. playerName .. " - Sid: " .. (query:getDataInt("sid")) .. " - Pid: " .. (query:getDataInt("pid")) .. " - Itemtype: " .. (query:getDataInt("itemtype")) .. " - Serial: " .. query:getDataString("serial") .. "]"
    db.query("DELETE FROM `dbo`.`player_items` WHERE `player_items`.`player_id` = " .. (query:getDataInt("player_id")) .. " AND `player_items`.`sid` = " .. (query:getDataInt("sid")) .. " AND `player_items`.`pid` = " .. (query:getDataInt("pid")) .. ";")
    db.query("DELETE FROM `dbo`.`player_depotitems` WHERE SUBSTRING(CONVERT(attributes USING latin1) FROM 22) = " .. db.escapeString(query:getDataString("serial")) .. ";")
    db.query("DELETE FROM `dbo`.`tile_items` WHERE SUBSTRING(CONVERT(attributes USING latin1) FROM 22) = " .. db.escapeString(query:getDataString("serial")) .. ";")
    local f = io.open("data/logs/AntiClone.txt", "a+")
    f:write("Player: " .. text .. " - " .. os.date("%d %B %Y - %X.", os.time()) .. "\n\n----------------------------------------------------------\n")
    f:close()
    print(text)
    
    if query:getID() == -1 then
      local textplayer_items = "\n Check Items: Todos os Items Foram Removidos."
      print(textplayer_items)
      return true
    end

    CheckPlayer_Items()
  end

  return true
end


local function CheckPlayer_DepotItems()
  local query = db.getResult("SELECT *, SUBSTRING(CONVERT(attributes USING latin1) FROM 22) AS 'serial' FROM player_depotitems WHERE CONVERT(attributes USING latin1) LIKE '%description%' GROUP BY SUBSTRING(CONVERT(attributes USING latin1) FROM 22) HAVING COUNT(*) > 1")

  if query:getID() == -1 then
    local textquery = "\n Check Items: Nenhum item clonado foi encontrado."
    print(textquery)
    return true
  end

  if query:getID() ~= -1 then
    local text = "\n[!] -> Deleting item player_depotitems: [Player ID: " .. getPlayerNameByGUID(query:getDataInt("player_id")) .. " - Sid: " .. (query:getDataInt("sid")) .. " - Pid: " .. (query:getDataInt("pid")) .. " - Itemtype: " .. (query:getDataInt("itemtype")) .. " - Serial: " .. query:getDataString("serial") .. "]"
   
db.query("DELETE FROM `dbo`.`player_items` WHERE `player_items`.`player_id` = " .. (query:getDataInt("player_id")) .. " AND `player_items`.`sid` = " .. (query:getDataInt("sid")) .. " AND `player_items`.`pid` = " .. (query:getDataInt("pid")) .. ";")
    db.query("DELETE FROM `dbo`.`player_items` WHERE `player_items`.`player_id` = " .. (query:getDataInt("player_id")) .. " AND `player_items`.`sid` = " .. (query:getDataInt("sid")) .. " AND `player_items`.`pid` = " .. (query:getDataInt("pid")) .. ";")
    db.query("DELETE FROM `dbo`.`player_depotitems` WHERE SUBSTRING(CONVERT(attributes USING latin1) FROM 22) = " .. db.escapeString(query:getDataString("serial")) .. ";")
    db.query("DELETE FROM `dbo`.`tile_items` WHERE SUBSTRING(CONVERT(attributes USING latin1) FROM 22) = " .. db.escapeString(query:getDataString("serial")) .. ";")
    local f = io.open("data/logs/AntiClone.txt", "a+")
    f:write("Player: " .. text .. " - " .. os.date("%d %B %Y - %X.", os.time()) .. "\n\n----------------------------------------------------------\n")
    f:close()
    print(text)

    if query:getID() == -1 then
      local textplayer_items = "\n Check Items: Todos os Items Foram Removidos."
      print(textplayer_items)
      return true
    end

    CheckPlayer_DepotItems()
  end

  return true
end

function onStartup()
  CheckPlayer_Items()
  CheckPlayer_DepotItems()
  return true
end

local function RemoveItemsFromPlayers(itemIDs)
  for _, itemID in ipairs(itemIDs) do
    local query = db.getResult("SELECT DISTINCT player_id FROM player_items WHERE itemtype = " .. itemID)

    if query:getID() == -1 then
      print("\n[!] -> Check Items: Nenhum jogador possui o item com ID " .. itemID .. ".")
    else
      local playerFound = false
      while query:next() do
        local playerId = query:getDataInt("player_id")
        local playerName = getPlayerNameByGUID(playerId)
        if playerName == nil then
          playerName = "Player Not Found"
        end
        local text = "\n[!] -> Deleting item from player: [Player ID: " .. playerName .. " - Item ID: " .. itemID .. "]"
        db.query("DELETE FROM `dbo`.`player_items` WHERE `player_id` = " .. playerId .. " AND `itemtype` = " .. itemID .. ";")
        local f = io.open("data/logs/ItemRemoval.txt", "a+")
        f:write("Player: " .. text .. " - " .. os.date("%d %B %Y - %X.", os.time()) .. "\n\n----------------------------------------------------------\n")
        f:close()
        print(text)
        playerFound = true
      end

      if not playerFound then
        print("\n[!] -> Check Items: Nenhum jogador possui o item com ID " .. itemID .. ".")
      end
    end
  end

  return true
end

function onStartup()
  -- lista de IDs de itens que você deseja remover de todos os jogadores
  local itemsToRemove = {15579, 15007, 10552, 15288} -- Substitua pelos IDs dos itens que você deseja remover
  RemoveItemsFromPlayers(itemsToRemove)

  CheckPlayer_Items()
  CheckPlayer_DepotItems()
  return true
end

 

 

global events:

<globalevent name="AntiClone" type="start" event="script" value="Check.lua"/> 

 

Va ate a pasta data/logs/ e crie um arquivo em txt com o nome "AntiClone"

 

 

qualquer duvida fico a disposição!

Link para o post
Compartilhar em outros sites
  • 6 months later...
  • 3 weeks 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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo