Софт RakSAMP Lite

h1mik1049

Новичок
5
0
Минималистичный фейк клиент с возможностью расширения функционала с помощью Lua API

Посмотреть вложение 136678

Есть поддержка SAMP.Lua, адаптированная версия идет из коробки
Lua:
print(string text) -- вывести сообщение
sleep(int ms) -- задержка ( вешает всю программу )
exit() -- выйти из программы ( с отключением от сервера и выгрузкой скриптов )
setServerAddress(string address) -- установить адрес сервера
setBotNick(string nick) -- установить ник боту
setBotPosition(float x, float y, float z) -- установить позицию боту
setBotQuaternion(float w, float x, float y, float z) -- установить кватернион боту
setBotRotation(float angle) -- установить угол боту
setBotHealth(float health) -- установить хп боту
setBotArmor(float armor) -- установить броню боту
setNetworkAdapter(string ip) -- установить сетевой адаптер
setWindowTitle(string title) -- установить заголовок окну программы
lockWindowTitle(bool lock) -- заблокировать изменение заголовка окна программой
setWindowText(string text) -- установить текст в строке состояния над чатом ( GUI )
lockWindowText(bool lock) -- заблокировать изменение строки состояния
flashWindow() -- моргнуть окном
showWindow() -- развернуть окно
setRate(int rate, int value) -- установить рейты ( 0-8 ) **
runCommand(string cmd) -- обработать команду раксампа
reconnect(int ms) -- переподключиться к серверу, вызов без параметров установит стандартную задержку
spawn() -- заспавниться
updateSync() -- обновить синхру
resetConnectTimeout() -- сбросить текущий таймер переподключения
setBotVehicle(int id, int seat = 0) -- установить авто боту. id 0 - нет авто, seat 0 - водительское
coordStart(float x, float y, float z, int delay, float step, bool off_at_spawn) -- включить курд
coordStop() -- выключить курд
setLogPath(string path) -- установить файл лога
setAutoPick(bool state) -- включить/выключить автовзятие пикапов
proxyConnect(string address, string username, string password) -- подключиться к прокси, 2 и 3 аргумент необязательны
proxyDisconnect() -- отключиться от прокси
setBotMoney(int money) -- установить деньги боту
registerHandler(string event, function handler) -- регистрирует обработчик события
destroyHandlers() -- удаляет все обработчики событий скрипта

int id = getBotId() -- получить ид бота
string ip = getServerAddress() -- получить адрес сервера
string name = getServerName() -- получить название сервера
string nick = getBotNick() -- получить ник бота
int score = getBotScore() -- получить очки ( лвл ) бота
int ping = getBotPing() -- получить пинг бота
bool spawned = isBotSpawned() -- проверить, заспавнен ли бот
int interior = getBotInterior() -- получить интерьер бота
int skin = getBotSkin() -- получить скин бота
float x, float y, float z = getBotPosition() -- получить позицию бота
float w, float x, float y, float z = getBotQuaternion() -- получить кватернион бота
float angle = getBotRotation() -- получить угол бота
float health = getBotHealth() -- получить хп бота
float armor = getBotArmor() -- получить броню бота
string ip = getNetworkAdapter() -- получить сетевой адаптер
string args = getCommandLineArgs() -- получить аргументы командной строки
bool connected = isBotConnected() -- проверить, подключен ли бот к серверу
int vehicle = getBotVehicle() -- получить авто бота. 0 - нет авто
bool active = isCoordActive() -- проверить, включен ли курд
string path = getPath(string additional) -- получить корень программы
bool connected = isProxyConnected() -- проверить, подключен ли к прокси
int money = getBotMoney() -- получить деньги бота
int count = getPlayerCount(bool stream = false) -- получить количество игроков
bool connected = isPlayerConnected(int id) -- проверить, подключен ли игрок
bool exist = doesPlayerExist(int id) -- проверить, существует ли игрок
bool exist = doesVehicleExist(int id) -- проверить, существует ли авто
bool exist = doesPickupExist(int id) -- проверить, существует ли пикап
bool exist = doesLabelExist(int id) -- проверить, существует ли 3д текст
table players = getAllPlayers() -- получить всех игроков
table vehicles = getAllVehicles() -- получить все авто
table pickups = getAllPickups() -- получить все пикапы
table labels = getAllLabels() -- получить все 3д тексты
table player = getPlayer(int id) -- получить игрока, не вернет ничего, если не подключен
table vehicle = getVehicle(int id) -- получить авто *
table pickup = getPickup(int id) -- получить пикап *
table label = getLabel(int id) -- получить 3д текст *
* не вернет ничего, если не существует

