Example #1
0
 /*public static void RemoveEventHandler<TDbContext, TEntity>(
     EventHandler<EntityEventArgs<TDbContext, TEntity>> eventHandler, EntityEvent entityEvent)
     where TDbContext : DbContext, new()
     where TEntity : class, new()
 {
     Type genericType = typeof(EntityRepository<TDbContext, TEntity>);
     var genericEvent = GetEvent(genericType, entityEvent);
     genericEvent.GetRemoveMethod(true).Invoke(null, new object[] { eventHandler });
 }*/
 /// <summary>
 /// Removes an Event Handler to an entity event
 /// </summary>
 /// <param name="eventHandler">The method to call</param>
 /// <param name="entityEvent">On which event</param>
 /// <param name="entityType">For which entity type</param>
 public static void RemoveEventHandler(EventHandler<IEntityEventArgs> eventHandler, EntityEvent entityEvent, Type entityType)
 {
     IContextHandler handler = RepositoryFactory.GetRepository(entityType) as IContextHandler;
     if (handler == null)
     {
         throw new InvalidOperationException("Could not find repository to register to.");
     }
     Type genericType = typeof(EntityRepository<,>).MakeGenericType(handler.ContextType, entityType);
     var genericEvent = GetEvent(genericType, entityEvent);
     genericEvent.GetRemoveMethod(true).Invoke(null, new object[] { eventHandler });
 }
Example #2
0
 //-------------------------------------------------------------------------
 public abstract void handleEvent(object sender, EntityEvent e);
Example #3
0
 //-------------------------------------------------------------------------
 public override void handleEvent(object sender, EntityEvent e)
 {
 }
