Difference between revisions of "SourceMod 1.4.0 Release Notes"

From AlliedModders Wiki
Jump to: navigation, search
(Developer Changes)
(Compatibility Issues)
 
(14 intermediate revisions by 2 users not shown)
Line 1: Line 1:
''This page is a work-in-progress as SourceMod 1.4.0 is not yet released.''
 
 
__FORCETOC__
 
__FORCETOC__
 
SourceMod 1.4. is a major update with many new features and bug fixes.
 
SourceMod 1.4. is a major update with many new features and bug fixes.
Line 14: Line 13:
 
=Overview for Developers=
 
=Overview for Developers=
  
*REMOVEYou can now interact with [[Entity References (SourceMod)|non-networked entities]].
+
A full list of API additions and changes is available.
 +
*Many new functions added
 +
*Some existing functions made more useful
 +
*Plugin compiling should be noticeably faster now with larger plugins
 +
*Too much to name here. For overview of all sp API changes and additions, please see [[SourceMod_1.4.0_API_Changes]]
 +
 
 +
=Compatibility Issues=
 +
 
 +
In almost all cases, SourceMod 1.4.0 is fully backward compatible with the 1.3.x releases. The following are the few places where this is not the case.
 +
 
 +
 
 +
'''ExplodeString behavior has changed'''
 +
 
 +
Return value has been fixed and handling has changed when there are delimiters at the end of the source string.
 +
 
 +
