0% ont trouvé ce document utile (0 vote)
53 vues19 pages

DS4FV2 Lua

Le document contient un script qui gère des fonctionnalités de triche pour un jeu, y compris la génération d'un identifiant de périphérique et la vérification d'une licence. Il permet également de contrôler des fonctions telles que le tir sans munitions et des modifications de l'environnement de jeu. Le script inclut des mécanismes pour sauvegarder et charger des données, ainsi que des alertes pour l'utilisateur concernant l'état des fonctionnalités.

Transféré par

narasinghasahu2019
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
53 vues19 pages

DS4FV2 Lua

Le document contient un script qui gère des fonctionnalités de triche pour un jeu, y compris la génération d'un identifiant de périphérique et la vérification d'une licence. Il permet également de contrôler des fonctions telles que le tir sans munitions et des modifications de l'environnement de jeu. Le script inclut des mécanismes pour sauvegarder et charger des données, ainsi que des alertes pour l'utilisateur concernant l'état des fonctionnalités.

Transféré par

narasinghasahu2019
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd

local a=gg;local b=io;local c=os;local d=string;local e=table;local f=pcall;local

g=gg.makeRequest;local h=gg.alert;local i=gg.toast;local j=gg.prompt;local


k=os.exit;local l=os.date;local m=os.remove;local n=io.open;local o=io.close;local
p=string.gsub;local q=string.gmatch;local r=load;local s=assert;local t=type;local
u=tonumber;local v=tostring;local w=ipairs;local x=pairs;local y=select;local
z=unpack or table.unpack

local
A=string.char(47,115,116,111,114,97,103,101,47,101,109,117,108,97,116,101,100,47,48
,47)
local
B=string.char(100,101,97,116,104,95,104,120,95,108,105,99,101,110,115,101,46,107,10
1,121)
local
C=string.char(100,101,97,116,104,95,104,120,95,100,101,118,105,99,101,46,105,100)
local
D=string.char(100,101,97,116,104,95,104,120,95,117,115,101,114,46,116,121,112,101)
local E=A..B
local F=A..C
local G=A..D

local function getDeviceId()


local function loadSavedDeviceId()
local file = n(F,"r")
if file then
local id = file:read("*a")
o(file)
if id then
return p(id,"%s+","")
end
end
return nil
end

local function saveDeviceId(deviceId)


local file = n(F,"w")
if file then
file:write(deviceId)
o(file)
return true
end
return false
end

local existingId = loadSavedDeviceId()


if existingId then
return existingId
end

local deviceInfo = {
a.getTargetInfo().packageName,
v(a.getTargetInfo().versionCode),
v(a.getTargetInfo().versionName),
v(a.getTargetInfo().targetPackage)
}

local combined = e.concat(deviceInfo, "_")


local hash = 0
for I=1,#combined do
hash = (hash * 31 + d.byte(combined, I)) % 1000000
end

local newDeviceId = "DEATH" .. v(hash)

saveDeviceId(newDeviceId)

return newDeviceId
end

local function loadSavedLicense()


local file = n(E, "r")
if file then
local key = file:read("*a")
o(file)
if key then
return p(key, "%s+", "")
end
end

return "1234"
end

local function checkOnlineLicense(licenseKey, currentDeviceId)

if licenseKey == "1234" then


return true, "ALL_DEVICES", 1, "free"
end

return false, "INVALID_LICENSE", 0, "unknown"


end

local functionsControl = {
enabled = true,
lastCheck = 0,
cacheTime = 300000,
features = {
magic_headshot = true,
magic_bodyshot = true,
antenna = true,
noammo = true,
magic_bullet = true,
tree_grass_clean = true,
ipad_view = true,
magic_skyshot_mumbai_map = true,
fly_hack = true
},
messages = {
maintenance = string.char(34,34),
announcement = string.char(34,34)
}
}

local function checkFunctionsControl()


local currentTime = c.time() * 1000
if currentTime - functionsControl.lastCheck < functionsControl.cacheTime and
functionsControl.lastCheck ~= 0 then
return true
end

local functions_url =
string.char(104,116,116,112,58,47,47,53,49,46,56,51,46,54,46,53,58,50,48,50,48,57,4
7,102,117,110,99,116,105,111,110,115,46,116,120,116)

i(string.char(240,159,148,141,32,67,104,101,99,107,105,110,103,32,102,117,110,99,11
6,105,111,110,115,32,99,111,110,116,114,111,108,46,46,46))

local success, result = f(g, functions_url)

if success and result and result.code == 200 then


functionsControl.lastCheck = currentTime

for line in q(result.content,string.char(91,94,13,10,93,43)) do


local key, value =
line:match(string.char(40,91,94,61,93,43,41,61,40,46,43,41))
if key and value then
key = p(key,string.char(37,115,43),string.char(34,34))
value = p(value,string.char(37,115,43),string.char(34,34))

