Starbound

Starbound

Dynamic Proximity Chat
Showing 21-26 of 26 entries
< 1  2  >
Update: 7 Apr @ 9:17pm

By @FezzedOne
- Allowed a single right bracket to end a proximity OOC chunk.

Update: 7 Apr @ 7:50pm

The following changes and additions have been made by @FezzedOne

- **[Bugfix]** Fixed a bug on xStarbound where dynamic chat after swapping to a secondary player — a player you previously weren't controlling, and in this case, one that you didn't originally connect with — wasn't correctly parsed. Note that xStarbound has a feature that allows a single client to control multiple players — i.e., multi-charactering on a single client. This PR sets Dynamic Proximity Chat up to correctly handle that feature.
- **[Bugfix]** Fixed another bug on xStarbound where dynamic chat always assumed that the current primary player — the one you're currently controlling — is the one whose position is to be used when determining whether chat is audible and actions are visible.
- **[Bugfix]** Fixed a `nil` dereference bug that froze the SCC interface whenever the dice rolling syntax was used. This bug was client-agnostic and had to do with SCC changing the way it handles timestamps.
- **[New]** If multiple players are loaded on an xStarbound client, dynamic proximity chat messages will be received from all loaded players' «perspectives». Message nicknames will be in `$senderNick -> $perspectiveNick` format if multiple players are loaded.
- **[New]** An extra check box has been added (on xStarbound only) so you can hide proximity chat from secondary players' perspectives — it will hide any chat from a secondary player's perspective *while that player is secondary*. So if you swap from loaded player A to loaded player B, any «player B's perspective» messages from *before* you swapped count as «secondary». This perspective handling even includes languages! (The check box isn't needed on OpenStarbound or StarExtensions clients because they don't support single-client multi-charactering.)
- **[New]** Added global OOC chat and global radio / action messages. Syntax is `((( OOC message )))` for global OOC (but the message will be shown with only double parentheses because of how SCC handles OOC chat colouring) and `{{ Radio/Action }}` or `<< Radio/Action >>` for global radio messages and actions (the message will show up with curly braces though).
- **[Changed]** Item emphasis now uses backticks instead of backslashes (e.g., `\`text\``). This was done to allow backslash escapes.
- **[New]** Backslash escapes have been added. Almost every special character handled by the parser can be escaped this way. Escaping just the first bracket, brace or parenthesis of global OOC or radio/action messages «eats» the outer brackets, parentheses or braces though. To work around this, escape *all* of the left brackets, braces or parentheses.
- **[New]** Souped up the dice rolling system. In addition to the existing `|X|` syntax, the following syntax is accepted: `|XdY+N, XdY+N, ...|`, where commas separate consecutive rolls (e.g., `|3d6, 2d6, d20|`). X is the number of dice to roll and sum together in the roll, Y is the number of sides and N is a modifier. Addition (`+`), subtraction (`-`), multiplication (`*`) and floor division (`/`) are supported for modifiers; only one operation per roll is supported. The basic `|X|` syntax also supports comma-separated rolls now (e.g., `|20, 20, 20|` for 3 consecutive d20 rolls).
- **[New]** Removed the hardcoded two-character limit on language tags. Additionally, text in double brackets (e.g., `[[text]]`) is no longer parsed as a language tag.
- **[New]** Whitespace is now supported in language names passed to `/newlangitem`. Make sure to surround the language name with quotes!
- **[Bugfixes]** Fixed various bugs in the chat syntax parser for both incoming and outgoing messages, some of which caused SCC to «hang» and become unusable until disconnection.
- **[Change]** Adjusted the math behind language proficiencies to make language comprehension feel more sensible. If you have, say, 60% proficiency in a language, shorter words are more likely to be understood than longer ones now.
- **[Bugfix]** Fixed a bug where local radio messages incorrectly degraded over a distance as if they were just regular talking.
- **[New]** Added toggleable support for handling local chat messages as proximity chat (toggled with `/proxlocal`) and sending proximity chat messages in local chat (toggled with `/sendlocal`). This eases interoperability with existing roleplayers who don't have Dynamic Proximity Chat installed on their clients. Proximity messages sent with `/sendlocal` enabled always show up as Proximity messages for Dynamic Proximity Chat users even though they're sent in local chat, while *all* local messages are handled as if they were proximity messages if `/proxlocal` is enabled. (As a bonus, enabling `/sendlocal` extends local radio message range to the entire world!) Servers may require `/sendlocal` to be enabled on clients for server-side logging purposes.
- **[New]** Language tags now work on global action and radio messages sent in the Proximity tab! Default languages are also supported as you would expect.
- **[New]** Errors that occur while formatting or parsing proximity messages will no longer bring SCC down. They are now logged along with the offending message data.

- **[New]** Added `/proxooc`. This determines whether local OOC chat handled as proximity chat will be range-capped. Added this because some people expect to be able to send OOC chat across an entire world.
- **[Change]** Ensured SCCRP announcement messages always bypass Dynamic Proximity Chat formatting. (The bypass will occur even if the client doesn't have SCCRP installed, but bypassed messages only show up as Announcement messages with SCCRP installed; otherwise they show up as Local or Broadcast, depending on whether the announcement was global.)
- **[Change]** Added prefixes to the debug prints you added and put them behind a `/proxdebug` command. (This way, debug messages don't spam your log when you don't want them to.)
- **[Bugfix]** Fixed a bug where OOC text chunks and radio chunks were counted as «valid» for the purposes of determining whether to put «Says something» actions in a received message. This fixes an issue where you can see a «Says something» action in some cases despite not being in line of sight.
- **[Bugfix]** Fixed chat bubbles spawning with the chat text on xStarbound clients.
- **[Change]** Reduced the base speech/sound radius to 15/30 tiles (7.5/15 metres) from 25/50 tiles (12.5/25 metres). People don't talk that loudly normally. The first number is the radius for fully intelligible speech; the second is the radius to hear anything at all.
- **[Change]** Added a basic wall thickness check that runs when a wall obstructs a character's hearing.
- **[New]** Added `<< >>` for range-limited proximity OOC chat. OOC messages with `<< >>` sent in the Proximity tab are always range-limited regardless of your `/proxooc`, `/proxlocal` and `/sendlocal` settings. Use `{{ }}` for both radio (with double quotes) and global actions (without double quotes).
- **[Change]** `/proxooc` now describes itself as a toggle to set whether local OOC messages received with double parentheses (`(( ))`) are range-filtered, with the same limited range as proximity OOC chat (with `<< >>`).

Update: 31 Mar @ 9:53pm

- Updated mod name (I think it makes more sense now)
- Removed old settings tiles

Update: 28 Mar @ 9:31pm

- Added received message logging

Update: 23 Mar @ 7:24pm

- Removed settings menu and code originating from the SCCRP mod
- Changed mode color
- Changed license to the Mozilla Public License 2.0

Update: 23 Mar @ 12:41am