一个非常简单的时间显示工具,在游戏内每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;
    }
}
评论
这里空空如也~
这里空空如也~