传奇HeroM2检查人物性别脚本命令详解与实战写法

来源: 作者: 点击:
一、核心命令:GENDER

HeroM2引擎(及Blue/LEG等衍生版)检查当前触发脚本的人物性别,使用的脚本命令是 GENDER。它属于条件检测指令,必须放在 #IF 段后使用。

基础语法格式:
#IF
GENDER 性别参数
#ACT
; 条件成立时执行的命令
#ELSESAY
; 条件不成立时的提示


参数说明(支持两种写法):
• MAN 或 男:匹配男性角色。

• WOMAN 或 女:匹配女性角色。

二、脚本实战:检测与分支逻辑

1. NPC对话中的性别检测

常用于发放性别专属装备(如男女衣服)或限制任务接取。
[@GetCloth]
#IF
GENDER MAN
#ACT
Give 战神盔甲(男) 1
SendMsg 6 男性盔甲已发放。
Break
#ELSESAY
#IF
GENDER WOMAN
#ACT
Give 天师长袍(女) 1
SendMsg 6 女性长袍已发放。
Break
#ELSESAY
性别检测异常,无法发放装备。


2. 物品使用触发(StdModeFunc)

在物品数据库设置功能编号(如150),脚本中检测使用者性别。
[@StdModeFunc150] ; 双击物品触发
#IF
GENDER MAN
#ACT
Take 性别转换卡 1
CHANGEGENDER 1 ; 变为女性
SendMsg 6 性别已转换为女性。
Break


三、进阶:检查“对面”或“指定”人物性别

GENDER 命令只能检测当前正在执行脚本的人物(即自己)。 若需检测对面站立的玩家或指定目标,需使用其他命令:

1. 检查面对面玩家性别:使用 CHECKPOSEGENDER。
#IF
CHECKPOSEGENDER MAN ; 检测对面玩家是否为男性
#ACT
SendMsg 6 对面是一位男性玩家。

注意:此命令通常要求两人面对面站立。

2. 检查英雄性别:使用 Hero.GENDER 或变量 <$HEROGENDER>。
#IF
Hero.GENDER MAN
#ACT
SendMsg 6 你的英雄是男性。



四、常见错误与排查

1. 命令拼写错误:HeroM2引擎严格区分大小写。必须写 GENDER,写成 Gender 或 gender 会导致M2报错或条件永远不成立。
2. 参数错误:参数只能是 MAN/男 或 WOMAN/女。若写成 MALE 或 FEMALE 将无法识别。
3. 作用对象混淆:在NPC脚本中,GENDER 检测的是点击NPC的玩家。无法直接用 GENDER 检测NPC自身或未触发脚本的第三方玩家。

总结:HeroM2检查性别的基础命令是 GENDER,配合 MAN/WOMAN 参数使用。检测他人需换用 CHECKPOSEGENDER 或通过变量间接获取。