Compare commits

...

27 Commits

Author SHA1 Message Date
Nicholas Hastings
4326c3d431 Bump stuff for release build. 2011-12-07 21:11:35 -05:00
Nicholas Hastings
dc5aca5f20 Added gamedata support for No More Room in Hell (bug 5162). 2011-12-07 20:17:34 -05:00
Brian Simon
9182d92d86 Increased ServerCommandEx's internal buffer (bug 5169, r=asherkin). 2011-12-07 12:13:52 -05:00
Nicholas Hastings
8dc95a114c Backed out changeset: 294fded6a0d0 (bug 4902, bug 5068). 2011-12-07 11:58:09 -05:00
Nicholas Hastings
caf22b7233 Added gamedata support for Adreneline Gamer 2 (bug 5186). 2011-12-07 11:54:53 -05:00
Nicholas Hastings
465bebb170 Fixed typo in basebans ban reason (bug 5188, r=me). 2011-12-06 14:42:30 -05:00
Nicholas Hastings
f3006a478f Removed GLIBC_2.7 dependency from spcomp (r=fyren). 2011-12-06 14:29:32 -05:00
Nicholas Hastings
9887f9da48 Updated gamedata for Garry's Mod. 2011-12-02 10:04:28 -05:00
Nicholas Hastings
cfe11be9c9 Updated gamedata for HL2MP and DOD:S. 2011-11-29 18:09:51 -05:00
Nicholas Hastings
4118905620 Fixed CS:S gamedata. 2011-11-07 18:23:56 -05:00
Nicholas Hastings
3b7b0d27cb Updated gamedata for today's CS:S update. If wrong, blame gdc! 2011-11-07 18:01:49 -05:00
Nicholas Hastings
9a1713a9f8 Updated TF2_OnIsHolidayActive ret behavior to match doc (bug 5155, r=fyren). 2011-11-04 10:01:33 -04:00
Nicholas Hastings
2995531ca6 Fixed a few minor spacing things in sp incs to not fool API parser. 2011-11-04 10:01:33 -04:00
Nicholas Hastings
46e10e10a0 Fixed sp MaxClients not being updated on map changes after load (bug 5160, r=fyren). 2011-11-04 10:01:28 -04:00
Nicholas Hastings
8fadaff281 Fixed TFHoliday enum (bug 5155, r=asherkin). 2011-11-03 10:03:01 -04:00
Nicholas Hastings
fccc1ebb50 Fixed ff trigger printing in triggerer's language to all (bug 5161, r=asherkin). 2011-11-03 09:59:14 -04:00
Nicholas Hastings
03b183e492 Added new TF2 deathflag and dmg custom defines (bug 5157, r=asherkin). 2011-11-03 09:06:59 -04:00
Nicholas Hastings
0e37d2c1bf Registered basecomm as lib to allow requiring it (bug 5156, r=asherkin). 2011-11-03 09:06:22 -04:00
otstrel
f7daefc76e Fixed "not connected" error in reserved slots plugin (bug 5158, r=psychonic). 2011-11-03 09:05:40 -04:00
Nicholas Hastings
071b013f5e Preemptive gamedata update for tonight's TF2 update. 2011-11-02 18:24:12 -04:00
Fyren
e69d16ff71 Bump to 1.4.1-dev. 2011-10-28 19:50:55 -07:00
Fyren
1f599c8771 Added tag sourcemod-1.4.0 for changeset ddd707c3454c 2011-10-28 19:49:17 -07:00
Fyren
9389a0f138 Bump stuff for release build. 2011-10-28 18:24:01 -07:00
Nicholas Hastings
997687c3ab Updated changelog. 2011-10-28 21:18:51 -04:00
Nicholas Hastings
fe05b6c2d0 Updated Dino D-Day gamedata for today's update. 2011-10-28 20:27:44 -04:00
Nicholas Hastings
097ca03761 Added missing EYE def to halflife.inc, updated EYE def# (bug 5151, r=asherkn). 2011-10-28 19:09:40 -04:00
Nicholas Hastings
f182cd1d6a TF2 ext fixes for TF2 holiday system changes (bug 5150, r=asherkin). 2011-10-28 19:07:40 -04:00
38 changed files with 602 additions and 173 deletions

View File

@ -3,3 +3,4 @@ e6ef5ecdf8d75740ca2685a709bf321f8873bc3b sourcemod-1.1.0
e877885fac80be71822641f7a9122cebc9812521 sourcemod-1.1.1
b3ffa8a4511c4eadaf533fc790aa6b14f7f0c6ea sourcemod-1.1.2
3a73bbf60f34befa9b66be03fa5974b394bb3411 sourcemod-1.2.0
ddd707c3454c382db5db9d28148cd19227f44759 sourcemod-1.4.0

View File

