public UInt32 GetPlayerSocreBySeat(Byte Seat) { Seat = SceneRuntime.ClientToServerSeat(Seat); //或者指定位置玩家的积分 bool IsInMonth = (PlayerRole.Instance.RoleInfo.RoleMe.GetMonthID() != 0); if (!IsInMonth) { return(0); } RoleBase pRole = null; if (PlayerRole.Instance.RoleInfo.RoleMe.GetSeat() == Seat) { pRole = PlayerRole.Instance.RoleInfo.RoleMe; } else { pRole = PlayerRole.Instance.TableManager.GetTableRole(Seat); } if (pRole == null) { return(0); } return(pRole.GetMonthScore()); }
public void SendCheckPos() { if (++SendInterval < 60 * 6) { return; } SendInterval = 0; NetCmdCheckBulletPos pp = new NetCmdCheckBulletPos(); pp.SetCmdType(NetCmdType.CMD_CHECK_BULLET_POS); List <CheckBulletPos> pl = new List <CheckBulletPos>(); for (int i = 0; i < m_PlayerBullets.Length; ++i) { PlayerBullets pb = m_PlayerBullets[i]; foreach (Bullet bullet in pb.BulletList.Values) { CheckBulletPos bb = new CheckBulletPos(); bb.Pos = new NetCmdVector3(bullet.Position.x, bullet.Position.y, bullet.Position.z); bb.ID = bullet.ServerID; pl.Add(bb); } } pp.Count = (ushort)pl.Count; pp.Bullets = pl.ToArray(); SceneRuntime.Send <NetCmdCheckBulletPos>(pp); }
public UInt32 GetPlayerGlobelBySeat(Byte Seat) { Seat = SceneRuntime.ClientToServerSeat(Seat); RoleBase pRole = null; if (PlayerRole.Instance.RoleInfo.RoleMe.GetSeat() == Seat) { pRole = PlayerRole.Instance.RoleInfo.RoleMe; } else { // pRole = PlayerRole.Instance.TableManager.GetTableRole(Seat); } if (pRole == null) { return(0); } bool IsInMonth = (PlayerRole.Instance.RoleInfo.RoleMe.GetMonthID() != 0); if (IsInMonth) { return(pRole.GetMonthGlobel()); } else { return(pRole.GetGlobel()); } }
public void LaunchLaser(byte clientSeat, short degree) { if (m_bMyself) { m_bLauncherXPSkill = false; ClearXPSkillEft(); m_EnergyPoolLogic[LauncherType].LaserCDState = true; m_EnergyPoolLogic[LauncherType].Rollback = true; m_EnergyPoolLogic[LauncherType].PlayRollbackPoolUI(1000); m_EnergyPoolUI.fillAmount = m_EnergyPoolLogic[LauncherType].FillAmount; } Vector3 startPos; Vector3 dir; degree = SceneRuntime.AngleInversion(degree); SceneRuntime.GetBulletPosAndDir(clientSeat, degree, out dir, out startPos); if (!m_bMyself) { Vector2 direction = new Vector2(dir.x, dir.y); Direction = direction; UpdatOtherAngle(); } SceneRuntime.LauncherEftMgr.PlayXPSkillMuzzleEft(m_GunBarrel.BaseTransform, LauncherType, startPos, m_LauncherSetting.LaserCDTime); SceneRuntime.LauncherEftMgr.PlayLaserEft(m_GunBarrel.BaseTransform, LauncherType, clientSeat, Direction, startPos, m_Angle); // SceneRuntime.LauncherEftMgr.RemoveAtEffect(); }
void ShowCombo(byte clientSeat, ushort ComboCount, bool bCRI /*是否必杀*/) { if (m_PlayerList[clientSeat].ComboEft == null) { SceneComboEft combo = new SceneComboEft(); combo.Pos = SceneRuntime.GetLauncherGoldIconPos(clientSeat); if (m_MyClientSeat == clientSeat) { combo.IsMySelf = true; } else { combo.IsMySelf = false; } combo.Init(m_ComboObj); m_PlayerList[clientSeat].ComboEft = combo; } m_PlayerList[clientSeat].ComboEft.ShowCombo(ComboCount, bCRI); if (clientSeat == m_MyClientSeat) { PlayerRole.Instance.RoleGameData.OnHandleRoleCombo(ComboCount); } }
public void ChangeRate(NetCmdPack pack) { NetCmdChangeRate cmd = (NetCmdChangeRate)pack.cmd; byte clientSeat = SceneRuntime.ServerToClientSeat(cmd.Seat); if (GetPlayer(clientSeat) == null) { return; } byte OldRate = GetPlayer(clientSeat).RateIndex; GetPlayer(clientSeat).RateIndex = cmd.RateIndex; //Debug.Log(cmd.RateIndex); GetPlayer(clientSeat).Launcher.ChangeRate(cmd.RateIndex, cmd.IsCanUseRate); //如果是自己切换倍率我们就清掉连击状态 if (clientSeat == m_MyClientSeat) { if (m_PlayerList[clientSeat].ComboEft != null) { if (m_PlayerList[clientSeat].ComboEft.LifeTime >= 0.1f) { m_PlayerList[clientSeat].ComboEft.LifeTime = 0; } } } //因为玩家切换倍率 我们触发一个事件 tagGameRateChangeEvent pEvent = new tagGameRateChangeEvent(GetPlayer(clientSeat).Player.playerData.ID, OldRate, cmd.RateIndex); MsgEventHandle.HandleMsg(pEvent); }
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 void ChangeDestRate(byte rateIndex) { NetCmdChangeRateType ncb = new NetCmdChangeRateType(); ncb.SetCmdType(NetCmdType.CMD_CHANGE_RATE_TYPE); ncb.Seat = SceneRuntime.ClientToServerSeat(m_PlayerMgr.MyClientSeat); ncb.RateIndex = rateIndex; Send <NetCmdChangeRateType>(ncb); }
//切换到指定类型 的炮 public void ChangeDestLauncher(byte launcherType) { NetCmdChangeLauncherType ncb = new NetCmdChangeLauncherType(); ncb.SetCmdType(NetCmdType.CMD_CHANGE_LAUNCHER_TYPE); ncb.Seat = SceneRuntime.ClientToServerSeat(m_PlayerMgr.MyClientSeat); ncb.LauncherType = launcherType; Send <NetCmdChangeLauncherType>(ncb); }
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 LaunchBullet(ushort bulletID, byte launcherType, byte rateIndex, short angle, float time, byte reboundCount, ushort lockfishid /*, byte collidCount = 0, float pauseTime = 0, float speedScaling = 0*/) { byte clientSeat, id; SceneRuntime.BuuletIDToSeat(bulletID, out clientSeat, out id); Bullet bullet = new Bullet(); Vector3 startpos; Vector3 dir; float volume = 1; float curtime = Time.time; byte[] type = { 9, 9, 10, 11, 12 }; if (SceneRuntime.PlayerMgr.GetPlayer(clientSeat) == null) { return; } if (SceneRuntime.PlayerMgr.GetPlayer(clientSeat) == SceneRuntime.PlayerMgr.MySelf) { volume = 1; lastTime = curtime; GlobalAudioMgr.Instance.PlayOrdianryMusic((Audio.OrdianryMusic)type[launcherType], false, false, volume); } else { volume = 0.30f; if ((lastTime + 0.1f) < curtime) { GlobalAudioMgr.Instance.PlayOrdianryMusic((Audio.OrdianryMusic)type[launcherType], false, false, volume); } } SceneRuntime.GetBulletPosAndDir(clientSeat, angle, out dir, out startpos); SceneRuntime.PlayerMgr.ChangeLauncherAngle(dir, clientSeat); //改变炮台角度 bullet.Init(clientSeat, id, launcherType, rateIndex, startpos, dir, reboundCount, lockfishid); bullet.InitAngle(Utility.ShortToFlaot(angle)); //bullet.SetCollidData(collidCount, pauseTime, speedScaling); PlayerBullets pb = m_PlayerBullets[clientSeat]; if (pb != null) { Bullet findBullet; if (pb.BulletList.TryGetValue(id, out findBullet)) { Debug.Log("相同的子弹ID:" + id); findBullet.Destroy(); pb.BulletList.Remove(id); } if (time > 0) { bullet.Update(time); } pb.BulletList.Add(id, bullet); } }
public void PlayXPSkillMuzzleEft(Transform parent, byte type, Vector3 pos, float life) { GameObject go = GameObject.Instantiate(m_SkillMuzzleObj[type]) as GameObject; go.transform.SetParent(parent, false); go.transform.position = SceneRuntime.WorldToNGUI(pos); m_XPSkillMuzzleEft = new GlobalEffectData(go, 0, life); GlobalEffectMgr.Instance.AddEffect(m_XPSkillMuzzleEft); GlobalEffectMgr.SetEffectOnUI(go); //m_EffectList.Add(go); }
public System.Collections.IEnumerator MainInitProcedure(object obj) { //异步加载 m_FishMgr = new SceneFishMgr(); m_BulletMgr = new SceneBulletMgr(); m_PlayerMgr = new ScenePlayerMgr(); m_SkillMgr = new SceneSkillMgr(); m_EffectMgr = new SceneEffectMgr(); m_LauncherEffectMgr = new LauncherEffectMgr(); m_ChestMgr = new SceneChestMgr(); m_BtnsMgr = new SceneBtnsMrg(); m_NewGide = new SceneNewGuide(); m_FishMgr.Init(); yield return(new WaitForEndOfFrame()); m_BulletMgr.Init(); yield return(new WaitForEndOfFrame()); m_LauncherEffectMgr.Init(); yield return(new WaitForEndOfFrame()); m_PlayerMgr.Init(); yield return(new WaitForEndOfFrame()); m_SkillMgr.Init(); yield return(new WaitForEndOfFrame()); m_EffectMgr.Init(); yield return(new WaitForEndOfFrame()); m_ChestMgr.Init(); yield return(new WaitForEndOfFrame()); m_BtnsMgr.Init(); yield return(new WaitForEndOfFrame()); m_NewGide.InitObj(); yield return(new WaitForEndOfFrame()); //加载技能栏 m_LogicUI.InitByScene(); SceneRuntime.Init(this); ResetScene((JoinRoomData)obj, true); while (PathManager.Instance.IsInitOK == false) { yield return(new WaitForEndOfFrame()); } GlobalLoading.Instance.Hide(); GlobalHallUIMgr.Instance.ShowHead(HeadWind.HeadStatue.Head_Normal); GlobalAudioMgr.Instance.PlayerBGMusic(Audio.EffectBGType.EffectBGSound1); // m_NewGide.CheckIsLauncherGuide(); //调整系公告位置 GlobalHallUIMgr.Instance.AdjustNoticePos(); m_LogicUI.UpdateUnLockDataInfo(); m_LogicUI.UpdateLotteryInfo(); SubStartCount(); yield break; }
public void ShowBossFishSpecailEft(CatchedData cd, Fish fish) { GameObject go = GameObject.Instantiate(m_BossFishSpecailEftObj) as GameObject; go.transform.SetParent(SceneObjMgr.Instance.UIPanelTransform, false); go.transform.position = SceneRuntime.WorldToNGUI(fish.Position); GlobalEffectData bossFishEft = new GlobalEffectData(go, 0, 5); GlobalEffectMgr.Instance.AddEffect(bossFishEft); // GlobalEffectMgr.SetEffectOnUI(go); SceneObjMgr.Instance.PlayBack(BackAnimType.BACK_ANIM_BOSS); }
void ShowGoldEndLargen(byte clientSeat) { if (MatchJudge.IsMatch()) { return; } Vector3 pos = SceneRuntime.GetLauncherGoldIconPos(clientSeat); if (m_EndLargenGold.m_GameObj == null && m_EndLargenGold.m_LifeTime <= 0.03f) { m_EndLargenGold.m_GameObj = Initobj(m_LargenGoldObj); m_EndLargenGold.Init(); m_EndLargenGold.m_TrnasGold.position = pos; } }
//鱼被捕获调用接口,弹出金币 public void FishCatched(Fish fish, CatchedData cd) { if (fish.IsBossFish()) { GlobalAudioMgr.Instance.PlayOrdianryMusic(Audio.OrdianryMusic.catch_bossfish); } m_GoldEffect.ShowGoldEffect(cd, fish); KonnoTool.ShowBossCatched(SceneRuntime.WorldToNGUI(fish.Position), cd.GoldNum); if (fish.IsBossFish()) { //BossFish彩蛋特效 m_GoldEffect.ShowBossFishSpecailEft(cd, fish); } //卡片掉落 ushort nReward = fish.GetDropReward(); if (nReward != 0) { tagRewardOnce pReward; if (!FishConfig.Instance.m_RewardConfig.RewardMap.TryGetValue(nReward, out pReward)) { return; } for (int i = 0; i < pReward.RewardItemVec.Count; i++) { tagItemConfig itemConfig; uint uItemid = pReward.RewardItemVec[i].ItemID; if (!FishConfig.Instance.m_ItemInfo.m_ItemMap.TryGetValue(uItemid, out itemConfig)) { continue; } if (itemConfig.ItemTypeID == EItemType.IT_Currey)//钻石特殊处理 { m_GoldEffect.ShowDiamond(cd, fish); } else//其他卡片 { if (SceneRuntime.SceneLogic.PlayerMgr.GetPlayer(cd.ClientSeat) == null) { continue; } Vector2 vecPos = SceneRuntime.SceneLogic.PlayerMgr.GetPlayer(cd.ClientSeat).Launcher.LauncherPos; SceneRuntime.SceneLogic.LogicUI.MoveDropCard(SceneRuntime.WorldToNGUI(fish.Position), new Vector3(vecPos.x, vecPos.y, 0), (ushort)uItemid); } } } }
public void ShowDiamond(CatchedData cd, Fish fish) { GoldEffectData ged = new GoldEffectData(); ged.GameObj = Initobj(m_DiamondObj); ged.GameObj.transform.position = SceneRuntime.WorldToNGUI(fish.Position) + (new Vector3(Utility.RandFloat(), Utility.RandFloat(), 0) * 0.45f); ged.m_Tween.m_Pos = ged.GameObj.transform.GetComponent <TweenPosition>(); ged.m_Tween.m_Sclae = ged.GameObj.transform.GetComponent <TweenScale>(); ged.ScaleGoldTR(1.0f, 0.6f); ged.m_DelayTime = 2; ged.GoldNum = 1; ged.PlayTween(true); ged.m_vecpathend = SceneRuntime.GetLauncherGoldIconPos(cd.ClientSeat); m_diamondList.Add(ged); }
public void Shutdown() { GlobalHallUIMgr.Instance.CloseHead(); m_FishMgr.Shutdown(); m_BulletMgr.Shutdown(); m_PlayerMgr.Shutdown(); m_SkillMgr.Shutdown(); m_EffectMgr.Shutdown(); m_LauncherEffectMgr.ShutDown(); m_ChestMgr.ShutDown(); m_BtnsMgr.ShutDown(); m_NewGide.ShutDown(); // GlobalHallUIMgr.Instance.ShutDowNotic(); GlobalEffectMgr.Instance.Clear(); SceneRuntime.Shutdown(); PlayerRole.Instance.OnUserLeaveTable(); }
public void ResetPlayerData(JoinRoomData jrd, bool bFirst) { byte serverSeat = jrd.Seat; byte serverLauncherType = jrd.LauncherType; SceneObjMgr.Instance.SwapBackgroundImage(jrd.BackgroundImage); m_RoomType = jrd.RoomID; m_RoomRateIndex = FishConfig.Instance.m_TableInfo.m_TableConfig[m_RoomType].MinRate;// ExtraSetting.RoomDataList[m_RoomType].RoomRateIdx; //管理器初始化 if (bFirst || SceneRuntime.BackgroundIndex != jrd.BackgroundImage) { m_EffectMgr.ClearBackEffect(); m_EffectMgr.LoadBackEffect(jrd.BackgroundImage); } SceneRuntime.Inversion = serverSeat > 1; SceneRuntime.BackgroundIndex = jrd.BackgroundImage; m_PlayerMgr.MyClientSeat = SceneRuntime.ServerToClientSeat(serverSeat); PlayerMgr.ClearAllPlayer(); //加入自己 bool launcherValid; byte clientLauncherType; SceneRuntime.CheckLauncherValid( serverLauncherType, out clientLauncherType, out launcherValid); //获取自己的消息 RoleMe pMe = PlayerRole.Instance.RoleInfo.RoleMe; pMe.SetSeat(serverSeat); PlayerExtraData pPlayer = new PlayerExtraData(); pPlayer.playerData.GoldNum = (int)PlayerRole.Instance.GetPlayerGlobelBySeat(pMe.GetSeat()); pPlayer.playerData.ID = pMe.GetUserID(); pPlayer.playerData.ImgCrc = pMe.GetFaceID(); pPlayer.playerData.Level = (byte)pMe.GetLevel(); pPlayer.playerData.Name = pMe.GetNickName(); m_PlayerMgr.PlayerJoin(pPlayer, m_PlayerMgr.MyClientSeat, jrd.RateIndex, clientLauncherType, launcherValid); m_PlayerMgr.UpdateEnergy(jrd.Energy); }
//命令处理 //====================================================================== public void PlayerJoin(NetCmdPack pack) { NetCmdPlayerJoin ncp = (NetCmdPlayerJoin)pack.cmd; PlayerExtraData pd = new PlayerExtraData(); pd.playerData.ID = ncp.PlayerInfo.ID; pd.playerData.GoldNum = ncp.PlayerInfo.GoldNum; pd.playerData.ImgCrc = ncp.PlayerInfo.ImgCrc; pd.playerData.Level = ncp.PlayerInfo.Lvl; pd.playerData.Name = ncp.PlayerInfo.Name; byte clientSeat = SceneRuntime.ServerToClientSeat(ncp.Seat); bool launcherValid; byte clientLauncherType; SceneRuntime.CheckLauncherValid(ncp.LauncherType, out clientLauncherType, out launcherValid); m_PlayerMgr.PlayerJoin(pd, clientSeat, ncp.rateIndex, clientLauncherType, launcherValid);//m_RoomRateIndex }
void Update() { #if UNITY_STANDALONE_WIN || UNITY_EDITOR DllTest.CheckExecuteResult(); #endif #if !UNITY_EDITOR try { #endif CehckEscape(); long tick = System.DateTime.Now.Ticks; System.TimeSpan ts = new System.TimeSpan(tick - m_LastTick); m_LastTick = tick; uint curTick = Utility.GetTickCount(); m_Delta = Utility.TickToFloat(curTick - m_FrameTick); if ((ts.TotalSeconds > 5 || m_Delta >= 5.0f) && LogicManager.Instance.IsPlaying) { //LogMgr.Log("Refresh,delta:" + m_Delta + ",tick:" + ts.TotalSeconds+",Socket:" + NetServices.Instance.IsSocketConnected); SceneRuntime.RefreshScene(); } m_FrameTick = curTick; if (BlockLogic.Instance.Update(m_Delta)) { //如果当前没有阻塞 LogicManager.Instance.Update(m_Delta); } if (ServerSetting.IS_TEST) { WndManager.Instance.Check(); ComputeFPS(m_Delta); } #if !UNITY_EDITOR } catch (System.Exception e) { //异常提交 ReportException.Instance.AddException(e.ToString()); } #endif }
//单个金币 public void ShowUnLockRateReward(Vector3 pos) { for (int i = 0; i < 3; i++) { GoldEffectData ged = new GoldEffectData(); ged.GameObj = Initobj(m_GoldObj); ged.GameObj.transform.position = pos + ((new Vector3(Utility.RandFloat(), Utility.RandFloat(), 0)) * 0.15f); ged.m_Tween.m_Pos = ged.GameObj.transform.GetComponent <TweenPosition>(); ged.m_Tween.m_Sclae = ged.GameObj.transform.GetComponent <TweenScale>(); ged.ScaleGoldTR(0.6f, 0.6f); ged.m_DelayTime = 0; ged.GoldNum = 1; ged.PlayTween(true); ged.m_vecpathend = SceneRuntime.GetLauncherGoldIconPos(SceneRuntime.SceneLogic.PlayerMgr.MySelf.ClientSeat); m_UnlockRateList.Add(ged); } // if (SceneRuntime.PlayerMgr.GetPlayer(ged.catchedData.ClientSeat) == SceneRuntime.PlayerMgr.MySelf) // GlobalAudioMgr.Instance.PlayOrdianryMusic(Audio.OrdianryMusic.m_GoldJump); }
public void CheckFishPos() { if (m_FishNum == 0 || ++SendInterval < 120) { return; } SendInterval = 0; List <CheckFishPos> list = new List <CheckFishPos>(); foreach (Fish fish in m_FishList.Values) { if (fish.Delay) { continue; } CheckFishPos ncf = new CheckFishPos(); ncf.FishID = fish.FishID; ncf.Time = fish.Time; ncf.Pos = Utility.ToNetCmdVec3(fish.Position); ncf.Rot = Utility.ToNetCmdVec4(fish.Rotation); ncf.Speed = fish.Speed; list.Add(ncf); if (list.Count > 50) { NetCmdCheckFishPos cmd = new NetCmdCheckFishPos(); cmd.Fish = list.ToArray(); cmd.FishNum = (ushort)cmd.Fish.Length; cmd.SetCmdType(NetCmdType.CMD_CHECK_FISH_POS); SceneRuntime.Send <NetCmdCheckFishPos>(cmd); list.Clear(); } } { NetCmdCheckFishPos cmd = new NetCmdCheckFishPos(); cmd.Fish = list.ToArray(); cmd.FishNum = (ushort)cmd.Fish.Length; cmd.SetCmdType(NetCmdType.CMD_CHECK_FISH_POS); SceneRuntime.Send <NetCmdCheckFishPos>(cmd); } }
public void MoveCard(GameObject goCard, Vector3 vecEnd) { ushort uId = System.Convert.ToUInt16(goCard.transform.GetChild(0).GetComponent <UISprite>().spriteName); // Vector3 vecEnd = Vector3.zero; // int nIndex = SceneRuntime.SceneLogic.LogicUI.GetSkillBar.BarItemIndex(uId); // if (nIndex != -1) { // vecEnd = SceneRuntime.SceneLogic.LogicUI.GetSkillBar.ItemPos((byte)nIndex); } Vector3 vStart = SceneRuntime.WorldToNGUI(goCard.transform.position); goCard.layer = 8; // goCard.transform.SetParent(SceneObjMgr.Instance.UIPanelTransform, false); goCard.transform.localScale = Vector3.one; DropCardItem pCard = new DropCardItem(); m_fishcards.Add(pCard); pCard.Init(goCard, vStart, vecEnd, uId); }
public override bool Update(float delta, Fish fish, out bool bRemove) { float x = Camera.main.WorldToScreenPoint(fish.Position).x; if (m_LeftToRight) { x /= Screen.width; } else { x = (Screen.width - x) / Screen.width; } float delay = x * 1.5f + 1.1f; if (delay <= m_Timer.LifeTime || m_Timer.IsEnd) { fish.StopLaugh(false); if (fish.ExtraData != null) { GlobalEffectData gfd = (GlobalEffectData)fish.ExtraData; fish.ExtraData = null; gfd.Life = 0; } float transRot = -Utility.Range(100, 200); float pathRot = -Utility.Range(300, 500); float speed = Utility.Range(15, 20) * SceneRuntime.ComputeZScaling(fish, 1.0f); FishOptPath fop = new FishOptPath(PathManager.Instance.BoLang, transRot, pathRot, speed, 0, fish.Position, true); fop.SetDeadData(0, false, null); fish.AddOpt(fop); bRemove = true; } else { bRemove = false; } 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 ChangeLauncher(NetCmdPack pack) { GlobalAudioMgr.Instance.PlayOrdianryMusic(Audio.OrdianryMusic.m_ChangeGun, false, true); NetCmdChangeLauncher ncc = (NetCmdChangeLauncher)pack.cmd; bool launcherValid; byte clientLauncherType; byte clientSeat = SceneRuntime.ServerToClientSeat(ncc.Seat); if (GetPlayer(clientSeat) == null) { return; } SceneRuntime.CheckLauncherValid(ncc.LauncherType, out clientLauncherType, out launcherValid); m_PlayerList[clientSeat].Launcher.ChangeLauncher(clientLauncherType, launcherValid); //change launcherType; if (m_MyClientSeat == clientSeat) { SceneRuntime.LogicUI.UpateLaunchData(); SceneRuntime.LogicUI.UpdateSkillState(); } }
public void Update(float delta) { m_GunBarrel.Update(delta); if (m_LockedFishEft.m_LifeTime > 0) { m_LockedFishEft.m_LifeTime -= delta; if (m_LockedFishEft.m_LifeTime <= 0) { m_LockedFishEft.m_Obj.SetActive(false); } } //处理能量槽回滚 if (m_EnergyPoolLogic[LauncherType].Rollback) { m_EnergyPoolLogic[LauncherType].PlayRollbackPoolUI(delta); m_EnergyPoolUI.fillAmount = m_EnergyPoolLogic[LauncherType].FillAmount; } //处于大招CD状态 if (m_EnergyPoolLogic[LauncherType].LaserCDState) { m_EnergyPoolLogic[LauncherType].PlayCD(delta); return; } //大招的硬直状态 if (m_EnergyPoolLogic[LauncherType].HitRecoverState) { m_EnergyPoolLogic[LauncherType].Update(delta); return; } #if UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX UpdateRootPos(); //更新炮台最新位置 #else if (m_bFirstUpdatePos) { UpdateRootPos(); //更新炮台最新位置 m_bFirstUpdatePos = false; } #endif ushort lockfishID = SceneRuntime.PlayerMgr.LockedFishID; if (lockfishID != 0) { Fish fish = SceneRuntime.FishMgr.FindFishByID(lockfishID); if (fish != null) { UpdateLaunchByLockFish(fish.ScreenPos); } } else { UpdateLaunchAngle(); //更新炮台角度 } //m_GunBarrel.Update(delta); CheckIsBankruptcy(); m_LauncherTime += delta; if (CheckXPSkill()) { //向服务器发送大招请求 short angle = Utility.FloatToShort(m_Angle); angle = SceneRuntime.AngleInversion(angle); if (SceneRuntime.SceneLogic.UseLaser(angle)) { m_bLauncherXPSkill = true; m_EnergyPoolLogic[LauncherType].bSendXPSkill = false; } } if (CheckLaunch()) { if (m_LauncherTime >= m_LauncherInterval) { m_LauncherTime = 0; //检测是否钱够 if (PlayerRole.Instance.GetPlayerGlobelBySeat(m_Seat) < (BulletSetting.BulletRate[m_RateIndx] * m_LauncherSetting.Consume)) { if (GetMaxRate()) { return; } SceneRuntime.PlayerMgr.StopAutoShotAndLocked(); if (m_AutoShotCancel.activeSelf) { m_AutoShotCancel.SetActive(false); } // GlobalHallUIMgr.Instance.ShowSystemTipsUI(StringTable.GetString("GoldNotEnough"), 1, false); if (PlayerRole.Instance.RoleInfo.RoleMe.GetMonthID() == 0) { GlobalEffectMgr.Instance.ShutDownMsgBox(); GlobalHallUIMgr.Instance.ShowPayWnd(PayType.Gold); } else { GlobalHallUIMgr.Instance.ShowMatchMsgBox("", PlayerRole.Instance.RoleInfo.RoleMe.GetMonthID(), MatchMsgBoxType.Match_BuyGold); } return; } short angle = Utility.FloatToShort(m_Angle); angle = SceneRuntime.AngleInversion(angle); SceneRuntime.SceneLogic.LaunchBullet(angle); } } }
public void ShowGoldEffect(CatchedData cd, Fish fish) { if (MatchJudge.IsMatch() && cd.ClientSeat != SceneRuntime.MyClientSeat)//比赛只显示自己的效果 { return; } Vector3 vecGoldEndpos = Vector3.one; if (MatchJudge.IsMatch()) { if (cd.ClientSeat == SceneRuntime.MyClientSeat) { vecGoldEndpos = GlobalHallUIMgr.Instance.MatchScorePos(); } else { vecGoldEndpos = SceneRuntime.GetLauncherGoldIconPos(cd.ClientSeat); } } else//比赛 { vecGoldEndpos = SceneRuntime.GetLauncherGoldIconPos(cd.ClientSeat); } const int perGoldNum = 30; //这里的金币用的还是鱼的类型 Vector3 FishPos = SceneRuntime.WorldToNGUI(fish.Position); //鱼的价值 uint fishOrgGold = (uint)FishSetting.FishDataList[fish.FishType].Gold; uint fishGold = 0; if (cd.CatchType == (byte)CatchedType.CATCHED_SKILL) { fishGold = fishOrgGold * SkillSetting.SkillDataList[cd.SubType].multiple; } else { fishGold = fishOrgGold * BulletSetting.BulletRate[cd.RateIndex]; } if (!MatchJudge.IsMatch() && cd.ClientSeat == SceneRuntime.MyClientSeat) { GlobalHallUIMgr.Instance.GameShare.AddGlod((int)fishGold); } uint goldNum = fishOrgGold / perGoldNum; uint perNum = 0; uint lastNum = 0; if (goldNum == 0) { goldNum = 1; lastNum = fishGold; } else { perNum = fishGold / goldNum; lastNum = perNum + (fishGold - perNum * goldNum); } uint num = 0; for (byte i = 0; i < goldNum; ++i) { GoldEffectData ged = new GoldEffectData(); ged.catchedData = cd; if (MatchJudge.IsMatch()) { ged.GameObj = Initobj(m_ScoreObj); } else { ged.GameObj = Initobj(m_GoldObj); } ged.GameObj.transform.position = FishPos + (new Vector3(Utility.RandFloat(), Utility.RandFloat(), 0)) * (fish.IsBossFish()?0.45f:0.15f); ged.m_Tween.m_Pos = ged.GameObj.transform.GetComponent <TweenPosition>(); ged.m_Tween.m_Sclae = ged.GameObj.transform.GetComponent <TweenScale>(); ged.ScaleGoldTR(1.0f, fish.IsBossFish()?1.0f:0.6f); if (i > 0 && !fish.IsBossFish()) { ged.m_DelayTime += i * 0.1f; } if (fish.IsBossFish()) { ged.m_DelayTime = 1.5f; } if (i == goldNum - 1) { ged.GoldNum = lastNum; } else { ged.GoldNum = perNum; } num += ged.GoldNum; ged.ClientSeat = cd.ClientSeat; ged.PlayTween(true); ged.m_vecpathend = vecGoldEndpos; if (SceneRuntime.PlayerMgr.GetPlayer(ged.catchedData.ClientSeat) == SceneRuntime.PlayerMgr.MySelf) { GlobalAudioMgr.Instance.PlayOrdianryMusic(Audio.OrdianryMusic.m_GoldJump); } m_CatchedList.Add(ged); } ShowGoldNumLabel(fishGold, FishPos, fish); }
public void Init() { byte indx = SceneRuntime.LauncherPrefabIndx(m_Seat, m_bMyself); m_ObjectHandle = GameObject.Instantiate(SceneRuntime.PlayerMgr.LauncherObject(indx)) as GameObject; m_ObjectHandle.SetActive(true); m_ObjectHandle.transform.SetParent(SceneObjMgr.Instance.UIPanelTransform, false); m_TransformHandle = m_ObjectHandle.transform; m_LabelScore = m_TransformHandle.GetChild(0).gameObject.GetComponent <UILabel>(); m_GlodTransform = m_TransformHandle.GetChild(0).GetChild(0); m_UIGoldBg = m_GlodTransform.GetComponent <UISprite>(); if (m_bMyself) { for (byte i = 0; i < 2; ++i) { m_ObjectBtn[i] = m_TransformHandle.GetChild(i + 2).gameObject; UIEventListener.Get(m_ObjectBtn[i]).onPress = OnButtonPressMsg; switch (i) { case 0: //加炮台 UIEventListener.Get(m_ObjectBtn[i]).onClick = OnAddButtonMessage; break; case 1: //减炮台 UIEventListener.Get(m_ObjectBtn[i]).onClick = OnSubtractButtonMessage; break; } } m_LabelDiamond = m_TransformHandle.GetChild(1).gameObject.GetComponent <UILabel>(); m_EnergyPoolUI = m_TransformHandle.GetChild(4).gameObject.GetComponent <UISprite>(); m_LockUI = m_TransformHandle.GetChild(5).gameObject; // SceneRuntime.LauncherEftMgr.PlayDiamondEft(m_TransformHandle.GetChild(1).GetChild(0)); // UpdateUserGold(m_Seat); m_VipFunctionObj = m_TransformHandle.GetChild(6).gameObject; UIEventListener.Get(m_TransformHandle.GetChild(8).gameObject).onClick = OnClickLaunch; UIEventListener.Get(m_TransformHandle.GetChild(8).gameObject).onPress = OnButtonPressMsg; m_VipFunctionScaleAnim = m_VipFunctionObj.GetComponent <TweenScale>(); for (byte k = 0; k < 2; ++k) { UIEventListener.Get(m_TransformHandle.GetChild(6).GetChild(k + 1).gameObject).onPress = OnButtonPressMsg; if (k == 0) { UIEventListener.Get(m_TransformHandle.GetChild(6).GetChild(k + 1).gameObject).onClick = OnClickChnageLaunch; } else { UIEventListener.Get(m_TransformHandle.GetChild(6).GetChild(k + 1).gameObject).onClick = OnClickAutoLaunch; } } m_BankruptcyObj = m_TransformHandle.GetChild(7).gameObject; m_AutoShotCancel = m_TransformHandle.GetChild(9).gameObject; UIEventListener.Get(m_AutoShotCancel).onClick = OnClickAutoShotCancel; UIEventListener.Get(m_AutoShotCancel).onPress = OnButtonPressMsg; } else { m_FaceTexture = m_TransformHandle.GetChild(1).GetChild(0).GetComponent <UITexture>(); UIEventListener.Get(m_TransformHandle.GetChild(1).gameObject).onClick = OnClickAvatarMsg; UIEventListener.Get(m_TransformHandle.GetChild(1).gameObject).onPress = OnButtonPressMsg; m_LockUI = m_TransformHandle.GetChild(2).gameObject; m_BankruptcyObj = m_TransformHandle.GetChild(5).gameObject; m_IsLotteryTips = m_TransformHandle.GetChild(6).gameObject; m_LockedFishEft.m_Obj = m_TransformHandle.GetChild(7).gameObject; m_VipLevelIcon = m_TransformHandle.GetChild(8).GetComponent <UISprite>(); // UpdateUserGold(m_Seat); } CreatGunBarrel(LauncherType); //SceneRuntime.LauncherEftMgr.PlayGlodLightEft(m_GlodTransform); //是否显示锁 if (m_RateValid && m_LaunchValid) { m_LockUI.SetActive(false); } UpdateRootPos(); if (PlayerRole.Instance.RoleInfo.RoleMe.GetMonthID() != 0) { SetMatchGoldBg(); } }