alliedmodders / amxmodx

AMX Mod X - Half-Life 1 Scripting and Administration
http://www.amxmodx.org/
502 stars 203 forks source link

[Discussion] Making AMXX 1.9 official with updated signatures for 25th anniversary #1108

Open Jhob94 opened 4 months ago

Jhob94 commented 4 months ago

Not sure if i am in the right place since i am not used to github.

I would like to suggest AMXX 1.9 as the official version with the signatures fixed for the latest cs version. Most users already use this version but with outdated signatures while they run servers with legacy.

Why is this a must? Some servers fail to set legacy version on server start-up and it requires a map change to fix it. Plugins that use hamsandwich will not work on start-up because legacy was not loaded and the signatures are outdated. This is an issue and we must fix it. The signatures for the latest version are all here: https://github.com/alliedmodders/amxmodx/issues/1086 posted by ClaudiuHKS.

fysiks1 commented 3 months ago

Probably need to increment one of the version numbers if you make the signatures update since people have been using 1.9 for a while now with the pre-anniversary version. Or, why not just leave 1.9 alone and do this to 1.10? What are the risks of using 1.10?

HamletEagle commented 3 months ago

I think that amxx 1.9 can be considered (unofficially) released as people have been using it for a long time, as fysiks mentioned. To me, it doesn't make much sense to update 1.9 with the new signatures.

1.10 is the current dev version, it should get the update. Updating 1.9 will create an awkward situation where we have two versions of both 1.9 and 1.10, each corresponding to a different HLDS version as the signature updates eventually need to make their way into 1.10 as well. This could lead to unnecessary complexity for the end user.

By updating 1.10, servers that prefer the legacy branch can continue using 1.9, while those running the 25th-anniversary edition can migrate to 1.10.

Jhob94 commented 2 months ago

I’ve read somewhere that register_native style 1 has been deprecated on 1.10. I don’t think it should ever become an official version. Why would we remove the most efficient plus readable way of registering natives? We would downgrade amxx. Imo 2 versions of 1.9 would be the most reasonable decision.

Edit: Another possible solution is by making 1.9 with new signatures renamed to 2.0. I am aware that there is a myth on forum that style 1 should be avoided. It is misinformation. Not only style 1 is more practical and readable as it is more efficient: “When a plugin uses your native (you should distribute a .inc), the handler will be called with two parameters: the calling plugin id, and the number of parameters.

If you set style=1, the method of parameter passing is a tad more efficient. Instead of "id, numParams", you label the native exactly as how the parameters should, in theory, be sent. Then for each byreference parameter, you call param_convert(num).”

fysiks1 commented 2 months ago

Deprecated doesn't mean it's obsolete, it should remain functional but no longer recommended. If you don't think 1.10 should ever become an official version then you are in luck! Nothing will ever become an official version ;) based on the last decade.

Back on the topic of signatures, @ClaudiuHKS mentions in this post that his files aren't fully functional which is a potential issue to incorporating those changes in to master.

Jhob94 commented 2 months ago

https://github.com/alliedmodders/amxmodx/issues/1086#issuecomment-1876235385

He later edited and added the missing signatures. What was left to do was verifying hamdata, which i already did.