PA

Criptografia em luac

Por paulgrande, 14 de abr. de 2013 em Tutoriais de Clients

luac
criptografia
proteger scripts
otserv
tibia
script
33
17.3k
drakylucasD
14 de abril de 2013 às 14:00

olha, vou compilar esse script:

 

 

AttributeWindow = nil
AttributeButton = nil

function init()
 connect(LocalPlayer, {
   onSkillChange = onSkillChange,
   onHealthChange = onHealthChange,
   onManaChange = onManaChange,
   onBaseSkillChange = onBaseSkillChange
 })
 connect(g_game, {
   onGameStart = refresh,
   onGameEnd = offline
 })

 AttributeButton = modules.client_topmenu.addRightGameToggleButton('AttributeButton', tr('Attributes') , 'Attribute.png', toggle)
 AttributeButton:setOn(true)
 AttributeWindow = g_ui.displayUI('Attribute.otui')
 AttributeHide()
 refresh()
end

function toggle()
 if AttributeButton:isOn() then
   AttributeWindow:hide()
   AttributeButton:setOn(false)
 else
   AttributeWindow:show()
   AttributeButton:setOn(true)
 end
end

function terminate()
 disconnect(LocalPlayer, {
   onSkillChange = onSkillChange,
   onHealthChange = onHealthChange,
   onManaChange = onManaChange,
   onBaseSkillChange = onBaseSkillChange
 })
 disconnect(g_game, {
   onGameStart = refresh,
   onGameEnd = offline
 })

 AttributeWindow:destroy()
 AttributeButton:destroy()
end

function refresh()
 local player = g_game.getLocalPlayer()
 if not player then return end

 for i=0,4 do
   onBaseSkillChange(player, i, player:getSkillBaseLevel(i))
 end
 onHealthChange(player, player:getHealth(), player:getMaxHealth())
 onManaChange(player, player:getMana(), player:getMaxMana())
end

function onHealthChange(localPlayer, health, maxHealth)
 local attr = AttributeWindow:recursiveGetChildById('healthBar')
 attr:setText(health..' / '..maxHealth)
end

function onManaChange(localPlayer, mana, maxMana)
 local attr = AttributeWindow:recursiveGetChildById('manaBar')
 attr:setText(mana..' / '..maxMana)
end

function setAttrValue(id, value)
 local attr = AttributeWindow:recursiveGetChildById(id)
 attr:setText(value)
 if value > 10 and id == 'skillId4' then
   attr:setColor('green')
 end
end

function onBaseSkillChange(localPlayer, id, baseLevel)
 if id <= 4 then
   setAttrValue('skillId'..id, localPlayer:getSkillLevel(id))
 end
end

function AttributeHide()
   AttributeWindow:hide()
   AttributeButton:setOn(false)
end


 

 

 

Ele funciona normal..

 

versão compilada:

(nao da pra dar ctrl + v, o forum nao reconhece os caracteres.. enfim compilou)

agora vou abrir o ot client:

GPU ATI Radeon X1200 Series
OpenGL 2.1.7976 Release
== application started at Apr 14 2013 14:00:20
OTClient 0.6.2 rev 0 (devel) built on Mar 15 2013 for arch x86
ERROR: Unable to load texture '/Attribute.png': unable to open file '/Attribute.png': O sistema não pode encontrar o arquivo especificado.
ERROR: failed to load UI from 'Attribute.otui': unable to open file '/Attribute.otui': O sistema não pode encontrar o arquivo especificado.
ERROR: Unable to load module 'Attribute': LUA ERROR:
?:0: attempt to index global 'AttributeWindow' (a nil value)
stack traceback:
   [C]: ?
   ?: in function 'AttributeHide'
   ?: in function 'init'
   /Attribute/Attribute.otmod:16:[@onLoad]:1: in main chunk
   [C]: in function 'autoLoadModules'
   /init.lua:49: in main chunk

paulgrandeP
14 de abril de 2013 às 14:22

cara sinceramente não sei talvez seja a versão ou não mas como voce vio no videio aqui funciona normal :s vo tentar descobrir

dalvorsnD
15 de abril de 2013 às 07:10

Existem vários decompilers, luadec e um deles.

 

Ele transforma os opcodes em código lua, mais ou menos como Java.

paulgrandeP
15 de abril de 2013 às 16:18

Draky lucas e slicer, erro que esta dando é pelo uso de arquivos externos que no caso de vcs é imagems aque tmb deu esse erro em outro mod que eu usava algumas imagem vo tentar resolver