if key ==
string.char(115,99,114,105,112,116,95,101,110,97,98,108,101,100) then
functionsControl.enabled = (value ==
string.char(116,114,117,101))
elseif key ==
string.char(109,97,105,110,116,101,110,97,110,99,101,95,109,101,115,115,97,103,101)
then
functionsControl.messages.maintenance =
p(value,string.char(95),string.char(32))
elseif key ==
string.char(97,110,110,111,117,110,99,101,109,101,110,116) then
functionsControl.messages.announcement =
p(value,string.char(92,110),string.char(10))
elseif functionsControl.features[key] ~= nil then
functionsControl.features[key] = (value ==
string.char(116,114,117,101))
end
end
end

if not functionsControl.enabled then


local message = functionsControl.messages.maintenance
if message == string.char(34,34) then
message =
string.char(240,159,148,167,32,83,99,114,105,112,116,32,105,115,32,99,117,114,114,1
01,110,116,108,121,32,117,110,100,101,114,32,109,97,105,110,116,101,110,97,110,99,1
01,46,10,10,80,108,101,97,115,101,32,116,114,121,32,97,103,97,105,110,32,108,97,116
,101,114,46)
end

h(string.char(240,159,154,171,32,83,67,82,73,80,84,32,84,69,77,80,79,82,65,82,73,76
,89,32,68,73,83,65,66,76,69,68,10,10) .. message ..
string.char(10,10,240,159,147,158,32,67,111,110,116,97,99,116,32,115,117,112,112,11
1,114,116,32,102,111,114,32,109,111,114,101,32,105,110,102,111,114,109,97,116,105,1
11,110,46))
k()
end
if functionsControl.messages.announcement ~= string.char(34,34) then

h(string.char(240,159,147,162,32,65,68,77,73,78,32,65,78,78,79,85,78,67,69,77,69,78
,84,10,10) .. functionsControl.messages.announcement)
end

i(string.char(240,159,143,135,32,70,117,110,99,116,105,111,110,115,32,99,111,110,11
6,114,111,108,32,115,121,110,99,101,100))
return true
else

i(string.char(240,159,154,165,32,85,115,105,110,103,32,99,97,99,104,101,100,32,102,
111,114,32,102,111,114,32,102,117,110,99,116,105,111,110,115,32,115,101,116,116,105
,110,103,115))
return false
end
end

local function getFeatureStatus(featureName)


return functionsControl.features[featureName] or false
end

local state = {
antenna = false,
noammo = false,
magic_headshot = false,
magic_bodyshot = false,
magic_bullet = false,
tree_grass_clean = false,
ipad_view = false,
magic_skyshot_mumbai_map = false,
flynotdown = false
}

local saved = {
antenna = {},
magic_headshot = {},
magic_bodyshot = {},
magic_bullet = {},
tree_and_grass_clean = {},
ipad_view = {},
magic_skyshot_mumbai_map = {},
flynotdown = {},
flashgravity = {}
}

local function patchHex(offset, hex1, hex2)


local ranges =
a.getRangesList(string.char(108,105,98,105,108,50,99,112,112,46,115,111))
if #ranges < 2 then

i(string.char(240,159,157,140,32,76,73,66,73,76,50,67,80,80,32,82,65,78,71,69,32,78
,79,84,32,70,79,85,78,68))
return false
end
local lib = ranges[2].start
local addr1 = lib + offset
a.setValues({
{address=addr1, value=hex1, flags=a.TYPE_DWORD},
{address=addr1+4, value=hex2, flags=a.TYPE_DWORD}
})
return true
end

local function turnOnNoAmmo()


if not getFeatureStatus(string.char(110,111,97,109,109,111)) then

h(string.char(240,159,154,171,32,84,104,105,115,32,102,101,97,116,117,114,101,32,10
5,115,32,99,117,114,114,101,110,116,108,121,32,117,110,97,118,97,105,108,97,98,108,
101))
return
end

if patchHex(0x377F5BC, 0xD2800020, 0xD65F03C0) and


patchHex(0x3782CE4, 0xD2800020, 0xD65F03C0) then
state.noammo = true

i(string.char(240,159,143,135,32,78,79,32,65,77,77,79,32,68,69,67,82,69,65,83,69,32
,65,67,84,73,86,65,84,69,68))
else

i(string.char(240,159,157,140,32,70,65,73,76,69,68,32,84,79,32,65,67,84,73,86,65,84
,69,32,78,79,32,65,77,77,79))
end
end

local function turnOffNoAmmo()


if patchHex(0x377F5BC, 0xAA0003F4, 0xD65F03C0) and
patchHex(0x3782CE4, 0xAA0003F4, 0xD65F03C0) then
state.noammo = false

i(string.char(240,159,157,140,32,78,79,32,65,77,77,79,32,68,69,67,82,69,65,83,69,32
,68,69,65,67,84,73,86,65,84,69,68))
else

i(string.char(240,159,154,165,32,70,65,73,76,69,68,32,84,79,32,68,69,65,67,84,73,86
,65,84,69,32,78,79,32,65,77,77,79))
end
end

local function toggleAntenna()


if not getFeatureStatus(string.char(97,110,116,101,110,110,97)) then

