02/06/2017 - v1.0
* First release
03/04/2017 - v1.1
ºAdded new events:
. Protected the bomb planted from enemies.
. Given damage to many enemies.
. Did so many damage with HE Grenade.
. Won the round with less than 1 second.
. Killed an/so many player/s with HE grenade.
. Killed an/so many player/s in the air.
. Killed an/so many enemy/ies with a grenade after dying.
. Jumped so many times in that round.
. Killed an/so many enemy/ies with low HP.
. Survived the most time.
. Defused the bomb with much terrorists alives.
ºCode edited
. Added more values to some events, like:
* Before, we had only 'an enemy', or '%d enemies' in different events, now, I've added '%d enemy/ies' message in these events. Then all these now have a capacibility to catch one or more than one kills. Like KnifeKills constant-string that had before.
. Added more weapons than before, I've missed so many of them.
. Added
gLastDroppedWeapon,
gLastBroughtWeapon and
g_iItemNum for check if the weapon that the player has dropped/bought is not the same that he already has dropped/bought before for the
ev_DonatedWeapons and
ev_ItemsBought event.
. Transfered the
g_LastAnnounce from
event_TWin() and
event_CTWin to
Round_End() function.
. Removed the boolean
isForCheckChance at
checkChance() stock. That boolean wasn't making sense.
. Added a new stock:
GetPlayers(), this stock I've made because I had so much
get_players() in the plugin, I know it doesn't matter but it's more easier to manipulate for me and for others peoples I guess. And that stock made the plugin lose so much lines, what's good as well.
. Edited the
ev_UserKills, now you can see a percent instead of User's kills.
. Added
arAloneKills to
PlayerData because the
ev_Clutch event.
. Removed the Ham_Killed. Using DeathMsg instead.
. Reseting the [/I]arConsecutiveRounds[/I] after sv_restart and Game Commecing, then removed the -1 at
showEvents().
. Transfered the
get_user_weapon(iVictim) & CSW_KNIFE) to
Ham_TakeDamage.
. Removed
IsUserValidConnected, using
is_user_connected() instead.
And some optimizations on the code.
03/07/2017 - v1.2
ºAdded new events:
. So many terrorists tried to plant the bomb.
. So many cts tried to defuse the bomb.
. Successfuly stoped so many/the bomb defuser/s.
. Successfuly stoped so many/the bomb planter/s.
ºCode edited:
. Changed the position of
"y" : "ies" to
"ies" : "y" in some events.
. Fixed the jump count format and added [33] size.
. Replaced bool

PlayerData[iKiller][arPlayerKills]+PlayerData[iKiller][arPlayerBombKills]+PlayerData[iKiller][arAloneKills] >= OppositeTeamNumber[/i] with
PlayerData[iKiller][arPlayerKills] >= OppositeTeamNumber only.
. Fixed the faster kill time.
. Changed
MAX_CHANCE to
6.
. Added
log_amx().
. Changed
eLastEvent == ev_Ace to
eLastEvent == event.
. Added important events, now these event's chance is divided with
2.
They're:
Ace, Clutch, Player's accuracy, Killed players with one HE, Killed after dying, Killed someone in the air, Killed someone with knife and Killed someone with low HP.
. Fixed a bug with
LowHeathKills's event parameter's. I've forgot the second parameter.
. Removed the
isAce boolean.
. Removed the
NumToStr stock then fixed the heap low bug.
. Removed the
is_user_connected check at
deathMsg.
. Fixed the wrong value with
iMultiplication, it was showing 160 instead of the real value.
. Added a check for see if the
iKiller is a Terrorist at
ev_ProtectedTheBomb event.
. Fixed the
Assist and
AttacksBeforeDying events.
. Removed the
GetPlayers() stock. Reason?
With the stock:
L 03/06/2017 - 20