drakylucasD
15 de abril de 2013 às 22:41

entendi ^^

mas fazer sem imagens fica meio dificil neh pow kkk iria ficar tudo muito... feio.. ^^

PsyMcKenzieP
15 de abril de 2013 às 23:30

Ótimo tópico cara! *-*

Espero que funcione.

 

Mano, o que é esse PxG que todo mundo fala? '-'

Editado Abril 15 por PsyMcKenzie

SlicerS
15 de abril de 2013 às 23:43

eh um servidor de poketibia famoso.. u,U

drakylucasD
17 de abril de 2013 às 14:19

pxg é o servidor que originou o poketibia.. e atualmente é o melhor, sempre foi e provavelmente sempre será.. eles tem tudo que os OT sonham ter kk.. procura no youtube o video do client deles.. ou baixa vc msmo =x

dalvorsnD
17 de abril de 2013 às 19:20

Agora que vi, ta disponibilizando um compilador.

Só pra informação de vocês, o Scite compila também, alem de ter varios modulos ja instalados.

drakylucasD
18 de abril de 2013 às 21:25

o scite deu esse erro:

 

 

>luac5.1 -o "autoloot.luc" "autoloot.lua"

'luac5.1' nÆo ‚ reconhecido como um comando interno

ou externo, um programa oper vel ou um arquivo em lotes.

>Exit code: 1

 

 

o q é? =x

 

e o outro continua com o problema de nao funcionar no otclient =/

dalvorsnD
18 de abril de 2013 às 21:43

o scite deu esse erro:

 

 

>luac5.1 -o "autoloot.luc" "autoloot.lua"

'luac5.1' nÆo ‚ reconhecido como um comando interno

ou externo, um programa oper vel ou um arquivo em lotes.

>Exit code: 1

 

 

o q é? =x

 

e o outro continua com o problema de nao funcionar no otclient =/

 

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

é o do link ai que tu instalou?

se não for, instala ele que nao deve dar erro

já se for pra linux, ai tem que ver aqui, provavelmente deve ter tambem, mas não sei agora de cabeça qual faz

drakylucasD
18 de abril de 2013 às 22:06

na vdd nao era.. eu baixei só o scite oO... era nem 2 mb o peso.. esse lua for windows é 25 mb.. vo instala aqui e tentar compilar dnv pelo scite.. jaja edito =p

 

até compilei.. dai mudei o formato pra .lua, abri e sem erros, porem quando usei o script deu isso

 

 

 

ERROR: failed to load UI from 'autoloot.otui': unable to open file '/autoloot.lua/autoloot.otui': O sistema não pode encontrar o caminho especificado.

ERROR: protected lua call failed: LUA ERROR:

autoloot.lua:26: attempt to index upvalue 'mw' (a nil value)

stack traceback:

[C]: ?

autoloot.lua:26: in function 'atualizar'

autoloot.lua:15: in function <autoloot.lua:12>

 

 

=/

(sem compilar nao da erros)

dx queto isso de compilar.. dps vo da um jeito de fazer algo tipo 7zip compilado com senha ser lido nas sources =x

dalvorsnD
18 de abril de 2013 às 22:06

na vdd nao era.. eu baixei só o scite oO... era nem 2 mb o peso.. esse lua for windows é 25 mb.. vo instala aqui e tentar compilar dnv pelo scite.. jaja edito =p

 

é, ele é mais pesado porque tem acho que umas 20 bibliotecas ou mais, é coisa pra caramba

Nu77N
18 de abril de 2013 às 22:24

Galera pra criptografar os arquivo tem que da uma estuda antes né, se fosse fácil assim ia ser moleza, cara isso é fail, se for pra fazer isso é melhor nen fazer... Tem que da uma estuda no que vai fazer modificar coisas no código fonte pra ter algo estruturado e estável como a PxG fez...

Editado Abril 18 por SUJA

dalvorsnD
18 de abril de 2013 às 22:44

Galera pra criptografar os arquivo tem que da uma estuda antes né, se fosse fácil assim ia ser moleza, cara isso é fail, se for pra fazer isso é melhor nen fazer... Tem que da uma estuda no que vai fazer modificar coisas no código fonte pra ter algo estruturado e estável como a PxG fez...

 

quem fez foi o edubart vei, o deles ta muito sinistro, eu tentei achar qualquer padrão que fosse, mas é sinistro demais

parece até aquelas digested, o bart é muito foda >.<

não da pra meros mortais como nós quebrar essa criptografia dele kk