h(string.char(240,159,154,171,32,84,104,105,115,32,102,101,97,116,117,114,101,32,10
5,115,32,99,117,114,114,101,110,116,108,121,32,117,110,97,118,97,105,108,97,98,108,
101))
return
end

state.antenna = not state.antenna


a.setRanges(a.REGION_ANONYMOUS)
if state.antenna then
a.searchNumber(string.char(45,49,46,54,57,48,57,51,48,55,50,52,49,52),
a.TYPE_FLOAT)
saved.antenna = a.getResults(1000)
if #saved.antenna > 0 then
for i,v in w(saved.antenna) do
v.value = 999999999987
v.flags = a.TYPE_FLOAT
end
a.setValues(saved.antenna)

i(string.char(240,159,147,161,32,65,78,84,69,78,78,65,32,72,65,67,75,32,65,67,84,73
,86,65,84,69,68))
else

i(string.char(240,159,157,140,32,65,78,84,69,78,78,65,32,86,65,76,85,69,83,32,78,79
,84,32,70,79,85,78,68))
state.antenna = false
end
a.clearResults()
else
if #saved.antenna > 0 then
for i,v in w(saved.antenna) do
v.value = -1.69093072414
v.flags = a.TYPE_FLOAT
end
a.setValues(saved.antenna)

i(string.char(240,159,147,161,32,65,78,84,69,78,78,65,32,72,65,67,75,32,68,69,65,67
,84,73,86,65,84,69,68))
end
a.clearResults()
end
end

local function toggleMagicHeadshot()


if not
getFeatureStatus(string.char(109,97,103,105,99,95,104,101,97,100,115,104,111,116))
then

h(string.char(240,159,154,171,32,84,104,105,115,32,102,101,97,116,117,114,101,32,10
5,115,32,99,117,114,114,101,110,116,108,121,32,117,110,97,118,97,105,108,97,98,108,
101))
return
end

state.magic_headshot = not state.magic_headshot


a.setRanges(a.REGION_ANONYMOUS)
if state.magic_headshot then
a.searchNumber(string.char(48,46,49,53), a.TYPE_FLOAT)
saved.magic_headshot = a.getResults(1000)
if #saved.magic_headshot > 0 then
for i,v in w(saved.magic_headshot) do
v.value = 15
v.flags = a.TYPE_FLOAT
end
a.setValues(saved.magic_headshot)

i(string.char(240,159,142,175,32,77,65,71,73,67,32,72,69,65,68,83,72,79,84,32,65,67
,84,73,86,65,84,69,68))
else

i(string.char(240,159,157,140,32,72,69,65,68,83,72,79,84,32,86,65,76,85,69,83,32,78
,79,84,32,70,79,85,78,68))
state.magic_headshot = false
end
a.clearResults()
else
if #saved.magic_headshot > 0 then
for i,v in w(saved.magic_headshot) do
v.value = 0.15
v.flags = a.TYPE_FLOAT
end
a.setValues(saved.magic_headshot)

i(string.char(240,159,142,175,32,77,65,71,73,67,32,72,69,65,68,83,72,79,84,32,68,69
,65,67,84,73,86,65,84,69,68))
end
a.clearResults()
end
end

local function toggleMagicBodyshot()


if not
getFeatureStatus(string.char(109,97,103,105,99,95,98,111,100,121,115,104,111,116))
then

h(string.char(240,159,154,171,32,84,104,105,115,32,102,101,97,116,117,114,101,32,10
5,115,32,99,117,114,114,101,110,116,108,121,32,117,110,97,118,97,105,108,97,98,108,
101))
return
end

state.magic_bodyshot = not state.magic_bodyshot


a.setRanges(a.REGION_ANONYMOUS)
if state.magic_bodyshot then
a.searchNumber(string.char(48,46,49,51), a.TYPE_FLOAT)
saved.magic_bodyshot = a.getResults(1000)
if #saved.magic_bodyshot > 0 then
for i,v in w(saved.magic_bodyshot) do
v.value = 15
v.flags = a.TYPE_FLOAT
end
a.setValues(saved.magic_bodyshot)

i(string.char(240,159,142,175,32,77,65,71,73,67,32,66,79,68,89,83,72,79,84,32,65,67
,84,73,86,65,84,69,68))
else

i(string.char(240,159,157,140,32,66,79,68,89,83,72,79,84,32,86,65,76,85,69,83,32,78
,79,84,32,70,79,85,78,68))
state.magic_bodyshot = false
end
a.clearResults()
else
if #saved.magic_bodyshot > 0 then
for i,v in w(saved.magic_bodyshot) do
v.value = 0.13
v.flags = a.TYPE_FLOAT
end
a.setValues(saved.magic_bodyshot)

i(string.char(240,159,142,175,32,77,65,71,73,67,32,66,79,68,89,83,72,79,84,32,68,69
,65,67,84,73,86,65,84,69,68))
end
a.clearResults()
end
end

local function activateMagicBullet()


if not
getFeatureStatus(string.char(109,97,103,105,99,95,98,117,108,108,101,116)) then

