After recent update

We gonna waiting solution from developers this plug.

I'll send pm to Antidote bro, who drop this plugin, but he not response :(



Merged post

We have some troubles guys :)

Merged post

https://ibb.co/vYwQ4ZT

I won't be able to make a fix for this issue. The issue is on the Facepunch side. After the last update, OnProjectileAttack began to return an incorrect hitInfo.PointEnd value for entities that are mounted on moving entities. I submitted a request with this issue to Facepunch. Whether they want to fix it is a big question.

Ah1dvKLakdVzEDe.png Antidote

I won't be able to make a fix for this issue. The issue is on the Facepunch side. After the last update, OnProjectileAttack began to return an incorrect hitInfo.PointEnd value for entities that are mounted on moving entities. I submitted a request with this issue to Facepunch. Whether they want to fix it is a big question.

In any case, thank you very much for reading our post and deciding to help.

Your support is invaluable to us. Thank you.

We will wait for the update of the oxide and believe that they will fix it :3

Ah1dvKLakdVzEDe.png Antidote

I won't be able to make a fix for this issue. The issue is on the Facepunch side. After the last update, OnProjectileAttack began to return an incorrect hitInfo.PointEnd value for entities that are mounted on moving entities. I submitted a request with this issue to Facepunch. Whether they want to fix it is a big question.

Thank you for the Reply Sir. We needed at least to know where we stand. You are much appreciated. and let's hope they do!

@Antidote Is there a code snipped we can put into the plugin to check if a player is mounted and then not send those reports? 
Zaphire
@Antidote Is there a code snipped we can put into the plugin to check if a player is mounted and then not send those reports? 
That might be an idea in the meantime. Just discount everything if the player is mounted. I might have a fiddle with that. Not ideal obviously but better than nothing. 
Zaphire
@Antidote Is there a code snipped we can put into the plugin to check if a player is mounted and then not send those reports? 

Lines 1213-1232 should be replaced with the following code.

                    if (entity.GetParentEntity() != null)
                    {
                        isTargetMount = true;
                        BaseEntity targetParentEntity1 = entity.GetParentEntity();
                        targetMountParentName = targetParentEntity1.ShortPrefabName;
                    }
					else				
						if (entity.isMounted)
						{
							BaseMountable parentMount1 = entity.GetMounted(); 
							if (parentMount1 != null)
							{
								BaseEntity _parentEntity1 = parentMount1.GetParentEntity();
								if (_parentEntity1 != null)
								{
									isTargetMount = true;
									targetMountParentName = _parentEntity1.ShortPrefabName;
								}
							}
						}
						
					if (isTargetMount) return;


By the way, just now I saw that in lines 1247 and 1248 there were incorrect variable names.

Ah1dvKLakdVzEDe.png Antidote

Lines 1213-1232 should be replaced with the following code.

                    if (entity.GetParentEntity() != null)
                    {
                        isTargetMount = true;
                        BaseEntity targetParentEntity1 = entity.GetParentEntity();
                        targetMountParentName = targetParentEntity1.ShortPrefabName;
                    }
					else				
						if (entity.isMounted)
						{
							BaseMountable parentMount1 = entity.GetMounted(); 
							if (parentMount1 != null)
							{
								BaseEntity _parentEntity1 = parentMount1.GetParentEntity();
								if (_parentEntity1 != null)
								{
									isTargetMount = true;
									targetMountParentName = _parentEntity1.ShortPrefabName;
								}
							}
						}
						
					if (isTargetMount) return;

By the way, just now I saw that in lines 1247 and 1248 there were incorrect variable names.

There will be a small update of the plugin, or can I take the information from your answer?

There will be no plugin updates in the near future. The plugin will work as before if Facepunch fixes the issue on their side. The code above allows the plugin to ignore victims that are mounted on moving entities.

Ah1dvKLakdVzEDe.png Antidote

There will be no plugin updates in the near future. The plugin will work as before if Facepunch fixes the issue on their side. The code above allows the plugin to ignore victims that are mounted on moving entities.

Two questions.

1. Upon testing the code snippet fix you just sent, I got a few flags almost immediately from players who were fighting on tug boats. I would assume these must be false flags?

2. Has FP responded to your inquiry regarding having them fix it on their end, and would you like us to also push for this fix from Facepunch?

Dicky

Two questions.

1. Upon testing the code snippet fix you just sent, I got a few flags almost immediately from players who were fighting on tug boats. I would assume these must be false flags?

2. Has FP responded to your inquiry regarding having them fix it on their end, and would you like us to also push for this fix from Facepunch?

I also tested this fix on all 7 of my servers and still getting some false flags on Tugboats, how can we stop these so it only tracks on land?

Ah1dvKLakdVzEDe.png Antidote

Lines 1213-1232 should be replaced with the following code.

                    if (entity.GetParentEntity() != null)
                    {
                        isTargetMount = true;
                        BaseEntity targetParentEntity1 = entity.GetParentEntity();
                        targetMountParentName = targetParentEntity1.ShortPrefabName;
                    }
					else				
						if (entity.isMounted)
						{
							BaseMountable parentMount1 = entity.GetMounted(); 
							if (parentMount1 != null)
							{
								BaseEntity _parentEntity1 = parentMount1.GetParentEntity();
								if (_parentEntity1 != null)
								{
									isTargetMount = true;
									targetMountParentName = _parentEntity1.ShortPrefabName;
								}
							}
						}
						
					if (isTargetMount) return;

