Hello, so we got a problem that our players can see everyone’s /me and /do commands, but the same script on another server works perfectly. es_extended V1 final ; essentialmode 6.4.2
*server.lua*
RegisterCommand('me', function(source, args, user)
local name = GetPlayerName(source)
TriggerClientEvent("sendProximityMessageMe", -1, source, name, table.concat(args, " "))
end, false)
*client.lua*
RegisterNetEvent('sendProximityMessageMe')
AddEventHandler('sendProximityMessageMe', function(id, name, message)
local myId = PlayerId()
local pid = GetPlayerFromServerId(id)
if pid == myId then
TriggerEvent('chatMessage', "", {255, 0, 0}, " ^1/me ^0 " .. name .. " (ID " .. id .. ") ".."^8: ^0 " .. message)
elseif GetDistanceBetweenCoords(GetEntityCoords(GetPlayerPed(myId)), GetEntityCoords(GetPlayerPed(pid)), true) < 19.999 then
TriggerEvent('chatMessage', "", {255, 0, 0}, " ^1/me ^0 " .. name .. " (ID " .. id .. ") ".."^8: ^0 " .. message)
end
end)
What do you wanna do, exactly? 'cause if you want to send a proximity message, you’ll need to make a loop that pass around all players, like GetActivePlayers() loops.
No errors in server console, or in F8 console, as i said this code worked in another server with older es_extended, maybe thats the problem is es_extended?
Just leave that but still u are printing it into chat. i dont know what me command u want to make but if you want like this. When i type /me example be printed into chat but player in 20 meters can see it into chat other players not then just leave that
GetDistanceBetweenCoords(GetEntityCoords(GetPlayerPed(myId)), GetEntityCoords(GetPlayerPed(pid)), true) < 19.999 then
RegisterCommand('me', function(source, args, user)
local name = GetPlayerName(source)
TriggerClientEvent('sendProximityMessageMe', source, name, table.concat(args, ''))
end, false)
RegisterNetEvent('sendProximityMessageMe')
AddEventHandler('sendProximityMessageMe', function(name, message)
local playerid = PlayerId()
local ped = GetPlayerPed(playerid)
local coords = GetEntityCoords(ped)
for k, v in pairs(GetActivePlayers()) do
local v_ped = GetPlayerPed(v)
local v_coords = GetEntityCoords(v_ped)
if GetDistanceBetweenCoords(v_coords.x, v_coords.y, v_coords.z, coords.x, coords.y, coords.z) <= 20.0 then
-- call a server event from here, with GetPlayerServerId(v), containing the name, message, etc.
end
end
end)
Or you can save the player positions on server side… The way that you wanna do it, at least i, would change the true condition, as i was said.