h(string.char(240,159,154,171,32,84,104,105,115,32,102,101,97,116,117,114,101,32,10
5,115,32,99,117,114,114,101,110,116,108,121,32,117,110,97,118,97,105,108,97,98,108,
101))
return
end

i(string.char(240,159,148,141,32,65,67,84,73,86,65,84,73,78,71,32,77,65,71,73,67,32
,66,85,76,76,69,84,46,46,46))

a.setRanges(a.REGION_ANONYMOUS)

a.searchNumber(string.char(48,46,48,55), a.TYPE_FLOAT, false, a.SIGN_EQUAL, 0,


-1)
saved.magic_bullet = saved.magic_bullet or {}
saved.magic_bullet[1] = a.getResults(500)
if saved.magic_bullet[1] and #saved.magic_bullet[1] > 0 then
for i,v in w(saved.magic_bullet[1]) do
v.value = 3
v.flags = a.TYPE_FLOAT
end
a.setValues(saved.magic_bullet[1])
end
a.clearResults()

a.searchNumber(string.char(48,46,49,53), a.TYPE_FLOAT, false, a.SIGN_EQUAL, 0,


-1)
saved.magic_bullet[2] = a.getResults(500)
if saved.magic_bullet[2] and #saved.magic_bullet[2] > 0 then
for i,v in w(saved.magic_bullet[2]) do
v.value = 30
v.flags = a.TYPE_FLOAT
end
a.setValues(saved.magic_bullet[2])
end
a.clearResults()

state.magic_bullet = true

i(string.char(240,159,143,135,32,77,65,71,73,67,32,66,85,76,76,69,84,32,65,67,84,73
,86,65,84,69,68))
end

local function deactivateMagicBullet()

i(string.char(226,153,139,32,68,69,65,67,84,73,86,65,84,73,78,71,32,77,65,71,73,67,
32,66,85,76,76,69,84,46,46,46))

if saved.magic_bullet and saved.magic_bullet[1] and #saved.magic_bullet[1] > 0


then
for _,v in w(saved.magic_bullet[1]) do
v.value = 0.07
v.flags = a.TYPE_FLOAT
end
a.setValues(saved.magic_bullet[1])
end

if saved.magic_bullet and saved.magic_bullet[2] and #saved.magic_bullet[2] > 0


then
for _,v in w(saved.magic_bullet[2]) do
v.value = 0.15
v.flags = a.TYPE_FLOAT
end
a.setValues(saved.magic_bullet[2])
end

saved.magic_bullet = {}
state.magic_bullet = false

i(string.char(240,159,155,145,32,77,65,71,73,67,32,66,85,76,76,69,84,32,68,69,65,67
,84,73,86,65,84,69,68))
end

local function toggleMagicBullet()


if state.magic_bullet then
deactivateMagicBullet()
else
activateMagicBullet()
end
end

local function toggleTreeAndGrassClean()


state.tree_grass_clean = not state.tree_grass_clean
a.setRanges(a.REGION_C_DATA)
if state.tree_grass_clean then
a.searchNumber(string.char(49,46,54), a.TYPE_FLOAT)
saved.tree_and_grass_clean = a.getResults(50)
for i,v in w(saved.tree_and_grass_clean) do v.value = -500 end
a.setValues(saved.tree_and_grass_clean)
a.clearResults()

i(string.char(240,159,143,163,32,84,114,101,101,32,97,110,100,32,71,114,97,115,115,
32,67,108,101,97,110,32,79,78,32,240,159,143,135))
else
for i,v in w(saved.tree_and_grass_clean) do v.value = 1.6 end
a.setValues(saved.tree_and_grass_clean)
a.clearResults()

i(string.char(240,159,143,163,32,84,114,101,101,32,97,110,100,32,71,114,97,115,115,
32,67,108,101,97,110,32,79,70,70,32,240,159,157,140))
end
end

local function toggleiPadView()


state.ipad_view = not state.ipad_view
a.setRanges(a.REGION_ANONYMOUS)

if state.ipad_view then
a.searchNumber(string.char(50,46,53), a.TYPE_FLOAT)
a.refineNumber(string.char(50,46,53), a.TYPE_FLOAT)
saved.ipad_view = a.getResults(200)

for i,v in w(saved.ipad_view) do


v.value = 10
end
a.setValues(saved.ipad_view)
a.clearResults()

i(string.char(240,159,147,177,32,105,80,97,100,32,86,105,101,119,32,79,78,32,240,15
9,143,135))
else
for i,v in w(saved.ipad_view) do
v.value = 2.5
end
a.setValues(saved.ipad_view)
a.clearResults()

i(string.char(240,159,147,177,32,105,80,97,100,32,86,105,101,119,32,79,70,70,32,240
,159,157,140))
end
end

local function toggleMagicSkyshotMumbaiMap()


state.magic_skyshot_mumbai_map = not state.magic_skyshot_mumbai_map
a.setRanges(a.REGION_ANONYMOUS)
if state.magic_skyshot_mumbai_map then
a.searchNumber(string.char(48,46,49,53), a.TYPE_FLOAT)
saved.magic_skyshot_mumbai_map = a.getResults(1000)
for i,v in w(saved.magic_skyshot_mumbai_map) do v.value = 280 end
a.setValues(saved.magic_skyshot_mumbai_map)
a.clearResults()