@ -1,5 +1,172 @@
SourceMod Changelog
-----------------------------
SourceMod 1.4.1 [2011-12-07]
URL: http://wiki.alliedmods.net/SourceMod_1.4.1_Release_Notes
User Changes:
- Updated support for latest OrangeBox engine changes (CS:S, DoD:S, TF2, HL2DM, GMod).
- Added gamedata for Adrenaline Gamer 2 and No More Room in Hell.
- Fixed "not connected" error in reserve slots plugin (bug 5158) (ostrel).
- Fixed ff trigger output printing to all in triggerer's language (rather than viewer's language) (bug 5161).
- Fixed typo in one of basebans ban reasons (bug 5188).
- Fixed formatting error in Swedish "Vote Count" phrase (bug 5174).
Developer Changes:
- Fixed sp MaxClients not being updated on map changes after load (bug 5160).
- Removed GLIBC_2.7 dependency from spcomp.
- Increased buffer for sm_rcon command to fit larger responses (bug 5169).
- BaseComm now properly registers a library allowing it to be required by other plugins (bug 5156).
- Fixed TFHoliday enum values (bug 5155).
- Updated TF2_OnIsHolidayActive ret behavior to match doc (bug 5155).
- Added new TF2 deathflag and dmg custom defines (bug 5157).
-----------------------------
SourceMod 1.4.0 [2011-10-28]
URL: http://wiki.alliedmods.net/SourceMod_1.4.0_Release_Notes
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).
-----------------------------
SourceMod 1.3.8 [2011-06-23]
URL: http://wiki.alliedmods.net/SourceMod_1.3.8_Release_Notes
User Changes:
- Updated support for latest OrangeBox engine changes (CS:S, DoD:S, TF2, HL2DM, GMod).
- Updated support for various games, including Garry's Mod, Zombie Panic, and Dino D-Day.
- Added gamedata for Eternal Silence.
- Fixed libgcc_s.so.1 load error present on some systems (bug 4876).
- Handle leak notices now print to error log (in addition fatal log) (bug 4929).
- Translator now properly falls back on bad server language (bug 4861).
- Fixed invalid client errors from bad MaxClients value when SourceTV is late-loaded (bug 4881).
- Fixed crash on plugin unload when two commands exist with same name, different casing (bug 4698).
Developer Changes:
- Updated TF2 condition defines (bug 4916).
- Fixed var names and docs for TF2_MakeBleed native (bug 4928).
- Removed compiler double include check (bug 4863).
- Fixed plugin compile errors when using GetEntityClassname (bug 4798).
---------------------------
SourceMod 1.3.7 [2011-04-15]
URL: http://wiki.alliedmods.net/SourceMod_1.3.7_Release_Notes
User Changes:
- Updated support for latest OrangeBox engine changes (CS:S, DoD:S, TF2, HL2DM, GMod).
- Updated support for various games, including Zombie Panic, CS ProMod, Empires, and GoldenEye: Source.
- Added gamedata for Dino D-Day.
- Fix precedence of voice mute flag versus specific client overrides (bug 4826).
- Fix mistaken unhooking of voice hooks (bug 4804).
- Fixed graphical glitches with funcommands effects in L4D1 (bug 3486).
- Fixed bug in nominations that could cause "Unknown command" error (bug 4797).
- Removed tv_enable hook to fix rare max client count issue (bug 4791).
- Added missing unhooking of ClientConnect in PlayerManager (bug 4749).
- Fixed sm_rtv printing "unknown command" (bug 4730).
- Fixed voting crash when client console, chat, and SourceTV are enabled (bug 4676).
- Fixed CDetour crash in TF2 extension when last plugin using forward is unloaded (bug 4713).
Developer Changes:
- SetEntProp now marks edict state as changed (bug 4855).
- Added GetEntityClassname stock (bug 4798).
- Fix compiler hanging when #including a directory (bug 4822).
- Added GetEntityFlags and SetEntityFlags natives for better cross-engine compatibility. (bug 4809).
- Fixed ClientPrefs natives not being marked optional when REQUIRE_EXTENSIONS not defined (bug 4839).
- Changed some instances of LogMessage to LogAction (bug 4649).
- Added some new language natives (bug 4613).
- Fixed SetTeamScore not updating score on client (bug 2736).
- Raised MAXPLAYERS from 64 to 65 (bug 4490).
- Added and updated many TF2-specific defines in tf2.inc and tf2_stocks.inc.
- Fixed TF2_GetPlayerConditionFlags no longer necessarily returning all set flags (bug 4726).
- Fixed profiler flush not clearing, added 'report' and 'clear' (bug 4674).
- Fixed GetPlayerDecalFile crash on L4D and L4D2 (bug 4729).
- Fixed TF2_OnGetHoliday detour no longer firing under all circumstances (bug 4700).
- Added TF2_IsPlayerInDuel native to TF2 extension (bug 4695).
----------------------------
SourceMod 1.3.6 [2010-10-31]

View File

@ -263,10 +263,10 @@ void PlayerManager::OnServerActivate(edict_t *pEdictList, int edictCount, int cl
memset(m_AuthQueue, 0, sizeof(unsigned int) * (ABSOLUTE_PLAYER_LIMIT + 1));
g_NumPlayersToAuth = &m_AuthQueue[0];
g_PluginSys.SyncMaxClients(m_maxClients);
}
g_PluginSys.SyncMaxClients(m_maxClients);
g_OnMapStarted = true;
g_Extensions.CallOnCoreMapStart(pEdictList, edictCount, m_maxClients);

View File

@ -467,7 +467,7 @@ static cell_t GuessSDKVersion(IPluginContext *pContext, const cell_t *params)
case SOURCE_ENGINE_BLOODYGOODTIME:
return 32;
case SOURCE_ENGINE_EYE:
return 34;
return 33;
case SOURCE_ENGINE_ORANGEBOXVALVE:
return 35;
case SOURCE_ENGINE_LEFT4DEAD:

