void Update() { if (Input.GetKeyDown(KeyCode.H)) { CreateObjFunction.CreateModelStoryObj(463, "JXZFastMove1", Test); LogModule.DebugLog("fffffffffff"); } if (Input.GetKeyDown(KeyCode.K)) { ObjSnare_Init_Data initData = new ObjSnare_Init_Data(); initData.m_ServerID = 10000000; initData.m_OwerGuid = Singleton <ObjManager> .Instance.MainPlayer.GUID; initData.m_OwnerObjId = Singleton <ObjManager> .Instance.MainPlayer.ServerID; initData.m_fX = 1; initData.m_fZ = 5; initData.m_SnareID = 1; CreateObjFunction.CreateModelSnareObj(initData); } if (Input.GetKeyDown(KeyCode.Y)) { ObjYanHua_Init_Data initData = new ObjYanHua_Init_Data(); initData.m_ServerID = 10000000; initData.m_OwerGuid = Singleton <ObjManager> .Instance.MainPlayer.GUID; initData.m_OwnerObjId = Singleton <ObjManager> .Instance.MainPlayer.ServerID; initData.m_fX = 1; initData.m_fZ = 1; initData.m_nYanHuaID = 2; CreateObjFunction.CreateModelYanhuaObj(initData); } }
public uint Execute(PacketDistributed ipacket) { GC_CREATE_SNARE packet = (GC_CREATE_SNARE )ipacket; if (null == packet) { return((uint)PACKET_EXE.PACKET_EXE_ERROR); } //enter your logic //判断ServerID是否合法 if (packet.ServerId < 0) { return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); } //安全措施,如果发现ServerID已经存在,则先移除掉 if (Singleton <ObjManager> .GetInstance().IsObjExist(packet.ServerId)) { Singleton <ObjManager> .GetInstance().RemoveObj(packet.ServerId); } ObjSnare_Init_Data initData = new ObjSnare_Init_Data(); initData.m_ServerID = packet.ServerId; initData.m_OwerGuid = packet.Owerguid; initData.m_OwnerObjId = packet.OwerId; initData.m_fX = ((float)packet.PosX) / 100; initData.m_fZ = ((float)packet.PosZ) / 100; initData.m_SnareID = packet.SnareId; CreateObjFunction.CreateModelSnareObj(initData); return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); }
public bool Init(ObjSnare_Init_Data initData) { if (null == m_ObjTransform) { m_ObjTransform = transform; } //服务器发过来的信息 ServerID = initData.m_ServerID; SnareId = initData.m_SnareID; OwerobjID = initData.m_OwnerObjId; OwnerGuid = initData.m_OwerGuid; m_ObjTransform.position = ActiveScene.GetTerrainPosition(new Vector3(initData.m_fX, 0, initData.m_fZ)); Obj_Character ownerCharacter = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(OwerobjID); //修正陷阱的高度和陷阱释放者一样 if (ownerCharacter != null) { Vector3 newPosVector3 = m_ObjTransform.position; newPosVector3.y = ownerCharacter.ObjTransform.position.y; m_ObjTransform.position = newPosVector3; } //初始化特效 if (ObjEffectController == null) { ObjEffectController = gameObject.AddComponent <ObjEffectBehaviourController>(); } Tab_SnareObjInfo SnareInfo = TableManager.GetSnareObjInfoByID(SnareId, 0); if (SnareInfo != null) { //播放生存期特效 for (int i = 0; i < SnareInfo.getAliveEffectIdCount(); i++) { int AliveEffectId = SnareInfo.GetAliveEffectIdbyIndex(i); if (AliveEffectId != -1 && ObjEffectController != null) { PlayEffect(AliveEffectId); } } //播放生存期音效 for (int i = 0; i < SnareInfo.getAliveSoundIdCount(); i++) { int AliveSoundId = SnareInfo.GetAliveSoundIdbyIndex(i); if (AliveSoundId != -1) { GameManager.gameManager.SoundManager.PlaySoundEffect(AliveSoundId); } } } return(true); }
/// <summary> /// 创建陷阱 /// </summary> /// <param name="nCharModelID"></param> /// <param name="initData"></param> public static void CreateModelSnareObj(ObjSnare_Init_Data initData) { if (null == initData) { return; } //根据RoleBase的ID获得路径 Tab_SnareObjInfo SnareObjInfo = TableManager.GetSnareObjInfoByID(initData.m_SnareID, 0); if (null == SnareObjInfo) { return; } int nCharModelID = SnareObjInfo.CharModelId; Tab_CharModel charModel = TableManager.GetCharModelByID(nCharModelID, 0); if (charModel == null) { LogModule.WarningLog("can not find char model id in table :{0}", nCharModelID); return; } GameObject SnareObj = ResourceManager.InstantiateResource("Prefab/Model/SnareRoot", initData.m_ServerID.ToString()) as GameObject; if (null != SnareObj) { //加载逻辑体,同时异步加载渲染体 Obj_Snare objSnare = SnareObj.AddComponent <Obj_Snare>();; if (objSnare.Init(initData)) { objSnare.CanLogic = true; Singleton <ObjManager> .Instance.AddPoolObj(objSnare.ServerID.ToString(), objSnare); } //ReloadModel(SnareObj, charModel.ResPath, AsycSnareObjOver, initData); LoadModelToRoot(nCharModelID, EResourceType.CharacterModel, LoadModelComplete, SnareObj, charModel, null); } }