####一、禁止带宠物的核心实现逻辑
在传奇私人服务器中,地图禁止携带宠物的本质是**双重控制机制**:通过**地图参数强制限制**与**动态脚本检测清除**的组合方案。其底层逻辑包含:
1.**地图准入规则**:修改`MapInfo.txt`配置文件,设置地图准入条件(如禁止召唤类操作)
2.**实时监控系统**:通过机器人脚本定时扫描玩家状态,强制清除违规宠物
3.**事件触发机制**:利用`QFunction-0.txt`中的穿戴/传送事件触发检测
---
###二、基础配置:地图参数强制限制
####1.**地图配置文件修改(MapInfo.txt)**
在`D:\MirServer\Mir200\Envir\MapInfo.txt`中添加以下参数:
```ini
[地图名]MISSIONNORECALLNOGUILDRECALL
```
-**参数解析**:
-`MISSION`:强制清除地图内所有召唤物(包括宠物)
-`NORECALL`:禁止记忆召唤类技能(如法师诱惑之光)
-`NOGUILDRECALL`:禁止行会召唤操作
####2.**智能刷怪参数扩展**
对需要动态清理的地图添加:
```ini
[BOSS之家]NOMANNOMON
```
-`NOMANNOMON`:当无人存在时自动清理地图内所有生物(含宠物)
---
###三、动态脚本解决方案
####1.**机器人脚本定时清理(AutoRunRobot.txt)**
在`MirServer\Mir200\Envir\Robot_def\AutoRunRobot.txt`中添加:
```bash
#AutoRunNPCSEC10@清理宠物
```
对应机器人脚本:
```lua
[@清理宠物]
#IF
HOUR20:00-22:00//限制生效时间段
#ACT
CLEARMAPMON沙巴克皇宫//清理地图怪物
GMEXECUTE全服KILLSLAVE@MapIn(沙巴克皇宫)//强制清除宠物
SENDMSG6[系统]沙巴克皇宫已清场,禁止携带宠物!
```
**技术要点**:
-`CLEARMAPMON`需配合`MapQuest_def\MonGen.txt`刷怪配置
-`GMEXECUTE`命令需M2引擎开启GM权限穿透
####2.**NPC传送门预检测**
在传送NPC脚本中添加条件判断:
```lua
[@进入皇宫]
#IF
CHECKSLAVECOUNT>0//检测宠物数量
#ACT
MESSAGEBOX禁止携带宠物进入皇宫!
BREAK
#ELSEACT
MAPMOVE沙巴克皇宫330330
```
---
###四、高级功能:智能宠物检测系统
####1.**多维度状态检测表**
|检测维度|命令示例|适用场景|
|-----------------|-------------------------------|-----------------------|
|宠物数量|`CHECKSLAVECOUNT`|基础准入检测|
|宠物类型|`CHECKBATTERYID玉兔`|限制特定宠物|
|宠物等级|`CHECKSLAVELEVEL>50`|高等级宠物限制|
|携带时间|`CHECKPETONTIME>3600`|长时间挂机检测|
####2.**动态惩罚机制**
在`QFunction-0.txt`中添加:
```lua
[@OnSlaveComeOut]//宠物召唤触发事件
#IF
MAPNAME=沙巴克皇宫
#ACT
KILLSLAVE//立即清除宠物
KICK//踢出违规玩家
SENDMSG0[%s]在皇宫违规召唤宠物,已被强制下线!
```
---
###五、引擎差异适配指南
|引擎类型|特性支持|注意事项|
|----------|----------------------------------|---------------------------------|
|GOM|支持`CLEARMAPMON`动态清理|需更新至1108+版本|
|GEE|专用`DELMAPEFFECT`清除召唤特效|需配套GEE登录器|
|BLUE|仅支持基础`KILLSLAVE`命令|需手动修改M2参数|
|HERO|需通过`MapEvent.txt`触发|事件触发延迟较高|
---
###六、调试与排错手册
####1.**常见故障排查表**
|故障现象|检测点|解决方案|
|-------------------------|---------------------------------|-----------------------------|
|宠物未被清除|检查`KILLSLAVE`命令权限|在M2引擎开启GM命令穿透|
|地图参数不生效|验证`MapInfo.txt`编码格式|使用Notepad++转为ANSI编码|
|机器人脚本未执行|查看`Robot.txt`执行间隔设置|确保格式为`SEC10`(10秒)|
####2.**测试命令集**
```lua
//模拟玩家带宠传送
GMEXECUTE召唤虎卫
GMEXECUTEMAPMOVE沙巴克皇宫330330
//查看实时宠物列表
GMEXECUTEShowSlaveList
```
---
###结语:安全与体验的平衡法则
通过**三层防护体系**(准入限制+动态清除+违规惩罚),可有效实现地图宠物管控。建议对核心地图(如沙巴克)采用混合方案:
1.**入口NPC预检测**阻止90%违规行为
2.**机器人脚本每30秒二次清理**
3.**玩家下线时自动记录宠物状态**,防止卡位BUG
在传奇私人服务器中,地图禁止携带宠物的本质是**双重控制机制**:通过**地图参数强制限制**与**动态脚本检测清除**的组合方案。其底层逻辑包含:
1.**地图准入规则**:修改`MapInfo.txt`配置文件,设置地图准入条件(如禁止召唤类操作)
2.**实时监控系统**:通过机器人脚本定时扫描玩家状态,强制清除违规宠物
3.**事件触发机制**:利用`QFunction-0.txt`中的穿戴/传送事件触发检测
---
###二、基础配置:地图参数强制限制
####1.**地图配置文件修改(MapInfo.txt)**
在`D:\MirServer\Mir200\Envir\MapInfo.txt`中添加以下参数:
```ini
[地图名]MISSIONNORECALLNOGUILDRECALL
```
-**参数解析**:
-`MISSION`:强制清除地图内所有召唤物(包括宠物)
-`NORECALL`:禁止记忆召唤类技能(如法师诱惑之光)
-`NOGUILDRECALL`:禁止行会召唤操作
####2.**智能刷怪参数扩展**
对需要动态清理的地图添加:
```ini
[BOSS之家]NOMANNOMON
```
-`NOMANNOMON`:当无人存在时自动清理地图内所有生物(含宠物)
---
###三、动态脚本解决方案
####1.**机器人脚本定时清理(AutoRunRobot.txt)**
在`MirServer\Mir200\Envir\Robot_def\AutoRunRobot.txt`中添加:
```bash
#AutoRunNPCSEC10@清理宠物
```
对应机器人脚本:
```lua
[@清理宠物]
#IF
HOUR20:00-22:00//限制生效时间段
#ACT
CLEARMAPMON沙巴克皇宫//清理地图怪物
GMEXECUTE全服KILLSLAVE@MapIn(沙巴克皇宫)//强制清除宠物
SENDMSG6[系统]沙巴克皇宫已清场,禁止携带宠物!
```
**技术要点**:
-`CLEARMAPMON`需配合`MapQuest_def\MonGen.txt`刷怪配置
-`GMEXECUTE`命令需M2引擎开启GM权限穿透
####2.**NPC传送门预检测**
在传送NPC脚本中添加条件判断:
```lua
[@进入皇宫]
#IF
CHECKSLAVECOUNT>0//检测宠物数量
#ACT
MESSAGEBOX禁止携带宠物进入皇宫!
BREAK
#ELSEACT
MAPMOVE沙巴克皇宫330330
```
---
###四、高级功能:智能宠物检测系统
####1.**多维度状态检测表**
|检测维度|命令示例|适用场景|
|-----------------|-------------------------------|-----------------------|
|宠物数量|`CHECKSLAVECOUNT`|基础准入检测|
|宠物类型|`CHECKBATTERYID玉兔`|限制特定宠物|
|宠物等级|`CHECKSLAVELEVEL>50`|高等级宠物限制|
|携带时间|`CHECKPETONTIME>3600`|长时间挂机检测|
####2.**动态惩罚机制**
在`QFunction-0.txt`中添加:
```lua
[@OnSlaveComeOut]//宠物召唤触发事件
#IF
MAPNAME=沙巴克皇宫
#ACT
KILLSLAVE//立即清除宠物
KICK//踢出违规玩家
SENDMSG0[%s]在皇宫违规召唤宠物,已被强制下线!
```
---
###五、引擎差异适配指南
|引擎类型|特性支持|注意事项|
|----------|----------------------------------|---------------------------------|
|GOM|支持`CLEARMAPMON`动态清理|需更新至1108+版本|
|GEE|专用`DELMAPEFFECT`清除召唤特效|需配套GEE登录器|
|BLUE|仅支持基础`KILLSLAVE`命令|需手动修改M2参数|
|HERO|需通过`MapEvent.txt`触发|事件触发延迟较高|
---
###六、调试与排错手册
####1.**常见故障排查表**
|故障现象|检测点|解决方案|
|-------------------------|---------------------------------|-----------------------------|
|宠物未被清除|检查`KILLSLAVE`命令权限|在M2引擎开启GM命令穿透|
|地图参数不生效|验证`MapInfo.txt`编码格式|使用Notepad++转为ANSI编码|
|机器人脚本未执行|查看`Robot.txt`执行间隔设置|确保格式为`SEC10`(10秒)|
####2.**测试命令集**
```lua
//模拟玩家带宠传送
GMEXECUTE召唤虎卫
GMEXECUTEMAPMOVE沙巴克皇宫330330
//查看实时宠物列表
GMEXECUTEShowSlaveList
```
---
###结语:安全与体验的平衡法则
通过**三层防护体系**(准入限制+动态清除+违规惩罚),可有效实现地图宠物管控。建议对核心地图(如沙巴克)采用混合方案:
1.**入口NPC预检测**阻止90%违规行为
2.**机器人脚本每30秒二次清理**
3.**玩家下线时自动记录宠物状态**,防止卡位BUG

