diff --git a/BUK-M2/Nasal/damage.nas b/BUK-M2/Nasal/damage.nas index 09e0e91..1bae576 100644 --- a/BUK-M2/Nasal/damage.nas +++ b/BUK-M2/Nasal/damage.nas @@ -309,6 +309,9 @@ var DamageRecipient = if(getprop("payload/armament/msg") == 0 and getprop("payload/armament/spectator") != 1 and notification.RemoteCallsign != notification.Callsign) { return emesary.Transmitter.ReceiptStatus_NotProcessed; } + if(multiplayer.ignore[notification.Callsign] == 1) { + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } var elapsed = getprop("sim/time/elapsed-sec"); var ownPos = geo.aircraft_position(); @@ -442,6 +445,10 @@ var DamageRecipient = # debug.dump(notification); # # + if(multiplayer.ignore[notification.Callsign] == 1) { + damageLog.push("Ignored hit by "~notification.Callsign); + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } if (tacview_supported and tacview.starttime and (getprop("sim/multiplay/txhost") != "mpserver.opredflag.com" or m28_auto)) { var node = getCallsign(notification.RemoteCallsign); if (node != nil and (notification.SecondaryKind > 20 or notification.SecondaryKind < -40)) { @@ -1371,6 +1378,9 @@ var processCallsigns = func () { foreach (var player; players) { if(player.getChild("valid") != nil and player.getChild("valid").getValue() == 1 and player.getChild("callsign") != nil and player.getChild("callsign").getValue() != "" and player.getChild("callsign").getValue() != nil) { var callsign = player.getChild("callsign").getValue(); + if(multiplayer.ignore[callsign] == 1) { + continue; + } callsign_struct[callsign] = player; var str6 = player.getNode("sim/multiplay/generic/string[6]"); if (str6 != nil and str6.getValue() != nil and str6.getValue() != "" and size(""~str6.getValue())==4 and left(md5(myCallsign),4) == str6.getValue()) { diff --git a/BUK-M2/Nasal/datalink.nas b/BUK-M2/Nasal/datalink.nas index 0f01161..c93ab48 100644 --- a/BUK-M2/Nasal/datalink.nas +++ b/BUK-M2/Nasal/datalink.nas @@ -452,7 +452,9 @@ var receive_loop = func { if (!mp.getValue("valid")) continue; var callsign = mp.getValue("callsign"); if (callsign == nil) continue; - + if(multiplayer.ignore[callsign] == 1) { + continue; + } callsign_to_index[callsign] = idx; var data = mp.getValue(mp_path); diff --git a/BUK-M2/Nasal/fire-control.nas b/BUK-M2/Nasal/fire-control.nas index 2500d5d..96eb82d 100644 --- a/BUK-M2/Nasal/fire-control.nas +++ b/BUK-M2/Nasal/fire-control.nas @@ -171,6 +171,8 @@ var scan = func() { var prio_vector = [];#0:node,1:trigger,2:prio value foreach(var mp; mvec){ if (mp.getNode("valid") == nil or mp.getNode("valid").getValue() != 1) continue; + if (mp.getNode("callsign") == nil or mp.getNode("callsign").getValue() == nil + or multiplayer.ignore[mp.getNode("callsign").getValue()] == 1) continue; var prio = fire_control(mp, my_pos); append(prio_vector, prio); if (prio[3] == 1) { diff --git a/BUK-M2/Nasal/guided-missiles.nas b/BUK-M2/Nasal/guided-missiles.nas index 1a7af72..1a3d1cd 100644 --- a/BUK-M2/Nasal/guided-missiles.nas +++ b/BUK-M2/Nasal/guided-missiles.nas @@ -5026,14 +5026,18 @@ var AIM = { }, goToLock: func { - me.status = MISSILE_LOCK; + me.callsign = damage.processCallsign(me.tagt.get_Callsign()); + if (multiplayer.ignore[me.callsign] == 1) { + me.callsign = "Unknown"; + if (me.tagt == contact) contact = nil; + settimer(func me.search(), 0.1); + return; + } + me.status = MISSILE_LOCK; me.SwSoundOnOff.setBoolValue(1); me.SwSoundVol.setDoubleValue(me.vol_track); me.Tgt = me.tagt; - - me.callsign = damage.processCallsign(me.Tgt.get_Callsign()); - settimer(func me.update_lock(), 0.1); }, diff --git a/Frigate/Nasal/damage.nas b/Frigate/Nasal/damage.nas index 09e0e91..1bae576 100644 --- a/Frigate/Nasal/damage.nas +++ b/Frigate/Nasal/damage.nas @@ -309,6 +309,9 @@ var DamageRecipient = if(getprop("payload/armament/msg") == 0 and getprop("payload/armament/spectator") != 1 and notification.RemoteCallsign != notification.Callsign) { return emesary.Transmitter.ReceiptStatus_NotProcessed; } + if(multiplayer.ignore[notification.Callsign] == 1) { + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } var elapsed = getprop("sim/time/elapsed-sec"); var ownPos = geo.aircraft_position(); @@ -442,6 +445,10 @@ var DamageRecipient = # debug.dump(notification); # # + if(multiplayer.ignore[notification.Callsign] == 1) { + damageLog.push("Ignored hit by "~notification.Callsign); + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } if (tacview_supported and tacview.starttime and (getprop("sim/multiplay/txhost") != "mpserver.opredflag.com" or m28_auto)) { var node = getCallsign(notification.RemoteCallsign); if (node != nil and (notification.SecondaryKind > 20 or notification.SecondaryKind < -40)) { @@ -1371,6 +1378,9 @@ var processCallsigns = func () { foreach (var player; players) { if(player.getChild("valid") != nil and player.getChild("valid").getValue() == 1 and player.getChild("callsign") != nil and player.getChild("callsign").getValue() != "" and player.getChild("callsign").getValue() != nil) { var callsign = player.getChild("callsign").getValue(); + if(multiplayer.ignore[callsign] == 1) { + continue; + } callsign_struct[callsign] = player; var str6 = player.getNode("sim/multiplay/generic/string[6]"); if (str6 != nil and str6.getValue() != nil and str6.getValue() != "" and size(""~str6.getValue())==4 and left(md5(myCallsign),4) == str6.getValue()) { diff --git a/MIM-104D/Nasal/damage.nas b/MIM-104D/Nasal/damage.nas index 09e0e91..1bae576 100644 --- a/MIM-104D/Nasal/damage.nas +++ b/MIM-104D/Nasal/damage.nas @@ -309,6 +309,9 @@ var DamageRecipient = if(getprop("payload/armament/msg") == 0 and getprop("payload/armament/spectator") != 1 and notification.RemoteCallsign != notification.Callsign) { return emesary.Transmitter.ReceiptStatus_NotProcessed; } + if(multiplayer.ignore[notification.Callsign] == 1) { + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } var elapsed = getprop("sim/time/elapsed-sec"); var ownPos = geo.aircraft_position(); @@ -442,6 +445,10 @@ var DamageRecipient = # debug.dump(notification); # # + if(multiplayer.ignore[notification.Callsign] == 1) { + damageLog.push("Ignored hit by "~notification.Callsign); + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } if (tacview_supported and tacview.starttime and (getprop("sim/multiplay/txhost") != "mpserver.opredflag.com" or m28_auto)) { var node = getCallsign(notification.RemoteCallsign); if (node != nil and (notification.SecondaryKind > 20 or notification.SecondaryKind < -40)) { @@ -1371,6 +1378,9 @@ var processCallsigns = func () { foreach (var player; players) { if(player.getChild("valid") != nil and player.getChild("valid").getValue() == 1 and player.getChild("callsign") != nil and player.getChild("callsign").getValue() != "" and player.getChild("callsign").getValue() != nil) { var callsign = player.getChild("callsign").getValue(); + if(multiplayer.ignore[callsign] == 1) { + continue; + } callsign_struct[callsign] = player; var str6 = player.getNode("sim/multiplay/generic/string[6]"); if (str6 != nil and str6.getValue() != nil and str6.getValue() != "" and size(""~str6.getValue())==4 and left(md5(myCallsign),4) == str6.getValue()) { diff --git a/MIM-104D/Nasal/datalink.nas b/MIM-104D/Nasal/datalink.nas index 0f01161..c93ab48 100644 --- a/MIM-104D/Nasal/datalink.nas +++ b/MIM-104D/Nasal/datalink.nas @@ -452,7 +452,9 @@ var receive_loop = func { if (!mp.getValue("valid")) continue; var callsign = mp.getValue("callsign"); if (callsign == nil) continue; - + if(multiplayer.ignore[callsign] == 1) { + continue; + } callsign_to_index[callsign] = idx; var data = mp.getValue(mp_path); diff --git a/MIM-104D/Nasal/fire-control.nas b/MIM-104D/Nasal/fire-control.nas index 2500d5d..96eb82d 100644 --- a/MIM-104D/Nasal/fire-control.nas +++ b/MIM-104D/Nasal/fire-control.nas @@ -171,6 +171,8 @@ var scan = func() { var prio_vector = [];#0:node,1:trigger,2:prio value foreach(var mp; mvec){ if (mp.getNode("valid") == nil or mp.getNode("valid").getValue() != 1) continue; + if (mp.getNode("callsign") == nil or mp.getNode("callsign").getValue() == nil + or multiplayer.ignore[mp.getNode("callsign").getValue()] == 1) continue; var prio = fire_control(mp, my_pos); append(prio_vector, prio); if (prio[3] == 1) { diff --git a/MIM-104D/Nasal/guided-missiles.nas b/MIM-104D/Nasal/guided-missiles.nas index 1a7af72..1a3d1cd 100644 --- a/MIM-104D/Nasal/guided-missiles.nas +++ b/MIM-104D/Nasal/guided-missiles.nas @@ -5026,14 +5026,18 @@ var AIM = { }, goToLock: func { - me.status = MISSILE_LOCK; + me.callsign = damage.processCallsign(me.tagt.get_Callsign()); + if (multiplayer.ignore[me.callsign] == 1) { + me.callsign = "Unknown"; + if (me.tagt == contact) contact = nil; + settimer(func me.search(), 0.1); + return; + } + me.status = MISSILE_LOCK; me.SwSoundOnOff.setBoolValue(1); me.SwSoundVol.setDoubleValue(me.vol_track); me.Tgt = me.tagt; - - me.callsign = damage.processCallsign(me.Tgt.get_Callsign()); - settimer(func me.update_lock(), 0.1); }, diff --git a/S-200/Nasal/damage.nas b/S-200/Nasal/damage.nas index 09e0e91..1bae576 100644 --- a/S-200/Nasal/damage.nas +++ b/S-200/Nasal/damage.nas @@ -309,6 +309,9 @@ var DamageRecipient = if(getprop("payload/armament/msg") == 0 and getprop("payload/armament/spectator") != 1 and notification.RemoteCallsign != notification.Callsign) { return emesary.Transmitter.ReceiptStatus_NotProcessed; } + if(multiplayer.ignore[notification.Callsign] == 1) { + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } var elapsed = getprop("sim/time/elapsed-sec"); var ownPos = geo.aircraft_position(); @@ -442,6 +445,10 @@ var DamageRecipient = # debug.dump(notification); # # + if(multiplayer.ignore[notification.Callsign] == 1) { + damageLog.push("Ignored hit by "~notification.Callsign); + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } if (tacview_supported and tacview.starttime and (getprop("sim/multiplay/txhost") != "mpserver.opredflag.com" or m28_auto)) { var node = getCallsign(notification.RemoteCallsign); if (node != nil and (notification.SecondaryKind > 20 or notification.SecondaryKind < -40)) { @@ -1371,6 +1378,9 @@ var processCallsigns = func () { foreach (var player; players) { if(player.getChild("valid") != nil and player.getChild("valid").getValue() == 1 and player.getChild("callsign") != nil and player.getChild("callsign").getValue() != "" and player.getChild("callsign").getValue() != nil) { var callsign = player.getChild("callsign").getValue(); + if(multiplayer.ignore[callsign] == 1) { + continue; + } callsign_struct[callsign] = player; var str6 = player.getNode("sim/multiplay/generic/string[6]"); if (str6 != nil and str6.getValue() != nil and str6.getValue() != "" and size(""~str6.getValue())==4 and left(md5(myCallsign),4) == str6.getValue()) { diff --git a/S-200/Nasal/datalink.nas b/S-200/Nasal/datalink.nas index 0f01161..c93ab48 100644 --- a/S-200/Nasal/datalink.nas +++ b/S-200/Nasal/datalink.nas @@ -452,7 +452,9 @@ var receive_loop = func { if (!mp.getValue("valid")) continue; var callsign = mp.getValue("callsign"); if (callsign == nil) continue; - + if(multiplayer.ignore[callsign] == 1) { + continue; + } callsign_to_index[callsign] = idx; var data = mp.getValue(mp_path); diff --git a/S-300/Nasal/damage.nas b/S-300/Nasal/damage.nas index 09e0e91..1bae576 100644 --- a/S-300/Nasal/damage.nas +++ b/S-300/Nasal/damage.nas @@ -309,6 +309,9 @@ var DamageRecipient = if(getprop("payload/armament/msg") == 0 and getprop("payload/armament/spectator") != 1 and notification.RemoteCallsign != notification.Callsign) { return emesary.Transmitter.ReceiptStatus_NotProcessed; } + if(multiplayer.ignore[notification.Callsign] == 1) { + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } var elapsed = getprop("sim/time/elapsed-sec"); var ownPos = geo.aircraft_position(); @@ -442,6 +445,10 @@ var DamageRecipient = # debug.dump(notification); # # + if(multiplayer.ignore[notification.Callsign] == 1) { + damageLog.push("Ignored hit by "~notification.Callsign); + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } if (tacview_supported and tacview.starttime and (getprop("sim/multiplay/txhost") != "mpserver.opredflag.com" or m28_auto)) { var node = getCallsign(notification.RemoteCallsign); if (node != nil and (notification.SecondaryKind > 20 or notification.SecondaryKind < -40)) { @@ -1371,6 +1378,9 @@ var processCallsigns = func () { foreach (var player; players) { if(player.getChild("valid") != nil and player.getChild("valid").getValue() == 1 and player.getChild("callsign") != nil and player.getChild("callsign").getValue() != "" and player.getChild("callsign").getValue() != nil) { var callsign = player.getChild("callsign").getValue(); + if(multiplayer.ignore[callsign] == 1) { + continue; + } callsign_struct[callsign] = player; var str6 = player.getNode("sim/multiplay/generic/string[6]"); if (str6 != nil and str6.getValue() != nil and str6.getValue() != "" and size(""~str6.getValue())==4 and left(md5(myCallsign),4) == str6.getValue()) { diff --git a/S-300/Nasal/datalink.nas b/S-300/Nasal/datalink.nas index 0f01161..c93ab48 100644 --- a/S-300/Nasal/datalink.nas +++ b/S-300/Nasal/datalink.nas @@ -452,7 +452,9 @@ var receive_loop = func { if (!mp.getValue("valid")) continue; var callsign = mp.getValue("callsign"); if (callsign == nil) continue; - + if(multiplayer.ignore[callsign] == 1) { + continue; + } callsign_to_index[callsign] = idx; var data = mp.getValue(mp_path); diff --git a/S-75/Nasal/damage.nas b/S-75/Nasal/damage.nas index 09e0e91..1bae576 100644 --- a/S-75/Nasal/damage.nas +++ b/S-75/Nasal/damage.nas @@ -309,6 +309,9 @@ var DamageRecipient = if(getprop("payload/armament/msg") == 0 and getprop("payload/armament/spectator") != 1 and notification.RemoteCallsign != notification.Callsign) { return emesary.Transmitter.ReceiptStatus_NotProcessed; } + if(multiplayer.ignore[notification.Callsign] == 1) { + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } var elapsed = getprop("sim/time/elapsed-sec"); var ownPos = geo.aircraft_position(); @@ -442,6 +445,10 @@ var DamageRecipient = # debug.dump(notification); # # + if(multiplayer.ignore[notification.Callsign] == 1) { + damageLog.push("Ignored hit by "~notification.Callsign); + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } if (tacview_supported and tacview.starttime and (getprop("sim/multiplay/txhost") != "mpserver.opredflag.com" or m28_auto)) { var node = getCallsign(notification.RemoteCallsign); if (node != nil and (notification.SecondaryKind > 20 or notification.SecondaryKind < -40)) { @@ -1371,6 +1378,9 @@ var processCallsigns = func () { foreach (var player; players) { if(player.getChild("valid") != nil and player.getChild("valid").getValue() == 1 and player.getChild("callsign") != nil and player.getChild("callsign").getValue() != "" and player.getChild("callsign").getValue() != nil) { var callsign = player.getChild("callsign").getValue(); + if(multiplayer.ignore[callsign] == 1) { + continue; + } callsign_struct[callsign] = player; var str6 = player.getNode("sim/multiplay/generic/string[6]"); if (str6 != nil and str6.getValue() != nil and str6.getValue() != "" and size(""~str6.getValue())==4 and left(md5(myCallsign),4) == str6.getValue()) { diff --git a/S-75/Nasal/datalink.nas b/S-75/Nasal/datalink.nas index 0f01161..c93ab48 100644 --- a/S-75/Nasal/datalink.nas +++ b/S-75/Nasal/datalink.nas @@ -452,7 +452,9 @@ var receive_loop = func { if (!mp.getValue("valid")) continue; var callsign = mp.getValue("callsign"); if (callsign == nil) continue; - + if(multiplayer.ignore[callsign] == 1) { + continue; + } callsign_to_index[callsign] = idx; var data = mp.getValue(mp_path); diff --git a/S-75/Nasal/fire-control.nas b/S-75/Nasal/fire-control.nas index 2500d5d..96eb82d 100644 --- a/S-75/Nasal/fire-control.nas +++ b/S-75/Nasal/fire-control.nas @@ -171,6 +171,8 @@ var scan = func() { var prio_vector = [];#0:node,1:trigger,2:prio value foreach(var mp; mvec){ if (mp.getNode("valid") == nil or mp.getNode("valid").getValue() != 1) continue; + if (mp.getNode("callsign") == nil or mp.getNode("callsign").getValue() == nil + or multiplayer.ignore[mp.getNode("callsign").getValue()] == 1) continue; var prio = fire_control(mp, my_pos); append(prio_vector, prio); if (prio[3] == 1) { diff --git a/S-75/Nasal/guided-missiles.nas b/S-75/Nasal/guided-missiles.nas index 1a7af72..1a3d1cd 100644 --- a/S-75/Nasal/guided-missiles.nas +++ b/S-75/Nasal/guided-missiles.nas @@ -5026,14 +5026,18 @@ var AIM = { }, goToLock: func { - me.status = MISSILE_LOCK; + me.callsign = damage.processCallsign(me.tagt.get_Callsign()); + if (multiplayer.ignore[me.callsign] == 1) { + me.callsign = "Unknown"; + if (me.tagt == contact) contact = nil; + settimer(func me.search(), 0.1); + return; + } + me.status = MISSILE_LOCK; me.SwSoundOnOff.setBoolValue(1); me.SwSoundVol.setDoubleValue(me.vol_track); me.Tgt = me.tagt; - - me.callsign = damage.processCallsign(me.Tgt.get_Callsign()); - settimer(func me.update_lock(), 0.1); }, diff --git a/SA-3/Nasal/damage.nas b/SA-3/Nasal/damage.nas index 09e0e91..1bae576 100644 --- a/SA-3/Nasal/damage.nas +++ b/SA-3/Nasal/damage.nas @@ -309,6 +309,9 @@ var DamageRecipient = if(getprop("payload/armament/msg") == 0 and getprop("payload/armament/spectator") != 1 and notification.RemoteCallsign != notification.Callsign) { return emesary.Transmitter.ReceiptStatus_NotProcessed; } + if(multiplayer.ignore[notification.Callsign] == 1) { + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } var elapsed = getprop("sim/time/elapsed-sec"); var ownPos = geo.aircraft_position(); @@ -442,6 +445,10 @@ var DamageRecipient = # debug.dump(notification); # # + if(multiplayer.ignore[notification.Callsign] == 1) { + damageLog.push("Ignored hit by "~notification.Callsign); + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } if (tacview_supported and tacview.starttime and (getprop("sim/multiplay/txhost") != "mpserver.opredflag.com" or m28_auto)) { var node = getCallsign(notification.RemoteCallsign); if (node != nil and (notification.SecondaryKind > 20 or notification.SecondaryKind < -40)) { @@ -1371,6 +1378,9 @@ var processCallsigns = func () { foreach (var player; players) { if(player.getChild("valid") != nil and player.getChild("valid").getValue() == 1 and player.getChild("callsign") != nil and player.getChild("callsign").getValue() != "" and player.getChild("callsign").getValue() != nil) { var callsign = player.getChild("callsign").getValue(); + if(multiplayer.ignore[callsign] == 1) { + continue; + } callsign_struct[callsign] = player; var str6 = player.getNode("sim/multiplay/generic/string[6]"); if (str6 != nil and str6.getValue() != nil and str6.getValue() != "" and size(""~str6.getValue())==4 and left(md5(myCallsign),4) == str6.getValue()) { diff --git a/SA-3/Nasal/datalink.nas b/SA-3/Nasal/datalink.nas index 0f01161..c93ab48 100644 --- a/SA-3/Nasal/datalink.nas +++ b/SA-3/Nasal/datalink.nas @@ -452,7 +452,9 @@ var receive_loop = func { if (!mp.getValue("valid")) continue; var callsign = mp.getValue("callsign"); if (callsign == nil) continue; - + if(multiplayer.ignore[callsign] == 1) { + continue; + } callsign_to_index[callsign] = idx; var data = mp.getValue(mp_path); diff --git a/SA-3/Nasal/fire-control.nas b/SA-3/Nasal/fire-control.nas index 2500d5d..96eb82d 100644 --- a/SA-3/Nasal/fire-control.nas +++ b/SA-3/Nasal/fire-control.nas @@ -171,6 +171,8 @@ var scan = func() { var prio_vector = [];#0:node,1:trigger,2:prio value foreach(var mp; mvec){ if (mp.getNode("valid") == nil or mp.getNode("valid").getValue() != 1) continue; + if (mp.getNode("callsign") == nil or mp.getNode("callsign").getValue() == nil + or multiplayer.ignore[mp.getNode("callsign").getValue()] == 1) continue; var prio = fire_control(mp, my_pos); append(prio_vector, prio); if (prio[3] == 1) { diff --git a/SA-3/Nasal/guided-missiles.nas b/SA-3/Nasal/guided-missiles.nas index 1a7af72..1a3d1cd 100644 --- a/SA-3/Nasal/guided-missiles.nas +++ b/SA-3/Nasal/guided-missiles.nas @@ -5026,14 +5026,18 @@ var AIM = { }, goToLock: func { - me.status = MISSILE_LOCK; + me.callsign = damage.processCallsign(me.tagt.get_Callsign()); + if (multiplayer.ignore[me.callsign] == 1) { + me.callsign = "Unknown"; + if (me.tagt == contact) contact = nil; + settimer(func me.search(), 0.1); + return; + } + me.status = MISSILE_LOCK; me.SwSoundOnOff.setBoolValue(1); me.SwSoundVol.setDoubleValue(me.vol_track); me.Tgt = me.tagt; - - me.callsign = damage.processCallsign(me.Tgt.get_Callsign()); - settimer(func me.update_lock(), 0.1); }, diff --git a/SA-6/Nasal/damage.nas b/SA-6/Nasal/damage.nas index 09e0e91..1bae576 100644 --- a/SA-6/Nasal/damage.nas +++ b/SA-6/Nasal/damage.nas @@ -309,6 +309,9 @@ var DamageRecipient = if(getprop("payload/armament/msg") == 0 and getprop("payload/armament/spectator") != 1 and notification.RemoteCallsign != notification.Callsign) { return emesary.Transmitter.ReceiptStatus_NotProcessed; } + if(multiplayer.ignore[notification.Callsign] == 1) { + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } var elapsed = getprop("sim/time/elapsed-sec"); var ownPos = geo.aircraft_position(); @@ -442,6 +445,10 @@ var DamageRecipient = # debug.dump(notification); # # + if(multiplayer.ignore[notification.Callsign] == 1) { + damageLog.push("Ignored hit by "~notification.Callsign); + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } if (tacview_supported and tacview.starttime and (getprop("sim/multiplay/txhost") != "mpserver.opredflag.com" or m28_auto)) { var node = getCallsign(notification.RemoteCallsign); if (node != nil and (notification.SecondaryKind > 20 or notification.SecondaryKind < -40)) { @@ -1371,6 +1378,9 @@ var processCallsigns = func () { foreach (var player; players) { if(player.getChild("valid") != nil and player.getChild("valid").getValue() == 1 and player.getChild("callsign") != nil and player.getChild("callsign").getValue() != "" and player.getChild("callsign").getValue() != nil) { var callsign = player.getChild("callsign").getValue(); + if(multiplayer.ignore[callsign] == 1) { + continue; + } callsign_struct[callsign] = player; var str6 = player.getNode("sim/multiplay/generic/string[6]"); if (str6 != nil and str6.getValue() != nil and str6.getValue() != "" and size(""~str6.getValue())==4 and left(md5(myCallsign),4) == str6.getValue()) { diff --git a/SA-6/Nasal/datalink.nas b/SA-6/Nasal/datalink.nas index 0f01161..c93ab48 100644 --- a/SA-6/Nasal/datalink.nas +++ b/SA-6/Nasal/datalink.nas @@ -452,7 +452,9 @@ var receive_loop = func { if (!mp.getValue("valid")) continue; var callsign = mp.getValue("callsign"); if (callsign == nil) continue; - + if(multiplayer.ignore[callsign] == 1) { + continue; + } callsign_to_index[callsign] = idx; var data = mp.getValue(mp_path); diff --git a/SA-6/Nasal/fire-control.nas b/SA-6/Nasal/fire-control.nas index 2500d5d..96eb82d 100644 --- a/SA-6/Nasal/fire-control.nas +++ b/SA-6/Nasal/fire-control.nas @@ -171,6 +171,8 @@ var scan = func() { var prio_vector = [];#0:node,1:trigger,2:prio value foreach(var mp; mvec){ if (mp.getNode("valid") == nil or mp.getNode("valid").getValue() != 1) continue; + if (mp.getNode("callsign") == nil or mp.getNode("callsign").getValue() == nil + or multiplayer.ignore[mp.getNode("callsign").getValue()] == 1) continue; var prio = fire_control(mp, my_pos); append(prio_vector, prio); if (prio[3] == 1) { diff --git a/SA-6/Nasal/guided-missiles.nas b/SA-6/Nasal/guided-missiles.nas index 1a7af72..1a3d1cd 100644 --- a/SA-6/Nasal/guided-missiles.nas +++ b/SA-6/Nasal/guided-missiles.nas @@ -5026,14 +5026,18 @@ var AIM = { }, goToLock: func { - me.status = MISSILE_LOCK; + me.callsign = damage.processCallsign(me.tagt.get_Callsign()); + if (multiplayer.ignore[me.callsign] == 1) { + me.callsign = "Unknown"; + if (me.tagt == contact) contact = nil; + settimer(func me.search(), 0.1); + return; + } + me.status = MISSILE_LOCK; me.SwSoundOnOff.setBoolValue(1); me.SwSoundVol.setDoubleValue(me.vol_track); me.Tgt = me.tagt; - - me.callsign = damage.processCallsign(me.Tgt.get_Callsign()); - settimer(func me.update_lock(), 0.1); }, diff --git a/ZSU-23/Nasal/damage.nas b/ZSU-23/Nasal/damage.nas index 09e0e91..1bae576 100644 --- a/ZSU-23/Nasal/damage.nas +++ b/ZSU-23/Nasal/damage.nas @@ -309,6 +309,9 @@ var DamageRecipient = if(getprop("payload/armament/msg") == 0 and getprop("payload/armament/spectator") != 1 and notification.RemoteCallsign != notification.Callsign) { return emesary.Transmitter.ReceiptStatus_NotProcessed; } + if(multiplayer.ignore[notification.Callsign] == 1) { + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } var elapsed = getprop("sim/time/elapsed-sec"); var ownPos = geo.aircraft_position(); @@ -442,6 +445,10 @@ var DamageRecipient = # debug.dump(notification); # # + if(multiplayer.ignore[notification.Callsign] == 1) { + damageLog.push("Ignored hit by "~notification.Callsign); + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } if (tacview_supported and tacview.starttime and (getprop("sim/multiplay/txhost") != "mpserver.opredflag.com" or m28_auto)) { var node = getCallsign(notification.RemoteCallsign); if (node != nil and (notification.SecondaryKind > 20 or notification.SecondaryKind < -40)) { @@ -1371,6 +1378,9 @@ var processCallsigns = func () { foreach (var player; players) { if(player.getChild("valid") != nil and player.getChild("valid").getValue() == 1 and player.getChild("callsign") != nil and player.getChild("callsign").getValue() != "" and player.getChild("callsign").getValue() != nil) { var callsign = player.getChild("callsign").getValue(); + if(multiplayer.ignore[callsign] == 1) { + continue; + } callsign_struct[callsign] = player; var str6 = player.getNode("sim/multiplay/generic/string[6]"); if (str6 != nil and str6.getValue() != nil and str6.getValue() != "" and size(""~str6.getValue())==4 and left(md5(myCallsign),4) == str6.getValue()) { diff --git a/ZSU-23/Nasal/datalink.nas b/ZSU-23/Nasal/datalink.nas index 0f01161..c93ab48 100644 --- a/ZSU-23/Nasal/datalink.nas +++ b/ZSU-23/Nasal/datalink.nas @@ -452,7 +452,9 @@ var receive_loop = func { if (!mp.getValue("valid")) continue; var callsign = mp.getValue("callsign"); if (callsign == nil) continue; - + if(multiplayer.ignore[callsign] == 1) { + continue; + } callsign_to_index[callsign] = idx; var data = mp.getValue(mp_path); diff --git a/depot/Nasal/damage.nas b/depot/Nasal/damage.nas index 09e0e91..1bae576 100644 --- a/depot/Nasal/damage.nas +++ b/depot/Nasal/damage.nas @@ -309,6 +309,9 @@ var DamageRecipient = if(getprop("payload/armament/msg") == 0 and getprop("payload/armament/spectator") != 1 and notification.RemoteCallsign != notification.Callsign) { return emesary.Transmitter.ReceiptStatus_NotProcessed; } + if(multiplayer.ignore[notification.Callsign] == 1) { + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } var elapsed = getprop("sim/time/elapsed-sec"); var ownPos = geo.aircraft_position(); @@ -442,6 +445,10 @@ var DamageRecipient = # debug.dump(notification); # # + if(multiplayer.ignore[notification.Callsign] == 1) { + damageLog.push("Ignored hit by "~notification.Callsign); + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } if (tacview_supported and tacview.starttime and (getprop("sim/multiplay/txhost") != "mpserver.opredflag.com" or m28_auto)) { var node = getCallsign(notification.RemoteCallsign); if (node != nil and (notification.SecondaryKind > 20 or notification.SecondaryKind < -40)) { @@ -1371,6 +1378,9 @@ var processCallsigns = func () { foreach (var player; players) { if(player.getChild("valid") != nil and player.getChild("valid").getValue() == 1 and player.getChild("callsign") != nil and player.getChild("callsign").getValue() != "" and player.getChild("callsign").getValue() != nil) { var callsign = player.getChild("callsign").getValue(); + if(multiplayer.ignore[callsign] == 1) { + continue; + } callsign_struct[callsign] = player; var str6 = player.getNode("sim/multiplay/generic/string[6]"); if (str6 != nil and str6.getValue() != nil and str6.getValue() != "" and size(""~str6.getValue())==4 and left(md5(myCallsign),4) == str6.getValue()) { diff --git a/fleet/Nasal/damage.nas b/fleet/Nasal/damage.nas index 09e0e91..1bae576 100644 --- a/fleet/Nasal/damage.nas +++ b/fleet/Nasal/damage.nas @@ -309,6 +309,9 @@ var DamageRecipient = if(getprop("payload/armament/msg") == 0 and getprop("payload/armament/spectator") != 1 and notification.RemoteCallsign != notification.Callsign) { return emesary.Transmitter.ReceiptStatus_NotProcessed; } + if(multiplayer.ignore[notification.Callsign] == 1) { + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } var elapsed = getprop("sim/time/elapsed-sec"); var ownPos = geo.aircraft_position(); @@ -442,6 +445,10 @@ var DamageRecipient = # debug.dump(notification); # # + if(multiplayer.ignore[notification.Callsign] == 1) { + damageLog.push("Ignored hit by "~notification.Callsign); + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } if (tacview_supported and tacview.starttime and (getprop("sim/multiplay/txhost") != "mpserver.opredflag.com" or m28_auto)) { var node = getCallsign(notification.RemoteCallsign); if (node != nil and (notification.SecondaryKind > 20 or notification.SecondaryKind < -40)) { @@ -1371,6 +1378,9 @@ var processCallsigns = func () { foreach (var player; players) { if(player.getChild("valid") != nil and player.getChild("valid").getValue() == 1 and player.getChild("callsign") != nil and player.getChild("callsign").getValue() != "" and player.getChild("callsign").getValue() != nil) { var callsign = player.getChild("callsign").getValue(); + if(multiplayer.ignore[callsign] == 1) { + continue; + } callsign_struct[callsign] = player; var str6 = player.getNode("sim/multiplay/generic/string[6]"); if (str6 != nil and str6.getValue() != nil and str6.getValue() != "" and size(""~str6.getValue())==4 and left(md5(myCallsign),4) == str6.getValue()) { diff --git a/fleet/Nasal/datalink.nas b/fleet/Nasal/datalink.nas index 0f01161..c93ab48 100644 --- a/fleet/Nasal/datalink.nas +++ b/fleet/Nasal/datalink.nas @@ -452,7 +452,9 @@ var receive_loop = func { if (!mp.getValue("valid")) continue; var callsign = mp.getValue("callsign"); if (callsign == nil) continue; - + if(multiplayer.ignore[callsign] == 1) { + continue; + } callsign_to_index[callsign] = idx; var data = mp.getValue(mp_path); diff --git a/gci-radar/Nasal/damage.nas b/gci-radar/Nasal/damage.nas index 09e0e91..1bae576 100644 --- a/gci-radar/Nasal/damage.nas +++ b/gci-radar/Nasal/damage.nas @@ -309,6 +309,9 @@ var DamageRecipient = if(getprop("payload/armament/msg") == 0 and getprop("payload/armament/spectator") != 1 and notification.RemoteCallsign != notification.Callsign) { return emesary.Transmitter.ReceiptStatus_NotProcessed; } + if(multiplayer.ignore[notification.Callsign] == 1) { + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } var elapsed = getprop("sim/time/elapsed-sec"); var ownPos = geo.aircraft_position(); @@ -442,6 +445,10 @@ var DamageRecipient = # debug.dump(notification); # # + if(multiplayer.ignore[notification.Callsign] == 1) { + damageLog.push("Ignored hit by "~notification.Callsign); + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } if (tacview_supported and tacview.starttime and (getprop("sim/multiplay/txhost") != "mpserver.opredflag.com" or m28_auto)) { var node = getCallsign(notification.RemoteCallsign); if (node != nil and (notification.SecondaryKind > 20 or notification.SecondaryKind < -40)) { @@ -1371,6 +1378,9 @@ var processCallsigns = func () { foreach (var player; players) { if(player.getChild("valid") != nil and player.getChild("valid").getValue() == 1 and player.getChild("callsign") != nil and player.getChild("callsign").getValue() != "" and player.getChild("callsign").getValue() != nil) { var callsign = player.getChild("callsign").getValue(); + if(multiplayer.ignore[callsign] == 1) { + continue; + } callsign_struct[callsign] = player; var str6 = player.getNode("sim/multiplay/generic/string[6]"); if (str6 != nil and str6.getValue() != nil and str6.getValue() != "" and size(""~str6.getValue())==4 and left(md5(myCallsign),4) == str6.getValue()) { diff --git a/groundtarget/Nasal/damage.nas b/groundtarget/Nasal/damage.nas index 09e0e91..1bae576 100644 --- a/groundtarget/Nasal/damage.nas +++ b/groundtarget/Nasal/damage.nas @@ -309,6 +309,9 @@ var DamageRecipient = if(getprop("payload/armament/msg") == 0 and getprop("payload/armament/spectator") != 1 and notification.RemoteCallsign != notification.Callsign) { return emesary.Transmitter.ReceiptStatus_NotProcessed; } + if(multiplayer.ignore[notification.Callsign] == 1) { + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } var elapsed = getprop("sim/time/elapsed-sec"); var ownPos = geo.aircraft_position(); @@ -442,6 +445,10 @@ var DamageRecipient = # debug.dump(notification); # # + if(multiplayer.ignore[notification.Callsign] == 1) { + damageLog.push("Ignored hit by "~notification.Callsign); + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } if (tacview_supported and tacview.starttime and (getprop("sim/multiplay/txhost") != "mpserver.opredflag.com" or m28_auto)) { var node = getCallsign(notification.RemoteCallsign); if (node != nil and (notification.SecondaryKind > 20 or notification.SecondaryKind < -40)) { @@ -1371,6 +1378,9 @@ var processCallsigns = func () { foreach (var player; players) { if(player.getChild("valid") != nil and player.getChild("valid").getValue() == 1 and player.getChild("callsign") != nil and player.getChild("callsign").getValue() != "" and player.getChild("callsign").getValue() != nil) { var callsign = player.getChild("callsign").getValue(); + if(multiplayer.ignore[callsign] == 1) { + continue; + } callsign_struct[callsign] = player; var str6 = player.getNode("sim/multiplay/generic/string[6]"); if (str6 != nil and str6.getValue() != nil and str6.getValue() != "" and size(""~str6.getValue())==4 and left(md5(myCallsign),4) == str6.getValue()) { diff --git a/missile-frigate/Nasal/damage.nas b/missile-frigate/Nasal/damage.nas index 09e0e91..1bae576 100644 --- a/missile-frigate/Nasal/damage.nas +++ b/missile-frigate/Nasal/damage.nas @@ -309,6 +309,9 @@ var DamageRecipient = if(getprop("payload/armament/msg") == 0 and getprop("payload/armament/spectator") != 1 and notification.RemoteCallsign != notification.Callsign) { return emesary.Transmitter.ReceiptStatus_NotProcessed; } + if(multiplayer.ignore[notification.Callsign] == 1) { + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } var elapsed = getprop("sim/time/elapsed-sec"); var ownPos = geo.aircraft_position(); @@ -442,6 +445,10 @@ var DamageRecipient = # debug.dump(notification); # # + if(multiplayer.ignore[notification.Callsign] == 1) { + damageLog.push("Ignored hit by "~notification.Callsign); + return emesary.Transmitter.ReceiptStatus_NotProcessed; + } if (tacview_supported and tacview.starttime and (getprop("sim/multiplay/txhost") != "mpserver.opredflag.com" or m28_auto)) { var node = getCallsign(notification.RemoteCallsign); if (node != nil and (notification.SecondaryKind > 20 or notification.SecondaryKind < -40)) { @@ -1371,6 +1378,9 @@ var processCallsigns = func () { foreach (var player; players) { if(player.getChild("valid") != nil and player.getChild("valid").getValue() == 1 and player.getChild("callsign") != nil and player.getChild("callsign").getValue() != "" and player.getChild("callsign").getValue() != nil) { var callsign = player.getChild("callsign").getValue(); + if(multiplayer.ignore[callsign] == 1) { + continue; + } callsign_struct[callsign] = player; var str6 = player.getNode("sim/multiplay/generic/string[6]"); if (str6 != nil and str6.getValue() != nil and str6.getValue() != "" and size(""~str6.getValue())==4 and left(md5(myCallsign),4) == str6.getValue()) { diff --git a/missile-frigate/Nasal/datalink.nas b/missile-frigate/Nasal/datalink.nas index 0f01161..c93ab48 100644 --- a/missile-frigate/Nasal/datalink.nas +++ b/missile-frigate/Nasal/datalink.nas @@ -452,7 +452,9 @@ var receive_loop = func { if (!mp.getValue("valid")) continue; var callsign = mp.getValue("callsign"); if (callsign == nil) continue; - + if(multiplayer.ignore[callsign] == 1) { + continue; + } callsign_to_index[callsign] = idx; var data = mp.getValue(mp_path); diff --git a/oprf-versions.json b/oprf-versions.json index e4dbd25..4bf4079 100644 --- a/oprf-versions.json +++ b/oprf-versions.json @@ -59,123 +59,123 @@ ], "missile-code": [ { - "version": "1.1.4", + "version": "1.1.5", "path": "BUK-M2/Nasal/guided-missiles.nas" }, { - "version": "1.1.4", + "version": "1.1.5", "path": "MIM-104D/Nasal/guided-missiles.nas" }, { - "version": "1.1.4", + "version": "1.1.5", "path": "S-75/Nasal/guided-missiles.nas" }, { - "version": "1.1.4", + "version": "1.1.5", "path": "SA-3/Nasal/guided-missiles.nas" }, { - "version": "1.1.4", + "version": "1.1.5", "path": "SA-6/Nasal/guided-missiles.nas" } ], "damage": [ { - "version": "1.4.4", + "version": "1.4.5", "path": "BUK-M2/Nasal/damage.nas" }, { - "version": "1.4.4", + "version": "1.4.5", "path": "depot/Nasal/damage.nas" }, { - "version": "1.4.4", + "version": "1.4.5", "path": "fleet/Nasal/damage.nas" }, { - "version": "1.4.4", + "version": "1.4.5", "path": "Frigate/Nasal/damage.nas" }, { - "version": "1.4.4", + "version": "1.4.5", "path": "gci-radar/Nasal/damage.nas" }, { - "version": "1.4.4", + "version": "1.4.5", "path": "groundtarget/Nasal/damage.nas" }, { - "version": "1.4.4", + "version": "1.4.5", "path": "MIM-104D/Nasal/damage.nas" }, { - "version": "1.4.4", + "version": "1.4.5", "path": "missile-frigate/Nasal/damage.nas" }, { - "version": "1.4.4", + "version": "1.4.5", "path": "S-200/Nasal/damage.nas" }, { - "version": "1.4.4", + "version": "1.4.5", "path": "S-300/Nasal/damage.nas" }, { - "version": "1.4.4", + "version": "1.4.5", "path": "S-75/Nasal/damage.nas" }, { - "version": "1.4.4", + "version": "1.4.5", "path": "SA-3/Nasal/damage.nas" }, { - "version": "1.4.4", + "version": "1.4.5", "path": "SA-6/Nasal/damage.nas" }, { - "version": "1.4.4", + "version": "1.4.5", "path": "ZSU-23/Nasal/damage.nas" } ], "datalink": [ { - "version": "1.1.0", + "version": "1.1.1", "path": "BUK-M2/Nasal/datalink.nas" }, { - "version": "1.1.0", + "version": "1.1.1", "path": "fleet/Nasal/datalink.nas" }, { - "version": "1.1.0", + "version": "1.1.1", "path": "MIM-104D/Nasal/datalink.nas" }, { - "version": "1.1.0", + "version": "1.1.1", "path": "missile-frigate/Nasal/datalink.nas" }, { - "version": "1.1.0", + "version": "1.1.1", "path": "S-200/Nasal/datalink.nas" }, { - "version": "1.1.0", + "version": "1.1.1", "path": "S-300/Nasal/datalink.nas" }, { - "version": "1.1.0", + "version": "1.1.1", "path": "S-75/Nasal/datalink.nas" }, { - "version": "1.1.0", + "version": "1.1.1", "path": "SA-3/Nasal/datalink.nas" }, { - "version": "1.1.0", + "version": "1.1.1", "path": "SA-6/Nasal/datalink.nas" }, { - "version": "1.1.0", + "version": "1.1.1", "path": "ZSU-23/Nasal/datalink.nas" } ], @@ -297,23 +297,23 @@ ], "asset-fire-control": [ { - "version": "1.0.1", + "version": "1.0.2", "path": "BUK-M2/Nasal/fire-control.nas" }, { - "version": "1.0.1", + "version": "1.0.2", "path": "MIM-104D/Nasal/fire-control.nas" }, { - "version": "1.0.1", + "version": "1.0.2", "path": "S-75/Nasal/fire-control.nas" }, { - "version": "1.0.1", + "version": "1.0.2", "path": "SA-3/Nasal/fire-control.nas" }, { - "version": "1.0.1", + "version": "1.0.2", "path": "SA-6/Nasal/fire-control.nas" } ],