6:45: [RoundEndEvents.amxx] Ace! [POD]Polymorph (9

killed the entire enemy team.
L 03/06/2017 - 20

8:03: [RoundEndEvents.amxx] [P0D]Sharon_Stone (95) killed an enemy with knife
L 03/06/2017 - 20

9:53: [RoundEndEvents.amxx] EFFx brought a knife to a gunfight.
L 03/06/2017 - 20:40:52: [RoundEndEvents.amxx] Ace! EFFx killed the entire enemy team.
L 03/06/2017 - 20:42:42: [RoundEndEvents.amxx] EFFx killed an enemy with knife
L 03/06/2017 - 20:44:49: [RoundEndEvents.amxx] EFFx brought a knife to a gunfight.
L 03/06/2017 - 20:46:25: [RoundEndEvents.amxx] EFFx killed an enemy with knife
L 03/06/2017 - 20:57:05: [RoundEndEvents.amxx] EFFx has bought 0 items.
L 03/06/2017 - 22:48:14: [RoundEndEvents.amxx] Ace! [P*D]Will_Smith (9

killed the entire enemy team.
L 03/06/2017 - 22:49:27: [RoundEndEvents.amxx] EFFx brought a knife to a gunfight.
L 03/06/2017 - 22:51:05: [RoundEndEvents.amxx] Ace! EFFx killed the entire enemy team.
L 03/06/2017 - 22:41:07: [RoundEndEvents.amxx] Ace! [P*D]Will_Smith (9

killed the entire enemy team.
L 03/06/2017 - 22:41:52: [RoundEndEvents.amxx] EFFx brought a knife to a gunfight.
L 03/06/2017 - 22:42:21: [RoundEndEvents.amxx] Ace! EFFx killed the entire enemy team.
These events was much normal, always appearing in the hud, almost is not Ace but it shows Ace and it shows wrong values and player's name.
Without the stock:
L 03/07/2017 - 01

9:20: [RoundEndEvents.amxx] [POD]Sharon_Stone (96) lasted 2 consecutive rounds without dying.
L 03/07/2017 - 01:40:49: [RoundEndEvents.amxx] EFFx caused the first death after 17 seconds of round starts.
L 03/07/2017 - 01:42:05: [RoundEndEvents.amxx] Counter-Terrorists won without taking any casualties.
L 03/07/2017 - 01:43:44: [RoundEndEvents.amxx] EFFx caused the first death after 18 seconds of round starts.
L 03/07/2017 - 01:44:11: [RoundEndEvents.amxx] [P*D]Rodney_Dangerfield (100) lasted 3 consecutive rounds without dying.
L 03/07/2017 - 01:45:23: [RoundEndEvents.amxx] EFFx lasted 2 consecutive rounds without dying.
L 03/07/2017 - 01:46

3: [RoundEndEvents.amxx] [POD]Sharon_Stone (96) killed 40% of the enemy team.
L 03/07/2017 - 01:48:15: [RoundEndEvents.amxx] [POD]Sharon_Stone (96) caused the first death after 20 seconds of round starts.
L 03/07/2017 - 01:49

2: [RoundEndEvents.amxx] As the last member alive, EFFx killed 2 enemies and won.
L 03/07/2017 - 01:51:19: [RoundEndEvents.amxx] [POD]Sharon_Stone (96) jumped 6 times during the round.
L 03/07/2017 - 01:52:57: [RoundEndEvents.amxx] 115 shoots were fired that round.
L 03/07/2017 - 01:54:46: [RoundEndEvents.amxx] EFFx killed 2 enemies.
L 03/07/2017 - 01:55:49: [RoundEndEvents.amxx] [P*D]killaruna (99) killed 2 enemies with under 25 health.
L 03/07/2017 - 01:59:00: [RoundEndEvents.amxx] [POD]Sharon_Stone (96) killed an enemy with his last bullet.
L 03/07/2017 - 02:03

3: [RoundEndEvents.amxx] [P0D]Jet_Li (97) received 2 different attacks before dying.
L 03/07/2017 - 02:04:29: [RoundEndEvents.amxx] [P*D]Jim_Carrey (96) defended the planted bomb from 3 enemies.
L 03/07/2017 - 02:05:19: [RoundEndEvents.amxx] 192 shoots were fired that round.
L 03/07/2017 - 02:06:53: [RoundEndEvents.amxx] [P*D]Jim_Carrey (96) received 2 different attacks before dying.
L 03/07/2017 - 02:27

0: [RoundEndEvents.amxx] Terrorists had the best accuracy with 60%
L 03/07/2017 - 02:28:12: [RoundEndEvents.amxx] [P0D]Mickey_Rourke (99)'s accuracy was 38 while his team was 29%
L 03/07/2017 - 02:29:03: [RoundEndEvents.amxx] [P0D]Mickey_Rourke (99) survived the most time: 130 seconds.
L 03/07/2017 - 02

0:58: [RoundEndEvents.amxx] CTs had the best accuracy with 24%
L 03/07/2017 - 02

1:53: [RoundEndEvents.amxx] Terrorists won without taking any casualties.
L 03/07/2017 - 02

2

3: [RoundEndEvents.amxx] [P0D]Sharon_Stone (96) brought a knife to a gunfight.
L 03/07/2017 - 02

4:21: [RoundEndEvents.amxx] [P*D]Kim_Basinger (9

given damage to 2 different enemies before dying.
These events has appeared after I removed the stock.
So much better. Without that stock, more events appear in the hud, repeating obviously but with correct values and player's name, I don't know why.
03/09/2017 - v1.3
ºAdded more events:
. Did so many damage but doesn't killed any enemy.
ºCode edited:
. Removed the
g_bIsOnFreezeTime boolean.
. Fixed the scout's price,
275 to
2750
. Removed
ImportantEvent stock.
. Removed the
gLastBoughtWeapon,
gLastDroppedWeapon and added
g_iItemDropped then fixed the flood on drop/buy event.
. Changed
(2 * MAX_CHANCE) to
(4 * MAX_CHANCE) in
ev_PlayerJumps
. Added
GlobalVariables enum-array (Idk how to call it).
. Re-named
g_bIsJumping to
IsJumping and added to
PlayerData.
. Fixed the
get_players() at
bomb_defused and a plural check in
ev_DefuseWithEnemiesAlive event.
. Added private chance for all events.
. Fixed the percent at
ev_PlayerKills.
. Removed the check for see if the
eVent is
ev_None in
checkChance stock.
. Added
g_bRoundEnded boolean.
. Removed the
arLastWeapon.
. Changed
60 to
85 seconds for
ev_MostTimeAlive event.
. Removed
PlayersNum[cs_get_user_team(id)]-- in
client_disconnect()client_disconnected()[/i] forward and in
deathMsg() function then fixed the invalid vaue in
ev_AnyCasualties event.
. Transfered
eLastEvent[i/] from checkChance() to showEvents()
. Fixed the ev_Clutch event.
03/12/2017 - v1.4
ºCode edited:
. Fixed the [il]ev_MuchDamageWithNoKills, I forgot a parameter.
. Fixed the
arAloneKills.
. Added a small delay in
checkIfIsAlone() function then fixed the wrong LastPlayerID.
. Fixed the wrong ID in
GlobalVariables[g_UserEventID] = iKiller in
checkChance() stock.
. Added
g_iLastPlayer[index][LastPlayerSettings(Defuser/Planter)] to
bomb_planting() and
bomb_defusing() for catch more IDs.
03/14/2017 - v1.5
ºCode edited:
. Fixed the wrong ID value and name in
checkChance stock.
. Re-organized all event's chance.
. Fixed the Woundest kills.
. Added a multiplication for set events in
checkChance then improved the events, appearing more than before.
03/8/2017 - v1.6
ºCode edited
. Added .ini file for configure all the events. You can turn enabled/disabled, change the event's chance and the message model.
. Fixed the issue with percent simbol at
ev_Accuracy
. Added
floatround() in
getAccuracy() and
getPlayerAccuracy() private stocks then using
%d instead of
%0.0f.
03/19/2017 - v1.7
ºCode edited
. Added prepositions at .ini file.
. Fixed the
DEFUSEDTHEBOMBWITHENEMIESALIVE configurations.
. Removed the percent in
ev_UserKills
. Added
TEAM_T and
TEAM_CT configuration at .ini file.
05/04/2017 - v1.8
ºCode edited
. Added a chech for crash the plugin when the .ini is nonexistent.
. Changed
add() to
formatex() at
LoadEvents().
. Fixed the wrong vale in
ev_MostTimeAlive event.
04/06/2017 - v1.9
ºAdded new events:
. 'X team' Won the round without killed any enemy.
. 'X' fired 'Y' shoots in that round.
. 'X' reloaded his weapon 'Y' times.
ºCode edited:
. Added hud configuration in .ini file
. Added
MAX_EVENTS and
g_iEventNumber for set a max event per round.
. Added two more sizes to
g_eLastEvent for don't repeat the same event chance check every time when it happens.
. Changed the multiplication of
3 to
4 at
checkChance() stock.
04/19/2017 - v2.0
ºCode edited:
. Changed
log_amx() to
log_to_file()
. Added a log alerting the wrong hud color at .ini file.
.
Drop code optimization
. Translation of
ev_ShootsFired,
ev_WonWithOutAnyKills and
ev_PlayerShoots events fixed.
. Removed the id at
Round_Restart.
. Using ! instead of
== 0 at
event_TWin() and
event_CTWin() events.
07/26/2018 - v2.1
. Changed some formats and now the events is appearing more randomly.
. Fixed the 'X brought knife to a gunfight' event.
. Fixed the hud color check format.
. Fixed the percent value on ev_Accuracy event.
. Added new event: X Killed Y teammate(s)
. Added amx 1.8.3 version check on buy event. (1.8.3 has CS_OnBuy forward)
. Changed some chances on the .ini file.
. Optimized the code a little.
09/04/2019 - v2.2
- Changed the whole way to get an event from the round.
- Fixed some messages and checks inside the plugin.
- Removed the chance format, it's totally random (but rare events will be the first thing that the code will search for, otherwise, it chooses a random one).
03/14/2021 - v2.3
Fixed some formats in some events.
Fixed some events that wasn't being called.
Fixed the 'bought X items' check for grenades.
Added new rare events:
- Player X killed Y enemies through the wall.
- Player X an enemy and remained with 1 HP.
- Player X killed himself this round.
- Player X died X rounds without killing anybody.
Removed both cstrike and engine includes, they were useless.
Changed some values from some events.
Changed
MIN_TIMES to
random_num(2, 4).
Changed the system of how the events appear:
Now it gives priority to rare events, so everytime a rare event happens, it'll be printed.
Therefore it has a check to see if the rare event selected already happened, otherwise it'll be ignored.
Example:
Code:
Events this round:
M0rbid Desire received 2 different attacks before dying.
M0rbid Desire given damage to 3 different enemies before dying.
Nicole_Kidman killed 4 opponents.
Terrorists had the best accuracy with 21%
killaruna's accuracy was 42% while his team was 17%
Jet_Li did 162 damage but does not killed any enemy.
=========================
Choosed: Jet_Li did 162 damage but does not killed any enemy.
Between all normal events that happens easily every round, it choosed the most rare thing to happen in a round, which was the high damage without any kill.
-
After some rounds, this is the list:
Code:
Tommy_Lee_Jones killed an enemy with knife.
Make my Day defused the bomb with 2 alive terrorists.
Pseudolukian killed an enemy with his last bullet.
U're Dead did 2 assists.
Pseudolukian killed 2 opponents.
Make my Day caused the first death after 19 seconds of round starts.
Jean_Claude_Van_Damme's accuracy was 47% while his team was 32%
Samuel_L_Jackson received 4 different attacks before dying.
Samuel_L_Jackson killed an enemy with grenade after dying.
Tommy_Lee_Jones survived the most time: 90 seconds.
Terrorists won without taking any casualties.
The Counter-Terrorists eliminated the Terrorists in 43 seconds.
Make my Day lasted 2 consecutive rounds without dying.
Jim_Carrey given damage to 2 different enemies before dying.
Make my Day jumped 12 times during the round.
Counter-Terrorists had the best accuracy with 38%
Chris_Tucker did 163 damage but does not killed any enemy.
This feels better for the player seeing that he did something important in the round, instead of just printing 'You killed 2 players' everytime.
Also, it got 17 events without repeating.
-
Second attempt:
Code:
Jean_Claude_Van_Damme killed an enemy with grenade in that round.
Tommy_Lee_Jones killed 2 enemies with headshots that round.
LTerrorists had the best accuracy with 37%
U're Dead killed an enemy with his last bullet.
Jean_Claude_Van_Damme killed an enemy in the air.
As the last member alive, Pseudolukian killed 2 enemies and won.
Tommy_Lee_Jones given damage to 3 different enemies before dying.
Make my Day brought a knife to a gunfight.
Jean_Claude_Van_Damme jumped 12 times during the round.
Samuel_L_Jackson killed an enemy with knife.
Jim_Carrey defended the planted bomb from 2 enemies.
Terrorists won without taking any casualties.
Jean_Claude_Van_Damme defused the bomb with 2 alive terrorists.
Make my Day lasted 2 consecutive rounds without dying.
Pseudolukian finished off 2 woundest enemies.
The Counter-Terrorists eliminated the Terrorists in 8 seconds.
got has spent 7020 money.
got threw 4 grenades that round.
Bridget_Fonda survived the most time: 87 seconds.
Tommy_Lee_Jones killed 2 opponents.
02/02/2022 - v2.4
- Removed some unecessary codes.
- Changed the way the plugin reads the events. Replace roundendevents.ini to update.
- Improved the event selector code.
- Changed the hud display to dhudmessage.
- Fixed some events with wrong checks.
- Fixed both
Defused with X seconds remaining and
Won with X seconds remaining events, both events now appearing.
Also added support for really low values on both events, such as 0.01 or 0.001 (plugin converts 0.100, 0.010 or 0.101 values to 0.1 and 0.01 automatically).
- Fixed some messages with wrong formats.
- Fixed a spam of ace events. It still gives priority to ace but if the same player has aced on the previous round, it skips it.
- Fixed
Bought X items and
Spent X$ on this round, both events now appearing.
- Added custom events support.
- Added a new event:
X one-tapped Y enemy/ies on that round.
- Added a new event:
X took Y total damage on that round.
- Added a new event:
X team won Y consecutive rounds.
- Added a new event:
X shot Y Z times.
- Added a new event:
X was the first victim on that round.
- Added a new event:
X grenades were thrown on that round.
----
Just wrote another code to select the events, and with 32/32 server I could get up to 39 different events.
New ones happening as well:
Code:
L 02/01/2022 - 16:14:23: Log file started (file "cstrike\addons\amxmodx\logs\ree_log.log") (game "cstrike") (amx "1.8.3-dev+5201")
L 02/01/2022 - 16:15:58: V0id killed an enemy with knife.
L 02/01/2022 - 16:17:49: Thomas Chong killed an enemy through the wall.
L 02/01/2022 - 16:19:40: Burt_Reynolds killed an enemy with his last bullet.
L 02/01/2022 - 16:21:16: Botsie Collins defended the planted bomb from 3 enemies.
L 02/01/2022 - 16:23:07: Chris_Tucker killed an enemy in the air.
L 02/01/2022 - 16:25:10: Funky Byte just one-tapped an enemy.
L 02/01/2022 - 16:27:16: Killing Frenzy finished off 2 woundest enemies.
L 02/01/2022 - 16:29:53: Jean_Claude_Van_Damme did 2 assists.
L 02/01/2022 - 16:32:42: Joe_Pesci took 441 total damage on that round.
L 02/01/2022 - 16:34:43: Botsie Collins killed an enemy with grenade after dying.
L 02/01/2022 - 16:37:24: Rambotnic killed 3 enemies with under 25 health.
L 02/01/2022 - 16:38:48: Larry_Fishbourne killed 2 separate bomb carriers in the last round.
L 02/01/2022 - 16:40:42: Botsie Collins has spent 5420 money.
L 02/01/2022 - 16:42:53: George_Clooney did 270 damage but does not killed any enemy.
L 02/01/2022 - 16:46:02: Killing Frenzy killed an enemy with grenade in that round.
L 02/01/2022 - 16:48:02: Rambotnic brought a knife to a gunfight.
L 02/01/2022 - 16:50:04: George_Hamilton died 6 rounds without killing anybody.
L 02/01/2022 - 16:52:28: Killing Frenzy killed himself in this round.
L 02/01/2022 - 16:54:32: Quentin_Tarantino jumped 14 times during the round.
L 02/01/2022 - 17:56:26: Rambotnic shot Joe_Pesci 9 times.
L 02/01/2022 - 16:58:37: V0id received 3 different attacks before dying.
L 02/01/2022 - 17:01:09: 658 shots were fired that round.
L 02/01/2022 - 17:03:16: Chris_Tucker killed 2 enemies with headshots that round.
L 02/01/2022 - 17:06:56: 2 CTs tried to defuse the bomb in that round.
L 02/01/2022 - 17:09:50: Chris_Tucker has bought 5 items.
L 02/01/2022 - 17:11:47: Botman given damage to 6 different enemies before dying.
L 02/01/2022 - 17:14:26: Rambotnic killed 5 opponents.
L 02/01/2022 - 17:16:33: Patrick_Swayze did 300 total damage with grenade.
L 02/01/2022 - 17:18:05: Terrorists had the best accuracy with 21%
L 02/01/2022 - 17:20:34: Terrorists won 7 consecutive rounds.
L 02/01/2022 - 17:22:21: Drew_Barrymore lasted 2 consecutive rounds without dying.
L 02/01/2022 - 17:23:54: Botsie Collins killed an enemy and remained with 1 HP.
L 02/01/2022 - 17:25:24: 36 grenades were thrown on that round.
L 02/01/2022 - 17:28:00: Botsie Collins survived attacks from 2 different enemies.
L 02/01/2022 - 17:30:10: Tom_Cruise survived the most time: 126 seconds.
L 02/01/2022 - 17:32:48: Jean_Claude_Van_Damme's accuracy was 100% while his team was 16%
L 02/01/2022 - 17:34:05: Patrick_Swayze finished off 3 woundest enemies.
L 02/01/2022 - 17:35:24: BotsBlitz just one-tapped an enemy.
[b]L 02/01/2022 - 17:36:58: Tom_Cruise defused the bomb with 0.2 seconds remaining.
L 02/01/2022 - 17:38:43: V0id defused the bomb with 3 alive terrorists.
L 02/01/2022 - 17:41:03: The Terrorists won the round with 0.8 seconds remaining.
-
So, with 32/32 players, from 41 events we've got 39 different ones, only the 37th and 38th events repeated but with the new code,
it selects the oldest event possible to be choosed instead of a randomly one that could've been happened 3 rounds ago.
The event repeat of the 37th round was an event that happened on 7th round and the 38th event repeat happened on the 6th, so the new system works much better now.
Also even if the code repeats one event, it'll continue checking for new events to happen and select it if so.
Just like the last event on the example above, two events repeated but even with this happening, a new one was registered after and selected immediately.
-
In statistics, after 41 events with 2 repeats only, we have only 4% of events repeating and 96% of the whole test were different events.
well...
06/22/2022 - v2.4.5
Just some minor update regarding the API support:
PHP Code:
/* executed when a non-custom event is displayed
* @eventId read EventsSettings enum for the list of events id
* @iUserEventID the first id of the player (who may cause the event to trigger)
* @iVictimEventID the second id of the player (who may be the victim)
*/
forward roundend_event(EventsSettings:eventId, iUserEventID, iVictimEventID)
/* executed when a non-custom event is displayed
* @eventId the id of the event (the custom event id is returned when it is registered)
* @iUserEventID the first id of the player (who may cause the event to trigger)
* @iVictimEventID the second id of the player (who may be the victim)
*/
forward roundend_custom_event(eventId, iUserEventID, iVictimEventID)
/* register a custom event ID
*
* @iUserEventID the id of the first user (who may cause the event trigger)
* @iVictimEventID the id of the second user (may be a victim)
* @szEventMessage the pre-formated event message to me displayed if chosen
* returns the id of the event
*/
native ree_register_customevent(iUserEventID = 0, iVictimEventID = 0, const szEventMessage[] = "")
/* deletes a custom event
* @iCustomEventID the id of the event to be deleted
*/
native ree_delete_customevent(iCustomEventID)