服务器名称命令值
服务器名称命令插值(SNCI)是Megapatch II中包含的功能。
它为服务器名称提供了一种简单易用的脚本形式。如果正确使用,它比SMod的服务器名称变量提供更多功能。这些也可以用在玩家列表标题上。
如何使用SNCI
命令的语法是{command_name,arg1,arg2,arg...},放置在服务器名称中。所有字符都可以转义以便在封闭符号中使用 { , } 或 , 。这意味着如果您想要在服务器名称中使用它们,则需要在 { , } 或 , 前加上反斜杠(\)。命令名称或参数的空格不会被修剪。
例子
在这种情况下,以下将是我们的服务器名称:
<color=#b0b>The Stetzone</color>\n<color=#{random_list,b00,0b0,b0b}>Ruleless Anarchy</color>\n<color=#fc0><size=10>
{scp_counter} SCPs | {add,{alive_team,1},{alive_team,3}} Foundation Personnel | {add,{alive_team,2},{alive_team,4}}
Insurgents/Prisoners {warhead_detonated,| ☢ WARHEAD DETONATED ☢,}\n[{round_duration_minutes}:{round_duration_seconds}]
</size></color>
在服务器列表上,显示为一个20/20服务器,名称为:
<color=#b0b>The Stetzone</color>
<color=#b00>Ruleless Anarchy</color>
<color=#fc0><size=10>3/5 SCPs | 12 Foundation Personnel | 4 Insurgents/Prisoners | ☢ WARHEAD DETONATED ☢ [8:29]</size></color>
它显示的原因是:
- 插值器遇到 {random_list, b00, 0b0, b0b}。
- 插值器从1-3(项目数量)中随机选择一个数字。
- 只有当该项目内部存在闭包时,插值器才会解析该项目。
- 返回了 b00
- 插值器然后移动到{scp_counter}。
- 一开始有5个SCP。
- 现在只剩下3个。
- 返回了3/5。
- 插值器继续移动并找到{add,{alive_team,MTF},{alive_team,RSC}}
- 插值器解析参数。
- {alive_team,1} 解析为9。
- {alive_team,3} 解析为3。
- 插值器将结果相加。
- 返回12.
- 插值器滚动并看到 {add,{alive_team,2},{alive_team,4}}。这与#3相同,所以它返回了4,并且我们会跳过它。
- 插值器转向下一个闭包: {warhead_detonated,| ☢ WARHEAD DETONATED ☢}
- 弹头已经爆炸了,因此选择第一个参数。
- 插值器解析第一个参数
- 返回 | ☢ WARHEAD DETONATED ☢
- 插值器到达 {round_duration_minutes}.
- 回合已经进行了8分钟29秒.
- 返回8.
- 最后 插入者 到达 {round_duration_seconds}.
- 回合已经进行了8分钟29秒.
- 返回29.
命令
服务器信息
名字
|
参数
|
返回
|
ip
|
None
|
服务器的IP地址
|
port
|
None
|
服务器端口
|
number
|
None
|
假设端口从7777开始,服务器编号
|
version
|
None
|
主要兼容版本
|
玩家人数
名字
|
参数
|
返回
|
player_count
|
None
|
服务器上当前玩家数量
|
full_player_count
|
None; [full]
|
服务器上当前的最大玩家人数,如果已满则显示为“full”
|
max_players
|
None
|
服务器上的最大玩家数量
|
回合信息
名字
|
参数
|
返回
|
round_duration_minutes
|
None
|
回合的持续时间(分钟)
|
round_duration_seconds
|
None
|
回合持续时间(以秒为单位,忽略分钟数,始终<60)
|
kills
|
None
|
本轮总击杀数
|
kills_frag
|
None
|
本轮手榴弹总击杀数
|
mtf_respawns
|
None
|
本轮MTF重生次数
|
warhead_detonated
|
None;[detonated][undetonated]
|
根据弹头是否已经引爆,显示为“☢ warhead detonated ☢”或空(默认)
|
存活玩家
名字
|
参数
|
返回
|
alive_role
|
[role ID]
|
具有该角色的玩家数量。角色ID可以是名称或整数ID
|
alive_team
|
[team ID]
|
该团队存活的玩家数量。团队ID可以是名称或整数ID
|
存活团队的团队编号
团队名称
|
团队编号
|
SCP
|
0
|
MTF & 设施警卫
|
1
|
混沌分裂者
|
2
|
科学家
|
3
|
D级人员
|
4
|
观察者
|
5
|
教程角色
|
6
|
SCP 信息
名字
|
参数
|
返回
|
scp_counter
|
None
|
回合初始SCP中的存活SCP(僵尸除外)
|
scp_start
|
None
|
回合初始的SCP
|
scp_killed
|
None
|
本轮中被消灭的SCP
|
scp_kills
|
None
|
SCP在本轮中的击杀数
|
zombies_recalled
|
None
|
这一轮救回了僵尸数量
|
D级人员信息
名字
|
参数
|
返回
|
classd_counter
|
None
|
逃脱的D级人员超过了最初一轮的D级人员
|
classd_start
|
None
|
回合初的D级人员
|
classd_escaped
|
None
|
D级人员逃离数量
|
科学家信息
名字
|
参数
|
返回
|
scientist_counter
|
None
|
逃脱的科学家超过了最初一轮的科学家
|
scientist_start
|
None
|
回合初的科学家
|
scientist_escaped
|
None
|
科学家逃离数量
|
随机分配
名字
|
参数
|
返回
|
random
|
[max]; [min] [max]
|
在最小值(默认为0)和最大值之间的随机十进制数。
|
random_list
|
[item 1] [item 2] […]
|
一个随机物品
|
常数
名字
|
参数
|
返回
|
constant_e
|
None
|
Euler's number.
|
constant_pi
|
None
|
Pi (π).
|
操作
名字
|
参数
|
返回
|
add
|
[a] [b]
|
a + b
|
subtract
|
[a] [b]
|
a - b
|
multiply
|
[a] [b]
|
a * b
|
division
|
[a] [b]
|
a / b
|
power
|
[a] [b]
|
a ^ b
|
log
|
[value]; [base] [value]
|
Log [base] (default 10) of [value].
|
ln
|
[value]
|
Natural log of [value]
|
循环
名字
|
参数
|
返回
|
round
|
[value]
|
四舍五入到最接近的整数。
|
round_up
|
[value]
|
四舍五入到最接近的整数。
|
round_down
|
[value]
|
向最接近的整数取整
|
对比
名字
|
参数
|
返回
|
equals
|
[a] [b]
|
通过字符串表示检查 [a] 和 [b] 的相等性。
|
greater
|
[a] [b]
|
"True" if [a] > [b], else "False".
|
lesser
|
[a] [b]
|
"True" if [a] < [b], else "False".
|
greater_or_equal
|
[a] [b]
|
"True" if [a] >= [b], else "False".
|
lesser_or_equal
|
[a] [b]
|
"True" if [a] <= [b], else "False".
|
布尔逻辑
名字
|
参数
|
返回
|
not
|
[value]
|
Inverts [value].
|
or
|
[a] [b]
|
"True" if [a] OR [b] are true, else "False".
|
and
|
[a] [b]
|
"True" if [a] AND [b] are true, else "False".
|
xor
|
[a] [b]
|
"True" if [a] OR [b] but NOT [a] AND [B], else "False".
|
if
|
[condition] [a]; [condition] [a] [b]
|
[a] if [condition] is true else [b] (default empty)
|