插件介绍
改进的派系/团队系统
Factions Core is a rewrite of original Factions Plugin with a complete UI overhaul, performance enhancements, and the ability to create modules that use the Factions-Core as a base.
This will be a work in progress as I know there will be some bugs.. this is the main reason I have separated it from the old thread.
主要用途
主要用于teams、factions、unmaintained等服务端功能。 本插件由 发布,当前目录记录版本为 v1.0.5,uMod 累计下载 8,487 次。
适用场景
- 希望扩展原版服务器功能的服主
功能分类
查看 uMod 官方英文简介
A revamped faction/team system
权限节点
factionscore.allowAllows layers access to the factions menu
授权示例:oxide.grant user 玩家名 权限节点;撤销使用 oxide.revoke。
配置说明
"Allow_FriendlyFire": false, --> Enable/Disable FriendlyFire. "AllowedFactionDifference": 5, --> Amount of players one faction can have more then all others. "AuthorizeLeadersOnly": false, --> Changes default Authorization logic to only Leaders. "AutoAuthorization": true, --> Enable/Disable Authorization of Turrets and ability to open doors without knowing code locks. Must be authorized on a nearby Tool Cupboard to open the door of a Faction Member. "Colors": [ --> List of Colors available for Faction Creation. "#e60000", "#3366ff", "#29a329", "#ffff00", "#ff9933", "#7300e6", "#A93226", "#4A235A", "#1F618D", "#117864", "#D35400", "#626567", "#34495E", "#FA0091", "#3EFF00", "#00E0B8", "#4D8B98", "#9FB1B4", "#9569A8", "#76125B", "#161419", "#3A2C09", "#9ACD32", "#009A9A", "#523b2f", "#743d1b", "#d9dee2", "#676862", "#273a29" ], "DeleteEmptyFactions": false, --> AutoPurge factions with 0 players. "DisableMenu": false, --> Disables the UI menu for everyone but players with Auth2 or permission FactionsCore.admin. Useful for using factions as a team management plugin only. "FactionEmblems_URLS": { -->List of Emblems available for Faction Creation. "0": "http://i.imgur.com/avnIndo.png", "1": "http://i.imgur.com/bDNy4nh.png", "10": "http://i.imgur.com/MDi4aEn.png", "11": "http://i.imgur.com/4DbaDNJ.png", "12": "http://i.imgur.com/yzShlSM.png", "13": "http://i.imgur.com/3HppE22.png", "14": "http://i.imgur.com/Xs6QN2s.png", "15": "http://i.imgur.com/NHGRtgx.png", "16": "http://i.imgur.com/PeSghTc.png", "17": "http://i.imgur.com/y8wo92P.png", "18": "http://i.imgur.com/OhGqJbe.png", "19": "http://i.imgur.com/FZk4S8s.png", "2": "http://i.imgur.com/iwzGH4W.png", "20": "http://i.imgur.com/V41i65b.png", "21": "http://i.imgur.com/XTwyNKE.png", "22": "http://i.imgur.com/vyI8Dh0.png", "23": "http://i.imgur.com/Lwpo4Uk.png", "24": "http://i.imgur.com/iKs1J4i.png", "25": "http://i.imgur.com/syl5cba.png", "26": "http://i.imgur.com/h5fPxsP.png", "27": "http://i.imgur.com/ONs75vx.png", "28": "http://i.imgur.com/73UHzgO.png", "29": "http://i.imgur.com/g35lupC.png", "3": "http://i.imgur.com/WAnPTiw.png", "30": "http://i.imgur.com/V6x5DEd.png", "31": "http://i.imgur.com/whcI2My.png", "32": "http://i.imgur.com/3q7CHvO.png", "33": "http://i.imgur.com/vqJIHFk.png", "34": "http://i.imgur.com/wUoKvyO.png", "35": "http://i.imgur.com/Oy7ZY0o.png", "36": "http://i.imgur.com/SwCMLVl.png", "37": "http://i.imgur.com/FpBbyJd.png", "38": "http://i.imgur.com/LkOu53F.png", "39": "http://i.imgur.com/NdGUphU.png", "4": "http://i.imgur.com/8d78Qnu.png", "40": "http://i.imgur.com/f9iakjZ.png", "41": "http://i.imgur.com/e9J33lR.png", "42": "http://i.imgur.com/oK8gp0b.png", "43": "http://i.imgur.com/cQ0hj5s.png", "44": "http://i.imgur.com/S9iwCq8.png", "45": "http://i.imgur.com/FLPXWvG.png", "46": "http://i.imgur.com/uaZoI9g.png", "47": "http://i.imgur.com/5mboBg8.png", "48": "http://i.imgur.com/41uR2X6.png", "49": "http://i.imgur.com/LhyPd3c.png", "5": "http://i.imgur.com/gAxeMvK.png", "50": "http://i.imgur.com/hrw1Ti9.png", "51": "http://i.imgur.com/yclMvuL.png", "52": "http://i.imgur.com/ozBS4Kx.png", "53": "http://i.imgur.com/lpzn12Y.png", "54": "http://i.imgur.com/439Qhnh.png", "55": "http://i.imgur.com/NkhVOqe.png", "56": "http://i.imgur.com/zc4Pqlm.png", "57": "http://i.imgur.com/JiIgA1i.png", "58": "http://i.imgur.com/dzLQYMu.png", "59": "http://i.imgur.com/J5eyqmq.png", "6": "http://i.imgur.com/dNpKRwg.png", "7": "http://i.imgur.com/Qu4SNm8.png", "8": "http://i.imgur.com/w2IH1Eo.png", "9": "http://i.imgur.com/Qzxv1zv.png" }, "FactionLimit": 0, --> Limit number of Factions that can be created on the server (0 is unlimited) "FactionPlayerLimit": 0, --> Faction Player Limit (0 is unlimited) "FactionStaleTime": 0, --> How long before an inactive Faction is deleted. (Time is in DAYS). On plugin load it will check the last time a faction player logged in for each faction and based on that decide if the faction is stale. If so it will be deleted. "FriendlyFire_DamageScale": 0.0, --> FF damage. 0 makes it so no damage is done. 1f is full damage. "HomePageMessage": "Welcome!”, --> Message shows on UI Home Page. "InFactionChat_ChatColor": "#93FF7F", --> Color of IN FACTION Chat Messages. "InfoInterval": 15, --> Chat Info Message interval in minutes. (0 is disabled). "Kits_and_CustomSets": [ "faction0", "faction1", "faction2", "faction3" ], "LockFactionKits_and_CustomSets": true, --> Locks equipment given in a Faction Kit or CustomSet to the player. "MenuKeyBinding": "", --> Bind a key to open UI Menu. /faction opens it as well. "SafeZones_Allow": true, --> Enables/Disables Safe Zone creation by Leaders and Moderators. "SafeZones_Radius": 40.0, --> Safe Zone Size. "ShowFactionPlayersOnMap": false, --> Enables/Disables seeing Faction members on built in map. LustyMap support is by default. "Use_AllowPlayersToCreateFactions": false, --> Enables/Disables the ability for players to create their own Factions. "Use_FactionAnnouncements": false, --> Enables/Disables Faction Announcements "Use_FactionChatControl": true, --> Enables/Disables Faction Chat. Does not impact Private Faction Chat or Faction Announcements "Use_FactionTags": true, -->Enable/Disable Faction Tag on chat messages. "Use_PlayerListMenu": false, --> Enables/Disables All Players Tab. "Use_PrivateFactionChat": true --> Enables/Disables Private Faction Chat
官方配置示例
"Allow_FriendlyFire": false, --> Enable/Disable FriendlyFire.
"AllowedFactionDifference": 5, --> Amount of players one faction can have more then all others.
"AuthorizeLeadersOnly": false, --> Changes default Authorization logic to only Leaders.
"AutoAuthorization": true, --> Enable/Disable Authorization of Turrets and ability to open doors without knowing code locks. Must be authorized on a nearby Tool Cupboard to open the door of a Faction Member.
"Colors": [ --> List of Colors available for Faction Creation.
"#e60000",
"#3366ff",
"#29a329",
"#ffff00",
"#ff9933",
"#7300e6",
"#A93226",
"#4A235A",
"#1F618D",
"#117864",
"#D35400",
"#626567",
"#34495E",
"#FA0091",
"#3EFF00",
"#00E0B8",
"#4D8B98",
"#9FB1B4",
"#9569A8",
"#76125B",
"#161419",
"#3A2C09",
"#9ACD32",
"#009A9A",
"#523b2f",
"#743d1b",
"#d9dee2",
"#676862",
"#273a29"
], "DeleteEmptyFactions": false, --> AutoPurge factions with 0 players.
"DisableMenu": false, --> Disables the UI menu for everyone but players with Auth2 or permission FactionsCore.admin. Useful for using factions as a team management plugin only.
"FactionEmblems_URLS": { -->List of Emblems available for Faction Creation.
"0": "http://i.imgur.com/avnIndo.png",
"1": "http://i.imgur.com/bDNy4nh.png",
"10": "http://i.imgur.com/MDi4aEn.png",
"11": "http://i.imgur.com/4DbaDNJ.png",
"12": "http://i.imgur.com/yzShlSM.png",
"13": "http://i.imgur.com/3HppE22.png",
"14": "http://i.imgur.com/Xs6QN2s.png",
"15": "http://i.imgur.com/NHGRtgx.png",
"16": "http://i.imgur.com/PeSghTc.png",
"17": "http://i.imgur.com/y8wo92P.png",
"18": "http://i.imgur.com/OhGqJbe.png",
"19": "http://i.imgur.com/FZk4S8s.png",
"2": "http://i.imgur.com/iwzGH4W.png",
"20": "http://i.imgur.com/V41i65b.png",
"21": "http://i.imgur.com/XTwyNKE.png",
"22": "http://i.imgur.com/vyI8Dh0.png",
"23": "http://i.imgur.com/Lwpo4Uk.png",
"24": "http://i.imgur.com/iKs1J4i.png",
"25": "http://i.imgur.com/syl5cba.png",
"26": "http://i.imgur.com/h5fPxsP.png",
"27": "http://i.imgur.com/ONs75vx.png",
"28": "http://i.imgur.com/73UHzgO.png",
"29": "http://i.imgur.com/g35lupC.png",
"3": "http://i.imgur.com/WAnPTiw.png",
"30": "http://i.imgur.com/V6x5DEd.png",
"31": "http://i.imgur.com/whcI2My.png",
"32": "http://i.imgur.com/3q7CHvO.png",
"33": "http://i.imgur.com/vqJIHFk.png",
"34": "http://i.imgur.com/wUoKvyO.png",
"35": "http://i.imgur.com/Oy7ZY0o.png",
"36": "http://i.imgur.com/SwCMLVl.png",
"37": "http://i.imgur.com/FpBbyJd.png",
"38": "http://i.imgur.com/LkOu53F.png",
"39": "http://i.imgur.com/NdGUphU.png",
"4": "http://i.imgur.com/8d78Qnu.png",
"40": "http://i.imgur.com/f9iakjZ.png",
"41": "http://i.imgur.com/e9J33lR.png",
"42": "http://i.imgur.com/oK8gp0b.png",
"43": "http://i.imgur.com/cQ0hj5s.png",
"44": "http://i.imgur.com/S9iwCq8.png",
"45": "http://i.imgur.com/FLPXWvG.png",
"46": "http://i.imgur.com/uaZoI9g.png",
"47": "http://i.imgur.com/5mboBg8.png",
"48": "http://i.imgur.com/41uR2X6.png",
"49": "http://i.imgur.com/LhyPd3c.png",
"5": "http://i.imgur.com/gAxeMvK.png",
"50": "http://i.imgur.com/hrw1Ti9.png",
"51": "http://i.imgur.com/yclMvuL.png",
"52": "http://i.imgur.com/ozBS4Kx.png",
"53": "http://i.imgur.com/lpzn12Y.png",
"54": "http://i.imgur.com/439Qhnh.png",
"55": "http://i.imgur.com/NkhVOqe.png",
"56": "http://i.imgur.com/zc4Pqlm.png",
"57": "http://i.imgur.com/JiIgA1i.png",
"58": "http://i.imgur.com/dzLQYMu.png",
"59": "http://i.imgur.com/J5eyqmq.png",
"6": "http://i.imgur.com/dNpKRwg.png",
"7": "http://i.imgur.com/Qu4SNm8.png",
"8": "http://i.imgur.com/w2IH1Eo.png",
"9": "http://i.imgur.com/Qzxv1zv.png"
},
"FactionLimit": 0, --> Limit number of Factions that can be created on the server (0 is unlimited)
"FactionPlayerLimit": 0, --> Faction Player Limit (0 is unlimited)
"FactionStaleTime": 0, --> How long before an inactive Faction is deleted. (Time is in DAYS). On plugin load it will check the last time a faction player logged in for each faction and based on that decide if the faction is stale. If so it will be deleted.
"FriendlyFire_DamageScale": 0.0, --> FF damage. 0 makes it so no damage is done. 1f is full damage.
"HomePageMessage": "Welcome!”, --> Message shows on UI Home Page.
"InFactionChat_ChatColor": "#93FF7F", --> Color of IN FACTION Chat Messages.
"InfoInterval": 15, --> Chat Info Message interval in minutes. (0 is disabled).
"Kits_and_CustomSets": [
"faction0",
"faction1",
"faction2",
"faction3"
],
"LockFactionKits_and_CustomSets": true, --> Locks equipment given in a Faction Kit or CustomSet to the player.
"MenuKeyBinding": "", --> Bind a key to open UI Menu. /faction opens it as well.
"SafeZones_Allow": true, --> Enables/Disables Safe Zone creation by Leaders and Moderators.
"SafeZones_Radius": 40.0, --> Safe Zone Size.
"ShowFactionPlayersOnMap": false, --> Enables/Disables seeing Faction members on built in map. LustyMap support is by default.
"Use_AllowPlayersToCreateFactions": false, --> Enables/Disables the ability for players to create their own Factions.
"Use_FactionAnnouncements": false, --> Enables/Disables Faction Announcements
"Use_FactionChatControl": true, --> Enables/Disables Faction Chat. Does not impact Private Faction Chat or Faction Announcements
"Use_FactionTags": true, -->Enable/Disable Faction Tag on chat messages.
"Use_PlayerListMenu": false, --> Enables/Disables All Players Tab.
"Use_PrivateFactionChat": true --> Enables/Disables Private Faction Chat[HookMethod("BroadcastOnScreen")]
void BroadcastOnScreen(string message, ushort Faction, ushort Faction2 = 0)
{
BroadcastOnScreenFaction(message, Faction, Faction2);
}
[HookMethod("AssignToFaction")]
bool AssignToFaction(ulong ID, ushort Faction)
{
if (!fdata.Players.ContainsKey(ID)) return false;
BasePlayer Target = BasePlayer.FindByID(ID);
if (Target == null)
{
var PlayerData = fdata.Players[ID];
PlayerData.faction = Faction;
PlayerData.PendingInvites.Clear();
fdata.Factions[Faction].factionPlayers.Add(ID);
if (fdata.Factions[Faction].factionPlayers.Count() <= 1)
fdata.Factions[Faction].Leader = ID;
ConsoleSystem.Run(ConsoleSystem.Option.Server, $"usergroup add {ID} {fdata.Factions[Faction].group}");
SaveData();
Broadcast($"<color={GetMSG("JoinedFaction", null, fdata.Factions[Faction].ChatColor, GetDisplayName(ID), fdata.Factions[Faction].Name)}</color>");
}
else
{
if (GetFactionPlayer(Target) == null) return false;
AssignPlayerToFaction(Target, Faction);
}
return true;
}
[HookMethod("ClearFactionPlayers")]
void ClearFactionPlayers(ushort ID)
{
if (!fdata.Factions.ContainsKey(ID)) return;
foreach (var player in fdata.Factions[ID].factionPlayers)
{
try
{
var fp = GetFactionPlayer(BasePlayer.FindByID(player));
if (fp != null)
fp.Faction = 0;
}
catch
{
if (fdata.Players.ContainsKey(player))
fdata.Players[player].faction = 0;
}
}
fdata.Factions[ID].factionPlayers.Clear();
SaveData();
}
[HookMethod("GivePlayerFactionGear")]
bool GivePlayerFactionGear(BasePlayer player)
{
GiveFactionGear(player);
return true;
}
[HookMethod("IsFaction")]
bool IsFaction(ushort ID)
{
if (ID != 0 && fdata.Factions.ContainsKey(ID)) return true;
return false;
}
[HookMethod("GetPlayerFaction")]
object GetPlayerFaction(ulong ID)
{
if (fdata.Players.ContainsKey(ID) && fdata.Players[ID].faction != 0) return fdata.Players[ID].faction;
return false;
}
[HookMethod("GetFactionInfo")]
object GetFactionInfo(ushort ID, string request)
{
if (ID == 0 || !fdata.Factions.ContainsKey(ID)) return false;
switch (request.ToLower())
{
case "name":
return fdata.Factions[ID].Name;
case "tag":
return fdata.Factions[ID].tag;
case "group":
return fdata.Factions[ID].group;
case "embleem":
return fdata.Factions[ID].embleem;
case "description":
return fdata.Factions[ID].description;
case "chatcolor":
return fdata.Factions[ID].ChatColor;
case "uicolor":
return fdata.Factions[ID].UIColor;
case "members":
return fdata.Factions[ID].factionPlayers;
case "owner":
return fdata.Factions[ID].Leader;
case "moderators":
return fdata.Factions[ID].Moderators;
case "playercount":
return fdata.Factions[ID].factionPlayers.Count();
default:
return false;
}
}
[HookMethod("GetFactionList")]
List<ushort> GetFactionList()
{
if (fdata.Factions == null || fdata.Factions.Count < 1)
return null;
List<ushort> list = new List<ushort>();
foreach (var entry in fdata.Factions)
list.Add(entry.Key);
return list;
}
[HookMethod("CheckSameFaction")]
bool CheckSameFaction(ulong player1ID, ulong player2ID)
{
if (!fdata.Players.ContainsKey(player1ID) || !fdata.Players.ContainsKey(player2ID)) return false;
var player1faction = fdata.Players[player1ID].faction;
var player2faction = fdata.Players[player2ID].faction;
if (player1faction == player2faction && player1faction != 0) return true;
else return false;
}更新日志
本站记录 uMod 官方插件信息。完整的历史更新日志请参阅 uMod 官方页面。
安装方法
- 确认服务器已安装 Oxide / uMod 或兼容的 Carbon 框架。
- 登录本站后点击"下载",由本站已校验的本地缓存提供作者发布的文件。
- 将 .cs 文件放入服务器的
oxide/plugins目录。 - 观察服务端控制台,确认插件编译并成功加载。
- 具体配置、权限、指令和依赖请查看原作者的 uMod 页面。
使用前注意
- Rust 更新后,请先确认插件是否仍兼容当前服务端版本。
- 修改配置前建议备份原配置文件,并在测试服验证后再部署到正式服。
- 若插件依赖其他扩展或库,以 uMod 原作者页面的最新说明为准。
- 本站中文内容用于辅助理解,遇到版本差异时以官方英文文档和源码为准。
中文介绍由 uMod 官方简介翻译整理。插件著作权、许可证、完整文档和最新发布状态均以原作者及 uMod 官方页面为准。