允许将需要反复使用且数值恒定的 Buff 存储在字符串中。

[Too!0 Effects] 效果预设解析器 V1.0

Feature

允许将需要反复使用且数值恒定的 Buff 存储在字符串中。

Source code

规则("全局 - 资源解析")
{
	事件
	{
		持续 - 全局;
	}

	动作
	{
		等待(5, 无视条件);
		全局.TIMELOCK = 99999;
		全局.SPLITTER = 自定义字符串("|");
		全局.SPLITTER2D = 自定义字符串("^");
		全局.ZEROTOTEN = 自定义字符串("0123456789");
		启用查看器录制;
		全局.BuffPresets = 数组(
			自定义字符串("0!牢石耐击术|1.2|34|-5.67^鲑鱼上帝|2|9|300"),
			自定义字符串("1!罗汉手|5|10|50^好男人也没的身手|3|2|-50^欧内的手|8.5|10|50")
		);
		全局.CurrentIndex[5] = 空数组;
		// 层级 1:以!为界 提取一级元素
		While(全局.CurrentIndex[假] < 数量(全局.BuffPresets)); // 首先根据每组字符串最前端的数值确定基础索引偏移量
			// 一级索引: [0] 外层索引 [1] 内层索引 [2] 偏移量 [3] 当前外层内容 [4] 当前内层内容 [5] 存储块
			// 对于 [5],每个元素应为 [<目标索引>, <内层数组>]
			全局.CurrentIndex[真] = 空;
			全局.CurrentIndex[3] = 全局.BuffPresets[全局.CurrentIndex[假]];
			全局.CurrentIndex[2] = 字符串字符索引(全局.ZEROTOTEN, 字符串中字符(全局.CurrentIndex[3], 假)) * 100;
			全局.CurrentIndex[3] = 字符串分割(截取字符串(全局.CurrentIndex[3], 2, 全局.TIMELOCK), 全局.SPLITTER2D);
			// 二级索引: [0] 内层数组 [1] 字符索引 [2] 元素索引 [3] 效果数据缓存 [4] 单字符 [5] 单数字 [6] 多类效果索引 [7] 在小数点后 [8] 当前数位 [9] 待存数字 [10] 负号 [11] 字符串缓存
			// 对于 [0],应为 ["名称", [[<持续时间1>, <类型1>, <强度1>], [<持续时间2>, <类型2>, <强度2>],...]]
			// 层级 2:以^为界 提取二级元素
			While(全局.CurrentIndex[真] < 数量(全局.CurrentIndex[3]));
				全局.CurrentIndex[4] = 全局.CurrentIndex[3][全局.CurrentIndex[真]];
				全局.CurrentIndex2D = 空;
				全局.CurrentIndex2D[假] = 空数组;
				全局.CurrentIndex2D[3] = 空数组;
				While(全局.CurrentIndex2D[真] < 字符串长度(全局.CurrentIndex[4])); // (全局.CurrentIndex2D[真] == (字符串长度(全局.CurrentIndex[4]) - 真))
					// 层级 3:读取二级元素 逐字操作
					全局.CurrentIndex2D[4] = 字符串中字符(全局.CurrentIndex[4], 全局.CurrentIndex2D[真]);
					全局.CurrentIndex2D[5] = 字符串字符索引(全局.ZEROTOTEN, 全局.CurrentIndex2D[4]);
					// 根据符号搜索 如非数字检查符号 非符号提取整串字符直到分隔符
					// 数字
					If(全局.CurrentIndex2D[5] != -1);
						全局.CurrentIndex2D[9] = (全局.CurrentIndex2D[9] * 10 + 全局.CurrentIndex2D[5]) / (真 + 9 * 全局.CurrentIndex2D[7]) * ((全局.CurrentIndex2D[10] && (全局.CurrentIndex2D[9] == 空)) ? -1 : 真);
					// 小数
					Else If(全局.CurrentIndex2D[4] == 自定义字符串("."));
						全局.CurrentIndex2D[7] = 真;
					// 负号
					Else If(全局.CurrentIndex2D[4] == 自定义字符串("-"));
						全局.CurrentIndex2D[10] = 真;
					// 节段
					Else If((全局.CurrentIndex2D[4] == 自定义字符串("|")) || (全局.CurrentIndex2D[真] == (字符串长度(全局.CurrentIndex[4]) - 真)));
						跳过(全局.CurrentIndex2D[2] == 空);
						在索引处修改全局变量(CurrentIndex2D, 3, 添加至数组, 全局.CurrentIndex2D[9]);
						全局.CurrentIndex2D[2] += 真;
						全局.CurrentIndex2D[7] = 空;
						全局.CurrentIndex2D[8] = 空;
						全局.CurrentIndex2D[9] = 空;
						全局.CurrentIndex2D[10] = 空;
					// 分割
					Else If((全局.CurrentIndex2D[4] == 自定义字符串(",")));
						全局.CurrentIndex2D[6] += 真;
						在索引处修改全局变量(CurrentIndex2D, 3, 添加至数组, 全局.CurrentIndex2D[9]);
						在索引处修改全局变量(CurrentIndex2D, 假, 添加至数组, 数组(全局.CurrentIndex2D[3]));
						全局.CurrentIndex2D[3] = 空数组;
						全局.CurrentIndex2D[2] += 真;
						全局.CurrentIndex2D[7] = 空;
						全局.CurrentIndex2D[8] = 空;
						全局.CurrentIndex2D[9] = 空;
						全局.CurrentIndex2D[10] = 空;
					// 字符
					Else;
						全局.CurrentIndex2D[11] = 首个(字符串分割(全局.CurrentIndex[4], 全局.SPLITTER));
						在索引处修改全局变量(CurrentIndex2D, 假, 添加至数组, 全局.CurrentIndex2D[11]);
						全局.CurrentIndex2D[11] = 字符串长度(全局.CurrentIndex2D[11]);
						全局.CurrentIndex2D[真] += 全局.CurrentIndex2D[11] - 真;
						全局.CurrentIndex2D[3] = 空数组;
					End;
					If((全局.CurrentIndex2D[真] == (字符串长度(全局.CurrentIndex[4]) - 真)));
						在索引处修改全局变量(CurrentIndex2D, 3, 添加至数组, 全局.CurrentIndex2D[9]);
						在索引处修改全局变量(CurrentIndex2D, 假, 添加至数组, 数组(全局.CurrentIndex2D[3]));
					End;
					全局.CurrentIndex2D[真] += 真;
					等待(假, 无视条件);
				End;
				在索引处修改全局变量(CurrentIndex, 5, 添加至数组, 数组(数组(全局.CurrentIndex[2] + 全局.CurrentIndex[真], 数组(首个(全局.CurrentIndex2D[假]), 数组分割(全局.CurrentIndex2D[假], 真, 数量(全局.CurrentIndex2D[假]) - 真)))));
				全局.CurrentIndex[真] += 真;
				等待(假, 无视条件);
			End;
			全局.CurrentIndex[假] += 真;
		End;
		全局.CurrentIndex2D = 空;
		全局.BuffPresets = 空;
		While(全局.CurrentIndex2D < 数量(全局.CurrentIndex[5]));
			全局.BuffPresets[全局.CurrentIndex[5][全局.CurrentIndex2D][假]] = 全局.CurrentIndex[5][全局.CurrentIndex2D][真];
			全局.CurrentIndex2D += 真;
			等待(假, 无视条件);
		End;
		全局.CurrentIndex = 空;
		禁用查看器录制;
	}
}
评论
这里空空如也~
这里空空如也~