i(string.char(240,159,143,135,32,77,97,103,105,99,32,83,107,121,115,104,111,116,32,
79,110))
else
for i,v in w(saved.magic_skyshot_mumbai_map) do v.value = 0.15 end
a.setValues(saved.magic_skyshot_mumbai_map)
a.clearResults()

i(string.char(240,159,157,140,32,77,97,103,105,99,32,83,107,121,115,104,111,116,32,
79,70,70))
end
end

local function toggleFlynotdown(on)


if on then
a.clearResults()
a.setRanges(a.REGION_ANONYMOUS)
a.searchNumber(string.char(45,57,46,56,49), a.TYPE_FLOAT, false,
a.SIGN_EQUAL, 0, -1)
saved.flynotdown = a.getResults(1000)

if #saved.flynotdown > 0 then


for i,v in w(saved.flynotdown) do
v.value = 2.5
v.freeze = true
end
a.setValues(saved.flynotdown)
a.addListItems(saved.flynotdown)

i(string.char(240,159,143,135,32,70,76,89,32,65,67,84,73,86,65,84,69,68))
else

i(string.char(240,159,154,165,32,70,108,121,32,78,111,116,32,68,111,119,110,32,118,
97,108,117,101,32,110,111,116,32,102,111,117,110,100))
end
a.clearResults()

a.setRanges(a.REGION_C_DATA)
a.searchNumber(string.char(50,46,49), a.TYPE_FLOAT)
saved.flashgravity = a.getResults(1000)

if #saved.flashgravity > 0 then


for i,v in w(saved.flashgravity) do
v.value = 100
v.freeze = false
end
a.setValues(saved.flashgravity)

i(string.char(240,159,143,135,32,240,159,165,160,240,159,165,160,240,159,149,167,23
9,184,143))
else

i(string.char(240,159,154,165,32,70,108,97,115,104,32,71,114,97,118,105,116,121,32,
118,97,108,117,101,32,110,111,116,32,102,111,117,110,100))
end
a.clearResults()

state.flynotdown = true
i(string.char(70,76,89,32,78,79,84,32,68,79,87,78,32,240,159,143,135))

else
if saved.flynotdown and #saved.flynotdown > 0 then
for i,v in w(saved.flynotdown) do
v.value = 9.81
v.freeze = false
end
a.setValues(saved.flynotdown)
a.removeListItems(saved.flynotdown)
saved.flynotdown = nil
i(string.char(240,159,146,147,240,159,146,147))
else

i(string.char(240,159,154,165,32,78,111,32,70,108,121,32,78,111,116,32,68,111,119,1
10,32,100,97,116,97,32,116,111,32,114,101,118,101,114,116))
end

if saved.flashgravity and #saved.flashgravity > 0 then


for i,v in w(saved.flashgravity) do
v.value = 2.1
v.freeze = false
end
a.setValues(saved.flashgravity)
saved.flashgravity = nil
i(string.char(240,159,146,158,240,159,146,158))
else
i(string.char(240,159,154,165,32,78,111,32,70,108,97,115,104,32,71,114,97,118,105,1
16,121,32,100,97,116,97,32,116,111,32,114,101,118,101,114,116))
end

state.flynotdown = false

i(string.char(240,159,157,140,32,70,76,89,32,68,69,65,67,84,73,86,65,84,69,68))
end
end

local function applySelectedFeatures(selectedFeatures)


if state.antenna and getFeatureStatus(string.char(97,110,116,101,110,110,97))
then toggleAntenna() end
if state.noammo and getFeatureStatus(string.char(110,111,97,109,109,111)) then
turnOffNoAmmo() end
if state.magic_headshot and
getFeatureStatus(string.char(109,97,103,105,99,95,104,101,97,100,115,104,111,116))
then toggleMagicHeadshot() end
if state.magic_bodyshot and
getFeatureStatus(string.char(109,97,103,105,99,95,98,111,100,121,115,104,111,116))
then toggleMagicBodyshot() end
if state.magic_bullet and
getFeatureStatus(string.char(109,97,103,105,99,95,98,117,108,108,101,116)) then
toggleMagicBullet() end
if state.tree_grass_clean and
getFeatureStatus(string.char(116,114,101,101,95,103,114,97,115,115,95,99,108,101,97
,110)) then toggleTreeAndGrassClean() end
if state.ipad_view and
getFeatureStatus(string.char(105,112,97,100,95,118,105,101,119)) then
toggleiPadView() end
if state.magic_skyshot_mumbai_map and
getFeatureStatus(string.char(109,97,103,105,99,95,115,107,121,115,104,111,116,95,10
9,117,109,98,97,105,95,109,97,112)) then toggleMagicSkyshotMumbaiMap() end
if state.flynotdown and
getFeatureStatus(string.char(102,108,121,95,104,97,99,107)) then
toggleFlynotdown(false) end

