コード例 #1
0
        public static List <string> ListOfPlayersInParty()
        {
            var playersInParty = new List <string>();

            try
            {
                var baseWindow = new CustomIngameUIElements(GameController.Instance.Game.IngameState.IngameUi.Address).PartyList;
                if (baseWindow != null)
                {
                    var partyList = baseWindow.Children[0]?.Children[0]?.Children;
                    foreach (var player in partyList)
                    {
                        if (player != null && player.ChildCount > 3)
                        {
                            playersInParty.Add(player?.Children[0]?.AsObject <EntityLabel>()?.Text);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                BasePlugin.LogError("Character: " + e.Message, 5);
            }

            return(playersInParty);
        }
コード例 #2
0
        public static List <PartyElementWindow> GetPlayerInfoElementList(List <EntityWrapper> entityList)
        {
            var playersInParty = new List <PartyElementWindow>();

            try
            {
                var baseWindow = new CustomIngameUIElements(GameController.Instance.Game.IngameState.IngameUi.Address).PartyList;
                if (baseWindow != null)
                {
                    var partElementList = baseWindow.Children[0]?.Children[0]?.Children;
                    if (partElementList != null)
                    {
                        foreach (var partyElement in partElementList)
                        {
                            var playerName = partyElement?.Children[0]?.AsObject <EntityLabel>()?.Text;

                            var newElement = new PartyElementWindow();
                            newElement.PlayerName = playerName;

                            // get entity
                            foreach (var entity in entityList)
                            {
                                if (entity != null && entity.GetComponent <Player>().PlayerName == playerName)
                                {
                                    newElement.Data.PlayerEntity = entity;
                                }
                            }


                            //get party element
                            newElement.Element = partyElement;


                            playersInParty.Add(newElement);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                BasePlugin.LogError("CharacterData.GetPlayerInfoElementList(): " + e.Message, 5);
            }

            return(playersInParty);
        }