You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
2.0 KiB
45 lines
2.0 KiB
script_name("hallowen-door-cracker")
|
|
script_author("Serhiy_Rubin")
|
|
script_version("31.10.2023")
|
|
|
|
function main()
|
|
if not isSampLoaded() or not isSampfuncsLoaded() then return end
|
|
while not isSampAvailable() do wait(0) end
|
|
bot = false
|
|
sampRegisterChatCommand("hdoor", function()
|
|
bot = not bot
|
|
printStringNow("~Y~Hallowen Door Cracker~N~"..(bot and "~G~ON" or "~R~OFF"), 1000)
|
|
end)
|
|
while true do
|
|
wait(0)
|
|
if bot then
|
|
for a = 0, 2304 do
|
|
if sampTextdrawIsExists(a) then
|
|
local x, y = sampTextdrawGetPos(a)
|
|
local text = sampTextdrawGetString(a)
|
|
if getDistanceBetweenCoords2d(399.0, 270.0, x, y) < 0.3 then
|
|
if text:find("PRESS %~r%~%~k%~%~(.+)%~ %~w%~TO HACK THE DOOR") then
|
|
local key = text:match("PRESS %~r%~%~k%~%~(.+)%~ %~w%~TO HACK THE DOOR")
|
|
local keys = {
|
|
["CONVERSATION_YES"] = 64,
|
|
["CONVERSATION_NO"] = 128,
|
|
["GROUP_CONTROL_BWD"] = 192,
|
|
}
|
|
if keys[key] ~= nil then
|
|
if af_send == nil or ((os.clock() * 1000 - af_send > 100) or old_key ~= keys[key]) then
|
|
af_send = os.clock() * 1000
|
|
old_key = keys[key]
|
|
local data = allocateMemory(68)
|
|
sampStorePlayerOnfootData(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)), data)
|
|
setStructElement(data, 36, 1, keys[key], false)
|
|
sampSendOnfootData(data)
|
|
freeMemory(data)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end |