Вопросы по Lua скриптингу

Общая тема для вопросов по разработке скриптов на языке программирования Lua, в частности под MoonLoader.
  • Задавая вопрос, убедитесь, что его нет в списке частых вопросов и что на него ещё не отвечали (воспользуйтесь поиском).
  • Поищите ответ в теме посвященной разработке Lua скриптов в MoonLoader
  • Отвечая, убедитесь, что ваш ответ корректен.
  • Старайтесь как можно точнее выразить мысль, а если проблема связана с кодом, то обязательно прикрепите его к сообщению, используя блок [code=lua]здесь мог бы быть ваш код[/code].
  • Если вопрос связан с MoonLoader-ом первым делом желательно поискать решение на wiki.

Частые вопросы

Как научиться писать скрипты? С чего начать?
Информация - Гайд - Всё о Lua скриптинге для MoonLoader(https://blast.hk/threads/22707/)
Как вывести текст на русском? Вместо русского текста у меня какие-то каракули.
Изменить кодировку файла скрипта на Windows-1251. В Atom: комбинация клавиш Ctrl+Shift+U, в Notepad++: меню Кодировки -> Кодировки -> Кириллица -> Windows-1251.
Как получить транспорт, в котором сидит игрок?
Lua:
local veh = storeCarCharIsInNoSave(PLAYER_PED)
Как получить свой id или id другого игрока?
Lua:
local _, id = sampGetPlayerIdByCharHandle(PLAYER_PED) -- получить свой ид
local _, id = sampGetPlayerIdByCharHandle(ped) -- получить ид другого игрока. ped - это хендл персонажа
Как проверить, что строка содержит какой-то текст?
Lua:
if string.find(str, 'текст', 1, true) then
-- строка str содержит "текст"
end
Как эмулировать нажатие игровой клавиши?
Lua:
local game_keys = require 'game.keys' -- где-нибудь в начале скрипта вне функции main

setGameKeyState(game_keys.player.FIREWEAPON, -1) -- будет сэмулировано нажатие клавиши атаки
Все иды клавиш находятся в файле moonloader/lib/game/keys.lua.
Подробнее о функции setGameKeyState здесь: lua - setgamekeystate | BlastHack — DEV_WIKI(https://www.blast.hk/wiki/lua:setgamekeystate)
Как получить id другого игрока, в которого целюсь я?
Lua:
local valid, ped = getCharPlayerIsTargeting(PLAYER_HANDLE) -- получить хендл персонажа, в которого целится игрок
if valid and doesCharExist(ped) then -- если цель есть и персонаж существует
  local result, id = sampGetPlayerIdByCharHandle(ped) -- получить samp-ид игрока по хендлу персонажа
  if result then -- проверить, прошло ли получение ида успешно
    -- здесь любые действия с полученным идом игрока
  end
end
Как зарегистрировать команду чата SAMP?
Lua:
-- До бесконечного цикла/задержки
sampRegisterChatCommand("mycommand", function (param)
     -- param будет содержать весь текст введенный после команды, чтобы разделить его на аргументы используйте string.match()
    sampAddChatMessage("MyCMD", -1)
end)
Крашит игру при вызове sampSendChat. Как это исправить?
Это происходит из-за бага в SAMPFUNCS, когда производится попытка отправки пакета определенными функциями изнутри события исходящих RPC и пакетов. Исправления для этого бага нет, но есть способ не провоцировать его. Вызов sampSendChat изнутри обработчика исходящих RPC/пакетов нужно обернуть в скриптовый поток с нулевой задержкой:
Lua:
function onSendRpc(id)
  -- крашит:
  -- sampSendChat('Send RPC: ' .. id)

  -- норм:
  lua_thread.create(function()
    wait(0)
    sampSendChat('Send RPC: ' .. id)
  end)
end
 
Последнее редактирование:

Ciske

Новичок
25
7
Нубский вопрос: почему после выполнения этого кода исходная строка не выводится на экран? return {color, text} не помогает. Строки по-прежнему нет.


пример:
function sampev.onServerMessage(color, text)
    if color == 1941201407 and string.find(text, 'Вы успешно создали предмет', nil, true) then
        sampProcessChatInput('/stats')
    end
end
 

chapo

tg/inst: @moujeek
Всефорумный модератор
9,130
12,257
Нубский вопрос: почему после выполнения этого кода исходная строка не выводится на экран? return {color, text} не помогает. Строки по-прежнему нет.


пример:
function sampev.onServerMessage(color, text)
    if color == 1941201407 and string.find(text, 'Вы успешно создали предмет', nil, true) then
        sampProcessChatInput('/stats')
    end
end
Задержку хотя бы в 1 мс добавь
 
  • Нравится
Реакции: SiarCis

Levandskript

Новичок
18
0
Вопрос скорее всего не по теме, но всё же. Для каких игр можно писать луа скрипты?
 

paulohardy

вы еще постите говно? тогда я иду к вам
Всефорумный модератор
1,982
1,322
  • Нравится
Реакции: Levandskript

Ciske

Новичок
25
7
Народ... просьба глянуть свежим взглядом... ну что тут может быть не так? Не удаляются чекпоинты. То есть, не все удаляются. Которые на отдалении нет, иногда если много времени прошло после установки... Но ведь мунлоадеру по идее всё равно на какой дистанции удалять/ставить чекпоинты, хоть вне зоны стрима.

Что тут не так? Как это вообще отлаживать? deleteCheckpoint ведь не возвращает никакого True/False, не говоря уже о чём-то более информативном.

Чекпоинтов может быть много - сотни. Мб в этом дело? Или я просто не вижу ошибки...


Lua:
-- установка
-- проверяем нет ли уже на этих координатах чекпоинта
local check = false
for _, value in ipairs(checkpoints) do
    if posX == value[2] and posY == value[3] and posZ == value[4] then
        check = true
        break
end

-- устанавливаем и заносим в таблицу
if not check then
    local checkpoint = createCheckpoint(2, posX, posY, posZ, 0, 0, 0, 2)
    table.insert(checkpoints, {checkpoint, posX, posY, posZ})
end


Lua:
-- по команде вызываем удаление:
    while #checkpoints > 0 do
        local subArray = checkpoints[1]
        deleteCheckpoint(subArray[1])
        table.remove(checkpoints, 1)
        wait(50)
    end
 

dmitry.karle

Известный
366
102
Народ... просьба глянуть свежим взглядом... ну что тут может быть не так? Не удаляются чекпоинты. То есть, не все удаляются. Которые на отдалении нет, иногда если много времени прошло после установки... Но ведь мунлоадеру по идее всё равно на какой дистанции удалять/ставить чекпоинты, хоть вне зоны стрима.

Что тут не так? Как это вообще отлаживать? deleteCheckpoint ведь не возвращает никакого True/False, не говоря уже о чём-то более информативном.

Чекпоинтов может быть много - сотни. Мб в этом дело? Или я просто не вижу ошибки...


Lua:
-- установка
-- проверяем нет ли уже на этих координатах чекпоинта
local check = false
for _, value in ipairs(checkpoints) do
    if posX == value[2] and posY == value[3] and posZ == value[4] then
        check = true
        break
end

-- устанавливаем и заносим в таблицу
if not check then
    local checkpoint = createCheckpoint(2, posX, posY, posZ, 0, 0, 0, 2)
    table.insert(checkpoints, {checkpoint, posX, posY, posZ})
end


Lua:
-- по команде вызываем удаление:
    while #checkpoints > 0 do
        local subArray = checkpoints[1]
        deleteCheckpoint(subArray[1])
        table.remove(checkpoints, 1)
        wait(50)
    end
1. Может быть проблема с таблицой (сразу из таблицы удаляешь), добавь проверку перед удалением из таблицы
2. Попробуй удалять не все сразу, а группами с большей задержкой
3. Создай времянку (таблица) для удаления
Lua:
local toDelete = checkpoints
checkpoints = {}
for _, subArray in ipairs(toDelete) do
    deleteCheckpoint(subArray[1])
    wait(50)
end

4. Попробуй удалять чекпоинты в обратном порядке (от последнего к первому)

Добавь лог
Lua:
print("Удаляю чекпоинт ID:", subArray[1], "Всего осталось:", #checkpoints)

Проверка возврата значения

Lua:
local success = deleteCheckpoint(subArray[1])
if not success then
    print("Ошибка удаления чекпоинта:", subArray[1])
end
 
  • Нравится
Реакции: SiarCis

Oki_Bern

Участник
290
7
tFZRcuQGmWk.jpg

Можно ли сделать как-то, чтоб верхние углы кнопки остались закругленный, а нижние квадратные стали?
DL:AddRectFilled(imgui.ImVec2(p1.x, p1.y), imgui.ImVec2(p1.x + 240, p1.y + 35), ToU32(imgui.ImVec4(col.x, col.y, col.z, 0.6)), 15, 15)
 

chromiusj

fullstack eblan
Модератор
5,799
4,099
Посмотреть вложение 272693
Можно ли сделать как-то, чтоб верхние углы кнопки остались закругленный, а нижние квадратные стали?
DL:AddRectFilled(imgui.ImVec2(p1.x, p1.y), imgui.ImVec2(p1.x + 240, p1.y + 35), ToU32(imgui.ImVec4(col.x, col.y, col.z, 0.6)), 15, 15)
Lua:
DL:AddRectFilled(
    imgui.ImVec2(p1.x, p1.y),
    imgui.ImVec2(p1.x + 240, p1.y + 35),
    ToU32(imgui.ImVec4(col.x, col.y, col.z, 0.6)),
    15,
    1 + 2
)
Подсмотреть можно отсюда:

Lua:
enum ImDrawCornerFlags_
{
    ImDrawCornerFlags_None = 0,
    ImDrawCornerFlags_TopLeft = 1 << 0,
    ImDrawCornerFlags_TopRight = 1 << 1,
    ImDrawCornerFlags_BotLeft = 1 << 2,
    ImDrawCornerFlags_BotRight = 1 << 3,
    ImDrawCornerFlags_Top = ImDrawCornerFlags_TopLeft | ImDrawCornerFlags_TopRight,
    ImDrawCornerFlags_Bot = ImDrawCornerFlags_BotLeft | ImDrawCornerFlags_BotRight,
    ImDrawCornerFlags_Left = ImDrawCornerFlags_TopLeft | ImDrawCornerFlags_BotLeft,
    ImDrawCornerFlags_Right = ImDrawCornerFlags_TopRight | ImDrawCornerFlags_BotRight,
    ImDrawCornerFlags_All = 0xF
};
 
  • Влюблен
Реакции: Oki_Bern

Oki_Bern

Участник
290
7
Почему иконка не увеличивается?
local status_fa, fa = pcall(require, 'fAwesome6_solid')

fontpage2 = imgui.GetIO().Fonts:AddFontFromFileTTF(getFolderPath(0x14)..'\\trebucbd.ttf', 22, _, imgui.GetIO().Fonts:GetGlyphRangesCyrillic())

imgui.PushFont(fontpage2)
imgui.Text(fa["HOUSE"])
imgui.PopFont()
 

NeverStu

Известный
517
162
всем хай луа хацкеры такой вопрос Как прикрепить Обьект через ракнетбитстрим Я через Asc logger от chapo выгрузил себе обьекты снизу прикреплю

--[NEW ATTACHED OBJECT: 18977]------------------------------------------------------------
local bs = raknetNewBitStream()
raknetBitStreamWriteInt16(bs, 318) -- playerId
raknetBitStreamWriteInt32(bs, 0) -- index
raknetBitStreamWriteBool(bs, true) -- create
raknetBitStreamWriteInt32(bs, 18977) -- modelId
raknetBitStreamWriteInt32(bs, 10) -- bone
raknetBitStreamWriteFloat(bs, 0.055900000035763) -- offset x
raknetBitStreamWriteFloat(bs, 0.24690000712872) -- offset y
raknetBitStreamWriteFloat(bs, -0.016000000759959) -- offset z
raknetBitStreamWriteFloat(bs, 86.400001525879) -- rotation x
raknetBitStreamWriteFloat(bs, 170.5) -- rotation y
raknetBitStreamWriteFloat(bs, 177.5) -- rotation z
raknetBitStreamWriteFloat(bs, 0.841000020504) -- scale x
raknetBitStreamWriteFloat(bs, 1) -- scale y
raknetBitStreamWriteFloat(bs, 1.1050000190735) -- scale z
raknetBitStreamWriteInt32(bs, -1) -- color1
raknetBitStreamWriteInt32(bs, -1) -- color2
raknetEmulRpcReceiveBitStream(113, bs)
raknetDeleteBitStream(bs)
--------------------------------------------------------------------------------------
--[NEW ATTACHED OBJECT: 19578]------------------------------------------------------------
local bs = raknetNewBitStream()
raknetBitStreamWriteInt16(bs, 318) -- playerId
raknetBitStreamWriteInt32(bs, 1) -- index
raknetBitStreamWriteBool(bs, true) -- create
raknetBitStreamWriteInt32(bs, 19578) -- modelId
raknetBitStreamWriteInt32(bs, 10) -- bone
raknetBitStreamWriteFloat(bs, 0.0049000000581145) -- offset x
raknetBitStreamWriteFloat(bs, 0.14900000393391) -- offset y
raknetBitStreamWriteFloat(bs, -0.008899999782443) -- offset z
raknetBitStreamWriteFloat(bs, 0) -- rotation x
raknetBitStreamWriteFloat(bs, 0) -- rotation y
raknetBitStreamWriteFloat(bs, 68.499900817871) -- rotation z
raknetBitStreamWriteFloat(bs, 0.7989000082016) -- scale x
raknetBitStreamWriteFloat(bs, 1.3999999761581) -- scale y
raknetBitStreamWriteFloat(bs, 2.7690000534058) -- scale z
raknetBitStreamWriteInt32(bs, -1) -- color1
raknetBitStreamWriteInt32(bs, -1) -- color2
raknetEmulRpcReceiveBitStream(113, bs)
raknetDeleteBitStream(bs)
--------------------------------------------------------------------------------------
--[NEW ATTACHED OBJECT: 18977]------------------------------------------------------------
local bs = raknetNewBitStream()
raknetBitStreamWriteInt16(bs, 318) -- playerId
raknetBitStreamWriteInt32(bs, 2) -- index
raknetBitStreamWriteBool(bs, true) -- create
raknetBitStreamWriteInt32(bs, 18977) -- modelId
raknetBitStreamWriteInt32(bs, 9) -- bone
raknetBitStreamWriteFloat(bs, 0.055900000035763) -- offset x
raknetBitStreamWriteFloat(bs, 0.24690000712872) -- offset y
raknetBitStreamWriteFloat(bs, -0.016000000759959) -- offset z
raknetBitStreamWriteFloat(bs, 86.400001525879) -- rotation x
raknetBitStreamWriteFloat(bs, 170.5) -- rotation y
raknetBitStreamWriteFloat(bs, 177.5) -- rotation z
raknetBitStreamWriteFloat(bs, 0.841000020504) -- scale x
raknetBitStreamWriteFloat(bs, 1) -- scale y
raknetBitStreamWriteFloat(bs, 1.1050000190735) -- scale z
raknetBitStreamWriteInt32(bs, -1) -- color1
raknetBitStreamWriteInt32(bs, -1) -- color2
raknetEmulRpcReceiveBitStream(113, bs)
raknetDeleteBitStream(bs)
--------------------------------------------------------------------------------------
--[NEW ATTACHED OBJECT: 19578]------------------------------------------------------------
local bs = raknetNewBitStream()
raknetBitStreamWriteInt16(bs, 318) -- playerId
raknetBitStreamWriteInt32(bs, 3) -- index
raknetBitStreamWriteBool(bs, true) -- create
raknetBitStreamWriteInt32(bs, 19578) -- modelId
raknetBitStreamWriteInt32(bs, 9) -- bone
raknetBitStreamWriteFloat(bs, 0.0049000000581145) -- offset x
raknetBitStreamWriteFloat(bs, 0.14900000393391) -- offset y
raknetBitStreamWriteFloat(bs, -0.008899999782443) -- offset z
raknetBitStreamWriteFloat(bs, 0) -- rotation x
raknetBitStreamWriteFloat(bs, 0) -- rotation y
raknetBitStreamWriteFloat(bs, 68.499900817871) -- rotation z
raknetBitStreamWriteFloat(bs, 0.7989000082016) -- scale x
raknetBitStreamWriteFloat(bs, 1.3999999761581) -- scale y
raknetBitStreamWriteFloat(bs, 2.7690000534058) -- scale z
raknetBitStreamWriteInt32(bs, -1) -- color1
raknetBitStreamWriteInt32(bs, -1) -- color2
raknetEmulRpcReceiveBitStream(113, bs)
raknetDeleteBitStream(bs)
--------------------------------------------------------------------------------------
--[NEW ATTACHED OBJECT: 19577]------------------------------------------------------------
local bs = raknetNewBitStream()
raknetBitStreamWriteInt16(bs, 318) -- playerId
raknetBitStreamWriteInt32(bs, 4) -- index
raknetBitStreamWriteBool(bs, true) -- create
raknetBitStreamWriteInt32(bs, 19577) -- modelId
raknetBitStreamWriteInt32(bs, 2) -- bone
raknetBitStreamWriteFloat(bs, 0.060899998992682) -- offset x
raknetBitStreamWriteFloat(bs, 0.14589999616146) -- offset y
raknetBitStreamWriteFloat(bs, 0) -- offset z
raknetBitStreamWriteFloat(bs, -99.999900817871) -- rotation x
raknetBitStreamWriteFloat(bs, 0) -- rotation y
raknetBitStreamWriteFloat(bs, 0) -- rotation z
raknetBitStreamWriteFloat(bs, 0.88800001144409) -- scale x
raknetBitStreamWriteFloat(bs, 0.82090002298355) -- scale y
raknetBitStreamWriteFloat(bs, 0.88800001144409) -- scale z
raknetBitStreamWriteInt32(bs, -1) -- color1
raknetBitStreamWriteInt32(bs, -1) -- color2
raknetEmulRpcReceiveBitStream(113, bs)
raknetDeleteBitStream(bs)
--------------------------------------------------------------------------------------
--[NEW ATTACHED OBJECT: 19274]------------------------------------------------------------
local bs = raknetNewBitStream()
raknetBitStreamWriteInt16(bs, 318) -- playerId
raknetBitStreamWriteInt32(bs, 5) -- index
raknetBitStreamWriteBool(bs, true) -- create
raknetBitStreamWriteInt32(bs, 19274) -- modelId
raknetBitStreamWriteInt32(bs, 2) -- bone
raknetBitStreamWriteFloat(bs, 0.099899999797344) -- offset x
raknetBitStreamWriteFloat(bs, -0.010900000110269) -- offset y
raknetBitStreamWriteFloat(bs, 0) -- offset z
raknetBitStreamWriteFloat(bs, 0) -- rotation x
raknetBitStreamWriteFloat(bs, 0) -- rotation y
raknetBitStreamWriteFloat(bs, 0) -- rotation z
raknetBitStreamWriteFloat(bs, 1) -- scale x
raknetBitStreamWriteFloat(bs, 0.97790002822876) -- scale y
raknetBitStreamWriteFloat(bs, 0.68800002336502) -- scale z
raknetBitStreamWriteInt32(bs, -1) -- color1
raknetBitStreamWriteInt32(bs, -1) -- color2
raknetEmulRpcReceiveBitStream(113, bs)
raknetDeleteBitStream(bs)
--------------------------------------------------------------------------------------
--[NEW ATTACHED OBJECT: 19518]------------------------------------------------------------
local bs = raknetNewBitStream()
raknetBitStreamWriteInt16(bs, 318) -- playerId
raknetBitStreamWriteInt32(bs, 6) -- index
raknetBitStreamWriteBool(bs, true) -- create
raknetBitStreamWriteInt32(bs, 19518) -- modelId
raknetBitStreamWriteInt32(bs, 2) -- bone
raknetBitStreamWriteFloat(bs, 0.093900002539158) -- offset x
raknetBitStreamWriteFloat(bs, -0.010900000110269) -- offset y
raknetBitStreamWriteFloat(bs, 0) -- offset z
raknetBitStreamWriteFloat(bs, 0) -- rotation x
raknetBitStreamWriteFloat(bs, 0) -- rotation y
raknetBitStreamWriteFloat(bs, 0) -- rotation z
raknetBitStreamWriteFloat(bs, 0.93190002441406) -- scale x
raknetBitStreamWriteFloat(bs, 0.85790002346039) -- scale y
raknetBitStreamWriteFloat(bs, 0.94489997625351) -- scale z
raknetBitStreamWriteInt32(bs, -1) -- color1
raknetBitStreamWriteInt32(bs, -1) -- color2
raknetEmulRpcReceiveBitStream(113, bs)
raknetDeleteBitStream(bs)
--------------------------------------------------------------------------------------


МОДИФИКАЯ СВЕРХУ КЛОУН С НИЗУ ГРИНЧ

--[NEW ATTACHED OBJECT: 19576]------------------------------------------------------------
local bs = raknetNewBitStream()
raknetBitStreamWriteInt16(bs, 318) -- playerId
raknetBitStreamWriteInt32(bs, 0) -- index
raknetBitStreamWriteBool(bs, true) -- create
raknetBitStreamWriteInt32(bs, 19576) -- modelId
raknetBitStreamWriteInt32(bs, 2) -- bone
raknetBitStreamWriteFloat(bs, 0.15389999747276) -- offset x
raknetBitStreamWriteFloat(bs, 0.008899999782443) -- offset y
raknetBitStreamWriteFloat(bs, 0.0080000003799796) -- offset z
raknetBitStreamWriteFloat(bs, 0) -- rotation x
raknetBitStreamWriteFloat(bs, -89.299896240234) -- rotation y
raknetBitStreamWriteFloat(bs, 176.60000610352) -- rotation z
raknetBitStreamWriteFloat(bs, 2.4858999252319) -- scale x
raknetBitStreamWriteFloat(bs, 2.7650001049042) -- scale y
raknetBitStreamWriteFloat(bs, 3.7630000114441) -- scale z
raknetBitStreamWriteInt32(bs, -1) -- color1
raknetBitStreamWriteInt32(bs, -1) -- color2
raknetEmulRpcReceiveBitStream(113, bs)
raknetDeleteBitStream(bs)
--------------------------------------------------------------------------------------
--[NEW ATTACHED OBJECT: 19570]------------------------------------------------------------
local bs = raknetNewBitStream()
raknetBitStreamWriteInt16(bs, 318) -- playerId
raknetBitStreamWriteInt32(bs, 1) -- index
raknetBitStreamWriteBool(bs, true) -- create
raknetBitStreamWriteInt32(bs, 19570) -- modelId
raknetBitStreamWriteInt32(bs, 2) -- bone
raknetBitStreamWriteFloat(bs, 0.20100000500679) -- offset x
raknetBitStreamWriteFloat(bs, 0.1009000018239) -- offset y
raknetBitStreamWriteFloat(bs, 0.030899999663234) -- offset z
raknetBitStreamWriteFloat(bs, -89.399803161621) -- rotation x
raknetBitStreamWriteFloat(bs, 13.5) -- rotation y
raknetBitStreamWriteFloat(bs, 7.8998999595642) -- rotation z
raknetBitStreamWriteFloat(bs, 0.26489999890327) -- scale x
raknetBitStreamWriteFloat(bs, 0.49790000915527) -- scale y
raknetBitStreamWriteFloat(bs, 0.061900001019239) -- scale z
raknetBitStreamWriteInt32(bs, -1) -- color1
raknetBitStreamWriteInt32(bs, -1) -- color2
raknetEmulRpcReceiveBitStream(113, bs)
raknetDeleteBitStream(bs)
--------------------------------------------------------------------------------------
--[NEW ATTACHED OBJECT: 19570]------------------------------------------------------------
local bs = raknetNewBitStream()
raknetBitStreamWriteInt16(bs, 318) -- playerId
raknetBitStreamWriteInt32(bs, 2) -- index
raknetBitStreamWriteBool(bs, true) -- create
raknetBitStreamWriteInt32(bs, 19570) -- modelId
raknetBitStreamWriteInt32(bs, 2) -- bone
raknetBitStreamWriteFloat(bs, 0.20290000736713) -- offset x
raknetBitStreamWriteFloat(bs, 0.096900001168251) -- offset y
raknetBitStreamWriteFloat(bs, -0.016000000759959) -- offset z
raknetBitStreamWriteFloat(bs, -103.5) -- rotation x
raknetBitStreamWriteFloat(bs, 14.399900436401) -- rotation y
raknetBitStreamWriteFloat(bs, -11.800000190735) -- rotation z
raknetBitStreamWriteFloat(bs, 0.26800000667572) -- scale x
raknetBitStreamWriteFloat(bs, 0.51389998197556) -- scale y
raknetBitStreamWriteFloat(bs, 0.061900001019239) -- scale z
raknetBitStreamWriteInt32(bs, -1) -- color1
raknetBitStreamWriteInt32(bs, -1) -- color2
raknetEmulRpcReceiveBitStream(113, bs)
raknetDeleteBitStream(bs)
--------------------------------------------------------------------------------------
--[NEW ATTACHED OBJECT: 19576]------------------------------------------------------------
local bs = raknetNewBitStream()
raknetBitStreamWriteInt16(bs, 318) -- playerId
raknetBitStreamWriteInt32(bs, 3) -- index
raknetBitStreamWriteBool(bs, true) -- create
raknetBitStreamWriteInt32(bs, 19576) -- modelId
raknetBitStreamWriteInt32(bs, 2) -- bone
raknetBitStreamWriteFloat(bs, 0.099899999797344) -- offset x
raknetBitStreamWriteFloat(bs, 0.035900000482798) -- offset y
raknetBitStreamWriteFloat(bs, 0.0049000000581145) -- offset z
raknetBitStreamWriteFloat(bs, 79.599998474121) -- rotation x
raknetBitStreamWriteFloat(bs, -144.2998046875) -- rotation y
raknetBitStreamWriteFloat(bs, -85.499900817871) -- rotation z
raknetBitStreamWriteFloat(bs, 3.5090000629425) -- scale x
raknetBitStreamWriteFloat(bs, 3.0060000419617) -- scale y
raknetBitStreamWriteFloat(bs, 2.914999961853) -- scale z
raknetBitStreamWriteInt32(bs, -1) -- color1
raknetBitStreamWriteInt32(bs, -1) -- color2
raknetEmulRpcReceiveBitStream(113, bs)
raknetDeleteBitStream(bs)
--------------------------------------------------------------------------------------
--[NEW ATTACHED OBJECT: 19078]------------------------------------------------------------
local bs = raknetNewBitStream()
raknetBitStreamWriteInt16(bs, 318) -- playerId
raknetBitStreamWriteInt32(bs, 4) -- index
raknetBitStreamWriteBool(bs, true) -- create
raknetBitStreamWriteInt32(bs, 19078) -- modelId
raknetBitStreamWriteInt32(bs, 2) -- bone
raknetBitStreamWriteFloat(bs, 0.29690000414848) -- offset x
raknetBitStreamWriteFloat(bs, 0) -- offset y
raknetBitStreamWriteFloat(bs, 0.0049000000581145) -- offset z
raknetBitStreamWriteFloat(bs, 176.39999389648) -- rotation x
raknetBitStreamWriteFloat(bs, -176.19990539551) -- rotation y
raknetBitStreamWriteFloat(bs, -51.799900054932) -- rotation z
raknetBitStreamWriteFloat(bs, 0.5048999786377) -- scale x
raknetBitStreamWriteFloat(bs, 0.55290001630783) -- scale y
raknetBitStreamWriteFloat(bs, 0.55900001525879) -- scale z
raknetBitStreamWriteInt32(bs, -1) -- color1
raknetBitStreamWriteInt32(bs, -1) -- color2
raknetEmulRpcReceiveBitStream(113, bs)
raknetDeleteBitStream(bs)
--------------------------------------------------------------------------------------
--[NEW ATTACHED OBJECT: 19576]------------------------------------------------------------
local bs = raknetNewBitStream()
raknetBitStreamWriteInt16(bs, 318) -- playerId
raknetBitStreamWriteInt32(bs, 5) -- index
raknetBitStreamWriteBool(bs, true) -- create
raknetBitStreamWriteInt32(bs, 19576) -- modelId
raknetBitStreamWriteInt32(bs, 1) -- bone
raknetBitStreamWriteFloat(bs, 0.040899999439716) -- offset x
raknetBitStreamWriteFloat(bs, 0.0098999999463558) -- offset y
raknetBitStreamWriteFloat(bs, -0.010900000110269) -- offset z
raknetBitStreamWriteFloat(bs, 13.900099754333) -- rotation x
raknetBitStreamWriteFloat(bs, -91.999702453613) -- rotation y
raknetBitStreamWriteFloat(bs, -160.69979858398) -- rotation z
raknetBitStreamWriteFloat(bs, 5.0939002037048) -- scale x
raknetBitStreamWriteFloat(bs, 4.4000000953674) -- scale y
raknetBitStreamWriteFloat(bs, 7.5529999732971) -- scale z
raknetBitStreamWriteInt32(bs, -1) -- color1
raknetBitStreamWriteInt32(bs, -1) -- color2
raknetEmulRpcReceiveBitStream(113, bs)
raknetDeleteBitStream(bs)
--------------------------------------------------------------------------------------
--[NEW ATTACHED OBJECT: 2788]------------------------------------------------------------
local bs = raknetNewBitStream()
raknetBitStreamWriteInt16(bs, 318) -- playerId
raknetBitStreamWriteInt32(bs, 6) -- index
raknetBitStreamWriteBool(bs, true) -- create
raknetBitStreamWriteInt32(bs, 2788) -- modelId
raknetBitStreamWriteInt32(bs, 1) -- bone
raknetBitStreamWriteFloat(bs, 0.31090000271797) -- offset x
raknetBitStreamWriteFloat(bs, 0.030899999663234) -- offset y
raknetBitStreamWriteFloat(bs, -0.024900000542402) -- offset z
raknetBitStreamWriteFloat(bs, 84.799896240234) -- rotation x
raknetBitStreamWriteFloat(bs, -88.199996948242) -- rotation y
raknetBitStreamWriteFloat(bs, -89.5) -- rotation z
raknetBitStreamWriteFloat(bs, 0.58600002527237) -- scale x
raknetBitStreamWriteFloat(bs, 0.54900002479553) -- scale y
raknetBitStreamWriteFloat(bs, 1.7079000473022) -- scale z
raknetBitStreamWriteInt32(bs, -1) -- color1
raknetBitStreamWriteInt32(bs, -1) -- color2
raknetEmulRpcReceiveBitStream(113, bs)
raknetDeleteBitStream(bs)

так вот я пробивал через нейронку она меня отшила надеюсь тут помогут
 
  • Клоун
Реакции: MLycoris и Andrinall

abnomegd

Активный
347
37

не работает автологин при входе на сервер или переподключении

autologinAutoRec:
require 'lib.moonloader'
local lsampev, sp = pcall(require, 'lib.samp.events')
local inicfg = require 'inicfg'

local directini = "moonloader\\config\\AdvanceConnect.ini"
local mainini = inicfg.load(nil, directini)

local parol = (mainini.config.parol)
local pinkod = (mainini.config.pinkod)
 
function check()
    local names = {
        'First_Name',
        'Second_Name',
        'Third_Name',
    }
    for i = 1, #names do
        if sampGetPlayerNickname(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED))) == names[i] then
            name = true
            break
        end
    end
    if sampGetCurrentServerAddress() == '194.26.141.246' then srv = true end
    if name and srv then return true end
    return false
end

function main()
    repeat wait(0) until isSampAvailable()
    if check() then
        sampAddChatMessage("[AdvanceConnect]: {FFFFFF}Скрипт загружен.", 0x5CBCFF)
    else
        sampAddChatMessage("[AdvanceConnect]: {FFFFFF}Проверка не пройдена, скрипт выгружен!", 0x5CBCFF)
        thisScript().unload()
    end
 
    sampRegisterChatCommand("rec", function(arg)
        if arg ~= nil then
            time = tonumber(arg)
            res = true
        end
    end)
    while true do
        wait(0)
        local chatstring = sampGetChatString(99)
        if chatstring == "Server closed the connection." or chatstring == "You are banned from this server." then
            sampDisconnectWithReason(false)
            sampAddChatMessage("Wait reconnecting...", 0xa9c4e4)
            wait(5000)
            sampSetGamestate(1)
        end

        if res and time ~= nil then
            sampDisconnectWithReason(quit)
            wait(time*1000)
            sampSetGamestate(1)
            res = false
        elseif res and time == nil then
            sampDisconnectWithReason(quit)
            wait(15500)
            sampSetGamestate(1)
            res = false
        end
    end
end

function sp.onShowDialog(id, style, title, button1, button2, text)
    if id == 1 or id == 2 or id == 10 then
        sampSendDialogResponse(id, 1, 0, parol)
        return false
    end
    if id == 199 then
        sampSendDialogResponse(id, 1, 0, pinkod)
        return false
    end
end
 
Последнее редактирование:

Dmitriy Makarov

25.05.2021
Проверенный
2,515
1,142
не работает автологин при входе на сервер или переподключении
Advance?
sampSendDialogResponse(id, 1, 0, parol)
sampSendDialogResponse(id, 1, 0, pinkod)
Если да, то 0 измени на 65535. У OpenMP какая-то фигня с input диалогами.
 
  • Нравится
Реакции: abnomegd