Página 1 de 1

Fazer scripts LUA compartilhar dados

Enviado: 16 Ago 2018, 14:22
por Um_Geek
Não vi muitos scripts com isto fora os dos exemplos em russo, então não é muito testado creio eu. Usando isto é possível fazer com que um script lua possa compartilhar informações com outros scripts até de outros autores.

Como exemplo usarei 2 scripts, o que contem os valores a ser exportados exports.lua

Código: Selecionar tudo

local t_values = {
    ['money'] = 25;
}

EXPORTS = {
    get = function(index) return t_values[index] end;
    set = function(index,value) t_values[index] = value end;
}

function main()
    printStringNow('~y~exports.lua ~w~~n~dinheiro no bolso ~g~R$'..t_values.money..'.00',3000);
    while true do 
        wait(4);
    end
end

A table t_values contem as informações que irei exportar, usei uma table porque fica mais fácil da forma que consegui fazer.
a table EXPORTS como pode ver é uma variável global e não local, esta table é a que realmente fara com que os dados sejam exportáveis, no caso eu exportarei 2 funções deste script que são get e set.

Como funciona?
Até agora o script só iniciara e mostrara uma mensagem que o sera exports.lua dinheiro no bolso R$25.00 e apenas isto porque este script não faz mais absolutamente nada.

Ai que entra a segunda parte que é o script import.lua

Código: Selecionar tudo

local imports = import('exports.lua');

function main()
    while true do 
        wait(4);
        if wasKeyPressed(0x50) then -- tecla P
            local money = imports.get('money');
            printStringNow('~y~import.lua ~w~~n~dinheiro no bolso ~p~R$'..money..'.00',3000);
        end
        if wasKeyPressed(0x4F) then -- tecla O
            local money = imports.get('money');
            imports.set('money',money+4);
            printStringNow('~y~import.lua ~w~~n~dinheiro no bolso ~b~R$'..money..'.00',3000);
        end        
    end
end

como visto o foco aqui é isto

Código: Selecionar tudo

local imports = import('exports.lua');

através do comando import o script import.lua importa os dados de exports.lua que estão na table EXPORTS. Desta forma a table imports tera as funções get e set que podem serem usadas pera pega e setar valores da table t_values que esta no script exports.lua.

Onde algo do tipo poderia ser usado?
Em um mod de posto de gasolina por exemplo, o primeiro que fiz não me agradou. através disto outros scripts poderia pegar a quantidade de combustível nos veículos.

É algo simples testando na pratica, já que não sou bom em explicar. caso tenha maneira mais simples que esta seria bom saber.

Re: Fazer scripts LUA compartilhar dados

Enviado: 17 Ago 2018, 13:40
por Kaneki-ken
Um_Geek escreveu:
16 Ago 2018, 14:22
Não vi muitos scripts com isto fora os dos exemplos em russo, então não é muito testado creio eu. Usando isto é possível fazer com que um script lua possa compartilhar informações com outros scripts até de outros autores.

Como exemplo usarei 2 scripts, o que contem os valores a ser exportados exports.lua

Código: Selecionar tudo

local t_values = {
    ['money'] = 25;
}

EXPORTS = {
    get = function(index) return t_values[index] end;
    set = function(index,value) t_values[index] = value end;
}

function main()
    printStringNow('~y~exports.lua ~w~~n~dinheiro no bolso ~g~R$'..t_values.money..'.00',3000);
    while true do 
        wait(4);
    end
end

A table t_values contem as informações que irei exportar, usei uma table porque fica mais fácil da forma que consegui fazer.
a table EXPORTS como pode ver é uma variável global e não local, esta table é a que realmente fara com que os dados sejam exportáveis, no caso eu exportarei 2 funções deste script que são get e set.

Como funciona?
Até agora o script só iniciara e mostrara uma mensagem que o sera exports.lua dinheiro no bolso R$25.00 e apenas isto porque este script não faz mais absolutamente nada.

Ai que entra a segunda parte que é o script import.lua

Código: Selecionar tudo

local imports = import('exports.lua');

function main()
    while true do 
        wait(4);
        if wasKeyPressed(0x50) then -- tecla P
            local money = imports.get('money');
            printStringNow('~y~import.lua ~w~~n~dinheiro no bolso ~p~R$'..money..'.00',3000);
        end
        if wasKeyPressed(0x4F) then -- tecla O
            local money = imports.get('money');
            imports.set('money',money+4);
            printStringNow('~y~import.lua ~w~~n~dinheiro no bolso ~b~R$'..money..'.00',3000);
        end        
    end
end

como visto o foco aqui é isto

Código: Selecionar tudo

local imports = import('exports.lua');

