传奇Gee引擎:深入解析31类与47类物品扩展及其右键准星使用机制
在传奇Gee引擎中,物品的分类和功能得到了进一步的扩展,新增了31类和47类物品,以及相应的使用机制。以下是关于这些扩展的详细说明。
31类物品扩展设置
31类物品支持放入物品框,并在死亡后使用。在物品数据库中,将reserved字段设置为1,即可限制仅在死亡后使用该物品。此外,StdMode字段设置为-2时,物品可以放入物品栏。
Shape=50:物品使用一次后消失。
Shape=51:物品可以一直使用,直到手动删除。
47类物品扩展说明
新增的47类物品支持叠加使用,与宝石镶嵌类似,可以与31类物品结合使用,背包中直接执行。
StdMode=47:新增扩展物品,可叠加。
Shape=50:物品使用一次后消失,准星对准物品后视为使用。
Shape=51:物品可以一直使用,直到手动删除。
右键准星使用机制
使用右键后,鼠标将变为准星模式,对准物品即可使用。
触发:人物和英雄使用上述两种类型的物品时,将分别在QF中触发[@StdmodeShowX]和[@HeroStdmodeShowX],其中X为物品的Anicount。
NPC变量与命令
NPC变量:增加了用于显示当前使用物品名和给力ID的变量,以及用于显示当前准星使用对象物品名和给力ID的变量。
NPC命令:新增了关联背包物品和从背包删除关联物品的命令,支持叠加物品的操作。
脚本示例
以下是一些脚本示例,展示了如何使用这些新功能和变量:
[@StdModeFuncEx1]
#act
SendMsg 6 当前使用的物品名:<$UseItemName>,给力ID:<$UseItemMakeIndex>;本物品使用完后会直接消失
[@StdModeShow1]
#if
#act
SendMsg 6 人物当前使用的物品名:<$UseItemName>,给力ID:<$UseItemMakeIndex>
SendMsg 6 使用物品目标名字:<$BagItemName>,给力ID:<$BagItemMakeIndex>
SendMsg 6 邪恶の力量到此一游
LinkBagItem <$BagItemMakeIndex>
CHANGEITEMUPGRADECOUNT -1 + 1
UpdateItem -1
ClearLinkItem
break
31类物品扩展设置,支持放入物品框和死亡使用StdMode为31类物品数据库reserved字段设置为:1 则限制死亡后才可以使用
新增物品分类47,物品可叠加使用,类似宝石镶嵌~和31类的··结合产物,背包直接执行
StdMode为31类物品数据库source字段为:-2 可以放入物品栏
StdMode=47 新增扩展物品 可叠加
Shape=50, 物品使用一次后消失 , 准星对准物品前往了 和宝石镶嵌那样视为使用
Shape=51, 物品可以一直使用,直到手动删除
************************************以下为2024-06月份扩展********************************************
———————————————————–
1406 31类一次性物品1 31 50 1 1 100 0 1230 1 0 0 0 0 0 0 0 0 0 0 0 0 1 5 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1407 31类多次物品 31 51 1 2 0 0 1230 1 0 0 0 0 0 0 0 0 0 0 0 0 1 5 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
———————————————————–
StdMode=31扩展物品
Shape=50,物品使用一次后消失
Shape=51,物品可以一直使用,直到手动删除
触发:
以上扩展2种类型的物品
人物触发 QF中的 [@StdModeFuncExX] X=物品的Anicount
英雄触发 QF中的 [@HeroStdModeFuncExX] X=物品的Anicount
———————————————————–
增加NPC变量:
当前使用物品名:<$UseItemName>, <$H.UseItemName>
当前使用物品给力ID:<$UseItemMakeIndex> <$H.UseItemMakeIndex>
以上2个变量仅限用于触发 [@StdModeFuncX],[@StdModeFuncExX],[@HeroStdModeFuncExX]
———————————————————–
增加NPC命令:
关联背包物品 LinkBagItem 物品MakeIndex(给力ID)
将关联物品从背包删除 DelLinkItem 物品数量(用于叠加物品,0整个物品删除,大于0从叠加中删除指定数量)—–20242427支持叠加
———————————————————–
[@StdModeFuncEx1]
#act
SendMsg 6 当前使用的物品名:<$UseItemName>,给力ID:<$UseItemMakeIndex>;本物品使用完后会直接消失
[@StdModeFuncEx2]
#if
Random 3
#act
SendMsg 6 人物当前使用的物品名:<$UseItemName>,给力ID:<$UseItemMakeIndex>;本次删除
LinkBagItem <$UseItemMakeIndex>
DelLinkItem
#elseact
SendMsg 6 人物当前使用的物品名:<$UseItemName>,给力ID:<$UseItemMakeIndex>;本物品还可以使用
LinkBagItem <$UseItemMakeIndex>
ChangeItemName -1 新的名字3
UpdateItem -1
ClearLinkItem
[@HeroStdModeFuncEx2]
#act
#if
Random 10
#act
SendMsg 6 英雄当前使用的物品名:<$H.UseItemName>,给力ID:<$H.UseItemMakeIndex>;本次删除
H.LinkBagItem <$H.UseItemMakeIndex>
H.DelLinkItem
#elseact
SendMsg 6 英雄当前使用的物品名:<$H.UseItemName>,给力ID:<$H.UseItemMakeIndex>;本物品还可以使用
H.LinkBagItem <$H.UseItemMakeIndex>
H.ChangeItemName -1 新的名字3
H.UpdateItem -1
H.ClearLinkItem
注:shape=1可能不利于英雄使用,建议31-1类物品禁止放入英雄背包!
新增物品分类47,物品可叠加使用,类似宝石镶嵌~和31类的··结合产物,背包直接执行
StdMode=47 新增扩展物品 可叠加
Shape=50, 物品使用一次后消失 , 准星对准物品前往了 和宝石镶嵌那样视为使用
Shape=51, 物品可以一直使用,直到手动删除
右键使用后 鼠标变成准星模式
触发:
以上扩展2种类型的物品
人物触发 QF中的 [@StdmodeShowX] X=物品的Anicount
英雄触发 QF中的 [@HeroStdmodeShowX] X=物品的Anicount
———————————————————–
增加NPC变量(变量名带G_可显示改名后的物品名,详见下方示范脚本):
当前使用物品名:<$UseItemName>, <$H.UseItemName>
当前使用物品给力ID:<$UseItemMakeIndex> <$H.UseItemMakeIndex>
+当前准星使用对象物品名: <$BagItemName> <$H.BagItemName>
+当前准星使用对象物品给力ID:<$BagItemMakeIndex> <$H.BagItemMakeIndex>
;==========================================================
·脚本示范
[@StdModeShow1]
#if
#act
SendMsg 6 人物当前使用的物品名:<$UseItemName>,给力ID:<$UseItemMakeIndex>
SendMsg 6 使用物品目标名字:<$BagItemName>,给力ID:<$BagItemMakeIndex>
SendMsg 6 邪恶の力量到此一游
LinkBagItem <$BagItemMakeIndex>
;修改物品星星数量
CHANGEITEMUPGRADECOUNT -1 + 1
UpdateItem -1
ClearLinkItem
break
[@HeroStdModeShow2]
#if
#act
SendMsg 6 英雄当前使用的物品名:<$H.UseItemName>,给力ID:<$H.UseItemMakeIndex>
SendMsg 6 英雄物品目标名字:<$H.BagItemName>,给力ID:<$H.BagItemMakeIndex>
H.LinkBagItem <$H.BagItemMakeIndex>
;修改物品星星数量
H.CHANGEITEMUPGRADECOUNT -1 + 1 H.UpdateItem -1
H.ClearLinkItem
break
[@StdModeShow1]
#if
#act
;$G_UseItemName 和$G_BagItemName支持改名后的名称显示,不带G_则为数据库名字
SendMsg 6 人物当前使用的物品名:<$UseItemName> (<$G_UseItemName> ),给力ID:<$UseItemMakeIndex>
SendMsg 6 使用物品目标名字:<$BagItemName> (<$G_BagItemName> ),给力ID:<$BagItemMakeIndex>
break