当前位置:首页 > 实操教程 > GOM引擎 > 正文内容

GOM引擎StdMode47准星物品配置教程

M2GM2026-10-01GOM引擎7
摘要:StdMode=47是GOM引擎准星物品,右键使用后鼠标变准星,选物品后触发QF里[@StdmodeShowX]段,X为物品Anicount。本文说明OverLap=1可叠加、Shape=50用后消失或51不消失,介绍BagItemName变量,给出ChangeBagItemName改名示例,解答段名写错等问题。…
[TOCM]

右键用一件物品,鼠标立刻变成准星,点选另一个背包物品后触发脚本——这就是StdMode=47准星物品的效果。准星物品和31类双击直接触发不一样,它多了一步选目标的动作,适合做给指定物品改名、标记、加点这类需要先选对象的功能。

做起来要满足三个条件:物品必须可叠加、Shape填50或51、右键后跳到[@StdmodeShowX]段。下面把规则和完整脚本讲清,顺便说清它和31类的段名区别。

GOM引擎StdMode47准星物品配置配图 - M2GM

StdMode47准星物品触发机制

StdMode=47是一类准星物品。人物右键使用这种物品后,鼠标会变成准星状态,此时需要再点选一个目标人物,选中后引擎才跳到QF里对应的触发段。段名格式是[@StdmodeShowX],其中X填的是这件物品的Anicount字段值。

这里和31类的区别要记牢:31类双击背包物品触发的是[@StdModeFuncExX],47类右键变准星选目标触发的是[@StdmodeShowX]。一个是FuncEx、一个是Show,段名接的都是物品Anicount,但别写混。

选完目标后,触发段里有两个专属变量可用:当前选中物品名用<$BagItemName>,当前选中物品唯一ID用<$BagItemMakeIndex>。如果触发段名或Anicount对不上,鼠标会恢复正常,什么都不执行。

StdMode47准星物品Shape与叠加规则内容示意图 - M2GM

Shape与叠加规则

字段 取值 作用
OverLap 1 物品必须可叠加
Shape 50 物品使用后消失
Shape 51 物品使用后不消失

47类物品有个硬要求:必须可叠加,也就是StdItems.db里OverLap字段要填1。不设成可叠加,右键后变准星这一步就起不来,这是很多新手配完没反应的直接原因。

Shape字段在47类里的用法和31类一致:填50,物品右键使用后消失;填51,物品用了还在。做一次性标记道具用50,做反复用的选目标工具用51。

配置注意事项

第一个坑是没开可叠加。47类要求OverLap=1,很多人照着31类的经验把物品设成不可叠加,结果右键根本不变准星,点了直接当普通物品处理。

第二个坑是段名写错。47类用的是[@StdmodeShowX],注意是Show不是FuncEx,X要和物品Anicount一致。写成31类的FuncEx段,右键选完目标引擎找不到段,鼠标恢复正常,脚本不执行。

第三个坑是变量取错。47类触发段里用的是<$BagItemName>和<$BagItemMakeIndex>,取的是你准星选中的那个目标物品,不是右键用的那件源物品。名字差一个字母,取到的就是错的对象。

StdMode47准星物品右键选目标脚本示意图 - M2GM

准星物品配置实操

第一步,在StdItems.db里新建一件物品,StdMode填47,OverLap填1让它可叠加,Anicount填一个数字比如40,Shape按需求选50或51。

第二步,打开QF触发脚本,照[@StdmodeShow40]建一个段,段名里的40和物品Anicount对应,在段里用<$BagItemName>和<$BagItemMakeIndex>取准星选中的目标物品。

第三步,保存脚本后在M2里重载QF,进游戏右键这件物品,确认鼠标变准星、点选背包物品后触发段正常执行,Shape=50的用后消失、51的用后还在。

下面是官方文档给的完整脚本示例,用准星选中一件物品后给它改名:

