如何删除玩家的物品
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;
|