amxmodx icon indicating copy to clipboard operation
amxmodx copied to clipboard

Let's talk about new features in plugins

Open Arkshine opened this issue 7 years ago • 102 comments

Before we go wild on plugins, we should discuss what changes/new features/new plugins would be welcomed for each plugin. It will be easier to manage people's ideas and we will get a better overview of the work to do. We can also sort them by priority and whether they are unwanted/out-of-scope/impossible/etc. Some changes may require modifications in core, therefore it's important to discuss everything beforehand.

I will try to update below based on the proposed changes.

waiting for feedbacks

Admin - Temporary admins
Admin Chat - Add Gag/UnGag commands (voice, say, say_team)
Admin Cmds - Ability to kick spectator and/or AFK after a predefined time (not sure if the right plugin here, default could be the most recent player)
- API: kick/ban players - A player's command to reset stats - `amx_slay` with ` @` (e.g. for CS: @ALL/@CT/@T) - Enforces sanity checks on command arguments
Admin Help -
Admin Votes - Add a `amx_votecvar` command.
Commands Menu -
Maps Menu -
Menus Front-End - The position of core menus should be modifiable in a config file.
- Hide menu instead of being visually disabled for player who doesn't have the access level
Multi-Lingual System -
Nextmap Chooser -
NextMaps - Allow the last round to be finished even if the timelimit has expired
Pause Plugins -
Players Menu - Ability to choose in what position Slay/Slap items should be (first/last)
- Ability to choose a reason before a Kick/Ban - A command `amx_team ` to open a menu with found players - An option if the player doesn't have access to `amx_slap` or `amx_slay` to make sure the player can't use that through the Slap/Slay Menu. - Don't harcode data (such ban time, etc.)
Plugin Menu -
Slots Reservation - API: forward before any action to check a player and change conditions
- If all slots are used, ability to search a player to kick based on certain criteria (spectator, defined afk time, etc)
Scrolling Message -Ability to target specific players
Stats Configuration -
Teleport Menu -
TimeLeft -
Vote - If the Gag/Mute gets implemented a new `amx_votemute
CS Misc. Stats - Knife Kills and HE Grande Kills
CS Stats Logging -
CS StatsX -
CS Restrict Weapons - Restriction per player
- Restriction on touch - Ability to limit the amount of a weapon that can be bought/in the world - Ability to make specific weapons accessible only to people with a specific flags

Potential new plugins:

Team Balance Ability to balance teams with various options
AFK Manager Ability to handle AFK, disabled by default

Arkshine avatar Sep 29 '18 15:09 Arkshine

Slots Reservation I think we need to update him functionality.

  1. Add kick random(?) player when reserved slots is reached.
  2. Give a some API for thir-party plugins, give some events like a check player before kick & another.
  3. Now plugin check only client flag ADMIN_RESERVATION on client_authorized(id) . We can add another conditions for this.

wopox1337 avatar Sep 29 '18 15:09 wopox1337

Info. Messages AND Scrolling Messages Modern plugin to inform players represent a much greater functionality. Just look at one of them.:

  1. Autoresponder and Advertiser (with color and conditions!)
  2. Awersome Messages by fantom

wopox1337 avatar Sep 29 '18 15:09 wopox1337

Nextmap Chooser Modern plugin to manage server maps a much greater functionality. Just look at one of them.:

  1. MapManager [Modular] by @Mistrick
  2. Galileo v5.9.1-925

player can nominate (with maps menu), vote for change map and another...

wopox1337 avatar Sep 29 '18 15:09 wopox1337

GaG/UnGag As for CS: GO, embed the function Gag/UnGAG directly has AMX

GoRiLliAz avatar Sep 29 '18 15:09 GoRiLliAz

Menu Automatically hidden the menu for which one has no access

GoRiLliAz avatar Sep 29 '18 15:09 GoRiLliAz

Admin Huh.... I don't know how to start... Firstly, need to divide the management and loading privileges of players from the management of players (bans, etc.). There should be a lot of work, because this plugin is always replaced by a custom one. I don't remember when I needed the standard =(.

If we been divide plugin to two - then need all of the penalties and restrictions of the player to move to another plugin. May it be so: Players restrictions (Ban, Kick, Gag, API)

wopox1337 avatar Sep 29 '18 15:09 wopox1337

Slap/slay You should be able to choose to put the slay first or last.

GoRiLliAz avatar Sep 29 '18 15:09 GoRiLliAz

Team Balance The balancing system should be redone by improving it like this: https://forums.alliedmods.net/showthread.php?t=26598

  • With a change of team at the last second when a player is changed from team.
  • As well as protection of players to avoid the abuse of kill at the end of the round.

GoRiLliAz avatar Sep 29 '18 15:09 GoRiLliAz

Add kick random(?) player when reserved slots is reached.

what do you mean?

Arkshine avatar Sep 29 '18 16:09 Arkshine

To all: Just giving existing plugin doesn't help much. We need a concrete list of features. It's kind of hard because all the plugins need to be overhauled. We need to keep compatibility too. Well, let's try anyway.

Arkshine avatar Sep 29 '18 16:09 Arkshine

Slots Reservation

Add the function kick spectator or AFK after a preset time..

GoRiLliAz avatar Sep 29 '18 16:09 GoRiLliAz

@Arkshine Ok i edit my previous post later

GoRiLliAz avatar Sep 29 '18 16:09 GoRiLliAz

Admin Huh.... I don't even know where to start... Firstly, need to divide the management and loading privileges of players from the management of players (bans, etc.). There should be a lot of work, because this plugin is always replaced by a custom one. I don't remember when I needed the standard =(.

I wanted to do something similar to SM. We need an API for plugins too.

Arkshine avatar Sep 29 '18 16:09 Arkshine

Add kick random(?) player when reserved slots is reached.

what do you mean?

@Arkshine i mean this. if we have 2 reserved slots and this slots are busy. We should search player to kick from server. To free up space for a reserve slot.

wopox1337 avatar Sep 29 '18 16:09 wopox1337

  1. Colored chat messages in all plugins for Counter-Strike.

Since client_print_color uses client_print if the game isn't CS, it's perfectly safe to implement color symbols in the default plugins without having to worry about other games.

The only change required in the core is modifying client_print to not show ^1, ^3 and ^4 - right now it doesn't actually show them, but instead it shows a huge gap whenever they are used in a message.

client_print(id, print_chat, "This ^4is ^3a ^1test ^4message^1.")

Result:

client_print

  1. admin.sma - adding the ability to set an expiration date for admins. I started overhauling the plugin here, I'll try to implement this option when I'm done.

  2. nextmap.sma - implementing the ability of this plugin as it is a very useful option to have. It can be implemented with a cvar to enable/disable it.

  3. adminvote.sma - add a amx_votecvar command.

  4. Use the new AutoExecConfig function to generate separate .cfg files for each plugin rather than having everything mashed up in amxx.cfg. I started a discussion in #577, but still no reply.

  5. Maybe we can also add another plugin with extended admin commands from AMX Super, e.g. funcmd.sma. Having new options for admins is always appreciated.

OciXCrom avatar Sep 29 '18 17:09 OciXCrom

1. Add kick random(?) player when reserved slots is reached.

I think kicking most recent player can be default behavior.

WPMGPRoSToTeMa avatar Sep 29 '18 20:09 WPMGPRoSToTeMa

  1. Colored chat messages in all plugins for Counter-Strike.

I don't mind, but it should have a config for that, people may not like suddenly having color everywhere. Also what messages are going to be changed, what colors to use. Ideally, I think people should decide how to color, but right now it's not really convenient. If you change the languages files, you might need to overwrite them later or you might want to change others languages. Probably not sanely doable though.

About symbol, amxx strips them from a language file, I guess this could be done for client_print_color.

  1. admin.sma - adding the ability to set an expiration date for admins. I started overhauling the plugin here, I'll try to implement this option when I'm done.

Admin stuff needs to be a little more advanced, similar to SM, but yea, temporary admins has been requested several times.

  1. Use the new AutoExecConfig function to generate separate .cfg files for each plugin rather than having everything mashed up in amxx.cfg. I started a discussion in #577, but still no reply.

I'm not sure. If we didn't have amxx.cfg with cvars already put inside, we could have used AutoExecConfig everywhere, but now it will be annoying for the user on upgrade if we move all the cvars related to the base plugins. Don't know, need more feedbacks on that.

  1. Maybe we can also add another plugin with extended admin commands from AMX Super, e.g. funcmd.sma. Having new options for admins is always appreciated.

I'm not against, but really not a priority, and you should list exactly what command you would want to include.

Arkshine avatar Sep 30 '18 11:09 Arkshine

Add Kickmenu with reasons.

dedimark avatar Sep 30 '18 12:09 dedimark

I don't mind, but it should have a config for that, people may not like suddenly having color everywhere. Also what messages are going to be changed, what colors to use. Ideally, I think people should decide how to color, but right now it's not really convenient. If you change the languages files, you might need to overwrite them later or you might want to change others languages. Probably not sanely doable though.

A cvar can be added to toggle the colors, it's not really a problem. Like you said, the only struggle will be adding the color symbols for all languages - but it's not something undoable. We should probably follow a simple rule when adding them, e.g. player names in team color and values in green, everything else in default color, so basically we need to add the colors before any %s, %d, etc. This way we won't have to worry about the actual words in other languages - they will retain the same color style.

I can do this if you make the client_print change. Oh, and yeah, the show_activity functions will need to be modified as well - #505.

I'm not sure. If we didn't have amxx.cfg with cvars already put inside, we could have used AutoExecConfig everywhere, but now it will be annoying for the user on upgrade if we move all the cvars related to the base plugins. Don't know, need more feedbacks on that.

When you think about it, it's much more annoying as it is right now because with every new cvar added in AMXX, users will need to manually add that cvar in amxx.cfg. Take a look at your release notes - these additional instructions can easily be avoided by using AutoExecConfig - new cvars will be automatically generated in the respective files and old ones will remain unchanged - users won't have to do the changes manually anymore. It's really the most appropriate thing to do IMO, especailly when we will be adding a lot more cvars in the plugins.

OciXCrom avatar Sep 30 '18 12:09 OciXCrom

I'd like to add natives to kick/ban player, using server_cmd triggering me every time

voed avatar Sep 30 '18 12:09 voed

I'm with adding AutoExecConfig for new cvars its frustrating to keep to track of these cvars or make amxx.cfg file to be generated only once like AutoExecConfig so that its not override every time a new cvar is being added.

justgo97 avatar Sep 30 '18 13:09 justgo97

Yeah, we can also use AutoExecConfig to work with amxx.cfg, but it will require modifying the function because right now you can't use a .cfg file outside of the configs/plugins directory. But in my opinion it's still better to have separate files because it's easier to find the cvars you want to modify.

OciXCrom avatar Sep 30 '18 14:09 OciXCrom

Refereed to #581 :

  • Add kick/ban reason to the kick and ban menu
  • Add option to make a screenshot before the ban with an enable/disable cvar.

Other:

  • Add a reset score plugin with some command aliases
  • AFK manager with some cvars (like afk time before do anything, transfer to spec or kick)
  • Control cvar to enable/disable team flash which is compatible with HLDS and ReHLDS.

Hembi avatar Sep 30 '18 15:09 Hembi

Other: Add a reset score plugin with some command aliases AFK manager with some cvars (like afk time before do anything, transfer to spec or kick) Control cvar to enable/disable team flash which is compatible with HLDS and ReHLDS.

These are all mod-specific gameplay elements and should be altered with 3rd party plugins, just the way it has always been.

rsKliPPy avatar Sep 30 '18 15:09 rsKliPPy

  • Add a native to modify key value and insert new data on textparse_ini.
  • ArrayFindString with a case-sensitive param or ArrayFindString2.
  • amx_gag with flags (a = voice, b = say, c = say_team, etc)
  • /rstats or something to reset player stats
  • amx_slay with @ALL/@CT/@T

Actually I'm developing with ReHLDS, ReGameDLL and ReAPI. In release notes it's cited that it has now official support. What really was changed?

SmiteIsTrashBro avatar Sep 30 '18 18:09 SmiteIsTrashBro

These are all mod-specific gameplay elements and should be altered with 3rd party plugins, just the way it has always been.

AFK kicking is a quite general, but it shouldn't be enabled by default like teleport. What about resetscore: looks like all GoldSrc games have some score systems, so it seems to be general too (but an implementation is game-specific, yeah).

Actually I'm developing with ReHLDS, ReGameDLL and ReAPI. In release notes it's cited that it has now official support. What really was changed?

All natives/forwards that require hooking the engine functions or searching in the engine are supported for ReHLDS/ReGameDLL.

WPMGPRoSToTeMa avatar Sep 30 '18 21:09 WPMGPRoSToTeMa

Add amx_mute for voice chat.

luxxxoor avatar Oct 01 '18 02:10 luxxxoor

Slots Reservation I think we need to update him functionality.

  1. Add kick random(?) player when reserved slots is reached.
  2. Give a some API for thir-party plugins, give some events like a check player before kick & another.
  3. Now plugin check only client flag ADMIN_RESERVATION on client_authorized(id) . We can add another conditions for this.

Make it as the server owner can choose to set on/off this feature (Feature 1), please, i use xRedirect for this specificly and i don't need players to be kicked, good idea btw.

Maxi605 avatar Oct 01 '18 18:10 Maxi605

Reasons for BanMenu should be a thing aswell, and maybe a option to tell the admin "Are you sure you want to ban %s?" (People may disagree with this and i'll understand why).

Restrict Weapons: Ability to limit the amount of a weapon that can be bought/in the world (Example: Limit 3 AWP's to be in use).

Slap/Slay: If the player doesn't have access to amx_slap or amx_slay make as the player can't use this options on the Slap/Slay Menu.

Votes: If the Gag/Mute gets implemented a new cvar amx_votemute "Player" "Time" "Reason" would be pretty good.

Stats: Knife Kills and HE Grande Kills would be good to have.

Scrolling Messages: The ability of giving messages only to 'X' person or Admins.

Maxi605 avatar Oct 01 '18 19:10 Maxi605

Slots Reservation

Add the function kick spectator or AFK after a preset time..

That's allready implemented in the game, mp_autokick, if set to 1 it will kick players after a certain time as AFK (In Spectator) and i think the players that teamkill and kill hostages.

Maxi605 avatar Oct 01 '18 19:10 Maxi605