Bevezetés
Az DeAMX egy nyílt forráskódú program amit
trc_ készített.
A program C++, C#, Lua nyelven íródott, így megnehezíti tolvajok esélyeit az átfordításhoz.
Nem könnyû, de nem is nehéz javítani a programot mivel a legtöbb fájl nyílt forráskódú ami
persze Lua nyelven íródott.
A jelenlegi verzió: Easy DeAMX v0.3Gondolom sokan használnak Anti-DeAMX szkripteket amik megvédik a módjukat,
de lehetséges hogy nem kiválóan. Aggodalomra semmi ok.
A jelenlegi verzió csak 0.3a alatt mûködik, míg a 0.3c ill. 0.3d verzión is ketyeg.
Felépítése
DeAMX | | |
| deamx.lua | 24 KB |
| deamx_events.lua | 2 KB |
| deamx_opcodes.lua | 31 KB |
| deamx_syscalls.lua | 16 KB |
| deamx_util.lua | 13 KB |
| lua5.1.dll | 164 KB |
| lua5.1.exe | 44 KB |
Easy DeAXM.exe 98 KB
Tippek & trükkök
A DeAMX program csak 3 darab függvénykönyvtártat ismer.
[pawn]
#include <a_samp>
#include <core>
#include <float>
[/pawn]
Miért is van ez?
-- deamx.lua . Sor: 467
outFile = io.open(file:gsub(\'%.[aA][mM][xX]$\', \'.pwn\'), \'w+\')
for i,include in ipairs({\'a_samp\', \'core\', \'float\'}) do
outFile:write((\'#include <%s>\\n\'):format(include))
end
outFile:write(\'\\n\')
Nyugodtan megváltoztathatod
a_sup-ra mert az árfordítás után az
a_samp ->
a_sup lesz a függvénykönyvtár. Egyedi könyvtárakat, mint
fixchars.hfüggvénykönyvtárt nem ismeri fel.
0.3c ill. 0.3d átfordításaA legtöbb eljárás hiányosan fordítja. Hogy miért is?
[pawn]
public OnRconCommand(cmd)
{
return 1;
}
public OnPlayerClickPlayer()
{
return 1;
}
[/pawn]
deamx_events.lua szkriptben láthatod az összes eljárást, amit az átfordítás után fog
megírni.
g_SAMPEventParamNames = {
OnGameModeInit = {},
OnGameModeExit = {},
OnPlayerRequestClass = {\'playerid\', \'classid\'},
OnPlayerRequestSpawn = {\'playerid\'}
}
Láthatólag nem ügyelt a lebegõpontosságra, az integerekre, a boolean értékekre.
Maximális védelem
[pawn]
new iString;
#emit load.pri iString
#emit stor.pri iString
[/pawn]
A programban definiálva vannak az OP kódok, de képtelen visszafordítani mivel nem adtunk
meg neki egy integert avagy egy számot, hanem töröljük a változót.
[pawn]
AntiDeAMX()
{
new a[][] =
{
\"Unarmed (Fist)\",
\"Brass K\"
};
#pragma unused a
}
[/pawn]
A program készítõje nem gondolt arra hogy több értéket is adhatunk a változónak, illetve
nem kell megadnunk így a program kifagy.
Ezeket lehet módosítani többféleképpen is.