através do comando import o script import.lua importa os dados de exports.lua que estão na table EXPORTS. Desta forma a table imports tera as funções get e set que podem serem usadas pera pega e setar valores da table t_values que esta no script exports.lua.

Onde algo do tipo poderia ser usado?
Em um mod de posto de gasolina por exemplo, o primeiro que fiz não me agradou. através disto outros scripts poderia pegar a quantidade de combustível nos veículos.

É algo simples testando na pratica, já que não sou bom em explicar. caso tenha maneira mais simples que esta seria bom saber.
Interessante pode ser ultil em casos específicos.

Greek tu podia tentar fazer um moonloader.ini ingual modloader pra min seria extremamente útil

Re: Fazer scripts LUA compartilhar dados

Enviado: 18 Ago 2018, 14:50
por Um_Geek
moonloader.ini ingual modloader.
com que tipo de configurações? estou levando em conta se referido ao script que carrega arquivos lua da pasta do modloader.

Re: Fazer scripts LUA compartilhar dados

Enviado: 18 Ago 2018, 14:58
por Kaneki-ken
Um_Geek escreveu:
18 Ago 2018, 14:50
moonloader.ini ingual modloader.
com que tipo de configurações? estou levando em conta se referido ao script que carrega arquivos lua da pasta do modloader.
Iguais do modloader desativar mods e tudo mais.tipo eu to cansadao de ficar renomeando as extensão do .lua pra nao ser carregado(não conheço esse mod ai que você citou)

Re: Fazer scripts LUA compartilhar dados

Enviado: 18 Ago 2018, 15:11
por Um_Geek
não conheço esse mod ai que você citou.
eu não cheguei concluir, mas tem rascunho dele em um lugar aqui no fórum. daria para fazer se não for com mods da pasta moonloader.

Re: Fazer scripts LUA compartilhar dados

Enviado: 18 Ago 2018, 15:12
por Kaneki-ken
Um_Geek escreveu:
18 Ago 2018, 15:11
não conheço esse mod ai que você citou.
eu não cheguei concluir, mas tem rascunho dele em um lugar aqui no fórum. daria para fazer se não for com mods da pasta moonloader.
Pq não funcionária no moon?

Re: Fazer scripts LUA compartilhar dados

Enviado: 18 Ago 2018, 15:17
por Um_Geek
porque ai o próprio .asi teria que cuidar disto, um script poderia até encerrar outros scripts, mas não impediria deles iniciarem.

Re: Fazer scripts LUA compartilhar dados

Enviado: 18 Ago 2018, 15:25
por Kaneki-ken
Um_Geek escreveu:
18 Ago 2018, 15:17
porque ai o próprio .asi teria que cuidar disto, um script poderia até encerrar outros scripts, mas não impediria deles iniciarem.
Entendo.

Re: Fazer scripts LUA compartilhar dados

Enviado: 19 Ago 2018, 14:34
por Um_Geek
Imagem
verei o que procede

Re: Fazer scripts LUA compartilhar dados

Enviado: 20 Ago 2018, 12:58
por Kaneki-ken
Um_Geek escreveu:
19 Ago 2018, 14:34
Imagem
verei o que procede
Essa interface é linda <3 parece ate do reshade

Re: Fazer scripts LUA compartilhar dados

Enviado: 20 Ago 2018, 13:33
por Junior_Djjr
Kaneki-ken escreveu:
20 Ago 2018, 12:58
Um_Geek escreveu:
19 Ago 2018, 14:34
Imagem
verei o que procede
Essa interface é linda <3 parece ate do reshade 
Que não é do ReShade, é o AntTweakBar.dll, que dá pra usar em qualquer tipo de mod, inclusive já criaram opcodes pra cleo para usar ele (pra ficar mais fácil de usar e pah), mas ImGui adaptado ao MoonLoader ficou muito melhor.

Re: Fazer scripts LUA compartilhar dados

Enviado: 20 Ago 2018, 14:13
por Kaneki-ken
Junior_Djjr escreveu:
20 Ago 2018, 13:33
Kaneki-ken escreveu:
20 Ago 2018, 12:58
Um_Geek escreveu:
19 Ago 2018, 14:34
Imagem
verei o que procede
Essa interface é linda <3 parece ate do reshade
Que não é do ReShade, é o AntTweakBar.dll, que dá pra usar em qualquer tipo de mod, inclusive já criaram opcodes pra cleo para usar ele (pra ficar mais fácil de usar e pah), mas ImGui adaptado ao MoonLoader ficou muito melhor.
Eu gostei ficou com tom de mais "atual"

Re: Fazer scripts LUA compartilhar dados

Enviado: 20 Ago 2018, 15:20
por Um_Geek
só faltava o ImGui ter skins.