public int GetElfFightCount(CharacterController character) { if (character.CheckCondition(SecondCondition) != -2) { return(1); } if (character.CheckCondition(ThirdCondition) != -2) { return(2); } return(3); }
public void GetCanAcceptMail() { var str = Table.GetServerConfig(2005).Value.Trim(); if (string.IsNullOrEmpty(str) == false) { var Ids = str.Split('|'); foreach (var id in Ids) { var tb = Table.GetMail(int.Parse(id)); if (tb != null) { if (mCharacter.GetFlag(tb.Flag)) { continue; } if (mCharacter.CheckCondition(tb.Condition) == -2) { PushMail(tb.Id); } } } } //Table.ForeachMail(record => //{ // if (record.Flag < 0 && record.Condition != -1) // { // Logger.Warn("Mail[{0}] Flag is -1", record.Flag); // return true; // } // if (mCharacter.GetFlag(record.Flag)) // { // return true; // } // if (mCharacter.CheckCondition(record.Condition) == -2) // { // PushMail(record.Id); // } // //mCharacter. // return true; //}); }
//查看条件是否完成,然后影响到邮件的 private static void ConditionMail(CharacterController character, Dictionary <int, int> maillist, int nConId) { //看这个条件是否有影响的邮件 List <int> tempList; if (!TriggerMail.TryGetValue(nConId, out tempList)) { return; //这个条件没有影响邮件 } //条件是否完成了 if (character.CheckCondition(nConId) != -2) { return; //没有完成 } //整理这些邮件 foreach (var mailid in tempList) { maillist[mailid] = 1; } }
public virtual ErrorCodes AquireReward(int id, out int result) { result = -1; if (!IsActive) { return(ErrorCodes.Error_Operation_NotInActivity); } for (int i = 0; i < Items.Count; i++) { var item = Items[i]; if (id == item.Id) { if (!item.IsActive) { return(ErrorCodes.Error_Operation_NotInActivity); } if (!item.CanAquire) { return(ErrorCodes.Error_Operation_CannotAquire); } if (null == Controller) { return(ErrorCodes.Unknow); } var tb = Table.GetYunYing(item.Id); if (null == tb) { return(ErrorCodes.Error_Operation_NotInActivity); } if (-1 != tb.ConditionId) { if (-2 != Controller.CheckCondition(tb.ConditionId)) { return(ErrorCodes.Error_Condition); } } if (-1 != tb.NeetItem && tb.NeetItemCount > 0) { var nowCount = Controller.mBag.GetItemCount(tb.NeetItem); if (nowCount < tb.NeetItemCount) { return(ErrorCodes.ItemNotEnough); } var ret = Controller.mBag.DeleteItem(tb.NeetItem, tb.NeetItemCount, eDeleteItemType.OperationActivity, tb.Name); if (ErrorCodes.OK != ret) { return(ret); } } item.Aquire(); if (null != item.Rewards) { var items = new Dictionary <int, int>(); for (int j = 0; j < item.Rewards.Count; j++) { var reward = item.Rewards[j]; if (-1 == reward.Id || reward.Count <= 0) { continue; } items.Add(reward.Id, reward.Count); var tbItem = Table.GetItemBase(reward.Id); if (null != tbItem) { if (10500 == tbItem.Type)//时装 { var tbYunYing = Table.GetYunYing(item.Id); if (null != tbYunYing) { //开服活动购买时装后,修改时装的扩展计数,刷新时装商城 Controller.SetExData(tbYunYing.Param[2], 0); } } else { Controller.BroadCastGetEquip(reward.Id, 100002166); } } } if (items.Count > 0) { Controller.mBag.AddItemOrMail(200, items, null, eCreateItemType.OperationActivity, tb.Name); } } return(ErrorCodes.OK); } } return(ErrorCodes.Error_Operation_NotFound); }