Skip to content

Commit f79f95e

Browse files
authored
Merge pull request YimMenu-Lua#127 from YimMenu-Lua/bsv2_refactor
refactor: refactor BSV2 + rename some folders
2 parents f1227d9 + 1abeb25 commit f79f95e

94 files changed

Lines changed: 6608 additions & 3910 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

SSV2/includes/backend.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ end
142142

143143
---@return boolean
144144
function Backend:AreControlsDisabled()
145-
return self.disable_input
145+
return self.disable_input or GUI:WantsInput()
146146
end
147147

148148
---@param data string
@@ -474,7 +474,7 @@ function Backend:RegisterHandlers()
474474
if (mockEnv) then return end
475475

476476
ThreadManager:RegisterLooped("SS_CTRLS", function()
477-
if (self.disable_input) then
477+
if (self.disable_input or GUI:WantsInput()) then
478478
PAD.DISABLE_ALL_CONTROL_ACTIONS(0)
479479
else
480480
if ((gui.is_open() or GUI:IsOpen())) then

SSV2/includes/classes/Vector2.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -324,9 +324,9 @@ end
324324
-- Conversion Helpers (Optional)
325325
--------------------------------------
326326

327-
if Serializer and not Serializer.class_types["vec2"] then
327+
if (Serializer) then
328328
Serializer:RegisterNewType("vec2", vec2.serialize, vec2.deserialize)
329329
end
330330

331331
vec2.magnitude = vec2.length
332-
vec2.magn = vec2.length
332+
vec2.mag = vec2.length

SSV2/includes/classes/Vector3.lua

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -297,16 +297,16 @@ end
297297
-- Conversion Helpers (Optional)
298298
--------------------------------------
299299

300-
if Serializer and not Serializer.class_types["vec3"] then
300+
if (Serializer) then
301301
Serializer:RegisterNewType("vec3", vec3.serialize, vec3.deserialize)
302302
end
303303

304-
if vec2 then
304+
if (vec2) then
305305
---@return vec2
306306
function vec3:as_vec2()
307307
return vec2:new(self.x, self.y)
308308
end
309309
end
310310

311311
vec3.magnitude = vec3.length
312-
vec3.mag = vec3.length
312+
vec3.mag = vec3.length

SSV2/includes/classes/Vector4.lua

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -327,23 +327,23 @@ end
327327
-- Conversion Helpers (Optional)
328328
--------------------------------------
329329

330-
if Serializer and not Serializer.class_types["vec4"] then
330+
if (Serializer) then
331331
Serializer:RegisterNewType("vec4", vec4.serialize, vec4.deserialize)
332332
end
333333

334-
if vec2 then
334+
if (vec2) then
335335
---@return vec2
336336
function vec4:as_vec2()
337337
return vec2:new(self.x, self.y)
338338
end
339339
end
340340

341-
if vec3 then
341+
if (vec3) then
342342
---@return vec3
343343
function vec4:as_vec3()
344344
return vec3:new(self.x, self.y, self.z)
345345
end
346346
end
347347

348348
vec4.magnitude = vec4.length
349-
vec4.mag = vec4.length
349+
vec4.mag = vec4.length

SSV2/includes/classes/gta/CEntity.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ local fwDrawData = require("includes.classes.gta.fwDrawData")
3434
---@field m_max_health pointer<float> -- 0x0284
3535
---@field m_attackers pointer<CAttackers> -- 0x0288
3636
---@overload fun(entity: handle): CEntity
37-
local CEntity = Class("CEntity", { symbolic_size = 0x28C, pointer_ctor = true })
37+
local CEntity = Class("CEntity", { symbolic_size = 0x28C })
3838

3939
---@param entity handle
4040
---@return CEntity

SSV2/includes/classes/gta/CPed.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ local CPlayerInfo = require("includes.classes.gta.CPlayerInfo")
3434
---@field m_cash pointer<uint16_t> // 0x1614
3535
---@field private m_ped_weapon_mgr_inst CPedWeaponManager
3636
---@overload fun(ped: handle): CPed
37-
local CPed = Class("CPed", { parent = CEntity, symbolic_size = 0x161C, pointer_ctor = true })
37+
local CPed = Class("CPed", { parent = CEntity, symbolic_size = 0x161C })
3838

3939
---@param ped handle
4040
---@return CPed

SSV2/includes/classes/gta/CPlayerInfo.lua

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,15 @@
88

99

1010
local CStructView = require("includes.classes.gta.CStructView")
11-
11+
local rlGamerInfo = require("includes.classes.gta.rlGamerInfo")
1212

1313
--------------------------------------
1414
-- Class: CPlayerInfo
1515
--------------------------------------
1616
---@ignore
1717
---@class CPlayerInfo : CStructBase<CPlayerInfo>
1818
---@field protected m_ptr pointer
19+
---@field m_rl_gamer_info rlGamerInfo
1920
---@field m_swim_speed pointer<float>
2021
---@field m_walk_speed pointer<float>
2122
---@field m_game_state pointer<eGameState>
@@ -35,6 +36,7 @@ local CPlayerInfo = CStructView("CPlayerInfo", 0x0D78)
3536
function CPlayerInfo.new(ptr)
3637
return setmetatable({
3738
m_ptr = ptr,
39+
m_rl_gamer_info = rlGamerInfo(ptr:add(0x0020)),
3840
m_swim_speed = ptr:add(0x01C8),
3941
m_walk_speed = ptr:add(0x01E4),
4042
m_game_state = ptr:add(0x0230),
@@ -50,6 +52,34 @@ function CPlayerInfo.new(ptr)
5052
}, CPlayerInfo)
5153
end
5254

55+
---@return int64_t
56+
function CPlayerInfo:GetRockstarID()
57+
return self:__safecall(0, function()
58+
return self.m_rl_gamer_info.m_rockstar_id:get_int()
59+
end)
60+
end
61+
62+
---@return IPAddress?
63+
function CPlayerInfo:GetExternalIP()
64+
return self:__safecall(nil, function()
65+
return self.m_rl_gamer_info:GetExternalIP()
66+
end)
67+
end
68+
69+
---@return IPAddress?
70+
function CPlayerInfo:GetInternalIP()
71+
return self:__safecall(nil, function()
72+
return self.m_rl_gamer_info:GetInternalIP()
73+
end)
74+
end
75+
76+
---@return string
77+
function CPlayerInfo:GetPlayerName()
78+
return self:__safecall("", function()
79+
return self.m_rl_gamer_info:GetPlayerName()
80+
end)
81+
end
82+
5383
---@return eGameState
5484
function CPlayerInfo:GetGameState()
5585
return self:__safecall(Enums.eGameState.Invalid, function()

SSV2/includes/classes/gta/CVehicle.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ local SubHandlingCtorMap <const> = {
8585
---@field public m_ride_height pointer<float>
8686
---@field private DumpFlags fun(self: CVehicle, enum_flags: Enum, get_func: fun(self: CVehicle, flag: integer): boolean): nil
8787
---@overload fun(vehicle: integer): CVehicle|nil
88-
local CVehicle = Class("CVehicle", { parent = CEntity, symbolic_size = 0xC40, pointer_ctor = true })
88+
local CVehicle = Class("CVehicle", { parent = CEntity, symbolic_size = 0xC40 })
8989

9090
---@param vehicle handle
9191
---@return CVehicle
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
-- Copyright (C) 2026 SAMURAI (xesdoog) & Contributors.
2+
-- This file is part of Samurai's Scripts.
3+
--
4+
-- Permission is hereby granted to copy, modify, and redistribute
5+
-- this code as long as you respect these conditions:
6+
-- * Credit the owner and contributors.
7+
-- * Provide a copy of or a link to the original license (GPL-3.0 or later); see LICENSE.md or <https://www.gnu.org/licenses/>.
8+
9+
10+
local CStructView = require("includes.classes.gta.CStructView")
11+
12+
---@class IPAddress
13+
---@field private m_decimal uint32_t
14+
---@field private m_packed vec4
15+
---@overload fun(n: uint32_t): IPAddress
16+
local IPAddress <const> = {}
17+
IPAddress.__index = IPAddress
18+
---@diagnostic disable-next-line
19+
setmetatable(IPAddress, {
20+
__call = function(t, ...)
21+
return t.new(...)
22+
end
23+
})
24+
25+
---@param n uint32_t
26+
---@return IPAddress
27+
function IPAddress.new(n)
28+
local packed = vec4:zero()
29+
if (n ~= 0) then
30+
packed = vec4:new(
31+
math.floor(n / 16777216),
32+
math.floor(n / 65536) % 256,
33+
math.floor(n / 256) % 256,
34+
n % 256
35+
)
36+
end
37+
38+
return setmetatable({
39+
m_decimal = n,
40+
m_packed = packed
41+
---@diagnostic disable-next-line
42+
}, IPAddress)
43+
end
44+
45+
---@return string
46+
function IPAddress:__tostring()
47+
return _F("%d.%d.%d.%d",
48+
self.m_packed.x,
49+
self.m_packed.y,
50+
self.m_packed.z,
51+
self.m_packed.w
52+
)
53+
end
54+
55+
--------------------------------------
56+
-- Class: rlGamerInfo
57+
--------------------------------------
58+
---@class rlGamerInfo : CStructBase<rlGamerInfo>
59+
---@field m_peer_id pointer<uint64_t>
60+
---@field m_rockstar_id pointer<int64_t>
61+
---@field m_external_ip pointer<uint32_t>
62+
---@field m_external_port pointer<uint16_t>
63+
---@field m_internal_ip pointer<uint32_t>
64+
---@field m_internal_port pointer<uint16_t>
65+
---@field m_nat_type pointer<uint32_t>
66+
---@field m_player_name pointer<string> // 0x00DC
67+
---@overload fun(ptr: pointer): rlGamerInfo
68+
local rlGamerInfo = CStructView("rlGamerInfo", 0x0F90)
69+
70+
---@param ptr pointer
71+
---@return rlGamerInfo
72+
function rlGamerInfo.new(ptr)
73+
return setmetatable({
74+
m_ptr = ptr,
75+
m_peer_id = ptr:add(0x0008),
76+
m_rockstar_id = ptr:add(0x0010),
77+
m_external_ip = ptr:add(0x00A8),
78+
m_external_port = ptr:add(0x00AC),
79+
m_internal_ip = ptr:add(0x00B0),
80+
m_internal_port = ptr:add(0x00B4),
81+
m_nat_type = ptr:add(0x00B8),
82+
m_player_name = ptr:add(0x00DC),
83+
---@diagnostic disable-next-line: param-type-mismatch
84+
}, rlGamerInfo)
85+
end
86+
87+
---@return IPAddress
88+
function rlGamerInfo:GetExternalIP()
89+
return IPAddress(self.m_external_ip:get_dword())
90+
end
91+
92+
---@return IPAddress
93+
function rlGamerInfo:GetInternalIP()
94+
return IPAddress(self.m_internal_ip:get_dword())
95+
end
96+
97+
---@return string
98+
function rlGamerInfo:GetPlayerName()
99+
return self.m_player_name:get_string()
100+
end
101+
102+
return rlGamerInfo

SSV2/includes/data/actions/movement_clipsets.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
-- * Provide a copy of or a link to the original license (GPL-3.0 or later); see LICENSE.md or <https://www.gnu.org/licenses/>.
88

99

10+
---@type array<MovementClipsetData>
1011
return {
1112
{ Name = "Arrogant (Female)", mvmt = "move_f@arrogant@a", wmvmt = nil, strf = nil, wanim = "Female" },
1213
{ Name = "Bodybuilder", mvmt = "move_m@muscle@a", wmvmt = nil, strf = nil, wanim = "Default" },

0 commit comments

Comments
 (0)