script_author('dobytchick.')
script_description('AdvanceRP Fisher')
require 'lib.moonloader'
local hook = require 'lib.samp.events'
-- Список кнопок сопоставляемых с теми, что отображаются на текстдраве
local KeysToAction = {}
KeysToAction['N'] = 10
KeysToAction['Y'] = 11
local NEXT_PRESS_TIMER = 30
local KeysToAction_Meta = {}
KeysToAction_Meta['__index'] = KeysToAction_Meta
KeysToAction_Meta['defaultTimerValue'] = 15
KeysToAction_Meta['timerToNextPress'] = KeysToAction_Meta['defaultTimerValue']
KeysToAction_Meta['timerLimit'] = 70
-- Получает таймер, который нужен до след. нажатия кнопка
function KeysToAction_Meta:GetTimer()
return KeysToAction_Meta['timerToNextPress']
end
-- Обновляет таймер нажатия след кнопки
function KeysToAction_Meta:AddNextTime()
KeysToAction_Meta['timerToNextPress'] = KeysToAction_Meta['timerToNextPress'] + math.random(NEXT_PRESS_TIMER / 2, NEXT_PRESS_TIMER)
if KeysToAction_Meta['timerToNextPress'] >= KeysToAction_Meta['timerLimit'] then
self:ResetTimer()
end
end
-- сбрасывает таймер до дефолтного значения
function KeysToAction_Meta:ResetTimer()
KeysToAction_Meta['timerToNextPress'] = KeysToAction_Meta['defaultTimerValue']
end
-- выполняет нажатие кнопки.
function KeysToAction_Meta:Press(nKey)
if not nKey then return end
setGameKeyState(nKey, 1)
wait(self:GetTimer())
setGameKeyState(nKey, 0)
self:AddNextTime()
end
setmetatable(KeysToAction, KeysToAction_Meta)
local initKey
function main()
while not isSampAvailable() do wait(0) end
while true do wait(0)
if initKey then
KeysToAction:Press(initKey)
end
end
end
function hook.onShowTextDraw(id, data)
initKey = KeysToAction[data.text]
end