Example #4
0
        //-------------------------------------------------------------------------
        public override void handleEvent(object sender, EntityEvent e)
        {
            if (e is EvCellBagAddItem)
            {
                // CellBag,添加道具消息
                var ev = (EvCellBagAddItem)e;

                // 主动查询一次背包中是否有所需任务物品
                foreach (var i in TbDataTaskCollectItem.ListCollectItem)
                {
                    int num_cur = CoPlayer.CoBag.getItemNumByItemId(i.item_id);
                    if (num_cur > i.count) num_cur = i.count;

                    foreach (var j in ListItemData)
                    {
                        if (j.item_id == i.item_id)
                        {
                            if (j.num_cur != num_cur)
                            {
                                j.num_cur = num_cur;
                                _saveTaskData();
                                TaskMgr._serverAddDirtyTask(this);
                            }
                            break;
                        }
                    }
                }

                if (TaskData.task_state == TaskState.Doing && _isDone())
                {
                    TaskData.task_state = TaskState.Done;
                    TaskMgr._serverAddDirtyTask(this);
                }

                if (TaskData.task_state == TaskState.Done && TbDataTask.FinishNpcId == 0)
                {
                    TaskData.task_state = TaskState.Release;
                    TaskMgr._serverAddDirtyTask(this);
                }
            }
        }
 private unsafe void ProcessEntityEventInternal(EntityEvent @event,
     IntPtr parameter0, IntPtr parameter1,
     IntPtr parameter2, IntPtr parameter3,
     float singleParameter0,
     float singleParameter1)
 {
     switch (@event)
     {
         case EntityEvent.XForm:
             this.OnMoved((EntityXFormFlags)parameter0.ToInt32());
             break;
         case EntityEvent.XformFinishedEditor:
             break;
         case EntityEvent.Timer:
             this.OnTimedOut(parameter0, parameter1.ToInt32());
             break;
         case EntityEvent.Initialize:
             break;
         case EntityEvent.Done:
             this.DisposeInternal();
             break;
         case EntityEvent.ReturningToPool:
             break;
         case EntityEvent.Visiblity:
             if (parameter0.ToInt32() == 0)
             {
                 this.OnDisappeared();
             }
             else
             {
                 this.OnAppeared();
             }
             this.OnVisibilityStateChanged(parameter0.ToInt32() != 0);
             break;
         case EntityEvent.Reset:
             this.OnResetByEditor(parameter0.ToInt32() != 0);
             break;
         case EntityEvent.Attach:
             this.OnAttached(new EntityId(new Bytes4(parameter0.ToInt32()).UnsignedInt));
             break;
         case EntityEvent.AttachThis:
             this.OnAttachedTo(new EntityId(new Bytes4(parameter0.ToInt32()).UnsignedInt));
             break;
         case EntityEvent.Detach:
             this.OnDetached(new EntityId(new Bytes4(parameter0.ToInt32()).UnsignedInt));
             break;
         case EntityEvent.DetachThis:
             this.OnDetachedFrom(new EntityId(new Bytes4(parameter0.ToInt32()).UnsignedInt));
             break;
         case EntityEvent.Link:
             this.OnLinked(parameter0);
             break;
         case EntityEvent.Delink:
             this.OnUnlinked(parameter0);
             break;
         case EntityEvent.Hide:
             this.OnHidden(true);
             break;
         case EntityEvent.Unhide:
             this.OnHidden(false);
             break;
         case EntityEvent.EnablePhysics:
             break;
         case EntityEvent.PhysicsChangeState:
             break;
         case EntityEvent.ScriptEvent:
             this.OnScriptEventBroadcasted
             (
                 new EntityScriptEventEventArgs
                 (
                     parameter0,
                     (EntityEventValueType)parameter1.ToInt32(),
                     parameter2
                 )
             );
             break;
         case EntityEvent.EnterArea:
             this.OnEnteredArea
             (
                 new EntityAreaPositionEventArgs
                 (
                     new EntityId(new Bytes4(parameter0.ToInt32()).UnsignedInt),
                     parameter1.ToInt32(),
                     new EntityId(new Bytes4(parameter2.ToInt32()).UnsignedInt)
                 )
             );
             break;
         case EntityEvent.LeaveArea:
             this.OnLeftArea
             (
                 new EntityAreaPositionEventArgs
                 (
                     new EntityId(new Bytes4(parameter0.ToInt32()).UnsignedInt),
                     parameter1.ToInt32(),
                     new EntityId(new Bytes4(parameter2.ToInt32()).UnsignedInt)
                 )
             );
             break;
         case EntityEvent.EnterNearArea:
             this.OnEnteredProximityArea
             (
                 new EntityAreaPositionEventArgs
                 (
                     new EntityId(new Bytes4(parameter0.ToInt32()).UnsignedInt),
                     parameter1.ToInt32(),
                     new EntityId(new Bytes4(parameter2.ToInt32()).UnsignedInt)
                 )
             );
             break;
         case EntityEvent.LeaveNearArea:
             this.OnLeftProximityArea
             (
                 new EntityAreaPositionEventArgs
                 (
                     new EntityId(new Bytes4(parameter0.ToInt32()).UnsignedInt),
                     parameter1.ToInt32(),
                     new EntityId(new Bytes4(parameter2.ToInt32()).UnsignedInt)
                 )
             );
             break;
         case EntityEvent.MoveInsideArea:
             this.OnMovedInsideArea
             (
                 new EntityAreaPositionEventArgs
                 (
                     new EntityId(new Bytes4(parameter0.ToInt32()).UnsignedInt),
                     parameter1.ToInt32(),
                     new EntityId(new Bytes4(parameter2.ToInt32()).UnsignedInt)
                 )
             );
             break;
         case EntityEvent.MoveNearArea:
             this.OnMovedNearArea
             (
                 new EntityAreaPositionEventArgs
                 (
                     new EntityId(new Bytes4(parameter0.ToInt32()).UnsignedInt),
                     parameter1.ToInt32(),
                     new EntityId(new Bytes4(parameter2.ToInt32()).UnsignedInt),
                     singleParameter0
                 )
             );
             break;
         case EntityEvent.CrossArea:
             break;
         case EntityEvent.PhysicsPostStep:
             break;
         case EntityEvent.PhysicsBreak:
             break;
         case EntityEvent.AiDone:
             break;
         case EntityEvent.SoundDone:
             break;
         case EntityEvent.NotSeenTimeout:
             this.OnUnseenTimeOut();
             break;
         case EntityEvent.Collision:
             this.OnCollided(*((CryCollision*)parameter0.ToPointer()));
             break;
         case EntityEvent.Render:
             // Get rendering parameters and create a reference object that will
             // allow handlers modify the structure.
             RenderParams* renderingParameters = (RenderParams*)parameter0.ToPointer();
             RenderParams? renderParamsReference = *renderingParameters;
             this.OnRendered
             (
                 new EventArgs<RenderParams?>
                 (
                     renderParamsReference
                 )
             );
             // Pass modifications to native code, if allowed.
             if (Platform.AllowRenderParametersModification)
             {
                 *renderingParameters = renderParamsReference.Value;
             }
             break;
         case EntityEvent.PrePhysicsUpdate:
             this.OnBeforePhysicsUpdate(singleParameter0);
             break;
         case EntityEvent.LevelLoaded:
             this.OnLevelLoaded();
             break;
         case EntityEvent.StartLevel:
             this.OnLevelStarted();
             break;
         case EntityEvent.StartGame:
             this.OnGameStarted();
             break;
         case EntityEvent.EnterScriptState:
             break;
         case EntityEvent.LeaveScriptState:
             break;
         case EntityEvent.PreSerialize:
             break;
         case EntityEvent.PostSerialize:
             break;
         case EntityEvent.Invisible:
             this.OnDisappeared();
             this.OnVisibilityStateChanged(false);
             break;
         case EntityEvent.Visible:
             this.OnAppeared();
             this.OnVisibilityStateChanged(true);
             break;
         case EntityEvent.Material:
             this.OnMaterialChanged(parameter0);
             break;
         case EntityEvent.MaterialLayer:
             break;
         case EntityEvent.OnHit:
             break;
         case EntityEvent.AnimationEvent:
             break;
         case EntityEvent.ScriptRequestColliderMode:
             break;
         case EntityEvent.ActiveFlowNodeOutput:
             break;
         case EntityEvent.EditorPropertyChanged:
             break;
         case EntityEvent.ReloadScript:
             break;
         case EntityEvent.Activated:
             this.OnActivated();
             this.OnActivationStateChanged(true);
             break;
         case EntityEvent.Deactivated:
             this.OnDeactivated();
             this.OnActivationStateChanged(false);
             break;
         case EntityEvent.Last:
             break;
         default:
             return;
     }
 }
