static bool Prefix(string entryText, int textChannelID, NetworkMessageInfo messageInfo)
            {
                TextChatChannel channel = (TextChatChannel)textChannelID;

                if (channel != TextChatChannel.Round)
                {
                    return(true);
                }
                if (!entryText.StartsWith("/mod "))
                {
                    return(true);
                }
                string text    = null;
                bool   success = false;
                ulong  steamId = netIdToSteamId[messageInfo.sender.id];

                string[] arguments = entryText.Split(' ');
                if (arguments.Length >= 2)
                {
                    foreach (PlayerCommand processor in playerCommandDelegate.GetInvocationList())
                    {
                        text = processor(arguments[1], arguments.RangeSubset(2, arguments.Length - 2), steamId, out success);
                        if (text != null || success)
                        {
                            sendMessage(steamId, text);
                            break;
                        }
                    }
                }
                if (text == null)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
Exemple #2
0
 public void OnTextMessage(int playerId, TextChatChannel channel, string text)
 {
 }
 public void OnTextMessage(int playerId, TextChatChannel channel, string text)
 {
     Debug.LogFormat("OnTextMessage {0} {1} {2}", playerId, channel, text);
 }
Exemple #4
0
    public void OnTextMessage(int playerId, TextChatChannel channel, string text)
    {
        if (channel == TextChatChannel.Recruitment)
        {
            var commands = text.Split(' ');
            if (commands.Length > 2 && string.Compare(commands[0], "BettyBot", true) == 0)
            {
                FactionCountry factionCountry;
                GameObject     playerObject;
                Vector3        playerPosition;
                Vector3        playerRight;
                Vector3        playerForward;
                float          playerYRotation;
                if (playerFactionDictionary.TryGetValue(playerId, out factionCountry) && playerObjectDictionary.TryGetValue(playerId, out playerObject))
                {
                    playerPosition  = playerObject.transform.position;
                    playerRight     = playerObject.transform.right;
                    playerForward   = playerObject.transform.forward;
                    playerYRotation = playerObject.transform.eulerAngles.y;
                }
                else if (playerObjectDictionary.Count > 0)
                {
                    //Pick a random person and assume we want to spawn it on that player
                    var values           = playerObjectDictionary.Values;
                    var enumeratorValues = values.GetEnumerator();
                    var randomIndex      = Random.Range(0, values.Count);

                    Transform playerTransform = enumeratorValues.Current.transform;
                    while (randomIndex > -1 && enumeratorValues.MoveNext())
                    {
                        randomIndex--;
                        if (randomIndex < 0)
                        {
                            playerTransform = enumeratorValues.Current.transform;
                        }
                    }

                    factionCountry  = Random.Range(0, 1) == 0 ? attackingFaction : defendingFaction;
                    playerPosition  = playerTransform.position;
                    playerRight     = playerTransform.right;
                    playerForward   = playerTransform.forward;
                    playerYRotation = playerTransform.eulerAngles.y;
                }
                else
                {
                    //Return and do nothing
                    return;
                }

                int spawnCounter;
                if (string.Compare(commands[1], "MakeLine", true) == 0 && int.TryParse(commands[2], out spawnCounter))
                {
                    var playerClass = PlayerClass.ArmyLineInfantry.ToString();
                    if (commands.Length > 3)
                    {
                        playerClass = commands[3];
                    }

                    for (int i = 0; i < spawnCounter; i++)
                    {
                        var rcCommand = string.Format("carbonPlayers spawnSpecific {0} {1}", factionCountry, playerClass);
                        f1MenuInputField.onEndEdit.Invoke(rcCommand);
                    }

                    runningCommands.Add(new RunningCommand()
                    {
                        requiredToSpawn = spawnCounter,
                        position        = playerPosition + (playerForward * 0.5f), //the position will be 0.5m infront of the player so the bots dont spawn on the player
                        rightDirection  = playerRight * 0.6f,
                        yRotation       = playerYRotation,
                    });

                    Debug.LogFormat("YRotation {0}", playerYRotation);
                }
            }
        }
    }