- 129
- 14
- Версия MoonLoader
- .026-beta
Переносил чудесный скрипт с под названием key_sync и столкнулся с проблемой что не могу выбрать ID синхру которого мне нужно отслеживать.
В оригинальном скрипте это делается с помощью команды а мне нужно что-бы работало на человека за которым я слежу.
Пробывал таким способом:
но в результате получаю "The player has left the stream zone!"
В оригинальном скрипте это делается с помощью команды а мне нужно что-бы работало на человека за которым я слежу.
Пробывал таким способом:
Lua:
function sampev.onSpectatePlayer(playerId, camType)
target = playerId
end
но в результате получаю "The player has left the stream zone!"
Lua:
local target = new.int(-1)
local spectateSyncKeys = imgui.OnFrame(
function() return target ~= -1 end,
function(player)
player.HideCursor = true
imgui.SetNextWindowPos(imgui.ImVec2(SizeX / 2, SizeY - 100), imgui.Cond.Always, imgui.ImVec2(0.5, 0.5))
imgui.Begin("##KEYS", nil, imgui.WindowFlags.NoTitleBar + imgui.WindowFlags.AlwaysAutoResize)
if doesCharExist(target) then
local plState = (isCharOnFoot(target) and "OnFoot" or "Vehicle")
imgui.BeginGroup()
imgui.SetCursorPosX(10 + 30 + 5)
KeyCap("W", (SyncKeys[plState]["W"] ~= nil), imgui.ImVec2(30, 30))
KeyCap("A", (SyncKeys[plState]["A"] ~= nil), imgui.ImVec2(30, 30)); imgui.SameLine()
KeyCap("S", (SyncKeys[plState]["S"] ~= nil), imgui.ImVec2(30, 30)); imgui.SameLine()
KeyCap("D", (SyncKeys[plState]["D"] ~= nil), imgui.ImVec2(30, 30))
imgui.EndGroup()
imgui.SameLine(nil, 20)
if plState == "OnFoot" then
imgui.BeginGroup()
KeyCap("Shift", (SyncKeys[plState]["Shift"] ~= nil), imgui.ImVec2(75, 30)); imgui.SameLine()
KeyCap("Alt", (SyncKeys[plState]["Alt"] ~= nil), imgui.ImVec2(55, 30))
KeyCap("Space", (SyncKeys[plState]["Space"] ~= nil), imgui.ImVec2(135, 30))
imgui.EndGroup()
imgui.SameLine()
imgui.BeginGroup()
KeyCap("C", (SyncKeys[plState]["C"] ~= nil), imgui.ImVec2(30, 30)); imgui.SameLine()
KeyCap("F", (SyncKeys[plState]["F"] ~= nil), imgui.ImVec2(30, 30))
KeyCap("RM", (SyncKeys[plState]["RKM"] ~= nil), imgui.ImVec2(30, 30)); imgui.SameLine()
KeyCap("LM", (SyncKeys[plState]["LKM"] ~= nil), imgui.ImVec2(30, 30))
imgui.EndGroup()
else
imgui.BeginGroup()
KeyCap("Ctrl", (SyncKeys[plState]["Ctrl"] ~= nil), imgui.ImVec2(65, 30)); imgui.SameLine()
KeyCap("Alt", (SyncKeys[plState]["Alt"] ~= nil), imgui.ImVec2(65, 30))
KeyCap("Space", (SyncKeys[plState]["Space"] ~= nil), imgui.ImVec2(135, 30))
imgui.EndGroup()
imgui.SameLine()
imgui.BeginGroup()
KeyCap("Up", (SyncKeys[plState]["Up"] ~= nil), imgui.ImVec2(40, 30))
KeyCap("Down", (SyncKeys[plState]["Down"] ~= nil), imgui.ImVec2(40, 30))
imgui.EndGroup()
imgui.SameLine()
imgui.BeginGroup()
KeyCap("H", (SyncKeys[plState]["H"] ~= nil), imgui.ImVec2(30, 30)); imgui.SameLine()
KeyCap("F", (SyncKeys[plState]["F"] ~= nil), imgui.ImVec2(30, 30))
KeyCap("Q", (SyncKeys[plState]["Q"] ~= nil), imgui.ImVec2(30, 30)); imgui.SameLine()
KeyCap("E", (SyncKeys[plState]["E"] ~= nil), imgui.ImVec2(30, 30))
imgui.EndGroup()
end
else
imgui.Text("The player has left the stream zone!")
end
imgui.End()
end
)
function sampev.onPlayerSync(playerId, data)
local result, id = sampGetPlayerIdByCharHandle(target)
if result and id == playerId then
SyncKeys["OnFoot"] = {}
SyncKeys["OnFoot"]["W"] = (data.upDownKeys == 65408) or nil
SyncKeys["OnFoot"]["A"] = (data.leftRightKeys == 65408) or nil
SyncKeys["OnFoot"]["S"] = (data.upDownKeys == 00128) or nil
SyncKeys["OnFoot"]["D"] = (data.leftRightKeys == 00128) or nil
SyncKeys["OnFoot"]["Alt"] = (bit.band(data.keysData, 1024) == 1024) or nil
SyncKeys["OnFoot"]["Shift"] = (bit.band(data.keysData, 8) == 8) or nil
SyncKeys["OnFoot"]["Space"] = (bit.band(data.keysData, 32) == 32) or nil
SyncKeys["OnFoot"]["F"] = (bit.band(data.keysData, 16) == 16) or nil
SyncKeys["OnFoot"]["C"] = (bit.band(data.keysData, 2) == 2) or nil
SyncKeys["OnFoot"]["RKM"] = (bit.band(data.keysData, 4) == 4) or nil
SyncKeys["OnFoot"]["LKM"] = (bit.band(data.keysData, 128) == 128) or nil
end
end
function sampev.onVehicleSync(playerId, vehicleId, data)
local result, id = sampGetPlayerIdByCharHandle(target)
if result and id == playerId then
SyncKeys["Vehicle"] = {}
SyncKeys["Vehicle"]["W"] = (bit.band(data.keysData, 8) == 8) or nil
SyncKeys["Vehicle"]["A"] = (data.leftRightKeys == 65408) or nil
SyncKeys["Vehicle"]["S"] = (bit.band(data.keysData, 32) == 32) or nil
SyncKeys["Vehicle"]["D"] = (data.leftRightKeys == 00128) or nil
SyncKeys["Vehicle"]["H"] = (bit.band(data.keysData, 2) == 2) or nil
SyncKeys["Vehicle"]["Space"] = (bit.band(data.keysData, 128) == 128) or nil
SyncKeys["Vehicle"]["Ctrl"] = (bit.band(data.keysData, 1) == 1) or nil
SyncKeys["Vehicle"]["Alt"] = (bit.band(data.keysData, 4) == 4) or nil
SyncKeys["Vehicle"]["Q"] = (bit.band(data.keysData, 256) == 256) or nil
SyncKeys["Vehicle"]["E"] = (bit.band(data.keysData, 64) == 64) or nil
SyncKeys["Vehicle"]["F"] = (bit.band(data.keysData, 16) == 16) or nil
SyncKeys["Vehicle"]["Up"] = (data.upDownKeys == 65408) or nil
SyncKeys["Vehicle"]["Down"] = (data.upDownKeys == 00128) or nil
end
end
Последнее редактирование: