如何删除玩家的物品

unit Q2;

inte**ce

uses Classes, SysUtils;

procedure Main(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);

implementation

procedure Main(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);

var

I: Integer;

AItem: TUserItem;

begin

//方法1:通过NPC拿走玩家的物品

Npc.Take(Player, ‘乌木剑’, 1); //拿走一把乌木剑

for I := 0 to Player.MaxBagSize – 1 do //循环背包

begin

AItem := Player.BagItem[I]; //取出一个背包物品

if AItem <> nil then //如果物品存在

Npc.TakeItem(Player, AItem); //收走物品

end;

//方法2:通过玩家自身DeleteItem函数处理

for I := 0 to Player.MaxBagSize – 1 do //循环背包

begin

AItem := Player.BagItem[I]; //取出一个背包物品

if AItem <> nil then //如果物品存在

Player.DeleteItem(AItem, 1); //收走物品,指定数量数量为1,如果是可叠加物品则是数量减1,反之则是收走物品

end;

//玩家自身并没支持Take函数,因为Take实际上也是循环背包,开发中可以自己扩展函数处理

end;

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。