-- структуры:
getAllPlayers() = {
    [id] = {
        int score,
        int ping,
        string nick,
        bool exist,
    int skin,
    int color,
        table position
    },
    ...
}

getAllVehicles() = {
    [id] = {
        float health,
        int model,
        string name,
        string number,
    bool engine,
    bool lights,
    bool alarm,
    bool locked,
        table position
    },
    ...
}

getAllPickups() = {
    [id] = {
        int model,
        int type,
        table position
    },
    ...
}

getAllLabels() = {
    [id] = {
        float distance,
        int color,
    bool test_los,
    int player_id,
    int vehicle_id,
    string text,
        table position
    },
    ...
}

** рейты:
RATE_SLEEP
RATE_CONNECT
RATE_RECONNECT
RATE_NETWORK
RATE_LUA
RATE_SPECTATE
RATE_ONFOOT
RATE_INCAR
RATE_AIM
События можно регистрировать двумя способами:
Lua:
-- по классике
function onRunCommand(cmd)
    print(cmd)
end

-- либо так
registerHandler("onRunCommand", function(cmd)
    print(cmd)
end)

Список событий
Lua:
onLoad() -- загрузка скрипта
onUnload() -- выгрузка скрипта
onUpdate() -- вызывается каждые N ms, указывается в конфиге
onRequestConnect() -- запрос на подключение к серверу *
onConnect() -- коннект к серверу
onDisconnect() -- дисконнект от сервера
onProxyConnect() -- подключение к прокси
onProxyDisconnect() -- отключение от прокси
onProxyError() -- ошибка подключения к прокси
onCoordStart() -- старт курда
onCoordStop() -- остановка курда
onRunCommand(string cmd) -- ввод клиентской команды !cmd *
onPrintLog(string text) -- вывод в лог *
onSendPacket(id, bs) -- отправка пакета *
onReceivePacket(id, bs) -- получение пакета *
onSendRPC(id, bs) -- отправка RPC *
onReceiveRPC(id, bs) -- получение RPC *
* поддерживает выход с помощью return true/false
Lua:
bitStream bs = bitStream.new() -- создать новый объект

bs:writeBool(bool value)
bs:writeInt8(int value)
bs:writeUInt8(int value)
bs:writeInt16(int value)
bs:writeUInt16(int value)
bs:writeInt32(int value)
bs:writeUInt32(int value)
bs:writeFloat(float value)
bs:writeString(string value)
bs:writeEncoded(string value)
bs:writeBitStream(bitStream bs)
bs:resetWritePointer()
bs:resetReadPointer()
bs:setWriteOffset(int offset)
bs:setReadOffset(int offset)
bs:writeBuffer(int bitStreamPtr, int size)
bs:ignoreBits(int value)
bs:ignoreBytes(int value)
bs:reset()

bool value = bs:readBool()
int value = bs:readInt8()
int value = bs:readUInt8()
int value = bs:readInt16()
int value = bs:readUInt16()
int value = bs:readInt32()
int value = bs:readUInt32()
float value = bs:readFloat()
string value = bs:readString(int length)
string value = bs:readEncoded(int length)
bitStream bs = bs:getBitStream()
int offset = bs:getWriteOffset()
int offset = bs:getReadOffset()
bool result = bs:readBuffer(int data_ptr, int size)
int value = bs:getNumberOfBitsUsed()
int value = bs:getNumberOfBytesUsed()
int value = bs:getNumberOfUnreadBits()
int value = bs:getNumberOfUnreadBytes()
int ptr = bs:getDataPtr()
int ptr = bs:getBitStreamPtr()
bool result = bs:sendRPC(int id)
bool result = bs:sendPacket()
bool result = bs:sendRPCEx(int id, int priority, int reliability, int channel, bool timestamp)
bool result = bs:sendPacketEx(int priority, int reliability, int channel)
credits
Добавляет новые функции и методы битстрима, идет из коробки
Lua:
require("addon") -- подключить аддон

bool value = isBotInAnyVehicle() -- проверить, находится ли бот в авто

