- 60
- 17
Не нашел нужный скрипт решил на коленке написать самостоятельно.
Использование:
Использование:
- Закинуть скрипт в папку moonloader
- Ввести команду "/simhunt"
- Зайти в 24/7 и открыть диалог (если не начал работать, то по открывайте/закрывайте диалог с какого то раза должен заработать
- Ловит по трем паттернам: XXXXXX, XYXYXY, XXXYYY
- Деактивация автоматическая
main:
function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(100) end
local textPattern = "мобильного "
local textChat, isDialogActive, flag, idDialog
flag = false
sampRegisterChatCommand('simhunt', function()
flag = not flag
print("activated/deactivate simhunt", flag)
end)
while true do
wait(100)
while flag do
wait(200)
isDialogActive = sampIsDialogActive()
if isDialogActive then
idDialog = sampGetCurrentDialogId()
sampSendDialogResponse(idDialog, 1, 2, nil)
wait(500)
textChat, prefix, color, pcolor = sampGetChatString(98);
if textChat:find(textPattern) ~= nil then
if stringFindSim(textChat) then
flag = false
sampAddChatMessage('STOPED', 0xFFFFFF)
else
sampAddChatMessage('CONT', 0xFFFFFF)
end
end
end
end
end
end
function stringFindSim(textChat)
local SIM = textChat:sub(29)
local len = SIM:len()
if patternXXXXXX(SIM, len) then
sampAddChatMessage('XXXXXX', 0xFFFFFF)
return true
elseif patternXYXYXY(SIM, len) then
sampAddChatMessage('XYXYXY', 0xFFFFFF)
return true
elseif patternXXXYYY(SIM, len) then
sampAddChatMessage('XXXYYY', 0xFFFFFF)
return true
end
return false
end
function patternXXXXXX(SIM, len)
local X = SIM:byte(1)
for i = 2, len do
print("i", i)
if X ~= SIM:byte(i) then
return false
end
end
return true
end
function patternXYXYXY(SIM, len)
X = SIM:byte(1)
Y = SIM:byte(2)
for i = 3, len do
if i % 2 ~= 0 and X ~= SIM:byte(i) then
return false
elseif i%2 ~= 1 and Y ~= SIM:byte(i) then
return false
end
end
return true
end
function patternXXXYYY(SIM, len)
X = SIM:byte(1)
Y = SIM:byte(4)
for i = 2, len do
if i < 4 and X ~= SIM:byte(i) then
return false
elseif i > 4 and Y ~= SIM: byte(i) then
return false
end
end
return true
end