Lua Визуальный джетпак

ShadowKnife

Потрачен
Автор темы
231
25
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Визуальный джетпак. У других игроков вы просто летаете, не знаю зачем может пригодиться.
Активация: /jpac
 

Вложения

  • jpac.lua
    637 байт · Просмотры: 149
  • Bug
Реакции: zxcultan и dart__

chapo

tg/inst: @moujeek
Модератор
9,078
12,061
1. при подмене синхры ты вроде должен возвращать новое значение через return, типо так:
Lua:
data.specialAction = 0
return {data}
2.
Lua:
local sampev = require 'lib.samp.events'
local active = false

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('jp', function()
        active = not active
        sampAddChatMessage('JetPack: '..(active and 'включен' or 'выключен'), -1)
        sampSetSpecialAction(active and 2 or 0)
    end)
    wait(-1)
end

function sampev.onSendPlayerSync(data)
    if active then
        data.specialAction = 0
        return {data}
    end
end
 
  • Bug
Реакции: Musaigen

Versaces

Активный
302
32
Р
1. при подмене синхры ты вроде должен возвращать новое значение через return, типо так:
Lua:
data.specialAction = 0
return {data}
2.
Lua:
local sampev = require 'lib.samp.events'
local active = false

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('jp', function()
        active = not active
        sampAddChatMessage('JetPack: '..(active and 'включен' or 'выключен'), -1)
        sampSetSpecialAction(active and 2 or 0)
    end)
    wait(-1)
end

function sampev.onSendPlayerSync(data)
    if active then
        data.specialAction = 0
        return {data}
    end
end
Разложил по фактам
 

четыреста четыре

Известный
120
21

1. при подмене синхры ты вроде должен возвращать новое значение через return, типо так:
Lua:
data.specialAction = 0
return {data}
2.
Lua:
local sampev = require 'lib.samp.events'
local active = false

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('jp', function()
        active = not active
        sampAddChatMessage('JetPack: '..(active and 'включен' or 'выключен'), -1)
        sampSetSpecialAction(active and 2 or 0)
    end)
    wait(-1)
end

function sampev.onSendPlayerSync(data)
    if active then
        data.specialAction = 0
        return {data}
    end
end
Перезапись исходящих пакетов синхронизации слегка отличается от всех остальных - они не требуют возврата аргументов, а вместо этого данные перезаписываются как в обычной таблице lua. Это сделано для повышения производительности.
Пример перезаписи позиции в исходящих данных синхронизации игрока:
Lua:
function sampev.onSendPlayerSync(data)
print('Original position:', data.position.x, data.position.y, data.position.z)
data.position.x = 1337
data.position.y = 1488
data.position.z = 228
end
Это применимо только в событиях onSendPlayerSync, onSendVehicleSync, onSendPassengerSync, onSendAimSync, onSendUnoccupiedSync, onSendTrailerSync, onSendBulletSync, onSendSpectatorSync.
 
  • Вау
Реакции: chapo