Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Let's talk about new features in plugins #609

Open
Arkshine opened this issue Sep 29, 2018 · 102 comments
Open

Let's talk about new features in plugins #609

Arkshine opened this issue Sep 29, 2018 · 102 comments

Comments

@Arkshine
Copy link
Member

Arkshine commented Sep 29, 2018

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 ` command.
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
@SergeyShorokhov
Copy link
Contributor

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.

@SergeyShorokhov
Copy link
Contributor

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

@SergeyShorokhov
Copy link
Contributor

SergeyShorokhov commented Sep 29, 2018

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...

@GoRiLliAz
Copy link

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

@GoRiLliAz
Copy link

Menu
Automatically hidden the menu for which one has no access

@SergeyShorokhov
Copy link
Contributor

SergeyShorokhov commented Sep 29, 2018

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)

@GoRiLliAz
Copy link

GoRiLliAz commented Sep 29, 2018

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

@GoRiLliAz
Copy link

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.

@Arkshine
Copy link
Member Author

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

what do you mean?

@Arkshine
Copy link
Member Author

Arkshine commented Sep 29, 2018

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.

@GoRiLliAz
Copy link

GoRiLliAz commented Sep 29, 2018

Slots Reservation

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

@GoRiLliAz
Copy link

@Arkshine Ok i edit my previous post later

@Arkshine
Copy link
Member Author

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.

@SergeyShorokhov
Copy link
Contributor

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.

@OciXCrom
Copy link
Contributor

OciXCrom commented Sep 29, 2018

  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 Make separate .cfg files for each plugin? #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.

@WPMGPRoSToTeMa
Copy link
Contributor

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

I think kicking most recent player can be default behavior.

@Arkshine
Copy link
Member Author

  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 Make separate .cfg files for each plugin? #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.

@dedimark
Copy link

Add Kickmenu with reasons.

@OciXCrom
Copy link
Contributor

OciXCrom commented Sep 30, 2018

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.

@voed
Copy link
Contributor

voed commented Sep 30, 2018

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

@justgo97
Copy link

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.

@OciXCrom
Copy link
Contributor

OciXCrom commented Sep 30, 2018

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.

@Hembi
Copy link

Hembi commented Sep 30, 2018

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.

@rsKliPPy
Copy link
Contributor

rsKliPPy commented Sep 30, 2018

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.

@SmiteIsTrashBro
Copy link
Contributor

SmiteIsTrashBro commented Sep 30, 2018

  • 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?

@WPMGPRoSToTeMa
Copy link
Contributor

WPMGPRoSToTeMa commented Sep 30, 2018

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.

@luxxxoor
Copy link
Contributor

luxxxoor commented Oct 1, 2018

Add amx_mute for voice chat.

@Maxi605
Copy link

Maxi605 commented Oct 1, 2018

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.

@GoRiLliAz
Copy link

GoRiLliAz commented Dec 3, 2018

^^ No memory leak ^^
90% of my plugins were made by Arkshine only for my team in 2015 and 2016.
I have out amxmodx 20 plugins 90% code by arkshine and the rest are plugins that are always updated on the forum alliedsmodder. And my machine is OVH game server 8 coeur 16 go ram for only 4 server cs1.6 i use my machine only 5%
I urge you to reboot your server every 24h ...
Let's move on. Arkshine will decide if my proposal is good or not.

@Arkshine
Copy link
Member Author

Arkshine commented Dec 3, 2018

That sounds like memory leak. Isn't it better to check your plugins and test stuff to avoid it, than restart it with still having the problem?

So far I remember HLDS is well known for leaking memory. It's old, bugged and unmaintained. You can check with Valgrind. Also, if you have a lot of activity/plugins and alter often the game, you will accumulate garbage and HLDS can do weird things at some point. Admins are not necessarily coders, and you can do nothing about HLDS, it's just easier to start from a clean state when you can.

@Dr-Strange91
Copy link

And what about servers like Death Match?

I think, Cvar should be added !!!

roundendtime "1/0" (1- New Behaviour)(0- Old Behaviour)?

NextMaps - Allow the last round to be finished even if the timelimit has expired

@Hembi
Copy link

Hembi commented Jan 11, 2019

  • Add Map specific users.ini like plugins.ini
    (For example a MultiMod server with some different VIP function this would be helpful)

@regener
Copy link
Contributor

regener commented Jan 20, 2019

CS StatsX with kill assists and SQL db?
(I know it exists as a 3rd party, just asking)

Other idea:
Optionally set a timezone and show it as current time instead of server time.

@RetroDev64
Copy link

RetroDev64 commented Apr 12, 2019

Hi, I have a request for the Albanian language support.
Not saying this just randomly, but based on the high number of servers who need this.
I can actually provide translations without any problem at all. I have did so in the past, but unfortunately lost them all.
This maybe is not the right place to make requests. If so, I sincerely apologize.
My regards, thEsp !

@OciXCrom
Copy link
Contributor

OciXCrom commented Apr 13, 2019

@4D1G06 It doesn't make sense to request from the AMXX devs to translate a specific language - of course less than 10 people don't speak all the languages in the world. Everybody is free to participate in this project. You can translate it yourself and submit a pull request.

There's already a pull request for that language - #684 , so you can join the discussion there and suggest any improvements.

@Arkshine Arkshine pinned this issue May 16, 2019
@regener
Copy link
Contributor

regener commented Jun 5, 2019

Plugin Menu - #735 (comment)

@Dr-Strange91
Copy link

Dr-Strange91 commented Jul 8, 2019

Are there any plans to add write Kick Reason, with amx_kickmenu.

@DarthMan
Copy link

I guess, this can still be considered a request for AMXX v1.10 and a good one. It's about the Orpheu module. I think it would be cool if such module is improved, with Vector support added like Okapi. And, ofc, it beeds to be included in AMXX v1.10 . This way will make it possible to hook functions that are otherwise only possible yo hook with Okapi. Since Orpheu reads from files rather than havibg the sigs/offsets hardcoded, I think it's better if Irpheu is included instead. It also makes it easier to hook functions like pfnKeyValue for example. It's not too late. Maybe CS and the other games are dead but, at least, let us, those who still code for such dead games to be able to make amazing things without having to use other additional modules. I really hate how Okapi is hardcoded and if u want to support multiple mods for each new 1 u have to edit the plug-in again and again. With Orpheu it is much easier, allowing u to make a json-parse file without having to edit anything from the plug-in.

@voed
Copy link
Contributor

voed commented Aug 30, 2019

@DarthMan this topic is about plugins, not modules
And Orpheu is not even a part of AMXX

@DarthMan
Copy link

DarthMan commented Aug 30, 2019

Yeah it is not, but I requested that it comes with the default amxx package. And I seee no other place to post it on.

@GasmoN
Copy link

GasmoN commented Sep 9, 2019

Nextmap Chooser
Don't include maps that were already played. (Only if there is X (cvar) new maps to choose from).
Reason: It happends that lot of players randomly press buttons or just like to play the same map over and over again, so it's kind of boring for others and they just leave. It's not a big deal when admins are online but when they are not it's a problem.

@DarthMan
Copy link

Add rock the vote to default Abstract Machine Executor X base package and a new command revote in case you chose the wrong map by mistake you can just type revote and choose a new one.

@djearthquake
Copy link

Port AdminMod Map-Nomination-Vote Plugin into core for rockethevote and nominate.

@SmileYzn
Copy link
Contributor

Avoid usage of setinfo for terrible _pw, i think some users reported that can be stolen (If really can!)

LOL

@DeclineD2CS
Copy link

DeclineD2CS commented Dec 17, 2020

Multi-language system

  • Autotranslate words e.g. from any language to any other language based on player's language / server's language(if the text isn't already in that one) in chat / menus and hudmessages

@DeclineD2CS
Copy link

Avoid usage of setinfo for terrible _pw, i think some users reported that can be stolen (If really can!)

LOL

Totally, we can create plugins where we can use ge_user_info to get the passwords of any player we see and ask him if he's an admin on server then make him lose his admin and that's kinda bad.
But there's no way to solve it.

@DeclineD2CS
Copy link

DeclineD2CS commented Dec 17, 2020

Admin Help

  • Ability to show all commands at once or to set how many commands you want to see on page and also the pages should be from 1 to infinity not 10, 20, 30, 40.

@OciXCrom
Copy link
Contributor

Multi-language system

  • Autotranslate words e.g. from any language to any other language based on player's language / server's language(if the text isn't already in that one) in chat / menus and hudmessages

That would be chaotic and totally unfunctional. No auto-translating system is 100% accurate and players rarely write properly in chat, which will make the translation even that more unusable.

Menus and other plugin stuff should be translated manually.

@OciXCrom
Copy link
Contributor

Admin Help

  • Ability to show all commands at once or to set how many commands you want to see on page and also the pages should be from 1 to infinity not 10, 20, 30, 40.

Having that many messages printed in the console at once can get the client kicked out from the server. That limitation is there for a reason.

@TibyXD
Copy link
Contributor

TibyXD commented Mar 22, 2021

The ability of having
amx_ct
amx_t
amx_spec

Also, admin menu in chat, like /slay /slap /kick.

@OciXCrom
Copy link
Contributor

@TibyXD those commands are redundant when you have amx_teammenu. If something like that is going to be added, it should be amx_team or amx_transfer. Having hardcoded commands only for CS is not ideal.

@wxzasd
Copy link

wxzasd commented Aug 4, 2023

painshock_value (movement slowdown value when the player get hit)
pushangle_value (weapon/crosshair deviation when the player get hit)

@all85100
Copy link

Six years have passed, and none of the new features mentioned here have been implemented. Should everyone give up?

@dvander
Copy link
Member

dvander commented Apr 16, 2024 via email

@Arkshine
Copy link
Member Author

I'm sorry, guys. The lack of general interest and IRL catching me up did not help me focus on the AMXX project. If I have the opportunity to come back, I will, but right now, I can't. Hopefully, someone can take over and continue working on it. 🙏

@DarthMan
Copy link

At least make 1.9 the default stable build, replacing 1.8.2 which is quite old.

@all85100
Copy link

I'm sorry, guys. The lack of general interest and IRL catching me up did not help me focus on the AMXX project. If I have the opportunity to come back, I will, but right now, I can't. Hopefully, someone can take over and continue working on it. 🙏

I think project managers still need to take the time to deal with the right and reasonable Pull requests,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests