public void LaunchBullet(NetCmdPack pack) { NetCmdBullet cmd = (NetCmdBullet)pack.cmd; byte clientSeat, id; SceneRuntime.BuuletIDToSeat(cmd.BulletID, out clientSeat, out id); if (GetPlayer(clientSeat) == null) { return; } ScenePlayer sp = GetPlayer(clientSeat); if (sp.Launcher.LauncherType != cmd.LauncherType) { sp.Launcher.ChangeLauncher(cmd.LauncherType, true); } if (sp == null) { LogMgr.Log("不存在的玩家座位:" + clientSeat); return; } float elapsedTime = (Utility.GetTickCount() - pack.tick) * 0.001f + SceneRuntime.NetDelayTime; short degree = SceneRuntime.AngleInversion(cmd.Degree); SceneRuntime.BulletMgr.LaunchBullet(cmd.BulletID, sp.Launcher.LauncherType, sp.RateIndex, degree, elapsedTime, cmd.ReboundCount, cmd.LockFishID); sp.Launcher.LauncherBullet(cmd.Energy); // SceneRuntime.SceneLogic.LaunchBullet(clientSeat, sp.Launcher.LauncherType, sp.RateIndex); int gold = LauncherSetting.LauncherDataList[sp.Launcher.LauncherType].Consume * BulletSetting.BulletRate[sp.RateIndex]; ConsumeGold(clientSeat, gold, sp); }
public static void AddPlayer(MsgScenePlayer msgScenePlayer, GameObject go) { if (scenePlayers.ContainsKey(msgScenePlayer.uid)) { scenePlayers.Remove(msgScenePlayer.uid); } ScenePlayer scenePlayer = new ScenePlayer(); scenePlayer.uid = msgScenePlayer.uid; scenePlayer.uname = msgScenePlayer.uname; scenePlayer.pos_x = msgScenePlayer.scene_pos_rot.pos_x; scenePlayer.pos_y = msgScenePlayer.scene_pos_rot.pos_y; scenePlayer.pos_z = msgScenePlayer.scene_pos_rot.pos_z; scenePlayer.rot_x = msgScenePlayer.scene_pos_rot.rot_x; scenePlayer.rot_y = msgScenePlayer.scene_pos_rot.rot_y; scenePlayer.rot_z = msgScenePlayer.scene_pos_rot.rot_z; scenePlayer.moveSync = go.GetComponent <PlayerMoveSync>(); GameObject.Destroy(go.GetComponent <PlayerMove>()); scenePlayer.animSync = go.GetComponent <PlayerAnimationSync>(); GameObject.Destroy(go.GetComponent <PlayerAnimation>()); scenePlayers.Add(scenePlayer.uid, scenePlayer); }
private void Start() { loadInput = transform.Find("LoadInput").GetComponent <InputField>(); saveInput = transform.Find("SaveInput").GetComponent <InputField>(); transform.Find("LoadButton").GetComponent <Button>().onClick.AddListener(OnLoadButton); transform.Find("SaveButton").GetComponent <Button>().onClick.AddListener(OnSaveButton); scenePlayer = FindObjectOfType <ScenePlayer>(); }
public static void DelPlayer(uint uid) { if (scenePlayers.ContainsKey(uid)) { ScenePlayer scenePlayer = scenePlayers[uid]; scenePlayers.Remove(uid); GameObject.Destroy(scenePlayer.moveSync.gameObject); } }
//添加玩家 public void AddPlayer(string id) { lock (list) { ScenePlayer p = new ScenePlayer(); p.id = id; list.Add(p); } }
public void Update(float delta) { // ------------------------------------- if (Input.GetMouseButtonDown(0) && SceneRuntime.HandleClickEvent == false && m_bAutoLocked) { ushort fishid = SceneRuntime.FishMgr.GetFishIDByScreenPoint(Input.mousePosition); //m_bAutoLocked = fishid != 0; m_LockedFishID = fishid; } // ------------------------------------- if (m_LockedFishID != 0) { Vector3 startScrPoint = SceneRuntime.GetLauncherScrStartPos(MyClientSeat); Vector3 startViewPoint = SceneRuntime.GetLauncherViewStartPos(MyClientSeat); Fish fish = SceneRuntime.FishMgr.FindFishByID(m_LockedFishID); if (fish == null || fish.IsDelay || fish.Catched || Utility.IsInScreen(fish.ScreenPos) == false || Utility.CheckLauncherAngle(fish, startScrPoint, startViewPoint) == false) { m_LockedFishID = 0; } } else if (m_bAutoLocked) { //if(Utility.GetTickCount() - m_LockInterval > 0) { Vector3 startScrPoint = SceneRuntime.GetLauncherScrStartPos(MyClientSeat); Vector3 startViewPoint = SceneRuntime.GetLauncherViewStartPos(MyClientSeat); m_LockInterval = Utility.GetTickCount(); m_LockedFishID = SceneRuntime.FishMgr.GetFishBySortGold(startScrPoint, startViewPoint); } } SceneRuntime.LogicUI.UpdateLockedUI(); for (int i = 0; i < ConstValue.PLAYER_MAX_NUM; ++i) { if (m_PlayerList[i] == null) { continue; } ScenePlayer sp = m_PlayerList[i]; sp.Launcher.Update(delta); if (sp.ComboEft != null && sp.ComboEft.m_BaseWndObject != null) { if (sp.ComboEft.m_BaseWndObject.activeSelf != true) { continue; } if (sp.ComboEft.Updata(delta) == false) { sp.ComboEft.m_BaseWndObject.SetActive(false); } } } }
public void FishCatch(byte clientSeat, ushort combo) { ScenePlayer player = m_PlayerList[clientSeat]; ushort ComboCount = (ushort)(combo & 0x7FFF); bool IsComboCRI = ((combo & 0x8000) != 0) ? true : false; if (ComboCount > 0) { ShowCombo(clientSeat, ComboCount, IsComboCRI); } }
public void UpdatePlayerGold(byte clientSeat, int gold) { if (GetPlayer(clientSeat) == null) { return; } ScenePlayer sp = SceneRuntime.PlayerMgr.GetPlayer(clientSeat); PlayerRole.Instance.OnAddUserGlobelByCatchedData(clientSeat, gold); if (sp != null && sp.Launcher != null) { sp.Launcher.UpdateUserGold(clientSeat); } }
public void ConsumeGold(byte clientSeat, int gold, ScenePlayer sp) { if (m_PlayerList[clientSeat] == null) { Debug.Log("client Player is null."); return; } if (!MatchJudge.IsMatch() && clientSeat == m_MyClientSeat) { GlobalHallUIMgr.Instance.GameShare.AddGlod(-gold); } PlayerRole.Instance.OnAddUserGlobelByCatchedData(clientSeat, -gold); m_PlayerList[clientSeat].Launcher.UpdateUserGold(m_PlayerList[clientSeat].ClientSeat); }
public void UpdateInfo(string id, float x, float y, float z) { int count = list.Count; ProtocolBytes protocol = new ProtocolBytes(); ScenePlayer p = GetScenePlayer(id); if (p == null) { return; } p.x = x; p.y = y; p.z = z; }
//更新信息 public void UpdateInfo(string id, float x, float y, float z, int score) { int count = list.Count; ScenePlayer p = GetScenePlayer(id); if (p == null) { return; } p.x = x; p.y = y; p.z = z; p.score = score; }
public void DelPlayer(string id) { lock (list) { ScenePlayer p = GetScenePlayer(id); if (p != null) { list.Remove(p); } ProtocolBytes protocol = new ProtocolBytes(); protocol.AddString("PlayerLeave"); protocol.AddString(id); ServNet.instance.Broadcast(protocol); } }
public void ShowGiftEff(byte bySource, byte byDest, byte byGiftIndex) { ScenePlayer pPlayer1 = SceneRuntime.Instance.Scene.PlayerMgr.GetPlayer(bySource); ScenePlayer pPlayer2 = SceneRuntime.Instance.Scene.PlayerMgr.GetPlayer(byDest); if (pPlayer1 != null && pPlayer2 != null && byGiftIndex < m_objGiftEff.Count) { GlobalAudioMgr.Instance.PlayCharmMusic(Audio.OrdianryMusic.m_Gift0 + byGiftIndex); Vector3 v1 = new Vector3(pPlayer1.Launcher.LauncherPos.x, pPlayer1.Launcher.LauncherPos.y, 0); Vector3 v2 = new Vector3(pPlayer2.Launcher.LauncherPos.x, pPlayer2.Launcher.LauncherPos.y, 0); CFlyGift pGift = new CFlyGift(v1, v2, m_objFlyGift, m_objGiftEff[byGiftIndex], FishConfig.Instance.m_CharmInfo.CharmIndexMap[byGiftIndex].ItemID.ToString(), byDest, byGiftIndex == 4); m_ListGift.Add(pGift); return; } }
public void SetPlayerHeader(uint playerID, byte seat, Texture2D tex) { ScenePlayer sp = GetPlayer(seat); if (sp == null) { return; } if (playerID == sp.Player.playerData.ID) { //GetPlayer(seat).Launcher.SetPlayerImg(tex, GetPlayer(seat).Player.playerData.ImgCrc); uint faceID = sp.Player.playerData.ImgCrc; HeaderManager.Instance.SetHead(sp.Launcher.FaceTextute, faceID, playerID, faceID, HeaderOptType.HEADER_SCENE, seat); } }
public void SendPlayerList(Player player) { int count = list.Count; ProtocolBytes protocol = new ProtocolBytes(); protocol.AddString("GetList"); protocol.AddInt(count); for (int i = 0; i < count; i++) { ScenePlayer p = list[i]; protocol.AddString(p.id); protocol.AddFloat(p.x); protocol.AddFloat(p.y); protocol.AddFloat(p.z); } player.Send(protocol); }
public bool PlayerJoin(PlayerExtraData player, byte clientSeat, byte rateIdx, byte launcherType, bool valid) { if (m_PlayerList[clientSeat] != null) { LogMgr.Log("Seat palyer already exists:" + clientSeat.ToString()); return(false); } ScenePlayer sp = new ScenePlayer(); sp.Player = player; sp.ClientSeat = clientSeat; sp.RateIndex = rateIdx; sp.Launcher = new Launcher(launcherType, valid, clientSeat, rateIdx); sp.Launcher.Init(); m_PlayerList[clientSeat] = sp; if (clientSeat != MyClientSeat) { //获取头像 if (player.playerData.ImgCrc < ConstValue.CUSTOM_HEADER) { sp.Launcher.SetPlayerImg(null, player.playerData.ImgCrc); } else { HeaderManager.Instance.GetPlayerHeader(player.playerData.ID, player.playerData.ImgCrc, HeaderOptType.HEADER_SCENE, clientSeat); } } else { SceneRuntime.LogicUI.GetSkillBar.UpdateData(); SceneRuntime.LogicUI.UpdateSkillState(); } //获取金币 m_PlayerList[clientSeat].Launcher.UpdateUserGold(clientSeat); return(true); }
public void LaunchSyncBullet(NetCmdPack pack) { NetCmdSyncBullet cmd = (NetCmdSyncBullet)pack.cmd; float elapsedTime = (Utility.GetTickCount() - pack.tick) * 0.001f + SceneRuntime.NetDelayTime; for (int i = 0; i < cmd.Bullets.Length; ++i) { SyncBulletData data = cmd.Bullets[i]; byte clientSeat, id; SceneRuntime.BuuletIDToSeat(data.BulletID, out clientSeat, out id); ScenePlayer sp = GetPlayer(clientSeat); if (sp == null) { //LogMgr.Log("不存在的玩家座位:" + clientSeat); return; } short degree = SceneRuntime.AngleInversion(data.Degree); SceneRuntime.BulletMgr.LaunchBullet(data.BulletID, data.BulletType, data.RateIdx, degree, data.Time * 0.001f + elapsedTime, data.ReboundCount, data.LockFishID /*, data.CollideCount, data.PauseTime * 0.001f, data.SpeedScaling * 0.001f*/); //int gold = LauncherSetting.LauncherDataList[data.BulletType].Consume * BulletSetting.BulletRate[data.RateIdx]; //ConsumeGold(clientSeat, gold, sp); } }
public void OnNetHandler(ushort packetId, System.Object obj) { Log.Error("SceneMgr OnNetHandler packetId:" + packetId); if (packetId == Msg.P_ACK_SCENE_PLAYERS) { AckScenePlayers scenePlayers = obj as AckScenePlayers; foreach (MsgScenePlayer msgPlayer in scenePlayers.players) { SceneAddPlayer(msgPlayer); } } else if (packetId == Msg.P_ACK_SCENE_ENTER) { AckSceneEnter sceneEnter = obj as AckSceneEnter; MsgScenePlayer msgPlayer = sceneEnter.player; SceneAddPlayer(msgPlayer); } else if (packetId == Msg.P_ACK_SCENE_EXIT) { AckSceneExit sceneExit = obj as AckSceneExit; SceneData.DelPlayer(sceneExit.uid); } else if (packetId == Msg.P_ACK_SCENE_POS_ROT_OK) { AckScenePosRotOk posRotOk = obj as AckScenePosRotOk; ScenePlayer scenePlayer = SceneData.GetPlayer(posRotOk.uid); if (scenePlayer != null) { scenePlayer.moveSync.SetPositionAndRotation(posRotOk.posrot); } else { Debug.Log("P_ACK_SCENE_POS_ROT_OK no player"); } } else if (packetId == Msg.P_ACK_SCENE_ANIM_MOVE_OK) { AckSceneAnimMoveOk animMoveOk = obj as AckSceneAnimMoveOk; ScenePlayer scenePlayer = SceneData.GetPlayer(animMoveOk.uid); if (scenePlayer != null) { scenePlayer.moveSync.SetAnim(animMoveOk.is_move); } else { Debug.Log("P_ACK_SCENE_ANIM_MOVE_OK no player"); } } else if (packetId == Msg.P_ACK_SCENE_ANIM_OK) { AckSceneAnimOk animOk = obj as AckSceneAnimOk; ScenePlayer scenePlayer = SceneData.GetPlayer(animOk.uid); if (scenePlayer != null) { scenePlayer.animSync.SetAnim(animOk); } else { Debug.Log("P_ACK_SCENE_ANIM_OK no player"); } } }
// Start is called before the first frame update void Start() { sceneOps = FindObjectOfType <ScenePlayer>(); }