krokislavofficial

Новичок
Автор темы
20
0
Сделал такой скрипт
Код:
script_name = 'Persistent Jetpack'
script_version = 4

require 'lib.moonloader'
local sampev = require 'lib.samp.events'

local jetpackActive = false

function main()
    while not isSampAvailable() do wait(100) end

    sampRegisterChatCommand('jpac', toggleJetpack)
    sampAddChatMessage('{2CB6DD}[JetPack]: {FFFFFF}Загружен! Активация: /jpac', -1)

    while true do wait(0) end
end

function toggleJetpack()
    jetpackActive = not jetpackActive

    if jetpackActive then
        sampSetSpecialAction(2) -- выдаём один раз
        sampAddChatMessage('{2CB6DD}[JetPack]: {FFFFFF}Включён!', -1)
    else
        sampSetSpecialAction(0) -- снимаем один раз
        sampAddChatMessage('{2CB6DD}[JetPack]: {FFFFFF}Выключен!', -1)
    end
end

-- видимость для других игроков остаётся
function sampev.onSendPlayerSync(data)
    if jetpackActive then
        da
ta.specialAction = 2
    end
end
Джетпак не визуальный, проблема в том что при выдаче джетпака я могу полететь максимум на 1 секунду и именно в этом время сервер отправляет мне сообщение о том что я больше не могу использовать джетпак "[Информация] Вы больше не можете использовать jetpack!" После чего анимация персонажа сбрасывается и джетпак у меня отбирают, но при этом из за функции видимости джетпака для игроков (который обновляется у них раз в 0 мс) и мне когда я бегу постоянно сервер сбрасывал мне анимку помимо отбирания джетпака, если есть кодеры можете пожалуйста сказать как сделать так чтобы анимация не сбрасывалась и джетпак у меня оставался?, я пробовал уже перевыдачу джетпака при отбирании но проблема в том что когда джетпак бы перевыдался скорость сбросилась и в воздухе джетпак по какой то причине не выдавался, когда я уже упал на поверхность он мне выдался, тоесть лететь вообще нереально и неудобно.
 

krokislavofficial

Новичок
Автор темы
20
0
Античит удаляет у тебя джетпак, моментально сбрасывая анимацию.
sampSetSpecialAction(2)) не поможет
Так я и прошу помощи в поиске функции которая запрещает удаление джетпака и сброс анимации, а про то что sampSetSpecialAction(2) не помогает, уже пробовал
 
Lua:
script_name = "Persistent Jetpack"

script_version = 4

require("moonloader")

local sampev = require("samp.events")

local jetpackActive = false

function main()
    while not isSampAvailable() do
        wait(100)
    end

    sampRegisterChatCommand("jpac", function()
        jetpackActive = not jetpackActive

        if jetpackActive then
            sampSetSpecialAction(2)
        else
            sampSetSpecialAction(0)
        end

        sampAddChatMessage(
            jetpackActive and "{2CB6DD}[JetPack]: {FFFFFF}Включён!"
                or "{2CB6DD}[JetPack]: {FFFFFF}Выключен!",
            -1
        )
    end)

    sampAddChatMessage("{2CB6DD}[JetPack]: {FFFFFF}Загружен! Активация: /jpac", -1)

    wait(-1)
end

-- видимость для других игроков остаётся

--[[function sampev.onSendPlayerSync(data)
    if jetpackActive then
        sampAddChatMessage(data.specialAction, -1)
        --data.specialAction = 2
        -- data.animationId = 1195
    end
end]]

function sampev.onSetPlayerSpecialAction(actionId)
    if jetpackActive then
        return false
    end
end
 

krokislavofficial

Новичок
Автор темы
20
0
Можно пожалуйста подсказать что здесь делать? Я вижу что какие то новые функции заккоментированы, ну и понятнок дело джетпак отбирается
Я раскомментировал скрипт и у меня сыпит двойками весь чат когда у меня есть джетпак, когда у меня его отобрали у меня понятно почему был 0
 
