Hello. I’m working on synchronization for my gang turf wars script and I have a serious problem. I wanted to make blips so every player from the attacking gang and defending gang can see the blips of enemy and friend npcs. This is working so far, but when it comes to syncing when they are dead… here is where the problem starts. Blips are still visible even after npc death. The print("ADDING ATTACKER BLIP WITH: " … pedID) doesn’t even show up in the console and I suppose that blips don’t even add to the table
client.lua
if turfWarDefenderCount ~= 0 then
for i, enemy in pairs(turfWarDefenderPeds) do
if IsPedDeadOrDying(enemy, true) then
table.insert(turfWarDeadPeds, enemy)
--RemoveBlip(turfWarDefenderBlips[i])
TriggerServerEvent('missions:activateTurfWarPedBlips', PlayerData.job.name, false, false, false, turfWarDefenderBlips, i)
TriggerServerEvent('missions:activateTurfWarPedBlips', currentOwner, true, false, false, turfWarDefenderBlips, i)
--table.remove(turfWarDefenderBlips, i)
--table.remove(turfWarDefenderPeds, i)
--table.insert(turfWarDeadPeds, enemy)
turfWarDefenderCount = turfWarDefenderCount - 1
turfWarDefenderPeds[i] = nil
turfWarDefenderBlips[i] = nil
if not turfWarFirstBlood then
if turfWarWave == 1 then
--missionText = "Wave ~y~1/4 ~w~in progress. Rival gang members alive: ~r~" .. turfWarDefenderCount
TriggerServerEvent('missions:activateMissionText', PlayerData.job.name, "Wave ~y~1/4 ~w~in progress. Rival gang members alive: ~r~" .. turfWarDefenderCount)
TriggerServerEvent('missions:activateMissionText', currentOwner, "Wave ~y~1/4 ~w~in progress. Friendly gang members alive: ~g~" .. turfWarDefenderCount)
turfWarFirstBlood = true
elseif turfWarWave == 2 then
--missionText = "Wave ~y~2/4 ~w~in progress. Rival gang members alive: ~r~" .. turfWarDefenderCount
TriggerServerEvent('missions:activateMissionText', PlayerData.job.name, "Wave ~y~2/4 ~w~in progress. Rival gang members alive: ~r~" .. turfWarDefenderCount)
TriggerServerEvent('missions:activateMissionText', currentOwner, "Wave ~y~2/4 ~w~in progress. Friendly gang members alive: ~g~" .. turfWarDefenderCount)
turfWarFirstBlood = true
elseif turfWarWave == 3 then
--missionText = "Wave ~y~3/4 ~w~in progress. Rival gang members alive: ~r~" .. turfWarDefenderCount
TriggerServerEvent('missions:activateMissionText', PlayerData.job.name, "Wave ~y~3/4 ~w~in progress. Rival gang members alive: ~r~" .. turfWarDefenderCount)
TriggerServerEvent('missions:activateMissionText', currentOwner, "Wave ~y~3/4 ~w~in progress. Friendly gang members alive: ~g~" .. turfWarDefenderCount)
turfWarFirstBlood = true
elseif turfWarWave == 4 then
--missionText = "Wave ~y~4/4 ~w~in progress. Rival gang members alive: ~r~" .. turfWarDefenderCount
TriggerServerEvent('missions:activateMissionText', PlayerData.job.name, "Wave ~y~4/4 ~w~in progress. Rival gang members alive: ~r~" .. turfWarDefenderCount)
TriggerServerEvent('missions:activateMissionText', currentOwner, "Wave ~y~4/4 ~w~in progress. Friendly gang members alive: ~g~" .. turfWarDefenderCount)
turfWarFirstBlood = true
end
else
if turfWarWave == 1 then
--missionText = "Wave ~y~1/4 ~w~in progress. Rival gang members alive: ~r~" .. turfWarDefenderCount
TriggerServerEvent('missions:activateMissionText', PlayerData.job.name, "Wave ~y~1/4 ~w~in progress. Rival gang members alive: ~r~" .. turfWarDefenderCount)
TriggerServerEvent('missions:activateMissionText', currentOwner, "Wave ~y~1/4 ~w~in progress. Friendly gang members alive: ~g~" .. turfWarDefenderCount)
elseif turfWarWave == 2 then
--missionText = "Wave ~y~2/4 ~w~in progress. Rival gang members alive: ~r~" .. turfWarDefenderCount
TriggerServerEvent('missions:activateMissionText', PlayerData.job.name, "Wave ~y~2/4 ~w~in progress. Rival gang members alive: ~r~" .. turfWarDefenderCount)
TriggerServerEvent('missions:activateMissionText', currentOwner, "Wave ~y~2/4 ~w~in progress. Friendly gang members alive: ~g~" .. turfWarDefenderCount)
elseif turfWarWave == 3 then
--missionText = "Wave ~y~3/4 ~w~in progress. Rival gang members alive: ~r~" .. turfWarDefenderCount
TriggerServerEvent('missions:activateMissionText', PlayerData.job.name, "Wave ~y~3/4 ~w~in progress. Rival gang members alive: ~r~" .. turfWarDefenderCount)
TriggerServerEvent('missions:activateMissionText', currentOwner, "Wave ~y~3/4 ~w~in progress. Friendly gang members alive: ~g~" .. turfWarDefenderCount)
elseif turfWarWave == 4 then
--missionText = "Wave ~y~4/4 ~w~in progress. Rival gang members alive: ~r~" .. turfWarDefenderCount
TriggerServerEvent('missions:activateMissionText', PlayerData.job.name, "Wave ~y~4/4 ~w~in progress. Rival gang members alive: ~r~" .. turfWarDefenderCount)
TriggerServerEvent('missions:activateMissionText', currentOwner, "Wave ~y~4/4 ~w~in progress. Friendly gang members alive: ~g~" .. turfWarDefenderCount)
end
end
print("Removed Enemy ID: " .. i)
end
end
end
enemiesQuantity = 8
turfWarDefenderCount = enemiesQuantity
local pedId = 0
while enemiesQuantity ~= 0 do
while not HasModelLoaded(defenderPed.model) do
RequestModel(defenderPed.model)
Wait(0)
end
local coords = TurfPoint1Spawnpoints[math.random(#TurfPoint1Spawnpoints)]
local EnemyPed = CreatePed(defenderPed.type, defenderPed.model, coords.x, coords.y, coords.z, 90, true, true)
setBehaviour(EnemyPed, defenderRelation, "WEAPON_PISTOL", true, false, false)
SetPedRandomComponentVariation(EnemyPed, false)
SetEntityAsMissionEntity(EnemyPed, false, false)
TaskGoToCoordAndAimAtHatedEntitiesNearCoord(EnemyPed, TurfPoint1Marker.x, TurfPoint1Marker.y, TurfPoint1Marker.z + 1.0, TurfPoint1Marker.x, TurfPoint1Marker.y, TurfPoint1Marker.z, 2.0, true, 20.0, 0.0, true, 0, 1, 1566631136)
turfWarDefenderPeds[pedId] = EnemyPed
TriggerServerEvent('missions:activateTurfWarPedBlips', PlayerData.job.name, false, true, false, EnemyPed, pedID)
TriggerServerEvent('missions:activateTurfWarPedBlips', currentOwner, true, true, false, EnemyPed, pedID)
enemiesQuantity = enemiesQuantity - 1
pedId = pedId + 1
end
RegisterNetEvent("missions:activateTurfWarPedBlips")
AddEventHandler("missions:activateTurfWarPedBlips", function(friendly, bool, attacker, Ped, pedID)
if bool then
if attacker then
if friendly then
local enemyBlip = AddBlipForEntity(Ped)
SetBlipSprite(enemyBlip, 1) -- 351 or 408 are both fine, 408 is just bigger
--SetBlipNameFromTextFile(enemyBlip, "AMD_BLIPN")
BeginTextCommandSetBlipName("STRING")
AddTextComponentString("Friend")
EndTextCommandSetBlipName(enemyBlip)
SetBlipScale(enemyBlip, 1.0)
SetBlipColour(enemyBlip, 2)
--table.insert(turfWarDefenderBlips, enemyBlip)
turfWarAttackerBlips[pedId] = enemyBlip
--SetBlipAlpha(enemyBlip, 120) -- blip will be semi-transparent
print("ADDING ATTACKER BLIP WITH: " .. pedID)
else
local enemyBlip = AddBlipForEntity(Ped)
SetBlipSprite(enemyBlip, 1) -- 351 or 408 are both fine, 408 is just bigger
--SetBlipNameFromTextFile(enemyBlip, "AMD_BLIPN")
BeginTextCommandSetBlipName("STRING")
AddTextComponentString("Enemy")
EndTextCommandSetBlipName(enemyBlip)
SetBlipScale(enemyBlip, 1.0)
SetBlipColour(enemyBlip, 2)
--table.insert(turfWarDefenderBlips, enemyBlip)
turfWarAttackerBlips[pedId] = enemyBlip
--SetBlipAlpha(enemyBlip, 120) -- blip will be semi-transparent
print("ADDING ATTACKER BLIP WITH: " .. pedID)
end
else
if friendly then
local enemyBlip = AddBlipForEntity(Ped)
SetBlipSprite(enemyBlip, 1) -- 351 or 408 are both fine, 408 is just bigger
--SetBlipNameFromTextFile(enemyBlip, "AMD_BLIPN")
BeginTextCommandSetBlipName("STRING")
AddTextComponentString("Friend")
EndTextCommandSetBlipName(enemyBlip)
SetBlipScale(enemyBlip, 1.0)
SetBlipColour(enemyBlip, 2)
--table.insert(turfWarDefenderBlips, enemyBlip)
turfWarDefenderBlips[pedId] = enemyBlip
--SetBlipAlpha(enemyBlip, 120) -- blip will be semi-transparent
print("ADDING DEFENDER BLIP WITH: " .. pedID)
else
local enemyBlip = AddBlipForEntity(Ped)
SetBlipSprite(enemyBlip, 1) -- 351 or 408 are both fine, 408 is just bigger
--SetBlipNameFromTextFile(enemyBlip, "AMD_BLIPN")
BeginTextCommandSetBlipName("STRING")
AddTextComponentString("Enemy")
EndTextCommandSetBlipName(enemyBlip)
SetBlipScale(enemyBlip, 1.0)
SetBlipColour(enemyBlip, 1)
--table.insert(turfWarDefenderBlips, enemyBlip)
turfWarDefenderBlips[pedId] = enemyBlip
--SetBlipAlpha(enemyBlip, 120) -- blip will be semi-transparent
print("ADDING DEFENDER BLIP WITH: " .. pedID)
end
end
else
if attacker then
RemoveBlip(turfWarAttackerBlips[pedID])
print("REMOVING FOR ALL: " .. turfWarAttackerBlips[pedID]) -- LINE 2453
else
RemoveBlip(turfWarDefenderBlips[pedId])
print("REMOVING FOR ALL: " .. turfWarDefenderBlips[pedID]) -- LINE 2456
end
end
end)
server.lua
RegisterServerEvent('missions:activateTurfWarPedBlips')
AddEventHandler('missions:activateTurfWarPedBlips', function(forWho, friendly, bool, attacker, Ped, pedid)
local _source = source
local xPlayers = ESX.GetPlayers()
if forWho == "none" then
for i=1, #xPlayers, 1 do
local xPlayer = ESX.GetPlayerFromId(xPlayers[i])
TriggerClientEvent('missions:activateTurfWarPedBlips', xPlayers[i], friendly, bool, attacker, Ped, pedid)
end
else
for i=1, #xPlayers, 1 do
local xPlayer = ESX.GetPlayerFromId(xPlayers[i])
if xPlayer.job.name == forWho then
TriggerClientEvent('missions:activateTurfWarPedBlips', xPlayers[i], friendly, bool, attacker, Ped, pedid)
end
end
end
end)
EDIT1: Okay, adding blips to the list works good now. I just put pedID instead of pedId