Commit Graph

1175 Commits

Author SHA1 Message Date
BotoX
865fa37ed9 Added hack to make plugins open a menu with all possible targets on ReplyToTargetError COMMAND_TARGET_AMBIGUOUS.
Explanation:
There are two clients in the server, one named gene, the other one "Ene ~special characters~".
An admin issues "sm_slay Ene" and gets following error message: More than one client matched the given pattern.
What this hack will do is: Use GetCmdArg(0, ...); to get the command name "sm_slay".
Use GetCmdArgString(...); to get the arguments supplied to the command.
Use GetLastProcessTargetString(...); (which was implemented in this commit) to retrieve the arguments that were passed to the last ProcessTargetString call.
It will then pass this data to the DynamicTargeting plugin through its AmbiguousMenu native.
The plugin will open up a menu on the client and list all targets which match the pattern that was supplied to ProcessTargetString.
If the client selects a menu entry, FakeClientCommand will be used to re-execute the command with the correct target.
2019-09-21 20:29:53 +02:00
BotoX
6fae1811d9 Added client id to MultiTargetFilter forward. 2019-09-21 20:29:27 +02:00
Asher Baker
b2b29cb33f Fix build with latest hl2sdk-csgo 2019-09-02 21:45:47 +01:00
Michael Flaherty
266532f18c
Prevent FrameIterator OOB Errors (#949) 2019-01-13 13:37:41 -08:00
Nicholas Hastings
b5a0332181
Fix Mac build. 2018-12-30 19:56:19 -05:00
Asher Baker
ff935b4707
Backport #764 (#942)
Backport #764 to 1.9-dev, to fix build on updated versions of VS 2017.
2018-12-29 15:43:59 +00:00
David Anderson
03b270cf18 Don't double-format in ReplyToCommand. 2018-12-12 23:30:55 -08:00
Michael Flaherty
dd456dcb19 Individualize NameHashSet Hashing & Revisit #709 (#740) (1.9-dev) (#866)
This is a clone of #740, but without the amtl ke::AString lowercase which was implemented in a new version of amtl that 1.9-dev isn't pinned to. Updating this pin and moving fixes is beyond what should go in 1.9, and this fixes a annoying and user-impactful bug with reload/unloading plugins on windows.

Currently in 1.9, once a plugin is loaded into the pluginsys, they must be used with lowercase characters *only*, since pr #709 ignorantly modified their names. 

```
// test.smx exists in /plugins/
sm plugins load TEST.smx // successful
sm plugins unload TEST.smx // TEST.smx not found, it's actually test.smx
```

This pr fixes that error by converting *all* lookups, not just loads.
2018-08-11 13:37:05 +01:00
Michael Flaherty
ece57df986 Revert "Individualize NameHashSet Hashing & Revisit #709 (#740)"
This reverts commit 3803fbfe20.
2018-07-27 20:36:16 -07:00
Michael Flaherty
3803fbfe20 Individualize NameHashSet Hashing & Revisit #709 (#740)
* Make mac/win lookups lowercase'd

* Revert #709 & 81042cc

* Adjust HashPolicy implementation across sourcemod

Basically, in order to implement our own (actual) hash policy in
`PluginSys.h`, we needed to remove the blanket implementation of `hash`
that was used before. Now, each policy must implement `hash` along with
`matches` in order to be used with `NameHashSet`. While this does force
us to change every implementation of policies across the entirety of
sourcemod, it allows core to use flexible implementations of `hash`.

* Remove logic duplication

* Improve lowercase checks
2018-07-27 18:59:50 -07:00
Nick Hastings
ab68d046c8 Fix oops with SetConVarBounds. 2018-06-03 12:37:32 -04:00
Nick Hastings
fba6997c67 Missed converting a GetFlags instance. 2018-05-20 19:50:52 -04:00
Nick Hastings
880f8869a6 Out with the old ConVar accessibility hacks, in with the new.
Cherry-picked from 467d5705.
2018-05-20 19:50:33 -04:00
Nick Hastings
c316d8fccd Fix wrong matchmaking_ds bin path being used in some instances. 2018-05-06 10:31:25 -04:00
Nick Hastings
208299f703 Update ConVar hacks for BMS.
This is also to trigger an MM:S build for hl2sdk changes in multiple branches.
2018-05-05 11:52:02 -04:00
Nicholas Hastings
083ab81035 Add RemoveEntity native. (bug 5714) (#745) 2018-01-07 13:56:30 -05:00
Ruben Gonzalez
847261b6c9 Merge pull request #744 from alliedmodders/show-required-exts
Address issue #737
2017-12-31 11:17:44 -05: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