For more information, see [[SourceMod_1.4.0_API_Changes#String]]
 +
 
 +
Known plugins affected:
 +
*''(none known)''
  
  
=Compatibility Issues=
+
'''forceEdict parameter in CreateEntityByName is now ignored on ep2 and later''':
  
'''TODO Compat issue 1''':
+
For more information, see [[SourceMod_1.4.0_API_Changes#Functions]]
  
Some text.
 
 
Known plugins affected:
 
Known plugins affected:
*hi
+
*''(none known)''
*hihi
 
  
  
In future versions of SourceMod, TODO.
+
'''TF2_OnGetHoliday deprecated, TF2_OnIsHolidayActive added'''
  
 +
<tt>TF2_OnGetHoliday</tt> will no longer fire due to changes in TF2 and has been deprecated. <tt>TF2_OnIsHolidayActive</tt> can now be used instead to provide similar functionality.
 +
 +
For more information, see [[SourceMod_1.4.0_API_Changes#TF2_2]]
 +
 +
Known plugins affected:
 +
*[https://forums.alliedmods.net/showthread.php?t=130942 TF2 Holidays]
 +
*[https://forums.alliedmods.net/showthread.php?t=165587 TF2 Force Halloween]
  
 
=Translations=
 
=Translations=
Line 66: Line 88:
 
*Added gamedata for International Online Soccer: Source ({{bz|5019}}).
 
*Added gamedata for International Online Soccer: Source ({{bz|5019}}).
 
*Added gamedata for Half-Life 2 Capture the Flag ({{bz|5114}}).
 
*Added gamedata for Half-Life 2 Capture the Flag ({{bz|5114}}).
*Updated mapchooser and other base plugins with Nuclear Dawn -specific fixes ({{bz|5117}}).
+
*Updated mapchooser and other base plugins with Nuclear Dawn specific fixes ({{bz|5117}}).
 
*Fixed ServerLang value not being read properly on startup ({{bz|4675}}).
 
*Fixed ServerLang value not being read properly on startup ({{bz|4675}}).
 
*Added support for aliases in languages.cfg ({{bz|4858}}).
 
*Added support for aliases in languages.cfg ({{bz|4858}}).
*Added output display to sm_rcon command ({{bz|5018}}).
+
*Added output display to <tt>sm_rcon</tt> command ({{bz|5018}}).
 
*Flood protection bypass access can now be overridden with command name <tt>sm_flood_access</tt> ({{bz|4584}}).
 
*Flood protection bypass access can now be overridden with command name <tt>sm_flood_access</tt> ({{bz|4584}}).
*Added a reset argument to 'sm cvars' command to revset cvar values to default ({{bz|5043}}).
+
*Added a reset argument to <tt>sm cvars</tt> command to revset cvar values to default ({{bz|5043}}).
*Fixed incorrect language identifiers for Chinese (both Trad. and Simplified) and Brazilian Portuguese not matching cl_language values ({{bz|5067}}).
+
*Fixed incorrect language identifiers for Chinese (both Trad. and Simplified) and Brazilian Portuguese not matching <tt>cl_language</tt> values ({{bz|5067}}).
 
*Added translation support for Bulgarian (bg).
 
*Added translation support for Bulgarian (bg).
*Fixed incorrect number of slots being hidden for reserve with sm_hideslots on ep2v with SourceTV or replay ({{bz|5094}}).
+
*Fixed incorrect number of slots being hidden for reserve with <tt>sm_hideslots</tt> on Source 2009 with SourceTV or replay ({{bz|5094}}).
 
*<tt>sm_hideslots</tt> changes now take effect immediately instead of waiting until a client joins or leaves ({{bz|5094}}).
 
*<tt>sm_hideslots</tt> changes now take effect immediately instead of waiting until a client joins or leaves ({{bz|5094}}).
*Fixed sv_visiblemaxplayers getting stuck at previous max clients in some cases with reserves and SourceTV or replay ({{bz|5094}}).
+
*Fixed <tt>sv_visiblemaxplayers</tt> getting stuck at previous max clients in some cases with reserves and SourceTV or replay ({{bz|5094}}).
 
*Removed error logging if an optional extension is not found ({{bz|5112}}).
 
*Removed error logging if an optional extension is not found ({{bz|5112}}).
 
*Fixed bots with semicolon in name being unkickable ({{bz|5120}}).
 
*Fixed bots with semicolon in name being unkickable ({{bz|5120}}).
 
*Changed strings in ice-related funcommands to be translatable ({{bz|4540}}).
 
*Changed strings in ice-related funcommands to be translatable ({{bz|4540}}).
*Changed Bintools extension no use a single build for every engine ({{bz|4548}}).
+
*Changed Bintools extension to use a single build for every engine ({{bz|4548}}).
 
 
  
 
===Developer Changes===
 
===Developer Changes===
Line 87: Line 108:
 
*Provided native interface for basecomm ({{bz|2594}}).
 
*Provided native interface for basecomm ({{bz|2594}}).
 
*Client language detection is too late. ({{bz|3714}}) ([https://forums.alliedmods.net/member.php?u=6136 Tony A. "GoD-Tony"]).
 
*Client language detection is too late. ({{bz|3714}}) ([https://forums.alliedmods.net/member.php?u=6136 Tony A. "GoD-Tony"]).
*Added ServerCommandEx native to execute server command and retrieve output ({{bz|3873}}).
+
*Added <tt>ServerCommandEx</tt> native to execute server command and retrieve output ({{bz|3873}}).
 
*Added ability to update clientprefs cookies values on clients not currently connected ({{bz|3882}}) ([https://forums.alliedmods.net/member.php?u=54648 databomb]).
 
*Added ability to update clientprefs cookies values on clients not currently connected ({{bz|3882}}) ([https://forums.alliedmods.net/member.php?u=54648 databomb]).
 
*Added library "matchmaking_ds" support to gamedata lookups ({{bz|4158}}).
 
*Added library "matchmaking_ds" support to gamedata lookups ({{bz|4158}}).
 
*Rooted menu handles to callbacks ({{bz|4353}}).
 
*Rooted menu handles to callbacks ({{bz|4353}}).
*Fixed corner cases with ExplodeString ({{bz|4629}}). ([https://forums.alliedmods.net/member.php?u=46596 Michael "LumiStance"]).
+
*Fixed corner cases with <tt>ExplodeString</tt> ({{bz|4629}}). ([https://forums.alliedmods.net/member.php?u=46596 Michael "LumiStance"]).
 
*Fixed return omission with else-after-return ({{bz|4852}}).
 
*Fixed return omission with else-after-return ({{bz|4852}}).
*Added OnConditionAdded and OnConditionRemoved forwards to TF2 extension ({{bz|4851}}).
+
*Added <tt>OnConditionAdded</tt> and <tt>OnConditionRemoved</tt> forwards to TF2 extension ({{bz|4851}}).
 
*Added new natives and forward to the cstrike extension ({{bz|4732}}, {{bz|4985}}) ([https://forums.alliedmods.net/member.php?u=26021 Dr!fter]).
 
*Added new natives and forward to the cstrike extension ({{bz|4732}}, {{bz|4985}}) ([https://forums.alliedmods.net/member.php?u=26021 Dr!fter]).
 
*Added WaitingForPlayers forwards to the TF2 extension ({{bz|4704}}) ([https://forums.alliedmods.net/member.php?u=31784 CrimsonGT]).
 
*Added WaitingForPlayers forwards to the TF2 extension ({{bz|4704}}) ([https://forums.alliedmods.net/member.php?u=31784 CrimsonGT]).
 
*Updated and added more TF2 condition, weapon, and damagecustom defines (multiple bug#s).
 
*Updated and added more TF2 condition, weapon, and damagecustom defines (multiple bug#s).
*Fixed TF2_RemoveCondition not always removing conditions ({{bz|4981}}).
+
*Fixed <tt>TF2_RemoveCondition</tt> not always removing conditions ({{bz|4981}}).
*Fixed maxClients not being updated correctly in some places with SourceTV or replay active ({{bz|4986}}).
+
*Fixed <tt>MaxClients</tt> not being updated correctly in some places with SourceTV or replay active ({{bz|4986}}).
 
*Fixed some vars not being marked for init on first compile pass ({{bz|4643}}).
 
*Fixed some vars not being marked for init on first compile pass ({{bz|4643}}).
 
*Increased symbol name limit to 63 characters ({{bz|4564}}) ([https://forums.alliedmods.net/member.php?u=53673 javalia]).
 
*Increased symbol name limit to 63 characters ({{bz|4564}}) ([https://forums.alliedmods.net/member.php?u=53673 javalia]).
Line 106: Line 127:
 
*Added error on declaring arrays that the compiler is too buggy to handle ({{bz|4977}}).
 
*Added error on declaring arrays that the compiler is too buggy to handle ({{bz|4977}}).
 
*Removed reliance on gamedata for multiple SDKTools functions in ep2 and later ({{bz|4899}}).
 
*Removed reliance on gamedata for multiple SDKTools functions in ep2 and later ({{bz|4899}}).
*Added InvalidateClient and ReconnectClient natives to SDKTools ({{bz|4931}}) ([https://forums.alliedmods.net/member.php?u=59521 Brian "Afronanny" Simon]).
+
*Added <tt>InvalidateClient</tt> and <tt>ReconnectClient</tt> natives to SDKTools ({{bz|4931}}) ([https://forums.alliedmods.net/member.php?u=59521 Brian "Afronanny" Simon]).
 
*Added ability to lookup and set values on the gamerules class ({{bz|4983}}.
 
*Added ability to lookup and set values on the gamerules class ({{bz|4983}}.
*BaseComm now uses AddCommandListener for chat hooks ({{bz|4991}}).
+
*BaseComm now uses <tt>AddCommandListener</tt> for chat hooks ({{bz|4991}}).
 
*Fixed shutdown bug in SDKTools ({{bz|5063}}).
 
*Fixed shutdown bug in SDKTools ({{bz|5063}}).
 
*Fixed MM-enabled extensions continuing to load after failing MM attach ({{bz|5042}}).
 
*Fixed MM-enabled extensions continuing to load after failing MM attach ({{bz|5042}}).
*Added GetDistGainFromSoundLevel native to SDKTools ({{bz|5066}}) ([https://forums.alliedmods.net/member.php?u=53673 javalia]).
+
*Added <tt>GetDistGainFromSoundLevel</tt> native to SDKTools ({{bz|5066}}) ([https://forums.alliedmods.net/member.php?u=53673 javalia]).
*Added CheckAccess native to check an AdminId's command access ({{bz|5083}}).
+
*Added <tt>CheckAccess</tt> native to check an AdminId's command access ({{bz|5083}}).
*Fixed GetEntProp not sign-extending unsigned values less than 32 bits ({{bz|5105}}).
+
*Fixed <tt>GetEntProp</tt> not sign-extending unsigned values less than 32 bits ({{bz|5105}}).
*Fixed crashing when calling CreateEntityByName or CreateFakeClient when no map is running (now errors) ({{bz|5119}}).
+
*Fixed crashing when calling <tt>CreateEntityByName</tt> or <tt>CreateFakeClient</tt> when no map is running (now errors) ({{bz|5119}}).
 
*Fixed erring in kick function (e. bad translation) causing client to become unkickable until disconnect ({{bz|5120}}).
 
*Fixed erring in kick function (e. bad translation) causing client to become unkickable until disconnect ({{bz|5120}}).
*Fixed KickClientEx not immediately kicking client if client was in kick queue ({{bz|5120}}).
+
*Fixed <tt>KickClientEx</tt> not immediately kicking client if client was in kick queue ({{bz|5120}}).
*Added IsClientSourceTV and IsClientReplay natives ({{bz|5124}}).
+
*Added <tt>IsClientSourceTV</tt> and <tt>IsClientReplay</tt> natives ({{bz|5124}}).
 
*Added support for getting and setting individual array elements with Get/Set EntProp functions ({{bz|4160}}).
 
*Added support for getting and setting individual array elements with Get/Set EntProp functions ({{bz|4160}}).
*Added support for threaded query handles to SQL_GetInsertId and SQL_GetAffectedRows ({{bz|4699}}) ([https://forums.alliedmods.net/member.php?u=36223 Nephyrin]).
+
*Added support for threaded query handles to <tt>SQL_GetInsertId</tt> and <tt>SQL_GetAffectedRows</tt> ({{bz|4699}}) ([https://forums.alliedmods.net/member.php?u=36223 Nephyrin]).
*Added a GetGameRules function to ISDKTools for extensions to easily get the GameRules class pointer ({{bz|4707}}).
+
*Added a <tt>GetGameRules</tt> function to <tt>ISDKTools</tt> for extensions to easily get the GameRules class pointer ({{bz|4707}}).
*Added GetMessageName to IUserMessages ({{bz|4573}}) ([http://forums.alliedmods.net/member.php?u=28227 Zach "theY4Kman" Kanzler])
+
*Added <tt>GetMessageName</tt> to <tt>IUserMessages</tt> ({{bz|4573}}) ([http://forums.alliedmods.net/member.php?u=28227 Zach "theY4Kman" Kanzler])
*Added HintTextMsg to IGameHelpers ({{bz|4950}}).
+
*Added <tt>HintTextMsg</tt> to <tt>IGameHelpers</tt> ({{bz|4950}}).
 
*Added ProcessTargetString simple filter API ({{bz|4404}}).
 
*Added ProcessTargetString simple filter API ({{bz|4404}}).
 
*Moved much functionality from core bins to logic bin ({{bz|4406}}, {{bz|4402}}).
 
*Moved much functionality from core bins to logic bin ({{bz|4406}}, {{bz|4402}}).
Line 130: Line 151:
 
*Enhanced nominations API ({{bz|4677}}) ([https://forums.alliedmods.net/member.php?u=31784 CrimsonGT]).
 
*Enhanced nominations API ({{bz|4677}}) ([https://forums.alliedmods.net/member.php?u=31784 CrimsonGT]).
 
*Added Linux support for profiling natives ({{bz|4927}}).
 
*Added Linux support for profiling natives ({{bz|4927}}).
*Added a new ValveCallType that allows for arbitrary |this| parameters, as well as associated features in gamedata and for reading/writing memory ({{bz|3520}}) ([https://forums.alliedmods.net/member.php?u=195 Downtown1]).
+
*Added a new <tt>ValveCallType</tt> that allows for arbitrary |this| parameters, as well as associated features in gamedata and for reading/writing memory ({{bz|3520}}) ([https://forums.alliedmods.net/member.php?u=195 Downtown1]).
 +
*Updated TF2 extension to handle Valve's changes to the "holiday" system ({{bz|5150}}).

Latest revision as of 00:17, 29 October 2011

SourceMod 1.4. is a major update with many new features and bug fixes.

Overview for Admins

  • New Game Support - SourceMod now runs on Bloody Good Time and E.Y.E. Divine Cybermancy and and added support for Nuclear Dawn.
  • Added support for the third-party mods International Online Soccer: Source and Half-Life 2 Capture the Flag.
  • Support for Mac OS X. (both listen servers and srcds_osx).
  • Updated gamedata for many games and mods.
  • Reserved slot hiding recently broken from updates in Source 2009 games with SourceTV and/or replay active has been fixed.
  • Lots of stability fixes.

Overview for Developers

A full list of API additions and changes is available.

  • Many new functions added
  • Some existing functions made more useful
  • Plugin compiling should be noticeably faster now with larger plugins
  • Too much to name here. For overview of all sp API changes and additions, please see SourceMod_1.4.0_API_Changes

Compatibility Issues

In almost all cases, SourceMod 1.4.0 is fully backward compatible with the 1.3.x releases. The following are the few places where this is not the case.


ExplodeString behavior has changed

Return value has been fixed and handling has changed when there are delimiters at the end of the source string.

For more information, see SourceMod_1.4.0_API_Changes#String

Known plugins affected:

  • (none known)


forceEdict parameter in CreateEntityByName is now ignored on ep2 and later:

For more information, see SourceMod_1.4.0_API_Changes#Functions

Known plugins affected:

  • (none known)


TF2_OnGetHoliday deprecated, TF2_OnIsHolidayActive added

TF2_OnGetHoliday will no longer fire due to changes in TF2 and has been deprecated. TF2_OnIsHolidayActive can now be used instead to provide similar functionality.

For more information, see SourceMod_1.4.0_API_Changes#TF2_2

Known plugins affected:

Translations

SourceMod 1.4 comes with the following languages translated, thanks to community translators:

  • Brazilian Portuguese
  • Chinese Simplified
  • Chinese Traditional
  • Czech
  • Danish
  • Dutch
  • Finnish
  • French
  • German
  • Hungarian
  • Italian
  • Japanese
  • Korean
  • Latvian
  • Lithuanian
  • Norwegian
  • Polish
  • Russian
  • Slovak
  • Spanish
  • Swedish
  • Turkish


Changelog

User Changes

  • Added support for Max OS X (bug 4392).
  • Added support for Bloody Good Time (bug 4780).
  • Added support for E.Y.E Divine Cybermancy (bug 5035).
  • Added gamedata for Nuclear Dawn.
  • Added gamedata for International Online Soccer: Source (bug 5019).
  • Added gamedata for Half-Life 2 Capture the Flag (bug 5114).
  • Updated mapchooser and other base plugins with Nuclear Dawn specific fixes (bug 5117).
  • Fixed ServerLang value not being read properly on startup (bug 4675).
  • Added support for aliases in languages.cfg (bug 4858).
  • Added output display to sm_rcon command (bug 5018).
  • Flood protection bypass access can now be overridden with command name sm_flood_access (bug 4584).
  • Added a reset argument to sm cvars command to revset cvar values to default (bug 5043).
  • Fixed incorrect language identifiers for Chinese (both Trad. and Simplified) and Brazilian Portuguese not matching cl_language values (bug 5067).
  • Added translation support for Bulgarian (bg).
  • Fixed incorrect number of slots being hidden for reserve with sm_hideslots on Source 2009 with SourceTV or replay (bug 5094).
  • sm_hideslots changes now take effect immediately instead of waiting until a client joins or leaves (bug 5094).
  • Fixed sv_visiblemaxplayers getting stuck at previous max clients in some cases with reserves and SourceTV or replay (bug 5094).
  • Removed error logging if an optional extension is not found (bug 5112).
  • Fixed bots with semicolon in name being unkickable (bug 5120).
  • Changed strings in ice-related funcommands to be translatable (bug 4540).
  • Changed Bintools extension to use a single build for every engine (bug 4548).

Developer Changes

  • Provided native interface for basecomm (bug 2594).
  • Client language detection is too late. (bug 3714) (Tony A. "GoD-Tony").
  • Added ServerCommandEx native to execute server command and retrieve output (bug 3873).
  • Added ability to update clientprefs cookies values on clients not currently connected (bug 3882) (databomb).
  • Added library "matchmaking_ds" support to gamedata lookups (bug 4158).
  • Rooted menu handles to callbacks (bug 4353).
  • Fixed corner cases with ExplodeString (bug 4629). (Michael "LumiStance").
  • Fixed return omission with else-after-return (bug 4852).
  • Added OnConditionAdded and OnConditionRemoved forwards to TF2 extension (bug 4851).
  • Added new natives and forward to the cstrike extension (bug 4732, bug 4985) (Dr!fter).
  • Added WaitingForPlayers forwards to the TF2 extension (bug 4704) (CrimsonGT).
  • Updated and added more TF2 condition, weapon, and damagecustom defines (multiple bug#s).
  • Fixed TF2_RemoveCondition not always removing conditions (bug 4981).
  • Fixed MaxClients not being updated correctly in some places with SourceTV or replay active (bug 4986).
  • Fixed some vars not being marked for init on first compile pass (bug 4643).
  • Increased symbol name limit to 63 characters (bug 4564) (javalia).
  • Fixed crash when dynamic arrays run out of memory (bug 4632).
  • Fixed a crash that could happen from looking up out-of-bounds edict or entity indexes (bug 5080).
  • Fixed client serials not getting cleared on disconnect (bug 5121).
  • Added error on declaring arrays that the compiler is too buggy to handle (bug 4977).
  • Removed reliance on gamedata for multiple SDKTools functions in ep2 and later (bug 4899).
  • Added InvalidateClient and ReconnectClient natives to SDKTools (bug 4931) (Brian "Afronanny" Simon).
  • Added ability to lookup and set values on the gamerules class (bug 4983.
  • BaseComm now uses AddCommandListener for chat hooks (bug 4991).
  • Fixed shutdown bug in SDKTools (bug 5063).
  • Fixed MM-enabled extensions continuing to load after failing MM attach (bug 5042).
  • Added GetDistGainFromSoundLevel native to SDKTools (bug 5066) (javalia).
  • Added CheckAccess native to check an AdminId's command access (bug 5083).
  • Fixed GetEntProp not sign-extending unsigned values less than 32 bits (bug 5105).
  • Fixed crashing when calling CreateEntityByName or CreateFakeClient when no map is running (now errors) (bug 5119).
  • Fixed erring in kick function (e. bad translation) causing client to become unkickable until disconnect (bug 5120).
  • Fixed KickClientEx not immediately kicking client if client was in kick queue (bug 5120).
  • Added IsClientSourceTV and IsClientReplay natives (bug 5124).
  • Added support for getting and setting individual array elements with Get/Set EntProp functions (bug 4160).
  • Added support for threaded query handles to SQL_GetInsertId and SQL_GetAffectedRows (bug 4699) (Nephyrin).
  • Added a GetGameRules function to ISDKTools for extensions to easily get the GameRules class pointer (bug 4707).
  • Added GetMessageName to IUserMessages (bug 4573) (Zach "theY4Kman" Kanzler)
  • Added HintTextMsg to IGameHelpers (bug 4950).
  • Added ProcessTargetString simple filter API (bug 4404).
  • Moved much functionality from core bins to logic bin (bug 4406, bug 4402).
  • Fixed bogus asserts in sp compiler (bug 4486, bug 4487).
  • Greatly improved sp compiler performance (~5x overall speedup) (bug 3820, bug 4493, bug 4495).
  • Changed entity output detours to use CDetour (bug 4416).
  • Enhanced nominations API (bug 4677) (CrimsonGT).
  • Added Linux support for profiling natives (bug 4927).
  • Added a new ValveCallType that allows for arbitrary |this| parameters, as well as associated features in gamedata and for reading/writing memory (bug 3520) (Downtown1).
  • Updated TF2 extension to handle Valve's changes to the "holiday" system (bug 5150).