Skip to content

单件物品行为标志 GOW-Next 专用接口 ​

为主号背包或已穿戴的单件物品设置行为限制,使用当前物品的 ClientItemID,不支持英雄或仓库物品。标志随物品保存和转移,独立于绑定及装备找回登记。

标志编号 ​

FlagId脚本常量含义
1ITEM_FLAG_SHENSHUI_TAKE_OFF限制取下和顶替;神水的取下豁免可绕过
2ITEM_FLAG_NO_TAKE_OFF禁止取下和顶替;神水不能绕过
3ITEM_FLAG_DEATH_VANISH死亡消失,优先于编号 4
4ITEM_FLAG_DEATH_NO_DROP死亡不掉落,不限制主动丢弃
5ITEM_FLAG_NO_DROP禁止主动丢弃(含丢弃销毁),不限制死亡掉落
8ITEM_FLAG_NO_NPC_SALE禁止向 NPC 商店出售
  • 模板或单件物品启用标志时,相应限制即生效;清除单件物品的标志后,模板 NeedConf 中的限制仍然有效。
  • 同时设置两种取下限制时,“禁止取下”优先;神水豁免不会清除标志。“死亡消失”优先于“死亡不掉落”,安全区等原有死亡豁免保持不变。
  • 编号 8 不限制修理、玩家交易、摆摊或脚本回收。以上标志均不阻止脚本直接删除物品。
  • 叠加物品按整叠设置,拆分继承,不同状态不能合并。

设置实例标志 ​

pascal
function SetItemFlag(ClientItemID: Integer;
  FlagId: Integer; Enabled: Boolean): Boolean;
  • ClientItemID:当前物品的客户端编号。
  • FlagId:上表编号或对应常量。
  • Enabled:True 设置,False 清除。

返回 True 表示设置成功,重复设置相同状态也返回 True。标志随物品保存。参数无效、物品不可用、属性损坏或容量不足时返回 False,保留原值。

pascal
if not This_Player.SetItemFlag(ItemID, ITEM_FLAG_NO_DROP, True) then
  This_Player.PlayerNotice('设置失败,请检查物品或联系管理员。', 2);

查询实例标志 ​

pascal
function GetItemFlag(ClientItemID: Integer;
  FlagId: Integer): Integer;

参数同上。只查询实例标志,不包含模板限制。

返回值含义
0实例未设置此标志
1实例已设置此标志
-1参数或标志编号无效
-2当前物品不存在或不可用
-3实例属性数据损坏
pascal
State := This_Player.GetItemFlag(ItemID, ITEM_FLAG_NO_DROP);
if State = 1 then
  This_Player.PlayerNotice('该物品已设置禁止主动丢弃。', 2);

GOW-Next 引擎开发手册 · 原版 API 兼容列表持续核验中