Verificador de storages

caotic
Por caotic
em Mods, funções e outros

caotic

Afinal de contas,sou um mordomo e tanto
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 04/03/11Posts: 1599Char no Tibia: No Have

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

Eventide

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 08/10/08Posts: 189

Muita coragem... huehuehue

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



?

 

 

1440522_2.png

 

caotic

Afinal de contas,sou um mordomo e tanto
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 04/03/11Posts: 1599Char no Tibia: No Have

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.

Slicer

Insanity
avatar
Príncipe
Príncipe

INFOS

Grupo: PríncipeRegistrado: 19/08/10Posts: 4014Gênero: Masculino
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

"Só a beira do abismo que os seres humanos acham forças para mudar."... E isso me da nojo... ¬¬

"Insanity is doing the exact... same fucking thing... over and over again expecting... shit to change... That. Is. Crazy." -Vass/Einstein

 

koete

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 06/02/13Posts: 132Char no Tibia: Koete

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?

Slicer

Insanity
avatar
Príncipe
Príncipe

INFOS

Grupo: PríncipeRegistrado: 19/08/10Posts: 4014Gênero: Masculino

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

"Só a beira do abismo que os seres humanos acham forças para mudar."... E isso me da nojo... ¬¬

"Insanity is doing the exact... same fucking thing... over and over again expecting... shit to change... That. Is. Crazy." -Vass/Einstein

 

Skymagnum

Hamburguer
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 02/08/12Posts: 1025Char no Tibia: Maurolkit

Da pra pegar todas checando se aquela variável esta sendo usada em uma função de storage, se fazer bem feito roda em até 3.5 segs.

jeoz.png

Kyou

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 14/04/13Posts: 11

Da pra pegar todas checando se aquela variável esta sendo usada em uma função de storage, se fazer bem feito roda em até 3.5 segs.

Faça então. :o

One shot, One kill