AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   News (https://forums.alliedmods.net/forumdisplay.php?f=59)
-   -   SourceMod Development Roundup (1.7.2 - 2015/11/03) (https://forums.alliedmods.net/showthread.php?t=274188)

asherkin 11-03-2015 09:44

SourceMod Development Roundup (1.7.2 - 2015/11/03)
 
This covers all commits to 1.7 since the release of 1.7.2.
Now that we're on a roling release cycle, I'd like to do a roundup like this semi-regularly (depending on interest and commit frequency) to replace the old release changelogs.

Fixes
  • The normal set of gamedata updates for numerous games.
  • Worked around a case where client connections could desynchronize, causing authentication information to persist across players.
  • Fixed a rare crash in the TF2 extension due to a missing IsFree() check.
  • Fixed cases where IsCharAlpha/IsCharNumeric/IsCharSpace/IsCharUpper/IsCharLower could return incorrect data.
  • Fixed ConVar.*Value property setters not working correctly.
  • Fixed mouse movement values in OnPlayerRunCommand for TF2/CS:S/DoD:S/HL2:DM.
  • Change default path ID to "GAME" instead of NULL for valvefs-using filesystem natives.
  • Fixed SQL_SetCharset potentially misbehaving when used with threaded operations.
  • Improve allocation policy for datapacks to save memory.
SourcePawn Fixes (Need to recompile plugins for these)
  • Fixed an issue where some unary operators could return incorrect data.
  • Corrected oversight with view_as<>(...) where it could compile with missing parenthesis.
  • Fixed a compiler crash with invalid array initializers.
  • Fixed parameter list of DBResultSet.IsFieldNull.
New Features
  • Added support for Modular Combat.
  • Added support for setting string_t Prop_Data fields (such as "m_target") to SetEntPropString.
  • Added array support to SetEntPropString.
  • Include datapack memory allocation in handle dump.
  • Added new condition / holiday constants to tf2.inc.
  • Added FindMap native.
  • Added GetTeamEntity native.

As always, I'd like to thank the SourceMod team and members of the community contributing changes this period - including Powerlord, FlaminSarge, Thordin, WildCard65, and PeaceMaker.

Most interesting development takes place in the development branch (1.8) and I am currently working on a roundup of that (there is a lot!) - so hold on to your hats!

As for what is coming in the future...
This is all 1.8 changes since forking off 1.7 (also everything already listed above).
There have been a lot of commits moving around SM internals to facilitate future work.
Some stuff may have been missed, some stuff may have snuck in that is in 1.7.x before 1.7.2 - future updates will be a lot easier to compile.

Fixes
  • Corrected buffer sizes for player and map names in numerous base plugins.
  • Corrected numerous spelling mistakes throughout the config files and API documentation.
  • Fixed methodmap chaining using the wrong value when used as a default parameter.
  • Fixed "sm plugins refresh" not reloading changed plugins.
  • Fixed a misleading error message from "sm config".
  • Increased buffer sizes for PrintTo*All stocks.
  • Fixed FindFlagChar returning false when given custom6 flag.
  • Notify plugin listeners of SetFailState'd plugins on unload.
  • Pause dependent plugins on SetFailState.
  • Fixed an issue with asynchronous queries potentially completing after plugin unload.
Features
  • Added support for Black Mesa.
  • Added SetClientName native.
  • Populate MaxClients before OnPluginStart is called.
  • Added support for listening to, blocking, changing, and faking ClientCommandKeyValues.
  • Introduced a datapack position tag to avoid common mishaps with SetPackPosition.
  • Added GetMapDisplayName native to assist working with workshop maps.
  • Added EmitSoundEntry native and updated AddNormalSHook with support for newer engine features.
  • Added File Transfer hooks to SDKTools.
  • Updated convar flags to match modern engines.
  • Added offset printing to datamap dumps.
  • Include date information in property dumps.
  • Changed map history storage limit to be configurable (sm_maphistory_size).
  • Added TE_SendToAllInRange native.
  • Added GetEntityRenderColor stock.
Other
  • Updated large swathes of the API to use methodmaps.
  • Removed methodmap native binding syntax.
  • Moved the git revision to the 4th version number component.
  • Removed lots of unused gamedata.
  • Killed off the INativeInvoker extension API.
  • Enable SDK independence with MM:S enabled extensions.
  • Huge amount of refactoring moving code from Core to Logic (smaller download, faster builds).
  • Huge amount of refactoring to SourcePawn VM internals:
    • Faster, safer, easier to maintain plugin loading and unloading.
    • New error handling model with better stack traces.
    • All functions can now be used as callbacks.

psychonic 11-03-2015 11:13

Re: SourceMod 1.7 Development Roundup (1.7.2 - 03/11/15)
 
Quote:

Originally Posted by asherkin (Post 2359557)
so hold on to your hats!

✋🎩

GoD-Tony 11-03-2015 12:26

Re: SourceMod 1.7 Development Roundup (1.7.2 - 03/11/15)
 
I like this idea! There's a few things there that I didn't know were added/fixed.

Potato Uno 11-03-2015 14:39

Re: SourceMod 1.7 Development Roundup (1.7.2 - 03/11/15)
 
Any ETA when 1.8 becomes the new stable?

asherkin 11-03-2015 14:41

Re: SourceMod 1.7 Development Roundup (1.7.2 - 03/11/15)
 
Quote:

Originally Posted by Potato Uno (Post 2359639)
Any ETA when 1.8 becomes the new stable?

No, why will make more sense when I've completed that round-up.
If there is anything in 1.8 that you want to see in 1.7 (especially bug fixes, which should all be in 1.7 but often get forgotten) just holla.

asherkin 11-03-2015 18:25

Re: SourceMod 1.7 Development Roundup (1.7.2 - 03/11/15)
 
Updated the op with a snapshot of 1.8 changes.

GreYzZ 11-03-2015 20:44

Re: SourceMod Development Roundup (1.7.2 - 03/11/15)
 
We really need an auto updater for the plugin
https://forums.alliedmods.net/showthread.php?t=169095

ddhoward 11-03-2015 22:10

Re: SourceMod Development Roundup (1.7.2 - 03/11/15)
 
Quote:

Originally Posted by GreYzZ (Post 2359713)
We really need an auto updater for the plugin
https://forums.alliedmods.net/showthread.php?t=169095

Updater does, in fact, update itself. But this is not relevant to this thread.

Chdata 11-04-2015 13:08

Re: SourceMod Development Roundup (1.7.2 - 03/11/15)
 
"Fixed mouse movement values in OnPlayerRunCommand for TF2/CS:S/DoD:S/HL2:DM."


Pfff, no wonder my guided missiles broke.

Bara 11-04-2015 14:13

Re: SourceMod Development Roundup (1.7.2 - 03/11/15)
 
Nice, is this now monthly?

Chdata 11-04-2015 16:30

Re: SourceMod Development Roundup (1.7.2 - 03/11/15)
 
(depending on interest and commit frequency)

Wliu 11-04-2015 19:27

Re: SourceMod Development Roundup (1.7.2 - 03/11/15)
 
I love this. Now I don't have to sift through the commit messages anymore :P.

Dr. McKay 11-04-2015 21:22

Re: SourceMod Development Roundup (1.7.2 - 03/11/15)
 
There's some exciting stuff in 1.8 that I wasn't aware about. I guess I'll have to switch to it!

Starbish 11-05-2015 02:39

Re: SourceMod Development Roundup (1.7.2 - 03/11/15)
 
Quote:

Populate MaxClients before OnPluginStart is called.
will this be able to be used globally?

like

int g_iUserVariable[MaxClients+1];

asherkin 11-05-2015 02:55

Re: SourceMod Development Roundup (1.7.2 - 03/11/15)
 
Quote:

Originally Posted by Starbish (Post 2360066)
will this be able to be used globally?

like

int g_iUserVariable[MaxClients+1];

No, it's not a constant. static array sizes have to be defined at compile time.

ddhoward 11-05-2015 03:23

Re: SourceMod Development Roundup (1.7.2 - 03/11/15)
 
It does, however, mean that we can now safely use the MaxClients variable within OnPluginStart().

Potato Uno 11-05-2015 05:40

Re: SourceMod Development Roundup (1.7.2 - 03/11/15)
 
Quote:

Originally Posted by ddhoward (Post 2360083)
It does, however, mean that we can now safely use the MaxClients variable within OnPluginStart().

We always could have used it. It was just 0 at the time, unless you late-load a plugin.

ddhoward 11-05-2015 15:21

Re: SourceMod Development Roundup (1.7.2 - 03/11/15)
 
Quote:

Originally Posted by ddhoward (Post 2360083)
It does, however, mean that we can now safely use the MaxClients variable within OnPluginStart().


Potato Uno 11-05-2015 17:26

Re: SourceMod Development Roundup (1.7.2 - 03/11/15)
 
I still don't know what "safety" means in that context. I used it in OnPluginStart and never was bitten in the ass by it. What did I miss?

Powerlord 11-06-2015 09:24

Re: SourceMod Development Roundup (1.7.2 - 03/11/15)
 
Asherkin merged a fix into 1.8-git5779 this morning that fixes GetMapDisplayName not working properly on CSGO Windows.

Chdata 11-08-2015 13:22

Re: SourceMod Development Roundup (1.7.2 - 03/11/15)
 
Quote:

Originally Posted by Potato Uno (Post 2360271)
I still don't know what "safety" means in that context. I used it in OnPluginStart and never was bitten in the ass by it. What did I miss?

There were rare scenarios where it's uninitialized and you never noticed, maybe it was only uninitialized for the very first plugin that loaded which may have happened not to need it. That's just a guess though. But I've always done things in OnMapStart, since I heard that, and it always fires after OnPluginstart anyway.

Dr. McKay 11-08-2015 14:40

Re: SourceMod Development Roundup (1.7.2 - 03/11/15)
 
Quote:

Originally Posted by Chdata (Post 2361101)
There were rare scenarios where it's uninitialized and you never noticed, maybe it was only uninitialized for the very first plugin that loaded which may have happened not to need it. That's just a guess though. But I've always done things in OnMapStart, since I heard that, and it always fires after OnPluginstart anyway.

I personally used it to loop connected clients to handle late-load situations. If it's not a late-load, then MaxClients was 0, in which case the loop wouldn't run (nor would it need to). In all other situations, MaxClients would be its true value and the loop would run as expected.

KyleS 11-08-2015 17:35

Re: SourceMod Development Roundup (1.7.2 - 03/11/15)
 
Quote:

Originally Posted by Chdata (Post 2361101)
There were rare scenarios where it's uninitialized and you never noticed, maybe it was only uninitialized for the very first plugin that loaded which may have happened not to need it. That's just a guess though. But I've always done things in OnMapStart, since I heard that, and it always fires after OnPluginstart anyway.

It's beyond wrong that it's uninitialized. MaxClients is set to 0 until populated from SM.

ddhoward 11-09-2015 14:22

Re: SourceMod Development Roundup (1.7.2 - 03/11/15)
 
I vaguely recall that the issue that I experienced was trying to use MaxClients+1 as the blocksize in CreateArray(). So I had a blocksize of 1, and tried to shove data into cells that didn't exist.

Potato Uno 11-09-2015 18:00

Re: SourceMod Development Roundup (1.7.2 - 03/11/15)
 
Why would you ever use MaxClients to initialize an array?

You should have been using MAXPLAYERS instead.

asherkin 11-09-2015 18:01

Re: SourceMod Development Roundup (1.7.2 - 03/11/15)
 
Guys...

ddhoward 11-10-2015 04:50

Re: SourceMod Development Roundup (1.7.2 - 03/11/15)
 
Quote:

Originally Posted by Potato Uno (Post 2361553)
You should have been using MAXPLAYERS instead.

Because each index in the array only needs to have as many cells as there are player slots, +1. There is no purpose in making it larger. MAXPLAYERS = 65, whereas MaxClients is the number of slots on the server.

Getting back on topic, will the major version numbers ( 1.7 and 1.8 ) be going away as well? I'm a little confused on how this works.

asherkin 11-10-2015 04:57

Re: SourceMod Development Roundup (1.7.2 - 03/11/15)
 
Quote:

Originally Posted by ddhoward (Post 2361675)
Getting back on topic, will the major version numbers ( 1.7 and 1.8 ) be going away as well? I'm a little confused on how this works.

One day, but probably not in the near future, we'll still be flip-flopping the major versions like we always have (i.e. at some point 1.8 will be closed for major changes, 1.9 will start, then after 1.8 is stabilized, 1.7 will stop getting updates and 1.8 will be the new stable. It's possible that when that happens 1.8's branch will be called something like stable rather than 1.8-dev and then that'll effectively be it (we'll have stable and master).
The actual version numbers will probably not go away (although might be folded into a different pattern or de-emphasized) as we want to keep a way of notifying on required (security) updates.

Potato Uno 01-06-2016 15:20

Re: SourceMod 1.7 Development Roundup (1.7.2 - 03/11/15)
 
Quote:

Originally Posted by asherkin (Post 2359640)
If there is anything in 1.8 that you want to see in 1.7 (especially bug fixes, which should all be in 1.7 but often get forgotten) just holla.

Can we see client command keyvalues backported to 1.7 or do I have to use 1.8?

If so, is 1.8 stable enough to be used in a production environment?

Thanks!

psychonic 01-07-2016 17:22

Re: SourceMod 1.7 Development Roundup (1.7.2 - 03/11/15)
 
Quote:

Originally Posted by Potato Uno (Post 2380680)
Can we see client command keyvalues backported to 1.7 or do I have to use 1.8?

Yes, it's in the stable branch as of Right Now.

Quote:

Originally Posted by Potato Uno (Post 2380680)
is 1.8 stable enough to be used in a production environment?

At the moment, probably!

Potato Uno 01-09-2016 16:30

Re: SourceMod 1.7 Development Roundup (1.7.2 - 03/11/15)
 
Quote:

Originally Posted by psychonic (Post 2381045)
Yes, it's in the stable branch as of Right Now.

At the moment, probably!

<3

NIK12184 05-09-2016 20:22

Re: SourceMod Development Roundup (1.7.2 - 2015/11/03)
 
When I use this Version of SourceMod as soon as someone enters the server the server crashes. When I look in the logs for any error this is what comes up.


L 05/08/2016 - 21:04:34: SourceMod error session started
L 05/08/2016 - 21:04:34: Info (map "") (file "errors_20160508.log")
L 05/08/2016 - 21:04:34: Failed lookup of gEntList - Reverting to networkable entities only
L 05/08/2016 - 21:04:35: Error log file session closed.
L 05/08/2016 - 21:04:35: SourceMod error session started
L 05/08/2016 - 21:04:35: Info (map "kw2mp_106_kandahar") (file "errors_20160508.log")
L 05/08/2016 - 21:04:35: [SDKTOOLS] Could not locate FireOutput - Disabling detour
L 05/08/2016 - 21:04:35: [SDKTOOLS] Failed to find PlayerRunCmd offset - OnPlayerRunCmd forward disabled.
L 05/08/2016 - 21:05:01: Error log file session closed.

psychonic 05-09-2016 20:58

Re: SourceMod Development Roundup (1.7.2 - 2015/11/03)
 
Quote:

Originally Posted by NIK12184 (Post 2417983)
When I use this Version of SourceMod as soon as someone enters the server the server crashes. When I look in the logs for any error this is what comes up.


L 05/08/2016 - 21:04:34: SourceMod error session started
L 05/08/2016 - 21:04:34: Info (map "") (file "errors_20160508.log")
L 05/08/2016 - 21:04:34: Failed lookup of gEntList - Reverting to networkable entities only
L 05/08/2016 - 21:04:35: Error log file session closed.
L 05/08/2016 - 21:04:35: SourceMod error session started
L 05/08/2016 - 21:04:35: Info (map "kw2mp_106_kandahar") (file "errors_20160508.log")
L 05/08/2016 - 21:04:35: [SDKTOOLS] Could not locate FireOutput - Disabling detour
L 05/08/2016 - 21:04:35: [SDKTOOLS] Failed to find PlayerRunCmd offset - OnPlayerRunCmd forward disabled.
L 05/08/2016 - 21:05:01: Error log file session closed.

SourceMod doesn't support Kuma War at this time. It's on a slightly different engine version than any supported.

NIK12184 05-09-2016 21:24

Re: SourceMod Development Roundup (1.7.2 - 2015/11/03)
 
Quote:

Originally Posted by psychonic (Post 2417984)
SourceMod doesn't support Kuma War at this time. It's on a slightly different engine version than any supported.

Ok, thanks for getting back to me on that. Will the new SourceMod ever be compatible with Kuma War or is the engine version too old for that to happen?

psychonic 05-10-2016 07:55

Re: SourceMod Development Roundup (1.7.2 - 2015/11/03)
 
Quote:

Originally Posted by NIK12184 (Post 2417987)
Ok, thanks for getting back to me on that. Will the new SourceMod ever be compatible with Kuma War or is the engine version too old for that to happen?

I have no idea. I don't personally have to time to look into it anytime soon. I can't say that no one will.

Potato Uno 05-13-2016 23:25

Re: SourceMod Development Roundup (1.7.2 - 2015/11/03)
 
Can we see GetMapDisplayName or whatever native Powerlord made for getting a workshop map's full display name backported to 1.7?

I have to manually butcher up the return value of GetCurrentMap with a split on the / and . in order to get it, which isn't exactly an elegant solution. Thanks!


All times are GMT -4. The time now is 03:22.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.