cgr_enabled 1 /// Sets whether or not this plugin is enabled.
cgr_spaces 0 /// A value of 0 means the default '(RADIO): Fire' and a value of 1 means '(RADIO) : Fire'.
cgr_dead 1 /// Sets whether or not the grenade radio phrases will be displayed to the dead players as well.
cgr_reliable 0 /// Sets whether or not the replacement grenade radio phrases will be delivered as reliable.
cgr_random 1 /// Sets whether or not to use random grenade radio phrases when the players are throwing grenades.
cgr_custom 0 /// Sets whether or not only the grenade name in the entire grenade radio phrase should be colored.
cgr_alive 32 /// Only display grenade radio phrases to the team if at most this number of players are alive in it.
cgr_append 0 /// Sets whether or not to only append a colored GRENADE, FLASH or SMOKE string after the original game grenade radio phrase.
cgr_name 1 /// Sets the color of the player name in grenade radio phrases. 1 for normal color, 3 for grenade color (thrower's team color if smoke) and 4 for green.
cgr_radio 1 /// Sets the color of the RADIO string in grenade radio phrases. 1 for normal color, 3 for grenade color (thrower's team color if smoke) and 4 for green.
cgr_dots 1 /// Sets the color of the dots symbol (':' symbol) in grenade radio phrases. 1 for normal color, 3 for grenade color (thrower's team color if smoke) and 4 for green.
cgr_parentheses 1 /// Sets the color of the parentheses in grenade radio phrases. 1 for normal color, 3 for grenade color (thrower's team color if smoke) and 4 for green.
cgr_at 1 /// Sets the color of the at symbol ('@' symbol) in grenade radio phrases which contain map locations. 1 for normal color, 3 for grenade color (thrower's team color if smoke) and 4 for green.
cgr_location 4 /// Sets the color of the actual map location in grenade radio phrases which contain map locations. 1 for normal color, 3 for grenade color (thrower's team color if smoke) and 4 for green.
cgr_dots_enabled 1 /// Sets whether or not to enable the default dots in grenade radio phrases (':' symbol).
cgr_name_location 4 /// Sets the color of the player name in grenade radio phrases which contain map locations. 1 for normal color, 3 for grenade color (thrower's team color if smoke) and 4 for green.
cgr_radio_location 1 /// Sets the color of the RADIO string in grenade radio phrases which contain map locations. 1 for normal color, 3 for grenade color (thrower's team color if smoke) and 4 for green.
cgr_dots_location 1 /// Sets the color of the dots symbol (':' symbol) in grenade radio phrases which contain map locations. 1 for normal color, 3 for grenade color (thrower's team color if smoke) and 4 for green.
cgr_parentheses_location 1 /// Sets the color of the parentheses in grenade radio phrases which contain map locations. 1 for normal color, 3 for grenade color (thrower's team color if smoke) and 4 for green.
cgr_dead_audio 1 /// Sets whether or not the grenade radio voices will be played to the dead players as well.
cgr_alive_audio 32 /// Only play grenade radio voices to the team if at most this number of players are alive in it.
Code:
------------
cgr_append 0
------------
------------
cgr_random 1
cgr_custom 1
------------
------
CS/ CZ
------
Caramel (RADIO): Throwing grenade!Caramel (RADIO): Flashbang out!Caramel (RADIO): Deploying smoke!
------------------
CZ w/ Map Location
------------------
Caramel @ CTSpawn (RADIO): Throwing grenade!Caramel @ CTSpawn (RADIO): Flashbang out!Caramel @ CTSpawn (RADIO): Deploying smoke!
------------
cgr_random 1
cgr_custom 0
------------
------
CS/ CZ
------
Caramel (RADIO): Throwing grenade!Caramel (RADIO): Flashbang out!Caramel (RADIO): Deploying smoke!
------------------
CZ w/ Map Location
------------------
Caramel @ CTSpawn (RADIO): Throwing grenade!Caramel @ CTSpawn (RADIO): Flashbang out!Caramel @ CTSpawn (RADIO): Deploying smoke!
------------
cgr_random 0
cgr_custom 1
------------
------
CS/ CZ
------
Caramel (RADIO): Fire in the hole!Caramel (RADIO): Fire in the hole!Caramel (RADIO): Fire in the hole!
------------------
CZ w/ Map Location
------------------
Caramel @ CTSpawn (RADIO): Fire in the hole!Caramel @ CTSpawn (RADIO): Fire in the hole!Caramel @ CTSpawn (RADIO): Fire in the hole!
------------
cgr_random 0
cgr_custom 0
------------
------
CS/ CZ
------
Caramel (RADIO): Fire in the hole!Caramel (RADIO): Fire in the hole!Caramel (RADIO): Fire in the hole!
------------------
CZ w/ Map Location
------------------
Caramel @ CTSpawn (RADIO): Fire in the hole!Caramel @ CTSpawn (RADIO): Fire in the hole!Caramel @ CTSpawn (RADIO): Fire in the hole!
------------
cgr_append 1
------------
------
CS/ CZ
------
Caramel (RADIO): Fire in the hole! GRENADECaramel (RADIO): Fire in the hole! FLASHCaramel (RADIO): Fire in the hole! SMOKE
------------------
CZ w/ Map Location
------------------
Caramel @ CTSpawn (RADIO): Fire in the hole! GRENADECaramel @ CTSpawn (RADIO): Fire in the hole! FLASHCaramel @ CTSpawn (RADIO): Fire in the hole! SMOKE
------------
cgr_append 2
------------
------
CS/ CZ
------
Caramel (RADIO): GRENADECaramel (RADIO): FLASHCaramel (RADIO): SMOKE
------------------
CZ w/ Map Location
------------------
Caramel @ CTSpawn (RADIO): GRENADECaramel @ CTSpawn (RADIO): FLASHCaramel @ CTSpawn (RADIO): SMOKE
See The 'conditioned_grenade_radio.inc' File
PHP Code:
#if defined _conditioned_grenade_radio
#endinput
#endif /// defined _conditioned_grenade_radio
#define _conditioned_grenade_radio
#if defined AMXX_VERSION_NUM
#if AMXX_VERSION_NUM >= 175
#pragma reqlib conditioned_grenade_radio
#if !defined AMXMODX_NOAUTOLOAD
#pragma loadlib conditioned_grenade_radio
#endif /// !defined AMXMODX_NOAUTOLOAD
#else /// AMXX_VERSION_NUM >= 175
#pragma library conditioned_grenade_radio
#endif /// AMXX_VERSION_NUM >= 175
#else /// defined AMXX_VERSION_NUM
#pragma library conditioned_grenade_radio
#endif /// defined AMXX_VERSION_NUM
#include < amxmodx >
/**
*
* Sets the tag. This will overwrite an existing tag, if any.
*
* Do not call this inside the `client_connect()` forward. Call this later. For example, call this inside the `client_authorized()` or `client_putinserver()` forwards.
*
* The examples of tags are listed below.
*
* "\x04[CARAMEL] " ( If In Your .SMA There Is `#pragma ctrlchar '\'` ) [ GREEN ]
*
* "^x04[CARAMEL] " ( If In Your .SMA There Is No `#pragma ctrlchar` At All Or There Is `#pragma ctrlchar '^'` ) [ GREEN ]
*
* "\x03[CARAMEL] " ( If In Your .SMA There Is `#pragma ctrlchar '\'` ) [ GRENADE = RED, FLASH = GREY & SMOKE = TEAM COLOR ( RED/ BLUE ) { THROWER'S TEAM COLOR } ]
*
* "^x03[CARAMEL] " ( If In Your .SMA There Is No `#pragma ctrlchar` At All Or There Is `#pragma ctrlchar '^'` ) [ GRENADE = RED, FLASH = GREY & SMOKE = TEAM COLOR ( RED/ BLUE ) { THROWER'S TEAM COLOR } ]
*
* "[\x04 CARAMEL\x01 ] " ( If In Your .SMA There Is `#pragma ctrlchar '\'` ) [ GREEN ]
* "[ \x04CARAMEL \x01] " ( If In Your .SMA There Is `#pragma ctrlchar '\'` ) [ GREEN ]
*
* "[^x04 CARAMEL^x01 ] " ( If In Your .SMA There Is No `#pragma ctrlchar` At All Or There Is `#pragma ctrlchar '^'` ) [ GREEN ]
* "[ ^x04CARAMEL ^x01] " ( If In Your .SMA There Is No `#pragma ctrlchar` At All Or There Is `#pragma ctrlchar '^'` ) [ GREEN ]
*
* "[\x03 CARAMEL^x01 ] " ( If In Your .SMA There Is `#pragma ctrlchar '\'` ) [ GRENADE = RED, FLASH = GREY & SMOKE = TEAM COLOR ( RED/ BLUE ) { THROWER'S TEAM COLOR } ]
* "[ \x03CARAMEL ^x01] " ( If In Your .SMA There Is `#pragma ctrlchar '\'` ) [ GRENADE = RED, FLASH = GREY & SMOKE = TEAM COLOR ( RED/ BLUE ) { THROWER'S TEAM COLOR } ]
*
* "[^x03 CARAMEL^x01 ] " ( If In Your .SMA There Is No `#pragma ctrlchar` At All Or There Is `#pragma ctrlchar '^'` ) [ GRENADE = RED, FLASH = GREY & SMOKE = TEAM COLOR ( RED/ BLUE ) { THROWER'S TEAM COLOR } ]
* "[ ^x03CARAMEL ^x01] " ( If In Your .SMA There Is No `#pragma ctrlchar` At All Or There Is `#pragma ctrlchar '^'` ) [ GRENADE = RED, FLASH = GREY & SMOKE = TEAM COLOR ( RED/ BLUE ) { THROWER'S TEAM COLOR } ]
*
* "CARAMEL " [ NORMAL COLOR ]
*
* "[CARAMEL] " [ NORMAL COLOR ]
*
*/
native CGR_SetPlayerTag(nPlayer, const szTag[]);
/**
*
* Removes the tag.
*
* No need to call this inside `client_connect()`, `client_disconnect()` or `client_disconnected()`.
*
*/
native CGR_DelPlayerTag(nPlayer);
Example Of Setting A Player Tag/ See The 'cgr_player_tags.sma' File
Interesting busy work. There still needs to be a brief description on top before diving in. Otherwise it will lose attention there. Hover mouse over the thread to see if that is how it should present itself. State this is native api whatever and host may need to hire somebody to write their own scripts to utilize. That would put the work back on you to finish the example script with a file instead of hard-coding. Server was crash testing on lower dynamic?
There still needs to be a brief description on top before diving in. Otherwise it will lose attention there.
I'll add now.
Quote:
Originally Posted by DJEarthQuake
Server was crash testing on lower dynamic?
I've encountered issues with the AMXX scripts multiple times on multiple AMXX versions, finding out some custom user declared forwards or functions won't ever get fired because they "can't be found" without any descriptive reason. Using some dynamic fixes that. Never happened with SM, surprisingly.
I'll test the script soon without custom dynamic at all.
Quote:
Originally Posted by DJEarthQuake
That would put the work back on you to finish the example script with a file instead of hard-coding.
I'll later try adding a configuration file containing the phrases and perhaps decrease the code size, however I don't see how would that improve the execution time in any way.
As far as description goes, one still has to read entire thread and scripts to see how it does; what it does. The plugin needs another plugin to utilize this, right? If that is correct please include that expectation in the description. Somebody, all new readers, who are unfamiliar with the work do not know that and should from the start. Installing it will do nothing until another script is added?? If so, that's what I meant with the example script and previous comment. For you it would be easy. Average, who does not want to learn to code, admin impossible to immediately use. It won't improve execution times it is simply being user friendly. Explain on top there is a lot under the hood to get this going and maintained. Compiling a new script each time is a bit pushy and unprofessional. I've only had to use dynamic once and it was 1/10 the amount with like 100x the effects. Starting to explore the benefits again. Suppose it won't hurt anything being a precautionary as you already have had history of trouble from your users unable to find functions when testing with "can't be found".