Exemplo n.º 1
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.º 2
0
    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);
    }
Exemplo n.º 3
0
 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>();
 }
Exemplo n.º 4
0
 public static void DelPlayer(uint uid)
 {
     if (scenePlayers.ContainsKey(uid))
     {
         ScenePlayer scenePlayer = scenePlayers[uid];
         scenePlayers.Remove(uid);
         GameObject.Destroy(scenePlayer.moveSync.gameObject);
     }
 }
Exemplo n.º 5
0
 //添加玩家
 public void AddPlayer(string id)
 {
     lock (list)
     {
         ScenePlayer p = new ScenePlayer();
         p.id = id;
         list.Add(p);
     }
 }
Exemplo n.º 6
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.º 7
0
    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);
        }
    }
Exemplo n.º 8
0
    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);
        }
    }
Exemplo n.º 9
0
 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);
 }
Exemplo n.º 10
0
    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;
    }
Exemplo n.º 11
0
    //更新信息
    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;
    }
Exemplo n.º 12
0
 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);
     }
 }
Exemplo n.º 13
0
    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;
        }
    }
Exemplo n.º 14
0
    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);
        }
    }
Exemplo n.º 15
0
    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);
    }
Exemplo n.º 16
0
    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);
    }
Exemplo n.º 17
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.º 18
0
    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");
            }
        }
    }
Exemplo n.º 19
0
 // Start is called before the first frame update
 void Start()
 {
     sceneOps = FindObjectOfType <ScenePlayer>();
 }