You may want to make chat distance based instead of global for various reasons. Maybe you're making some kind of RP or RPG mod or something else. Whatever the reason may be, let's begin.
1. Open the SDK. Open the file g_cmds.c located in the Game(serverside) portion of the code. (The serverside might also be called JK2game in your SDK).
2. Search for the function G_Say. (Not G_SayTo)
3. Near the beginning of the function, declare an int like so:
int distance = 0;
As you can maybe tell, this int will be used for the maximum distance a person's chat can be heard from their location.
4. In the same function, search for
case SAY_ALL:
At the end of this case statement (before the break; of course) add this:
distance = 600;
replacing 600 with whatever you want to be the maximum distance a message can be heard from.
According to @@eezstreet: "52 units = roughly 1 meter".
5. At the end of the function, take a look at this:
for (j = 0; j < level.maxclients; j++) { other = &g_entities[j]; G_SayTo( ent, other, mode, color, name, text, locMsg ); }
Change it to the following so that it checks the distance to all players on the server from you to them and shows them your message if they're in range:
for (j = 0; j < level.maxclients; j++) { other = &g_entities[j]; if ( mode == SAY_ALL ) { if ( Distance( ent->client->ps.origin, other->client->ps.origin ) <= distance ) { G_SayTo( ent, other, mode, color, name, text, locMsg ); } else continue; } else G_SayTo( ent, other, mode, color, name, text, locMsg ); }
And you're all set! Have fun!
Note: I adapted this from my own way of doing this which includes some other stuff. If you experience any problems using this, be sure to post a comment so we can try and figure it out.
Some things to try on your own:
- Make distance based chat toggleable
- Make a command that lets admins see out of range chat
Recommended Comments
There are no comments to display.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now