Example #1
0
    void Awake()
    {
        anim = GetComponent <Animator>();
        string t = (name.Remove(name.IndexOf('('))).Trim();

        bw = PureDictTool.GetValue <string, BaseWeapon>(WeaponDictionary.Instance.weaponDict, t);
    }
Example #2
0
    public void OnPointerClick(PointerEventData eventData)
    {
        BaseWeapon bw = (BaseWeapon)PureDictTool.GetValue <string, BaseWeapon>(WeaponDictionary.Instance.weaponDict, gameObject.name);

        PlayerDictionary.Instance.localPlayer.GetComponent <PlayerWeapon>().GetWeapon(bw);
        PanelManager.Instance.shopPanel.gameObject.SetActive(false);
    }
Example #3
0
        public override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters, Client curClient)
        {
            string transXml = (string)PureDictTool.GetValue <byte, object>(operationRequest.Parameters, operationRequest.OperationCode);

            curClient.playerData.Trans = PureXmlTool.Deserializer <TransformData>(transXml);

            string t = PureXmlTool.Serializer <TransformData>(curClient.playerData.Trans);
        }
Example #4
0
    public override void OnEvent(EventData eventData)
    {
        string      droppeItemXml   = (string)PureDictTool.GetValue <byte, object>(eventData.Parameters, eventData.Code);
        DroppedItem d               = PureXmlTool.Deserializer <DroppedItem>(droppeItemXml);
        GameObject  dropWeaponModel = PureDictTool.GetValue <string, GameObject>(WeaponDictionary.Instance.droppedItems, d.UniqueName);

        Destroy(dropWeaponModel);
    }
Example #5
0
 void OnSetClick()
 {
     curEditKeyText      = PureDictTool.GetValue <string, Text>(keyText, EventSystem.current.currentSelectedGameObject.name);
     lastKey             = curEditKeyText.text;
     curEditKeyText.text = "";
     Cursor.visible      = false;
     isEditing           = true;
 }
Example #6
0
    public override void OnOperationResponse(OperationResponse operationResponse)
    {
        print("Feedback");
        string mapName = (string)PureDictTool.GetValue <byte, object>(operationResponse.Parameters, operationResponse.OperationCode);

        //读取地图并且创建
        //打开玩家的选择阵营界面
        PanelManager.Instance.teamPanel.gameObject.SetActive(true);
    }
Example #7
0
        //处理客户端得请求    分发Handler 请求   客户端通过OpCustom发送过来的
        protected override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters)
        {
            BaseHandler handler = (BaseHandler)PureDictTool.GetValue <OperationCode, BaseHandler>(PureGameServer._instance.handlerDictionary, (OperationCode)operationRequest.OperationCode);

            if (handler != null)
            {
                handler.OnOperationRequest(operationRequest, sendParameters, this);
            }
        }
Example #8
0
    public override void OnEvent(EventData eventData)
    {
        string        droppeItemXml   = (string)PureDictTool.GetValue <byte, object>(eventData.Parameters, eventData.Code);
        DroppedItem   d               = PureXmlTool.Deserializer <DroppedItem>(droppeItemXml);
        GameObject    dropWeaponModel = Instantiate(Resources.Load("Prefab/w_Weapon/" + d.Bw.WeaponName) as GameObject); //读取掉落武器
        DroppedWeapon temp            = dropWeaponModel.GetComponent <DroppedWeapon>();                                  //获取丢弃武器信息脚本

        temp.SetBaseWeapon(d.Bw);                                                                                        //设置武器信息]
        dropWeaponModel.transform.position = new Vector3(d.Trans.PosX, d.Trans.PosY, d.Trans.PosZ);
        WeaponDictionary.Instance.droppedItems.Add(d.UniqueName, dropWeaponModel);
    }
