Commit Graph

1227 Commits

Author SHA1 Message Date
Nick Hastings
cbcda61135 Swap _XKEYCHECK_H for _ALLOW_KEYWORD_MACROS, in case it moves to a
different header.
2018-05-21 19:54:12 -04:00
jason-e
2904c87b62 Send ShowActivity messages to TV clients (#813)
`ShowActivity` and related functions are used to inform all clients about the usage of admin commands (such as bans or mutes). These messages are not sent to any fake clients, however they _should_ be sent to SourceTV/GOTV fake clients because messages they receive are actually visible to broadcast viewers and in demos recorded with `tv_record`. 

Player chat messages as well as SM functions like `PrintToChat`/`PrintToChatAll` broadcast to TV clients, but `ShowActivity` does not.
2018-05-09 09:13:49 +01:00
Nick Hastings
cfdedce362 Missed converting a GetFlags instance. 2018-05-06 13:18:04 -04:00
Nick Hastings
467d57059a Out with the old ConVar accessibility hacks, in with the new. 2018-05-06 12:59:33 -04:00
Nick Hastings
95dae67d5b Fix wrong matchmaking_ds bin path being used in some instances. 2018-05-06 10:26:43 -04:00
Nick Hastings
11b23a6d07 Update ConVar hacks for BMS.
This is also to trigger an MM:S build for hl2sdk changes in multiple branches.
2018-05-05 11:01:55 -04:00
Michael Flaherty
5611ec54a2 Migrate extensions to common AMTL string funcs (#785) 2018-03-25 13:00:53 -07:00
Michael Flaherty
956f264b85 Replace ke::SafeSprintf with ke::SafeStrcpy (#784) 2018-03-19 20:12:51 +00:00
Nicholas Hastings
a17b47a2dc Add Protobuf.HasField native. 2018-02-25 10:49:37 -05:00
peace-maker
f9faf9e48c Allow different values per platform in "Keys" gamedata section (#765)
This adds support for platform specific custom key values in the `Keys` section in game config files. Now you can have different values for the same key per platform.

Previously you could only add general key values in gamedata files that were the same on all platforms like
```
"Keys"
{
	"key"	"value"
}
```

This patch allows you to set the value per platform in a subsection like
```
"Keys"
{
	"key"
	{
		"windows"	"value1"
		"linux"	"value2"
		"mac"	"value3"
	}
}
```

Looking up the `key` will return the value matching the host platform.
2018-02-06 14:40:51 +00:00
Michael Flaherty
e57dce76e1 Add support for msvc 1912 (Fixes #761) (#764)
* Add support for msvc 1912

* Default new msvc versions to VS 2017

* Use 2015 lib with 2017
2018-02-04 17:06:22 -05:00
thewavelength
55b8371fa8 Add VS Preview 2017 as valid compiler (msvc-1911) (#678) 2018-01-28 11:39:23 +00:00
Nicholas Hastings
9374620b8b
Add RemoveEntity native. (bug 5714) (#745) 2018-01-07 13:52:36 -05:00
Ruben Gonzalez
5a35760215
Merge pull request #744 from alliedmodders/show-required-exts
Address issue #737
2017-12-31 11:06:35 -05:00
Ruben Gonzalez
40356fc9db Address issue #737 2017-12-30 14:08:56 -05:00
Kyle Sanderson
de108cca44
Simplify Logger internals (Fixes Issue #663). (#691)
* Simplify Logger internals (Issue #663).

* Avoid reformatting strings on every call.
2017-12-29 19:56:25 -08:00
Kyle Sanderson
5f5a6b3a16
Migrate CDataPack from a Compact Cassette tape. (#688)
* Migrate CDataPack from a Cassette Tape.

Tested-By: Headline22.

* Remove last IsReadable param pass.

* populate len still if CDataPack::ReadString is unreadable or the wrong type.

* Fyren Fixes(TM)(R)(C).

* Deprecate IDataPack.
2017-12-29 19:56:02 -08:00
Byte
1706fdfed9 Fix typo and update CSGOBadList (#738)
* Fix typo

* Update CSGOBadList
2017-12-28 18:43:49 -05:00
Scott Ehlert
ce1a4dcac0
64-bit support for CSGO on Linux and macOS (#705) 2017-12-20 01:56:23 -06:00
Nicholas Hastings
4007ec8cf8 Temp fix for load issues on Linux. 2017-12-05 20:44:53 -05:00
Michael Flaherty
830c3f36d3 Block reserved device names on windows (#733) 2017-12-03 11:38:56 +00:00
Ruben Gonzalez
c87afde1bd Add optional extensions not found to sm exts list in a seperate list. 2017-11-30 14:21:19 -05:00
Ruben Gonzalez
51cea0e04e Only show extensions that failed to load if the extension is required. 2017-11-30 12:57:12 -05:00
Michael Flaherty
d685f30847 Add Translation Natives (#669)
* Add Translation Natives

See #626

* Fix vocab errors
* Better description
* Bump ITranslator Version
* Implement KyleS' Review Requests
* Improve documentation
2017-11-20 21:24:01 -08:00
Michael Flaherty
43cdf20fd3 Add FrameIterator to SourceMod (#716).
* Create FrameIterator type
This commit adds the FrameIterator type to core sm along with a few
methods around getting the information for each frame.

* Fix incorrect documentation
[skip ci]
* Implement KyleS's Changes
* A nit
2017-11-16 18:55:37 -08:00
Nicholas Hastings
95afe72307
Separate out DOI build. (#718) 2017-11-03 15:45:16 -04:00
Asher Baker
f156d48f45
Include missing ctype header for macOS build 2017-10-28 12:51:55 +01:00
Michael Flaherty
404e96ad45 Add KeyValues.ExportToString (#706) 2017-10-28 12:47:00 +01:00
Michael Flaherty
90ddc16a4b Lowercase windows/mac paths to avoid plugin duplicate loadings (Bug 6491) (#709) 2017-10-28 12:44:25 +01:00
FlaminSarge
c3b25e54f8 Add convenience logic for "offset" to Address definitions in GameConf (#580)
Allows for the last "read" offset for an Address to instead be "offset", which doesn't deref the addr pointer after applying the offset
Shortens the necessary coding to get a particular Address inside a function (old: store offset in a separate GameConf Offsets entry, apply the offset to the Address in SP)
2017-10-28 12:11:32 +01:00
Asher Baker
4bab834716
Merge pull request #672 from peace-maker/null_natives_fixed
Add natives to check for NULL_VECTOR and NULL_STRING
2017-10-27 20:03:09 +01:00
Michael Flaherty
4f54df65e9 Switch C header & Fix warnings (#702) 2017-10-15 10:32:01 +01:00
Scott Ehlert
bbdecceb4b Switch to AMBuild 2.1 API. (#694) 2017-10-02 07:18:57 -05:00
peace-maker
7e898ee530 Fix core config values not being cached (#673)
Valid core config options aren't cached to be retrieved using `GetCoreConfigValue` after they've been loaded from core.cfg or set through the `sm config` root console menu.

E.g. `sm config ServerLang` would return `[SM] No such config option "ServerLang" exists.` all the time.

Stop notifying other listeners if the config key was consumed, but don't skip adding it to the cache.

Also fix `FollowCSGOServerGuidelines` always showing as unhandled command when being changed through `sm config FollowCSGOServerGuidelines yes`.
2017-09-23 17:24:39 -07:00
Asher Baker
4e996a116d Allow seeking to end of datapack (#687) 2017-09-19 23:27:35 +01:00
Peace-Maker
7eef3948b1 Don't break backwards compatibility with unmanaged forwards
Instead of adding new functions to `IForward`, we just allow NULL to be passed to `PushArray` and `PushString`.
2017-08-25 23:23:50 +02:00
Peace-Maker
e609a33e6d Cleanup CForward::Execute using a helper function
Flatten out the nesting a bit.
2017-08-25 23:23:37 +02:00
Peace-Maker
41a9889cdd Add Call_PushNullVector and Call_PushNullString
Be able to push NULL_[VECTOR|STRING] to a forward or direct function call.
The callee can check the parameter using the IsNullVector/IsNullString natives.
2017-08-25 23:23:24 +02:00
Peace-Maker
3de269946c Add IsNativeParamNullVector and IsNativeParamNullString natives
Lets plugins check if some other plugin passed NULL_VECTOR or
NULL_STRING to a native in the native callback.
2017-08-25 23:23:07 +02:00
Peace-Maker
9fa4ed8bac Add IsNullVector and IsNullString natives
Let plugins check if a string or vector passed to a function is their
NULL_VECTOR or NULL_STRING.
2017-08-25 23:22:39 +02:00
Michael
9af507a322 Remove replicated flag from sourcemod_version (#667) 2017-08-22 20:53:25 +01:00
Asher Baker
11aab699a5 Revert "Add natives to check for NULL_VECTOR and NULL_STRING" 2017-08-04 00:44:47 +01:00
Asher Baker
e4047c3f87 Merge pull request #606 from peace-maker/null_natives
Add natives to check for NULL_VECTOR and NULL_STRING
2017-07-25 19:19:26 +01:00
Peace-Maker
60320cd845 Cleanup CForward::Execute using a helper function
Flatten out the nesting a bit.
2017-07-22 23:08:31 +02:00
Nicholas Hastings
fd87cb6b23 Clear cached IClient ptr on disconnect (Fixes #637). 2017-07-08 08:25:23 -04:00
Nicholas Hastings
fdac8a1677 Fix KeyValues.SetUInt64 truncating value (#635). 2017-07-06 13:11:01 -04:00
Arthurdead
44c744b8fd Add native to get gpGlobals->frametime (#629) 2017-06-26 11:18:12 +01:00
Nicholas Hastings
7f71f43c2e Another oops-fix for SDK 2013 mods.
Thanks @Ne3tCode
2017-06-24 08:49:36 -04:00
Nicholas Hastings
16d7e39b57 Oops. Fix non-bot IClient lookups for older SDK 2013 mods. 2017-06-23 14:43:39 -04:00
Nicholas Hastings
9a6900a0ba Don't let bots bypass the kick queue. It's not always safe. 2017-06-23 14:43:39 -04:00
Nicholas Hastings
e762c2ee56 Add support for IClient lookups on SDK 2013 mods with new enough engine. 2017-06-23 14:43:39 -04:00
Nicholas Hastings
c31eaa01a3 Cache player IClient pointer on connect. 2017-06-23 14:43:39 -04:00
Nicholas Hastings
338fdb37f6 Switch to C++11 class initializers for CPlayer. 2017-06-23 14:43:39 -04:00
Nicholas Hastings
2acf5f85cd Fix ICommandLine lookup on Linux for Insurgency and Day of Infamy. 2017-05-28 08:29:38 -04:00
Peace-Maker
de42dfc783 Add Call_PushNullVector and Call_PushNullString
Be able to push NULL_[VECTOR|STRING] to a forward or direct function call.
The callee can check the parameter using the IsNullVector/IsNullString natives.
2017-05-04 22:56:31 -06:00
Nicholas Hastings
6a77e04a8e Fix default value always being when calling ParmValue(string,string). 2017-04-22 21:28:44 -04:00
Kyle Sanderson
e987cf6bfc Change CHalfLife2::GetMapDisplayName to always check for string substitutions. (#596) 2017-04-03 20:28:10 -04:00
Nicholas Hastings
1135f9024a Fix error when configuring for csgo SDK build on VS 2017. 2017-03-11 09:28:24 -05:00
Nicholas Hastings
9924a28acf Fix AllowClLanguageVar setting being ignored in CS:GO. 2017-03-05 17:08:25 -05:00
Ross Bemrose
8ad5862461 Make CS:GO recognize both / and \ for GetMapDisplayName (#592) 2017-03-04 08:59:25 -05:00
Peace-Maker
b67da15b5b Add IsNativeParamNullVector and IsNativeParamNullString natives
Lets plugins check if some other plugin passed NULL_VECTOR or
NULL_STRING to a native in the native callback.
2017-03-03 11:47:03 -07:00
Peace-Maker
c1888c2d05 Add IsNullVector and IsNullString natives
Let plugins check if a string or vector passed to a function is their
NULL_VECTOR or NULL_STRING.
2017-03-03 11:45:39 -07:00
peace-maker
86363dd3ec Add ADT array blocksize getter (#578)
Add GetArrayBlockSize and GetStackBlockSize and equivalent properties to
the methodmaps to get the blocksize the array or stack was created with.

Useful when getting array handles from other plugins you didn't create
yourself.
2017-02-09 19:26:14 +00:00
peace-maker
0743b757f6 Fix regression with GetEntPropEnt always returning -1 (#584)
Regression in #583

The `CBaseHandle *` was compared to a `IHandleEntity **` always failing
instead of comparing the actual base handles.

Fixes a small typo in MatchTypeDescAsInteger too, where a FIELD_CUSTOM
could fall through badly.
2017-02-09 07:43:15 -05:00
Nicholas Hastings
af9852a68f Add support for getting and setting output variables with Get/SetEntProp*. 2017-02-07 07:52:00 -05:00
Nicholas Hastings
113a4a55c6 Fix incorrect bit size given for vectors with FindDataMapInfo. 2017-02-07 07:52:00 -05:00
peace-maker
9e27a867dd Fix typo in menu manager drawing no spacer (#581)
The "Back" slot was hidden even if the page had a "Next" button. Draw
the spacer correctly!
2017-02-04 08:16:27 -05:00
peace-maker
ea8fdd8fbb Fix crash when a database transaction fails (bug 6531) (#577)
If one of the queries fails in a transaction, the DBI system would only allocate an array of the size of the amount of all the successful queries before the failed one. It writes data for all the queries though effectively writing past the array bounds leading to heap corruption.

Create the right sized array!
2017-01-22 22:27:31 -08:00
Nicholas Hastings
ad3588d0aa Use newer MM:S api for Ep1/Original engine. (#548)
* Use newer MM:S api for Ep1/Original engine.

* Remove doubled FILENAME_1_6_EP1 define.
2017-01-11 21:25:00 -05:00
Nicholas Hastings
d9312799c3 Allow direct event FireToClient if broadcast disabled.
Event.FireToClient should not care whether or not broadcasting
is enabled for the event since we're already intentionally not
broadcasting.
2017-01-03 20:31:40 -05:00
Nicholas Hastings
cb39030cce Don't check handle ownership on Event.FireToClient
The handle does not get mutated here, so it is safe. Since we
don't currently support cloning event handles or copying events,
this also facilitates the only easy way of firing an existing game-
created event to a client.
2017-01-03 20:31:40 -05:00
Max Maton
0b7d99f03d Send the complete TextMsg usermsg (#571)
The source 2013 handler for TextMsg expects five strings in the message here: https://github.com/ValveSoftware/source-sdk-2013/blob/master/mp/src/game/client/hud_chat.cpp#L124

Because sourcemod doesn't send the last four strings along each message sent from sourcemod triggers an assert if the game is not built with RELEASE.
2016-12-25 17:33:18 -08:00
Nicholas Hastings
ee501058fb Fix Panel.Style getter not being bound. 2016-12-12 08:52:26 -05:00
peace-maker
b74573fa12 Fix crash in CloneArray for too large arrays (#566)
If there is not enough memory to clone an array, throw an error instead
of crashing the server.
2016-12-11 20:55:11 -08:00
peace-maker
d3d16a93cf Fix threaded query's result handle access rights (#567)
Plugins were able to close the results handle in the threaded query
callback causing a double free crash. The access rights are setup right
before the handle is created, but weren't used.
2016-12-11 16:35:53 -08:00
Peace-Maker
4a8068d1c4 Suppress logging of "Plugin not runnable" errors
SourceMod itself and thirdparty extensions call functions in plugins
without making sure it is runnable. The plugin pausing feature isn't
supported anymore and is set to get nuked #438 which will reduce the
amount of not-runnable error reports.

We can't fix every third party extension, so suppressing the error from
the logs will stop the spam until pausing is removed.

#489 can be reverted after this.
2016-10-26 23:48:56 -06:00
Kyle Sanderson
371e9f2f93 Check multiple engine sources for updated AuthIDs. (#552)
* Check multiple engine sources for updated AuthIDs.
* References are not defined.
2016-10-14 12:44:00 -07:00
Kyle Sanderson
20b7592fcd GetPlayerNetworkIDString isn't alone anymore, we have friends. (#551)
* GetPlayerNetworkIDString isn't alone anymore, we have friends.

Completely speculative CS:GO fix, 50/50, 60/40.

* Preserve existing cycle-saving techniques.
* Style.
2016-10-13 22:14:51 -07:00
Nicholas Hastings
d5ff829952 Speculative fix for CS:GO GetClientAuthId issue... 2016-10-13 21:21:58 -04:00
Asher Baker
ec7f1727e5 Allow setting multiple chat trigger characters (PR #449, bug 4341, bug 5668)
Special characters only, minus a couple of potentially-problematic characters.

Technically this is a breaking change - but anyone using multi-char triggers is probably crazy anyway and has been driven off by now.
2016-10-04 16:34:42 +01:00
Asher Baker
215599b90f Merge PR #489: Do not call functions in paused plugins
This should be reverted when pausing is removed, see PR discussion.
2016-10-03 16:51:45 +01:00
Kyle Sanderson
2deaa666f3 Fix erroneous () in DebugReport:: printouts. (#517) 2016-10-03 16:29:51 +01:00
Asher Baker
47dd2870d9 Merge pull request #476 from alliedmodders/query-format
Implement an auto-escaping Format native for SQL query construction
2016-10-03 16:20:01 +01:00
Nicholas Hastings
999f37800c Strip invalid UTF-8 char from end of player names. (#545) 2016-10-02 18:34:27 -04:00
David Anderson
27e812461f Update to the latest SourcePawn and AMTL. 2016-09-24 16:45:04 -07:00
Peace-Maker
ecbedb7b11 Don't expose CellArrays in ISourceMod to extensions
Don't let extensions have access to the internal implementation of cell
arrays.
2016-08-26 15:09:18 -07:00
Peace-Maker
5b9ae5917b Add ICellArray and create/free in ISourceMod
Add an ICellArray interface to expose the adt_array CellArray class from
logic to core.
Add methods to ISourceMod to create and delete ICellArray instances in
logic.
2016-08-21 21:32:23 +02:00
David Anderson
61e958e679 Merge pull request #529 from peace-maker/optional_natives
Keep optional natives optional after reloading
2016-07-26 12:59:32 -07:00
David Anderson
3cccfc15da Update to SourcePawn 1.9 and the latest AMTL. 2016-07-26 01:36:35 -07:00
Peace-Maker
2c8614c639 Keep optional natives optional after reloading
Bug 6518

Starting from no plugins loaded, after the final step of the following,
basetriggers will be marked as errored because mapchooser is missing:

Load basetriggers
Load mapchooser
Unload mapchooser
Load mapchooser
Unload mapchooser

We lose the SP_NTVFLAG_OPTIONAL when removing a WeakNative. The
__pl_mapchooser_SetNTVOptional() is only called in basetriggers when it
is loaded. It adds the OPTIONAL flag to the mapchooser natives the
basetrigger plugin uses.
When mapchooser is loaded, the native is overwritten and the OPTIONAL
flag consumed (WeakNative registered), but not preserved. Later when
mapchooser is unloaded the WeakNative is removed in
CNativeOwner::UnbindWeakRef, but the OPTIONAL flag isn't added again.
The next time mapchooser is loaded, the natives aren't optional anymore
and will cause a real dependency.

The change in ShareSys isn't needed to fix the error, but is included to
keep the SP_NTVFLAG_OPTIONAL flag consistent.
2016-07-21 01:52:47 +02:00
David Anderson
34dedcaab1 Remove half-up rounding. 2016-06-22 12:54:36 -07:00
Nicholas Hastings
f668b3fe6c 🐍🐍🐍🐍🐍🐍🐍🐍🐍🐍🐍🐍 2016-06-11 12:43:04 -04:00
Nicholas Hastings
f12924458f Merge branch 'vs2015' 2016-06-11 12:14:12 -04:00
Nicholas Hastings
0f96a28cca Use VSERVERTOOLS003 in Nuclear Dawn if server has it available. 2016-06-08 12:32:20 -04:00
Fyren
4d8e76202d Merge pull request #518 from alliedmodders/UTIL_ReplaceAll-fix
Fix UTIL_ReplaceAll not properly tracking length (bug 6472)
2016-06-06 16:40:17 -06:00
Fyren
e356758743 Merge pull request #516 from alliedmodders/scheduledpluginreloads
Better plugin reloads.
2016-06-06 16:29:07 -06:00
Fyren
4e654704dc Slightly better handling of plugin reloading. 2016-06-06 22:26:34 +00:00
Fyren
1790033458 Fix UTIL_ReplaceAll not properly tracking length. 2016-06-06 06:29:53 +00:00
Nicholas Hastings
e3d7a047bd Fixed varint sendprops being treated improperly in CS:GO. 2016-06-05 11:03:18 -04:00
Nicholas Hastings
20c9815619 Add support for sending gameevent to specific client. (#505) 2016-05-12 22:15:23 -04:00