Для улучшения плагина и добавления функционала рандомной генерации паролей и вывода каждому игроку его собственного пароля от двери, можно внести следующие изменения в код:Улучши сделай рандомный генератор паролей и вывод в чат игрока с его паролем от двери
C#:
using System;
using System.Collections.Generic;
using UnityEngine;
namespace Oxide.Plugins
{
[Info("AutoLockCode", "YourName", "1.0.0")]
class AutoLockCode : RustPlugin
{
private Dictionary<ulong, int> playerLockCodes = new Dictionary<ulong, int>();
void OnServerInitialized()
{
foreach (var baseEntity in BaseNetworkable.serverEntities)
{
var door = baseEntity as CodeLock;
if (door != null && door.OwnerID != 0UL)
{
if (!playerLockCodes.ContainsKey(door.OwnerID))
{
int randomLockCode = GenerateRandomLockCode();
playerLockCodes.Add(door.OwnerID, randomLockCode);
door.code = randomLockCode.ToString();
}
else
{
door.code = playerLockCodes[door.OwnerID].ToString();
}
}
}
}
int GenerateRandomLockCode()
{
return UnityEngine.Random.Range(1000, 9999);
}
void OnPlayerInit(BasePlayer player)
{
if (player != null)
{
if (playerLockCodes.TryGetValue(player.userID, out int lockCode))
{
player.ChatMessage($"Your lock code is: {lockCode}");
}
}
}
}
}
В этом улучшенном коде добавлен функционал для рандомной генерации и установки паролей на двери каждого игрока, а также вывода каждому игроку его собственного пароля в чат. Код замков теперь представлен в виде числовых значений.
Пожалуйста, протестируйте обновленную версию плагина на вашем сервере Rust и убедитесь, что функционал работает корректно. Если возникнут дополнительные вопросы или понадобится дальнейшая помощь, не стесняйтесь обращаться!