View File

@ -112,7 +112,7 @@ bool TF2Tools::SDK_OnLoad(char *error, size_t maxlength, bool late)
playerhelpers->AddClientListener(this);
g_critForward = forwards->CreateForward("TF2_CalcIsAttackCritical", ET_Hook, 4, NULL, Param_Cell, Param_Cell, Param_String, Param_CellByRef);
g_getHolidayForward = forwards->CreateForward("TF2_OnGetHoliday", ET_Event, 1, NULL, Param_CellByRef);
g_isHolidayForward = forwards->CreateForward("TF2_OnIsHolidayActive", ET_Event, 2, NULL, Param_Cell, Param_CellByRef);
g_addCondForward = forwards->CreateForward("TF2_OnConditionAdded", ET_Ignore, 2, NULL, Param_Cell, Param_Cell);
g_removeCondForward = forwards->CreateForward("TF2_OnConditionRemoved", ET_Ignore, 2, NULL, Param_Cell, Param_Cell);
g_waitingPlayersStartForward = forwards->CreateForward("TF2_OnWaitingForPlayersStart", ET_Ignore, 0, NULL);
@ -121,7 +121,7 @@ bool TF2Tools::SDK_OnLoad(char *error, size_t maxlength, bool late)
g_pCVar = icvar;
m_CritDetoursEnabled = false;
m_GetHolidayDetourEnabled = false;
m_IsHolidayDetourEnabled = false;
m_CondChecksEnabled = false;
m_RulesDetoursEnabled = false;
@ -168,7 +168,7 @@ void TF2Tools::SDK_OnUnload()
plsys->RemovePluginsListener(this);
forwards->ReleaseForward(g_critForward);
forwards->ReleaseForward(g_getHolidayForward);
forwards->ReleaseForward(g_isHolidayForward);
forwards->ReleaseForward(g_addCondForward);
forwards->ReleaseForward(g_removeCondForward);
forwards->ReleaseForward(g_waitingPlayersStartForward);
@ -320,9 +320,9 @@ void TF2Tools::OnPluginLoaded(IPlugin *plugin)
m_CritDetoursEnabled = InitialiseCritDetours();
}
if (!m_GetHolidayDetourEnabled && g_getHolidayForward->GetFunctionCount())
if (!m_IsHolidayDetourEnabled && g_isHolidayForward->GetFunctionCount())
{
m_GetHolidayDetourEnabled = InitialiseGetHolidayDetour();
m_IsHolidayDetourEnabled = InitialiseIsHolidayDetour();
}
if (!m_CondChecksEnabled
@ -347,10 +347,10 @@ void TF2Tools::OnPluginUnloaded(IPlugin *plugin)
RemoveCritDetours();
m_CritDetoursEnabled = false;
}
if (m_GetHolidayDetourEnabled && !g_getHolidayForward->GetFunctionCount())
if (m_IsHolidayDetourEnabled && !g_isHolidayForward->GetFunctionCount())
{
RemoveGetHolidayDetour();
m_GetHolidayDetourEnabled = false;
RemoveIsHolidayDetour();
m_IsHolidayDetourEnabled = false;
}
if (m_CondChecksEnabled)
{

View File

@ -118,7 +118,7 @@ public:
#endif
private:
bool m_CritDetoursEnabled;
bool m_GetHolidayDetourEnabled;
bool m_IsHolidayDetourEnabled;
bool m_CondChecksEnabled;
bool m_RulesDetoursEnabled;
};

View File

@ -31,48 +31,49 @@
#include "holiday.h"
CDetour *getHolidayDetour = NULL;
CDetour *isHolidayDetour = NULL;
IForward *g_getHolidayForward = NULL;
IForward *g_isHolidayForward = NULL;
DETOUR_DECL_STATIC0(GetHoliday, int)
DETOUR_DECL_STATIC1(IsHolidayActive, bool, int, holiday)
{
int actualres = DETOUR_STATIC_CALL(GetHoliday)();
if (!g_getHolidayForward)
bool actualres = DETOUR_STATIC_CALL(IsHolidayActive)(holiday);
if (!g_isHolidayForward)
{
g_pSM->LogMessage(myself, "Invalid Forward");
return actualres;
}
cell_t result = 0;
int newres = actualres;
cell_t newres = actualres ? 1 : 0;
g_getHolidayForward->PushCellByRef(&newres);
g_getHolidayForward->Execute(&result);
g_isHolidayForward->PushCell(holiday);
g_isHolidayForward->PushCellByRef(&newres);
g_isHolidayForward->Execute(&result);
if (result == Pl_Changed)
if (result > Pl_Continue)
{
return newres;
return (newres == 0) ? false : true;
}
return actualres;
}
bool InitialiseGetHolidayDetour()
bool InitialiseIsHolidayDetour()
{
getHolidayDetour = DETOUR_CREATE_STATIC(GetHoliday, "GetHoliday");
isHolidayDetour = DETOUR_CREATE_STATIC(IsHolidayActive, "IsHolidayActive");
if (getHolidayDetour != NULL)
if (isHolidayDetour != NULL)
{
getHolidayDetour->EnableDetour();
isHolidayDetour->EnableDetour();
return true;
}
g_pSM->LogError(myself, "GetHoliday detour failed");
g_pSM->LogError(myself, "IsHolidayActive detour failed");
return false;
}
void RemoveGetHolidayDetour()
void RemoveIsHolidayDetour()
{
getHolidayDetour->Destroy();
isHolidayDetour->Destroy();
}