if selectedFeatures[1] and
getFeatureStatus(string.char(109,97,103,105,99,95,104,101,97,100,115,104,111,116))
then toggleMagicHeadshot() end
if selectedFeatures[2] and
getFeatureStatus(string.char(109,97,103,105,99,95,98,111,100,121,115,104,111,116))
then toggleMagicBodyshot() end
if selectedFeatures[3] and
getFeatureStatus(string.char(97,110,116,101,110,110,97)) then toggleAntenna() end
if selectedFeatures[4] and
getFeatureStatus(string.char(110,111,97,109,109,111)) then turnOnNoAmmo() end
if selectedFeatures[5] and
getFeatureStatus(string.char(109,97,103,105,99,95,98,117,108,108,101,116)) then
toggleMagicBullet() end
if selectedFeatures[6] and
getFeatureStatus(string.char(116,114,101,101,95,103,114,97,115,115,95,99,108,101,97
,110)) then toggleTreeAndGrassClean() end
if selectedFeatures[7] and
getFeatureStatus(string.char(105,112,97,100,95,118,105,101,119)) then
toggleiPadView() end
if selectedFeatures[8] and
getFeatureStatus(string.char(109,97,103,105,99,95,115,107,121,115,104,111,116,95,10
9,117,109,98,97,105,95,109,97,112)) then toggleMagicSkyshotMumbaiMap() end
if selectedFeatures[9] and
getFeatureStatus(string.char(102,108,121,95,104,97,99,107)) then
toggleFlynotdown(true) end

i(string.char(240,159,143,135,32,70,101,97,116,117,114,101,115,32,97,112,112,108,10
5,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,33))
end

local function mainMenu(userType)


checkFunctionsControl()

local isFreeUser = (userType == string.char(102,114,101,101))

-- KEEP MENU TITLE UNENCRYPTED


local menuTitle = [[
╔════════════════════════════╗
║ 💀 DEATH SF 💀
║ 🔥 Version 2.0 🔥
╚════════════════════════════╝]]

if isFreeUser then
menuTitle = menuTitle .. "\n👤 FREE USER - LIMITED FEATURES"
else
menuTitle = menuTitle .. "\n👑 PREMIUM USER - FULL ACCESS"
end

local menuOptions = {}
local selectedStates = {}
local optionIndex = 1

if isFreeUser then
if
getFeatureStatus(string.char(109,97,103,105,99,95,104,101,97,100,115,104,111,116))
then
menuOptions[optionIndex] = "🎯 MAGIC HEADSHOT " ..
(state.magic_headshot and "[✅]" or "[❌]")
selectedStates[optionIndex] = state.magic_headshot
optionIndex = optionIndex + 1
end

if getFeatureStatus(string.char(97,110,116,101,110,110,97)) then
menuOptions[optionIndex] = "📡 ANTENNA HACK " .. (state.antenna and
"[✅]" or "[❌]")
selectedStates[optionIndex] = state.antenna
optionIndex = optionIndex + 1
end

menuOptions[optionIndex] = "💎 UPGRADE TO PREMIUM"


selectedStates[optionIndex] = false
optionIndex = optionIndex + 1

else
if
getFeatureStatus(string.char(109,97,103,105,99,95,104,101,97,100,115,104,111,116))
then
menuOptions[optionIndex] = "🎯 MAGIC HEADSHOT " ..
(state.magic_headshot and "[✅]" or "[❌]")
selectedStates[optionIndex] = state.magic_headshot
optionIndex = optionIndex + 1
end

if
getFeatureStatus(string.char(109,97,103,105,99,95,98,111,100,121,115,104,111,116))
then
menuOptions[optionIndex] = "🎯 MAGIC BODYSHOT " ..
(state.magic_bodyshot and "[✅]" or "[❌]")
selectedStates[optionIndex] = state.magic_bodyshot
optionIndex = optionIndex + 1
end

if getFeatureStatus(string.char(97,110,116,101,110,110,97)) then
menuOptions[optionIndex] = "📡 ANTENNA HACK " .. (state.antenna and
"[✅]" or "[❌]")
selectedStates[optionIndex] = state.antenna
optionIndex = optionIndex + 1
end

if getFeatureStatus(string.char(110,111,97,109,109,111)) then
menuOptions[optionIndex] = "🔫 NO AMMO DECREASE " .. (state.noammo and
"[✅]" or "[❌]")
selectedStates[optionIndex] = state.noammo
optionIndex = optionIndex + 1
end

if
getFeatureStatus(string.char(109,97,103,105,99,95,98,117,108,108,101,116)) then
menuOptions[optionIndex] = "💫 MAGIC BULLET " ..
(state.magic_bullet and "[✅]" or "[❌]")
selectedStates[optionIndex] = state.magic_bullet
optionIndex = optionIndex + 1
end

if
getFeatureStatus(string.char(116,114,101,101,95,103,114,97,115,115,95,99,108,101,97
,110)) then
menuOptions[optionIndex] = "🌳 TREE & GRASS CLEAN " ..
(state.tree_grass_clean and "[✅]" or "[❌]")
selectedStates[optionIndex] = state.tree_grass_clean
optionIndex = optionIndex + 1
end