Example #9
0
    public override void OnOperationResponse(OperationResponse operationResponse)
    {
        string     selfDataXml = (string)PureDictTool.GetValue <byte, object>(operationResponse.Parameters, operationResponse.OperationCode);
        PlayerData p           = PureXmlTool.Deserializer <PlayerData>(selfDataXml);
        GameObject g           = Instantiate(Prefabs.Instance.localPlayerPrefab, new Vector3(Random.Range(0, 5), 0, 0), Quaternion.identity);

        g.name = p.UserName;
        g.GetComponent <PlayerStatus>().teamType = p.TeamType;
        g.GetComponent <PlayerStatus>().Respawn();
        PanelManager.Instance.messagePanel.gameObject.SetActive(true);
    }
Example #10
0
    public override void OnEvent(EventData eventData)
    {
        string            playerDataXml = (string)PureDictTool.GetValue <byte, object>(eventData.Parameters, eventData.Code);
        List <PlayerData> playerData    = PureXmlTool.Deserializer <List <PlayerData> >(playerDataXml);

        foreach (PlayerData tempPlayer in playerData)
        {
            GameObject t = Instantiate(Prefabs.Instance.otherPlayerPrefab, new Vector3(0, 0, 0), Quaternion.identity);
            t.name = tempPlayer.UserName;
            PlayerDictionary.Instance.AddPlayer(tempPlayer.UserName, t);
        }
    }
Example #11
0
    //鼠标悬浮
    public void OnPointerEnter(PointerEventData eventData)
    {
        string thisWeaponName  = gameObject.name;
        Sprite thisWeaponImage = Resources.Load("Image/Shop/" + thisWeaponName, typeof(Sprite)) as Sprite;
        Image  temp            = transform.parent.parent.Find("DisplayArea/Image").GetComponent <Image>();

        temp.sprite = thisWeaponImage;
        temp.color  = new Color(1, 1, 1, 1);
        BaseWeapon b = PureDictTool.GetValue <string, BaseWeapon>(WeaponDictionary.Instance.weaponDict, thisWeaponName);

        transform.parent.parent.Find("DisplayArea/Price").GetComponent <Text>().text = "$" + b.Price.ToString();
    }
Example #12
0
        public override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters, Client curClient)
        {
            string       roundSettingXml = (string)PureDictTool.GetValue <byte, object>(operationRequest.Parameters, operationRequest.OperationCode);
            RoundSetting rs = PureXmlTool.Deserializer <RoundSetting>(roundSettingXml);

            PureGameServer._instance.RoundSetting = rs;
            curClient.playerData.UserName         = rs.HostName;
            curClient.playerData.IsHost           = true;
            curClient.playerData.GamingStatus     = InGamingStatus.Stay;
            curClient.playerData.ClientStatus     = ClientStatusCode.Gaming;

            curClient.SendOperationResponse(new OperationResponse(operationRequest.OperationCode), sendParameters);
        }
Example #13
0
 public override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters, Client curClient)
 {
     string droppedItemXml = (string)PureDictTool.GetValue<byte, object>(operationRequest.Parameters, operationRequest.OperationCode);
     EventData e = new EventData((byte)EventCode.DeleteDropWeapon) { Parameters = new Dictionary<byte, object>() };
     e.Parameters.Add(e.Code, droppedItemXml);
     foreach (Client tempClient in PureGameServer._instance.clientList)
     {
         if (tempClient != curClient)
         {
             tempClient.SendEvent(e, new SendParameters());
         }
     }
 }
Example #14
0
        public override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters, Client curClient)
        {
            string playerName = (string)PureDictTool.GetValue <byte, object>(operationRequest.Parameters, operationRequest.OperationCode);

            curClient.playerData.UserName     = playerName;
            curClient.playerData.ClientStatus = ClientStatusCode.Gaming;
            curClient.playerData.GamingStatus = InGamingStatus.Stay;

            OperationResponse opResponse = new OperationResponse((byte)opCode, new Dictionary <byte, object>());

            opResponse.Parameters.Add(opResponse.OperationCode, PureGameServer._instance.RoundSetting.MapName);
            curClient.SendOperationResponse(opResponse, new SendParameters());
        }
