Можно сделать костыль к имени предмета, в который закодировать стимайди пробелами или иными символами, а потом валидировать этоЗапретишь ты выкидывать лут, ок. Нельзя будет так передать.
Ну или сделать так что бы выкинутый лут мог поднять только владелец.
А через ящик? А через перераб? И другие объекты?)
Ассоциативное хранилище, при загрузке плагина привязывать вещи к их владельцам исходя от того где они находятся (в ящике владельца дома X, в интвентаре владельца X), при перемещении проверять кто владелец. Делал когда то примерно такое:Можно сделать костыль к имени предмета, в который закодировать стимайди пробелами или иными символами, а потом валидировать это
public static class MyPropertyExtensions
{
private static readonly ConditionalWeakTable<object, Propertries> _properties = new();
public static ulong GetMyProperty(this object obj) => _properties.GetOrCreateValue(obj).Owner;
public static void SetMyProperty(this object obj, ulong value) => _properties.GetOrCreateValue(obj).Owner = value;
private class Propertries
{
public ulong Owner { get; set; }
}
}
а плагина нет готового?Ассоциативное хранилище, при загрузке плагина привязывать вещи к их владельцам исходя от того где они находятся (в ящике владельца дома X, в интвентаре владельца X), при перемещении проверять кто владелец. Делал когда то примерно такое:
C#:public static class MyPropertyExtensions { private static readonly ConditionalWeakTable<object, Propertries> _properties = new(); public static ulong GetMyProperty(this object obj) => _properties.GetOrCreateValue(obj).Owner; public static void SetMyProperty(this object obj, ulong value) => _properties.GetOrCreateValue(obj).Owner = value; private class Propertries { public ulong Owner { get; set; } } }
Можете написать мне в Дискорд, за отдельную плату договоримся.а плагина нет готового?