[@StdmodeShow40]
#IF
CheckBagItemCountEx <$BagItemName> 1
#ACT
SendMsg 6 人物当前选中的物品名字:<$BagItemName> 选中的唯一ID:<$BagItemMakeIndex>
#ACT
CloseBigDialogBox
#ACT
MOV S0 <$BagItemName>
#ACT
ChangeBagItemName <$BagItemMakeIndex> 改名后的名字
#IF
CheckBagItemCountEx <$BagItemName> 1
#ACT
SendMsg 6 改名后的物品名字:<$STR(S0)>

这段先用CheckBagItemCountEx确认选中物品存在,再把选中物品名存进S0变量,用ChangeBagItemName按唯一ID改名,最后再提示改名前后的名字。右键选目标这类UI增强界面效果,靠这套段和变量就能实现。

问答汇总

1. 问:右键用物品鼠标没变准星,直接就用掉了怎么回事?

先查这件47类物品有没有把OverLap设成1,47类必须可叠加才会进入准星状态;再查StdMode是不是真的填了47。如果StdMode填成别的,右键会按普通物品处理,当然不会变准星。OverLap和StdMode两项对了,右键才会触发选目标动作。(来源:传奇技术博客园,2017-12检索,已去隐私)

2. 问:47类和31类物品触发段名怎么区分?

31类双击背包物品触发[@StdModeFuncExX],Func后面带Ex;47类右键变准星选目标触发[@StdmodeShowX],段名是Show。两类X都接物品Anicount。配的时候看StdMode是31还是47,段名跟着走,写混了引擎找不到段,鼠标会恢复正常。(来源:引擎技术文档站,2022-06检索,已去隐私)

3. 问:47类物品为什么必须设成可叠加?

StdMode=47这类准星物品,官方文档明确要求OverLap设为1也就是可叠加。不设可叠加,右键使用后变准星这一步起不来,选目标动作无法触发。这是47类和31类在物品库配置上最大的不同,做之前先把OverLap配对。(来源:百度知道,2022-03检索,已去隐私)

4. 问:[@StdmodeShowX]里的X怎么和物品对应?

X填的是这件47类物品在StdItems.db里的Anicount字段值。物品Anicount是几,QF里的触发段就写[@StdmodeShow几]。比如Anicount是40,段名就是[@StdmodeShow40]。段名数字和Anicount对不上,右键选完目标就找不到对应脚本。

5. 问:Shape=50和51在47类里有什么区别?

Shape填50,这件准星物品右键使用后就消失;填51,物品用了之后还留在背包里可以继续用。做一次性的标记或消耗道具选50,做反复用的选目标工具选51。两种都是StdMode=47,区别只在用完消不消失。

6. 问:选完目标鼠标没变回来是什么原因?

如果选完目标后脚本执行了但鼠标还卡在准星状态,多半是触发段名或Anicount没对上,引擎没认到这个段,就按异常情况让鼠标恢复或卡住。正常情况下段名匹配后脚本执行完鼠标就恢复正常;如果段里弹了窗口,记得加CloseBigDialogBox把对话框关掉。

7. 问:<$BagItemName>和<$BagItemMakeIndex>怎么取选中物品?

在[@StdmodeShowX]段里,<$BagItemName>取的是准星选中的目标物品名字,<$BagItemMakeIndex>取的是这件目标物品的唯一ID。拿到唯一ID后就能配合ChangeBagItemName这类命令,精准操作背包里被选中的那一件物品,不会误伤同名的其他物品。

总结

StdMode47准星物品配起来就是四步:StdMode填47、OverLap填1可叠加、Shape选50或51、在QF写[@StdmodeShowX]触发段。右键变准星、点选目标物品后用<$BagItemName>和<$BagItemMakeIndex>取对象,就能做物品改名、标记这类右键选目标功能。把准星物品的Show段名和31类的FuncEx段名分清楚,配置时就不会选完目标没反应。

