example

求助-已解决√ 玩家检测误触发问题

IamDiWang

用户
高级用户
认证用户
RegisterNetEvent('raceDriverJoin', function(driverid)
if GetVehiclePedIsIn(GetPlayerPed(GetPlayerFromServerId(driverid))) == GetVehiclePedIsIn(GetPlayerPed(-1)) then
end
这玩意不在一辆车上也触发了,间歇性抽风,怎么解决
 

Yann

站长
管理成员
GTAOS管理组
认证卖家
认证用户
本 月 名 人 榜 最 佳
放在服务端判断试试
 

Yann

站长
管理成员
GTAOS管理组
认证卖家
认证用户
本 月 名 人 榜 最 佳
看起来没什么问题,不过,我的印象中车辆数据都是写在服务端,会不会与这个有关?
 

IamDiWang

用户
高级用户
认证用户
GetPlayerPed(GetPlayerFromServerId(driverid))获取错误的问题,推测是获取到了本地玩家。加上 and GetPlayerPed(-1) ~= GetPlayerPed(GetPlayerFromServerId(driverid)) then 就行了
 

Cata_a

用户
论坛元老
高级用户
认证用户
获取本地玩家不要使用GetPlayerPed(-1),而是PlayerPedId()。
如果服务器正在使用ox_lib等库,可以直接使用缓存;减小性能开销,而不是每次都获取。
最后一个end缺少一个“)”,注意代码缩进,提高代码可读性。
另外,你需要明白PlayerPed、PlayerIndex、PlayerServerId的区别。
 

IamDiWang

用户
高级用户
认证用户
获取本地玩家不要使用GetPlayerPed(-1),而是PlayerPedId()。
如果服务器正在使用ox_lib等库,可以直接使用缓存;减小性能开销,而不是每次都获取。
最后一个end缺少一个“)”,注意代码缩进,提高代码可读性。
另外,你需要明白PlayerPed、PlayerIndex、PlayerServerId的区别。
哦哦感谢,这一截是我从我的脚本随便复制的一段,所以说少东西了,还有感谢提醒,很有用
 
顶部