- 23
- 0
- Версия MoonLoader
- Другое
Хелп плиз, работал скрипт и перестал.
Загружается, но когда запускаю пишет в консоль такое:
Вот скрочки с скрипта
Загружается, но когда запускаю пишет в консоль такое:
сампфункс:
[ML] (exception) Role_Play_Binder.lua: CJSON: Expected value but found invalid token at character 1
[ML] (error) Role_Play_Binder.lua: ...RIZONA GAMES\bin\Arizona\moonloader\Role_Play_Binder.lua:1583: attempt to index local 't' (a nil value)
stack traceback:
...RIZONA GAMES\bin\Arizona\moonloader\Role_Play_Binder.lua: in function 'resolve'
...RIZONA GAMES\bin\Arizona\moonloader\Role_Play_Binder.lua:1448: in function 'threadHandle'
...RIZONA GAMES\bin\Arizona\moonloader\Role_Play_Binder.lua:1473: in function <...RIZONA GAMES\bin\Arizona\moonloader\Role_Play_Binder.lua:1472>
[ML] (error) Role_Play_Binder.lua: Script died due to an error. (130B58E4)
С 1438 по 1593:
function threadHandle(runner, url, args, resolve, reject) -- обработка effil потока без блокировок
local t = runner(url, args)
local r = t:get(0)
while not r do
r = t:get(0)
wait(0)
end
local status = t:status()
if status == 'completed' then
local ok, result = r[1], r[2]
if ok then resolve(result) else reject(result) end
elseif err then
reject(err)
elseif status == 'canceled' then
reject(status)
end
t:cancel(0)
end
function requestRunner() -- создание effil потока с функцией https запроса
return effil.thread(function(u, a)
local https = require 'ssl.https'
local ok, result = pcall(https.request, u, a)
if ok then
return {true, result}
else
return {false, result}
end
end)
end
function async_http_request(url, args, resolve, reject)
local runner = requestRunner()
if not reject then reject = function() end end
lua_thread.create(function()
threadHandle(runner, url, args, resolve, reject)
end)
end
local vkerr, vkerrsend -- сообщение с текстом ошибки, nil если все ок
function loop_async_http_request(url, args, reject)
local runner = requestRunner()
if not reject then reject = function() end end
lua_thread.create(function()
while true do
while not key do wait(0) end
url = server .. '?act=a_check&key=' .. key .. '&ts=' .. ts .. '&wait=25' --меняем url каждый новый запрос потокa, так как server/key/ts могут изменяться
threadHandle(runner, url, args, longpollResolve, reject)
end
end)
end
function longpollResolve(result)
if result then
if debugMode then
print(result)
end
if not result:sub(1,1) == '{' then
vkerr = 'Ошибка!\nПричина: Нет соединения с VK!'
return
end
local t = decodeJson(result)
if t.failed then
if t.failed == 1 then
ts = t.ts
else
key = nil
longpollGetKey()
end
return
end
if t.ts then
ts = t.ts
end
if recvBuf.v and t.updates then
for k, v in ipairs(t.updates) do
if v.type == 'message_new' and tonumber(v.object.from_id) == tonumber(idBuf.v) and v.object.text then
if v.object.payload then
local pl = decodeJson(v.object.payload)
if pl.button then
if pl.button == 'help' then
sendHelp()
elseif pl.button == 'status' then
sendStatus()
end
end
return
end
local text = v.object.text .. ' ' --костыль на случай если одна команда является подстрокой другой (!d и !dc как пример)
if text:match('^' .. toCmd.v .. '%s-%d+%s') then
if accId == tonumber(text:match('^' .. toCmd.v .. '%s-(%d+)%s')) then
text = text:gsub(text:match('^' .. toCmd.v .. '%s-%d+%s*'), '')
else
return
end
end
if text:match('^' .. status.v) then
sendStatus()
elseif text:match('^' .. diaAccept.v .. ' ') then
text = text:sub(1, text:len() - 1)
local style = sampGetCurrentDialogType()
if style == 2 or style > 3 then
sampSendDialogResponse(sampGetCurrentDialogId(), 1, tonumber(u8:decode(text:match('^' .. diaAccept.v .. ' (%d*)'))) - 1, -1)
elseif style == 1 or style == 3 then
sampSendDialogResponse(sampGetCurrentDialogId(), 1, -1, u8:decode(text:match('^' .. diaAccept.v .. ' (.*)')))
else
sampSendDialogResponse(sampGetCurrentDialogId(), 1, -1, -1)
end
closeDialog()
elseif text:match('^' .. diaDecline.v .. ' ') then
sampSendDialogResponse(sampGetCurrentDialogId(), 0, -1, -1)
closeDialog()
else
text = text:sub(1, text:len() - 1)
sampProcessChatInput(u8:decode(text))
end
end
end
end
end
end
function getId()
local ip, port = sampGetCurrentServerAddress()
local nick = getMyName()
local server_name = sampGetCurrentServerName()
return server_name.."\n"..nick .."\n"
end
function longpollGetKey()
async_http_request('https://api.vk.com/method/groups.getLongPollServer?group_id=' .. ini.main.group .. '&access_token=' .. ini.main.token .. '&v=5.80', '', function (result)
if result then
if debugMode then
print(result)
end
if not result:sub(1,1) == '{' then
vkerr = 'Ошибка!\nПричина: Нет соединения с VK!'
return
end
local t = decodeJson(result)
if t.error then
vkerr = 'Ошибка!\nКод: ' .. t.error.error_code .. ' Причина: ' .. t.error.error_msg
return
end
server = t.response.server
ts = t.response.ts
key = t.response.key
vkerr = nil
end
end)
end