Exemplo n.º 1
0
    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());
    }
Exemplo n.º 2
0
    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);
    }
Exemplo n.º 3
0
        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());
            }
        }
Exemplo n.º 4
0
    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();
    }
Exemplo n.º 5
0
    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);
        }
    }
Exemplo n.º 6
0
    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);
    }
Exemplo n.º 7
0
    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);
    }
Exemplo n.º 8
0
    //切换到指定倍率
    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);
    }
Exemplo n.º 9
0
    //切换到指定类型 的炮
    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);
    }
Exemplo n.º 10
0
    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);
                }
            }
        }
    }
Exemplo n.º 11
0
    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);
        }
    }
Exemplo n.º 12
0
    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);
    }
Exemplo n.º 13
0
    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;
    }
Exemplo n.º 14
0
    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);
    }
Exemplo n.º 15
0
    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;
        }
    }
Exemplo n.º 16
0
    //鱼被捕获调用接口,弹出金币
    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);
                }
            }
        }
    }
Exemplo n.º 17
0
    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);
    }
Exemplo n.º 18
0
 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();
 }
Exemplo n.º 19
0
    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);
    }
Exemplo n.º 20
0
    //命令处理
    //======================================================================
    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
    }
Exemplo n.º 21
0
    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
    }
Exemplo n.º 22
0
 //单个金币
 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);
 }
Exemplo n.º 23
0
    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);
        }
    }
Exemplo n.º 24
0
    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);
    }
Exemplo n.º 25
0
    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);
    }
Exemplo n.º 26
0
    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);
        }
    }
Exemplo n.º 27
0
    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();
        }
    }
Exemplo n.º 28
0
    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);
            }
        }
    }
Exemplo n.º 29
0
    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);
    }
Exemplo n.º 30
0
    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();
        }
    }