By the way, just now I saw that in lines 1247 and 1248 there were incorrect variable names.

It will not works on cargo.

I tried -

Anyway outside methods:

bool IsAnyEntityNearby(BasePlayer player, float radius, List<string> entityNames) //FixNew2Update
{
var colliders = Physics.OverlapSphere(player.transform.position, radius);
foreach (var collider in colliders)
{
var entity = collider.GetComponent<BaseEntity>();
if (entity && entityNames.Any(name => entity.ShortPrefabName.Contains(name)))
{
return true;
}
}

return false;
}
And after:
aimvd.playerEyesPosition = fp.playerEyesPosition;
aimvd.attachments = fp.attachments;

Remove:

                            if (PlayersViolations.Players.ContainsKey(attacker.userID))
                                aimvd.violationID = PlayersViolations.Players[attacker.userID].AIMViolations.Count + 1;
                            else
                                aimvd.violationID = 1;
                
                            AddAIMViolationToPlayer(attacker, aimvd);
							
			    int AIMViolationsCnt = PlayersViolations.Players[attacker.userID].AIMViolations.Count;

And add:

                        List<string> nearbyEntities = new List<string>
                        {
                            "boat", "horse", "sedancar", "modular", "snowmobile", "minicopter", "ch47", "patrolheli"
                        };

                        int AIMViolationsCnt = PlayersViolations.Players[attacker.userID].AIMViolations.Count;
                        if (
                            (target.GetParentEntity() == null || !target.isInAir || !target.isMounted ||
                             !IsAnyEntityNearby(target, 1.5f, nearbyEntities)) &&
                            (attacker.GetParentEntity() == null || !attacker.isInAir || !attacker.isMounted ||
                             !IsAnyEntityNearby(attacker, 1.5f, nearbyEntities))
                        )
                        {
                            if (PlayersViolations.Players.ContainsKey(attacker.userID))
                                aimvd.violationID = PlayersViolations.Players[attacker.userID].AIMViolations.Count + 1;
                            else aimvd.violationID = 1;

                            AddAIMViolationToPlayer(attacker, aimvd);
                        }

2 more questions regarding this response 😅

Ah1dvKLakdVzEDe.png Antidote

There will be no plugin updates in the near future. The plugin will work as before if Facepunch fixes the issue on their side. The code above allows the plugin to ignore victims that are mounted on moving entities.

I've decided to temporarily disable the plugin due to the current reliability concerns.

  1. Could you guide us on where to check for any future updates or announcements regarding this?

  2. Will you be communicating any changes in this discussion thread, or should we monitor the situation ourselves?

 

rm9PVlbPpojGFnE.jpg Dmitriy4991

It will not works on cargo.

I tried -

Anyway outside methods:

bool IsAnyEntityNearby(BasePlayer player, float radius, List<string> entityNames) //FixNew2Update
{
var colliders = Physics.OverlapSphere(player.transform.position, radius);
foreach (var collider in colliders)
{
var entity = collider.GetComponent<BaseEntity>();
if (entity && entityNames.Any(name => entity.ShortPrefabName.Contains(name)))
{
return true;
}
}

return false;
}
And after:
aimvd.playerEyesPosition = fp.playerEyesPosition;
aimvd.attachments = fp.attachments;

Remove:

                            if (PlayersViolations.Players.ContainsKey(attacker.userID))
                                aimvd.violationID = PlayersViolations.Players[attacker.userID].AIMViolations.Count + 1;
                            else
                                aimvd.violationID = 1;
                
                            AddAIMViolationToPlayer(attacker, aimvd);
							
			    int AIMViolationsCnt = PlayersViolations.Players[attacker.userID].AIMViolations.Count;

And add:

                        List<string> nearbyEntities = new List<string>
                        {
                            "boat", "horse", "sedancar", "modular", "snowmobile", "minicopter", "ch47", "patrolheli"
                        };

                        int AIMViolationsCnt = PlayersViolations.Players[attacker.userID].AIMViolations.Count;
                        if (
                            (target.GetParentEntity() == null || !target.isInAir || !target.isMounted ||
                             !IsAnyEntityNearby(target, 1.5f, nearbyEntities)) &&
                            (attacker.GetParentEntity() == null || !attacker.isInAir || !attacker.isMounted ||
                             !IsAnyEntityNearby(attacker, 1.5f, nearbyEntities))
                        )
                        {
                            if (PlayersViolations.Players.ContainsKey(attacker.userID))
                                aimvd.violationID = PlayersViolations.Players[attacker.userID].AIMViolations.Count + 1;
                            else aimvd.violationID = 1;

                            AddAIMViolationToPlayer(attacker, aimvd);
                        }

@dmitriy4991 Could you paste your working .cs file here for me? I tried making these changes you made to stop getting the false positives on cargo ship but getting errors. Would be really helpful thank you :)

 

Ah1dvKLakdVzEDe.png Antidote

There will be no plugin updates in the near future. The plugin will work as before if Facepunch fixes the issue on their side. The code above allows the plugin to ignore victims that are mounted on moving entities.


Update theme, actually, maybe after recent update somethink maybe try to fix or nothing needed?