Example #15
0
    public override void OnEvent(EventData eventData)
    {
        string     damageDataXml = (string)PureDictTool.GetValue <byte, object>(eventData.Parameters, eventData.Code);
        DamageData d             = PureXmlTool.Deserializer <DamageData>(damageDataXml);
        GameObject killMessageUI = Instantiate(Prefabs.Instance.killMessagePrefab);

        killMessageUI.GetComponent <KillMessage>().SetKillMessage(d.DamageMakerName, d.Weapon.WeaponName, d.DamagedPlayerName);
        killMessageUI.GetComponent <RectTransform>().SetParent(PanelManager.Instance.messagePanel.killMessage);
        if (d.DamagedPlayerName != PlayerDictionary.Instance.localPlayer.name)
        {
            GameObject g = PureDictTool.GetValue <string, GameObject>(PlayerDictionary.Instance.playerDict, d.DamagedPlayerName);
            g.GetComponent <OtherPlayer>().Dead();
        }
    }
Example #16
0
    //恢复默认按键
    void RecoveryDefaultKey()
    {
        TextAsset keyFile = (TextAsset)Resources.Load("Text/DefaultKey");
        string    keyInfo = keyFile.text;

        File.WriteAllText(Application.streamingAssetsPath + "/CustomerKeys.txt", keyInfo, Encoding.UTF8);
        string[] eachKey = File.ReadAllText(Application.streamingAssetsPath + "/CustomerKeys.txt", Encoding.UTF8).Split('\n');
        foreach (string a in eachKey)
        {
            string[] temp = a.Split(',');
            Text     t    = PureDictTool.GetValue <string, Text>(keyText, temp[0]);
            t.text = temp[1];
        }
        CustomerKeys.UpdateKeys();
    }
Example #17
0
    //应用键位函数
    void ReplyEditedKey()
    {
        string keyInfo = "";

        foreach (string a in keyText.Keys)
        {
            keyInfo += (a + ",");
            Text t = PureDictTool.GetValue <string, Text>(keyText, a);
            if (t.text == "")
            {
                keyInfo += "U/N\n";
            }
            else
            {
                keyInfo += t.text + '\n';
            }
        }
        File.WriteAllText(Application.streamingAssetsPath + "/CustomerKeys.txt", keyInfo, Encoding.UTF8);
        CustomerKeys.UpdateKeys();
    }
Example #18
0
    public override void OnEvent(EventData eventData)
    {
        string            playerDataListXml = (string)PureDictTool.GetValue <byte, object>(eventData.Parameters, eventData.Code);
        List <PlayerData> playerDataList    = PureXmlTool.Deserializer <List <PlayerData> >(playerDataListXml);

        foreach (PlayerData tempPlayerData in playerDataList)
        {
            if (tempPlayerData.UserName == null)
            {
                continue;
            }
            GameObject player = (GameObject)PureDictTool.GetValue <string, GameObject>(PlayerDictionary.Instance.playerDict, tempPlayerData.UserName);
            if (player != default(GameObject))
            {
                Vector3 pos = new Vector3(tempPlayerData.Trans.PosX, tempPlayerData.Trans.PosY, tempPlayerData.Trans.PosZ);
                Vector3 rot = new Vector3(tempPlayerData.Trans.RotX, tempPlayerData.Trans.RotY, tempPlayerData.Trans.RotZ);
                player.transform.position         = pos;
                player.transform.localEulerAngles = rot;
            }
        }
    }
Example #19
0
    //取消修改键位函数
    void CancelEditedKey()
    {
        string keyInfo = File.ReadAllText(Application.streamingAssetsPath + "/CustomerKeys.txt", Encoding.UTF8);

        string[] eachKey = keyInfo.Split('\n');
        foreach (string a in eachKey)
        {
            string[] temp = a.Split(',');
            Text     t    = PureDictTool.GetValue <string, Text>(keyText, temp[0]);
            if (temp[1] == "U/N")
            {
                t.text = "";
            }
            else
            {
                t.text = temp[1];
            }
        }
        PanelManager.Instance.settingPanel.gameObject.SetActive(false);        //关闭面板
        PanelManager.Instance.startPanel.gameObject.SetActive(true);
    }