View File

@ -37,9 +37,9 @@
#include <jit/x86/x86_macros.h>
#include "CDetour/detours.h"
bool InitialiseGetHolidayDetour();
void RemoveGetHolidayDetour();
bool InitialiseIsHolidayDetour();
void RemoveIsHolidayDetour();
extern IForward *g_getHolidayForward;
extern IForward *g_isHolidayForward;
#endif //_INCLUDE_SOURCEMOD_HOLIDAY_H_

View File

@ -216,6 +216,8 @@
"game" "eye"
"game" "nucleardawn"
"game" "hl2ctf"
"game" "ag2"
"game" "nmrih"
}
"Keys"

View File

@ -28,6 +28,8 @@
"game" "fas"
"game" "fistful_of_frags"
"game" "cspromod"
"game" "ag2"
"game" "nmrih"
}
"Offsets"

View File

@ -26,6 +26,7 @@
"game" "fas"
"game" "fistful_of_frags"
"game" "cspromod"
"game" "ag2"
}
"Offsets"
@ -76,6 +77,7 @@
"game" "pvkii"
"game" "fistful_of_frags"
"game" "cspromod"
"game" "ag2"
}
"Signatures"
@ -107,6 +109,8 @@
"game" "fas"
"game" "fistful_of_frags"
"game" "cspromod"
"game" "ag2"
"game" "nmrih"
}
"Offsets"
@ -198,6 +202,7 @@
{
"game" "ageofchivalry"
"game" "cspromod"
"game" "ag2"
}
"Signatures"
{

View File

@ -0,0 +1,91 @@
/**
* Do not edit this file. Any changes will be overwritten by the gamedata
* updater or by upgrading your SourceMod install.
*
* To override data in this file, create a subdirectory named "custom" and
* place your own gamedata file(s) inside of it. Such files will be parsed
* after SM's own.
*
* For more information, see http://wiki.alliedmods.net/Gamedata_Updating_(SourceMod)
*/
"Games"
{
/* Adrenaline Gamer 2 v1.02 */
"ag2"
{
"Offsets"
{
"GiveNamedItem"
{
"windows" "350"
"linux" "351"
}
"RemovePlayerItem"
{
"windows" "238"
"linux" "239"
}
"Weapon_GetSlot"
{
"windows" "236"
"linux" "237"
}
"Ignite"
{
"windows" "193"
"linux" "194"
}
"Extinguish"
{
"windows" "197"
"linux" "198"
}
"Teleport"
{
"windows" "100"
"linux" "101"
}
"CommitSuicide"
{
"windows" "391"
"linux" "391"
}
"GetVelocity"
{
"windows" "130"
"linux" "131"
}
"EyeAngles"
{
"windows" "122"
"linux" "123"
}
"AcceptInput"
{
"windows" "34"
"linux" "35"
}
"SetEntityModel"
{
"windows" "23"
"linux" "24"
}
"WeaponEquip"
{
"windows" "229"
"linux" "230"
}
"Activate"
{
"windows" "31"
"linux" "32"
}
"PlayerRunCmd"
{
"windows" "370"
"linux" "371"
}
}
}
}

View File

@ -28,21 +28,21 @@
{
"GiveNamedItem"
{
"windows" "391"
"linux" "392"
"mac" "392"
"windows" "392"
"linux" "393"
"mac" "393"
}
"RemovePlayerItem"
{
"windows" "262"
"linux" "263"
"mac" "263"
"windows" "263"
"linux" "264"
"mac" "264"
}
"Weapon_GetSlot"
{
"windows" "260"
"linux" "261"
"mac" "261"
"windows" "261"
"linux" "262"
"mac" "262"
}
"Ignite"
{
@ -64,9 +64,9 @@
}
"CommitSuicide"
{
"windows" "432"
"linux" "432"
"mac" "432"
"windows" "433"
"linux" "433"
"mac" "433"
}
"GetVelocity"
{
@ -94,9 +94,9 @@
}
"WeaponEquip"
{
"windows" "253"
"linux" "254"
"mac" "254"
"windows" "254"
"linux" "255"
"mac" "255"
}
"Activate"
{
@ -106,9 +106,9 @@
}
"PlayerRunCmd"
{
"windows" "409"
"linux" "410"
"mac" "410"
"windows" "410"
"linux" "411"
"mac" "411"
}
}
}

View File

@ -7,7 +7,7 @@
{
"GiveNamedItem"
{
"windows" "422"
"windows" "423"
}
"RemovePlayerItem"
{
@ -31,7 +31,7 @@
}
"CommitSuicide"
{
"windows" "466"
"windows" "468"
}
"GetVelocity"
{
@ -59,7 +59,7 @@
}
"PlayerRunCmd"
{
"windows" "442"
"windows" "444"
}
}

View File

