Skip to content

Commit b237f7b

Browse files
committed
Further improvements after review
1 parent 729020d commit b237f7b

File tree

5 files changed

+66
-10
lines changed

5 files changed

+66
-10
lines changed

amx/server/natives/a_actors.lua

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,18 @@ function SetActorFacingAngle(amx, actor, ang)
3636
end
3737

3838
function GetActorFacingAngle(amx, actor, refAng)
39+
if not actor then
40+
return false
41+
end
3942
local rX, rY, rZ = getElementRotation(actor)
4043
writeMemFloat(amx, refAng, rZ)
4144
return true
4245
end
4346

4447
function GetActorPos(amx, actor, refX, refY, refZ)
48+
if not actor then
49+
return false
50+
end
4551
local x, y, z = getElementPosition(actor)
4652
writeMemFloat(amx, refX, x)
4753
writeMemFloat(amx, refY, y)

amx/server/natives/a_objects.lua

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ function SetObjectPos(amx, object, x, y, z)
3939
end
4040

4141
function GetObjectPos(amx, object, refX, refY, refZ)
42+
if not object then
43+
return false
44+
end
4245
local x, y, z = getElementPosition(object)
4346
writeMemFloat(amx, refX, x)
4447
writeMemFloat(amx, refY, y)
@@ -47,6 +50,9 @@ function GetObjectPos(amx, object, refX, refY, refZ)
4750
end
4851

4952
function GetObjectRot(amx, object, refX, refY, refZ)
53+
if not object then
54+
return false
55+
end
5056
local rX, rX, rZ = getObjectRotation(object)
5157
writeMemFloat(amx, refX, rX)
5258
writeMemFloat(amx, refY, rY)
@@ -55,7 +61,8 @@ function GetObjectRot(amx, object, refX, refY, refZ)
5561
end
5662

5763
function SetObjectRot(amx, object, rX, rY, rY)
58-
return setObjectRotation(object, rX, rY, rZ)
64+
setObjectRotation(object, rX, rY, rZ)
65+
return true
5966
end
6067

6168
function GetObjectModel(amx, objID)
@@ -84,7 +91,7 @@ function MoveObject(amx, object, x, y, z, speed)
8491
local time = distance/speed*1000
8592
moveObject(object, time, x, y, z, 0, 0, 0)
8693
setTimer(procCallOnAll, time, 1, 'OnObjectMoved', getElemID(object))
87-
return true
94+
return math.floor(time)
8895
end
8996

9097
function StopObject(amx, object)
@@ -157,7 +164,7 @@ end
157164
function GetPlayerObjectPos(amx, player, objID, refX, refY, refZ)
158165
local x, y, z = getPlayerObjectPos(amx, player, objID)
159166
if not x then
160-
return
167+
return false
161168
end
162169
writeMemFloat(amx, refX, x)
163170
writeMemFloat(amx, refY, y)
@@ -168,7 +175,7 @@ end
168175
function GetPlayerObjectRot(amx, player, objID, refX, refY, refZ)
169176
local obj = g_PlayerObjects[player] and g_PlayerObjects[player][objID]
170177
if not obj then
171-
return
178+
return false
172179
end
173180
writeMemFloat(amx, refX, obj.rx)
174181
writeMemFloat(amx, refY, obj.ry)
@@ -204,7 +211,7 @@ function MovePlayerObject(amx, player, objID, x, y, z, speed)
204211
local timer = setTimer(procCallOnAll, duration, 1, 'OnPlayerObjectMoved', getElemID(player), objID)
205212
obj.moving = { x = x, y = y, z = z, starttick = getTickCount(), duration = duration, timer = timer }
206213
clientCall(player, 'MovePlayerObject', objID, x, y, z, speed)
207-
return true
214+
return math.floor(duration)
208215
end
209216

210217
function StopPlayerObject(amx, player, objID)

amx/server/natives/a_players.lua

Lines changed: 37 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ function SetPlayerFacingAngle(amx, player, angle)
66
return setPedRotation(player, angle)
77
end
88
function GetPlayerFacingAngle(amx, player, refRot)
9+
if not player then
10+
return false
11+
end
912
writeMemFloat(amx, refRot, getPedRotation(player))
1013
return true
1114
end
@@ -42,6 +45,9 @@ function SetPlayerHealth(amx, player, health)
4245
end
4346

4447
function GetPlayerHealth(amx, player, refHealth)
48+
if not player then
49+
return false
50+
end
4551
writeMemFloat(amx, refHealth, getElementHealth(player))
4652
return true
4753
end
@@ -51,6 +57,9 @@ function SetPlayerArmour(amx, player, armor)
5157
end
5258

5359
function GetPlayerArmour(amx, player, refArmor)
60+
if not player then
61+
return false
62+
end
5463
writeMemFloat(amx, refArmor, getPedArmor(player))
5564
return true
5665
end
@@ -186,9 +195,13 @@ function GetPlayerState(amx, player)
186195
end
187196

188197
function GetPlayerIp(amx, player, refName, len)
198+
if not player then
199+
return -1
200+
end
189201
local ip = getPlayerIP(player)
190202
if #ip < len then
191203
writeMemString(amx, refName, ip)
204+
return string.len(ip)
192205
end
193206
end
194207

@@ -211,6 +224,7 @@ function GetPlayerName(amx, player, nameBuf, bufSize)
211224
local name = getPlayerName(player)
212225
if #name <= bufSize then
213226
writeMemString(amx, nameBuf, name)
227+
return string.len(name)
214228
end
215229
end
216230

