如何删除玩家的物品

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;

 

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