Example #6
0
 protected void When(EntityEvent e)
 {
 }
Example #7
0
        //-------------------------------------------------------------------------
        public override void handleEvent(object sender, EntityEvent e)
        {
            if (e is EvUiLoginClickBtnLogin)
            {
                // 请求登录
                var ev = (EvUiLoginClickBtnLogin)e;

                if (CoApp.CoUCenter.WWWLogin != null)
                {
                    //FloatMsgInfo f_info;
                    //f_info.msg = "正在登陆中,请稍候";
                    //f_info.color = Color.green;
                    //UiMgr.Instance.FloatMsgMgr.createFloatMsg(f_info);
                }
                else
                {
                    _requestLogin(ev.acc, ev.pwd);
                }
            }
            else if (e is EvUiLoginRegisterAccount)
            {
                // 请求注册帐号
                var ev = (EvUiLoginRegisterAccount)e;
                AccountRegisterInfo request = ev.register_acc_data;
                if (request.Email == null)
                {
                    request.Email = "";
                }
                if (request.IdentityNum == null)
                {
                    request.IdentityNum = "";
                }
                if (request.PhoneNum == null)
                {
                    request.PhoneNum = "";
                }
                if (request.Name == null)
                {
                    request.Name = "";
                }

                if (request.Password == request.SuperPassword)
                {
                    //UiHelper.DestroyWaiting();

                    //FloatMsgInfo f_info;
                    //f_info.msg = "注册失败,密码和超级密码不能相同";
                    //f_info.color = Color.red;
                    //UiMgr.Instance.FloatMsgMgr.createFloatMsg(f_info);
                }
                else if (CoApp.CoUCenter.WWWRegister != null)
                {
                    //FloatMsgInfo f_info;
                    //f_info.msg = "正在注册中,请稍候";
                    //f_info.color = Color.green;
                    //UiMgr.Instance.FloatMsgMgr.createFloatMsg(f_info);
                }

                if (mGuestPlayerInfo == null)
                {
                    //UiHelper.CreateWaiting();
                    mPassword = request.Password;
                    CoApp.CoUCenter.register(request, _onUCenterRegister);
                    //todo: 销毁注册界面 UiMgr.Instance.destroyCurrentUi<UiMbCreateAccount>();
                }
                else
                {
                    AccountConvertInfo guest_convertregisterdata = new AccountConvertInfo();
                    if (guest_convertregisterdata.IdentityNum == null)
                    {
                        guest_convertregisterdata.IdentityNum = "";
                    }
                    if (guest_convertregisterdata.PhoneNum == null)
                    {
                        guest_convertregisterdata.PhoneNum = "";
                    }
                    if (guest_convertregisterdata.Name == null)
                    {
                        guest_convertregisterdata.Name = "";
                    }
                    guest_convertregisterdata.AccountId     = mGuestPlayerInfo.account_id;
                    guest_convertregisterdata.AccountName   = request.AccountName;
                    guest_convertregisterdata.Email         = request.Email;
                    guest_convertregisterdata.Password      = request.Password;
                    guest_convertregisterdata.OldPassword   = mGuestPlayerInfo.pwd;
                    guest_convertregisterdata.SuperPassword = request.SuperPassword;
                    guest_convertregisterdata.Sex           = request.Sex;
                    //UiHelper.CreateWaiting();
                    mPassword = request.Password;
                    CoApp.CoUCenter.convert(guest_convertregisterdata, _onUCenterConvert);
                    //todo: 销毁注册界面 UiMgr.Instance.destroyCurrentUi<UiMbCreateAccount>();
                }
                //UiHelper.DestroyWaiting();
            }
            else if (e is EvUiLoginClickBtnFacebook)
            {
                // 请求Facebook登录
                var ev = (EvUiLoginClickBtnFacebook)e;
            }
            else if (e is EvUiLoginClickBtnVisiter)
            {
                // 请求游客登录
                var ev = (EvUiLoginClickBtnVisiter)e;
                if (mGuestPlayerInfo == null)
                {
                    //UiHelper.CreateWaiting();
                    CoApp.CoUCenter.guest(_uCenterGuestCallBack);
                }
                else
                {
                    _requestLogin(mGuestPlayerInfo.account_name, mGuestPlayerInfo.pwd);
                }
            }
            else if (e is EvUiRequestGetPwd)
            {
                // 请求获取忘记密码
                var    ev        = (EvUiRequestGetPwd)e;
                string super_pwd = ev.super_pwd;
            }
            else if (e is EvUiLoginDeleteGuest)
            {
                //清除游客
                _clearGuest();
            }
        }
 /// <summary>
 /// When implemented in derived class, processes an event that is not processed
 /// anywhere else.
 /// </summary>
 /// <remarks>
 /// Documentation for <see cref="EntityEvent"/> contains details about each event
 /// along with descriptions of each parameter.
 /// </remarks>
 /// <param name="event">           Event to process.</param>
 /// <param name="parameter0">      Optional first integer parameter.</param>
 /// <param name="parameter1">      Optional second integer parameter.</param>
 /// <param name="parameter2">      Optional third integer parameter.</param>
 /// <param name="parameter3">      Optional fourth integer parameter.</param>
 /// <param name="singleParameter0">
 /// Optional first floating point parameter.
 /// </param>
 /// <param name="singleParameter1">
 /// Optional second floating point parameter.
 /// </param>
 /// <seealso cref="EntityEvent"/>
 public abstract void ProcessEvent(EntityEvent @event,
     IntPtr parameter0, IntPtr parameter1,
     IntPtr parameter2, IntPtr parameter3,
     float singleParameter0,
     float singleParameter1);
