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); } }
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); }
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); } } } }