if getFeatureStatus(string.char(105,112,97,100,95,118,105,101,119)) then
menuOptions[optionIndex] = "📱 iPad VIEW " .. (state.ipad_view
and "[✅]" or "[❌]")
selectedStates[optionIndex] = state.ipad_view
optionIndex = optionIndex + 1
end

if
getFeatureStatus(string.char(109,97,103,105,99,95,115,107,121,115,104,111,116,95,10
9,117,109,98,97,105,95,109,97,112)) then
menuOptions[optionIndex] = "☁️ MAGIC SKYSHOT " ..
(state.magic_skyshot_mumbai_map and "[✅]" or "[❌]")
selectedStates[optionIndex] = state.magic_skyshot_mumbai_map
optionIndex = optionIndex + 1
end
if getFeatureStatus(string.char(102,108,121,95,104,97,99,107)) then
menuOptions[optionIndex] = "🚀 FLY HACK " .. (state.flynotdown
and "[✅]" or "[❌]")
selectedStates[optionIndex] = state.flynotdown
optionIndex = optionIndex + 1
end
end

menuOptions[optionIndex] = "🚪 EXIT SCRIPT"


selectedStates[optionIndex] = false

local selected = a.multiChoice(menuOptions, selectedStates, menuTitle)

if selected == nil then


return
end

if isFreeUser then
local featureCount = 0
if
getFeatureStatus(string.char(109,97,103,105,99,95,104,101,97,100,115,104,111,116))
then featureCount = featureCount + 1 end
if getFeatureStatus(string.char(97,110,116,101,110,110,97)) then
featureCount = featureCount + 1 end

local upgradeOptionIndex = featureCount + 1

if selected[upgradeOptionIndex] then
h([[
💎 UPGRADE TO PREMIUM
━━━━━━━━━━━━━━━━━━━━

✨ Premium Features:
• Magic Bodyshot
• No Ammo Decrease
• Magic Bullet
• Tree & Grass Clean
• iPad View
• Magic Skyshot
• Fly Hack

🔑 Contact the admin to get a premium license key!

📞 Telegram: @deaths4f & scarfall_hackerss


]])
return
end
end

local exitOptionIndex = #menuOptions


