Ir para conteúdo

Posts Recomendados

Bem..

Tava conversando com o eventide sobre um verificador de storages para otserv.

Basicamente ele rodaria todo seu otserv em busca de storages e te desse o valor delas.

 

Antes de realizar o programa tem que fazer sua estrutura.

Então fiz a função que iria buscar os valores e as storages:

 

local str = "setPlayerStorageValue(cid, 23232, 1+2)\nsetPlayerStorageValue(cid, 211, 8)\n x(x, y)\n setPlayerStorageValue(cid, 2322, 1)\n"


function string.explode(e, sep)
local result = {}	e:gsub("[^".. sep .."]+", function(s) table.insert(result, s:match("^%s*(.-)%s*$")) end)
return result
end



function findStr(str, x)
_ = ""
for i in str:gmatch("setPlayerStorageValue(.-)\n") do
explode = string.explode(i, ",")
value = string.sub(explode[3], 1, #explode[3]-1)
if x then
y = loadstring('return (' .. value .. ')')()
end
_ = _.." \n"
s = _..explode[2]
_ = s.." Value = "..y or 'Not Value'..""
end
return _
end

print(findStr(str, true))

 

 

Já penso roda isto no seu otserv todo.

Melhor ficarem so com a função e se quiserem usar no seu otserv.

Recomendo a blibioteca lua file system e coragem.

 

 

Abs

Editado por caotic
Link para o comentário
https://xtibia.com/forum/topic/215732-verificador-de-storages/
Compartilhar em outros sites

Muita coragem... huehuehue

Muito difícil conflitar storages, só aconteceu uma vez comigo...

 

E nunca aconteceu isso comigo.

Mais se alguém quiser testar algo mais fundo.

Tinha insertar todos os valores numa table e verificar se não tem repetição.

Editado por caotic
Link para o comentário
https://xtibia.com/forum/topic/215732-verificador-de-storages/#findComment-1530122
Compartilhar em outros sites

  • 3 weeks later...
require( "ex" )

local t = {os.currentdir()}

function SearchFiles(path, result)
    for e in assert(os.dir(path)) do
        if e.type == 'directory' then
            table.insert(t, e.name)
            SearchFiles(table.concat(t, "\\"), result)
        elseif string.find(e.name, ".lua") then
            local file = io.open(table.concat(t, "\\").."\\"..(e.name), 'r')
            if file then
                local txt = file:read("*all")
                for i in string.gmatch(txt, "setPlayerStorageValue%(%a*, (%d+), %d*%)") do
                    result:write(i.."\t\t"..table.concat(t,"\\").."\\"..e.name.."\n")
                end
                for i in string.gmatch(txt, "sto = (%d+)") do
                    result:write(i.."\t\t"..table.concat(t,"\\").."\\"..e.name.."\n")
                end
                for i in string.gmatch(txt, "storage = (%d+)") do
                    result:write(i.."\t\t"..table.concat(t,"\\").."\\"..e.name.."\n")
                end
                file:close()
            end
        end
    end
    if #t > 1 then table.remove(t) end
end

local result = io.open("results.txt", "a+")
SearchFiles('.', result)
result:close()

eh eh, nao fico la um codigo muito bonito kk' mas n ta levando nem 2seg para rodar a pasta toda... o problema eh q muitas vezes o cara usa outras variaveis para por a storage... dai eh complicado... ;p

Editado por Slicer
Link para o comentário
https://xtibia.com/forum/topic/215732-verificador-de-storages/#findComment-1535018
Compartilhar em outros sites

pow vê se eu intendi...

isso é um script que procura e te mostra todas as storages usadas em jogo? (se for nossa muito perfeito pra mim, tava precisando disso)

e como que instala este script?

Link para o comentário
https://xtibia.com/forum/topic/215732-verificador-de-storages/#findComment-1535881
Compartilhar em outros sites

como flei, ele n da TODASSSSSS as storages... ja q tu pode ta usando alguma variavel diferente para storage em alguns scripts... mais concerteza lhe dara boa parte...

 

eh soh baixar isso...

http://code.google.com/p/luaforwindows/downloads/list

 

dai instala... depois vai em C:\Program Files\Lua\5.1\SciTE\ e abre o SciTE.exe ... dai cola esse codigo la no editor, salva com a extensao .lua ... dai pega o arquivo, .lua, q foi criado, e coloca na pasta data/ do teu serv... dai abre esse arquivo denovo com o SciTE.exe e aperta F5... dai vai ser criado um arquivo chamado results.txt com as storages e o arquivo aonde essa storage foi chamada...

Link para o comentário
https://xtibia.com/forum/topic/215732-verificador-de-storages/#findComment-1536627
Compartilhar em outros sites

×
×
  • Criar Novo...