Последнее редактирование:

GGramm

Известный
41
10
Я раскомментировал скрипт и у меня сыпит двойками весь чат когда у меня есть джетпак, когда у меня его отобрали у меня понятно почему был 0
Lua:
script_name = "Persistent Jetpack"
script_version = 5

require("moonloader")
local sampev = require("samp.events")

local jetpackActive = false

function main()
    while not isSampAvailable() do wait(100) end

    sampRegisterChatCommand("jpac", function()
        jetpackActive = not jetpackActive

        if jetpackActive then
            sampSetSpecialAction(2)
            sampAddChatMessage("{2CB6DD}[JetPack]: {FFFFFF}Включён! Защита от сброса активна.", -1)
        else
            sampSetSpecialAction(0)
            sampAddChatMessage("{2CB6DD}[JetPack]: {FFFFFF}Выключен!", -1)
        end
    end)

    sampAddChatMessage("{2CB6DD}[JetPack]: {FFFFFF}Загружен! Активация: /jpac", -1)
    wait(-1)
end

-- Блокируем серверные попытки убрать джетпак
function sampev.onSetPlayerSpecialAction(actionId)
    if jetpackActive and actionId == 0 then
        -- Сервер пытается снять джетпак (actionId = 0)
        sampAddChatMessage("{2CB6DD}[JetPack]: {FFFFFF}Сервер попытался снять джетпак. Заблокировано!", -1)
        return false -- Блокируем сброс
    end
end

-- Постоянно отправляем серверу, что у нас джетпак
function sampev.onSendPlayerSync(data)
    if jetpackActive then
        data.specialAction = 2 -- Принудительно устанавливаем джетпак в синхронизации
    end
end
 

krokislavofficial

Новичок
Автор темы
20
0
Lua:
script_name = "Persistent Jetpack"
script_version = 5

require("moonloader")
local sampev = require("samp.events")

local jetpackActive = false

function main()
    while not isSampAvailable() do wait(100) end

    sampRegisterChatCommand("jpac", function()
        jetpackActive = not jetpackActive

        if jetpackActive then
            sampSetSpecialAction(2)
            sampAddChatMessage("{2CB6DD}[JetPack]: {FFFFFF}Включён! Защита от сброса активна.", -1)
        else
            sampSetSpecialAction(0)
            sampAddChatMessage("{2CB6DD}[JetPack]: {FFFFFF}Выключен!", -1)
        end
    end)

    sampAddChatMessage("{2CB6DD}[JetPack]: {FFFFFF}Загружен! Активация: /jpac", -1)
    wait(-1)
end

-- Блокируем серверные попытки убрать джетпак
function sampev.onSetPlayerSpecialAction(actionId)
    if jetpackActive and actionId == 0 then
        -- Сервер пытается снять джетпак (actionId = 0)
        sampAddChatMessage("{2CB6DD}[JetPack]: {FFFFFF}Сервер попытался снять джетпак. Заблокировано!", -1)
        return false -- Блокируем сброс
    end
end

-- Постоянно отправляем серверу, что у нас джетпак
function sampev.onSendPlayerSync(data)
    if jetpackActive then
        data.specialAction = 2 -- Принудительно устанавливаем джетпак в синхронизации
    end
end
Тут нейронка не поможет, не работает все равно

Lua:
function sampev.onSendPlayerSync(data)
    if jetpackActive then
        data.specialAction = 0
    end
end
Мне нужно чтобы игроки джетпак тоже видели
 
Я раскомментировал скрипт и у меня сыпит двойками весь чат когда у меня есть джетпак, когда у меня его отобрали у меня понятно почему был 0
не надо было его раскомментировать я специально его убрал ведь он ниначто не влияет
посмотри что тебе сервак отправляет и нопни это
 

krokislavofficial

