星河彩虹独立端知识库
文档目录
大功能解析说明

成就系统

成就系统客户端配置

客户端Data\config\AchievementCfg.xml 成就信息相关配置

成就条目 XML 配置说明

代码示例
格式:id:需要与服务端一致 name:成就名字 desc:成就描述 has_pro:是否显示进度条(0:不显示 / 1:显示)

<Item id = "100" name = "驰骋天涯" desc = "达成条件:进行1次骑乘" has_pro = "1" />

成就子项 XML 配置说明

以下配置为该成就下需完成子类信息

代码示例
<Item id = "1300" name = "生死不渝" desc = "达成条件:使用以下所有天空烟花" has_pro = "1" >
<String name = "姹紫嫣红" bitpos = "1" />
<String name = "红色恋人" bitpos = "2" />
<String name = "蓝色妖姬" bitpos = "3" />
<String name = "红粉佳人" bitpos = "4" />
<String name = "金碧辉煌" bitpos = "5" />
<String name = "心心相映" bitpos = "6" />
<String name = "天若有情" bitpos = "7" />
<String name = "双宿双飞" bitpos = "8" />
<String name = "花开并蒂" bitpos = "9" />
<String name = "地久天长" bitpos = "10" />
<String name = "痴心一片" bitpos = "11" />
<String name = "两心缠绵" bitpos = "12" />
<String name = "真心一世" bitpos = "13" />
</Item>

成就系统服务端配置

服务端\Mir200\Config\achievement.xml 成就信息相关配置

xml配置说明:

代码示例
该 JobShowProps 配置为职业显示对应属性,需要配置三职业,下面配置仅为job=1(法师)
<JobShowProps job = "1" >
<ShowProp name = "db" show_name = "躲避" />
<ShowProp name = "fy" show_name = "防御力" />
<ShowProp name = "mfgj" show_name = "魔法" />
<ShowProp name = "mz" show_name = "命中" />
<ShowProp name = "mfdb" show_name = "魔法躲避" />
<ShowProp name = "mfmz" show_name = "魔法命中" />
<ShowProp name = "mp" show_name = "魔法值" />
<ShowProp name = "mffy" show_name = "魔防力" />
<ShowProp name = "hp" show_name = "生命值" />
</JobShowProps>

xml配置说明2: 以下配置为成就每个等级的经验以及对应职业属性加成,属性为叠加(成就等级为10级,则用户需要10段以下配置)

代码示例
<AchieveLevel max_exp = "100" >
<Jobprop job = "0" >
<Prop name = "hp" value_1 = "35" value_2 = "35" />
<Prop name = "gj" value_1 = "1" value_2 = "2" />
</Jobprop>
<Jobprop job = "1" >
<Prop name = "hp" value_1 = "35" value_2 = "35" />
<Prop name = "mfgj" value_1 = "1" value_2 = "2" />
</Jobprop>
<Jobprop job = "2" >
<Prop name = "hp" value_1 = "35" value_2 = "35" />
<Prop name = "dsgj" value_1 = "1" value_2 = "2" />
</Jobprop>
</AchieveLevel>

xml配置说明:

代码示例
格式:id:成就id,需要与客户端一致 name:成就名字 max_exp:成就经验(成就进度) group:成就组 point:成就点

<Achieve id = "100" name = "驰骋天涯" max_exp = "1" group = "0" point = "5" />

可以配置单个成就奖励

<Achieve id = "100" name = "驰骋天涯" max_exp = "1" group = "0" point = "5" item = "飞行靴" item_num = "5" />

成就系统相关命令以及变量

1、完成单个指定成就命令

ChangeAchieveExp 参数1 参数2 参数3
参数1:
成就ID
参数2:
操作符( + 、= )
参数3:
成就经验(成就进度)

执行此命令,如果成就可完成,引擎将自动写入完成成就时间以及附加人物成就点

代码示例
[@测试脚本]
#IF
True
#ACT
ChangeAchieveExp 100 + 1
SENDMSG 5 完成“驰骋天涯”成就
break

2、完成指定成就组命令

ChangeAchieveGroupExp 参数1 参数2 参数3
参数1:
成就组ID
参数2:
操作符( + 、= )
参数3:
成就经验(成就进度)

执行此命令,如果成就组内有可以完成的成就,引擎将自动写入完成成就时间以及附加人物成就点

代码示例
[@测试脚本]
#IF
True
#ACT
ChangeAchieveGroupExp 2 + 1
SENDMSG 5 成就组"默默无闻"、"小有名气"、"名声在外",该成就组进度+1
break

3、调整开启指定成就子类信息

SetAchieveBits 参数1 参数2 参数3
参数1:
成就组ID
参数2:
子类id
参数3:
开关(0:开启/1:关闭)

该命令调整部分成就子类信息开关

代码示例
[@测试脚本]
#IF
True
#ACT
SetAchieveBits 1300 1 1
SENDMSG 5 成就(生死不渝)中子类“姹紫嫣红”开启
break

4、调整指定成就显示状态

SetAchieveState 参数1 参数2
参数1:
成就ID
参数2:
状态(0:未完成/1:已完成(未领取)/2:已领取)
注意:该命令只是作为显示,以及针对调整单个成就奖励的按钮状态
代码示例
[@测试脚本]
#IF
True
#ACT
SetAchieveState 100 2
SENDMSG 5 成就(驰骋天涯)按钮奖励为已领取
break

5、点击成就奖励按钮触发QM脚本中 [@_成就_物品领取] 标签并返回以下参数

$PARAM(0) //成就ID

针对成就服务端配置单个奖励后,完成该成就后客户端则会显示 "领取"按钮

代码示例
[@_成就_物品领取]
#IF
True
#ACT
SENDMSG 5 成就ID:<$PARAM(0)>
break

6、调整玩家成就点

ChangeAchievePoint 参数1 参数2
参数1:
操作符( + 、= )
参数2:
数值
代码示例
[@测试脚本]
#IF
True
#ACT
ChangeAchievePoint + 10
SENDMSG 5 成就点+10点
break

7、调整玩家成就等级

ChangeAchievelv 参数1 参数2
参数1:
操作符( + 、= )
参数2:
数值
代码示例
[@测试脚本]
#IF
True
#ACT
ChangeAchievelv + 1
SENDMSG 5 成就等级+1级
break

6、成就相关变量

代码示例
 X:表示成就ID

$ACHIEVE[X].NAME //成就名称
$ACHIEVE[X].EXP //成就进度
$ACHIEVE[X].MAXEXP //成就最大进度
$ACHIEVE[X].STATE //成就状态
$ACHIEVE[X].TIME //成就完成时间 (未完成显示为0)
$ACHIEVE[X].POINT //成就点
$ACHIEVE[X].GROUP //成就组ID
$ACHIEVE[X].ITEM //成就奖励物品
$ACHIEVE[X].ITEMNUM //成就奖励物品数量
$ACHIEVE[X].BITS(Y) //成就子类状态 (Y为子类id)

$ACHIEVEPOINT //当前玩家成就点
$ACHIEVELV //当前玩家成就等级

本页目录