Example #9
0
 private void Raise <TEntity>(EntityEvent <TEntity> created)
 {
     Eventer.Raise(created);
 }
Example #10
0
 //-------------------------------------------------------------------------
 public override void handleEvent(object sender, EntityEvent e)
 {
 }
Example #11
0
        //-------------------------------------------------------------------------
        public override void handleEvent(object sender, EntityEvent e)
        {
            if (e is EvUiClickShop)
            {
                var ev = (EvUiClickShop)e;

                // 点击主界面商城
            }
            else if (e is EvUiClickFriend)
            {
                var ev = (EvUiClickFriend)e;

                // 点击主界面好友
            }
            else if (e is EvUiClickMsg)
            {
                var ev = (EvUiClickMsg)e;

                // 点击主界面消息
            }
            else if (e is EvUiClickHelp)
            {
                var ev = (EvUiClickHelp)e;

                // 点击主界面帮助
            }
            else if (e is EvUiClickEdit)
            {
                var ev = (EvUiClickEdit)e;

                // 点击主界面编辑
            }
            else if (e is EvUiClickLogin)
            {
                var ev = (EvUiClickLogin)e;

                EbLog.Note("ClientPlayer.handleEvent() 响应点击登陆按钮消息");

                // 点击主界面登陆
                CoApp.CoNetMonitor.disconnect();
            }
            else if (e is EvUiClickPlayNow)
            {
                var ev = (EvUiClickPlayNow)e;

                // 点击主界面立即玩
                //requestPlayNow();
            }
            //else if (e is EvUiClickCreateDeskTop)
            //{
            //    var ev = (EvUiClickCreateDeskTop)e;

            //    // 请求创建私人牌桌
            //    int seat_num = ev.seat_num;
            //    PrivateDesktopCreateInfo desktop_createinfo;
            //    desktop_createinfo.seat_num = seat_num;
            //    desktop_createinfo.desktop_tableid = ev.desk_topinfo_id;
            //    desktop_createinfo.is_vip = CoActor.Def.mPropIsVIP.get();

            //    requestCreatePrivateDesktop(desktop_createinfo);
            //}
            else if (e is EvUiClickExitDesk)
            {
                // 点击离开桌子
                requestLeaveDesktop();
            }
            //else if (e is EvUiClickEnterDesktop)
            //{
            //    requestEnterDesktopAny();
            //}
            //else if (e is EvUiClickGetSelfPlayerInfo)
            //{
            //    var ev = (EvUiClickGetSelfPlayerInfo)e;

            //    // 点击主界面玩家信息
            //}
            //else if (e is EvUiClickGetPlayerProfile)
            //{
            //    var ev = (EvUiClickGetPlayerProfile)e;
            //    requestGetPlayerInfoOther(ev.player_etguid);
            //    //requestGetPlayerInfo(ev.player_etguid, _eRequestPlayerInfoReason.PlayerProfile);
            //}
            else if (e is EvUiClickChangePlayerNickName)
            {
                // 改昵称
                var ev = (EvUiClickChangePlayerNickName)e;

                requestChangeNickName(ev.new_name);
            }
            else if (e is EvUiClickChangePlayerIndividualSignature)
            {
                // 改签名
                var ev = (EvUiClickChangePlayerIndividualSignature)e;

                requestChangeIndividualSignature(ev.new_individual_signature);
            }
            else if (e is EvUiClickChangePlayerProfileSkin)
            {
                // 换肤
                var ev = (EvUiClickChangePlayerProfileSkin)e;
                requestChangePlayerProfileSkin(ev.skin_id);
            }
            else if (e is EvUiClickRefreshIPAddress)
            {
                // 刷新IP所在地
                requestRefreshIpAddress();
            }
            else if (e is EvUiReportFriend)
            {
                // 举报好友
                var              ev          = (EvUiReportFriend)e;
                string           et_guid     = ev.friend_etguid;
                ReportPlayerType report_type = ev.report_type;
                requestReprotPlayer(et_guid, report_type);
            }
            else if (e is EvUiInviteFriendPlayTogether)
            {
                // 邀请好友一起玩
                var ev = (EvUiInviteFriendPlayTogether)e;
                DesktopConfigData desktop_configdata = CoPlayerDesktop.DesktopConfigData;

                if (desktop_configdata != null && !string.IsNullOrEmpty(desktop_configdata.desktop_etguid))
                {
                    requestInvitePlayerEnterDesktop(ev.friend_guid, desktop_configdata.desktop_etguid,
                                                    0, 0, CoPlayerDesktop.getPlayerCount(), desktop_configdata.seat_num);
                }
            }
            else if (e is EvUiClickChipTransaction)
            {
                // 点击送筹码
                var ev = (EvUiClickChipTransaction)e;

                if (CoActor.Def.PropGold.get() < 100000)
                {
                    //FloatMsgInfo f_info;
                    //f_info.msg = "筹码不足10万,不能发送!";
                    //f_info.color = Color.red;
                    //UiMgr.Instance.FloatMsgMgr.createFloatMsg(f_info);
                }
                else
                {
                    //UiMbChipTransaction chip_transaction = UiMgr.Instance.createUi<UiMbChipTransaction>(_eUiLayer.MessgeBox);
                    //chip_transaction.setChipTransactionInfo(CoActor.Def.mPropChip.get(), CoActor.Def.mPropChip.get(),
                    //    100000, CoPlayerFriend.getFriendItem(ev.send_target_etguid));
                }
            }
            else if (e is EvUiCreateMainUi)
            {
                createMainUi();
            }
            else if (e is EvUiCreateExchangeChip)
            {
                // 创建换钱UI
                //UiMbExchangeChip chip_transaction = UiMgr.Instance.createUi<UiMbExchangeChip>(_eUiLayer.MessgeBox);
                //chip_transaction.setExchangeInfo(CoActor.Def.PropGold.get(), CoActor.Def.PropGold.get(), 100);
            }
            else if (e is EvUiRequestGetRankPlayerInfo)
            {
                // 请求排行榜玩家信息
                var ev = (EvUiRequestGetRankPlayerInfo)e;
                requestGetPlayerInfoOther(ev.player_etguid);
            }
            else if (e is EvUiRequestPlayerInfoOther)
            {
                // 请求其他玩家详细信息
                var ev = (EvUiRequestPlayerInfoOther)e;
                requestGetPlayerInfoOther(ev.player_etguid);
            }
        }