sendSpawnRequest() -- отправить запрос спавна
sendDialogResponse(int id, int button, int list, string input) -- отправить ответ на диалог
sendClickTextdraw(int id) -- кликнуть по текстдраву
sendPickedUpPickup(int id) -- поднять пикап
sendVehicleEnter(int id, bool passenger) -- отправить посадку в авто
sendVehicleExit(int id) -- отправить выход из авто
sendTargetUpdate(int object, int vehicle, int player, int actor) -- отправить таргет камеры
sendInput(string text) -- отправить в чат ( текст с / отошлется командой )

bitStream:readString8() -- прочитать строку с длиной int8
bitStream:writeString8(string value) -- записать длину в int8 и строку
bitStream:readBool8() -- прочитать bool в int8
bitStream:writeBool8(bool value) -- записать bool в int8
bitStream:writeArray(table value) -- записать массив байтов
bitStream:writeVector3(table value ) -- записать vector3
bitStream:readVector3() -- прочитать vector3

task = newTask(function f, bool/int halted, ...) -- создать таску и получить объект
-- если halted - true, то таска запустится приостановленной
-- если halted - число, то запустится с указанной задержкой
-- ... - аргументы, передаваемые в функцию
clearTasks() -- убить все таски
wait(int time) -- задержка в мс, работает только внутри тасков

-- методы
task:halt() -- поставить на паузу
task:tick() -- принудительно выполнить
task:resume() -- возобновить выполнение
task:kill() -- убить таску
bool alive = task:isAlive() -- проверить, существует ли таска
bool halted = task:isHalted() -- проверить, на паузе ли таска
Lua:
require("addon")
local sampev = require("samp.events")

local password = "123456"
local dialog_id = 2

function sampev.onShowDialog(id, style, title, btn1, btn2, text)
    if id == dialog_id then
        sendDialogResponse(id, 1, -1, password)
        return false
    end
end
Менеджер корутин есть в аддоне, принцип такой же, как и в MoonLoader
Lua:
require("addon")

-- вывести сообщение через 2 секунды с передачей аргумента в функцию
newTask(print, 2000, "hello")

-- задержка в функции
newTask(function()
    print("1")
    wait(2000)
    print("подождал 2 секунды")
end)
Используем requests
Lua:
local requests = require("requests")

-- получить свой IP
local response = requests.get("https://api.ipify.org")
if response.status_code == 200 then -- OK
    print(response.text)
end
Кнопки смотреть тут
Lua:
local sampev = require("samp.events")

function sendKey(id)
    key = id
    updateSync()
end

function onRunCommand(cmd)
    if cmd:find("^!key %d+$") then
        sendKey(tonumber(cmd:match("%d+")))
        return false
    end
end

function sampev.onSendPlayerSync(data)
    if key then
        data.keysData = key
        key = nil
    end
end

-- нажать альт, работает только пешеходом. так же можно командой !key 1024
function onLoad()
    sendKey(1024)
end
Использовать нужно SOCKS5 по UDP. Из бесплатных листов можете даже не пытаться, скорее всего вы даже не сможете подключиться к серверу. Поддерживается авторизация как с логином и паролем, так и без
Lua:
function onProxyError()
    print("ошибка при подключении к прокси")
end

function onProxyConnect()
    print("успешно подключились к прокси!")
end

function onLoad()
    proxyConnect("123.145.167.189:58765", "user", "pass")
end

-- чтоб не подключался к серверу без прокси
function onRequestConnect()
    if not isProxyConnected() then return false end
end
!exit/quit - выход из программы
!reconnect - перезаход
!reload - перезагрузить настройки
!players - вывести список игроков
!npcs - вывести список npc
!vehicles- вывести список авто
!pickups - вывести список пикапов
!labels - вывести список 3д текстов
!goto <id> - телепортироваться к игроку
!gotocp - телепортироваться к чекпоинту
!vdeath - отправить серверу уведомление о взрыве авто
!fu - отправить серверу потерю соединения
!menusel <n> - выбрать пункт в gta menu
!class <id> - отправить request class
!spawn - заспавниться
!reqspawn - отправить request spawn
!gm - переключить гм
!kill - убиться
!pickup <id> - подобрать пикап
!weapon <id> - установить оружие
!selveh <id> [seat] - установить авто. id 0 - нет авто, seat 0 - водительское
!setip <ip:port> - установить сервер
!setnick <nick> - установить ник
!pos <x> <y> <z> - установить позицию
!rot <angle> - установить угол
!coord <x> <y> <z> - курд мастер
!diagsend <button> <listbox> <input> - отправить ответ последнему диалогу
!scmevent <type> <param1> <param2> <param3> - отправить scm эвент
!fakekick - кикнуться с помощью невалидного авто
!seltd <id> - кликнуть по текстдраву
!autopick - переключить автовзятие пикапов
!reloadlua - перезагрузить Lua скрипты
Помогите пожалуйста как нажать кнопку ПРИНЯТЬ у меня не вылазит даже меню с вводом пароля
 

