C3打孔镶嵌分界面触发、NPC脚本、物品库宝石属性、M2开关四块。打孔用客户端打孔框配合@_HOLEINI、@_PUTDOWN、@_PUTUP、@_STARTHOLE等标签;镶嵌用@_PUTDOWNDIAMOND、@_PUTUPDIAMOND处理宝石放入取出;孔位颜色、成功率、成功失败回调用SetSuccessRate、SetHoleButton、SETHOLECOLOR、MakeHoleSucc、MakeHoleFail。宝石本身在StdItems里按StdMode、Shape、Source、AC/AC2、DC/DC2、MC/MC2、SC/SC2、HP、MP、Reserved配属性。
一、C3打孔界面触发标签
打开打孔界面触发@_HOLEINI,D99返回当前装备已开孔数。脚本里先清计数再等放材料。
放入打孔材料触发@_PUTDOWN,D99返回材料StdMode,D98返回Shape,D97返回孔位,D96返回叠加数,A99返回材料名;材料不被接受D99返回-1。失败用PUTDOWNFAIL反馈。
取下材料触发@_PUTUP,同样回传D99/D98/D97/D96/A99;失败D99=-1。
点打孔按钮触发@_STARTHOLE,D99返回目标孔位,D98返回装备MakeIndex,MakeIndex由系统给,脚本不要改。
相关控制命令:
SetSuccessRate数值向客户端发送成功率显示。
MakeHoleSucc打孔成功处理。
MakeHoleFail打孔失败处理。
SetHoleButton位置状态,位置1是打孔按钮、2是镶嵌按钮,状态1可用0不可用;SetHoleButton11开打孔,SetHoleButton21开镶嵌。
SETHOLECOLOR位置颜色,位置填1或2,颜色1红2黄3蓝,按本服颜色号扩展。
PUTDOWNFAIL孔位材料放入失败回退。
二、基础打孔NPC脚本
Npc_def或Market_Def按本服NPC类型建文件,打孔官脚本示例:
[@_HOLEINI]
IF
ACT
MOVD900
MOVD910
SENDMSG6打孔界面初始化,等待放入打孔材料
[@_PUTDOWN]
IF
EQUALD99-1
ACT
SENDMSG6材料放入失败
PUTDOWNFAIL%D97
BREAK
IF
EQUALD9970
ACT
INCD901
SetSuccessRate%D90
ELSEACT
PUTDOWNFAIL%D97
SENDMSG6不是打孔材料
BREAK
IF
EQUALD9970
SMALLD914
ACT
SetHoleButton11
SENDMSG6材料合规,可打孔
[@_PUTUP]
IF
EQUALD9970
ACT
DECD901
SetSuccessRate%D90
IF
SMALLD911
ACT
SetHoleButton10
SENDMSG6已取下材料,关闭打孔按钮
[@_STARTHOLE]
IF
ACT
RandomExD89100
IF
LARGED90D89
ACT
RandomExD15
SETHOLECOLOR11
MakeHoleSucc
ShowHumEff11421
SENDMSG6打孔成功
ELSEACT
MakeHoleFail
ShowHumEff14421
SENDMSG6打孔失败
D90做材料计数和成功率,D91限制最多孔数,示例SMALLD914表示最多4孔。RandomExD89100先取随机值,LARGED90D89表示成功率大于随机值则成;具体随机命令名按C3小版本替换,老版可用RANDOM100加D变量判断。MakeHoleSucc后装备获得孔位,但孔位实际数量仍受物品库或引擎最大孔数限制。
三、材料库设置
打孔材料在StdItems建行,StdMode按C3打孔材料配置填,上面示例用D99=70识别,说明材料StdMode为70;实际以本服打孔材料库为准。Shape区分不同材料类型,Anicount可放附加规则,Name、Price、Weight正常填。
若一种材料对应一孔、高级材料对应多孔,脚本用D98Shape分支:
IF
EQUALD9970
EQUALD981
ACT
MOVD911
SetHoleButton11
SENDMSG6普通打孔石,允许1孔
IF
EQUALD9970
EQUALD982
ACT
MOVD912
SetHoleButton11
SENDMSG6高级打孔石,允许2孔
材料名通过A99取,菜单提示可用A99拼接,但C3打孔框多以D系列回传为主。
四、宝石数据库字段
C3/通用凹槽宝石常用StdMode46,Shape决定属性类型:
Shape1防御,2魔御,3攻击,4魔法,5道术,6生命,7魔法值,8准确,9敏捷,10幸运,11攻速,12魔躲,13毒躲,14中毒恢复,15体恢,16法恢,17穿戴负重,18背包负重。
Source填基础属性值来源类型,AC填主值。若按基础七属性做宝石,Reserved=0时AC2、MAC2、DC2、MC2、SC2、HP、MP为对应增加量;例如攻击宝石Shape=3,DC填攻击值,DC2可按引擎作为附加攻击。
元素/特殊属性用AC体系时,AC1暴击、2攻击伤害、3物伤减少、4魔伤减少、5忽视防御、6伤害反弹、7人物暴率、8体力、9魔力、10怒气、11合击、12怪物暴率、13防暴、14防麻、15防护身、16防复活、17防全毒、18防诱惑、19防火墙、20防冻、21防蛛网、22麻痹、23复活、24护身、25魔道麻痹、26冰冻、27蛛网、28致命、29致命威力、30致命防御;AC2填对应百分比或数值。
Reserved控制卸下行为:0表示取宝石不消耗宝石,大于0表示卸下后宝石消失。需要玩家可反复拆装用0;做成消耗型高级孔用大于0。
Anicount在12到16附加属性时填1到10,对应10%到100%;AC在15到27的特殊状态类,AC2可作为触发概率1到100。
五、C3镶嵌界面触发
放宝石触发@_PUTDOWNDIAMOND,D99返回宝石StdMode,D98返回Shape,D97返回孔位,A99返回宝石名;失败D99=-1。
取宝石触发@_PUTUPDIAMOND,同样回传D99/D98/D97/A99。
脚本示例:
[@_PUTDOWNDIAMOND]
IF
EQUALD99-1
ACT
SENDMSG6宝石放入失败
BREAK
IF
EQUALD9946
ACT
SENDMSG6已放入宝石:%A99,孔位:%D97
SetHoleButton21
ELSEACT
SENDMSG6不是可镶嵌宝石
BREAK
[@_PUTUPDIAMOND]
IF
EQUALD9946
ACT
SENDMSG6已取下宝石:%A99
SetHoleButton20
ELSEACT
SENDMSG6取宝石失败
实际镶嵌提交由客户端点镶嵌按钮调用C3内部写孔;若用脚本命令强写,可参考其他引擎的SOCKETABLEITEM,但C3打孔框通常以@_PUTDOWNDIAMOND收材料、后端按Shape写属性。需要脚本检测已镶嵌用CheckSocketableItem类命令,检测数量用CheckSocketableItemCount,检测打孔用CheckDrillHole,检测打孔数量用CheckDrillHoleCount;这些更偏通用/其他引擎,C3若不支持就只用界面标签加M2宝石库。
六、通用OK框打孔备选
不用C3打孔框,可用凹槽命令自行做NPC。设孔:
SETFLUTECOUNT位置数量
位置:-1升级框,0到25装备栏,30到35首饰盒,40到51神佑袋,boxitem0到boxitem7OK框。
检测孔数:
CheckFluteCount位置符号数量
检测镶嵌数:
CheckItemStoneCount装备位置符号数量
检测指定宝石:
CheckItemHasStone装备位置宝石名数量
直接给装备写宝石,不消耗背包宝石:
ItemAddStone装备位置宝石名孔位置
孔位置0或空自动找空孔,1到8指定孔。
删除孔位宝石:
ItemDelStone装备位置孔位置
全身宝石统计:
CheckStoneCount宝石名符号数量
卸下宝石NPC标签@ArmRemoveStone,QF卸下触发@RemoveStoneItem,背包用宝石右键镶嵌可走@BagUseStoneItemOK。
七、宝石右键与混元锤卸下
StdItems建卸石道具:StdMode46,Shape9,名称混元锤;NPC或右键调用卸下界面,脚本头支持@ArmRemoveStone后玩家在对话框选择装备孔位取石。
右键直接镶嵌方案在ItemDescList.txt或M2列表信息二写备注,例如宝石备注“将需镶嵌装备放入背包后鼠标右键点击宝石,再左键点装备”。M2要开右键设置,路径:M2选项、物品装备、第一页右键/新增属性相关开关;不开右键宝石无反应。
八、M2开关与显示
打孔后属性不显示先查M2:选项、物品装备、新增属性,勾启用新增属性;元素、凹槽、新属性不显示多因该开关未开。重启M2和重新生成登录器后再测。
套装类凹槽要单独在M2列表信息套装功能建名称、成员、触发数量;StdItems相关字段填同编号。仅改NPC不改M2套装,可能导致全身多件宝石加成不统计。
九、宝石属性不生效排查
1.打孔成功但装备无孔:看@_STARTHOLE是否真的调用MakeHoleSucc;只看SENDMSG不算成功,必须过引擎写孔。D91最大孔数小于计划孔数会限制成功数。
2.有孔镶宝石无属性:StdItems宝石Shape与装备槽不匹配,武器用攻击石Shape3,衣服可防御魔御,饰品用攻魔道或特殊属性;StdMode不是46或Shape错,界面能放但属性不写。
3.元素属性灰色不显示:M2新增属性未启用,或登录器不是配套C3专用端;补丁PAK密码错也会界面异常。
4.卸下后宝石消失不符合预期:Reserved误填大于0;要保留改0,要消耗改1或更大。
5.右键无反应:M2右键开关未开、ItemDescList备注格式错、登录器不支持C3凹槽右键。
6.打孔材料放不进:@_PUTDOWN里D99判断错,材料StdMode不是脚本约定值;用A99打日志看实际材料名,D99打日志看StdMode。
7.成功率永远成功或失败:SetSuccessRate传入D90但@_STARTHOLE随机逻辑反了;LARGED90D89成、否则败,D90为0必然败,D90大于100按引擎随机范围调整。
8.多孔只显示一孔属性:检测CheckFluteCount/CheckItemStoneCount只查1孔;全身统计用CheckStoneCount,数据库AC/AC2只配单属性时多孔也只加一种。
十、完整打孔+镶嵌NPC结构
打孔官主标签走C3界面,不用主菜单发物品,靠客户端框交互:
[@main]
打孔镶嵌中心\\
打孔请放入装备后点开始\\
镶嵌请先打孔再放宝石\\
帮助请点/@help
[@help]
IF
SAY
材料StdMode按本服打孔材料设,示例70\\
宝石StdMode46,Shape1防2魔3攻4法5道\\
最多孔数在@_PUTDOWN用D91限制\\
成功率在@_STARTHOLE用D90与随机值比\\
[@_HOLEINI]
IF
ACT
MOVD900
MOVD910
SENDMSG6初始化打孔
[@_PUTDOWN]
IF
EQUALD99-1
ACT
PUTDOWNFAIL%D97
SENDMSG6材料异常
BREAK
IF
EQUALD9970
SMALLD914
ACT
INCD901
SetSuccessRate%D90
SetHoleButton11
SENDMSG6材料计入,当前成功率%D90
ELSEACT
PUTDOWNFAIL%D97
SENDMSG6材料不符或超最大孔数
BREAK
[@_STARTHOLE]
IF
ACT
RandomExD89100
IF
LARGED90D89
ACT
RandomExD15
SETHOLECOLOR11
MakeHoleSucc
ShowHumEff11421
SENDMSG6打孔成功
ELSEACT
MakeHoleFail
ShowHumEff14421
SENDMSG6打孔失败
[@_PUTDOWNDIAMOND]
IF
EQUALD9946
SMALLD974
ACT
SENDMSG6宝石%D97孔待镶嵌:%A99
SetHoleButton21
ELSEACT
SENDMSG6宝石类型错误或孔位超限
BREAK
[@_PUTUPDIAMOND]
IF
EQUALD9946
ACT
SENDMSG6取下宝石:%A99
SetHoleButton20
若本服C3不支持RandomEx,替换成RANDOM100存D89,再用LARGED90D89判断;ShowHumEff资源号114/144/21仅示例,按本服特效文件调整。
十一、按装备类型限制镶嵌
武器位置1只让攻击、暴击、攻速、准确、元素输出石:
IF
EQUALD983
ACT
SENDMSG6攻击宝石可镶武器
IF
EQUALD981
ACT
SENDMSG6防御宝石建议衣服头盔,武器拒绝可在此BREAK
衣服位置0可防魔御、HP、魔躲、减伤;戒指2/3可攻魔道、暴击、命中;勋章按本服位置配特殊石。StdMode19/20/21/23/24/5/6类无防魔的装备,不镶防御魔御,避免属性库计算异常。
十二、限量和高价值孔控制
高级装备最多3孔,普通最多1孔,在@_HOLEINI读装备名分支:
IF
CHECKITEMNAME极品屠龙
ACT
MOVD913
SENDMSG6该武器最高3孔
IF
CHECKITEMNAME普通战剑
ACT
MOVD911
SENDMSG6该武器最高1孔
CHECKITEMNAME按本服命令名替换;若用MakeIndex判断更准,但打孔框D98只回MakeIndex于@_STARTHOLE,初始化阶段可先按放入装备名设上限。打孔材料分普通/高级,高级材料提高D90成功率并允许更多孔,防止白装随便开多孔。
十三、数据库导入示例片段
攻击宝石行思路:
Name攻击宝石,StdMode46,Shape3,Source0,AC0,AC20,DC3,DC20,MAC0,MAC20,MC0,MC20,SC0,SC20,HP0,MP0,Reserved0,Anicount0。
魔法宝石Shape4,MC填值;道术Shape5,SC填值;防御Shape1,AC填值;魔御Shape2,MAC填值;生命Shape6,HP填值;魔法Shape7,MP填值。元素暴击宝石Shape按本服元素石设定,AC1,AC2填暴击百分比;物伤减少AC3,AC2填减伤百分比;魔伤减少AC4,AC2填百分比。麻痹石AC22,AC2填触发概率;复活石AC23,AC2填复活相关参数;具体数值受M2特殊状态子项限制。
混元锤卸石行:
Name混元锤,StdMode46,Shape9,Reserved按消耗设定,Price/Weight按本服填,备注写“右键混元锤进入卸石界面”。
十四、排错顺序固定
先M2开新增属性、右键、凹槽;再查StdItems宝石StdMode/Shape/Reserved;再开NPC看@_HOLEINI/@_PUTDOWN/@_STARTHOLE是否回传D99;再小号放普通装备打1孔,成功后在@_PUTDOWNDIAMOND放Shape3攻击石,看属性面板;不显示就换专用登录器、重导StdItems、清客户端缓存。打孔框整页不弹,优先看NPC是否C3打孔功能型注册、登录器是否支持C3凹槽,而不是先改脚本。全服都不显示元素只显示基础,M2新增属性未勾的概率最高;单件不打孔只放宝石无属性属正常,必须先打孔再镶嵌。
一、C3打孔界面触发标签
打开打孔界面触发@_HOLEINI,D99返回当前装备已开孔数。脚本里先清计数再等放材料。
放入打孔材料触发@_PUTDOWN,D99返回材料StdMode,D98返回Shape,D97返回孔位,D96返回叠加数,A99返回材料名;材料不被接受D99返回-1。失败用PUTDOWNFAIL反馈。
取下材料触发@_PUTUP,同样回传D99/D98/D97/D96/A99;失败D99=-1。
点打孔按钮触发@_STARTHOLE,D99返回目标孔位,D98返回装备MakeIndex,MakeIndex由系统给,脚本不要改。
相关控制命令:
SetSuccessRate数值向客户端发送成功率显示。
MakeHoleSucc打孔成功处理。
MakeHoleFail打孔失败处理。
SetHoleButton位置状态,位置1是打孔按钮、2是镶嵌按钮,状态1可用0不可用;SetHoleButton11开打孔,SetHoleButton21开镶嵌。
SETHOLECOLOR位置颜色,位置填1或2,颜色1红2黄3蓝,按本服颜色号扩展。
PUTDOWNFAIL孔位材料放入失败回退。
二、基础打孔NPC脚本
Npc_def或Market_Def按本服NPC类型建文件,打孔官脚本示例:
[@_HOLEINI]
IF
ACT
MOVD900
MOVD910
SENDMSG6打孔界面初始化,等待放入打孔材料
[@_PUTDOWN]
IF
EQUALD99-1
ACT
SENDMSG6材料放入失败
PUTDOWNFAIL%D97
BREAK
IF
EQUALD9970
ACT
INCD901
SetSuccessRate%D90
ELSEACT
PUTDOWNFAIL%D97
SENDMSG6不是打孔材料
BREAK
IF
EQUALD9970
SMALLD914
ACT
SetHoleButton11
SENDMSG6材料合规,可打孔
[@_PUTUP]
IF
EQUALD9970
ACT
DECD901
SetSuccessRate%D90
IF
SMALLD911
ACT
SetHoleButton10
SENDMSG6已取下材料,关闭打孔按钮
[@_STARTHOLE]
IF
ACT
RandomExD89100
IF
LARGED90D89
ACT
RandomExD15
SETHOLECOLOR11
MakeHoleSucc
ShowHumEff11421
SENDMSG6打孔成功
ELSEACT
MakeHoleFail
ShowHumEff14421
SENDMSG6打孔失败
D90做材料计数和成功率,D91限制最多孔数,示例SMALLD914表示最多4孔。RandomExD89100先取随机值,LARGED90D89表示成功率大于随机值则成;具体随机命令名按C3小版本替换,老版可用RANDOM100加D变量判断。MakeHoleSucc后装备获得孔位,但孔位实际数量仍受物品库或引擎最大孔数限制。
三、材料库设置
打孔材料在StdItems建行,StdMode按C3打孔材料配置填,上面示例用D99=70识别,说明材料StdMode为70;实际以本服打孔材料库为准。Shape区分不同材料类型,Anicount可放附加规则,Name、Price、Weight正常填。
若一种材料对应一孔、高级材料对应多孔,脚本用D98Shape分支:
IF
EQUALD9970
EQUALD981
ACT
MOVD911
SetHoleButton11
SENDMSG6普通打孔石,允许1孔
IF
EQUALD9970
EQUALD982
ACT
MOVD912
SetHoleButton11
SENDMSG6高级打孔石,允许2孔
材料名通过A99取,菜单提示可用A99拼接,但C3打孔框多以D系列回传为主。
四、宝石数据库字段
C3/通用凹槽宝石常用StdMode46,Shape决定属性类型:
Shape1防御,2魔御,3攻击,4魔法,5道术,6生命,7魔法值,8准确,9敏捷,10幸运,11攻速,12魔躲,13毒躲,14中毒恢复,15体恢,16法恢,17穿戴负重,18背包负重。
Source填基础属性值来源类型,AC填主值。若按基础七属性做宝石,Reserved=0时AC2、MAC2、DC2、MC2、SC2、HP、MP为对应增加量;例如攻击宝石Shape=3,DC填攻击值,DC2可按引擎作为附加攻击。
元素/特殊属性用AC体系时,AC1暴击、2攻击伤害、3物伤减少、4魔伤减少、5忽视防御、6伤害反弹、7人物暴率、8体力、9魔力、10怒气、11合击、12怪物暴率、13防暴、14防麻、15防护身、16防复活、17防全毒、18防诱惑、19防火墙、20防冻、21防蛛网、22麻痹、23复活、24护身、25魔道麻痹、26冰冻、27蛛网、28致命、29致命威力、30致命防御;AC2填对应百分比或数值。
Reserved控制卸下行为:0表示取宝石不消耗宝石,大于0表示卸下后宝石消失。需要玩家可反复拆装用0;做成消耗型高级孔用大于0。
Anicount在12到16附加属性时填1到10,对应10%到100%;AC在15到27的特殊状态类,AC2可作为触发概率1到100。
五、C3镶嵌界面触发
放宝石触发@_PUTDOWNDIAMOND,D99返回宝石StdMode,D98返回Shape,D97返回孔位,A99返回宝石名;失败D99=-1。
取宝石触发@_PUTUPDIAMOND,同样回传D99/D98/D97/A99。
脚本示例:
[@_PUTDOWNDIAMOND]
IF
EQUALD99-1
ACT
SENDMSG6宝石放入失败
BREAK
IF
EQUALD9946
ACT
SENDMSG6已放入宝石:%A99,孔位:%D97
SetHoleButton21
ELSEACT
SENDMSG6不是可镶嵌宝石
BREAK
[@_PUTUPDIAMOND]
IF
EQUALD9946
ACT
SENDMSG6已取下宝石:%A99
SetHoleButton20
ELSEACT
SENDMSG6取宝石失败
实际镶嵌提交由客户端点镶嵌按钮调用C3内部写孔;若用脚本命令强写,可参考其他引擎的SOCKETABLEITEM,但C3打孔框通常以@_PUTDOWNDIAMOND收材料、后端按Shape写属性。需要脚本检测已镶嵌用CheckSocketableItem类命令,检测数量用CheckSocketableItemCount,检测打孔用CheckDrillHole,检测打孔数量用CheckDrillHoleCount;这些更偏通用/其他引擎,C3若不支持就只用界面标签加M2宝石库。
六、通用OK框打孔备选
不用C3打孔框,可用凹槽命令自行做NPC。设孔:
SETFLUTECOUNT位置数量
位置:-1升级框,0到25装备栏,30到35首饰盒,40到51神佑袋,boxitem0到boxitem7OK框。
检测孔数:
CheckFluteCount位置符号数量
检测镶嵌数:
CheckItemStoneCount装备位置符号数量
检测指定宝石:
CheckItemHasStone装备位置宝石名数量
直接给装备写宝石,不消耗背包宝石:
ItemAddStone装备位置宝石名孔位置
孔位置0或空自动找空孔,1到8指定孔。
删除孔位宝石:
ItemDelStone装备位置孔位置
全身宝石统计:
CheckStoneCount宝石名符号数量
卸下宝石NPC标签@ArmRemoveStone,QF卸下触发@RemoveStoneItem,背包用宝石右键镶嵌可走@BagUseStoneItemOK。
七、宝石右键与混元锤卸下
StdItems建卸石道具:StdMode46,Shape9,名称混元锤;NPC或右键调用卸下界面,脚本头支持@ArmRemoveStone后玩家在对话框选择装备孔位取石。
右键直接镶嵌方案在ItemDescList.txt或M2列表信息二写备注,例如宝石备注“将需镶嵌装备放入背包后鼠标右键点击宝石,再左键点装备”。M2要开右键设置,路径:M2选项、物品装备、第一页右键/新增属性相关开关;不开右键宝石无反应。
八、M2开关与显示
打孔后属性不显示先查M2:选项、物品装备、新增属性,勾启用新增属性;元素、凹槽、新属性不显示多因该开关未开。重启M2和重新生成登录器后再测。
套装类凹槽要单独在M2列表信息套装功能建名称、成员、触发数量;StdItems相关字段填同编号。仅改NPC不改M2套装,可能导致全身多件宝石加成不统计。
九、宝石属性不生效排查
1.打孔成功但装备无孔:看@_STARTHOLE是否真的调用MakeHoleSucc;只看SENDMSG不算成功,必须过引擎写孔。D91最大孔数小于计划孔数会限制成功数。
2.有孔镶宝石无属性:StdItems宝石Shape与装备槽不匹配,武器用攻击石Shape3,衣服可防御魔御,饰品用攻魔道或特殊属性;StdMode不是46或Shape错,界面能放但属性不写。
3.元素属性灰色不显示:M2新增属性未启用,或登录器不是配套C3专用端;补丁PAK密码错也会界面异常。
4.卸下后宝石消失不符合预期:Reserved误填大于0;要保留改0,要消耗改1或更大。
5.右键无反应:M2右键开关未开、ItemDescList备注格式错、登录器不支持C3凹槽右键。
6.打孔材料放不进:@_PUTDOWN里D99判断错,材料StdMode不是脚本约定值;用A99打日志看实际材料名,D99打日志看StdMode。
7.成功率永远成功或失败:SetSuccessRate传入D90但@_STARTHOLE随机逻辑反了;LARGED90D89成、否则败,D90为0必然败,D90大于100按引擎随机范围调整。
8.多孔只显示一孔属性:检测CheckFluteCount/CheckItemStoneCount只查1孔;全身统计用CheckStoneCount,数据库AC/AC2只配单属性时多孔也只加一种。
十、完整打孔+镶嵌NPC结构
打孔官主标签走C3界面,不用主菜单发物品,靠客户端框交互:
[@main]
打孔镶嵌中心\\
打孔请放入装备后点开始\\
镶嵌请先打孔再放宝石\\
帮助请点/@help
[@help]
IF
SAY
材料StdMode按本服打孔材料设,示例70\\
宝石StdMode46,Shape1防2魔3攻4法5道\\
最多孔数在@_PUTDOWN用D91限制\\
成功率在@_STARTHOLE用D90与随机值比\\
[@_HOLEINI]
IF
ACT
MOVD900
MOVD910
SENDMSG6初始化打孔
[@_PUTDOWN]
IF
EQUALD99-1
ACT
PUTDOWNFAIL%D97
SENDMSG6材料异常
BREAK
IF
EQUALD9970
SMALLD914
ACT
INCD901
SetSuccessRate%D90
SetHoleButton11
SENDMSG6材料计入,当前成功率%D90
ELSEACT
PUTDOWNFAIL%D97
SENDMSG6材料不符或超最大孔数
BREAK
[@_STARTHOLE]
IF
ACT
RandomExD89100
IF
LARGED90D89
ACT
RandomExD15
SETHOLECOLOR11
MakeHoleSucc
ShowHumEff11421
SENDMSG6打孔成功
ELSEACT
MakeHoleFail
ShowHumEff14421
SENDMSG6打孔失败
[@_PUTDOWNDIAMOND]
IF
EQUALD9946
SMALLD974
ACT
SENDMSG6宝石%D97孔待镶嵌:%A99
SetHoleButton21
ELSEACT
SENDMSG6宝石类型错误或孔位超限
BREAK
[@_PUTUPDIAMOND]
IF
EQUALD9946
ACT
SENDMSG6取下宝石:%A99
SetHoleButton20
若本服C3不支持RandomEx,替换成RANDOM100存D89,再用LARGED90D89判断;ShowHumEff资源号114/144/21仅示例,按本服特效文件调整。
十一、按装备类型限制镶嵌
武器位置1只让攻击、暴击、攻速、准确、元素输出石:
IF
EQUALD983
ACT
SENDMSG6攻击宝石可镶武器
IF
EQUALD981
ACT
SENDMSG6防御宝石建议衣服头盔,武器拒绝可在此BREAK
衣服位置0可防魔御、HP、魔躲、减伤;戒指2/3可攻魔道、暴击、命中;勋章按本服位置配特殊石。StdMode19/20/21/23/24/5/6类无防魔的装备,不镶防御魔御,避免属性库计算异常。
十二、限量和高价值孔控制
高级装备最多3孔,普通最多1孔,在@_HOLEINI读装备名分支:
IF
CHECKITEMNAME极品屠龙
ACT
MOVD913
SENDMSG6该武器最高3孔
IF
CHECKITEMNAME普通战剑
ACT
MOVD911
SENDMSG6该武器最高1孔
CHECKITEMNAME按本服命令名替换;若用MakeIndex判断更准,但打孔框D98只回MakeIndex于@_STARTHOLE,初始化阶段可先按放入装备名设上限。打孔材料分普通/高级,高级材料提高D90成功率并允许更多孔,防止白装随便开多孔。
十三、数据库导入示例片段
攻击宝石行思路:
Name攻击宝石,StdMode46,Shape3,Source0,AC0,AC20,DC3,DC20,MAC0,MAC20,MC0,MC20,SC0,SC20,HP0,MP0,Reserved0,Anicount0。
魔法宝石Shape4,MC填值;道术Shape5,SC填值;防御Shape1,AC填值;魔御Shape2,MAC填值;生命Shape6,HP填值;魔法Shape7,MP填值。元素暴击宝石Shape按本服元素石设定,AC1,AC2填暴击百分比;物伤减少AC3,AC2填减伤百分比;魔伤减少AC4,AC2填百分比。麻痹石AC22,AC2填触发概率;复活石AC23,AC2填复活相关参数;具体数值受M2特殊状态子项限制。
混元锤卸石行:
Name混元锤,StdMode46,Shape9,Reserved按消耗设定,Price/Weight按本服填,备注写“右键混元锤进入卸石界面”。
十四、排错顺序固定
先M2开新增属性、右键、凹槽;再查StdItems宝石StdMode/Shape/Reserved;再开NPC看@_HOLEINI/@_PUTDOWN/@_STARTHOLE是否回传D99;再小号放普通装备打1孔,成功后在@_PUTDOWNDIAMOND放Shape3攻击石,看属性面板;不显示就换专用登录器、重导StdItems、清客户端缓存。打孔框整页不弹,优先看NPC是否C3打孔功能型注册、登录器是否支持C3凹槽,而不是先改脚本。全服都不显示元素只显示基础,M2新增属性未勾的概率最高;单件不打孔只放宝石无属性属正常,必须先打孔再镶嵌。