Example #20
0
    public override void OnEvent(EventData eventData)
    {
        string      processInfoXml = (string)PureDictTool.GetValue <byte, object>(eventData.Parameters, eventData.Code);
        ProcessInfo p = PureXmlTool.Deserializer <ProcessInfo>(processInfoXml);

        //第一次开始游戏
        if (p.IsFirstStart)
        {
            GameManager.Instance.OnGameFirstStart(p);
        }

        if (p.IsRoundOver)  //回合结束
        {
            if (p.WinTeam == TeamType.Blue)
            {
                AudioSource.PlayClipAtPoint(Audios.Instance.blueWin, Vector3.zero);
            }
            if (p.WinTeam == TeamType.Red)
            {
                AudioSource.PlayClipAtPoint(Audios.Instance.redWin, Vector3.zero);
            }
            GameManager.Instance.OnRoundOver(p);
        }
    }
Example #21
0
        public override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters, Client curClient)
        {
            string   teamTypeXml = (string)PureDictTool.GetValue <byte, object>(operationRequest.Parameters, operationRequest.OperationCode);
            TeamType t           = PureXmlTool.Deserializer <TeamType>(teamTypeXml);

            if (t == TeamType.Red)
            {
                curClient.playerData.TeamType     = TeamType.Red;
                curClient.playerData.GamingStatus = InGamingStatus.Alive;
                PureGameServer._instance.RoundSetting.RedPlayerCount++;
                PureGameServer._instance.RoundSetting.TotalPlayerCount++;
            }
            if (t == TeamType.Blue)
            {
                curClient.playerData.TeamType     = TeamType.Blue;
                curClient.playerData.GamingStatus = InGamingStatus.Alive;
                PureGameServer._instance.RoundSetting.BluePlayerCount++;
                PureGameServer._instance.RoundSetting.TotalPlayerCount++;
            }


            string selfDataXml = PureXmlTool.Serializer <PlayerData>(curClient.playerData);
            //反馈消息新建玩家模型,同步其他玩家
            OperationResponse opResponse = new OperationResponse(operationRequest.OperationCode)
            {
                Parameters = new Dictionary <byte, object>()
            };

            opResponse.Parameters.Add(opResponse.OperationCode, selfDataXml);
            curClient.SendOperationResponse(opResponse, sendParameters);

            List <PlayerData> otherPlayer = new List <PlayerData>();

            foreach (Client tempClient in PureGameServer._instance.clientList)
            {
                if (tempClient != curClient && tempClient.playerData.GamingStatus != InGamingStatus.Stay)
                {
                    otherPlayer.Add(tempClient.playerData);
                }
            }
            if (otherPlayer.Count != 0)
            {
                EventData e = new EventData((byte)EventCode.NewPlayer)
                {
                    Parameters = new Dictionary <byte, object>()
                };
                string otherPlayerXml = PureXmlTool.Serializer <List <PlayerData> >(otherPlayer);
                e.Parameters.Add(e.Code, otherPlayerXml);
                curClient.SendEvent(e, sendParameters);
            }
            //发送消息其他玩家同步新加入
            List <PlayerData> selfPlayer = new List <PlayerData>();

            selfPlayer.Add(curClient.playerData);
            string    selfPlayerXml = PureXmlTool.Serializer <List <PlayerData> >(selfPlayer);
            EventData eOther        = new EventData((byte)EventCode.NewPlayer)
            {
                Parameters = new Dictionary <byte, object>()
            };

            eOther.Parameters.Add(eOther.Code, selfPlayerXml);
            foreach (Client tempClient in PureGameServer._instance.clientList)
            {
                if (tempClient != curClient && tempClient.playerData.GamingStatus != InGamingStatus.Stay)
                {
                    tempClient.SendEvent(eOther, new SendParameters());
                }
            }

            //判断对局是否可以开始
        }
Example #22
0
    public override void OnEvent(EventData eventData)
    {
        string username = (string)PureDictTool.GetValue <byte, object>(eventData.Parameters, eventData.Code);

        PlayerDictionary.Instance.RemovePlayer(username);
    }
