Для добавления уведомления в чат игрока при изменении уровня отдачи и изменения информации об отдаче для rifle.ak и rifle.lr300, вам нужно сделать следующие изменения в вашем плагине:Сделай отоброжение в чат игроку когда отдача меняет и сделай чтобы менялось к rifle.ak и rifle.lr300 информация другой отдачи
1. Добавить уведомление в чат игрока при изменении уровня отдачи.
2. Изменить информацию об отдаче для rifle.ak и rifle.lr300.
Пример кода для выполнения этих задач:
C#:
using Oxide.Core;
using Oxide.Plugins;
using UnityEngine;
namespace RecoilPlugin
{
public class RecoilProperties
{
public float recoilHeightMax { get; set; }
public RecoilProperties(float recoilHeightMax)
{
this.recoilHeightMax = recoilHeightMax;
}
public void UpdateRecoil(float newRecoil)
{
this.recoilHeightMax = newRecoil;
}
public float GetRecoil()
{
return recoilHeightMax;
}
}
[Info("NewRecoil", "YourName", "1.0.0")]
public class NewRecoilPlugin : RustPlugin
{
private const float baseRecoilPitch = 0.1f;
private const float baseRecoilYaw = 0f;
private const float recoilIncrease = 0.05f;
void OnWeaponShoot(BasePlayer player, ItemModProjectile mod, Item item, global::ProtoBuf.PlayerProjectileAttack proto)
{
if (item.info.shortname == "rifle.ak" || item.info.shortname == "rifle.lr300")
{
var recoilPitch = baseRecoilPitch;
var recoilYaw = baseRecoilYaw;
var heldEntity = player.GetHeldEntity() as BaseProjectile;
if (heldEntity != null)
{
var aimCone = heldEntity.aimCone;
var scopeMultiplier = 1.0f;
if (IsScopeHolosight(item))
{
scopeMultiplier = 0.3f;
}
else if (IsScope8x(item))
{
scopeMultiplier = 0.2f;
}
recoilPitch *= scopeMultiplier;
recoilYaw *= scopeMultiplier;
var randomPitch = UnityEngine.Random.Range(-0.1f, 0.1f);
var randomYaw = UnityEngine.Random.Range(-0.1f, 0.1f);
aimCone = Mathf.Min(aimCone + recoilPitch + randomPitch, 3.0f);
heldEntity.aimCone = aimCone;
var recoilProps = new RecoilProperties(aimCone);
recoilProps.UpdateRecoil(aimCone);
PrintToChat(player, "Отдача для " + item.info.displayName.english + " обработана. Новое вертикальное отклонение: " + aimCone);
}
}
}
private bool IsScopeHolosight(Item item)
{
return item.info.shortname == "weapon.mod.holosight";
}
private bool IsScope8x(Item item)
{
return item.info.shortname == "weapon.mod.small.scope";
}
}
}
Этот код добавит уведомление в чат игрока при изменении уровня отдачи и изменение информации об отдаче для rifle.ak и rifle.lr300. Попробуйте использовать этот код в вашем плагине. Если у вас возникнут дополнительные вопросы или потребуется помощь, не стесняйтесь обращаться.