[技术文章] GXX引擎能否增加获取角色背包信息功能

[复制链接]
查看1591 | 回复0 | 2023-12-26 11:19:36 | 显示全部楼层 |阅读模式
GXX引擎能否增加获取角色背包信息功能

如下:
功能: 获取角色背包信息
获取角色背包信息 格式:GetBagInfo 参数1 参数2(保存变量) 参数3(stdmode值)
参数1:信息类型可取如下值:
ItemCount: 物品数量(每个背包物品都算一个数量,不管是否为叠加物品)
ItemMakeIndex:所有背包物品的MakeIndex;参数2即保存变量必须为元素类型
ItemIdx:所有背包物品的数据库idx;参数2即保存变量必须为元素类型
ItemName:所有背包物品的名称;参数2即保存变量必须为元素类型
参数3(stdmode值):留空为获取背包所有物品数量,填写5只获取stdmode值为5的武器数量,可以 5|6|10|11 只取背包武器衣服
22.png
获取背包物品的字段值 格式:GetBagItemFieldValue 参数1 参数2 字段名称 保存变量
参数1: 可取如下值
0: 根据背包物品序号取物品(即取背包第几个物品),参数2就是序号(从0开始)
1: 根据背包物品的MakeIndex取物品,参数2就是MakeIndex
将对应的物品字段保存到变量中

--------------------------------------------------------
示例脚本:

;取背包物品数量保存到变量
#act
GetBagInfo ItemCount N100
SendMsg 6 背包物品数量为<$STR(N100)>

Mov N1 0
GetBagInfo ItemCount N100
WHILE N1 < <$STR(N100)>
Mov S1
Mov S2
; 第一个参数: (0根据顺序号/1根据MakeIndex);参数2:表示取第几个;参数3:字段名称;参数4:
GetBagItemFieldValue 0 <$STR(N1)> name S1
GetBagItemFieldValue 0 <$STR(N1)> upgradecount S2
Sendmsg 6 提示:第<$STR(N1)>件,物品名称=<$STR(S1)>,星星数=<$STR(S2)>
INC N1 1
ENDWHILE


;取背包所有物品的MakeIndex保存到元素变量中
GetBagInfo ItemMakeIndex L$背包物品
SendMsg 6 背包物品MakeIndex:<$STR(L$背包物品)>

;根据MakeIndex取得对应背包物品的字段值并保存到变量中
GetBagItemFieldValue 1 <$STR(L$背包物品[0])> name S1
Sendmsg 6 提示:第0件,物品名称=<$STR(S1)>;MakeIndex=<$STR(L$背包物品[0])>

;取背包所有物品的数据库Idx保存到元素变量中
GetBagInfo ItemIdx L$背包物品
SendMsg 6 背包物品数据库Idx:<$STR(L$背包物品)>

;取背包所有物品名称保存到元素变量中
GetBagInfo ItemName L$背包物品
SendMsg 6 背包物品名称:<$STR(L$背包物品)>

示例脚本2:

<获取背包物品的字段值/@获取背包物品的字段值(0)> <获取背包物品的字段值index获取/@获取背包物品的字段值(1)> \

[@获取背包物品的字段值]
#IF
equal <$scriptparam1> 0
#act
GetBagItemFieldValue 0 9 NAME S$name
#IF
equal <$scriptparam1> 1
#act
GetBagItemFieldValue 1 227490 NAME S$name
#IF
#ACT
sendmsg 7 .方法<$scriptparam1>.<$STR(S$name)>

当然可以增加获取角色背包信息的功能。在传奇GXX引擎中,你可以通过编写相应的脚本代码来实现这个功能。

以下是一个示例脚本,展示了如何获取角色背包信息:

python
# 获取角色背包信息  
def get_character_inventory():  
    # 获取当前角色的实例  
    character = get_character()  

    # 获取角色的背包信息  
    inventory = character.get_inventory()  

    # 打印背包信息  
    print("背包物品:")  
    for item in inventory:  
        print(item)
在上述脚本中,get_character()函数用于获取当前角色的实例,get_inventory()方法用于获取角色的背包信息。然后,你可以遍历背包中的物品,并打印出每个物品的信息。

你可以将这个脚本添加到游戏脚本文件或游戏代码中,并根据需要调用它来获取角色背包信息。请确保在调用该脚本之前已经加载了角色和背包相关的游戏对象和组件。

需要注意的是,具体的实现方式可能会因游戏引擎的版本和文档而有所不同。如果你使用的是不同版本的引擎,请查阅相关文档以了解正确的实现方式。


回复

使用道具 举报

本版积分规则