@@ -261,6 +275,9 @@ function SetPlayerVelocity(amx, player, vx, vy, vz)
261275
end
262276

263277
function GetPlayerVelocity(amx, player, refVX, refVY, refVZ)
278+
if not player then
279+
return false
280+
end
264281
local vx, vy, vz = getElementVelocity(player)
265282
writeMemFloat(amx, refVX, vx)
266283
writeMemFloat(amx, refVY, vy)
@@ -697,15 +714,19 @@ function GetAnimationName(amx)
697714
end
698715

699716
function GetPlayerSpecialAction(amx, player)
700-
if isPedWearingJetpack(player) then
717+
if not player then
718+
return SPECIAL_ACTION_NONE
719+
elseif isPedWearingJetpack(player) then
701720
return SPECIAL_ACTION_USEJETPACK
702721
else
703722
return g_Players[getElemID(player)].specialaction or SPECIAL_ACTION_NONE
704723
end
705724
end
706725

707726
function SetPlayerSpecialAction(amx, player, actionID)
708-
if actionID == SPECIAL_ACTION_NONE then
727+
if not player then
728+
return false
729+
elseif actionID == SPECIAL_ACTION_NONE then
709730
setPedWearingJetpack(player, false)
710731
setPedAnimation(player, false)
711732
elseif actionID == SPECIAL_ACTION_USEJETPACK then
@@ -763,12 +784,18 @@ function AllowPlayerTeleport(amx, player, allow)
763784
end
764785

765786
function SetPlayerCameraPos(amx, player, x, y, z)
787+
if not player then
788+
return false
789+
end
766790
fadeCamera(player, true)
767791
setCameraMatrix(player, x, y, z)
768792
return true
769793
end
770794

771795
function SetPlayerCameraLookAt(amx, player, lx, ly, lz)
796+
if not player then
797+
return false
798+
end
772799
fadeCamera(player, true)
773800
local x, y, z = getCameraMatrix(player)
774801
setCameraMatrix(player, x, y, z, lx, ly, lz)
@@ -782,6 +809,9 @@ function SetCameraBehindPlayer(amx, player)
782809
end
783810

784811
function GetPlayerCameraPos(amx, player, refX, refY, refZ)
812+
if not player then
813+
return false
814+
end
785815
local x, y, z = getCameraMatrix(player)
786816
writeMemFloat(amx, refX, x)
787817
writeMemFloat(amx, refY, y)
@@ -790,6 +820,9 @@ function GetPlayerCameraPos(amx, player, refX, refY, refZ)
790820
end
791821

792822
function GetPlayerCameraFrontVector(amx, player, refX, refY, refZ)
823+
if not player then
824+
return false
825+
end
793826
local x, y, z, lx, ly, lz = getCameraMatrix(player)
794827
writeMemFloat(amx, refX, lx)
795828
writeMemFloat(amx, refY, ly)
@@ -829,12 +862,12 @@ end
829862

830863
function GetPlayerCameraAspectRatio(amx)
831864
notImplemented('GetPlayerCameraAspectRatio')
832-
return false
865+
return float2cell(0.0)
833866
end
834867

835868
function GetPlayerCameraZoom(amx)
836869
notImplemented('GetPlayerCameraZoom')
837-
return false
870+
return float2cell(0.0)
838871
end
839872

840873
function AttachCameraToObject(amx, player, object)

amx/server/natives/a_samp.lua

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -985,6 +985,7 @@ function gpci(amx, player, nameBuf, bufSize)
985985
local serial = getPlayerSerial(player)
986986
if #serial <= bufSize then
987987
writeMemString(amx, nameBuf, serial)
988+
return string.len(serial)
988989
end
989990
end
990991

@@ -1019,7 +1020,7 @@ function NetStats_GetIpPort(amx, player, ip_port, ip_port_len)
10191020
local port = 0 -- We haven't a solution for getting a client port
10201021
local ipandport = tostring(ip).. ":".. tostring(port)
10211022
writeMemString(amx, ip_port, ipandport)
1022-
return string.len(tostring(ip).. ":".. tostring(port));
1023+
return string.len(ipandport);
10231024
end
10241025

10251026
function NetStats_MessagesReceived(amx, player)

amx/server/natives/a_vehicles.lua

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ GetVehiclePos = GetObjectPos
2020
SetVehiclePos = SetObjectPos
2121

2222
function GetVehicleZAngle(amx, vehicle, refZ)
23+
if not vehicle then
24+
return false
25+
end
2326
local rX, rY, rZ = getVehicleRotation(vehicle)
2427
writeMemFloat(amx, refZ, rZ)
2528
return true
@@ -156,6 +159,9 @@ function SetVehicleHealth(amx, vehicle, health)
156159
end
157160

158161
function GetVehicleHealth(amx, vehicle, refHealth)
162+
if not vehicle then
163+
return false
164+
end
159165
writeMemFloat(amx, refHealth, getElementHealth(vehicle))
160166
return true
161167
end
@@ -241,6 +247,9 @@ function RepairVehicle(amx, vehicle)
241247
end
242248

243249
function GetVehicleVelocity(amx, vehicle, refVX, refVY, refVZ)
250+
if not vehicle then
251+
return false
252+
end
244253
local vx, vy, vz = getElementVelocity(vehicle)
245254
writeMemFloat(amx, refVX, vx)
246255
writeMemFloat(amx, refVY, vy)

0 commit comments

Comments
 (0)