ManageCondi(条件配置)
<p>[TOC]</p>
<h1>配置表字段说明</h1>
<table>
<thead>
<tr>
<th>字段名</th>
<th>是否必填</th>
<th>字段说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>是</td>
<td>条件唯一ID</td>
</tr>
<tr>
<td>condi</td>
<td>是</td>
<td>条件配置参数</td>
</tr>
<tr>
<td>isEvent</td>
<td>否</td>
<td>是否开启监听条件改变事件,任意值开启</td>
</tr>
<tr>
<td>alert</td>
<td>否</td>
<td>条件不足时提示消息,配置空则不提示,多个提示以竖线分割</td>
</tr>
</tbody>
</table>
<h1>条件配置说明</h1>
<table>
<thead>
<tr>
<th>条件类型</th>
<th>条件名称</th>
<th>配置参数</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>101</td>
<td>人物等级</td>
<td>101^100</td>
<td>人物等级 (≥100)</td>
</tr>
<tr>
<td>101</td>
<td>人物等级</td>
<td>101^1^100</td>
<td>人物等级 (≤1 且 ≥100)</td>
</tr>
<tr>
<td>102</td>
<td>转生等级</td>
<td>102^10</td>
<td>转生等级 (≥10)</td>
</tr>
<tr>
<td>102</td>
<td>转生等级</td>
<td>102^1^10</td>
<td>转生等级 (≤1 且 ≥10)</td>
</tr>
<tr>
<td>103</td>
<td>整数变量</td>
<td>103^100001^10</td>
<td>变量ID:100001值 (≥10)</td>
</tr>
<tr>
<td>103</td>
<td>整数变量</td>
<td>103^100001^10^20</td>
<td>变量:100001值 (≥10 且 ≤10)</td>
</tr>
<tr>
<td>104</td>
<td>角色职业</td>
<td>104^0</td>
<td>0.战士 1.法师 2.道士 3.通用</td>
</tr>
<tr>
<td>105</td>
<td>角色性别</td>
<td>105^0</td>
<td>0.男 1.女 2.通用</td>
</tr>
<tr>
<td>106</td>
<td>检测物品</td>
<td>106^10010^10</td>
<td>需要物品ID:10010 (≥10)</td>
</tr>
<tr>
<td>107</td>
<td>检测货币</td>
<td>107^7^100</td>
<td>需要货币ID:7 (≥100)</td>
</tr>
<tr>
<td>108</td>
<td>穿戴检测</td>
<td>108^1^200100</td>
<td>需要装备位置1佩戴装备ID:200100</td>
</tr>
<tr>
<td>109</td>
<td>时间戳</td>
<td>109^1641006000</td>
<td>需要(当前时间戳≥时间戳)</td>
</tr>
<tr>
<td>109</td>
<td>时间戳</td>
<td>109^1641006000^1641009000</td>
<td>需要(当前时间戳^时间戳1 且 当前时间戳≤时间戳2)</td>
</tr>
<tr>
<td>110</td>
<td>检测地图</td>
<td>110^3</td>
<td>需要当前人物所在地图ID为3(盟重省)</td>
</tr>
<tr>
<td>111</td>
<td>开服天数</td>
<td>111^3</td>
<td>需要开服天数(≥3)</td>
</tr>
<tr>
<td>111</td>
<td>开服天数</td>
<td>111^3^10</td>
<td>需要开服天数(≥3 且 ≤10)</td>
</tr>
<tr>
<td>113</td>
<td>合服天数</td>
<td>113^3</td>
<td>需要合服天数(≥3)</td>
</tr>
<tr>
<td>113</td>
<td>合服天数</td>
<td>113^3^10</td>
<td>需要合服天数(≥3 且 ≤10)</td>
</tr>
<tr>
<td>114</td>
<td>合服次数</td>
<td>114^1</td>
<td>需要合服次数(≥1)</td>
</tr>
<tr>
<td>114</td>
<td>合服次数</td>
<td>114^1^3</td>
<td>需要合服次数((≥1 且 ≤3)</td>
</tr>
<tr>
<td>115</td>
<td>检查公会</td>
<td>115^1</td>
<td>1.是否有公会 2.是否无公会</td>
</tr>
<tr>
<td>116</td>
<td>沙巴克成员</td>
<td>116^1</td>
<td>0.不是沙巴克成员 1.是沙巴克成员 2.是沙巴克老大</td>
</tr>
<tr>
<td>117</td>
<td>每周第几天</td>
<td>117^7</td>
<td>需要当天是周日</td>
</tr>
<tr>
<td>117</td>
<td>每周第几天</td>
<td>117^6^7</td>
<td>需要当天是周六或周日</td>
</tr>
<tr>
<td>118</td>
<td>每月第几天</td>
<td>118^1</td>
<td>需要当前是本月第1天</td>
</tr>
<tr>
<td>118</td>
<td>每月第几天</td>
<td>118^1^5</td>
<td>需要当前是本月第1~5天</td>
</tr>
<tr>
<td>120</td>
<td>每年第几月</td>
<td>120^1</td>
<td>需要当前是本年第1月</td>
</tr>
<tr>
<td>120</td>
<td>每年第几月</td>
<td>120^1^2</td>
<td>需要当前是本年第1~2月</td>
</tr>
<tr>
<td>121</td>
<td>键值变量</td>
<td>121^100010^1^10</td>
<td>需要键值变量ID:100010key1的值(≥10)</td>
</tr>
<tr>
<td>121</td>
<td>键值变量</td>
<td>121^100010^1^10^20</td>
<td>需要键值变量ID:100010key1的值(≥10 且 ≤20)</td>
</tr>
<tr>
<td>122</td>
<td>检测任务</td>
<td>122^1001</td>
<td>检测1001任务是否已结束(领取奖励之后)(关联cfg_ManageTask表ID)</td>
</tr>
<tr>
<td>123</td>
<td>检测游戏ID</td>
<td>123^7911</td>
<td>检测当前游戏ID是否是7911</td>
</tr>
<tr>
<td>124</td>
<td>检测服务器ID</td>
<td>124^310457</td>
<td>检测当前服务器ID是否是310457</td>
</tr>
<tr>
<td>126</td>
<td>检测设备</td>
<td>126^1</td>
<td>1.移动端 2.pc端</td>
</tr>
<tr>
<td>127</td>
<td>开服时间</td>
<td>127^10</td>
<td>需要开服时间(≥10分钟)</td>
</tr>
<tr>
<td>127</td>
<td>开服时间</td>
<td>127^10^60</td>
<td>需要开服时间(≥10分钟 且 ≤60分钟)</td>
</tr>
<tr>
<td>128</td>
<td>在线时间</td>
<td>128^10</td>
<td>需要当天在线时间(≥10分钟)</td>
</tr>
<tr>
<td>128</td>
<td>在线时间</td>
<td>128^10^30</td>
<td>需要当天在线时间(≥10分钟 且 ≤30分钟)</td>
</tr>
<tr>
<td>129</td>
<td>地图坐标</td>
<td>129^biqi^100^200^5</td>
<td>需要角色在biqi地图坐标100,200位置范围不能超过5</td>
</tr>
<tr>
<td>130</td>
<td>检查BUFF</td>
<td>130^10001^0</td>
<td>0.有10001BUFF 1.无10001BUFF</td>
</tr>
<tr>
<td>131</td>
<td>检查激活装扮</td>
<td>131^10001</td>
<td>是否激活10001装扮(关联cfg_ManageFashion表ID)</td>
</tr>
<tr>
<td>132</td>
<td>检查穿戴装备ID</td>
<td>132^1^100101</td>
<td>检查装备位置1佩戴装备ID(≥100101)</td>
</tr>
<tr>
<td>132</td>
<td>检查穿戴装备ID</td>
<td>132^1^100101^100201</td>
<td>检查装备位置1佩戴装备ID(≥100101 且 ≤100201)</td>
</tr>
<tr>
<td>133</td>
<td>检查活动是否开启</td>
<td>133^1^2001</td>
<td>检查活动ID2001(0.是否关闭 1.是否开启)(关联cfg_ManageActivity表ID)</td>
</tr>
<tr>
<td>134</td>
<td>检查人物属性</td>
<td>134^4^1000</td>
<td>检查人物属性ID:4(≥1000)</td>
</tr>
<tr>
<td>134</td>
<td>检查人物属性</td>
<td>134^4^1000^2000</td>
<td>检查人物属性ID:4(≥1000 且 ≤2000)</td>
</tr>
<tr>
<td>135</td>
<td>检查人物技能</td>
<td>135^100^3</td>
<td>检查人物技能ID:100,等级(≥3)</td>
</tr>
<tr>
<td>135</td>
<td>检查人物技能</td>
<td>135^100^1^3</td>
<td>检查人物技能ID:100,等级(≥1 且 ≤3)</td>
</tr>
<tr>
<td>137</td>
<td>检查任务组别</td>
<td>137^1001</td>
<td>检查任务组别是否已经结束(领取奖励之后)(关联cfg_ManageTask表ID)</td>
</tr>
<tr>
<td>138</td>
<td>检查穿戴装扮</td>
<td>138^10010</td>
<td>检查当前是否穿戴装扮ID:10010(关联cfg_ManageFashion表ID)</td>
</tr>
<tr>
<td>140</td>
<td>当前某时某分</td>
<td>140^19:30^20:00</td>
<td>检查当前时间(≥19:30 且 ≤20:00)</td>
</tr>
<tr>
<td>141</td>
<td>人物是否在安全区</td>
<td>141^1</td>
<td>1.检查是否在安全区 2.检查是否不在安全区</td>
</tr>
<tr>
<td>142</td>
<td>判断客服是否开启</td>
<td>142^1</td>
<td>1.检查是否开启 2.检查是否关闭</td>
</tr>
</tbody>
</table>
<h1>相关接口</h1>
<ul>
<li><strong><code>检查条件</code></strong></li>
</ul>
<p><code>player:check_condi(id,alert)</code></p>
<table>
<thead>
<tr>
<th>参数</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>number</td>
<td>条件ID</td>
</tr>
<tr>
<td>alert</td>
<td>boolean</td>
<td>条件不足时是否提示alert字段配置的消息</td>
</tr>
</tbody>
</table>
<h1>相关事件</h1>
<ul>
<li><strong><code>条件改变事件(模块内重写事件函数即可)</code></strong></li>
</ul>
<p><code>PanelModel.onChangeCondi(param)</code></p>
<table>
<thead>
<tr>
<th>param参数</th>
<th>类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td>type</td>
<td>number</td>
<td>条件类型</td>
</tr>
<tr>
<td>id</td>
<td>number</td>
<td>条件ID</td>
</tr>
<tr>
<td>state</td>
<td>boolean</td>
<td>是否满足条件</td>
</tr>
</tbody>
</table>
<h1>实例</h1>
<pre><code class="language-lua">if player:check_condi(10001,true) then
luaprint(&quot;=======达成条件&quot;)
else
luaprint(&quot;=======未达成条件,同时提示alert字段配置的消息&quot;)
end</code></pre>
<h3>动态插入条件(前后端按需要插入)</h3>
<pre><code>function ManageCondi:insert(data)
---* data = {
---* id --不可重复
---* condi --条件参数
---* isEvent --任意值需要
---* alert --条件不足时提示,可空
---* }
end
-- 插入方法示例
function PanelMapMove:AddCondi(id,condi,isEvent,alert)
if not (id and condi) then
return
end
if type(id) == &quot;table&quot; then
for i = 1, #id do
if type(condi[i][1]) == &quot;table&quot; then
ManageCondi:insert({id=id[i],condi=condi[i],isEvent=isEvent and isEvent[i],alert=alert and alert[i]})
else
ManageCondi:insert({id=id[i],condi={condi[i]},isEvent=isEvent and isEvent[i],alert=alert and alert[i]})
end
end
else
if type(condi[1]) == &quot;table&quot; then
ManageCondi:insert({id=id,condi=condi,isEvent=isEvent,alert=alert})
else
ManageCondi:insert({id=id,condi={condi},isEvent=isEvent,alert=alert})
end
end
end</code></pre>
<h3>检测条件是否满足</h3>
<p>---等同 player:check_condi
---@param id number|table 条件id
---@param isAlert boolean? 不满足是否警告</p>
<pre><code>function ManageCondi.checkTarget(id,isAlert)
end</code></pre>