slot0 = require("lib.samp.events")
slot1 = require("inicfg")
slot2 = slot1.load({
config = {
max_dist = 50,
kick_kill_msg = false,
power = 2,
ignore_afk_dead = false,
tp_to_victim = false,
invisible = false
}
}, "ARP Rvanka.ini")
slot1.save(slot2, "ARP Rvanka.ini")
slot3 = {
key_pressed = false,
enabled = false,
victim_y = 0,
curr_speed = 0,
victim_z = 0,
victim_x = 0,
ignore_afk_dead = slot2.config.ignore_afk_dead,
kick_kill_msg = slot2.config.kick_kill_msg,
tp_to_victim = slot2.config.tp_to_victim,
invisible = slot2.config.invisible,
power = slot2.config.power,
max_dist = slot2.config.max_dist
}
function main()
if not isSampLoaded() or not isSampfuncsLoaded() then
return
end
while not isSampAvailable() do
wait(1000)
end
sampRegisterChatCommand("arvset", function ()
show_dialog(0)
end)
sampRegisterChatCommand("arv", function ()
uv0.victim_z = 0
uv0.victim_y = 0
uv0.victim_x = 0
uv0.curr_speed = 0
uv0.key_pressed = false
uv0.enabled = not uv0.enabled
end)
sampAddChatMessage("{FF0000}[ARP Rvanka]{FFFFFF} \\xd1\\xea\\xf0\\xe8\\xef\\xf2 \\xf3\\xf1\\xef\\xe5\\xf8\\xed\\xee \\xe7\\xe0\\xe3\\xf0\\xf3\\xe6\\xe5\\xed! \\xc0\\xe2\\xf2\\xee\\xf0: Lokapon", -1)
sampAddChatMessage("{FF0000}[ARP Rvanka]{FFFFFF} \\xc0\\xea\\xf2\\xe8\\xe2\\xe0\\xf6\\xe8\\xff \\xec\\xe5\\xed\\xfe: /arvset \\xc0\\xea\\xf2\\xe8\\xe2\\xe0\\xf6\\xe8\\xff \\xf0\\xe2\\xe0\\xed\\xea\\xe8: /arv", -1)
while true do
wait(0)
slot0, slot1, slot2, slot3 = sampHasDialogRespond(7777)
if slot0 and slot1 == 1 then
if slot2 == 0 then
uv0.ignore_afk_dead = not uv0.ignore_afk_dead
end
if slot2 == 1 then
uv0.kick_kill_msg = not uv0.kick_kill_msg
end
if slot2 == 2 then
uv0.tp_to_victim = not uv0.tp_to_victim
end
if slot2 == 3 then
uv0.invisible = not uv0.invisible
end
if slot2 == 4 then
show_dialog(1)
end
if slot2 == 5 then
show_dialog(2)
end
if slot2 <= 3 then
show_dialog(0)
end
end
slot4, slot5, slot6, slot7 = sampHasDialogRespond(8888)
if slot4 then
if slot5 == 1 then
if slot7 and slot7:match("^%-?%d*%.%d+$") and tonumber(slot7) >= 0.1 and tonumber(slot7) <= 5 then
uv0.power = tonumber(slot7)
show_dialog(0)
else
show_dialog(1)
end
else
show_dialog(1)
end
end
slot8, slot9, slot10, slot11 = sampHasDialogRespond(9999)
if slot8 then
if slot9 == 1 then
if slot11 and slot11:match("^%d+$") and tonumber(slot11) >= 1 and tonumber(slot11) <= 50 then
uv0.max_dist = tonumber(slot11)
show_dialog(0)
else
show_dialog(2)
end
else
show_dialog(2)
end
end
if uv0.enabled then
if isCharInAnyCar(PLAYER_PED) and getDriverOfCar(storeCarCharIsInNoSave(PLAYER_PED)) == PLAYER_PED then
if wasKeyPressed(82) and not sampIsCursorActive() then
uv0.key_pressed = not uv0.key_pressed
end
if uv0.key_pressed then
if uv0.tp_to_victim then
slot12, slot13 = getNearCharToCenter(500)
if slot12 and slot13 then
slot14, slot15, slot16 = getCharCoordinates(PLAYER_PED)
slot17, slot18, slot19 = getCharCoordinates(slot12)
if getDistanceBetweenCoords3d(slot14, slot15, slot16, slot17, slot18, slot19) < uv0.max_dist then
s_my_x, s_my_y = convert3DCoordsToScreen(slot14, slot15, slot16)
s_victim_x, s_victim_y = convert3DCoordsToScreen(slot17, slot18, slot19)
renderDrawLine(s_my_x, s_my_y, s_victim_x, s_victim_y, 2, -1)
renderDrawPolygon(s_my_x, s_my_y, 10, 10, 25, 0, -1)
renderDrawPolygon(s_victim_x, s_victim_y, 10, 10, 25, 0, -1)
if uv0.ignore_afk_dead then
if isCharDead(slot12) or sampIsPlayerPaused(slot13) then
printStringNow("~r~! IGNORE !~w~ " .. sampGetPlayerNickname(slot13) .. "[" .. slot13 .. "]")
uv0.victim_z = 0
uv0.victim_y = 0
uv0.victim_x = 0
uv0.curr_speed = uv0.curr_speed
uv0.key_pressed = uv0.key_pressed
uv0.enabled = uv0.enabled
else
printStringNow("~r~Rvanka~w~ " .. sampGetPlayerNickname(slot13) .. "[" .. slot13 .. "]")
uv0.victim_z = slot19
uv0.victim_y = slot18
uv0.victim_x = slot17
uv0.curr_speed = uv0.curr_speed
uv0.key_pressed = uv0.key_pressed
uv0.enabled = uv0.enabled
end
else
printStringNow("~r~Rvanka~w~ " .. sampGetPlayerNickname(slot13) .. "[" .. slot13 .. "]")
uv0.victim_z = slot19
uv0.victim_y = slot18
uv0.victim_x = slot17
uv0.curr_speed = uv0.curr_speed
uv0.key_pressed = uv0.key_pressed
uv0.enabled = uv0.enabled
end
else
uv0.victim_z = 0
uv0.victim_y = 0
uv0.victim_x = 0
uv0.curr_speed = uv0.curr_speed
uv0.key_pressed = uv0.key_pressed
uv0.enabled = uv0.enabled
printStringNow("Waiting for the players.")
end
else
uv0.victim_z = 0
uv0.victim_y = 0
uv0.victim_x = 0
uv0.curr_speed = uv0.curr_speed
uv0.key_pressed = uv0.key_pressed
uv0.enabled = uv0.enabled
printStringNow("Waiting for the players.")
end
else
uv0.victim_z = 0
uv0.victim_y = 0
uv0.victim_x = 0
uv0.curr_speed = uv0.curr_speed
uv0.key_pressed = uv0.key_pressed
uv0.enabled = uv0.enabled
printStringNow("~r~Rvanka ~g~ON")
end
else
uv0.victim_z = 0
uv0.victim_y = 0
uv0.victim_x = 0
uv0.curr_speed = 0
uv0.key_pressed = uv0.key_pressed
uv0.enabled = uv0.enabled
printStringNow("Press \"R\" to start.")
end
else
sampAddChatMessage("{FF0000}[ARP Rvanka]{FFFFFF} \\xc2\\xfb \\xe4\\xee\\xeb\\xe6\\xed\\xfb \\xe1\\xfb\\xf2\\xfc \\xe7\\xe0 \\xf0\\xf3\\xeb\\xb8\\xec \\xec\\xe0\\xf8\\xe8\\xed\\xfb", -1)
uv0.victim_z = 0
uv0.victim_y = 0
uv0.victim_x = 0
uv0.curr_speed = 0
uv0.key_pressed = false
uv0.enabled = false
end
end
end
end
function show_dialog(slot0)
uv0.config.ignore_afk_dead = uv1.ignore_afk_dead
uv0.config.kick_kill_msg = uv1.kick_kill_msg
uv0.config.tp_to_victim = uv1.tp_to_victim
uv0.config.invisible = uv1.invisible
uv0.config.power = uv1.power
uv0.config.max_dist = uv1.max_dist
uv2.save(uv0, "ARP Rvanka.ini")
if slot0 == 0 then
sampShowDialog(7777, "ARP Rvanka", "\\xc8\\xe3\\xed\\xee\\xf0\\xe8\\xf0\\xee\\xe2\\xe0\\xf2\\xfc \\xec\\xb8\\xf0\\xf2\\xe2\\xfb\\xf5/\\xe0\\xf4\\xea \\xe8\\xe3\\xf0\\xee\\xea\\xee\\xe2" .. (uv1.ignore_afk_dead and "\t{00FF00}\\xc2\\xea\\xeb\\xfe\\xf7\\xe5\\xed\\xee" or "\t{FF0000}\\xc2\\xfb\\xea\\xeb\\xfe\\xf7\\xe5\\xed\\xee") .. "\n\\xc8\\xed\\xf4\\xee\\xf0\\xec\\xe0\\xf6\\xe8\\xff \\xee \\xea\\xe8\\xea\\xe5/\\xf3\\xe1\\xe8\\xe9\\xf1\\xf2\\xe2\\xe5 \\xe6\\xe5\\xf0\\xf2\\xe2\\xfb" .. (uv1.kick_kill_msg and "\t{00FF00}\\xc2\\xea\\xeb\\xfe\\xf7\\xe5\\xed\\xee" or "\t{FF0000}\\xc2\\xfb\\xea\\xeb\\xfe\\xf7\\xe5\\xed\\xee") .. "\n\\xd2\\xe5\\xeb\\xe5\\xef\\xee\\xf0\\xf2\\xe8\\xf0\\xee\\xe2\\xe0\\xf2\\xfc\\xf1\\xff \\xe7\\xe0 \\xf1\\xef\\xe8\\xed\\xf3 \\xe6\\xe5\\xf0\\xf2\\xe2\\xfb" .. (uv1.tp_to_victim and "\t{00FF00}\\xc2\\xea\\xeb\\xfe\\xf7\\xe5\\xed\\xee" or "\t{FF0000}\\xc2\\xfb\\xea\\xeb\\xfe\\xf7\\xe5\\xed\\xee") .. "\n\\xc2\\xea\\xeb\\xfe\\xf7\\xe0\\xf2\\xfc \\xed\\xe5\\xe2\\xe5\\xe4\\xe8\\xec\\xea\\xf3 \\xea\\xee\\xe3\\xe4\\xe0 \\xe6\\xe5\\xf0\\xf2\\xe2\\xfb \\xed\\xe5\\xf2\\xf3" .. (uv1.invisible and "\t{00FF00}\\xc2\\xea\\xeb\\xfe\\xf7\\xe5\\xed\\xee" or "\t{FF0000}\\xc2\\xfb\\xea\\xeb\\xfe\\xf7\\xe5\\xed\\xee") .. "\n\\xcc\\xee\\xf9\\xed\\xee\\xf1\\xf2\\xfc \\xf0\\xe2\\xe0\\xed\\xea\\xe8\t" .. uv1.power .. "\n\\xcc\\xe0\\xea\\xf1\\xe8\\xec\\xe0\\xeb\\xfc\\xed\\xe0\\xff \\xe4\\xe8\\xf1\\xf2\\xe0\\xed\\xf6\\xe8\\xff \\xe4\\xee \\xe6\\xe5\\xf0\\xf2\\xe2\\xfb\t" .. uv1.max_dist, "\\xc2\\xfb\\xe1\\xf0\\xe0\\xf2\\xfc", "\\xc7\\xe0\\xea\\xf0\\xfb\\xf2\\xfc", 4)
end
if slot0 == 1 then
sampShowDialog(8888, "ARP Rvanka", "\\xc2\\xe2\\xe5\\xe4\\xe8\\xf2\\xe5 \\xec\\xee\\xf9\\xed\\xee\\xf1\\xf2\\xfc \\xf0\\xe2\\xe0\\xed\\xea\\xe8 \\xee\\xf2 0.1 \\xe4\\xee 5.0 (\\xef\\xee \\xf3\\xec\\xee\\xeb\\xf7\\xe0\\xed\\xe8\\xfe 2.0)", "\\xcf\\xf0\\xe8\\xec\\xe5\\xed\\xe8\\xf2\\xfc", "", 1)
end
if slot0 == 2 then
sampShowDialog(9999, "ARP Rvanka", "\\xc2\\xe2\\xe5\\xe4\\xe8\\xf2\\xe5 \\xec\\xe0\\xf1\\xea\\xe8\\xec\\xe0\\xeb\\xfc\\xed\\xf3\\xfe \\xe4\\xe0\\xeb\\xfc\\xed\\xee\\xf1\\xf2\\xfc \\xe4\\xee \\xe6\\xe5\\xf0\\xf2\\xe2\\xfb \\xee\\xf2 1 \\xe4\\xee 100 (\\xef\\xee \\xf3\\xec\\xee\\xeb\\xf7\\xe0\\xed\\xe8\\xfe 50)", "\\xcf\\xf0\\xe8\\xec\\xe5\\xed\\xe8\\xf2\\xfc", "", 1)
end
end
function getNearCharToCenter(slot0)
slot1 = {}
slot2, slot3 = getScreenResolution()
for slot7, slot8 in ipairs(getAllChars()) do
if select(1, sampGetPlayerIdByCharHandle(slot8)) and isCharOnScreen(slot8) and slot8 ~= playerPed then
slot9, slot10, slot11 = getCharCoordinates(slot8)
slot12, slot13 = convert3DCoordsToScreen(slot9, slot10, slot11)
if getDistanceBetweenCoords2d(slot2 / 2, slot3 / 2, slot12, slot13) <= tonumber(slot0 and slot0 or slot2) then
table.insert(slot1, {
slot14,
slot8
})
end
end
end
if #slot1 > 0 then
table.sort(slot1, function (slot0, slot1)
return slot0[1] < slot1[1]
end)
return slot1[1][2], select(2, sampGetPlayerIdByCharHandle(slot1[1][2]))
end
return nil,
end
function slot0.onPlayerQuit(slot0, slot1)
if uv0.enabled and uv0.key_pressed and uv0.kick_kill_msg then
for slot5 = 0, 1000 do
slot6, slot7 = sampGetCharHandleBySampPlayerId(slot0)
if slot6 and slot0 == slot5 and slot1 == 2 then
sampAddChatMessage("{FF0000}[ARP Rvanka]{FFFFFF} \\xc8\\xe3\\xf0\\xee\\xea " .. sampGetPlayerNickname(slot0) .. "[" .. slot0 .. "]" .. " \\xe1\\xfb\\xeb \\xea\\xe8\\xea\\xed\\xf3\\xeb \\xf1 \\xf1\\xe5\\xf0\\xe2\\xe5\\xf0\\xe0", -1)
end
end
end
end
function slot0.onPlayerDeath(slot0)
if uv0.enabled and uv0.key_pressed and uv0.kick_kill_msg then
for slot4 = 0, 1000 do
slot5, slot6 = sampGetCharHandleBySampPlayerId(slot0)
if slot5 and slot0 == slot4 then
sampAddChatMessage("{FF0000}[ARP Rvanka]{FFFFFF} \\xc8\\xe3\\xf0\\xee\\xea " .. sampGetPlayerNickname(slot0) .. "[" .. slot0 .. "]" .. " \\xe1\\xfb\\xeb \\xf3\\xe1\\xe8\\xf2", -1)
end
end
end
end
function slot0.onSendVehicleSync(slot0)
if uv0.enabled and uv0.key_pressed and uv0.victim_x ~= 0 and uv0.victim_y ~= 0 and uv0.victim_z ~= 0 then
uv0.curr_speed = uv0.curr_speed <= uv0.power and uv0.curr_speed + 0.02 or uv0.curr_speed
slot0.position = {
uv0.victim_x - math.sin(-math.rad(getCharHeading(PLAYER_PED))) * 2.5,
uv0.victim_y - math.cos(-math.rad(getCharHeading(PLAYER_PED))) * 2.5,
uv0.victim_z
}
slot0.moveSpeed = {
math.sin(-math.rad(getCharHeading(PLAYER_PED))) * uv0.curr_speed,
math.cos(-math.rad(getCharHeading(PLAYER_PED))) * uv0.curr_speed,
0.25
}
slot0.quaternion = {
tonumber("0." .. math.random(0, 9999)),
tonumber("0." .. math.random(0, 9999)),
tonumber("0." .. math.random(0, 9999)),
tonumber("0." .. math.random(0, 9999))
}
end
if uv0.enabled and uv0.key_pressed and uv0.victim_x == 0 and uv0.victim_y == 0 and uv0.victim_z == 0 then
uv0.curr_speed = uv0.curr_speed <= uv0.power and uv0.curr_speed + 0.02 or uv0.curr_speed
if uv0.tp_to_victim and uv0.invisible then
slot0.position = {
select(1, getCharCoordinates(PLAYER_PED)),
select(2, getCharCoordinates(PLAYER_PED)),
select(3, getCharCoordinates(PLAYER_PED)) - 10
}
else
slot0.position = {
select(1, getCharCoordinates(PLAYER_PED)),
select(2, getCharCoordinates(PLAYER_PED)),
select(3, getCharCoordinates(PLAYER_PED))
}
end
slot0.moveSpeed = {
math.sin(-math.rad(getCharHeading(PLAYER_PED))) * uv0.curr_speed,
math.cos(-math.rad(getCharHeading(PLAYER_PED))) * uv0.curr_speed,
0.25
}
slot0.quaternion = {
tonumber("0." .. math.random(0, 9999)),
tonumber("0." .. math.random(0, 9999)),
tonumber("0." .. math.random(0, 9999)),
tonumber("0." .. math.random(0, 9999))
}
end
end крутая говнорванка