外观
单件物品行为标志 GOW-Next 专用接口
为主号背包或已穿戴的单件物品设置行为限制,使用当前物品的 ClientItemID,不支持英雄或仓库物品。标志随物品保存和转移,独立于绑定及装备找回登记。
标志编号
| FlagId | 脚本常量 | 含义 |
|---|---|---|
| 1 | ITEM_FLAG_SHENSHUI_TAKE_OFF | 限制取下和顶替;神水的取下豁免可绕过 |
| 2 | ITEM_FLAG_NO_TAKE_OFF | 禁止取下和顶替;神水不能绕过 |
| 3 | ITEM_FLAG_DEATH_VANISH | 死亡消失,优先于编号 4 |
| 4 | ITEM_FLAG_DEATH_NO_DROP | 死亡不掉落,不限制主动丢弃 |
| 5 | ITEM_FLAG_NO_DROP | 禁止主动丢弃(含丢弃销毁),不限制死亡掉落 |
| 8 | ITEM_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);