以上OverLap可叠加、Shape选50还是51、以及[@StdmodeShowX]选目标触发的写法,均在本地GOM引擎里用真物品右键点选验证过,准星状态与改名结果都看过效果;该套写法基于GOM引擎的47类规则,移植到其他引擎时变量名和段名需自行调整。本文内容仅限单机本地学习调试使用。

扫描二维码推送至手机访问。

本文章M2GM发布,如需转载请注明出处。如有侵权请联系站长删除。

本文内容仅供个人单机学习研究、功能调试、玩法逻辑测试使用,不涉及任何公网搭建、商业运营、资源交易行为,仅用于个人学习与实操体验。

本文链接:https://www.m2gm.com/tech/gom/gom-stdmode47/

分享给朋友:

相关文章

翎风引擎GetPlayInfo怎么用?取玩家等级金币全字段对照

翎风引擎GetPlayInfo怎么用?取玩家等级金币全字段对照

翎风引擎GetPlayInfo教程:玩家名字/字段号/变量三参数、0等级1职业2金币3血量4最大血量、只查在线玩家、S变量读数字也能算,做排行榜和信息查询NPC直接套用。…

新手问:翎风引擎GM命令怎么刷怪?Mongen刷怪参数详解

新手问:翎风引擎GM命令怎么刷怪?Mongen刷怪参数详解

翎风引擎GM命令刷怪教程:@刷怪 怪物名 数量 范围三参数、GM等级≥3才生效、名字大小写要对、测试完用@怪物清除清怪,调试新怪模型和爆率快速上手。…

翎风引擎HumanHP怎么用?调整人物血量加减血命令详解

翎风引擎HumanHP怎么用?调整人物血量加减血命令详解

翎风引擎HumanHP教程:+加-减=设值三控制符、超上限自动截断、=是设值不是加血、和MAXHP区别、狂暴之力登录常驻,单机测试小号测。…

NPC命令打开卧龙笔记怎么写?Blue引擎OPENBOOK书页详解

NPC命令打开卧龙笔记怎么写?Blue引擎OPENBOOK书页详解

OPENBOOK是BLUE引擎由NPC打开卧龙笔记书页的命令,后接三参数:参数1指定Data\books子目录,参数2指定该目录下uib文件,参数3指定跳转节名。含OPENBOOK 1 0 @gohill配[@gohill]TRUE再MAPMOVE传图步骤,uib为BMP可自制、跳转段须加TRUE才触发进庄。…

大秦插件NPC点击触发怎么带参数?NPC脚本传参脚本教程

大秦插件NPC点击触发怎么带参数?NPC脚本传参脚本教程

大秦插件NPC点击触发带参数教程:按钮前MOV S0赋值;<$STR(S0)>按钮写法;目标段读S0判断;参数不能有空格只能传S变量;多按钮多功能NPC,附避坑与实操步骤。…

我调SD插件宝宝范围切割SDBDELMONHPEX命令时踩过的坑

我调SD插件宝宝范围切割SDBDELMONHPEX命令时踩过的坑

SD插件宝宝范围切割教程:命令SDBDELMONHPEX十个参数,参数4范围基准0自身1目标,坐标用当前坐标变量跟随角色,参数8填3只切怪物,含避坑与对比分析,适配SD插件脚本学习,仅供单机本地调试。…

宝宝名颜色改不掉?996引擎ChangeSlaveNameColor变色脚本教程

宝宝名颜色改不掉?996引擎ChangeSlaveNameColor变色脚本教程

996引擎ChangeSlaveNameColor教程:一个参数颜色值;253红254绿255蓝;改所有宝宝;下线恢复默认;新招宝宝默认色,附避坑与实操步骤。…

回收倍率改了没生效?SD插件SDSetRecycleRate回收率设置详解

回收倍率改了没生效?SD插件SDSetRecycleRate回收率设置详解

SD插件回收率设置详解:命令SDSetRecycleRate三个参数,收益类型0到7对应全部及七类收益,操作符加减设,百分比控倍率,改后重载NPC生效,含对比分析与避坑,适配SD插件脚本学习,仅供单机本地调试。…