- 1,573
- 20,635
решил я значится давеча решить проблему, которой не было -- написать фаст сс на луа. суть проста донельзя, правда вдовесок нужен скриншот.аси -- но не думаю что это проблема. так вот -- суть заключается в том, что при нажатии на кнопку убирается худ, делается скрин /стандартным методом/ (через ф8) и худ возвращается обратно.
для решения проблемы я нашел скрипты которые убирают худ, опытным путем вычислил что за что отвечает, написал простенький код и... потерпел факап.
на данный момент код выглядит вот так (поясняю комментами че к чему)
проблемы с которыми я столкнулся:
1) скрипт не работает на кнопку. даже если screen_cmd() полностью перенести в main(). по команде заводится, по кнопке нет. хоть isKeyDown, хоть wasKeyPressed
2) худ нормально не убирается. ну то есть, он убирается, но моментально ставится назад и так по кругу. получается он как бы /мигает/, включается и выключается.
3) вытекает из второй -- к концу исполнения скрипта худ не всегда возвращается на место. приходится исполнять еще раз.
также мне не нравится говнокодерская реализация через wait(x), хотелось бы данное вот это вот делать максимально быстро.
прошу помощи, ибо я стопроцентно делаю что-то не так.
для решения проблемы я нашел скрипты которые убирают худ, опытным путем вычислил что за что отвечает, написал простенький код и... потерпел факап.
на данный момент код выглядит вот так (поясняю комментами че к чему)
Код:
script_author('xxx')
script_version_number(1.0)
local vkeys = require 'vkeys'
local displayState = true
local radarState = 0
local render = false
local memory = require 'memory'
function main()
while not isSampAvailable() do wait(10000) end
sampAddChatMessage('{0000CD}[Screen Maker]: {FFFFFF}Anal "//cc".',-1)
sampRegisterChatCommand('/cc', screen_cmd) --отладочный код на активацию по команде, спизжен с еще одного скрипта
while true do
wait(0)
end
end
function Hud()
while true do
wait (0)
if hud then
displayState = not displayState
if displayState then radarState = 0 else radarState = 2 end
displayHud(displayState)
writeMemory(12216172, 1, radarState, true)
end
end
end
lua_thread.create(Hud)
--это кусок отвечающий за уборку худа, также невозбранно выдернутый. есть такой же скрипт от никишинова, но он реализован кривее, и вообще я его еле нашел
function screen_cmd()
lua_thread.create(function()
wait(0)
hud = true
wait(1)
setVirtualKeyDown(119, true)
wait(1)
setVirtualKeyDown(119, false)
wait(101)
hud = false
wait(1)
sampAddChatMessage('{0000CD}[Screen Maker]: {FFFFFF}Penis.')
end)
end
-- собсна, это набор команд, чтобы сделать скрин -- убрать худ, сделать скрин, вернуть худ.
проблемы с которыми я столкнулся:
1) скрипт не работает на кнопку. даже если screen_cmd() полностью перенести в main(). по команде заводится, по кнопке нет. хоть isKeyDown, хоть wasKeyPressed
2) худ нормально не убирается. ну то есть, он убирается, но моментально ставится назад и так по кругу. получается он как бы /мигает/, включается и выключается.
3) вытекает из второй -- к концу исполнения скрипта худ не всегда возвращается на место. приходится исполнять еще раз.
также мне не нравится говнокодерская реализация через wait(x), хотелось бы данное вот это вот делать максимально быстро.
прошу помощи, ибо я стопроцентно делаю что-то не так.