Example #1
0
    //-------------------------------------------------------------------------
    public override void handleEvent(object sender, EntityEvent e)
    {
        if (e is EvCellActorPropDirty)
        {
            // CellActor,角色属性集变脏
            var ev = (EvCellActorPropDirty)e;

            // 通知客户端Actor应用脏属性
            if (!CoActor.Def.mPropIsBot.get())
            {
                PlayerNotify player_notify;
                player_notify.id   = PlayerNotifyId.ActorMapPropDirty;
                player_notify.data = EbTool.protobufSerialize <Dictionary <string, string> >(ev.map_prop_dirty);

                MethodData notify_data = new MethodData();
                notify_data.method_id = MethodType.s2cPlayerNotify;
                notify_data.param1    = EbTool.protobufSerialize <PlayerNotify>(player_notify);
                var grain        = Entity.getUserData <GrainCellPlayer>();
                var grain_player = grain.GF.GetGrain <ICellPlayer>(new Guid(Entity.Guid));
                grain_player.s2sNotify(notify_data);
            }
        }
        else if (e is EvCellActorLevelup)
        {
            // CellActor消息,角色升级
            var ev = (EvCellActorLevelup)e;

            // 通知客户端Actor应用脏属性
            if (!CoActor.Def.mPropIsBot.get())
            {
                PlayerNotify player_notify;
                player_notify.id   = PlayerNotifyId.Levelup;
                player_notify.data = EbTool.protobufSerialize <int>(ev.level_new);

                MethodData notify_data = new MethodData();
                notify_data.method_id = MethodType.s2cPlayerNotify;
                notify_data.param1    = EbTool.protobufSerialize <PlayerNotify>(player_notify);
                var grain        = Entity.getUserData <GrainCellPlayer>();
                var grain_player = grain.GF.GetGrain <ICellPlayer>(new Guid(Entity.Guid));
                grain_player.s2sNotify(notify_data);
            }
        }
        else if (e is EvCellBagAddItem)
        {
            // CellBag,添加道具消息
            var ev = (EvCellBagAddItem)e;

            // 通知客户端添加道具
            if (!CoActor.Def.mPropIsBot.get())
            {
                CoBag.s2cBagNotifyAddItem(ev.item.ItemData);
            }
        }
        else if (e is EvCellBagDeleteItem)
        {
            // CellBag,删除道具消息
            var ev = (EvCellBagDeleteItem)e;

            // 通知客户端删除道具
            if (!CoActor.Def.mPropIsBot.get())
            {
                CoBag.s2cBagNotifyDeleteItem(ev.item_objid);
            }
        }
        else if (e is EvCellBagUpdateItem)
        {
            // CellBag,更新道具消息
            var ev = (EvCellBagUpdateItem)e;

            // 通知客户端更新道具
            if (!CoActor.Def.mPropIsBot.get())
            {
                CoBag.s2cBagNotifyUpdateItem(ev.item.ItemData);
            }
        }
        else if (e is EvCellEquipTakeonEquip)
        {
            // CellEquip,穿装备消息
            var ev = (EvCellEquipTakeonEquip)e;

            // 通知客户端穿上装备
            if (!CoActor.Def.mPropIsBot.get())
            {
                CoEquip.s2cEquipNotifyTakeon(ev.item.ItemData);
            }
        }
        else if (e is EvCellEquipTakeoffEquip)
        {
            // CellEquip,脱装备消息
            var ev = (EvCellEquipTakeoffEquip)e;

            // 通知客户端脱下装备
            if (!CoActor.Def.mPropIsBot.get())
            {
                CoEquip.s2cEquipNotifyTakeoff(ev.equip_slot);
            }
        }
        else if (e is EvCellStatusCreateStatus)
        {
            // CellStatus,创建状态消息
            var ev = (EvCellStatusCreateStatus)e;

            // 通知客户端创建Status
            if (!CoActor.Def.mPropIsBot.get())
            {
                CoStatus.s2cStatusNotifyCreateStatus(ev.item.ItemData);
            }
        }
    }
 private void Search()
 {
     if (RegNo != null)
     {
         _checkoutService.GetBook((int)RegNo, (book, ex) =>
         {
             if (ex != null)
             {
                 Book = null;
                 Status = CoStatus.NOSELECT;
                 MessageBox.Show(App.Current.MainWindow, ex.Message);
                 return;
             }
             Book = new BookViewModel(book);
         });
         _checkoutService.GetCheckouts(null, RegNo, false, null, null, 0, -1, (checkouts, ex) =>
         {
             if (ex != null)
             {
                 MessageBox.Show(App.Current.MainWindow, ex.Message);
                 return;
             }
             var checkout = checkouts.Checkouts.FirstOrDefault();
             if (checkout != null)
             {
                 if (checkout.account == Account)
                 {
                     // 返却できます
                     Status = CoStatus.CIOK;
                 }
                 else
                 {
                     // 貸出中
                     Status = CoStatus.OTHERCO;
                 }
             }
             else
             {
                 if (Book != null)
                 {
                     // 貸出できます
                     Status = CoStatus.COOK;
                 }
                 else
                 {
                     Status = CoStatus.NOSELECT;
                 }
             }
         });
     }
     else
     {
         Book = null;
         Status = CoStatus.NOSELECT;
     }
     if (!string.IsNullOrEmpty(Account))
     {
         _checkoutService.GetUser(Account, (user, ex) =>
         {
             if (ex != null)
             {
                 User = null;
                 Checkouts = null;
                 TotalCount = 0;
                 SelectedCheckout = null;
                 Status = CoStatus.NOSELECT;
                 MessageBox.Show(App.Current.MainWindow, ex.Message);
                 return;
             }
             User = new UserViewModel(user);
         });
         _checkoutService.GetCheckouts(Account, null, false, null, null, 0, -1, (checkouts, ex) =>
         {
             if (ex != null)
             {
                 MessageBox.Show(App.Current.MainWindow, ex.Message);
                 return;
             }
             Checkouts = new ObservableCollection<CheckoutViewModel>(checkouts.Checkouts.Select(t => new CheckoutViewModel(t)));
             TotalCount = checkouts.TotalCount;
             if (Checkouts != null)
                 SelectedCheckout = Checkouts.Where(t => t.RegNo == RegNo).FirstOrDefault();
         });
     }
     else
     {
         User = null;
         Checkouts = null;
         TotalCount = 0;
         SelectedCheckout = null;
         Status = CoStatus.NOSELECT;
     }
 }
Example #3
0
 public CoResult(T returnValue, Exception e = null, CoStatus status = CoStatus.Running)
 {
     ReturnValue = returnValue;
     Exception   = e;
     Status      = status;
 }