Новичок
Автор темы
20
0
не надо было его раскомментировать я специально его убрал ведь он ниначто не влияет
посмотри что тебе сервак отправляет и нопни это
Бля у меня мобайл

Бля у меня мобайл
Код:
[20:56:24.363913] (system) Loading script: '/storage/emulated/0/Android/media/com.rodina.game/monetloader/eventsMonitor.lua'...
[20:56:24.521286] (script) EventsMonitor: [mimgui] Warning! Overwriting existing key "TextColored"!
[20:56:24.521568] (system) EventsMonitor: Loaded successfully.
[20:56:24.574118] (error) EventsMonitor: ...roid/media/com.rodina.game/monetloader/eventsMonitor.lua:218: attempt to call global 'sampIsChatInputActive' (a nil value)
stack traceback:
 ...roid/media/com.rodina.game/monetloader/eventsMonitor.lua:218: in function '_draw'
 ...id/media/com.rodina.game/monetloader/lib/mimgui/init.lua:100: in function <...id/media/com.rodina.game/monetloader/lib/mimgui/init.lua:84>
[20:56:24.574205] (error) EventsMonitor: Script died due to an error.
[\CODE]
 
Последнее редактирование:
Бля у меня мобайл


Код:
[20:56:24.363913] (system) Loading script: '/storage/emulated/0/Android/media/com.rodina.game/monetloader/eventsMonitor.lua'...
[20:56:24.521286] (script) EventsMonitor: [mimgui] Warning! Overwriting existing key "TextColored"!
[20:56:24.521568] (system) EventsMonitor: Loaded successfully.
[20:56:24.574118] (error) EventsMonitor: ...roid/media/com.rodina.game/monetloader/eventsMonitor.lua:218: attempt to call global 'sampIsChatInputActive' (a nil value)
stack traceback:
 ...roid/media/com.rodina.game/monetloader/eventsMonitor.lua:218: in function '_draw'
 ...id/media/com.rodina.game/monetloader/lib/mimgui/init.lua:100: in function <...id/media/com.rodina.game/monetloader/lib/mimgui/init.lua:84>
[20:56:24.574205] (error) EventsMonitor: Script died due to an error.
[\CODE]

Lua:
script_name = "Persistent Jetpack"

script_version = 4

require("moonloader")

local sampev = require("samp.events")

local jetpackActive = false

function main()
    while not isSampAvailable() do
        wait(100)
    end

    sampRegisterChatCommand("jpac", function()
        jetpackActive = not jetpackActive

        if jetpackActive then
            sampSetSpecialAction(2)
        else
            sampSetSpecialAction(0)
        end

        sampAddChatMessage(
            jetpackActive and "{2CB6DD}[JetPack]: {FFFFFF}Включён!"
                or "{2CB6DD}[JetPack]: {FFFFFF}Выключен!",
            -1
        )
    end)

    sampAddChatMessage("{2CB6DD}[JetPack]: {FFFFFF}Загружен! Активация: /jpac", -1)

    wait(-1)
end

function sampev.onSetPlayerSpecialAction(actionId)
    if jetpackActive then
        return false
    end
end

function sampev.onSetPlayerPos(position)
    if jetpackActive then
        return false
    end
end

function samp.onSetPlayerArmedWeapon(weaponId)
    if jetpackActive then
        return false
    end
end

function samp.onResetPlayerWeapons()
    if jetpackActive then
        return false
    end
end

function sampev.onGivePlayerWeapon()
    if jetpackActive then
        return false
    end
end

function sampev.onTogglePlayerControllable()
    if jetpackActive then
        return false
    end
end

function sampev.onApplyPlayerAnimation(playerId)
    if jetpackActive and playerId == select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)) then
        return false
    end
end

function sampev.onClearPlayerAnimation(playerId)
    if jetpackActive and playerId == select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)) then
        return false
    end
end
попробуй