pugna

Участник
112
7
Можно как то восстанавливать хп боту, но не с помощью чипсов, спранка, сигарет и т.п.?
 

fisherrrr

Новичок
3
1
не работает авто логин что делать?


[15:33:21] * ===================================================== *
[15:33:21] RakSAMP Lite initialized on 17/12/2023 15:33:21
[15:33:21] Authors: jlfm, bartekdvd, P3ti, Rei
[15:33:21] Visit t.me/reiscripts
[15:33:21] * ===================================================== *
[15:33:21]
[15:33:21] [LUA] Loading scripts...
[15:33:21] [LUA] C:\Users\user\Desktop\DOP YES\scripts\Arizona PC.lua loaded
[15:33:21] [LUA] C:\Users\user\Desktop\DOP YES\scripts\open_roulets.lua loaded
[15:33:21] [LUA] C:\Users\user\Desktop\DOP YES\scripts\slapfix.lua loaded
[15:33:21] [NET] Connecting to 80.66.82.200:7777...
[15:33:22] [NET] Connected. Joining the game...
[15:33:22] [MSG]
[15:33:22] [MSG]
[15:33:22] [MSG]
[15:33:22] [MSG]
[15:33:22] [MSG]
[15:33:22] [MSG]
[15:33:22] [MSG]
[15:33:22] [MSG]
[15:33:22] [MSG]
[15:33:22] [MSG]
[15:33:22] [MSG]
[15:33:22] [MSG]
[15:33:22] [MSG]
[15:33:22] [MSG]
[15:33:22] [MSG]
[15:33:22] [MSG]
[15:33:22] [MSG]
[15:33:22] [MSG]
[15:33:22] [MSG]
[15:33:22] [MSG]
[15:33:22] [MSG] Добро пожаловать на Arizona Role Play!
[15:33:25] [RPC] << Spectator mode enabled
[15:33:25] [NET] Connected to Arizona RP | Queen-Creek | X4 Payday!
[15:33:35] [GAMETEXT] ~n~~n~~n~~n~~n~~n~~w~Welcome~n~~b~Heregin_Sevistor
[15:33:35] [MSG]

[15:33:35] [MSG]

[15:33:35] [MSG]

[15:33:35] [MSG]

[15:33:35] [MSG]

[15:33:35] [MSG]

[15:33:35] [MSG]

[15:33:35] [MSG]

[15:33:35] [MSG]

[15:33:35] [MSG]

[15:33:35] [MSG]

[15:33:35] [MSG]

[15:33:35] [MSG]

[15:33:35] [MSG]

[15:33:35] [MSG]

[15:33:35] [MSG]

[15:33:35] [MSG]

[15:33:35] [MSG]

[15:33:35] [MSG]

[15:33:35] [MSG]

[15:33:35] [MSG]

[15:33:35] [MSG]

[15:33:35] [MSG]

[15:33:35] [MSG]

[15:33:35] [MSG]