Example #23
0
        public override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters, Client curClient)
        {
            string     damageDataXml = (string)PureDictTool.GetValue <byte, object>(operationRequest.Parameters, operationRequest.OperationCode);
            DamageData damageData    = PureXmlTool.Deserializer <DamageData>(damageDataXml);

            foreach (Client tempClient in PureGameServer._instance.clientList)
            {
                if (tempClient.playerData.UserName == damageData.DamagedPlayerName)
                {
                    if (tempClient.playerData.TeamType == curClient.playerData.TeamType)
                    {
                        return;
                    }
                    if (tempClient.playerData.Health > damageData.Damage)
                    {
                        tempClient.playerData.Health -= damageData.Damage;
                    }
                    else
                    {
                        tempClient.playerData.Health       = 0;
                        tempClient.playerData.GamingStatus = InGamingStatus.Dead;
                        if (tempClient.playerData.TeamType == TeamType.Blue)
                        {
                            PureGameServer._instance.RoundSetting.BlueAlivePlayerCount--;
                            if (PureGameServer._instance.RoundSetting.BlueAlivePlayerCount == 0)        //结束对局  红队胜
                            {
                                ProcessInfo pi = new ProcessInfo();
                                pi.IsRoundOver = true;
                                pi.WinTeam     = TeamType.Red;
                                pi.ShopTime    = PureGameServer._instance.RoundSetting.ShopTime;
                                string    processInfoXml = PureXmlTool.Serializer <ProcessInfo>(pi);
                                EventData roundOver      = Pack.EventData(EventCode.GameProcess, processInfoXml);
                                foreach (Client c in PureGameServer._instance.clientList)
                                {
                                    c.SendEvent(roundOver, new SendParameters());
                                }
                            }
                        }

                        if (tempClient.playerData.TeamType == TeamType.Red)
                        {
                            PureGameServer._instance.RoundSetting.RedAlivePlayerCount--;
                            if (PureGameServer._instance.RoundSetting.BlueAlivePlayerCount == 0)//结束对局  蓝队胜
                            {
                                ProcessInfo pi = new ProcessInfo();
                                pi.IsRoundOver = true;
                                pi.WinTeam     = TeamType.Blue;
                                pi.ShopTime    = PureGameServer._instance.RoundSetting.ShopTime;
                                string    processInfoXml = PureXmlTool.Serializer <ProcessInfo>(pi);
                                EventData roundOver      = new EventData((byte)EventCode.GameProcess)
                                {
                                    Parameters = new Dictionary <byte, object>()
                                };
                                roundOver.Parameters.Add(roundOver.Code, processInfoXml);
                                foreach (Client c in PureGameServer._instance.clientList)
                                {
                                    c.SendEvent(roundOver, new SendParameters());
                                }
                            }
                        }
                        //发送播放动画
                        EventData ed2 = new EventData((byte)EventCode.KillMessage)
                        {
                            Parameters = new Dictionary <byte, object>()
                        };
                        ed2.Parameters.Add(ed2.Code, damageDataXml);
                        foreach (Client c in PureGameServer._instance.clientList)
                        {
                            c.SendEvent(ed2, new SendParameters());
                        }
                    }
                    //发送血量
                    EventData ed = new EventData((byte)EventCode.Damage)
                    {
                        Parameters = new Dictionary <byte, object>()
                    };
                    ed.Parameters.Add(ed.Code, tempClient.playerData.Health);
                    tempClient.SendEvent(ed, new SendParameters());
                }
            }
        }
Example #24
0
    public override void OnEvent(EventData eventData)
    {
        int leftHealth = (int)PureDictTool.GetValue <byte, object>(eventData.Parameters, eventData.Code);

        PlayerDictionary.Instance.localPlayer.GetComponent <PlayerHealth>().GetDamage(leftHealth);
    }
Example #25
0
 public override void OnEvent(EventData eventData)
 {
     int[] status = (int[])PureDictTool.GetValue <byte, object>(eventData.Parameters, eventData.Code);
     PanelManager.Instance.SetMember(status);
 }