So I have been working a little bit rewriting this plugin for myself and came up with some new ideas and features as well as I optimized the code a little bit. Here is the list of what I have done :
1). Dispenser now has 3 levels, with each level it heals more. (maximum players health increases - dispenser_playermax_health cvar). Dispenser can be upgraded by any team member and the owner too.
2). New model with 6 submodels - 3 submodels for each team for each level of dispenser.
3). Dispensers can be upgraded by touching them. (upgrading requires some amount of money - configurable)
4). Updated the visual beam effect, it really looks way greater now.
5). Dispensers now only do one function - they only heal. (They do not give armor and BPAMMO anymore) - modification for myself, because I didn't need dispensers to do this.
6). Search for players in radius code has been rewritten. Rather than looping through all players I have used fakemeta FindEndInSphere.
7). General optimization - instead of a bool setting its value to be true when player has build a sentry, I have created a global var, which will save Dispensers (ent) ID inside. (later on when we need to remove dispensers there is no more need to loop through all dispensers and find the ones we need, use just this variable instead).
8). Dispensers are destroyed on player's disconnect
9). Dispensers are no more destroyed on round end (I didn't need it since I am using this on CSDM mode)
10). Added friendly fire support (no more friendly fire on dispensers)
11). Bug where dispensers sometimes "fall into the ground" is fixed.
12). Added some validating checks where they lacked.
13). Got rid of cvars (I just hate them)
And many many many other small improvements, fixes. Right now I am trying to realize the last part of my work, but I don't know what would be the best option to deal with it, so I have asked here - https://forums.alliedmods.net/showthread.php?t=280279
Later on, when my work is done. I can share it with you, if anyone is interested of course.
Btw, my version only uses fakemeta and ham from 3rd party amxx modules. (Haters gonna hate)