Example #12
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);
            }
        }
    }
Example #13
0
 public static async Task CallbackEntity(INode node, Nuid id, string entity_type, EntityEvent entity_event, NList args)
 {
     await _EntityEvents.Callback(new Tuple <string, EntityEvent>(entity_type, entity_event), node, id, args);
 }
Example #14
0
 protected void RCEntity(string entity_type, EntityEvent entity_event, EventCallback handler, int priority = 1)
 {
     _EntityEvents.Register(new Tuple <string, EntityEvent>(entity_type, entity_event), handler, priority);
 }
Example #15
0
 //-------------------------------------------------------------------------
 public void handleEvent(object sender, EntityEvent e)
 {
     foreach (var i in MapTask)
     {
         i.Value.handleEvent(sender, e);
     }
 }
 public void HandleSubscriptionNotifications(EntityEvent entity)
 {
     // todo
 }
Example #17
0
 private static EventInfo GetEvent(Type genericType, EntityEvent entityEvent)
 {
     string eventName = entityEvent.ToString() + EventSuffix;
     return genericType.GetEvent(eventName, BindingFlags.NonPublic | BindingFlags.Static);
 }
		public void AddEvent( EntityEvent newEvent )
		{
			try
			{
				if ( ResourceLocked )
				{
					//Only add priority 0 and 1 events to the buffer while the list is locked
					if ( newEvent.priority < 2 )
						m_entityEventsBuffer.Add( newEvent );
				}
				else
				{
					m_entityEvents.Add( newEvent );
				}
			}
			catch ( Exception ex )
			{
				ApplicationLog.BaseLog.Error( ex );
			}
		}
 public void AddEvent(EntityEvent newEvent)
 {
     try
     {
         if (ResourceLocked)
         {
             //Only add priority 0 and 1 events to the buffer while the list is locked
             if (newEvent.priority < 2)
                 m_entityEventsBuffer.Add(newEvent);
         }
         else
         {
             m_entityEvents.Add(newEvent);
         }
     }
     catch (Exception ex)
     {
         if(SandboxGameAssemblyWrapper.IsDebugging)
             LogManager.ErrorLog.WriteLine(ex);
     }
 }
Example #20
0
 //see https://stackoverflow.com/questions/21402465/iequalitycomparer-not-working-as-intended
 public override int GetHashCode()
 {
     return(HashCode.Combine(CallingEntity, EntityEvent.GetType(), HasRemoveDuplicateAttribute));
 }