@ -18,21 +18,21 @@
{
"GiveNamedItem"
{
"windows" "390"
"linux" "391"
"mac" "391"
"windows" "391"
"linux" "392"
"mac" "392"
}
"RemovePlayerItem"
{
"windows" "262"
"linux" "263"
"mac" "263"
"windows" "263"
"linux" "264"
"mac" "264"
}
"Weapon_GetSlot"
{
"windows" "260"
"linux" "261"
"mac" "261"
"windows" "261"
"linux" "262"
"mac" "262"
}
"Ignite"
{
@ -54,9 +54,9 @@
}
"CommitSuicide"
{
"windows" "428"
"linux" "429"
"mac" "429"
"windows" "429"
"linux" "430"
"mac" "430"
}
"GetVelocity"
{
@ -84,9 +84,9 @@
}
"WeaponEquip"
{
"windows" "253"
"linux" "254"
"mac" "254"
"windows" "254"
"linux" "255"
"mac" "255"
}
"Activate"
{
@ -96,9 +96,9 @@
}
"PlayerRunCmd"
{
"windows" "408"
"linux" "409"
"mac" "409"
"windows" "409"
"linux" "410"
"mac" "410"
}
}

View File

@ -18,21 +18,21 @@
{
"GiveNamedItem"
{
"windows" "432"
"linux" "433"
"mac" "433"
"windows" "433"
"linux" "434"
"mac" "434"
}
"RemovePlayerItem"
{
"windows" "304"
"linux" "305"
"mac" "305"
"windows" "305"
"linux" "306"
"mac" "306"
}
"Weapon_GetSlot"
{
"windows" "302"
"linux" "303"
"mac" "303"
"windows" "303"
"linux" "304"
"mac" "304"
}
"Ignite"
{
@ -54,9 +54,9 @@
}
"CommitSuicide"
{
"windows" "471"
"linux" "471"
"mac" "471"
"windows" "472"
"linux" "472"
"mac" "472"
}
"GetVelocity"
{
@ -84,9 +84,9 @@
}
"WeaponEquip"
{
"windows" "295"
"linux" "296"
"mac" "296"
"windows" "296"
"linux" "297"
"mac" "297"
}
"Activate"
{
@ -96,9 +96,9 @@
}
"PlayerRunCmd"
{
"windows" "450"
"linux" "451"
"mac" "451"
"windows" "451"
"linux" "452"
"mac" "452"
}
}
"Signatures"

View File

@ -18,21 +18,21 @@
{
"GiveNamedItem"
{
"windows" "390"
"linux" "391"
"mac" "391"
"windows" "391"
"linux" "392"
"mac" "392"
}
"RemovePlayerItem"
{
"windows" "262"
"linux" "263"
"mac" "263"
"windows" "263"
"linux" "264"
"mac" "264"
}
"Weapon_GetSlot"
{
"windows" "260"
"linux" "261"
"mac" "261"
"windows" "261"
"linux" "262"
"mac" "262"
}
"Ignite"
{
@ -54,9 +54,9 @@
}
"CommitSuicide"
{
"windows" "429"
"linux" "429"
"mac" "429"
"windows" "430"
"linux" "430"
"mac" "430"
}
"GetVelocity"
{
@ -84,9 +84,9 @@
}
"WeaponEquip"
{
"windows" "253"
"linux" "254"
"mac" "254"
"windows" "254"
"linux" "255"
"mac" "255"
}
"Activate"
{
@ -96,9 +96,9 @@
}
"PlayerRunCmd"
{
"windows" "408"
"linux" "409"
"mac" "409"
"windows" "409"
"linux" "410"
"mac" "410"
}
}
}

View File

@ -0,0 +1,137 @@
/**
* Do not edit this file. Any changes will be overwritten by the gamedata
* updater or by upgrading your SourceMod install.
*
* To override data in this file, create a subdirectory named "custom" and
* place your own gamedata file(s) inside of it. Such files will be parsed
* after SM's own.
*
* For more information, see http://wiki.alliedmods.net/Gamedata_Updating_(SourceMod)
*/
"Games"
{
/* No More Room in Hell 1.02 */
"nmrih"
{
"Offsets"
{
"GiveNamedItem"
{
"windows" "361"
"linux" "362"
}
"RemovePlayerItem"
{
"windows" "240"
"linux" "241"
}
"Weapon_GetSlot"
{
"windows" "238"
"linux" "239"
}
"Ignite"
{
"windows" "195"
"linux" "196"
}
"Extinguish"
{
"windows" "199"
"linux" "200"
}
"Teleport"
{
"windows" "102"
"linux" "103"
}
"CommitSuicide"
{
"windows" "402"
"linux" "402"
}
"GetVelocity"
{
"windows" "132"
"linux" "133"
}
"EyeAngles"
{
"windows" "124"
"linux" "125"
}
"AcceptInput"
{
"windows" "34"
"linux" "35"
}
"SetEntityModel"
{
"windows" "23"
"linux" "24"
}
"WeaponEquip"
{
"windows" "231"
"linux" "232"
}
"Activate"
{
"windows" "31"
"linux" "32"
}
"PlayerRunCmd"
{
"windows" "381"
"linux" "382"
}
/* Offset into CBaseTempEntity constructor (vs2010 moved it!) */
"s_pTempEntities"
{
"windows" "19"
}
"GetTEName"
{
"windows" "4"
"linux" "4"
}
"GetTENext"
{
"windows" "8"
"linux" "8"
}
"TE_GetServerClass"
{
"windows" "0"
"linux" "0"
}
}
"Signatures"
{
"CBaseTempEntity"
{
"library" "server"
"windows" "\x55\x8B\xEC\x8B\xC1\x8B\x2A\x2A\xC7\x2A\x2A\x2A\x2A\x2A\x89\x2A\x2A\x8B\x15\x2A\x2A\x2A\x2A\x89"
}
"s_pTempEntities"
{
"library" "server"
"linux" "@_ZN15CBaseTempEntity15s_pTempEntitiesE"
}
"FindEntityByClassname"
{
"library" "server"
"windows" "\x55\x8B\xEC\x53\x56\x8B\xF1\x8B\x2A\x2A\x57\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\xFF\xD2\x8B\x00\x25\x2A\x2A\x2A\x2A\x40\x03\xC0\x8B\x3C\xC6\xEB\x2A\x8B\xBE\x2A\x2A\x2A\x2A\x85\xFF\x74"
"linux" "@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc"
}
"FireOutput"
{
"library" "server"
"windows" "\x55\x8B\xEC\x81\xEC\x2A\x2A\x2A\x2A\x53\x56\x8B\x2A\x2A\x57\x89"
"linux" "@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f"
}
}
}
}

