一个非常简单的时间显示工具,在游戏内每3秒执行一次时间计算。每天可以更新一次状态(适用于每天随机事件)

预览
设置
{
主程序
{
描述: "时间显示工具作者:kotone#51614"
模式名称: "kotone的时间显示工具[适用于模拟、生存类模式]\r\n代码:WDAS8"
}
大厅
{
}
模式
{
综合
{
急救包刷新: 禁用
重装职责被动生命值加成: 禁用
阵亡镜头: 关闭
}
突击模式
{
启用地图
{
里阿尔托 972777519512068154 972777519512068292
}
}
}
}
变量
{
全局:
39: time
}
子程序
{
30: timeSet
}
规则("hud初始化[作者:kotone#51614]")
{
事件
{
持续 - 全局;
}
条件
{
}
动作
{
设置目标点描述(本地玩家,自定义字符串("[kotone#51614]\r\n\r\n时间:{0}\r\n\r\n天数:{1}\r\n天气:{2}",
自定义字符串("{0}:{1}",全局.time[1],(全局.time[2]>10?全局.time[2]:自定义字符串("0{0}",全局.time[2]))),全局.time[3],全局.time[4]),可见和字符串);
全局.time[0] = 0; // 初始化计时器
全局.time[1] = 6; // 初始小时(6AM)
全局.time[2] = 0; // 初始分钟
全局.time[3] = 1; // 初始天数
全局.time[4] = 自定义字符串("晴朗"); // 初始天气
全局.time[5] = 00; // 初始分钟显示
全局.time[6] = 地图工坊设置整数(自定义字符串("时间选项(默认游戏的一天为现实中9分钟)"), 自定义字符串("时间刷新间隔(秒)"), 3, 3, 18, 0); // 刷新频率
全局.time[7] = 地图工坊设置整数(自定义字符串("时间选项(默认游戏的一天为现实中9分钟)"), 自定义字符串("时间流逝速度(每次/分钟)"), 8, 4, 16, 0); // 流逝速度
}
}
规则("分钟推进器")
{
事件
{
持续 - 全局;
}
条件
{
总计消耗时间 - 全局.time[0] >= 全局.time[6]; // 每3秒更新一次
}
动作
{
// 更新时间戳
全局.time[0] = 总计消耗时间;
// 推进时间:每3秒 = 8游戏分钟(精确值)
全局.time[2] += 全局.time[7];
// 触发进位检测
// 当分钟超过60时触发进位规则
If(全局.time[2] >= 60);
调用子程序(timeSet);
End;
// 更新分钟显示(只在此规则中修改)
// 全局.time[5] = 自定义字符串("{0}0", 全局.time[2] / 10);
}
}
规则("进位处理")
{
事件
{
子程序;
timeSet;
}
动作
{
// 处理分钟进位(循环处理,因为可能连续进位)
// 当分钟小于60时退出循环
全局.time[2] -= 60;
全局.time[1] += 1;
// 处理小时进位
If(全局.time[1] >= 24);
全局.time[1] = 0;
全局.time[3] += 1;
// 每天更新天气 这里可以放随机事件
全局.time[4] = 数组随机取值(数组(
自定义字符串("晴朗"),自定义字符串("绵雨"),自定义字符串("阴天"),
自定义字符串("大雾"),自定义字符串("地震"),自定义字符串("暴雨"),
自定义字符串("大风"),自定义字符串("晴朗"),自定义字符串("晴朗"),
自定义字符串("晴朗")
));
End;
If(全局.time[2] >= 60);
循环;
End;
}
}
评论
这里空空如也~