public override void DoAction(IEventArgs args) { FreeRuleEventArgs fr = (FreeRuleEventArgs)args; if (items != null) { foreach (FreeItem fi in items) { if (!FreeItemManager.ContainsItem(args.Rule.FreeType, FreeUtil.ReplaceVar(fi.GetKey(), args))) { FreeGameItem gi = (FreeGameItem)fi.Clone(); gi.SetItemStack(FreeUtil.ReplaceVar(gi.GetItemStackVar(), args)); gi.SetKey(FreeUtil.ReplaceVar(gi.GetKey(), args)); gi.SetImg(FreeUtil.ReplaceVar(gi.GetImg(), args)); gi.SetName(FreeUtil.ReplaceVar(gi.GetName(), args)); gi.SetDesc(FreeUtil.ReplaceVar(gi.GetDesc(), args)); gi.SetCat(FreeUtil.ReplaceVar(gi.GetCat(), args)); gi.SetIconSize(FreeUtil.ReplaceVar(gi.GetIconSize(), args)); gi.SetWidth(FreeUtil.ReplaceNumber(gi.GetWidth(), args)); gi.SetHeight(FreeUtil.ReplaceNumber(gi.GetHeight(), args)); gi.Created(fr); FreeItemManager.AddItem(args, args.Rule.FreeType, gi); } } } }
public override void DoAction(IEventArgs args) { FreeRuleEventArgs fr = (FreeRuleEventArgs)args; if (StringUtil.IsNullOrEmpty(count) || count.Equals("0")) { count = INI_COUNT; } int c = FreeUtil.ReplaceInt(count, args); FreeItem item = FreeItemManager.GetItem(fr, FreeUtil.ReplaceVar(key, args), c); if (item != null) { if (!StringUtil.IsNullOrEmpty(time)) { ((FreeGameItem)item).SetTime(time); } item.Drop(fr, pos.Select(args)); if (action != null) { args.TempUse(ParaConstant.PARA_ITEM, item); action.Act(args); args.Resume(ParaConstant.PARA_ITEM); } } }
// 如果快捷键里面的物品被清除,则为了效率保留技能,不做任何动作 public override void DoAction(IEventArgs args) { if (this.ip != null && this.ip.GetInventory() != null) { if (this.ip.GetCount() > 0 && this.ip.GetInventory().GetName().Equals(this.inventory)) { FreeItemManager.UseItem(this.ip, this.fd, (FreeRuleEventArgs)args); } } }
public override void DoAction(IEventArgs args) { if (addtimePara == null) { addtimePara = new IntPara(ParaConstant.PARA_ITEM_ADD_TIME, 0); } FreeRuleEventArgs fr = (FreeRuleEventArgs)args; if (StringUtil.IsNullOrEmpty(count)) { count = INI_COUNT; } FreeItem fi = FreeItemManager.GetItem(fr, FreeUtil.ReplaceVar(key, args), FreeUtil.ReplaceInt(count, args)); if (StringUtil.IsNullOrEmpty(name)) { name = InventoryManager.DEFAULT; } IGameUnit player = GetPlayer(args); if (player != null) { FreeData fd = (FreeData)player; args.TempUse(ParaConstant.PARA_PLAYER_CURRENT, fd); args.TempUse(ParaConstant.PARA_ITEM, fi); args.TempUsePara(new StringPara("from", ChickenConstant.BagGround)); if (action != null) { action.Act(args); } if (fd.freeInventory.GetInventoryManager().GetInventory(FreeUtil.ReplaceVar(name, args)).AddItem((ISkillArgs)args, fi, true)) { //addtimePara.setValue(fr.room.getServerTime()); fi.GetParameters().AddPara(addtimePara); } else { if (failAction != null) { fr.TempUse(ParaConstant.PARA_ITEM, fi); failAction.Act(args); fr.Resume(ParaConstant.PARA_ITEM); } } fr.ResumePara("from"); fr.Resume(ParaConstant.PARA_PLAYER_CURRENT); fr.Resume(ParaConstant.PARA_ITEM); } }
public override void DoAction(IEventArgs args) { FreeRuleEventArgs fr = (FreeRuleEventArgs)args; IGameUnit player = GetPlayer(args); if (StringUtil.IsNullOrEmpty(item)) { item = "item"; } if (player != null) { FreeData fd = (FreeData)player; FreeItem fi = (FreeItem)fr.GetUnit(FreeUtil.ReplaceVar(item, args)); FreeItemManager.UseItem(fd.GetFreeInventory().GetItemPosition(fi), fd, fr); } }