View File

@ -18,33 +18,33 @@
{
"GiveNamedItem"
{
"windows" "392"
"linux" "393"
"mac" "393"
"windows" "391"
"linux" "392"
"mac" "392"
}
"RemovePlayerItem"
{
"windows" "264"
"linux" "265"
"mac" "265"
"windows" "263"
"linux" "264"
"mac" "264"
}
"Weapon_GetSlot"
{
"windows" "262"
"linux" "263"
"mac" "263"
"windows" "261"
"linux" "262"
"mac" "262"
}
"Ignite"
{
"windows" "205"
"linux" "206"
"mac" "206"
"windows" "204"
"linux" "205"
"mac" "205"
}
"Extinguish"
{
"windows" "209"
"linux" "210"
"mac" "210"
"windows" "208"
"linux" "209"
"mac" "209"
}
"Teleport"
{
@ -54,21 +54,21 @@
}
"CommitSuicide"
{
"windows" "433"
"linux" "433"
"mac" "433"
"windows" "432"
"linux" "432"
"mac" "432"
}
"GetVelocity"
{
"windows" "139"
"linux" "140"
"mac" "140"
"windows" "138"
"linux" "139"
"mac" "139"
}
"EyeAngles"
{
"windows" "130"
"linux" "131"
"mac" "131"
"windows" "129"
"linux" "130"
"mac" "130"
}
"SetEntityModel"
{
@ -84,9 +84,9 @@
}
"WeaponEquip"
{
"windows" "255"
"linux" "256"
"mac" "256"
"windows" "254"
"linux" "255"
"mac" "255"
}
"Activate"
{
@ -96,9 +96,9 @@
}
"PlayerRunCmd"
{
"windows" "410"
"linux" "411"
"mac" "411"
"windows" "409"
"linux" "410"
"mac" "410"
}
}

View File

@ -205,4 +205,12 @@
{
"game" "hl2ctf"
}
"game.ag2.txt"
{
"game" "ag2"
}
"game.nmrih.txt"
{
"game" "nmrih"
}
}

View File

@ -99,12 +99,12 @@
"linux" "@_ZN15CTFPlayerShared10StunPlayerEffiP9CTFPlayer"
"mac" "@_ZN15CTFPlayerShared10StunPlayerEffiP9CTFPlayer"
}
"GetHoliday"
"IsHolidayActive"
{
"library" "server"
"windows" "\x81\xEC\x2A\x2A\x2A\x2A\x53\x55\x56\x57\x6A\x00\xE8\x2A\x2A\x2A\x2A\x89"
"linux" "@_Z15UTIL_GetHolidayv"
"mac" "@_Z15UTIL_GetHolidayv"
"windows" "\x80\x2A\x2A\x2A\x2A\x2A\x00\x75\x2A\xE8\x2A\x2A\x2A\x2A\x8B\x54\x2A\x2A\x8B"
"linux" "@_Z20UTIL_IsHolidayActivei"
"mac" "@_Z20UTIL_IsHolidayActivei"
}
"MakeBleed"
{
@ -125,9 +125,9 @@
{
"ForceRespawn"
{
"windows" "319"
"linux" "320"
"mac" "320"
"windows" "318"
"linux" "319"
"mac" "319"
}
}
}

View File

@ -134,7 +134,7 @@ DisplayBanReasonMenu(client)
AddMenuItem(menu, "Aimbot", "Aimbot");
AddMenuItem(menu, "Speedhacking", "Speedhacking");
AddMenuItem(menu, "Mic spamming", "Mic spamming");
AddMenuItem(menu, "Admin disrepect", "Admin disrepect");
AddMenuItem(menu, "Admin disrespect", "Admin disrespect");
AddMenuItem(menu, "Camping", "Camping");
AddMenuItem(menu, "Team killing", "Team killing");
AddMenuItem(menu, "Unacceptable Spray", "Unacceptable Spray");

View File

@ -67,6 +67,7 @@ public APLRes:AskPluginLoad2(Handle:myself, bool:late, String:error[], err_max)
CreateNative("BaseComm_IsClientMuted", Native_IsClientMuted);
CreateNative("BaseComm_SetClientGag", Native_SetClientGag);
CreateNative("BaseComm_SetClientMute", Native_SetClientMute);
RegPluginLibrary("basecomm");
return APLRes_Success;
}

View File

@ -421,7 +421,7 @@ public Action:Command_Rcon(client, args)
{
ServerCommand("%s", argstring);
} else {
new String:responseBuffer[1024];
new String:responseBuffer[4096];
ServerCommandEx(responseBuffer, sizeof(responseBuffer), "%s", argstring);
ReplyToCommand(client, responseBuffer);
}

View File

@ -270,23 +270,23 @@ public Action:Command_Say(client, const String:command[], argc)
{
if (g_Cvar_FriendlyFire != INVALID_HANDLE)
{
decl String:message[64];
decl String:phrase[24];
if (GetConVarBool(g_Cvar_FriendlyFire))
{
Format(message, sizeof(message), "%T", "Friendly Fire On", client);
strcopy(phrase, sizeof(phrase), "Friendly Fire On");
}
else
{
Format(message, sizeof(message), "%T", "Friendly Fire Off", client);
strcopy(phrase, sizeof(phrase), "Friendly Fire Off");
}
if(GetConVarInt(g_Cvar_TriggerShow))
{
PrintToChatAll("[SM] %s", message);
PrintToChatAll("[SM] %t", phrase);
}
else
{
PrintToChat(client,"[SM] %s", message);
PrintToChat(client,"[SM] %t", phrase);
}
}
}

View File

@ -88,7 +88,7 @@ native ClearArray(Handle:array);
* @return New handle to the cloned array object
* @error Invalid Handle
*/
native Handle:CloneArray(Handle:array);
native Handle:CloneArray(Handle:array);
/**
* Resizes an array. If the size is smaller than the current size,

View File

@ -189,7 +189,7 @@ native CS_DropWeapon(client, weaponIndex, bool:toss, bool:blockhook = false);
* forward from being called.
* @noreturn
*/
native CS_TerminateRound(Float:delay, CSRoundEndReason:reason, bool:blockhook = false);
native CS_TerminateRound(Float:delay, CSRoundEndReason:reason, bool:blockhook = false);
/**
* Gets a weapon name from a weapon alias
@ -201,7 +201,7 @@ native CS_DropWeapon(client, weaponIndex, bool:toss, bool:blockhook = false);
*
* @note Will set the buffer to the original alias if it is not an alias to a weapon.
*/
native CS_GetTranslatedWeaponAlias(const String:alias[], String:weapon[], size);
native CS_GetTranslatedWeaponAlias(const String:alias[], String:weapon[], size);
/**
* Gets a weapon's price
@ -214,7 +214,7 @@ native CS_DropWeapon(client, weaponIndex, bool:toss, bool:blockhook = false);
* @error Invalid client, failing to get weapon info, or failing to get price offset.
* @note c4, knife and shield will always return 0. vest, vest helmet and night vision will always return default price.
*/
native CS_GetWeaponPrice(client, CSWeaponID:id, bool:defaultprice = false);
native CS_GetWeaponPrice(client, CSWeaponID:id, bool:defaultprice = false);
/**
* Gets a clients clan tag
@ -225,7 +225,7 @@ native CS_DropWeapon(client, weaponIndex, bool:toss, bool:blockhook = false);
*
* @error Invalid client.
*/
native CS_GetClientClanTag(client, String:buffer[], size);
native CS_GetClientClanTag(client, String:buffer[], size);
/**
* Sets a clients clan tag
@ -235,7 +235,7 @@ native CS_DropWeapon(client, weaponIndex, bool:toss, bool:blockhook = false);
*
* @error Invalid client.
*/
native CS_SetClientClanTag(client, const String:tag[]);
native CS_SetClientClanTag(client, const String:tag[]);
/**
* Do not edit below this line!

View File

@ -41,6 +41,7 @@
#define SOURCE_SDK_EPISODE1 20 /**< SDK+Engine released after Episode 1 */
#define SOURCE_SDK_EPISODE2 30 /**< SDK+Engine released after Episode 2/Orange Box */
#define SOURCE_SDK_BLOODYGOODTIME 32 /**< Modified version of ep2 engine used by Bloody Good Time (no SDK) */
#define SOURCE_SDK_EYE 33 /**< Modified version of ep2 engine used by E.Y.E Divine Cybermancy (no SDK) */
#define SOURCE_SDK_EPISODE2VALVE 35 /**< SDK+Engine released after Episode 2/Orange Box */
#define SOURCE_SDK_LEFT4DEAD 40 /**< Engine released after Left 4 Dead (no SDK yet) */
#define SOURCE_SDK_LEFT4DEAD2 50 /**< Engine released after Left 4 Dead 2 (no SDK yet) */

View File