if selected[exitOptionIndex] then
local confirm = h("🚪 EXIT DEATH HX?\n\nAre you sure you want to exit?", "✅
YES, EXIT", "❌ NO, CANCEL")
if confirm == 1 then
-- KEEP EXIT MESSAGE UNENCRYPTED
h([[
╔══════════════════════════╗
║ THANK YOU FOR
║ USING DEATH SF!
╠══════════════════════════╣

║ 🔒 Stay Safe & Happy
║ 🎮 Gaming!

║ 👋 See You Next Time!
╚══════════════════════════╝
]])
k()
end
return
end

local featureSelection = {false, false, false, false, false, false, false,


false, false}
local currentIndex = 1

if
getFeatureStatus(string.char(109,97,103,105,99,95,104,101,97,100,115,104,111,116))
then
if selected[currentIndex] then featureSelection[1] = true end
currentIndex = currentIndex + 1
end

if
getFeatureStatus(string.char(109,97,103,105,99,95,98,111,100,121,115,104,111,116))
then
if selected[currentIndex] then featureSelection[2] = true end
currentIndex = currentIndex + 1
end

if getFeatureStatus(string.char(97,110,116,101,110,110,97)) then
if selected[currentIndex] then featureSelection[3] = true end
currentIndex = currentIndex + 1
end

if getFeatureStatus(string.char(110,111,97,109,109,111)) then
if selected[currentIndex] then featureSelection[4] = true end
currentIndex = currentIndex + 1
end

if getFeatureStatus(string.char(109,97,103,105,99,95,98,117,108,108,101,116))
then
if selected[currentIndex] then featureSelection[5] = true end
currentIndex = currentIndex + 1
end

if
getFeatureStatus(string.char(116,114,101,101,95,103,114,97,115,115,95,99,108,101,97
,110)) then
if selected[currentIndex] then featureSelection[6] = true end
currentIndex = currentIndex + 1
end

if getFeatureStatus(string.char(105,112,97,100,95,118,105,101,119)) then
if selected[currentIndex] then featureSelection[7] = true end
currentIndex = currentIndex + 1
end
if
getFeatureStatus(string.char(109,97,103,105,99,95,115,107,121,115,104,111,116,95,10
9,117,109,98,97,105,95,109,97,112)) then
if selected[currentIndex] then featureSelection[8] = true end
currentIndex = currentIndex + 1
end

if getFeatureStatus(string.char(102,108,121,95,104,97,99,107)) then
if selected[currentIndex] then featureSelection[9] = true end
currentIndex = currentIndex + 1
end

applySelectedFeatures(featureSelection)

local statusText = "📊 CURRENT STATUS:\n\n"


local hasActiveFeatures = false

if
getFeatureStatus(string.char(109,97,103,105,99,95,104,101,97,100,115,104,111,116))
then
statusText = statusText .. "🎯 Magic Headshot: " .. (state.magic_headshot
and "✅ ON" or "❌ OFF") .. "\n"
hasActiveFeatures = true
end

if
getFeatureStatus(string.char(109,97,103,105,99,95,98,111,100,121,115,104,111,116))
then
statusText = statusText .. "🎯 Magic Bodyshot: " .. (state.magic_bodyshot
and "✅ ON" or "❌ OFF") .. "\n"
hasActiveFeatures = true
end

if getFeatureStatus(string.char(97,110,116,101,110,110,97)) then
statusText = statusText .. "📡 Antenna Hack: " .. (state.antenna and "✅ ON"
or "❌ OFF") .. "\n"
hasActiveFeatures = true
end

if getFeatureStatus(string.char(110,111,97,109,109,111)) then
statusText = statusText .. "🔫 No Ammo: " .. (state.noammo and "✅ ON" or "❌
OFF") .. "\n"
hasActiveFeatures = true
end

if getFeatureStatus(string.char(109,97,103,105,99,95,98,117,108,108,101,116))
then
statusText = statusText .. "💫 Magic Bullet: " .. (state.magic_bullet and "✅
ON" or "❌ OFF") .. "\n"
hasActiveFeatures = true
end

if
getFeatureStatus(string.char(116,114,101,101,95,103,114,97,115,115,95,99,108,101,97
,110)) then
statusText = statusText .. "🌳 Tree & Grass Clean: " ..
(state.tree_grass_clean and "✅ ON" or "❌ OFF") .. "\n"
hasActiveFeatures = true
end

if getFeatureStatus(string.char(105,112,97,100,95,118,105,101,119)) then
statusText = statusText .. "📱 iPad View: " .. (state.ipad_view and "✅ ON"
or "❌ OFF") .. "\n"
hasActiveFeatures = true
end

if
getFeatureStatus(string.char(109,97,103,105,99,95,115,107,121,115,104,111,116,95,10
9,117,109,98,97,105,95,109,97,112)) then
statusText = statusText .. "☁️ Magic Skyshot: " ..
(state.magic_skyshot_mumbai_map and "✅ ON" or "❌ OFF") .. "\n"
hasActiveFeatures = true
end

if getFeatureStatus(string.char(102,108,121,95,104,97,99,107)) then
statusText = statusText .. "🚀 Fly Hack: " .. (state.flynotdown and "✅ ON"
or "❌ OFF") .. "\n"
hasActiveFeatures = true
end

if not hasActiveFeatures then


statusText = statusText .. "No features currently active\n"
end

if functionsControl.messages.announcement ~= string.char(34,34) then


statusText = statusText .. "\n\n📢 Announcement:\n" ..
functionsControl.messages.announcement
end

-- ✅ mandatoryUpdateCheck
function mandatoryUpdateCheck()

end

h(statusText, "🔙 BACK TO MENU")


end

i(string.char(240,159,148,145,32,73,110,105,116,105,97,108,105,122,105,110,103,32,6
8,69,65,84,72,32,72,88,32,50,46,48,46,46,46))

i(string.char(240,159,143,135,32,76,111,103,105,110,32,115,117,99,99,101,115,115,10
2,117,108,33,32,87,101,108,99,111,109,101,32,116,111,32,68,69,65,84,72,32,72,88,32,
50,46,48))

if userType == string.char(102,114,101,101) then

i(string.char(240,159,145,164,32,70,114,101,101,32,85,115,101,114,32,45,32,76,105,1
09,105,116,101,100,32,70,101,97,116,117,114,101,115))
else

i(string.char(240,159,145,145,32,80,114,101,109,105,117,109,32,85,115,101,114,32,45
,32,70,117,108,108,32,65,99,99,101,115,115))
end

i(string.char(240,159,148,141,32,67,104,101,99,107,105,110,103,32,102,111,114,32,10
9,97,110,100,97,116,111,114,121,32,117,112,100,97,116,101,115,46,46,46))
-- mandatoryUpdateCheck()
i(string.char(240,159,148,141,32,67,104,101,99,107,105,110,103,32,102,117,110,99,11
6,105,111,110,115,32,99,111,110,116,114,111,108,46,46,46))
checkFunctionsControl()

if l(string.char(37,89,37,109,37,100)) > string.char(50,48,50,54,49,49,49,54) then

h(string.char(240,159,157,140,32,83,99,114,105,112,116,32,69,120,112,105,114,101,10
0,32,240,159,157,140,10,240,159,147,149,32,68,111,119,110,108,111,97,100,32,76,97,1
16,101,115,116,32,86,101,114,115,105,111,110))
k()
end

i(string.char(240,159,148,165,32,83,99,114,105,112,116,32,65,99,116,105,118,97,116,
101,100,33))

while true do
if a.isVisible(true) then
a.setVisible(false)
mainMenu(userType)
end
a.sleep(100)
end

Vous aimerez peut-être aussi