- 119
- 40
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Lua:
require 'lib.moonloader'
local encoding = require("encoding")
local sampev = require("samp.events")
encoding.default = 'CP1251'
u8 = encoding.UTF8
local pdnotf = true
local punishnotf = false
local lanes = require('lanes').configure()
user_id = ''
token = ''
local msg = ''
local punish = {
{ban = 'Администратор (.+)%[(%d+)%] забанил игрока (.+)%[(%d+)%] на (%d+) дней. Причина: (.+)'},
{kick = 'Администратор (.+)%[(%d+)%] кикнул игрока (.+)%[(%d+)%]. Причина: (.+)'},
{jail = 'Администратор (.+)%[(%d+)%] посадил игрока (.+)%[(%d+)%] в деморган на (%d+) минут. Причина: (.+)'},
{pd = 'В данный момент у вас (%d+)%-%й уровень и (%d+)/(%d+) респектов'},
{warn = 'Администратор (.+)%[(%d+)%] выдал предупреждение игроку (.+)%[(%d+)%] [(%d+)/3] Причина: (.+)'},
{mute = 'Администратор (.+)%[(%d+)%] заглушил игрока (.+)%[(%d+)%] на (%d+) минут. Причина: (.+)'}
}
function main()
while not isSampAvailable() do wait(100) end
sampRegisterChatCommand('pdnotf', function()
-- print(v.ban)
sampAddChatMessage("Payday Notifer "..(pdnotf and " activated" or " deactivated"), 0x01FFD5)
end)
sampRegisterChatCommand('punisher', function()
sampAddChatMessage("Punish Notifer"..(punishnotf and " activated" or " deactivated"), 0x01FFD5)
end)
wait(-1)
end
function sendvknotf(msg, host)
host = sampGetCurrentServerName()
acc = sampGetPlayerNickname(select(2,sampGetPlayerIdByCharHandle(playerPed))) .. '['..select(2,sampGetPlayerIdByCharHandle(playerPed))..']'
math.randomseed(os.clock())
local randomid = math.random(1, 10000000)
-- print('https://api.vk.com/method/messages.send?user_id=' .. user_id .. '&message=' .. msg .. '&access_token=' .. token .. '&random_id=' .. randomid .. '&v=5.81')
async_http_request('GET', 'https://api.vk.com/method/messages.send?user_id=' ..user_id..'&message='..msg..'&access_token=' ..token.. '&random_id=' .. randomid .. '&v=5.131', nil --[[параметры запроса]],
function(response) -- вызовется при успешном выполнении и получении ответа
print(response.text) -- response.text - текст ответа. ещё есть response.status_code и response.headers
end,
function(err) -- вызовется при ошибке, err - текст ошибки. эту функцию можно не указывать
print(err)
end)
end
function char_to_hex(str)
return string.format("%%%02X", string.byte(str))
end
function url_encode(str)
local str = string.gsub(str, "\\", "\\")
local str = string.gsub(str, "([^%w])", char_to_hex)
return str
end
function sampev.onServerMessage(color, text)
for k, v in ipairs(punish) do
if text:find('Вы купили ларец') then
msg = '[Concept Car Luxury]\n !!! Вы купили Ларец "Concept Car Luxury" !!!'
msg = u8(msg)
msg = url_encode(msg)
sendvknotf(msg)
end
if text:find(tostring(v.pd)) then
if pdnotf then
lvl, exp1, exp2 = text:match(tostring(v.pd))
msg = (string.format('[ PayDay Notifer ]\n !!! Получен ПейДей !!! \n | Аккаунт: %s | \n | Сервер: %s | \n | Уровень: %s | \n | Респектов: %s из %s | ', acc, host, lvl, exp1, exp2))
msg = u8(msg)
msg = url_encode(msg)
-- sampAddChatMessage('PayDay hooked! LVL = ' .. lvl .. ' EXP = ' .. exp1 .. ' из ' .. exp2 , -1)
sendvknotf(msg)
end
end
if text:find(tostring(v.mute)) then
local adminName, adminId, playerName, playerId, time, reason = text:match(tostring(v.mute))
if punishnotf then
msg = '[ Punish Notifer ] \n [ Новое наказание ] \n | Наказание: Мут | \n | Администратор: ' .. adminName .. '['.. adminId .. '] | \n | Игрок: ' .. playerName .. '[' .. playerId .. '] | \n | Время наказания: ' .. time .. ' минут | \n | Причина: ' .. reason .. ' |'
msg = u8(msg)
msg = url_encode(msg)
sendvknotf(msg)
end
end
if text:find(tostring(v.kick)) then
local adminName, adminId, playerName, playerId, reason = text:match(tostring(v.kick))
if punishnotf then
msg = '[ Punish Notifer ] \n [ Новое наказание ] \n | Наказание: Кик | \n | Администратор: ' .. adminName .. '['.. adminId .. '] | \n | Игрок: ' .. playerName .. '[' .. playerId .. '] | \n | Причина: ' .. reason .. ' |'
msg = u8(msg)
msg = url_encode(msg)
sendvknotf(msg)
end
end
if text:find(tostring(v.warn)) then
local adminName, adminId, playerName, playerId, warn, reason = text:match(tostring(v.warn))
if punishnotf then
msg = '[ Punish Notifer ] \n [ Новое наказание ] \n | Наказание: Варн | \n | Администратор: ' .. adminName .. '['.. adminId .. '] | \n | Игрок: ' .. playerName .. '[' .. playerId .. '] | \n | Текущее количество варнов: ' .. warn .. '/3 | \n | Причина: ' .. reason .. ' |'
msg = u8(msg)
msg = url_encode(msg)
sendvknotf(msg)
end
end
if text:find(tostring(v.jail)) then
local adminName, adminId, playerName, playerId, time, reason = text:match(tostring(v.jail))
if punishnotf then
msg = '[ Punish Notifer ] \n [ Новое наказание ] \n | Наказание: Деморган | \n | Администратор: ' .. adminName .. '['.. adminId .. '] | \n | Игрок: ' .. playerName .. '[' .. playerId .. '] | \n | Время наказания: ' .. time .. ' минут | \n | Причина: ' .. reason .. ' |'
msg = u8(msg)
msg = url_encode(msg)
end
end
if text:find(tostring(v.ban)) then
local adminName, adminId, playerName, playerId, time, reason = text:match(tostring(v.ban))
if punishnotf then
msg = '[ Punish Notifer ] \n [ Новое наказание ] \n | Наказание: Бан | \n | Администратор: ' .. adminName .. '['.. adminId .. '] | \n | Игрок: ' .. playerName .. '[' .. playerId .. '] | \n | Время наказания: ' .. time .. ' дней | \n | Причина: ' .. reason .. ' |'
msg = u8(msg)
msg = url_encode(msg)
end
end
end
end
function async_http_request(method, url, args, resolve, reject)
local request_lane = lanes.gen('*', {package = {path = package.path, cpath = package.cpath}}, function()
local requests = require 'requests'
local ok, result = pcall(requests.request, method, url, args)
if ok then
result.json, result.xml = nil, nil -- cannot be passed through a lane
return true, result
else
return false, result -- return error
end
end)
if not reject then reject = function() end end
lua_thread.create(function()
local lh = request_lane()
while true do
local status = lh.status
if status == 'done' then
local ok, result = lh[1], lh[2]
if ok then resolve(result) else reject(result) end
return
elseif status == 'error' then
return reject(lh[1])
elseif status == 'killed' or status == 'cancelled' then
return reject(status)
end
wait(0)
end
end)
end
при вызове функции sendvknotf в параметры переменной host и acc уходит значение nil, но я вроде как задаю параметры переменной -
Lua:
host = sampGetCurrentServerName()
acc = sampGetPlayerNickname(select(2,sampGetPlayerIdByCharHandle(playerPed))) .. '['..select(2,sampGetPlayerIdByCharHandle(playerPed))..']'
вопрос всё ещё не решён :(
Последнее редактирование: