强化系统基础架构
装备强化脚本基于传奇引擎QFunction脚本系统,核心功能包含装备检测、材料验证、概率计算、属性修改、结果反馈五个模块。脚本文件存放于M2Server引擎Script文件夹,通过NPC对话触发执行。
武器强化脚本实现
裁决之杖强化示例,基础攻击15,强化后16至18点:
[@WeaponUpgrade]
IF
CHECKITEM 裁决之杖 1
CHECKITEM 蓝宝石 5
CHECKGOLD >= 10000
ACT
TAKE 裁决之杖 1
TAKE 蓝宝石 5
CHANGE -10000
CALC G_Rand = RANDOM 100
IF G_Rand = 5000
ACT
TAKE 白色虎齿项链 1
TAKE 蓝宝石 3
CHANGE -5000
CALC G_Rand = RANDOM 100
IF G_Rand = 8000
ACT
TAKE 天魔战甲 1
TAKE 蓝宝石 5
CHANGE -8000
CALC G_Rand = RANDOM 100
IF G_Rand 0
BEGIN
DEC P_WeaponLevel
SAVEVAR P_WeaponLevel
SendCenterMsg 250 252 强化失败 等级降一级 1 30
END
ELSE
SendCenterMsg 250 252 强化失败 装备已消失 1 30
BREAK
模式1为装备消失,模式2为等级降级。管理员可在配置文件中设置惩罚模式。
保护符道具使用
强化保护符可避免失败时装备消失:
[@UseProtectItem]
IF
CHECKITEM 强化保护符 1
ACT
TAKE 强化保护符 1
SET P_ProtectFlag 1
SendCenterMsg 250 252 已使用保护符 失败不消失 1 30
ELSE
SET P_ProtectFlag 0
BREAK
[@FailWithProtect]
IF
P_ProtectFlag = 1
ACT
SendCenterMsg 250 252 保护符生效 装备保留 1 30
GIVE 原装备 1
CLEAR P_ProtectFlag
ELSE
SendCenterMsg 250 252 强化失败 装备已消失 1 30
BREAK
保护符消耗品,使用后失败不消失但强化等级不提升。
NPC对话菜单配置
强化NPC提供完整对话菜单:
[@MAIN]
欢迎来到装备强化中心
[@RuleInfo]
ACT
SendMsg 0 强化规则说明
SendMsg 0 一级强化成功率百分之八十
SendMsg 0 二级强化成功率百分之六十
SendMsg 0 三级强化成功率百分之四十
SendMsg 0 四级强化成功率百分之二十
SendMsg 0 五级强化成功率百分之十
SendMsg 0 失败装备消失或使用保护符保留
BREAK
[@CheckLevel]
ACT
SendMsg 0 武器强化等级:%P_WeaponLevel
SendMsg 0 项链强化等级:%P_NecklaceLevel
SendMsg 0 衣服强化等级:%P_ArmorLevel
BREAK
批量强化功能
支持一次性强化多件装备:
[@BatchUpgrade]
IF
CHECKITEM 裁决之杖 5
CHECKITEM 蓝宝石 25
CHECKGOLD >= 50000
ACT
TAKE 裁决之杖 5
TAKE 蓝宝石 25
CHANGE -50000
MOV G_SuccessCount 0
MOV G_Index 0
WHILE G_Index P_LastUpgradeDay
BEGIN
MOV P_UpgradeCount 0
MOV P_LastUpgradeDay D
SAVEVAR P_LastUpgradeDay
END
IF P_UpgradeCount = 1
ACT
CALC G_Bonus = P_VIPLevel * 5
CALC G_Rand = RANDOM 100
CALC G_CheckValue = 60 + G_Bonus
IF G_Rand = 20000
ACT
CHANGE -20000
BREAK
ELSE
SendMsg 0 材料不足 无法强化
BREAK
蓝宝石5个、蓝水晶10个、金币20000三种方式任选其一。
脚本部署步骤
第一步打开M2Server/Script/QFunction.txt文件。第二步添加装备强化脚本代码。第三步配置NPC对话触发。第四步设置变量持久化。第五步重启M2Server使配置生效。第六步进入游戏测试功能。
部署检查清单:
脚本文件编码ANSI
物品名称准确匹配
变量配置完成
概率数值合理
测试角色可触发
测试验证流程
创建测试角色准备装备和材料,与强化NPC对话选择强化选项。观察材料消耗是否正确,概率触发是否准确,属性修改是否生效。测试失败惩罚机制,验证保护符功能。检查强化等级记录是否持久化。
测试场景:
材料充足强化成功
材料不足提示错误
概率触发准确
失败惩罚生效
保护符功能正常
等级记录持久
常见问题处理
强化不生效检查物品名称是否准确,脚本语法是否有误。概率不准确确认RANDOM命令执行,数值范围正确。材料不消耗验证TAKE命令格式,物品数量充足。
排查清单:
检查脚本语法错误
确认物品名称匹配
验证变量初始化
检测概率计算
查看M2Server日志
扩展功能实现
添加强化排行榜,记录全服强化等级最高玩家:
[@RecordRank]
ACT
IF P_WeaponLevel > G_MaxWeaponLevel
BEGIN
MOV G_MaxWeaponLevel P_WeaponLevel
MOV G_MaxWeaponPlayer P_Name
SaveVar G_MaxWeaponLevel
SaveVar G_MaxWeaponPlayer
SendCenterMsg 250 252 新纪录 玩家%P_Name武器强化%P_WeaponLevel级 1 30
END
BREAK
添加强化成就系统,达成条件发放奖励:
[@UpgradeAchievement]
IF
P_WeaponLevel >= 5
ACT
GIVE 强化大师称号 1
SendCenterMsg 250 252 恭喜获得强化大师称号 1 30
BREAK
添加强化保险功能,支付额外金币失败不降级:
[@UpgradeInsurance]
IF
CHECKGOLD >= 5000
ACT
CHANGE -5000
SET P_InsuranceFlag 1
SendMsg 0 已购买强化保险
ELSE
SET P_InsuranceFlag 0
BREAK