@ -120,9 +120,10 @@ enum TFCond
enum TFHoliday
{
TFHoliday_None = 1,
TFHoliday_Birthday = 1,
TFHoliday_Halloween,
TFHoliday_Birthday
TFHoliday_FullMoon,
TFHoliday_HalloweenOrFullMoon,
};
enum TFObjectType
@ -278,15 +279,22 @@ native TFClassType:TF2_GetClass(const String:classname[]);
forward Action:TF2_CalcIsAttackCritical(client, weapon, String:weaponname[], &bool:result);
/**
* Called when the game checks to see if the current day is one of its tracked holidays
*
* @note Change the value of holiday and return Plugin_Changed to override.
* Return Plugin_Continue for no change.
*
* @param holiday Current Holiday
* @deprecated No longer called. Use TF2_OnIsHolidayActive.
*/
#pragma deprecated No longer called. Use TF2_OnIsHolidayActive.
forward Action:TF2_OnGetHoliday(&TFHoliday:holiday);
/**
* Called at various times when the game checks to see if the given holiday is active.
* Return Plugin_Continue to let the original calculation or return a higher
* action to override the decision with the value of 'result'
*
* @param holiday Holiday being checked.
* @param result Buffer param for the result of the decision.
* @return Plugin_Continue for original calculation, higher value to use 'result'.
*/
forward Action:TF2_OnIsHolidayActive(TFHoliday:holiday, &bool:result);
/**
* Returns whether or not a client (Player) is in a duel.
*

View File

@ -78,6 +78,7 @@
#define TF_DEATHFLAG_DEADRINGER (1 << 5)
#define TF_DEATHFLAG_INTERRUPTED (1 << 6)
#define TF_DEATHFLAG_GIBBED (1 << 7)
#define TF_DEATHFLAG_PURGATORY (1 << 8)
// Custom kill identifiers for the customkill property on the player_death event
enum {
@ -130,6 +131,7 @@ enum {
TF_CUSTOM_PLASMA_CHARGED,
TF_CUSTOM_PLASMA_GIB,
TF_CUSTOM_PRACTICE_STICKY,
TF_CUSTOM_EYEBALL_ROCKET,
};
// Weapon codes as used in some events, such as player_death

View File

@ -37,6 +37,6 @@
#define SOURCEMOD_V_MAJOR 1 /**< SourceMod Major version */
#define SOURCEMOD_V_MINOR 4 /**< SourceMod Minor version */
#define SOURCEMOD_V_RELEASE 0 /**< SourceMod Release version */
#define SOURCEMOD_V_RELEASE 1 /**< SourceMod Release version */
#define SOURCEMOD_VERSION "1.4.0-dev" /**< SourceMod version string (major.minor.release.build) */
#define SOURCEMOD_VERSION "1.4.1" /**< SourceMod version string (major.minor.release.build) */

View File

@ -86,6 +86,9 @@ public OnPluginStart()
{
for (new i = 1; i <= MaxClients; i++)
{
if (!IsClientConnected(i))
continue;
if (IsClientSourceTV(i))
{
g_SourceTV = i;

View File

@ -1 +1 @@
1.4.0-dev
1.4.1

View File

@ -16,7 +16,7 @@ elif compiler.cc.name == 'msvc':
compiler['POSTLINKFLAGS'].append('/SUBSYSTEM:CONSOLE')
if AMBuild.target['platform'] == 'linux':
compiler['CDEFINES'].extend(['LINUX', 'HAVE_STDINT_H', 'AMX_ANSIONLY', 'ENABLE_BINRELOC'])
compiler['CDEFINES'].extend(['LINUX', 'HAVE_STDINT_H', 'AMX_ANSIONLY', 'ENABLE_BINRELOC', '_GNU_SOURCE'])
elif AMBuild.target['platform'] == 'darwin':
compiler['CDEFINES'].extend(['DARWIN', 'HAVE_STDINT_H', 'AMX_ANSIONLY', 'ENABLE_BINRELOC'])

View File

@ -30,7 +30,7 @@ LINK = -lgcc -static-libgcc
INCLUDE = -I. -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn
CFLAGS += -DLINUX -DHAVE_STDINT_H -DAMX_ANSIONLY -DENABLE_BINRELOC -Dstricmp=strcasecmp -m32
CFLAGS += -D_GNU_SOURCE -Wall -Werror -Wno-uninitialized -Wno-unused-result -Wno-unused -Wno-switch -Wno-parentheses -Wno-format -DLINUX -DHAVE_STDINT_H -DAMX_ANSIONLY -DENABLE_BINRELOC -Dstricmp=strcasecmp -m32
CPPFLAGS += -Wno-non-virtual-dtor -fno-exceptions -fno-rtti
################################################

View File

@ -2923,7 +2923,7 @@ static cell initvector(int ident,int tag,cell size,int fillzero,
matchbrace=matchtoken('{');
for ( ;; ) {
prev2=prev1;
prev1=init(iVARIABLE,&ctag,errorfound);
prev1=init(ident,&ctag,errorfound);
if (!matchbrace)
break;
if ((ellips=matchtoken(tELLIPS))!=0)

View File

@ -59,7 +59,7 @@ static short skiplevel; /* level at which we started skipping (including nested
static unsigned char term_expr[] = "";
static int listline=-1; /* "current line" for the list file */
#if defined __GNUC__
#if defined DARWIN
static double pow10(double d)
{
return pow(10, d);

View File

@ -1 +1 @@
dev
rel