void Awake() { anim = GetComponent <Animator>(); string t = (name.Remove(name.IndexOf('('))).Trim(); bw = PureDictTool.GetValue <string, BaseWeapon>(WeaponDictionary.Instance.weaponDict, t); }
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); }
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); }
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); }
void OnSetClick() { curEditKeyText = PureDictTool.GetValue <string, Text>(keyText, EventSystem.current.currentSelectedGameObject.name); lastKey = curEditKeyText.text; curEditKeyText.text = ""; Cursor.visible = false; isEditing = true; }
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); }
//处理客户端得请求 分发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); } }
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); }
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); }
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); } }
//鼠标悬浮 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(); }
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); }
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()); } } }
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()); }
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(); } }
//恢复默认按键 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(); }
//应用键位函数 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(); }
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; } } }
//取消修改键位函数 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); }
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); } }
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()); } } //判断对局是否可以开始 }
public override void OnEvent(EventData eventData) { string username = (string)PureDictTool.GetValue <byte, object>(eventData.Parameters, eventData.Code); PlayerDictionary.Instance.RemovePlayer(username); }
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()); } } }
public override void OnEvent(EventData eventData) { int leftHealth = (int)PureDictTool.GetValue <byte, object>(eventData.Parameters, eventData.Code); PlayerDictionary.Instance.localPlayer.GetComponent <PlayerHealth>().GetDamage(leftHealth); }
public override void OnEvent(EventData eventData) { int[] status = (int[])PureDictTool.GetValue <byte, object>(eventData.Parameters, eventData.Code); PanelManager.Instance.SetMember(status); }