public uint Execute(PacketDistributed ipacket) { GC_BROADCAST_ATTR packet = (GC_BROADCAST_ATTR )ipacket; if (null == packet) { return((uint)PACKET_EXE.PACKET_EXE_ERROR); } //enter your logic return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); }
public uint Execute(PacketDistributed ipacket) { GC_BROADCAST_ATTR packet = (GC_BROADCAST_ATTR )ipacket; if (null == packet) { return((uint)PACKET_EXE.PACKET_EXE_ERROR); } //enter your logic int objId = packet.ObjId; Obj_Character TargetObj = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(objId); if (TargetObj == null) { return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); } TargetObj.UpdateAttrBroadcastPackt(packet); return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); }
public virtual void UpdateAttrBroadcastPackt(GC_BROADCAST_ATTR packet) { //bind parent if (packet.HasBindparent) { BindParent = packet.Bindparent; } //bind children // 没数据 也别更新啦 if (packet.bindchildrenCount > 0) { List <int> newlist = new List <int>(packet.bindchildrenList); UpdateBindChildren(newlist); } if (packet.HasName) { if (!string.IsNullOrEmpty(packet.Name)) { char firstChar = packet.Name[0]; string szNameResult = ""; if (firstChar == '#' && 0 == StrDictionary.GetServerDictionaryFormatString(packet.Name, ref szNameResult)) { BaseAttr.RoleName = szNameResult; } else { BaseAttr.RoleName = packet.Name; } } OptNameChange(); } if (packet.HasCurForce) { BaseAttr.Force = packet.CurForce; OptForceChange(); } if (packet.HasVipCost) { if (ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER) { Obj_MainPlayer mainPlayer = this as Obj_MainPlayer; if (mainPlayer != null) { mainPlayer.VipCost = packet.VipCost; //更新自动挂机 if (mainPlayer.BaseAttr.Level >= GlobeVar.MAX_AUTOEQUIT_LIVE && VipData.GetVipLv() >= GlobeVar.USE_AUTOFIGHT_VIPLEVEL) { //vip2的时候选择自动强化 mainPlayer.UpdateSelectEquip(); } } } if (ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_OTHER_PLAYER) { Obj_OtherPlayer otherPlayer = this as Obj_OtherPlayer; if (otherPlayer != null) { otherPlayer.VipCost = packet.VipCost; } } } if (packet.HasCombatValue) { if (ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER) { Obj_MainPlayer mainPlayer = this as Obj_MainPlayer; if (mainPlayer != null) { mainPlayer.OtherCombatValue = packet.CombatValue; mainPlayer.UpdateCombatValue(); } } if (ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_OTHER_PLAYER) { Obj_OtherPlayer otherPlayer = this as Obj_OtherPlayer; if (otherPlayer != null) { otherPlayer.OtherCombatValue = packet.CombatValue; otherPlayer.UpdateCombatValue(); } } } if (packet.HasMoveSpeed) { BaseAttr.MoveSpeed = packet.MoveSpeed / 100.0f; if (NavAgent != null) { NavAgent.speed = BaseAttr.MoveSpeed; } //主角的伙伴需要特殊处理 if (ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_FELLOW) { Obj_Fellow fellowObj = this as Obj_Fellow; if (null != fellowObj && fellowObj.IsOwnedByMainPlayer()) { fellowObj.SetMoveSpeedAsMainPlayer(); } } //主角速度变化把自己伙伴的速度也改变 if (ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER) { Obj_MainPlayer mainPlayer = this as Obj_MainPlayer; if (mainPlayer != null) { Obj_Fellow fellowObj = mainPlayer.GetCurFellow(); if (fellowObj != null) { fellowObj.SetMoveSpeedAsMainPlayer(); } } } } if (packet.HasBDie) { bool bDie = packet.BDie == 1; if (bDie == true) { OnDie(); } } if (packet.HasStealthLev) { StealthLev = packet.StealthLev; OptStealthLevChange(); } }
public static PacketDistributed CreatePacket(MessageID packetID) { PacketDistributed packet = null; switch (packetID) { case MessageID.PACKET_CG_ABANDONMISSION: { packet = new CG_ABANDONMISSION(); } break; case MessageID.PACKET_CG_ACCEPTMISSION: { packet = new CG_ACCEPTMISSION(); } break; case MessageID.PACKET_CG_ASK_SETCOMMONFLAG: { packet = new CG_ASK_SETCOMMONFLAG(); } break; case MessageID.PACKET_CG_COMPLETEMISSION: { packet = new CG_COMPLETEMISSION(); } break; case MessageID.PACKET_CG_CONNECTED_HEARTBEAT: { packet = new CG_CONNECTED_HEARTBEAT(); } break; case MessageID.PACKET_CG_CREATEROLE: { packet = new CG_CREATEROLE(); } break; case MessageID.PACKET_CG_ENTER_SCENE_OK: { packet = new CG_ENTER_SCENE_OK(); } break; case MessageID.PACKET_CG_LOGIN: { packet = new CG_LOGIN(); } break; case MessageID.PACKET_CG_MOVE: { packet = new CG_MOVE(); } break; case MessageID.PACKET_CG_PING: { packet = new CG_PING(); } break; case MessageID.PACKET_CG_REQ_CHANGE_SCENE: { packet = new CG_REQ_CHANGE_SCENE(); } break; case MessageID.PACKET_CG_REQ_RANDOMNAME: { packet = new CG_REQ_RANDOMNAME(); } break; case MessageID.PACKET_CG_SELECTROLE: { packet = new CG_SELECTROLE(); } break; case MessageID.PACKET_CG_SYNC_POS: { packet = new CG_SYNC_POS(); } break; case MessageID.PACKET_GC_ABANDONMISSION_RET: { packet = new GC_ABANDONMISSION_RET(); } break; case MessageID.PACKET_GC_ACCEPTMISSION_RET: { packet = new GC_ACCEPTMISSION_RET(); } break; case MessageID.PACKET_GC_ASK_COMMONFLAG_RET: { packet = new GC_ASK_COMMONFLAG_RET(); } break; case MessageID.PACKET_GC_BROADCAST_ATTR: { packet = new GC_BROADCAST_ATTR(); } break; case MessageID.PACKET_GC_COMPLETEMISSION_RET: { packet = new GC_COMPLETEMISSION_RET(); } break; case MessageID.PACKET_GC_CONNECTED_HEARTBEAT: { packet = new GC_CONNECTED_HEARTBEAT(); } break; case MessageID.PACKET_GC_CREATEROLE_RET: { packet = new GC_CREATEROLE_RET(); } break; case MessageID.PACKET_GC_CREATE_PLAYER: { packet = new GC_CREATE_PLAYER(); } break; case MessageID.PACKET_GC_DELETE_OBJ: { packet = new GC_DELETE_OBJ(); } break; case MessageID.PACKET_GC_ENTER_SCENE: { packet = new GC_ENTER_SCENE(); } break; case MessageID.PACKET_GC_LOGIN_QUEUE_STATUS: { packet = new GC_LOGIN_QUEUE_STATUS(); } break; case MessageID.PACKET_GC_LOGIN_RET: { packet = new GC_LOGIN_RET(); } break; case MessageID.PACKET_GC_MISSION_PARAM: { packet = new GC_MISSION_PARAM(); } break; case MessageID.PACKET_GC_MISSION_STATE: { packet = new GC_MISSION_STATE(); } break; case MessageID.PACKET_GC_MISSION_SYNC_MISSIONLIST: { packet = new GC_MISSION_SYNC_MISSIONLIST(); } break; case MessageID.PACKET_GC_MOVE: { packet = new GC_MOVE(); } break; case MessageID.PACKET_GC_NOTICE: { packet = new GC_NOTICE(); } break; case MessageID.PACKET_GC_RET_PING: { packet = new GC_RET_PING(); } break; case MessageID.PACKET_GC_RET_RANDOMNAME: { packet = new GC_RET_RANDOMNAME(); } break; case MessageID.PACKET_GC_SELECTROLE_RET: { packet = new GC_SELECTROLE_RET(); } break; case MessageID.PACKET_GC_STOP: { packet = new GC_STOP(); } break; case MessageID.PACKET_GC_SYNC_COMMONDATA: { packet = new GC_SYNC_COMMONDATA(); } break; case MessageID.PACKET_GC_SYNC_COMMONFLAG: { packet = new GC_SYNC_COMMONFLAG(); } break; case MessageID.PACKET_GC_SYNC_POS: { packet = new GC_SYNC_POS(); } break; case MessageID.PACKET_GC_SYN_ATTR: { packet = new GC_SYN_ATTR(); } break; } if (null != packet) { packet.packetID = packetID; } return(packet); }