[15:33:35] [MSG] {DFCFCF}[Подсказка] {DC4747}На сервере есть инвентарь, используйте клавишу Y для работы с ним.
[15:33:35] [MSG] {DFCFCF}[Подсказка] {DC4747}Вы можете задать вопрос в нашу техническую поддержку /report.
[15:33:35] [RPC] << Current checkpoint disabled.
[15:33:35] [MSG] [Battle Pass]{ffffff} Доступен новый BattlePass - 'Назад в детство', успейте получить уникальные награды одним из первых!
[15:33:35] [MSG] [Battle Pass]{ffffff} Для просмотра используйте клавишу 'B'
[15:33:36] [RPC] << New spawn: (1758.86; -1892.58; 13.56)
[15:33:36] [RPC] << Spectator mode disabled
[15:33:36] [RPC] >> You have been spawned!
[15:33:36] [RPC] << Set interior: 0
[15:33:36] [LUA] C:\Users\user\Desktop\DOP YES\scripts\slapfix.lua:93: Function 'getPosition' has been deprecated! Use 'getBotPosition' instead.
stack traceback:
[C]: in function 'getPosition'
C:\Users\user\Desktop\DOP YES\scripts\slapfix.lua:93: in function 'callback'
...s\user\Desktop\DOP YES\scripts\libs\samp\events\core.lua:74: in function <...s\user\Desktop\DOP YES\scripts\libs\samp\events\core.lua:48>
[15:33:36] [RPC] << Set position: (1758.86; -1892.58; 13.56)
[15:33:36] [MSG] {DFCFCF}>>>{DC4747} Пока вы малоимущий {DFCFCF}(до 4-го уровня){DC4747}, на улице вы можете попрошайничать деньги.
[15:33:36] [MSG] {DC4747}Используйте команду {DFCFCF}/beg{DC4747}, чтобы поставить табличку и банку для денег!
[15:33:36] [RPC] << Set interior: 211
[15:33:36] [LUA] C:\Users\user\Desktop\DOP YES\scripts\slapfix.lua:93: Function 'getPosition' has been deprecated! Use 'getBotPosition' instead.
stack traceback:
[C]: in function 'getPosition'
C:\Users\user\Desktop\DOP YES\scripts\slapfix.lua:93: in function 'callback'
...s\user\Desktop\DOP YES\scripts\libs\samp\events\core.lua:74: in function <...s\user\Desktop\DOP YES\scripts\libs\samp\events\core.lua:48>
[15:33:36] [RPC] << Set position: (1874.82; 2228.11; 1036.32)
[15:33:36] [SELECTABLE-TEXTDRAW] ID: 418, Text: selecticon2 X: 396.00 Y: 315.00.
[15:33:36] [SELECTABLE-TEXTDRAW] ID: 420, Text: selecticon3 X: 327.00 Y: 337.00.
[15:33:36] [SELECTABLE-TEXTDRAW] ID: 419, Text: selecticon3 X: 233.00 Y: 337.00.
[15:34:57] [MSG] > Игрок Misha_Undertaker(817) вышел при попытке избежать ареста и был наказан!
[15:37:20] [NET] The connection was lost. Reconnecting in 513 seconds.
[15:40:13] [NET] Disconnected.
 

h1mik1049

Новичок
5
0
Скинь сюда пожалуйста свои настройки или в ЛС

Помоги в личных сообщениях пожалуйста
 
Последнее редактирование:

Jatara

Потрачен
82
32
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
как написать (начать писать) скрипт
суть скрипта чтобы при докачке при определенного лвла окно закрывалось
 

nazoferon

Участник
37
19
как сделать автопривязку почты и автоацепт, если это возможно вообще?
 

lainban

Известный
1,431
640
да, у меня есть такой скрипт, пиши в тг) @nkokd
говно залупа, у тебя блять даже инструкции нету и ты пытался у меня её выпросить
1702998000066.png
 

Вложения

  • PerekidivalkaMain (2).lua
    17.4 KB · Просмотры: 28
  • Нравится
Реакции: Landyshev

gfulchik

Участник
95
21
можно ли как то поменять иконку раксампа? вместо бендера
стандартными виндовыми средствами - нет, разве что иконку именно ярлыка, но в инете есть софт icon patcher, он вроде как позволяет изменять именно иконки exe
 

Noteregalesmono

Новичок
8
0
Добрый день, я играю на сервере, где есть шкала еды и жажды, а ranksamp lite глючит и находится на 0 здоровья, кто-нибудь знает как это исправить и что какой-то lua или команда не снижает его здоровье?
 

gfulchik

Участник
95
21
ребят, есть инфа по арз, как отличить сообщения от админа от сообщений игроков? По цвету текста? Уже сделал автоответчик на gpt, теперь нужно сделать тригеры на сообщения админов
 

MrDorlik

Известный
957
384
ребят, есть инфа по арз, как отличить сообщения от админа от сообщений игроков? По цвету текста? Уже сделал автоответчик на gpt, теперь нужно сделать тригеры на сообщения админов
если в обычный чат пишет, никак не отличить, только через свой список, если в /b то перед ником "администратор" будет
 
  • Нравится
Реакции: gfulchik