Compare commits

...
Author SHA1 Message Date
David Anderson 49e2303a5b Bumped version to 1.3.3 for release. 2010-06-23 23:44:14 -07:00
David Anderson fe0b9f7320 Updated changelog. 2010-06-23 23:43:09 -07:00
David Anderson b16c758f88 Removed code now dead from CS:S Orange Box move (bug 4399, r+a13=ds). 2010-06-23 23:35:28 -07:00
Nicholas Hastings da729c3c08 Removed cstrike ep1 and cstrike_beta builds and references. (bug 4399, r=dvander) 2010-06-23 23:53:16 -04:00
Erik Minekus f1bcb2ad3e Fixed lack of error checking on sm_motd. (bug 4460, r=dvander) 2010-06-23 23:42:22 -04:00
Nicholas Hastings 9270399eb1 Forcing (re)build(?) since Windows had a strange fail. 2010-06-23 10:33:51 -04:00
Nicholas Hastings 76e6edbad4 Cstrike ext now recognizes and loads on cstrike_beta (bug 4399, r=fyren) 2010-06-23 10:12:55 -04:00
devicenull 58ca1508bc Fixed inaccuracy in CommandListener documentation 2010-06-23 09:23:23 -04:00
Greyscale eed1df28ec Removed unnecessary tag from return value of SetArrayCell 2010-06-23 09:17:53 -04:00
Nicholas Hastings a602d7d107 Ep2v cstrike ext now gets added to package. 2010-06-23 09:02:04 -04:00
Nicholas Hastings 9a08986fd1 Silly AMBuild 2010-06-23 08:32:25 -04:00
Nicholas Hastings 5d1820853a Adding building of cstrike ext for ep2v (bug 4399, r=fyren) 2010-06-23 08:29:15 -04:00
Nicholas Hastings 753aced2a3 Added missing TF2 critcola condflag define (bug 4464, r=fyren) 2010-06-22 19:31:33 -04:00
Nicholas Hastings df47457321 Updated TF2 'Burn' signature (bug 4463, r=fyren) 2010-06-22 19:26:07 -04:00
Fyren d9e818e5d9 Possible dynamic array dimension fix (bug 4428, r=dvander) 2010-06-19 15:17:10 -07:00
Nicholas Hastings 47c840c9b4 Fixed outputname null pointer crash in sdktools (bug 4422, r=fyren) 2010-06-14 09:32:50 -04:00
David Anderson 2bfc5d3e1e Fixed switch case comparisons failing with large numbers (bug 4457, r=pred). 2010-06-13 20:26:58 -07:00
Nicholas Hastings 4307c57697 Added missing FireOutput and PlayerRunCmd gamedata for zombie_master (bug 4452, r=fyren) 2010-06-07 19:39:15 -04:00
Nicholas Hastings bff0faff52 Added new player condition (TFCond_CritCola) to tf2.inc. (bug 4447, r=fyren) 2010-06-06 20:55:25 -04:00
Matt Woodrow 749966ae66 Fixed clientprefs deleting cookies twice in rare cases (bug 4412, r=Fyren) 2010-06-07 10:30:33 +12:00
Nicholas Hastings 9f11132fb5 Fixed OnClientConnected forward not firing for bots (bug 4443, r=fyren) 2010-06-06 17:53:38 -04:00
Fyren 2dfbd1fc1f Fix sdktools voice memory corruption (bug 4415, r=dvander) 2010-06-05 23:21:33 -07:00
Nicholas Hastings 7c659837bf Updated Obsidian Conflict gamedata (bug 4439, r=fyren) 2010-06-02 07:54:15 -04:00
Nicholas Hastings 7cf342a1a7 Fixed tf2.inc incorrectly attempting to load tf2 ext on all games (bug 4197, r=fyren) 2010-05-31 16:36:10 -04:00
Scott Ehlert e8d6aab989 Triggering build. 2010-05-29 00:55:06 -05:00
Nicholas Hastings 0819278465 Updated/fixed SourceForts gamedata (bug 4429, r=fyren) 2010-05-28 13:29:13 -04:00
Nicholas Hastings d89c57ba79 Fixed SDKTools sm_dump_datamaps crash on improperly created entities (bug 4424, r=pred) 2010-05-26 08:31:48 -04:00
Nicholas Hastings 23b10fc559 Added gamedata for Resistance and Liberation (bug 4418, r=fyren) 2010-05-21 14:04:19 -04:00
Nicholas Hastings 36e8e881e8 Empires gamedata fixes (bug 4417, r=fyren). 2010-05-21 13:55:29 -04:00
Nicholas Hastings 67011834df Updated gamedata for ep2v cstrike(_beta) (bug 4399, r=fyren) 2010-05-11 20:40:14 -04:00
Scott Ehlert ed9f68814f Added missing -dev back to product.version. 2010-05-13 09:35:30 -05:00
Nicholas Hastings 79a8008280 Fixed TF2 natives not being marked optional when ext not required (bug 4389, r=fyren) 2010-05-10 18:18:34 -04:00
Nicholas Hastings 643dce8cb1 Updated Empires gamedata (bug 4390, r=fyren) 2010-05-08 21:39:50 -04:00
Scott Ehlert 3669b98986 Fixed SendConVarValue() on TF2, DOD:S, L4D, and L4D2 (bug 4273, r=dvander, a=blocking). 2010-05-04 22:49:46 -04:00
David Anderson e075b7b9b2 Bumped version to 1.3.3-dev. 2010-05-02 14:41:51 -07:00
David Anderson b95fda8342 Added tag sourcemod-1.3.2 for changeset a3e8f7a7fdf7 2010-05-02 14:39:43 -07:00
David Anderson 5abec70579 Bumped for release. 2010-05-02 14:16:34 -07:00
Nicholas Hastings 8800d5311c Added TF2_StunPlayer native and TF2_GetPlayerConditionFlags stock to TF2 ext. (bug 4331, r=pred) 2010-03-31 08:51:25 -04:00
Nicholas Hastings 3705210879 Added 4 new natives to TF2 ext. (bug 4166, r=pred)
Added natives for Regenerate, add/remove condition, and SetPlayerPowerPlay. Also updated TF2 test plugin.
2010-03-18 11:35:05 -04:00
Scott Ehlert 5f4befcb6a Argh, really fixed HookEntityOutput() crash on TF2 (bug 4375). 2010-04-30 10:54:34 -04:00
Scott Ehlert 314011f118 Fixed HookEntityOutput() crash with recent updates to TF2 and L4D2 (bug 4375, r=pred, a=blocking). 2010-04-30 03:51:01 -04:00
Fyren a9b7a5dc5c Triggering build 2010-04-29 20:55:16 -07:00
Scott Ehlert 9b78c68b1b Updated sample extension makefiles to compile against latest changes for L4D2 and TF2 (bug 4374, r=dvander). 2010-04-29 16:04:47 -04:00
Nicholas Hastings 328109be1f Fixed SetUserCvar offset for ep2v (bug 4371, r=fyren) 2010-04-29 14:17:44 -04:00
Nicholas Hastings aba0f29666 ep2v gamedata (bug 4371, r=fyren) 2010-04-28 23:48:26 -07:00
Fyren bdefb58e5f ep2v build changes (bug 4371, r=dvander) 2010-04-28 19:44:20 -07:00
David Anderson 7ad3a57c47 Check return value of GetPlayerNetInfo (bug 4315, r=fyren). 2010-04-27 23:40:04 -07:00
Nicholas Hastings 5a2f3cf433 Fixed entity output hooks not working in Insurgency (bug 4365, r=fyren) 2010-04-24 21:10:15 -04:00
Nicholas Hastings fffc27a348 Added obsidian to list of games which support tempents with ep2 gamedata (thread 75480, r=me). 2010-04-24 21:08:13 -04:00
Nicholas Hastings cecb7cb6a2 Fixed functions.inc not having double-include prevention (bug 4342, r=fyren) 2010-04-24 21:05:48 -04:00
Zach Kanzler f5cc5eb757 Fixed IGamePlayer->GetUserId() returning junk (bug 3916, r=fyren) 2010-04-24 21:02:40 -04:00
Nicholas Hastings 689406744b Updated L4D2 gamedata for The Passing update (bug 4361, r=pending) 2010-04-23 12:11:49 -04:00
Nicholas Hastings 603da899b7 Updated Insurgency gamedata for Insurgency 2010-04-19 update (bug 4356, r=fyren) 2010-04-23 10:38:37 -04:00
Fyren 9b4d1f6972 Build stuff for L4D2 DLC (bug 4361, r=what's a review?) 2010-04-23 07:33:58 -07:00
David Anderson d56b222637 Merge backout. 2010-04-23 02:31:15 -04:00
David Anderson dfefda81e1 Backed out changeset 6b5fa86c1a0d (bug 4315). 2010-04-23 02:31:07 -04:00
David Anderson 0c463b1f86 Merge. 2010-04-22 17:55:55 -04:00
David Anderson bf345eea8c Attempting fix for SendConVarValue crash (bug 4315, r=fyren, a13=me). 2010-04-22 17:55:35 -04:00
Nicholas Hastings 5328447b74 Merge 2010-04-19 11:15:51 -04:00
Nicholas Hastings db6881b7e3 Updated Empires gamedata for Empires 2.25a release (bug 4108, r=fyren) 2010-04-19 10:38:50 -04:00
David Anderson 3e96b1617a Added obsidian to list of games which need menu redraws (thread 123237, r=me). 2010-04-04 23:51:20 -07:00
Nicholas Hastings 7ef8b415bb Added Gamerules SDKCall support to CSPromod gamedata (bug 4320, r=pred) 2010-03-23 19:42:58 -04:00
Nicholas Hastings 9a5d6957b9 Fixed bad caller crash with HookEntityOutput (bug 4311, r=fyren) 2010-03-20 11:08:48 -04:00
Nicholas Hastings b5a2ec7a5e Added missing core voting cvars to sourcemod.cfg (bug 4309, r=fyren) 2010-03-11 22:01:11 -05:00
Nicholas Hastings 373136af4e Added missing core voting cvars to sourcemod.cfg (bug 4224, r=pred) 2010-03-11 17:44:41 -05:00
Nicholas Hastings 8673c11341 Fixed incorrect DispatchSpawn signature for ZPS and added ShowMenu and Hudtext support (bug 4279, r=Fyren) 2010-03-09 20:40:06 -05:00
Nicholas Hastings 8c082de148 Re-enabled ShowMenu support for FortressForever (bug 4028, r=dvander) 2010-03-09 18:50:57 -05:00
Nicholas Hastings e62d47a85e Fixed FireOutput signature for FortressForever (bug 4062, r=dvander) 2010-03-09 18:48:03 -05:00
Nicholas Hastings 2d32c587ba Fixed sm_rename on L4D2 on Windows (bug 4131, r=dvander) 2010-03-09 18:44:28 -05:00
Nicholas Hastings 31e29ee94c Fixed inaccurate description for sm_unban (bug 4245, r=dvander) 2010-03-09 18:41:43 -05:00
Nicholas Hastings e95e453258 Fixed CSPromod SDKTools Support (bug 4255, r=dvander) 2010-03-09 18:36:51 -05:00
Nicholas Hastings 48b0f61551 Updated PVKII support for PVKII 2.3 (bug 4276, r=dvander) 2010-03-09 18:30:15 -05:00
Nicholas Hastings ef88fc21a1 Fixed CreateGameRulesObject sig for ZPS (bug 4285, r=dvander). 2010-03-09 18:15:23 -05:00
Erik Minekus 558c8c9745 Fixed Insurgency gamedata file (bug 4282, r+a13=dvander). 2010-02-24 23:41:06 -08:00
Fyren 2f60680cfb maxClients -> MaxClients in sdktools_sound.inc (fix bug 3985, r=psychonicsux) 2010-02-10 10:53:54 -08:00
David Anderson 1ffcf7a664 Bumped version to 1.3.2-dev. 2010-02-09 22:00:28 -08:00
David Anderson c00b688ab7 Added tag sourcemod-1.3.1 for changeset 3f33d01fcc28 2010-02-09 21:59:41 -08:00
66 changed files with 1597 additions and 407 deletions
+2
View File
@@ -4,3 +4,5 @@ e877885fac80be71822641f7a9122cebc9812521 sourcemod-1.1.1
b3ffa8a4511c4eadaf533fc790aa6b14f7f0c6ea sourcemod-1.1.2 b3ffa8a4511c4eadaf533fc790aa6b14f7f0c6ea sourcemod-1.1.2
3a73bbf60f34befa9b66be03fa5974b394bb3411 sourcemod-1.2.0 3a73bbf60f34befa9b66be03fa5974b394bb3411 sourcemod-1.2.0
a71318396392e3c6d0ff31e069a60fbde59e0cea sourcemod-1.3.0 a71318396392e3c6d0ff31e069a60fbde59e0cea sourcemod-1.3.0
3f33d01fcc28b509bed30f7be07ed215cc000538 sourcemod-1.3.1
a3e8f7a7fdf7f012dd02ad491a2e1ccdad151687 sourcemod-1.3.2
+5 -5
View File
@@ -200,8 +200,8 @@ class SM:
else: else:
staticLibs = os.path.join(sdkPath, 'lib', 'linux') staticLibs = os.path.join(sdkPath, 'lib', 'linux')
workFolder = os.path.join(AMBuild.outputFolder, job.workFolder) workFolder = os.path.join(AMBuild.outputFolder, job.workFolder)
if sdk == 'l4d2': if sdk == 'ep2v' or sdk == 'l4d2':
for i in ['tier1_i486.a', 'mathlib_i486.a', 'vstdlib_linux.so', 'tier0_linux.so']: for i in ['tier1_i486.a', 'mathlib_i486.a', 'libvstdlib.so', 'libtier0.so']:
link = os.path.join(workFolder, i) link = os.path.join(workFolder, i)
target = os.path.join(staticLibs, i) target = os.path.join(staticLibs, i)
try: try:
@@ -268,9 +268,9 @@ class SM:
if not noLink: if not noLink:
if AMBuild.target['platform'] == 'linux': if AMBuild.target['platform'] == 'linux':
compiler['POSTLINKFLAGS'][0:0] = ['-lm'] compiler['POSTLINKFLAGS'][0:0] = ['-lm']
if sdk == 'l4d2': if sdk == 'ep2v' or sdk == 'l4d2':
compiler['POSTLINKFLAGS'][0:0] = ['tier0_linux.so'] compiler['POSTLINKFLAGS'][0:0] = ['libtier0.so']
compiler['POSTLINKFLAGS'][0:0] = ['vstdlib_linux.so'] compiler['POSTLINKFLAGS'][0:0] = ['libvstdlib.so']
else: else:
compiler['POSTLINKFLAGS'][0:0] = ['tier0_i486.so'] compiler['POSTLINKFLAGS'][0:0] = ['tier0_i486.so']
compiler['POSTLINKFLAGS'][0:0] = ['vstdlib_i486.so'] compiler['POSTLINKFLAGS'][0:0] = ['vstdlib_i486.so']
+43
View File
@@ -2,6 +2,49 @@ SourceMod Changelog
---------------------------- ----------------------------
SourceMod 1.3.3 [2010-06-23]
URL: http://wiki.alliedmods.net/SourceMod_1.3.3_Release_Notes
User Changes:
- Added support for CS:S on Orange Box
- Added gamedata for Resistance and Liberation (bug 4418).
- Updated gamedata for SourceForts, Empires, Obsidian Conflict, Zombie Master.
- Fixed memory corruption and leaks with some voice functionality (bug 4415).
- Fixed UI bug in sm_motd (bug 4460).
Developer Changes:
- Added new player condition (TFCond_CritCola, bug 4447).
- Fixed clientprefs deleting cookies twice in rare cases (bug 4412).
- Fixed OnClientConnected forward not firing for bots (bug 4443).
- Fixed sm_dump_datamaps crash (bug 4424).
- Fixed switch case comparisons failing with large numbers (bug 4457).
- Fixed rare crash in output hooks (bug 4422).
- Fixed bug with dynamically sized arrays being sliced (bug 4428).
- Fixed SendConVarValue() on TF2, DOD:S, L4D, and L4D2 (bug 4273).
- Fixed TF2 natives not being marked optional (bug 4389).
----------------------------
SourceMod 1.3.2 [2010-05-02]
URL: http://wiki.alliedmods.net/SourceMod_1.3.2_Release_Notes
User Changes:
- Support for recent TF, DoD, and L4D2 updates (bug 4356, bug 4361, bug 4371, bug 4374, bug 4375).
- Fixed rare crash when replicating cvars to clients (bug 4315).
- Lots of extra game support for Insurgency, ZPS, CSProMod, PVKII, and FortressForever (thanks
Nicholas "psychonic" hastings).
Developer Changes:
- Added TF functions for stunning, conditions, regeneration, and power play (bug 4166, bug 4331).
----------------------------
SourceMod 1.3.1 [2010-02-09] SourceMod 1.3.1 [2010-02-09]
URL: http://wiki.alliedmods.net/SourceMod_1.3.1_Release_Notes URL: http://wiki.alliedmods.net/SourceMod_1.3.1_Release_Notes
+28 -3
View File
@@ -80,21 +80,21 @@ sm_reserve_type 0
sm_reserved_slots 0 sm_reserved_slots 0
// Specifies whether or not reserved slots will be hidden (subtracted from max // Specifies whether or not reserved slots will be hidden (subtracted from max
// slot count). Valid values are 0 (visible) or 1 (hidden). // slot count). Valid values are 0 (Visible) or 1 (Hidden).
// -- // --
// Requires: reservedslots.smx // Requires: reservedslots.smx
// Default: 0 // Default: 0
sm_hide_slots 0 sm_hide_slots 0
// Specifies whether or not non-admins can send messages to admins using // Specifies whether or not non-admins can send messages to admins using
// say_team @<message>. Valid values are 0 (disabled) or 1 (enabled) // say_team @<message>. Valid values are 0 (Disabled) or 1 (Enabled)
// -- // --
// Requires: basechat.smx // Requires: basechat.smx
// Default: 1 // Default: 1
sm_chat_mode 1 sm_chat_mode 1
// Specifies whether or not "timeleft" will automaticly be triggered every // Specifies whether or not "timeleft" will automaticly be triggered every
// x seconds. Valid values are 0 (disabled) to 1800 seconds. // x seconds. Valid values are 0 (Disabled) to 1800 seconds.
// -- // --
// Requires: basetriggers.smx // Requires: basetriggers.smx
// Default: 0 // Default: 0
@@ -107,3 +107,28 @@ sm_timeleft_interval 0
// Requires: basetriggers.smx // Requires: basetriggers.smx
// Default: 1 // Default: 1
sm_trigger_show 1 sm_trigger_show 1
// Specifies whether or not to display vote progress to clients in the
// "hint" box (near the bottom of the screen in most games).
// Valid values are 0 (Disabled) or 1 (Enabled).
// --
// Default: 0
sm_vote_progress_hintbox 0
// Specifies whether or not to display vote progress to clients in the
// chat area. Valid values are 0 (Disabled) or 1 (Enabled).
// --
// Default: 0
sm_vote_progress_chat 0
// Specifies whether or not to display vote progress in the server console.
// Valid values are 0 (Disabled) or 1 (Enabled).
// --
// Default: 0
sm_vote_progress_console 0
// Specifies whether or not to display vote progress to clients in the
// client console. Valid values are 0 (Disabled) or 1 (Enabled).
// --
// Default: 0
sm_vote_progress_client_console 0
+1 -1
View File
@@ -504,7 +504,7 @@ SMCResult CGameConfig::ReadSMC_LeavingSection(const SMCStates *states)
void *handle = dlopen(info.dli_fname, RTLD_NOW); void *handle = dlopen(info.dli_fname, RTLD_NOW);
if (handle) if (handle)
{ {
#if SOURCE_ENGINE == SE_LEFT4DEAD2 #if (SOURCE_ENGINE == SE_ORANGEBOXVALVE) || (SOURCE_ENGINE == SE_LEFT4DEAD2)
final_addr = g_MemUtils.ResolveSymbol(handle, &s_TempSig.sig[1]); final_addr = g_MemUtils.ResolveSymbol(handle, &s_TempSig.sig[1]);
#else #else
final_addr = dlsym(handle, &s_TempSig.sig[1]); final_addr = dlsym(handle, &s_TempSig.sig[1]);
+5 -5
View File
@@ -100,7 +100,7 @@ ifeq "$(ENGINE)" "left4dead2"
CFLAGS += -DSOURCE_ENGINE=6 CFLAGS += -DSOURCE_ENGINE=6
METAMOD = $(MMSOURCE17)/core METAMOD = $(MMSOURCE17)/core
INCLUDE += -I$(HL2SDK)/public/game/server INCLUDE += -I$(HL2SDK)/public/game/server
SRCDS = $(SRCDS_BASE)/left4dead2_demo SRCDS = $(SRCDS_BASE)/left4dead2
BINARY = sourcemod.2.l4d2.so BINARY = sourcemod.2.l4d2.so
override ENGSET = true override ENGSET = true
endif endif
@@ -108,8 +108,8 @@ endif
CFLAGS += -DSE_EPISODEONE=1 -DSE_DARKMESSIAH=2 -DSE_ORANGEBOX=3 -DSE_ORANGEBOXVALVE=4 -DSE_LEFT4DEAD=5 -DSE_LEFT4DEAD2=6 CFLAGS += -DSE_EPISODEONE=1 -DSE_DARKMESSIAH=2 -DSE_ORANGEBOX=3 -DSE_ORANGEBOXVALVE=4 -DSE_LEFT4DEAD=5 -DSE_LEFT4DEAD2=6
ifeq "$(ENGINE)" "left4dead2" ifeq "$(ENGINE)" "left4dead2"
LINK += $(HL2LIB)/tier1_i486.a $(HL2LIB)/mathlib_i486.a vstdlib_linux.so \ LINK += $(HL2LIB)/tier1_i486.a $(HL2LIB)/mathlib_i486.a libvstdlib.so \
tier0_linux.so -static-libgcc libtier0.so -static-libgcc
else else
LINK += $(HL2LIB)/tier1_i486.a $(HL2LIB)/mathlib_i486.a vstdlib_i486.so \ LINK += $(HL2LIB)/tier1_i486.a $(HL2LIB)/mathlib_i486.a vstdlib_i486.so \
tier0_i486.so -static-libgcc tier0_i486.so -static-libgcc
@@ -154,8 +154,8 @@ $(BIN_DIR)/%.o: %.c
all: check all: check
mkdir -p $(BIN_DIR) mkdir -p $(BIN_DIR)
ifeq "$(ENGINE)" "left4dead2" ifeq "$(ENGINE)" "left4dead2"
ln -sf $(SRCDS)/bin/vstdlib_linux.so vstdlib_linux.so; ln -sf $(SRCDS)/bin/libvstdlib.so libvstdlib.so;
ln -sf $(SRCDS)/bin/tier0_linux.so tier0_linux.so; ln -sf $(SRCDS)/bin/libtier0.so libtier0.so;
else else
ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so; ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so;
ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so; ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so;
+23 -3
View File
@@ -466,7 +466,7 @@ bool PlayerManager::OnClientConnect_Post(edict_t *pEntity, const char *pszName,
pListener->OnClientConnected(client); pListener->OnClientConnected(client);
if (!pPlayer->IsConnected()) if (!pPlayer->IsConnected())
{ {
break; return true;
} }
} }
@@ -520,6 +520,11 @@ void PlayerManager::OnClientPutInServer(edict_t *pEntity, const char *playername
return; return;
} }
} }
cell_t res;
OnClientConnected->PushCell(client);
OnClientConnected->Execute(&res, NULL);
/* Now do authorization */ /* Now do authorization */
for (iter=m_hooks.begin(); iter!=m_hooks.end(); iter++) for (iter=m_hooks.begin(); iter!=m_hooks.end(); iter++)
{ {
@@ -1441,6 +1446,7 @@ CPlayer::CPlayer()
m_TempAdmin = false; m_TempAdmin = false;
m_Info = NULL; m_Info = NULL;
m_bAdminCheckSignalled = false; m_bAdminCheckSignalled = false;
m_UserId = -1;
m_bIsInKickQueue = false; m_bIsInKickQueue = false;
m_LastPassword.clear(); m_LastPassword.clear();
m_LangId = SOURCEMOD_LANGUAGE_ENGLISH; m_LangId = SOURCEMOD_LANGUAGE_ENGLISH;
@@ -1618,8 +1624,22 @@ void CPlayer::Kick(const char *str)
{ {
MarkAsBeingKicked(); MarkAsBeingKicked();
INetChannel *pNetChan = static_cast<INetChannel *>(engine->GetPlayerNetInfo(m_iIndex)); INetChannel *pNetChan = static_cast<INetChannel *>(engine->GetPlayerNetInfo(m_iIndex));
IClient *pClient = static_cast<IClient *>(pNetChan->GetMsgHandler()); if (pNetChan == NULL)
pClient->Disconnect("%s", str); {
/* What does this even mean? Hell if I know. */
int userid = GetUserId();
if (userid > 0)
{
char buffer[255];
UTIL_Format(buffer, sizeof(buffer), "kickid %d %s\n", userid, str);
engine->ServerCommand(buffer);
}
}
else
{
IClient *pClient = static_cast<IClient *>(pNetChan->GetMsgHandler());
pClient->Disconnect("%s", str);
}
} }
void CPlayer::Authorize_Post() void CPlayer::Authorize_Post()
+16 -5
View File
@@ -2,7 +2,7 @@
* vim: set ts=4 : * vim: set ts=4 :
* ============================================================================= * =============================================================================
* SourceMod * SourceMod
* Copyright (C) 2004-2008 AlliedModders LLC. All rights reserved. * Copyright (C) 2004-2010 AlliedModders LLC. All rights reserved.
* ============================================================================= * =============================================================================
* *
* This program is free software; you can redistribute it and/or modify it under * This program is free software; you can redistribute it and/or modify it under
@@ -46,6 +46,12 @@
#include "Logger.h" #include "Logger.h"
#include "ConsoleDetours.h" #include "ConsoleDetours.h"
#if SOURCE_ENGINE >= SE_ORANGEBOXVALVE
#define NETMSG_BITS 6
#else
#define NETMSG_BITS 5
#endif
#if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2) #if (SOURCE_ENGINE == SE_LEFT4DEAD) || (SOURCE_ENGINE == SE_LEFT4DEAD2)
#define NET_SETCONVAR 6 #define NET_SETCONVAR 6
#else #else
@@ -189,7 +195,7 @@ static void ReplicateConVar(ConVar *pConVar)
char data[256]; char data[256];
bf_write buffer(data, sizeof(data)); bf_write buffer(data, sizeof(data));
buffer.WriteUBitLong(NET_SETCONVAR, 5); buffer.WriteUBitLong(NET_SETCONVAR, NETMSG_BITS);
buffer.WriteByte(1); buffer.WriteByte(1);
buffer.WriteString(pConVar->GetName()); buffer.WriteString(pConVar->GetName());
buffer.WriteString(pConVar->GetString()); buffer.WriteString(pConVar->GetString());
@@ -200,8 +206,8 @@ static void ReplicateConVar(ConVar *pConVar)
if (pPlayer && pPlayer->IsInGame() && !pPlayer->IsFakeClient()) if (pPlayer && pPlayer->IsInGame() && !pPlayer->IsFakeClient())
{ {
INetChannel *netchan = static_cast<INetChannel *>(engine->GetPlayerNetInfo(i)); if (INetChannel *netchan = static_cast<INetChannel *>(engine->GetPlayerNetInfo(i)))
netchan->SendData(buffer); netchan->SendData(buffer);
} }
} }
} }
@@ -1299,7 +1305,7 @@ static cell_t SendConVarValue(IPluginContext *pContext, const cell_t *params)
char data[256]; char data[256];
bf_write buffer(data, sizeof(data)); bf_write buffer(data, sizeof(data));
buffer.WriteUBitLong(NET_SETCONVAR, 5); buffer.WriteUBitLong(NET_SETCONVAR, NETMSG_BITS);
buffer.WriteByte(1); buffer.WriteByte(1);
buffer.WriteString(pConVar->GetName()); buffer.WriteString(pConVar->GetName());
buffer.WriteString(value); buffer.WriteString(value);
@@ -1322,6 +1328,11 @@ static cell_t SendConVarValue(IPluginContext *pContext, const cell_t *params)
} }
INetChannel *netchan = static_cast<INetChannel *>(engine->GetPlayerNetInfo(params[1])); INetChannel *netchan = static_cast<INetChannel *>(engine->GetPlayerNetInfo(params[1]));
if (netchan == NULL)
{
return 0;
}
netchan->SendData(buffer); netchan->SendData(buffer);
return 1; return 1;
+37
View File
@@ -720,6 +720,10 @@ static cell_t GetTimeConnected(IPluginContext *pContext, const cell_t *params)
} }
INetChannelInfo *pInfo = engine->GetPlayerNetInfo(client); INetChannelInfo *pInfo = engine->GetPlayerNetInfo(client);
if (pInfo == NULL)
{
return 0;
}
return sp_ftoc(pInfo->GetTimeConnected()); return sp_ftoc(pInfo->GetTimeConnected());
} }
@@ -739,6 +743,10 @@ static cell_t GetDataRate(IPluginContext *pContext, const cell_t *params)
} }
INetChannelInfo *pInfo = engine->GetPlayerNetInfo(client); INetChannelInfo *pInfo = engine->GetPlayerNetInfo(client);
if (pInfo == NULL)
{
return 0;
}
return pInfo->GetDataRate(); return pInfo->GetDataRate();
} }
@@ -758,6 +766,10 @@ static cell_t IsTimingOut(IPluginContext *pContext, const cell_t *params)
} }
INetChannelInfo *pInfo = engine->GetPlayerNetInfo(client); INetChannelInfo *pInfo = engine->GetPlayerNetInfo(client);
if (pInfo == NULL)
{
return 1;
}
return pInfo->IsTimingOut() ? 1 : 0; return pInfo->IsTimingOut() ? 1 : 0;
} }
@@ -782,6 +794,10 @@ static cell_t GetLatency(IPluginContext *pContext, const cell_t *params)
} }
INetChannelInfo *pInfo = engine->GetPlayerNetInfo(client); INetChannelInfo *pInfo = engine->GetPlayerNetInfo(client);
if (pInfo == NULL)
{
return sp_ftoc(-1);
}
if (params[2] == MAX_FLOWS) if (params[2] == MAX_FLOWS)
{ {
@@ -815,6 +831,10 @@ static cell_t GetAvgLatency(IPluginContext *pContext, const cell_t *params)
} }
INetChannelInfo *pInfo = engine->GetPlayerNetInfo(client); INetChannelInfo *pInfo = engine->GetPlayerNetInfo(client);
if (pInfo == NULL)
{
return sp_ftoc(-1);
}
if (params[2] == MAX_FLOWS) if (params[2] == MAX_FLOWS)
{ {
@@ -848,6 +868,10 @@ static cell_t GetAvgLoss(IPluginContext *pContext, const cell_t *params)
} }
INetChannelInfo *pInfo = engine->GetPlayerNetInfo(client); INetChannelInfo *pInfo = engine->GetPlayerNetInfo(client);
if (pInfo == NULL)
{
return sp_ftoc(-1);
}
if (params[2] == MAX_FLOWS) if (params[2] == MAX_FLOWS)
{ {
@@ -881,6 +905,10 @@ static cell_t GetAvgChoke(IPluginContext *pContext, const cell_t *params)
} }
INetChannelInfo *pInfo = engine->GetPlayerNetInfo(client); INetChannelInfo *pInfo = engine->GetPlayerNetInfo(client);
if (pInfo == NULL)
{
return sp_ftoc(-1);
}
if (params[2] == MAX_FLOWS) if (params[2] == MAX_FLOWS)
{ {
@@ -914,6 +942,10 @@ static cell_t GetAvgData(IPluginContext *pContext, const cell_t *params)
} }
INetChannelInfo *pInfo = engine->GetPlayerNetInfo(client); INetChannelInfo *pInfo = engine->GetPlayerNetInfo(client);
if (pInfo == NULL)
{
return 0;
}
if (params[2] == MAX_FLOWS) if (params[2] == MAX_FLOWS)
{ {
@@ -948,6 +980,11 @@ static cell_t GetAvgPackets(IPluginContext *pContext, const cell_t *params)
INetChannelInfo *pInfo = engine->GetPlayerNetInfo(client); INetChannelInfo *pInfo = engine->GetPlayerNetInfo(client);
if (pInfo == NULL)
{
return 0;
}
if (params[2] == MAX_FLOWS) if (params[2] == MAX_FLOWS)
{ {
value = pInfo->GetAvgPackets(FLOW_INCOMING) + pInfo->GetAvgPackets(FLOW_OUTGOING); value = pInfo->GetAvgPackets(FLOW_INCOMING) + pInfo->GetAvgPackets(FLOW_OUTGOING);
-2
View File
@@ -313,8 +313,6 @@ void CookieManager::ClientConnectCallback(int serial, IQuery *data)
row->GetInt(3, (int *)&access); row->GetInt(3, (int *)&access);
parent = CreateCookie(name, desc, access); parent = CreateCookie(name, desc, access);
cookieTrie.insert(name, parent);
cookieList.push_back(parent);
} }
pData->parent = parent; pData->parent = parent;
+5 -5
View File
@@ -1,13 +1,14 @@
# vim: set ts=2 sw=2 tw=99 noet ft=python: # vim: set ts=2 sw=2 tw=99 noet ft=python:
import os import os
sdk = SM.sdkInfo['ep1'] sdk = SM.sdkInfo['ep2v']
compiler = SM.DefaultHL2Compiler('extensions/cstrike', 'ep1')
compiler = SM.DefaultHL2Compiler('extensions/cstrike', 'ep2v')
name = 'game.cstrike.ext.' + sdk['ext'] name = 'game.cstrike.ext.' + sdk['ext']
extension = AMBuild.AddJob(name) extension = AMBuild.AddJob(name)
binary = Cpp.LibraryBuilder(name, AMBuild, extension, compiler) binary = Cpp.LibraryBuilder(name, AMBuild, extension, compiler)
SM.PreSetupHL2Job(extension, binary, 'ep1') SM.PreSetupHL2Job(extension, binary, 'ep2v')
binary.AddSourceFiles('extensions/cstrike', [ binary.AddSourceFiles('extensions/cstrike', [
'extension.cpp', 'extension.cpp',
'natives.cpp', 'natives.cpp',
@@ -15,7 +16,6 @@ binary.AddSourceFiles('extensions/cstrike', [
'timeleft.cpp', 'timeleft.cpp',
'sdk/smsdk_ext.cpp' 'sdk/smsdk_ext.cpp'
]) ])
SM.PostSetupHL2Job(extension, binary, 'ep1') SM.PostSetupHL2Job(extension, binary, 'ep2v')
SM.AutoVersion('extensions/cstrike', binary) SM.AutoVersion('extensions/cstrike', binary)
binary.SendToJob() binary.SendToJob()
+83 -58
View File
@@ -2,11 +2,11 @@
# Makefile written by David "BAILOPAN" Anderson # Makefile written by David "BAILOPAN" Anderson
SMSDK = ../.. SMSDK = ../..
SRCDS_BASE = ~/srcds
HL2SDK_ORIG = ../../../hl2sdk HL2SDK_ORIG = ../../../hl2sdk
HL2SDK_OB = ../../../hl2sdk-ob HL2SDK_OB = ../../../hl2sdk-ob
HL2SDK_OB_VALVE = ../../../hl2sdk-ob-valve HL2SDK_OB_VALVE = ../../../hl2sdk-ob-valve
HL2SDK_L4D = ../../../hl2sdk-l4d HL2SDK_L4D = ../../../hl2sdk-l4d
HL2SDK_L4D2 = ../../../hl2sdk-l4d2
MMSOURCE17 = ../../../mmsource-1.7 MMSOURCE17 = ../../../mmsource-1.7
##################################### #####################################
@@ -31,75 +31,97 @@ CPP_GCC4_FLAGS = -fvisibility-inlines-hidden
CPP = gcc CPP = gcc
override ENGSET = false override ENGSET = false
ifeq "$(ENGINE)" "original"
HL2SDK = $(HL2SDK_ORIG) # Check for valid list of engines
HL2PUB = $(HL2SDK)/public ifneq (,$(filter original orangebox orangeboxvalve left4dead left4dead2,$(ENGINE)))
HL2LIB = $(HL2SDK)/linux_sdk
CFLAGS += -DSOURCE_ENGINE=1
METAMOD = $(MMSOURCE17)/core-legacy
INCLUDE += -I$(HL2SDK)/public/dlls
SRCDS = $(SRCDS_BASE)
GAMEFIX = 1.ep1
override ENGSET = true
endif
ifeq "$(ENGINE)" "orangebox"
HL2SDK = $(HL2SDK_OB)
HL2PUB = $(HL2SDK)/public
HL2LIB = $(HL2SDK)/lib/linux
CFLAGS += -DSOURCE_ENGINE=3
METAMOD = $(MMSOURCE17)/core
INCLUDE += -I$(HL2SDK)/public/game/server
SRCDS = $(SRCDS_BASE)/orangebox
GAMEFIX = 2.ep2
override ENGSET = true
endif
ifeq "$(ENGINE)" "orangeboxvalve"
HL2SDK = $(HL2SDK_OB_VALVE)
HL2PUB = $(HL2SDK)/public
HL2LIB = $(HL2SDK)/lib/linux
CFLAGS += -DSOURCE_ENGINE=4
METAMOD = $(MMSOURCE17)/core
INCLUDE += -I$(HL2SDK)/public/game/server
SRCDS = $(SRCDS_BASE)/orangebox
GAMEFIX = 2.ep2v
override ENGSET = true
endif
ifeq "$(ENGINE)" "left4dead"
HL2SDK = $(HL2SDK_L4D)
HL2PUB = $(HL2SDK)/public
HL2LIB = $(HL2SDK)/lib/linux
CFLAGS += -DSOURCE_ENGINE=5
METAMOD = $(MMSOURCE17)/core
INCLUDE += -I$(HL2SDK)/public/game/server
SRCDS = $(SRCDS_BASE)/l4d
GAMEFIX = 2.l4d
override ENGSET = true override ENGSET = true
endif endif
ifeq "$(ENGINE)" "original"
HL2SDK = $(HL2SDK_ORIG)
CFLAGS += -DSOURCE_ENGINE=1
GAMEFIX = 1.ep1
endif
ifeq "$(ENGINE)" "orangebox"
HL2SDK = $(HL2SDK_OB)
CFLAGS += -DSOURCE_ENGINE=3
GAMEFIX = 2.ep2
endif
ifeq "$(ENGINE)" "orangeboxvalve"
HL2SDK = $(HL2SDK_OB_VALVE)
CFLAGS += -DSOURCE_ENGINE=4
GAMEFIX = 2.ep2v
endif
ifeq "$(ENGINE)" "left4dead"
HL2SDK = $(HL2SDK_L4D)
CFLAGS += -DSOURCE_ENGINE=5
GAMEFIX = 2.l4d
endif
ifeq "$(ENGINE)" "left4dead2"
HL2SDK = $(HL2SDK_L4D2)
CFLAGS += -DSOURCE_ENGINE=6
GAMEFIX = 2.l4d2
endif
HL2PUB = $(HL2SDK)/public
ifeq "$(ENGINE)" "original"
INCLUDE += -I$(HL2SDK)/public/dlls
METAMOD = $(MMSOURCE17)/core-legacy
else
INCLUDE += -I$(HL2SDK)/public/game/server
METAMOD = $(MMSOURCE17)/core
endif
OS := $(shell uname -s)
ifeq "$(OS)" "Darwin"
LIB_EXT = dylib
HL2LIB = $(HL2SDK)/lib/mac
else
LIB_EXT = so
ifeq "$(ENGINE)" "original"
HL2LIB = $(HL2SDK)/linux_sdk
else
HL2LIB = $(HL2SDK)/lib/linux
endif
endif
# if ENGINE is orig, OB, or L4D
ifneq (,$(filter original orangebox left4dead,$(ENGINE)))
LIB_SUFFIX = _i486.$(LIB_EXT)
else
LIB_PREFIX = lib
LIB_SUFFIX = .$(LIB_EXT)
endif
ifeq "$(USEMETA)" "true" ifeq "$(USEMETA)" "true"
LINK_HL2 = $(HL2LIB)/tier1_i486.a tier0_i486.so LINK_HL2 = $(LIB_PREFIX)vstdlib$(LIB_SUFFIX) $(LIB_PREFIX)tier0$(LIB_SUFFIX)
LINK += $(LINK_HL2) LINK += $(LINK_HL2)
INCLUDE += -I. -I.. -Isdk -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \ INCLUDE += -I. -I.. -Isdk -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \
-I$(METAMOD) -I$(METAMOD)/sourcehook -I$(SMSDK)/public -I$(SMSDK)/public/extensions \ -I$(METAMOD) -I$(METAMOD)/sourcehook -I$(SMSDK)/public -I$(SMSDK)/public/extensions \
-I$(SMSDK)/public/sourcepawn -I$(SMSDK)/public/sourcepawn
CFLAGS += -DSE_EPISODEONE=1 -DSE_DARKMESSIAH=2 -DSE_ORANGEBOX=3 -DSE_ORANGEBOXVALVE=4 -DSE_LEFT4DEAD=5 CFLAGS += -DSE_EPISODEONE=1 -DSE_DARKMESSIAH=2 -DSE_ORANGEBOX=3 -DSE_ORANGEBOXVALVE=4 \
-DSE_LEFT4DEAD=5 -DSE_LEFT4DEAD2=6
else else
INCLUDE += -I. -I.. -Isdk -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn INCLUDE += -I. -I.. -Isdk -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn
endif endif
LINK += -m32 -ldl -lm LINK += -m32 -ldl -lm
CFLAGS += -D_LINUX -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp \ CFLAGS += -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp \
-D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -Werror -mfpmath=sse \ -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -Wall -Werror \
-msse -DSOURCEMOD_BUILD -DHAVE_STDINT_H -m32 -mfpmath=sse -msse -DSOURCEMOD_BUILD -DHAVE_STDINT_H -m32
CPPFLAGS += -Wno-non-virtual-dtor -fno-exceptions -fno-rtti CPPFLAGS += -Wno-non-virtual-dtor -fno-exceptions -fno-rtti
################################################ ################################################
### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ### ### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
################################################ ################################################
BINARY = $(PROJECT).ext.$(GAMEFIX).$(LIB_EXT)
ifeq "$(DEBUG)" "true" ifeq "$(DEBUG)" "true"
BIN_DIR = Debug BIN_DIR = Debug
CFLAGS += $(C_DEBUG_FLAGS) CFLAGS += $(C_DEBUG_FLAGS)
@@ -112,13 +134,14 @@ ifeq "$(USEMETA)" "true"
BIN_DIR := $(BIN_DIR).$(ENGINE) BIN_DIR := $(BIN_DIR).$(ENGINE)
endif endif
OS := $(shell uname -s)
ifeq "$(OS)" "Darwin" ifeq "$(OS)" "Darwin"
LINK += -dynamiclib LIB_EXT = dylib
BINARY = $(PROJECT).ext.$(GAMEFIX).dylib CFLAGS += -isysroot /Developer/SDKs/MacOSX10.5.sdk
LINK += -dynamiclib -lstdc++ -mmacosx-version-min=10.5
else else
LINK += -static-libgcc -shared LIB_EXT = so
BINARY = $(PROJECT).ext.$(GAMEFIX).so CFLAGS += -D_LINUX
LINK += -shared
endif endif
GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1) GCC_VERSION := $(shell $(CPP) -dumpversion >&1 | cut -b1)
@@ -127,7 +150,7 @@ ifeq "$(GCC_VERSION)" "4"
CPPFLAGS += $(CPP_GCC4_FLAGS) CPPFLAGS += $(CPP_GCC4_FLAGS)
endif endif
OBJ_LINUX := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o) OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)
$(BIN_DIR)/%.o: %.cpp $(BIN_DIR)/%.o: %.cpp
$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $< $(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
@@ -135,18 +158,20 @@ $(BIN_DIR)/%.o: %.cpp
all: check all: check
mkdir -p $(BIN_DIR)/sdk mkdir -p $(BIN_DIR)/sdk
if [ "$(USEMETA)" = "true" ]; then \ if [ "$(USEMETA)" = "true" ]; then \
ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so; \ ln -sf $(HL2LIB)/$(LIB_PREFIX)vstdlib$(LIB_SUFFIX); \
ln -sf $(HL2LIB)/$(LIB_PREFIX)tier0$(LIB_SUFFIX); \
fi fi
$(MAKE) -f Makefile extension $(MAKE) -f Makefile extension
check: check:
if [ "$(USEMETA)" = "true" ] && [ "$(ENGSET)" = "false" ]; then \ if [ "$(USEMETA)" = "true" ] && [ "$(ENGSET)" = "false" ]; then \
echo "You must supply ENGINE=left4dead or ENGINE=orangebox or ENGINE=original"; \ echo "You must supply one of the following values for ENGINE:"; \
echo "left4dead2, left4dead, orangeboxvalve, orangebox, or original"; \
exit 1; \ exit 1; \
fi fi
extension: check $(OBJ_LINUX) extension: check $(OBJ_BIN)
$(CPP) $(INCLUDE) $(OBJ_LINUX) $(LINK) -o $(BIN_DIR)/$(BINARY) $(CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -o $(BIN_DIR)/$(BINARY)
debug: debug:
$(MAKE) -f Makefile all DEBUG=true $(MAKE) -f Makefile all DEBUG=true
-5
View File
@@ -76,11 +76,6 @@ bool CStrike::SDK_OnLoad(char *error, size_t maxlength, bool late)
sharesys->AddNatives(myself, g_CSNatives); sharesys->AddNatives(myself, g_CSNatives);
sharesys->RegisterLibrary(myself, "cstrike"); sharesys->RegisterLibrary(myself, "cstrike");
if ((g_msgHintText = usermsgs->GetMessageIndex("HintText")) != -1)
{
sharesys->OverrideNatives(myself, g_CS_PrintHintText);
}
playerhelpers->RegisterCommandTargetProcessor(this); playerhelpers->RegisterCommandTargetProcessor(this);
return true; return true;
-1
View File
@@ -130,6 +130,5 @@ public:
extern IBinTools *g_pBinTools; extern IBinTools *g_pBinTools;
extern IGameConfig *g_pGameConf; extern IGameConfig *g_pGameConf;
extern int g_msgHintText; extern int g_msgHintText;
extern sp_nativeinfo_t g_CS_PrintHintText[];
#endif // _INCLUDE_SOURCEMOD_EXTENSION_PROPER_H_ #endif // _INCLUDE_SOURCEMOD_EXTENSION_PROPER_H_
+6
View File
@@ -8,9 +8,11 @@ Global
Debug - Episode1|Win32 = Debug - Episode1|Win32 Debug - Episode1|Win32 = Debug - Episode1|Win32
Debug - Old Metamod|Win32 = Debug - Old Metamod|Win32 Debug - Old Metamod|Win32 = Debug - Old Metamod|Win32
Debug - Orange Box|Win32 = Debug - Orange Box|Win32 Debug - Orange Box|Win32 = Debug - Orange Box|Win32
Debug - Orange Box Valve|Win32 = Debug - Orange Box Valve|Win32
Release - Episode 1|Win32 = Release - Episode 1|Win32 Release - Episode 1|Win32 = Release - Episode 1|Win32
Release - Old Metamod|Win32 = Release - Old Metamod|Win32 Release - Old Metamod|Win32 = Release - Old Metamod|Win32
Release - Orange Box|Win32 = Release - Orange Box|Win32 Release - Orange Box|Win32 = Release - Orange Box|Win32
Release - Orange Box Valve|Win32 = Release - Orange Box Valve|Win32
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Debug - Episode1|Win32.ActiveCfg = Debug - Episode1|Win32 {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Debug - Episode1|Win32.ActiveCfg = Debug - Episode1|Win32
@@ -19,12 +21,16 @@ Global
{B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Debug - Old Metamod|Win32.Build.0 = Debug - Old Metamod|Win32 {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Debug - Old Metamod|Win32.Build.0 = Debug - Old Metamod|Win32
{B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Debug - Orange Box|Win32.ActiveCfg = Debug - Orange Box|Win32 {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Debug - Orange Box|Win32.ActiveCfg = Debug - Orange Box|Win32
{B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Debug - Orange Box|Win32.Build.0 = Debug - Orange Box|Win32 {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Debug - Orange Box|Win32.Build.0 = Debug - Orange Box|Win32
{B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Debug - Orange Box Valve|Win32.ActiveCfg = Debug - Orange Box Valve|Win32
{B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Debug - Orange Box Valve|Win32.Build.0 = Debug - Orange Box Valve|Win32
{B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Release - Episode 1|Win32.ActiveCfg = Release - Episode 1|Win32 {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Release - Episode 1|Win32.ActiveCfg = Release - Episode 1|Win32
{B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Release - Episode 1|Win32.Build.0 = Release - Episode 1|Win32 {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Release - Episode 1|Win32.Build.0 = Release - Episode 1|Win32
{B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Release - Old Metamod|Win32.ActiveCfg = Release - Old Metamod|Win32 {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Release - Old Metamod|Win32.ActiveCfg = Release - Old Metamod|Win32
{B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Release - Old Metamod|Win32.Build.0 = Release - Old Metamod|Win32 {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Release - Old Metamod|Win32.Build.0 = Release - Old Metamod|Win32
{B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Release - Orange Box|Win32.ActiveCfg = Release - Orange Box|Win32 {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Release - Orange Box|Win32.ActiveCfg = Release - Orange Box|Win32
{B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Release - Orange Box|Win32.Build.0 = Release - Orange Box|Win32 {B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Release - Orange Box|Win32.Build.0 = Release - Orange Box|Win32
{B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Release - Orange Box Valve|Win32.ActiveCfg = Release - Orange Box Valve|Win32
{B3E797CF-4E77-4C9D-B8A8-7589B6902206}.Release - Orange Box Valve|Win32.Build.0 = Release - Orange Box Valve|Win32
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
+163
View File
@@ -342,6 +342,169 @@
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
/> />
</Configuration> </Configuration>
<Configuration
Name="Debug - Orange Box Valve|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..;..\sdk;..\..\..\public;..\..\..\public\sourcepawn;..\..\..\public\extensions;&quot;$(HL2SDKOBVALVE)\public&quot;;&quot;$(HL2SDKOBVALVE)\public\game\server&quot;;&quot;$(HL2SDKOBVALVE)\public\engine&quot;;&quot;$(HL2SDKOBVALVE)\public\tier0&quot;;&quot;$(HL2SDKOBVALVE)\public\tier1&quot;;&quot;$(MMSOURCE17)\core&quot;;&quot;$(MMSOURCE17)\core\sourcehook&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;CSTRIKE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;SOURCEMOD_BUILD"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
EnableEnhancedInstructionSet="0"
RuntimeTypeInfo="false"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="BINARY_NAME=\&quot;$(TargetFileName)\&quot;"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="&quot;$(HL2SDKOBVALVE)\lib\public\tier0.lib&quot; &quot;$(HL2SDKOBVALVE)\lib\public\tier1.lib&quot;"
OutputFile="$(OutDir)\game.cstrike.ext.2.ep2v.dll"
LinkIncremental="2"
IgnoreDefaultLibraryNames="LIBC;LIBCD;LIBCMT"
GenerateDebugInformation="true"
SubSystem="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release - Orange Box Valve|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
FavorSizeOrSpeed="1"
AdditionalIncludeDirectories="..;..\sdk;..\..\..\public;..\..\..\public\sourcepawn;..\..\..\public\extensions;&quot;$(HL2SDKOBVALVE)\public&quot;;&quot;$(HL2SDKOBVALVE)\public\game\server&quot;;&quot;$(HL2SDKOBVALVE)\public\engine&quot;;&quot;$(HL2SDKOBVALVE)\public\tier0&quot;;&quot;$(HL2SDKOBVALVE)\public\tier1&quot;;&quot;$(MMSOURCE17)\core&quot;;&quot;$(MMSOURCE17)\core\sourcehook&quot;"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;CSTRIKE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;SOURCEMOD_BUILD"
RuntimeLibrary="0"
EnableEnhancedInstructionSet="0"
RuntimeTypeInfo="false"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="BINARY_NAME=\&quot;$(TargetFileName)\&quot;"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="&quot;$(HL2SDKOBVALVE)\lib\public\tier0.lib&quot; &quot;$(HL2SDKOBVALVE)\lib\public\tier1.lib&quot;"
OutputFile="$(OutDir)\game.cstrike.ext.2.ep2v.dll"
LinkIncremental="1"
IgnoreDefaultLibraryNames="LIBC;LIBCD;LIBCMTD"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration <Configuration
Name="Debug - Episode1|Win32" Name="Debug - Episode1|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)" OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-44
View File
@@ -71,45 +71,6 @@ inline CBaseEntity *GetCBaseEntity(int num, bool isplayer)
return pUnk->GetBaseEntity(); return pUnk->GetBaseEntity();
} }
static cell_t CS_PrintHintText(IPluginContext *pContext, const cell_t *params)
{
int client = params[1];
IGamePlayer *pPlayer = playerhelpers->GetGamePlayer(params[1]);
if (!pPlayer)
{
return pContext->ThrowNativeError("Client index %d is invalid", client);
}
if (!pPlayer->IsInGame())
{
return pContext->ThrowNativeError("Client %d is not in game", client);
}
g_pSM->SetGlobalTarget(client);
char buffer[192];
g_pSM->FormatString(buffer, sizeof(buffer), pContext, params, 2);
/* Check for an error before printing to the client */
if (pContext->GetLastNativeError() != SP_ERROR_NONE)
{
return 0;
}
bf_write *pBitBuf = usermsgs->StartMessage(g_msgHintText, &params[1], 1, USERMSG_RELIABLE);
if (pBitBuf == NULL)
{
return pContext->ThrowNativeError("Could not send a usermessage");
}
pBitBuf->WriteByte(1);
pBitBuf->WriteString(buffer);
usermsgs->EndMessage();
return 1;
}
static cell_t CS_RespawnPlayer(IPluginContext *pContext, const cell_t *params) static cell_t CS_RespawnPlayer(IPluginContext *pContext, const cell_t *params)
{ {
static ICallWrapper *pWrapper = NULL; static ICallWrapper *pWrapper = NULL;
@@ -166,8 +127,3 @@ sp_nativeinfo_t g_CSNatives[] =
{NULL, NULL} {NULL, NULL}
}; };
sp_nativeinfo_t g_CS_PrintHintText[] =
{
{"PrintHintText", CS_PrintHintText},
{NULL, NULL},
};
+4 -4
View File
@@ -86,13 +86,13 @@ ifeq "$(ENGINE)" "left4dead2"
CFLAGS += -DSOURCE_ENGINE=6 CFLAGS += -DSOURCE_ENGINE=6
METAMOD = $(MMSOURCE17)/core METAMOD = $(MMSOURCE17)/core
INCLUDE += -I$(HL2SDK)/public/game/server -I$(HL2SDK)/common -I$(HL2SDK)/game/shared INCLUDE += -I$(HL2SDK)/public/game/server -I$(HL2SDK)/common -I$(HL2SDK)/game/shared
SRCDS = $(SRCDS_BASE)/left4dead2_demo SRCDS = $(SRCDS_BASE)/left4dead2
GAMEFIX = 2.l4d2 GAMEFIX = 2.l4d2
override ENGSET = true override ENGSET = true
endif endif
ifeq "$(ENGINE)" "left4dead2" ifeq "$(ENGINE)" "left4dead2"
LINK_HL2 = $(HL2LIB)/tier1_i486.a $(HL2LIB)/mathlib_i486.a vstdlib_linux.so tier0_linux.so LINK_HL2 = $(HL2LIB)/tier1_i486.a $(HL2LIB)/mathlib_i486.a libvstdlib.so libtier0.so
else else
LINK_HL2 = $(HL2LIB)/tier1_i486.a $(HL2LIB)/mathlib_i486.a vstdlib_i486.so tier0_i486.so LINK_HL2 = $(HL2LIB)/tier1_i486.a $(HL2LIB)/mathlib_i486.a vstdlib_i486.so tier0_i486.so
endif endif
@@ -150,8 +150,8 @@ $(BIN_DIR)/%.o: %.cpp
all: check all: check
mkdir -p $(BIN_DIR)/sdk mkdir -p $(BIN_DIR)/sdk
ifeq "$(ENGINE)" "left4dead2" ifeq "$(ENGINE)" "left4dead2"
ln -sf $(SRCDS)/bin/vstdlib_linux.so vstdlib_linux.so; ln -sf $(SRCDS)/bin/libvstdlib.so libvstdlib.so;
ln -sf $(SRCDS)/bin/tier0_linux.so tier0_linux.so; ln -sf $(SRCDS)/bin/libtier0.so libtier0.so;
else else
ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so; ln -sf $(SRCDS)/bin/vstdlib_i486.so vstdlib_i486.so;
ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so; ln -sf $(SRCDS)/bin/tier0_i486.so tier0_i486.so;
+10
View File
@@ -199,6 +199,11 @@ void EntityOutputManager::ShutdownFireEventDetour()
void EntityOutputManager::FireEventDetour(void *pOutput, CBaseEntity *pActivator, CBaseEntity *pCaller, float fDelay) void EntityOutputManager::FireEventDetour(void *pOutput, CBaseEntity *pActivator, CBaseEntity *pCaller, float fDelay)
{ {
if (!pCaller)
{
return;
}
char sOutput[20]; char sOutput[20];
Q_snprintf(sOutput, sizeof(sOutput), "%x", pOutput); Q_snprintf(sOutput, sizeof(sOutput), "%x", pOutput);
@@ -213,6 +218,11 @@ void EntityOutputManager::FireEventDetour(void *pOutput, CBaseEntity *pActivator
const char *classname = GetEntityClassname(pCaller); const char *classname = GetEntityClassname(pCaller);
const char *outputname = FindOutputName(pOutput, pCaller); const char *outputname = FindOutputName(pOutput, pCaller);
if (!outputname)
{
return;
}
pOutputName = FindOutputPointer(classname, outputname, false); pOutputName = FindOutputPointer(classname, outputname, false);
if (!pOutputName) if (!pOutputName)
+1 -1
View File
@@ -129,7 +129,7 @@ static cell_t PrepSDKCall_SetSignature(IPluginContext *pContext, const cell_t *p
{ {
return 0; return 0;
} }
#if SOURCE_ENGINE == SE_LEFT4DEAD2 #if (SOURCE_ENGINE == SE_ORANGEBOXVALVE) || (SOURCE_ENGINE == SE_LEFT4DEAD2)
s_call_addr = memutils->ResolveSymbol(handle, &sig[1]); s_call_addr = memutils->ResolveSymbol(handle, &sig[1]);
#else #else
s_call_addr = dlsym(handle, &sig[1]); s_call_addr = dlsym(handle, &sig[1]);
+5
View File
@@ -811,6 +811,11 @@ CON_COMMAND(sm_dump_datamaps, "Dumps the data map list as a text file")
typedescription_t *datamap = gamehelpers->FindInDataMap(pMap, "m_iEFlags"); typedescription_t *datamap = gamehelpers->FindInDataMap(pMap, "m_iEFlags");
if (!datamap)
{
continue;
}
int *eflags = (int *)((char *)entity->GetBaseEntity() + datamap->fieldOffset[TD_OFFSET_NORMAL]); int *eflags = (int *)((char *)entity->GetBaseEntity() + datamap->fieldOffset[TD_OFFSET_NORMAL]);
*eflags |= (1<<0); // EFL_KILLME *eflags |= (1<<0); // EFL_KILLME
} }
+3 -4
View File
@@ -199,13 +199,13 @@ void SDKTools::OnClientDisconnecting(int client)
g_VoiceMap[i][client] = Listen_Default; g_VoiceMap[i][client] = Listen_Default;
if (DecHookCount()) if (DecHookCount())
{ {
return; break;
} }
} }
} }
/* Reset this client's mutes, just in case */ /* Reset this client's mutes */
memset(&g_ClientMutes[client], 0, sizeof(int) * 65); memset(&g_ClientMutes[client], 0, sizeof(bool) * 65);
/* Reset other clients who send to this client */ /* Reset other clients who send to this client */
if (g_ClientOverrides[client] > 0) if (g_ClientOverrides[client] > 0)
@@ -213,7 +213,6 @@ void SDKTools::OnClientDisconnecting(int client)
DecHookCount(g_ClientOverrides[client]); DecHookCount(g_ClientOverrides[client]);
g_ClientOverrides[client] = 0; g_ClientOverrides[client] = 0;
memset(&g_VoiceMap[client], false, sizeof(ListenOverride) * 65); memset(&g_VoiceMap[client], false, sizeof(ListenOverride) * 65);
memset(&g_ClientMutes[client], false, sizeof(bool) * 65);
} }
if (g_VoiceFlags[client]) if (g_VoiceFlags[client])
+198
View File
@@ -159,6 +159,177 @@ cell_t TF2_RemoveDisguise(IPluginContext *pContext, const cell_t *params)
return 1; return 1;
} }
cell_t TF2_AddCondition(IPluginContext *pContext, const cell_t *params)
{
static ICallWrapper *pWrapper = NULL;
// CTFPlayerShared::AddCond(int, float)
if (!pWrapper)
{
REGISTER_NATIVE_ADDR("AddCondition",
PassInfo pass[2]; \
pass[0].flags = PASSFLAG_BYVAL; \
pass[0].size = sizeof(int); \
pass[0].type = PassType_Basic; \
pass[1].flags = PASSFLAG_BYVAL; \
pass[1].size = sizeof(float); \
pass[1].type = PassType_Basic; \
pWrapper = g_pBinTools->CreateCall(addr, CallConv_ThisCall, NULL, pass, 2))
}
CBaseEntity *pEntity;
if (!(pEntity = UTIL_GetCBaseEntity(params[1], true)))
{
return pContext->ThrowNativeError("Client index %d is not valid", params[1]);
}
void *obj = (void *)((uint8_t *)pEntity + playerSharedOffset->actual_offset);
unsigned char vstk[sizeof(void *) + sizeof(int) + sizeof(float)];
unsigned char *vptr = vstk;
*(void **)vptr = obj;
vptr += sizeof(void *);
*(int *)vptr = params[2];
vptr += sizeof(int);
*(float *)vptr = *(float *)&params[3];
pWrapper->Execute(vstk, NULL);
return 1;
}
cell_t TF2_RemoveCondition(IPluginContext *pContext, const cell_t *params)
{
static ICallWrapper *pWrapper = NULL;
// CTFPlayerShared::RemoveCond(int)
if (!pWrapper)
{
REGISTER_NATIVE_ADDR("RemoveCondition",
PassInfo pass[1]; \
pass[0].flags = PASSFLAG_BYVAL; \
pass[0].size = sizeof(int); \
pass[0].type = PassType_Basic; \
pWrapper = g_pBinTools->CreateCall(addr, CallConv_ThisCall, NULL, pass, 1))
}
CBaseEntity *pEntity;
if (!(pEntity = UTIL_GetCBaseEntity(params[1], true)))
{
return pContext->ThrowNativeError("Client index %d is not valid", params[1]);
}
void *obj = (void *)((uint8_t *)pEntity + playerSharedOffset->actual_offset);
unsigned char vstk[sizeof(void *) + sizeof(int)];
unsigned char *vptr = vstk;
*(void **)vptr = obj;
vptr += sizeof(void *);
*(int *)vptr = params[2];
pWrapper->Execute(vstk, NULL);
return 1;
}
cell_t TF2_StunPlayer(IPluginContext *pContext, const cell_t *params)
{
static ICallWrapper *pWrapper = NULL;
// CTFPlayerShared::StunPlayer(float, float, int, CTFPlayer *)
if (!pWrapper)
{
REGISTER_NATIVE_ADDR("StunPlayer",
PassInfo pass[4]; \
pass[0].flags = PASSFLAG_BYVAL; \
pass[0].size = sizeof(float); \
pass[0].type = PassType_Basic; \
pass[1].flags = PASSFLAG_BYVAL; \
pass[1].size = sizeof(float); \
pass[1].type = PassType_Basic; \
pass[2].flags = PASSFLAG_BYVAL; \
pass[2].size = sizeof(int); \
pass[2].type = PassType_Basic; \
pass[3].flags = PASSFLAG_BYVAL; \
pass[3].size = sizeof(CBaseEntity *); \
pass[3].type = PassType_Basic; \
pWrapper = g_pBinTools->CreateCall(addr, CallConv_ThisCall, NULL, pass, 4))
}
CBaseEntity *pEntity;
if (!(pEntity = UTIL_GetCBaseEntity(params[1], true)))
{
return pContext->ThrowNativeError("Client index %d is not valid", params[1]);
}
bool bByPlayer = (params[5] != 0);
CBaseEntity *pAttacker = NULL;
if (bByPlayer && !(pAttacker = UTIL_GetCBaseEntity(params[5], true)))
{
return pContext->ThrowNativeError("Attacker index %d is not valid", params[5]);
}
void *obj = (void *)((uint8_t *)pEntity + playerSharedOffset->actual_offset);
unsigned char vstk[sizeof(void *) + 2*sizeof(float) + sizeof(int) + sizeof(CBaseEntity *)];
unsigned char *vptr = vstk;
*(void **)vptr = obj;
vptr += sizeof(void *);
*(float *)vptr = sp_ctof(params[2]);
vptr += sizeof(float);
*(float *)vptr = sp_ctof(params[3]);
vptr += sizeof(float);
*(int *)vptr = params[4];
vptr += sizeof(int);
*(CBaseEntity **)vptr = pAttacker;
pWrapper->Execute(vstk, NULL);
return 1;
}
cell_t TF2_SetPowerplayEnabled(IPluginContext *pContext, const cell_t *params)
{
static ICallWrapper *pWrapper = NULL;
// CTFPlayer::SetPowerPlayEnabled(bool)
if (!pWrapper)
{
REGISTER_NATIVE_ADDR("SetPowerplayEnabled",
PassInfo pass[1]; \
pass[0].flags = PASSFLAG_BYVAL; \
pass[0].size = sizeof(bool); \
pass[0].type = PassType_Basic; \
pWrapper = g_pBinTools->CreateCall(addr, CallConv_ThisCall, NULL, pass, 1))
}
CBaseEntity *pEntity;
if (!(pEntity = UTIL_GetCBaseEntity(params[1], true)))
{
return pContext->ThrowNativeError("Client index %d is not valid", params[1]);
}
bool bEnablePP = false;
if (params[2] != 0)
{
bEnablePP = true;
}
unsigned char vstk[sizeof(void *) + sizeof(bool)];
unsigned char *vptr = vstk;
*(void **)vptr = (void *)pEntity;
vptr += sizeof(void *);
*(bool *)vptr = bEnablePP;
pWrapper->Execute(vstk, NULL);
return 1;
}
cell_t TF2_Respawn(IPluginContext *pContext, const cell_t *params) cell_t TF2_Respawn(IPluginContext *pContext, const cell_t *params)
{ {
static ICallWrapper *pWrapper = NULL; static ICallWrapper *pWrapper = NULL;
@@ -201,6 +372,28 @@ cell_t TF2_Respawn(IPluginContext *pContext, const cell_t *params)
return 1; return 1;
} }
cell_t TF2_Regenerate(IPluginContext *pContext, const cell_t *params)
{
static ICallWrapper *pWrapper = NULL;
//CTFPlayer::Regenerate()
if (!pWrapper)
{
REGISTER_NATIVE_ADDR("Regenerate",
pWrapper = g_pBinTools->CreateCall(addr, CallConv_ThisCall, NULL, NULL, 0));
}
CBaseEntity *pEntity;
if (!(pEntity = UTIL_GetCBaseEntity(params[1], true)))
{
return pContext->ThrowNativeError("Client index %d is not valid", params[1]);
}
pWrapper->Execute(&pEntity, NULL);
return 1;
}
cell_t TF2_GetResourceEntity(IPluginContext *pContext, const cell_t *params) cell_t TF2_GetResourceEntity(IPluginContext *pContext, const cell_t *params)
{ {
return g_resourceEntity; return g_resourceEntity;
@@ -223,5 +416,10 @@ sp_nativeinfo_t g_TFNatives[] =
{"TF2_RemovePlayerDisguise", TF2_RemoveDisguise}, {"TF2_RemovePlayerDisguise", TF2_RemoveDisguise},
{"TF2_GetResourceEntity", TF2_GetResourceEntity}, {"TF2_GetResourceEntity", TF2_GetResourceEntity},
{"TF2_GetClass", TF2_GetClass}, {"TF2_GetClass", TF2_GetClass},
{"TF2_RegeneratePlayer", TF2_Regenerate},
{"TF2_AddCondition", TF2_AddCondition},
{"TF2_RemoveCondition", TF2_RemoveCondition},
{"TF2_SetPlayerPowerPlay", TF2_SetPowerplayEnabled},
{"TF2_StunPlayer", TF2_StunPlayer},
{NULL, NULL} {NULL, NULL}
}; };
+22 -3
View File
@@ -136,6 +136,10 @@
"game" "NeotokyoSource" "game" "NeotokyoSource"
"game" "bg2" "game" "bg2"
"game" "cspromod" "game" "cspromod"
"game" "FortressForever"
"game" "zps"
"game" "gesource"
"game" "RnLBeta"
} }
"Keys" "Keys"
@@ -156,6 +160,13 @@
"game" "NeotokyoSource" "game" "NeotokyoSource"
"game" "bg2" "game" "bg2"
"game" "cspromod" "game" "cspromod"
"game" "pvkii"
"game" "FortressForever"
"game" "zps"
"game" "gesource"
"game" "obsidian"
"game" "cstrike"
"game" "RnLBeta"
} }
"Keys" "Keys"
@@ -180,6 +191,10 @@
"game" "bg2" "game" "bg2"
"game" "insurgency" "game" "insurgency"
"game" "cspromod" "game" "cspromod"
"game" "pvkii"
"game" "zps"
"game" "gesource"
"game" "RnLBeta"
} }
"Keys" "Keys"
@@ -188,12 +203,16 @@
} }
} }
"cstrike" "#default"
{ {
"#supported"
{
"game" "cstrike"
}
"Keys" "Keys"
{ {
"HintTextPreByte" "yes" "GameExtension" "game.cstrike"
"GameExtension" "game.cstrike"
} }
} }
-2
View File
@@ -16,11 +16,9 @@
{ {
"#supported" "#supported"
{ {
"game" "cstrike"
"game" "hl2mp" "game" "hl2mp"
"game" "ship" "game" "ship"
"game" "insurgency" "game" "insurgency"
"game" "pvkii"
"game" "sourceforts" "game" "sourceforts"
"game" "FortressForever" "game" "FortressForever"
"game" "empires" "game" "empires"
+5
View File
@@ -20,6 +20,11 @@
"game" "zps" "game" "zps"
"game" "bg2" "game" "bg2"
"game" "garrysmod" "game" "garrysmod"
"game" "pvkii"
"game" "gesource"
"game" "empires"
"game" "RnLBeta"
"game" "obsidian"
} }
"Offsets" "Offsets"
+1
View File
@@ -18,6 +18,7 @@
{ {
"game" "dod" "game" "dod"
"game" "tf" "game" "tf"
"game" "cstrike"
} }
"Offsets" "Offsets"
+1 -10
View File
@@ -16,12 +16,10 @@
{ {
"#supported" "#supported"
{ {
"game" "cstrike"
"game" "hl2mp" "game" "hl2mp"
"game" "ship" "game" "ship"
"game" "!Dystopia" "game" "!Dystopia"
"game" "insurgency" "game" "insurgency"
"game" "pvkii"
"game" "sourceforts" "game" "sourceforts"
"game" "FortressForever" "game" "FortressForever"
"game" "synergy" "game" "synergy"
@@ -75,12 +73,10 @@
{ {
"#supported" "#supported"
{ {
"game" "cstrike"
"game" "garrysmod" "game" "garrysmod"
"game" "hl2mp" "game" "hl2mp"
"game" "ship" "game" "ship"
"game" "!Dystopia" "game" "!Dystopia"
"game" "pvkii"
"game" "sourceforts" "game" "sourceforts"
"game" "FortressForever" "game" "FortressForever"
"game" "synergy" "game" "synergy"
@@ -125,12 +121,9 @@
{ {
"#supported" "#supported"
{ {
"game" "cstrike"
"game" "garrysmod" "game" "garrysmod"
"game" "hl2mp" "game" "hl2mp"
"game" "ship" "game" "ship"
"game" "insurgency"
"game" "pvkii"
"game" "sourceforts" "game" "sourceforts"
"game" "FortressForever" "game" "FortressForever"
"game" "synergy" "game" "synergy"
@@ -156,9 +149,7 @@
{ {
"#supported" "#supported"
{ {
"game" "cstrike"
"game" "hl2mp" "game" "hl2mp"
"game" "pvkii"
"game" "sourceforts" "game" "sourceforts"
"game" "synergy" "game" "synergy"
"game" "hidden" "game" "hidden"
@@ -237,9 +228,9 @@
{ {
"#supported" "#supported"
{ {
"game" "cstrike"
"game" "hl2mp" "game" "hl2mp"
"game" "NeotokyoSource" "game" "NeotokyoSource"
"game" "zombie_master"
} }
"Signatures" "Signatures"
{ {
+8 -2
View File
@@ -22,6 +22,8 @@
"game" "synergy" "game" "synergy"
"game" "bg2" "game" "bg2"
"game" "garrysmod" "game" "garrysmod"
"game" "pvkii"
"game" "gesource"
} }
"Offsets" "Offsets"
@@ -70,7 +72,7 @@
{ {
"game" "ageofchivalry" "game" "ageofchivalry"
"game" "zps" "game" "zps"
"game" "empires" "game" "pvkii"
} }
"Signatures" "Signatures"
@@ -97,7 +99,7 @@
{ {
"game" "ageofchivalry" "game" "ageofchivalry"
"game" "zps" "game" "zps"
"game" "empires" "game" "pvkii"
} }
"Signatures" "Signatures"
@@ -123,6 +125,10 @@
"game" "synergy" "game" "synergy"
"game" "bg2" "game" "bg2"
"game" "garrysmod" "game" "garrysmod"
"game" "pvkii"
"game" "gesource"
"game" "RnLBeta"
"game" "obsidian"
} }
"Offsets" "Offsets"
+7 -2
View File
@@ -18,6 +18,7 @@
{ {
"game" "dod" "game" "dod"
"game" "tf" "game" "tf"
"game" "cstrike"
} }
"Offsets" "Offsets"
@@ -66,6 +67,7 @@
{ {
"game" "dod" "game" "dod"
"game" "tf" "game" "tf"
"game" "cstrike"
} }
"Signatures" "Signatures"
@@ -92,6 +94,7 @@
{ {
"game" "dod" "game" "dod"
"game" "tf" "game" "tf"
"game" "cstrike"
} }
"Signatures" "Signatures"
@@ -113,6 +116,7 @@
{ {
"game" "dod" "game" "dod"
"game" "tf" "game" "tf"
"game" "cstrike"
} }
"Offsets" "Offsets"
@@ -204,6 +208,7 @@
{ {
"game" "dod" "game" "dod"
"game" "tf" "game" "tf"
"game" "cstrike"
} }
"Signatures" "Signatures"
{ {
@@ -219,7 +224,7 @@
"FireOutputBackup" "FireOutputBackup"
{ {
"windows" "6" "windows" "6"
"linux" "10" "linux" "12"
} }
} }
} }
@@ -238,7 +243,7 @@
"SetUserCvar" "SetUserCvar"
{ {
"windows" "17" "windows" "17"
"linux" "55" "linux" "56"
} }
/** /**
* Offset into CBaseClient - Used by CBaseServer::UpdateUserSettings to determine when changes have been made. * Offset into CBaseClient - Used by CBaseServer::UpdateUserSettings to determine when changes have been made.
+8 -8
View File
@@ -225,7 +225,7 @@
"FireOutputBackup" "FireOutputBackup"
{ {
"windows" "6" "windows" "6"
"linux" "10" "linux" "12"
} }
} }
} }
@@ -244,7 +244,7 @@
"SetUserCvar" "SetUserCvar"
{ {
/* Not 100% sure on this, why would windows change and not linux - TEST ME */ /* Not 100% sure on this, why would windows change and not linux - TEST ME */
"windows" "18" "windows" "17"
"linux" "63" "linux" "63"
} }
/** /**
@@ -270,8 +270,8 @@
{ {
"GiveNamedItem" "GiveNamedItem"
{ {
"windows" "505" "windows" "506"
"linux" "506" "linux" "507"
} }
"RemovePlayerItem" "RemovePlayerItem"
{ {
@@ -300,8 +300,8 @@
} }
"CommitSuicide" "CommitSuicide"
{ {
"windows" "473" "windows" "474"
"linux" "473" "linux" "474"
} }
"GetVelocity" "GetVelocity"
{ {
@@ -350,8 +350,8 @@
} }
"PlayerRunCmd" "PlayerRunCmd"
{ {
"windows" "451" "windows" "452"
"linux" "452" "linux" "453"
} }
} }
} }
+14
View File
@@ -95,6 +95,10 @@
"windows" "6" "windows" "6"
"linux" "6" "linux" "6"
} }
"g_pGameRules"
{
"windows" "2"
}
} }
"Signatures" "Signatures"
{ {
@@ -122,6 +126,16 @@
"windows" "\x53\x55\x56\x8B\xF1\x8B\x4C\x24\x2A\x85\xC9\x57\x74\x2A\x8B\x01\x8B\x50\x2A\xFF\xD2\x8B\x00\x25\xFF\x2A\x2A\x2A\x83\xC0\x2A\xC1\xE0\x2A\x8B\x3C\x30\xEB\x2A\x8B\xBE\x2A\x2A\x2A\x2A\x85\xFF\x74\x2A\x8B\x5C\x2A\x2A\x8B\x2D\x2A\x2A\x2A\x2A\xEB\x2A\x8D\x2A\x2A\x8B\x37\x85\xF6\x75\x2A\x68\x2A\x2A\x2A\x2A\xFF\x2A\x83\xC4\x2A\xEB\x11\x39" "windows" "\x53\x55\x56\x8B\xF1\x8B\x4C\x24\x2A\x85\xC9\x57\x74\x2A\x8B\x01\x8B\x50\x2A\xFF\xD2\x8B\x00\x25\xFF\x2A\x2A\x2A\x83\xC0\x2A\xC1\xE0\x2A\x8B\x3C\x30\xEB\x2A\x8B\xBE\x2A\x2A\x2A\x2A\x85\xFF\x74\x2A\x8B\x5C\x2A\x2A\x8B\x2D\x2A\x2A\x2A\x2A\xEB\x2A\x8D\x2A\x2A\x8B\x37\x85\xF6\x75\x2A\x68\x2A\x2A\x2A\x2A\xFF\x2A\x83\xC4\x2A\xEB\x11\x39"
"linux" "@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc" "linux" "@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc"
} }
"CreateGameRulesObject"
{
"library" "server"
"windows" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\x6A\x01\xFF\xD2"
}
"g_pGameRules"
{
"library" "server"
"linux" "@g_pGameRules"
}
} }
} }
} }
+34 -34
View File
@@ -26,88 +26,88 @@
{ {
"GiveNamedItem" "GiveNamedItem"
{ {
"windows" "329" "windows" "386"
"linux" "330" "linux" "387"
} }
"RemovePlayerItem" "RemovePlayerItem"
{ {
"windows" "226" "windows" "259"
"linux" "227" "linux" "260"
} }
"Weapon_GetSlot" "Weapon_GetSlot"
{ {
"windows" "224" "windows" "257"
"linux" "225" "linux" "258"
} }
"Ignite" "Ignite"
{ {
"windows" "188" "windows" "202"
"linux" "189" "linux" "203"
} }
"Extinguish" "Extinguish"
{ {
"windows" "189" "windows" "206"
"linux" "190" "linux" "207"
} }
"Teleport" "Teleport"
{ {
"windows" "98" "windows" "105"
"linux" "99" "linux" "106"
} }
"CommitSuicide" "CommitSuicide"
{ {
"windows" "357" "windows" "426"
"linux" "358" "linux" "426"
} }
"GetVelocity" "GetVelocity"
{ {
"windows" "126" "windows" "137"
"linux" "127" "linux" "138"
} }
"EyeAngles" "EyeAngles"
{ {
"windows" "118" "windows" "128"
"linux" "119" "linux" "129"
} }
"AcceptInput" "AcceptInput"
{ {
"windows" "35" "windows" "34"
"linux" "36" "linux" "35"
} }
"DispatchKeyValue" "DispatchKeyValue"
{ {
"windows" "31" "windows" "29"
"linux" "30" "linux" "28"
} }
"DispatchKeyValueFloat" "DispatchKeyValueFloat"
{ {
"windows" "30" "windows" "28"
"linux" "31" "linux" "29"
} }
"DispatchKeyValueVector" "DispatchKeyValueVector"
{ {
"windows" "29" "windows" "27"
"linux" "32" "linux" "30"
} }
"SetEntityModel" "SetEntityModel"
{ {
"windows" "25" "windows" "23"
"linux" "26" "linux" "24"
} }
"WeaponEquip" "WeaponEquip"
{ {
"windows" "217" "windows" "250"
"linux" "218" "linux" "251"
} }
"Activate" "Activate"
{ {
"windows" "32" "windows" "31"
"linux" "33" "linux" "32"
} }
"PlayerRunCmd" "PlayerRunCmd"
{ {
"windows" "347" "windows" "404"
"linux" "348" "linux" "405"
} }
} }
} }
+14 -14
View File
@@ -23,23 +23,23 @@
} }
"RemovePlayerItem" "RemovePlayerItem"
{ {
"windows" "258" "windows" "259"
"linux" "259" "linux" "260"
} }
"Weapon_GetSlot" "Weapon_GetSlot"
{ {
"windows" "256" "windows" "257"
"linux" "257" "linux" "258"
} }
"Ignite" "Ignite"
{ {
"windows" "201" "windows" "202"
"linux" "202" "linux" "203"
} }
"Extinguish" "Extinguish"
{ {
"windows" "205" "windows" "206"
"linux" "206" "linux" "207"
} }
"Teleport" "Teleport"
{ {
@@ -53,13 +53,13 @@
} }
"GetVelocity" "GetVelocity"
{ {
"windows" "136" "windows" "137"
"linux" "137" "linux" "138"
} }
"EyeAngles" "EyeAngles"
{ {
"windows" "127" "windows" "128"
"linux" "128" "linux" "129"
} }
"AcceptInput" "AcceptInput"
{ {
@@ -88,8 +88,8 @@
} }
"WeaponEquip" "WeaponEquip"
{ {
"windows" "249" "windows" "250"
"linux" "250" "linux" "251"
} }
"Activate" "Activate"
{ {
+63 -31
View File
@@ -11,7 +11,7 @@
"Games" "Games"
{ {
/* Empires 2.24 */ /* Empires 2.25b */
"empires" "empires"
{ {
@@ -19,48 +19,48 @@
{ {
"GiveNamedItem" "GiveNamedItem"
{ {
"windows" "354" "windows" "353"
"linux" "355" "linux" "354"
} }
"RemovePlayerItem" "RemovePlayerItem"
{ {
"windows" "241" "windows" "240"
"linux" "242" "linux" "241"
} }
"Weapon_GetSlot" "Weapon_GetSlot"
{ {
"windows" "239" "windows" "238"
"linux" "240" "linux" "239"
} }
"Ignite" "Ignite"
{ {
"windows" "196" "windows" "195"
"linux" "197" "linux" "196"
} }
"Extinguish" "Extinguish"
{ {
"windows" "200" "windows" "199"
"linux" "201" "linux" "200"
} }
"Teleport" "Teleport"
{ {
"windows" "104" "windows" "103"
"linux" "105" "linux" "104"
} }
"CommitSuicide" "CommitSuicide"
{ {
"windows" "401" "windows" "392"
"linux" "402" "linux" "392"
} }
"GetVelocity" "GetVelocity"
{ {
"windows" "133" "windows" "132"
"linux" "134" "linux" "133"
} }
"EyeAngles" "EyeAngles"
{ {
"windows" "125" "windows" "124"
"linux" "126" "linux" "125"
} }
"DispatchKeyValue" "DispatchKeyValue"
{ {
@@ -79,29 +79,61 @@
} }
"AcceptInput" "AcceptInput"
{ {
"windows" "35" "windows" "34"
"linux" "36" "linux" "35"
} }
"Activate" "Activate"
{ {
"windows" "31" "windows" "31"
"linux" "32" "linux" "32"
} }
"TakeHealth"
{
"windows" "62"
"linux" "63"
}
"ChangeTeam"
{
"windows" "87"
"linux" "88"
}
"SetEntityModel" "SetEntityModel"
{ {
"windows" "23" "windows" "23"
"linux" "24" "linux" "24"
} }
"WeaponEquip"
{
"windows" "231"
"linux" "232"
}
"PlayerRunCmd"
{
"windows" "372"
"linux" "373"
}
"FireOutputBackup"
{
"windows" "6"
"linux" "10"
}
}
"Signatures"
{
"DispatchSpawn"
{
"library" "server"
"windows" "\x53\x55\x56\x8B\x74\x24\x10\x57\x85\xF6\x0F\x84\x2A\x2A\x2A\x2A\x8B\x1D\x2A\x2A\x2A\x2A\x8B\x03\x8B\x50\x64\x8B\xCB"
"linux" "@_Z13DispatchSpawnP11CBaseEntity"
}
"CreateEntityByName"
{
"library" "server"
"windows" "\x56\x8B\x74\x24\x0C\x57\x8B\x7C\x24\x0C\x83\xFE\xFF\x74\x27\x8B\x0D\x2A\x2A\x2A\x2A\x8B\x01\x8B\x50\x54\x56\xFF\xD2"
"linux" "@_Z18CreateEntityByNamePKci"
}
"FindEntityByClassname"
{
"library" "server"
"windows" "\x53\x55\x56\x8B\xF1\x8B\x4C\x24\x10\x57\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x08\xFF\xD2\x8B\x00\x25\xFF\x0F\x00\x00\x40\xC1\xE0\x04\x8B\x3C\x30\xEB\x06\x8B\xBE\x2A\x2A\x2A\x2A\x85\xFF\x74\x2A\x8B\x5C\x24\x18\x8B\x2D\x2A\x2A\x2A\x2A\x8D\xA4\x24\x00\x00\x00\x00\x8B\x37\x85\xF6\x75\x2A\x68\x2A\x2A\x2A\x2A\xFF\x2A\x83\xC4\x04\xEB\x2A\x39\x2A\x2A\x74\x2A\x53"
"linux" "@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc"
}
"FireOutput"
{
"library" "server"
"windows" "\x55\x8B\xEC\x83\x2A\x2A\x81\xEC\x2A\x2A\x2A\x2A\x53\x56\x8B\x71\x2A\x57\x89"
"linux" "@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f"
}
} }
} }
} }
+11
View File
@@ -96,6 +96,11 @@
"windows" "36" "windows" "36"
"linux" "37" "linux" "37"
} }
"FireOutputBackup"
{
"windows" "6"
"linux" "6"
}
} }
"Signatures" "Signatures"
@@ -120,6 +125,12 @@
"library" "server" "library" "server"
"windows" "\x56\x8B\x74\x24\x0C\x83\xFE\xFF\x57\x8B\x7C\x24\x0C\x74\x27\x8B\x0D\x2A\x2A\x2A\x2A\x8B\x01\x8B\x50\x54\x56\xFF\xD2" "windows" "\x56\x8B\x74\x24\x0C\x83\xFE\xFF\x57\x8B\x7C\x24\x0C\x74\x27\x8B\x0D\x2A\x2A\x2A\x2A\x8B\x01\x8B\x50\x54\x56\xFF\xD2"
} }
"FireOutput"
{
"library" "server"
"windows" "\x81\xEC\x2A\x2A\x2A\x2A\x53\x55\x56\x8B\x2A\x2A\x85\xF6\x57"
"linux" "@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f"
}
} }
} }
} }
+126
View File
@@ -0,0 +1,126 @@
"Games"
{
"gesource"
{
"Offsets"
{
"GiveNamedItem"
{
"windows" "351"
"linux" "352"
}
"RemovePlayerItem"
{
"windows" "239"
"linux" "240"
}
"Weapon_GetSlot"
{
"windows" "237"
"linux" "238"
}
"Ignite"
{
"windows" "194"
"linux" "195"
}
"Extinguish"
{
"windows" "198"
"linux" "199"
}
"Teleport"
{
"windows" "100"
"linux" "101"
}
"CommitSuicide"
{
"windows" "392"
"linux" "392"
}
"GetVelocity"
{
"windows" "130"
"linux" "131"
}
"EyeAngles"
{
"windows" "122"
"linux" "123"
}
"AcceptInput"
{
"windows" "34"
"linux" "35"
}
"DispatchKeyValue"
{
"windows" "29"
"linux" "28"
}
"DispatchKeyValueFloat"
{
"windows" "28"
"linux" "29"
}
"DispatchKeyValueVector"
{
"windows" "27"
"linux" "30"
}
"SetEntityModel"
{
"windows" "23"
"linux" "24"
}
"WeaponEquip"
{
"windows" "230"
"linux" "231"
}
"Activate"
{
"windows" "31"
"linux" "32"
}
"PlayerRunCmd"
{
"windows" "371"
"linux" "372"
}
"FireOutputBackup"
{
"windows" "6"
"linux" "10"
}
}
"Signatures"
{
"FindEntityByClassname"
{
"library" "server"
"windows" "\x53\x55\x56\x8B\xF1\x8B\x4C\x2A\x2A\x57\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\xFF\xD2\x8B\x00\x25\x2A\x2A\x2A\x2A\x40\xC1\xE0\x2A\x8B\x3C\x30\xEB\x2A\x8B\xBE\x2A\x2A\x2A\x2A\x85\xFF\x74\x2A\x8B\x5C\x2A\x2A\x8B\x2D\x2A\x2A\x2A\x2A\x8D\xA4\x2A\x2A\x2A\x2A\x2A\x8B\x37\x85\xF6\x75\x2A\x68\x2A\x2A\x2A\x2A\xFF\x2A\x83\xC4\x2A\xEB\x2A\x39"
"linux" "@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc"
}
"CreateEntityByName"
{
"library" "server"
"linux" "@_Z18CreateEntityByNamePKci"
"windows" "\x56\x8B\x74\x24\x2A\x57\x8B\x7C\x24\x2A\x83\xFE\xFF\x74\x2A\x8B\x0D\x2A\x2A\x2A\x2A\x8B\x01\x8B\x50\x2A\x56\xFF\xD2"
}
"DispatchSpawn"
{
"library" "server"
"linux" "@_Z13DispatchSpawnP11CBaseEntity"
"windows" "\x53\x55\x56\x8B\x74\x2A\x2A\x57\x85\xF6\x0F\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x8B\x03\x8B\x50\x2A\x8B\xCB"
}
"FireOutput"
{
"library" "server"
"windows" "\x81\xEC\x1C\x01\x00\x00\x53\x55\x56\x8B\x71\x14\x57\x89"
"linux" "@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f"
}
}
}
}
+15 -11
View File
@@ -11,7 +11,6 @@
"Games" "Games"
{ {
/* Insurgency (2009-07-10) */
"insurgency" "insurgency"
{ {
"Offsets" "Offsets"
@@ -82,22 +81,21 @@
"windows" "288" "windows" "288"
"linux" "289" "linux" "289"
} }
"PlayerRunCmd"
{
"windows" "274"
"linux" "275"
}
"g_pGameRules" "g_pGameRules"
{ {
"windows" "2" "windows" "2"
} }
} "FireOutputBackup"
"Signatures"
{
"Offsets"
{
/* Offset into CreateGameRulesObject */
"g_pGameRules"
{ {
"windows" "2" "windows" "6"
"linux" "6"
} }
} }
"Signatures" "Signatures"
{ {
"CreateGameRulesObject" "CreateGameRulesObject"
@@ -125,9 +123,15 @@
"CreateEntityByName" "CreateEntityByName"
{ {
"library" "server" "library" "server"
"windows" "\x56\x8B\x74\x24\x0C\x57\x8B\x7C\x24\x0C\x83\x2A\x2A\x74\x27\x8B\x0D\x2A\x2A\x2A\x2A\x8B\x01\x8B\x2A\x2A\x56\xFF\xD2\xA3\xCC" "windows" "\x56\x8B\x74\x24\x0C\x57\x8B\x7C\x24\x0C\x83\x2A\x2A\x74\x27\x8B\x0D\x2A\x2A\x2A\x2A\x8B\x01\x8B\x2A\x2A\x56\xFF\xD2\xA3"
"linux" "@_Z18CreateEntityByNamePKci" "linux" "@_Z18CreateEntityByNamePKci"
} }
"FindEntityByClassname"
{
"library" "server"
"windows" "\x53\x55\x56\x8B\xF1\x8B\x4C\x2A\x2A\x57\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\xFF\xD2\x8B\x00\x25\x2A\x2A\x2A\x2A\x40\xC1\xE0\x2A\x8B\x3C\x30\xEB\x2A\x8B\xBE\x2A\x2A\x2A\x2A\x85\xFF\x74\x2A\x8B\x5C\x2A\x2A\x8B\x2D\x2A\x2A\x2A\x2A\x8D\xA4\x24\x2A\x2A\x2A\x2A\x8B\x37\x85\xF6\x75\x2A\x68\x2A\x2A\x2A\x2A\xFF\x2A\x83\xC4\x2A\xEB\x2A\x39"
"linux" "@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc"
}
} }
} }
} }
+57 -19
View File
@@ -11,90 +11,128 @@
"Games" "Games"
{ {
/* Obsidian Conflict 1.3 */ /* Obsidian Conflict 1.35 */
"obsidian" "obsidian"
{ {
"Offsets" "Offsets"
{ {
"GiveNamedItem" "GiveNamedItem"
{ {
"windows" "350" "windows" "351"
"linux" "351"
} }
"RemovePlayerItem" "RemovePlayerItem"
{ {
"windows" "237" "windows" "237"
"linux" "238"
} }
"Weapon_GetSlot" "Weapon_GetSlot"
{ {
"windows" "235" "windows" "235"
"linux" "236"
} }
"Ignite" "Ignite"
{ {
"windows" "190" "windows" "190"
"linux" "191"
} }
"Extinguish" "Extinguish"
{ {
"windows" "194" "windows" "194"
"linux" "195"
} }
"Teleport" "Teleport"
{ {
"windows" "100" "windows" "100"
"linux" "101"
} }
"CommitSuicide" "CommitSuicide"
{ {
"windows" "395" "windows" "396"
"linux" "395"
} }
"GetVelocity" "GetVelocity"
{ {
"windows" "127" "windows" "127"
"linux" "128"
} }
"EyeAngles" "EyeAngles"
{ {
"windows" "119" "windows" "119"
"linux" "120"
} }
"AcceptInput" "AcceptInput"
{ {
"windows" "34" "windows" "34"
"linux" "35"
} }
"DispatchKeyValue" "DispatchKeyValue"
{ {
"windows" "29" "windows" "29"
"linux" "28"
} }
"DispatchKeyValueFloat" "DispatchKeyValueFloat"
{ {
"windows" "28" "windows" "28"
"linux" "29"
} }
"DispatchKeyValueVector" "DispatchKeyValueVector"
{ {
"windows" "27" "windows" "27"
"linux" "30"
} }
"SetEntityModel" "SetEntityModel"
{ {
"windows" "23" "windows" "23"
"linux" "24"
} }
"WeaponEquip" "WeaponEquip"
{ {
"windows" "228" "windows" "228"
"linux" "229"
} }
"Activate" "Activate"
{ {
"windows" "31" "windows" "31"
"linux" "32" }
"PlayerRunCmd"
{
"windows" "371"
}
/* Offset into CBaseTempEntity constructor (vs2010 moved it!) */
"s_pTempEntities"
{
"windows" "19"
}
"GetTEName"
{
"windows" "4"
}
"GetTENext"
{
"windows" "8"
}
"TE_GetServerClass"
{
"windows" "0"
}
"FireOutputBackup"
{
"windows" "9"
}
}
"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"
}
"DispatchSpawn"
{
"library" "server"
"windows" "\x55\x8B\xEC\x51\x53\x56\x8B\x75\x2A\x57\x85\xF6\x0F\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x8B"
}
"CreateEntityByName"
{
"library" "server"
"windows" "\x55\x8B\xEC\x56\x8B\x2A\x2A\x57\x8B\x2A\x2A\x83\x2A\x2A\x74\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x8B\x01\x8B\x50\x2A\x56\xFF\xD2"
}
"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"
}
"FireOutput"
{
"library" "server"
"windows" "\x55\x8B\xEC\x81\xEC\x2A\x2A\x2A\x2A\x53\x56\x8B\x2A\x2A\x57\x89"
} }
} }
} }
+47 -28
View File
@@ -19,48 +19,48 @@
/* CBasePlayer */ /* CBasePlayer */
"GiveNamedItem" "GiveNamedItem"
{ {
"windows" "328" "windows" "352"
"linux" "329" "linux" "353"
} }
"RemovePlayerItem" "RemovePlayerItem"
{ {
"windows" "226" "windows" "239"
"linux" "227" "linux" "240"
} }
"Weapon_GetSlot" "Weapon_GetSlot"
{ {
"windows" "224" "windows" "237"
"linux" "225" "linux" "238"
} }
"Ignite" "Ignite"
{ {
"windows" "188" "windows" "194"
"linux" "189" "linux" "195"
} }
"Extinguish" "Extinguish"
{ {
"windows" "189" "windows" "198"
"linux" "190" "linux" "199"
} }
"Teleport" "Teleport"
{ {
"windows" "98" "windows" "101"
"linux" "99" "linux" "102"
} }
"CommitSuicide" "CommitSuicide"
{ {
"windows" "356" "windows" "393"
"linux" "357" "linux" "393"
} }
"GetVelocity" "GetVelocity"
{ {
"windows" "126" "windows" "131"
"linux" "127" "linux" "132"
} }
"EyeAngles" "EyeAngles"
{ {
"windows" "118" "windows" "123"
"linux" "119" "linux" "124"
} }
"AcceptInput" "AcceptInput"
{ {
@@ -69,34 +69,53 @@
} }
"DispatchKeyValue" "DispatchKeyValue"
{ {
"windows" "31" "windows" "29"
"linux" "30" "linux" "28"
} }
"DispatchKeyValueFloat" "DispatchKeyValueFloat"
{ {
"windows" "30" "windows" "28"
"linux" "31" "linux" "29"
} }
"DispatchKeyValueVector" "DispatchKeyValueVector"
{ {
"windows" "29" "windows" "27"
"linux" "32" "linux" "30"
} }
"SetEntityModel" "SetEntityModel"
{ {
"windows" "25" "windows" "24"
"linux" "26" "linux" "25"
} }
"WeaponEquip" "WeaponEquip"
{ {
"windows" "217" "windows" "230"
"linux" "218" "linux" "231"
} }
"Activate" "Activate"
{ {
"windows" "32" "windows" "32"
"linux" "33" "linux" "33"
} }
"PlayerRunCmd"
{
"windows" "372"
"linux" "373"
}
"FireOutputBackup"
{
"windows" "6"
"linux" "10"
}
}
"Signatures"
{
"FireOutput"
{
"library" "server"
"windows" "\x81\xEC\x2A\x2A\x2A\x2A\x53\x55\x56\x8B\x71\x2A\x85\xF6\x57"
"linux" "@_ZN17CBaseEntityOutput10FireOutputE9variant_tP11CBaseEntityS2_f"
}
} }
} }
} }
+128
View File
@@ -0,0 +1,128 @@
"Games"
{
/* Resistance and Liberation Open Beta 1.1 */
"RnLBeta"
{
"Offsets"
{
"GiveNamedItem"
{
"windows" "356"
}
"RemovePlayerItem"
{
"windows" "238"
}
"Weapon_GetSlot"
{
"windows" "236"
}
"Ignite"
{
"windows" "193"
}
"Extinguish"
{
"windows" "197"
}
"Teleport"
{
"windows" "100"
}
"CommitSuicide"
{
"windows" "397"
}
"GetVelocity"
{
"windows" "130"
}
"EyeAngles"
{
"windows" "122"
}
"AcceptInput"
{
"windows" "34"
}
"DispatchKeyValue"
{
"windows" "29"
}
"DispatchKeyValueFloat"
{
"windows" "28"
}
"DispatchKeyValueVector"
{
"windows" "27"
}
"SetEntityModel"
{
"windows" "23"
}
"WeaponEquip"
{
"windows" "229"
}
"Activate"
{
"windows" "31"
}
"PlayerRunCmd"
{
"windows" "376"
}
/* Offset into CBaseTempEntity constructor (vs2010 moved it!) */
"s_pTempEntities"
{
"windows" "19"
}
"GetTEName"
{
"windows" "4"
}
"GetTENext"
{
"windows" "8"
}
"TE_GetServerClass"
{
"windows" "0"
}
"FireOutputBackup"
{
"windows" "9"
}
}
"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"
}
"DispatchSpawn"
{
"library" "server"
"windows" "\x55\x8B\xEC\x51\x53\x56\x8B\x75\x2A\x57\x85\xF6\x0F\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x8B"
}
"CreateEntityByName"
{
"library" "server"
"windows" "\x55\x8B\xEC\x56\x8B\x2A\x2A\x57\x8B\x2A\x2A\x83\x2A\x2A\x74\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x8B\x01\x8B\x50\x2A\x56\xFF\xD2"
}
"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"
}
"FireOutput"
{
"library" "server"
"windows" "\x81\xEC\x1C\x01\x00\x00\x53\x55\x56\x8B\x71\x14\x85\xF6"
}
}
}
}
+6 -1
View File
@@ -12,7 +12,7 @@
"Games" "Games"
{ {
/* SourceForts */ /* SourceForts */
"SourceForts" "sourceforts"
{ {
"Offsets" "Offsets"
{ {
@@ -97,6 +97,11 @@
"windows" "32" "windows" "32"
"linux" "33" "linux" "33"
} }
"PlayerRunCmd"
{
"windows" "346"
"linux" "347"
}
} }
} }
} }
+12 -12
View File
@@ -28,18 +28,18 @@
} }
"Weapon_GetSlot" "Weapon_GetSlot"
{ {
"windows" "256" "windows" "257"
"linux" "257" "linux" "258"
} }
"Ignite" "Ignite"
{ {
"windows" "201" "windows" "202"
"linux" "202" "linux" "203"
} }
"Extinguish" "Extinguish"
{ {
"windows" "205" "windows" "206"
"linux" "206" "linux" "207"
} }
"Teleport" "Teleport"
{ {
@@ -53,13 +53,13 @@
} }
"GetVelocity" "GetVelocity"
{ {
"windows" "136" "windows" "137"
"linux" "137" "linux" "138"
} }
"EyeAngles" "EyeAngles"
{ {
"windows" "127" "windows" "128"
"linux" "128" "linux" "129"
} }
"DispatchKeyValue" "DispatchKeyValue"
{ {
@@ -88,8 +88,8 @@
} }
"WeaponEquip" "WeaponEquip"
{ {
"windows" "249" "windows" "250"
"linux" "250" "linux" "251"
} }
"Activate" "Activate"
{ {
+5
View File
@@ -101,6 +101,11 @@
"windows" "32" "windows" "32"
"linux" "33" "linux" "33"
} }
"PlayerRunCmd"
{
"windows" "347"
"linux" "348"
}
} }
"Signatures" "Signatures"
+1 -6
View File
@@ -99,11 +99,6 @@
} }
"Signatures" "Signatures"
{ {
"CreateGameRulesObject"
{
"library" "server"
"windows" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2C\x6A\x01"
}
"FindEntityByClassname" "FindEntityByClassname"
{ {
"library" "server" "library" "server"
@@ -120,7 +115,7 @@
{ {
"library" "server" "library" "server"
"linux" "@_Z13DispatchSpawnP11CBaseEntity" "linux" "@_Z13DispatchSpawnP11CBaseEntity"
"windows" "\x53\x55\x56\x8B\x74\x24\x10\x2A\x85\xF6\x0F\x84\x2A\x2A\x2A\x2A\x8B\x1D\x2A\x2A\x2A\x2A\x8B\x03\x8B\x50\x60\x8B\xCB" "windows" "\x53\x55\x56\x8B\x74\x2A\x2A\x57\x85\xF6\x0F\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x2A\x2A\x2A\x2A\x8B\x03\x8B\x50\x2A\x8B\xCB"
} }
} }
} }
+12
View File
@@ -142,4 +142,16 @@
{ {
"game" "bg2" "game" "bg2"
} }
"game.cspromod.txt"
{
"game" "cspromod"
}
"game.gesource.txt"
{
"game" "gesource"
}
"game.rnlbeta.txt"
{
"game" "RnLBeta"
}
} }
+2 -2
View File
@@ -18,13 +18,13 @@
"RoundRespawn" "RoundRespawn"
{ {
"library" "server" "library" "server"
"windows" "\x56\x8B\xF1\x8B\x06\xFF\x90\x2A\x04\x00\x00\x8B\x86\x2A\x0D\x00" "windows" "\x56\x8B\xF1\x8B\x06\x8B\x2A\x2A\x2A\x2A\x2A\xFF\xD2\x8B\x2A\x2A\x2A\x2A\x2A\x85"
"linux" "@_ZN9CCSPlayer12RoundRespawnEv" "linux" "@_ZN9CCSPlayer12RoundRespawnEv"
} }
"SwitchTeam" "SwitchTeam"
{ {
"library" "server" "library" "server"
"windows" "\x83\xEC\x10\x56\x57\x8B\x7C\x24\x1C\x57\x8B\xF1\xE8\x2A\x2A\x2A\x2A\x83\xC4\x04\x85\xC0\x0F\x84\xEA\x00\x00\x00\x83\xFF\x03\x74\x09\x83\xFF\x02\x0F\x85\xDC\x00\x00\x00\x8B\xCE\xE8\x2A\x2A\x2A\x2A\x3B\xF8\x0F\x84\xDC\x00\x00\x00\x57\x8B\xCE\xC6\x86\x2A\x2A" "windows" "\x83\xEC\x10\x56\x57\x8B\x7C\x24\x1C\x57\x8B\xF1\xE8\x2A\x2A\x2A\x2A\x83\xC4\x04\x85\xC0\x0F\x2A\x2A\x2A\x2A\x2A\x83\xFF\x03\x74\x09\x83\xFF\x02\x0F\x2A\x2A\x2A\x2A\x2A\x8B\xCE\xE8\x2A\x2A\x2A\x2A\x3B"
"linux" "@_ZN9CCSPlayer10SwitchTeamEi" "linux" "@_ZN9CCSPlayer10SwitchTeamEi"
} }
} }
+33 -3
View File
@@ -18,7 +18,7 @@
"Burn" "Burn"
{ {
"library" "server" "library" "server"
"windows" "\x56\x8B\xF1\x8B\x8E\x2A\x2A\x00\x00\x8B\x01\x8B\x90\x2A\x2A\x00\x00\xFF\xD2\x84\xC0" "windows" "\x56\x8B\xF1\x8B\x8E\x2A\x2A\x00\x00\x8B\x01\x8B\x90\x2A\x2A\x00\x00\xFF\xD2\x84\xC0\x0F\x2A\x2A\x2A\x2A\x2A\x8B"
"linux" "@_ZN15CTFPlayerShared4BurnEP9CTFPlayerP13CTFWeaponBase" "linux" "@_ZN15CTFPlayerShared4BurnEP9CTFPlayerP13CTFWeaponBase"
} }
"RemoveDisguise" "RemoveDisguise"
@@ -51,13 +51,43 @@
"linux" "@_ZN14CTFCompoundBow26CalcIsAttackCriticalHelperEv" "linux" "@_ZN14CTFCompoundBow26CalcIsAttackCriticalHelperEv"
"windows" "\xE8\x2A\x2A\x2A\x2A\x85\xC0\x74\x14\x6A\x0B" "windows" "\xE8\x2A\x2A\x2A\x2A\x85\xC0\x74\x14\x6A\x0B"
} }
"Regenerate"
{
"library" "server"
"windows" "\x83\xEC\x08\xD9\xE8\x53\x55\xD9\x2A\x2A\x2A\x56\x8B\xF1\x8B\x06\x8B\x90"
"linux" "@_ZN9CTFPlayer10RegenerateEv"
}
"AddCondition"
{
"library" "server"
"windows" "\x56\x57\x8B\x7C\x2A\x2A\x8B\xF1\x8B\xCF\xBA\x01\x00\x00\x00\xD3\xE2\x8D\x46\x2A\x8D\x4C\x2A\x2A\x51\x0B\x10"
"linux" "@_ZN15CTFPlayerShared7AddCondEif"
}
"RemoveCondition"
{
"library" "server"
"windows" "\x56\x57\x8B\x7C\x2A\x2A\x8B\xF1\x8B\xCF\xBA\x01\x00\x00\x00\xD3\xE2\x8D\x46\x2A\x8D\x4C\x2A\x2A\x51\xF7\xD2"
"linux" "@_ZN15CTFPlayerShared10RemoveCondEi"
}
"SetPowerplayEnabled"
{
"library" "server"
"windows" "\x80\x7C\x2A\x2A\x2A\x56\x8B\xF1\x74\x2A\xA1\x2A\x2A\x2A\x2A\xD9\x2A\x2A\x57"
"linux" "@_ZN9CTFPlayer19SetPowerplayEnabledEb"
}
"StunPlayer"
{
"library" "server"
"windows" "\x51\xD9\x2A\x2A\x2A\x2A\x2A\x56\x83\xEC\x2A\xD9\x2A\x2A\x2A\x8B\xF1\xD9\xEE\xD9\x2A\x2A\x2A\xD9\xE8"
"linux" "@_ZN15CTFPlayerShared10StunPlayerEffiP9CTFPlayer"
}
} }
"Offsets" "Offsets"
{ {
"ForceRespawn" "ForceRespawn"
{ {
"windows" "312" "windows" "313"
"linux" "313" "linux" "314"
} }
} }
} }
+1 -1
View File
@@ -60,7 +60,7 @@ public OnPluginStart()
LoadTranslations("basebans.phrases"); LoadTranslations("basebans.phrases");
RegAdminCmd("sm_ban", Command_Ban, ADMFLAG_BAN, "sm_ban <#userid|name> <minutes|0> [reason]"); RegAdminCmd("sm_ban", Command_Ban, ADMFLAG_BAN, "sm_ban <#userid|name> <minutes|0> [reason]");
RegAdminCmd("sm_unban", Command_Unban, ADMFLAG_UNBAN, "sm_unban <steamid>"); RegAdminCmd("sm_unban", Command_Unban, ADMFLAG_UNBAN, "sm_unban <steamid|ip>");
RegAdminCmd("sm_addban", Command_AddBan, ADMFLAG_RCON, "sm_addban <time> <steamid> [reason]"); RegAdminCmd("sm_addban", Command_AddBan, ADMFLAG_RCON, "sm_addban <time> <steamid> [reason]");
RegAdminCmd("sm_banip", Command_BanIp, ADMFLAG_BAN, "sm_banip <ip|#userid|name> <time> [reason]"); RegAdminCmd("sm_banip", Command_BanIp, ADMFLAG_BAN, "sm_banip <ip|#userid|name> <time> [reason]");
+6
View File
@@ -210,6 +210,12 @@ public Action:Command_Nextmap(client, args)
public Action:Command_Motd(client, args) public Action:Command_Motd(client, args)
{ {
if (client == 0)
{
ReplyToCommand(client, "[SM] %t", "Command is in-game only");
return Plugin_Handled;
}
ShowMOTDPanel(client, "Message Of The Day", "motd", MOTDPANEL_TYPE_INDEX); ShowMOTDPanel(client, "Message Of The Day", "motd", MOTDPANEL_TYPE_INDEX);
return Plugin_Handled; return Plugin_Handled;
+1 -1
View File
@@ -199,7 +199,7 @@ native GetArrayArray(Handle:array, index, any:buffer[], size=-1);
* @noreturn * @noreturn
* @error Invalid Handle, invalid index, or invalid block. * @error Invalid Handle, invalid index, or invalid block.
*/ */
native any:SetArrayCell(Handle:array, index, any:value, block=0, bool:asChar=false); native SetArrayCell(Handle:array, index, any:value, block=0, bool:asChar=false);
/** /**
* Sets a string value in an array. * Sets a string value in an array.
+4 -4
View File
@@ -601,7 +601,7 @@ native Float:GetClientTime(client);
* *
* @param client Player's index. * @param client Player's index.
* @param flow Traffic flowing direction. * @param flow Traffic flowing direction.
* @return Latency. * @return Latency, or -1 if network info is not available.
* @error Invalid client index, client not in game, or fake client. * @error Invalid client index, client not in game, or fake client.
*/ */
native Float:GetClientLatency(client, NetFlow:flow); native Float:GetClientLatency(client, NetFlow:flow);
@@ -611,7 +611,7 @@ native Float:GetClientLatency(client, NetFlow:flow);
* *
* @param client Player's index. * @param client Player's index.
* @param flow Traffic flowing direction. * @param flow Traffic flowing direction.
* @return Average latency. * @return Latency, or -1 if network info is not available.
* @error Invalid client index, client not in game, or fake client. * @error Invalid client index, client not in game, or fake client.
*/ */
native Float:GetClientAvgLatency(client, NetFlow:flow); native Float:GetClientAvgLatency(client, NetFlow:flow);
@@ -621,7 +621,7 @@ native Float:GetClientAvgLatency(client, NetFlow:flow);
* *
* @param client Player's index. * @param client Player's index.
* @param flow Traffic flowing direction. * @param flow Traffic flowing direction.
* @return Average packet loss. * @return Average packet loss, or -1 if network info is not available.
* @error Invalid client index, client not in game, or fake client. * @error Invalid client index, client not in game, or fake client.
*/ */
native Float:GetClientAvgLoss(client, NetFlow:flow); native Float:GetClientAvgLoss(client, NetFlow:flow);
@@ -631,7 +631,7 @@ native Float:GetClientAvgLoss(client, NetFlow:flow);
* *
* @param client Player's index. * @param client Player's index.
* @param flow Traffic flowing direction. * @param flow Traffic flowing direction.
* @return Average packet choke. * @return Average packet loss, or -1 if network info is not available.
* @error Invalid client index, client not in game, or fake client. * @error Invalid client index, client not in game, or fake client.
*/ */
native Float:GetClientAvgChoke(client, NetFlow:flow); native Float:GetClientAvgChoke(client, NetFlow:flow);
+7 -3
View File
@@ -839,7 +839,11 @@ native RemoveServerTag(const String:tag[]);
/** /**
* Callback for command listeners. This is invoked whenever any command * Callback for command listeners. This is invoked whenever any command
* reaches the server, from the server console itself or a player. * reaches the server, from the server console itself or a player.
*
* Clients may be in the process of connecting when they are executing commands
* IsClientConnected(client) is not guaranteed to return true. Other functions
* such as GetClientIP() may not work at this point either.
*
* Returning Plugin_Handled or Plugin_Stop will prevent the original, * Returning Plugin_Handled or Plugin_Stop will prevent the original,
* baseline code from running. * baseline code from running.
* *
@@ -849,8 +853,8 @@ native RemoveServerTag(const String:tag[]);
* * C++ command dispatch hooks from Metamod:Source plugins * * C++ command dispatch hooks from Metamod:Source plugins
* * Reg*Cmd() hooks that did not create new commands. * * Reg*Cmd() hooks that did not create new commands.
* *
* @param client Client, or 0 for server. Client will be connected but * @param client Client, or 0 for server.
* not necessarily in game. * Client may not be connected or in game.
* @param command Command name, lower case. To get name as typed, use * @param command Command name, lower case. To get name as typed, use
* GetCmdArg() and specify argument 0. * GetCmdArg() and specify argument 0.
* @param argc Argument count. * @param argc Argument count.
+5
View File
@@ -30,6 +30,11 @@
* Version: $Id$ * Version: $Id$
*/ */
#if defined _functions_included
#endinput
#endif
#define _functions_included
#define SP_PARAMFLAG_BYREF (1<<0) /**< Internal use only. */ #define SP_PARAMFLAG_BYREF (1<<0) /**< Internal use only. */
/** /**
+1 -1
View File
@@ -403,7 +403,7 @@ stock EmitSoundToAll(const String:sample[],
bool:updatePos = true, bool:updatePos = true,
Float:soundtime = 0.0) Float:soundtime = 0.0)
{ {
new clients[maxClients]; new clients[MaxClients];
new total = 0; new total = 0;
for (new i=1; i<=MaxClients; i++) for (new i=1; i<=MaxClients; i++)
+113 -1
View File
@@ -35,6 +35,20 @@
#endif #endif
#define _tf2_included #define _tf2_included
#define TF_STUNFLAG_SLOWDOWN (1 << 0) // activates slowdown modifier
#define TF_STUNFLAG_BONKSTUCK (1 << 1) // bonk sound, stuck
#define TF_STUNFLAG_LIMITMOVEMENT (1 << 2) // disable forward/backward movement
#define TF_STUNFLAG_CHEERSOUND (1 << 3) // cheering sound
#define TF_STUNFLAG_NOSOUNDOREFFECT (1 << 5) // no sound or particle
#define TF_STUNFLAG_THIRDPERSON (1 << 6) // panic animation
#define TF_STUNFLAG_GHOSTEFFECT (1 << 7) // ghost particles
#define TF_STUNFLAGS_LOSERSTATE TF_STUNFLAG_SLOWDOWN|TF_STUNFLAG_NOSOUNDOREFFECT|TF_STUNFLAG_THIRDPERSON
#define TF_STUNFLAGS_GHOSTSCARE TF_STUNFLAG_GHOSTEFFECT|TF_STUNFLAG_THIRDPERSON
#define TF_STUNFLAGS_SMALLBONK TF_STUNFLAG_THIRDPERSON|TF_STUNFLAG_SLOWDOWN
#define TF_STUNFLAGS_NORMALBONK TF_STUNFLAG_BONKSTUCK
#define TF_STUNFLAGS_BIGBONK TF_STUNFLAG_CHEERSOUND|TF_STUNFLAG_BONKSTUCK
enum TFClassType enum TFClassType
{ {
TFClass_Unknown = 0, TFClass_Unknown = 0,
@@ -57,6 +71,34 @@ enum TFTeam
TFTeam_Blue = 3 TFTeam_Blue = 3
}; };
enum TFCond
{
TFCond_Slowed = 0,
TFCond_Zoomed,
TFCond_Disguising,
TFCond_Disguised,
TFCond_Cloaked,
TFCond_Ubercharged,
TFCond_TeleportedGlow,
TFCond_Taunting,
TFCond_UberchargeFading,
TFCond_Unknown1,
TFCond_Teleporting,
TFCond_Kritzkrieged,
TFCond_Unknown2,
TFCond_DeadRingered,
TFCond_Bonked,
TFCond_Dazed,
TFCond_Buffed,
TFCond_Charging,
TFCond_DemoBuff,
TFCond_CritCola,
TFCond_Healing,
TFCond_OnFire,
TFCond_Overhealed,
TFCond_Jarated
}
/** /**
* Sets a client on fire for 10 seconds. * Sets a client on fire for 10 seconds.
* *
@@ -75,6 +117,46 @@ native TF2_IgnitePlayer(client, target);
*/ */
native TF2_RespawnPlayer(client); native TF2_RespawnPlayer(client);
/**
* Regenerates a client's health and ammunition
*
* @param client Player's index.
* @noreturn
* @error Invalid client index, client not in game, or no mod support.
*/
native TF2_RegeneratePlayer(client);
/**
* Adds a condition to a player
*
* @param client Player's index.
* @param condition Integer identifier of condition to apply.
* @param duration Duration of condition (does not apply to all conditions).
* @noreturn
* @error Invalid client index, client not in game, or no mod support.
*/
native TF2_AddCondition(client, TFCond:condition, Float:duration);
/**
* Removes a condition from a player
*
* @param client Player's index.
* @param condition Integer identifier of condition to remove.
* @noreturn
* @error Invalid client index, client not in game, or no mod support.
*/
native TF2_RemoveCondition(client, TFCond:condition);
/**
* Enables/disables PowerPlay mode on a player.
*
* @param client Player's index.
* @param enabled Whether to enable or disable PowerPlay on player.
* @noreturn
* @error Invalid client index, client not in game, or no mod support.
*/
native TF2_SetPlayerPowerPlay(client, bool:enabled);
/** /**
* Disguises a client to the given model and team. Only has an effect on spies. * Disguises a client to the given model and team. Only has an effect on spies.
* *
@@ -97,6 +179,19 @@ native TF2_DisguisePlayer(client, TFTeam:team, TFClassType:class);
*/ */
native TF2_RemovePlayerDisguise(client); native TF2_RemovePlayerDisguise(client);
/**
* Stuns a client
*
* @param client Player's index.
* @param float Duration of stun.
* @param float Slowdown percent (as decimal, 0.00-1.00)
* (ignored if TF_STUNFLAG_SLOWDOWN is not set.
* @param int Stun flags.
* @param attacker Attacker's index (0 is allowed for world).
* @noreturn
*/
native TF2_StunPlayer(client, Float:duration, Float:slowdown=0.0, stunflags, attacker=0);
/** /**
* Retrieves the entity index of the CPlayerResource entity * Retrieves the entity index of the CPlayerResource entity
* *
@@ -136,10 +231,27 @@ public Extension:__ext_tf2 =
{ {
name = "TF2 Tools", name = "TF2 Tools",
file = "game.tf2.ext", file = "game.tf2.ext",
autoload = 1, autoload = 0,
#if defined REQUIRE_EXTENSIONS #if defined REQUIRE_EXTENSIONS
required = 1, required = 1,
#else #else
required = 0, required = 0,
#endif #endif
}; };
#if !defined REQUIRE_EXTENSIONS
public __ext_tf2_SetNTVOptional()
{
MarkNativeAsOptional("TF2_IgnitePlayer");
MarkNativeAsOptional("TF2_RespawnPlayer");
MarkNativeAsOptional("TF2_RegeneratePlayer");
MarkNativeAsOptional("TF2_AddCondition");
MarkNativeAsOptional("TF2_RemoveCondition");
MarkNativeAsOptional("TF2_SetPlayerPowerPlay");
MarkNativeAsOptional("TF2_DisguisePlayer");
MarkNativeAsOptional("TF2_RemovePlayerDisguise");
MarkNativeAsOptional("TF2_StunPlayer");
MarkNativeAsOptional("TF2_GetResourceEntity");
MarkNativeAsOptional("TF2_GetClass");
}
#endif
+41
View File
@@ -38,6 +38,37 @@
#include <tf2> #include <tf2>
#include <sdktools> #include <sdktools>
#define TF_CONDFLAG_NONE 0
#define TF_CONDFLAG_SLOWED (1 << 0)
#define TF_CONDFLAG_ZOOMED (1 << 1)
#define TF_CONDFLAG_DISGUISING (1 << 2)
#define TF_CONDFLAG_DISGUISED (1 << 3)
#define TF_CONDFLAG_CLOAKED (1 << 4)
#define TF_CONDFLAG_UBERCHARGED (1 << 5)
#define TF_CONDFLAG_TELEPORTGLOW (1 << 6)
#define TF_CONDFLAG_TAUNTING (1 << 7)
#define TF_CONDFLAG_UBERCHARGEFADE (1 << 8)
#define TF_CONDFLAG_TELEPORTING (1 << 10)
#define TF_CONDFLAG_KRITZKRIEGED (1 << 11)
#define TF_CONDFLAG_DEADRINGERED (1 << 13)
#define TF_CONDFLAG_BONKED (1 << 14)
#define TF_CONDFLAG_DAZED (1 << 15)
#define TF_CONDFLAG_BUFFED (1 << 16)
#define TF_CONDFLAG_CHARGING (1 << 17)
#define TF_CONDFLAG_DEMOBUFF (1 << 18)
#define TF_CONDFLAG_CRITCOLA (1 << 19)
#define TF_CONDFLAG_HEALING (1 << 20)
#define TF_CONDFLAG_ONFIRE (1 << 21)
#define TF_CONDFLAG_OVERHEALED (1 << 22)
#define TF_CONDFLAG_JARATED (1 << 23)
#define TF_DEATHFLAG_KILLERDOMINATION (1 << 0)
#define TF_DEATHFLAG_ASSISTERDOMINATION (1 << 1)
#define TF_DEATHFLAG_KILLERREVENGE (1 << 2)
#define TF_DEATHFLAG_ASSISTERREVENGE (1 << 3)
#define TF_DEATHFLAG_FIRSTBLOOD (1 << 4)
#define TF_DEATHFLAG_DEADRINGER (1 << 5)
enum TFResourceType enum TFResourceType
{ {
TFResource_Ping, TFResource_Ping,
@@ -217,3 +248,13 @@ stock TF2_RemoveAllWeapons(client)
} }
} }
/**
* Gets a player's condition bits
*
* @param client Player's index.
* @return Player's condition bits
*/
stock TF2_GetPlayerConditionFlags(client)
{
return GetEntProp(client, Prop_Send, "m_nPlayerCond");
}
+2 -2
View File
@@ -37,6 +37,6 @@
#define SOURCEMOD_V_MAJOR 1 /**< SourceMod Major version */ #define SOURCEMOD_V_MAJOR 1 /**< SourceMod Major version */
#define SOURCEMOD_V_MINOR 3 /**< SourceMod Minor version */ #define SOURCEMOD_V_MINOR 3 /**< SourceMod Minor version */
#define SOURCEMOD_V_RELEASE 1 /**< SourceMod Release version */ #define SOURCEMOD_V_RELEASE 3 /**< SourceMod Release version */
#define SOURCEMOD_VERSION "1.3.1" /**< SourceMod version string (major.minor.release.build) */ #define SOURCEMOD_VERSION "1.3.3" /**< SourceMod version string (major.minor.release.build) */
+111 -30
View File
@@ -15,26 +15,25 @@ public Plugin:myinfo =
public OnPluginStart() public OnPluginStart()
{ {
RegConsoleCmd("sm_burnme", Command_Burn); RegConsoleCmd("sm_burnme", Command_Burn);
RegConsoleCmd("sm_invuln", Command_Invuln);
RegConsoleCmd("sm_respawn", Command_Respawn); RegConsoleCmd("sm_respawn", Command_Respawn);
RegConsoleCmd("sm_disguise", Command_Disguise); RegConsoleCmd("sm_disguise", Command_Disguise);
RegConsoleCmd("sm_remdisguise", Command_RemDisguise); RegConsoleCmd("sm_remdisguise", Command_RemDisguise);
RegConsoleCmd("sm_class", Command_Class); RegConsoleCmd("sm_class", Command_Class);
RegConsoleCmd("sm_remove", Command_Remove); RegConsoleCmd("sm_remove", Command_Remove);
RegConsoleCmd("sm_changeclass", Command_ChangeClass); RegConsoleCmd("sm_changeclass", Command_ChangeClass);
RegConsoleCmd("sm_regenerate", Command_Regenerate);
RegConsoleCmd("sm_uberme", Command_UberMe);
RegConsoleCmd("sm_unuberme", Command_UnUberMe);
RegConsoleCmd("sm_setpowerplay", Command_SetPowerPlay);
RegConsoleCmd("sm_panic", Command_Panic);
RegConsoleCmd("sm_bighit", Command_BigHit);
RegConsoleCmd("sm_frighten", Command_Frighten);
} }
public Action:Command_Class(client, args) public Action:Command_Class(client, args)
{ {
TF2_RemoveAllWeapons(client); TF2_RemoveAllWeapons(client);
decl String:text[10];
GetCmdArg(1, text, sizeof(text));
new one = StringToInt(text);
TF2_EquipPlayerClassWeapons(client, TFClassType:one);
PrintToChat(client, "Test: sniper's classnum is %i (should be %i)", TF2_GetClass("sniper"), TFClass_Sniper); PrintToChat(client, "Test: sniper's classnum is %i (should be %i)", TF2_GetClass("sniper"), TFClass_Sniper);
return Plugin_Handled; return Plugin_Handled;
@@ -93,28 +92,6 @@ public Action:Command_Burn(client, args)
return Plugin_Handled; return Plugin_Handled;
} }
public Action:Command_Invuln(client, args)
{
if (client == 0)
{
return Plugin_Handled;
}
if (args < 1)
{
return Plugin_Handled;
}
decl String:text[10];
GetCmdArg(1, text, sizeof(text));
new bool:one = !!StringToInt(text);
TF2_SetPlayerInvuln(client, one)
return Plugin_Handled;
}
public Action:Command_Disguise(client, args) public Action:Command_Disguise(client, args)
{ {
if (client == 0) if (client == 0)
@@ -165,3 +142,107 @@ public Action:Command_Respawn(client, args)
return Plugin_Handled; return Plugin_Handled;
} }
public Action:Command_Regenerate(client, args)
{
if (client == 0)
{
return Plugin_Handled;
}
TF2_RegeneratePlayer(client);
return Plugin_Handled;
}
public Action:Command_UberMe(client, args)
{
if (client == 0)
{
return Plugin_Handled;
}
if (args < 1)
{
return Plugin_Handled;
}
decl String:text[10];
GetCmdArg(1, text, sizeof(text));
new Float:one = StringToFloat(text);
TF2_AddCondition(client, TFCond_Ubercharged, one);
return Plugin_Handled;
}
public Action:Command_UnUberMe(client, args)
{
if (client == 0)
{
return Plugin_Handled;
}
TF2_RemoveCondition(client, TFCond_Ubercharged);
return Plugin_Handled;
}
public Action:Command_SetPowerPlay(client, args)
{
if (client == 0)
{
return Plugin_Handled;
}
if (args < 1)
{
return Plugin_Handled;
}
decl String:text[10];
GetCmdArg(1, text, sizeof(text));
new bool:one = bool:StringToInt(text);
TF2_SetPlayerPowerPlay(client, one);
return Plugin_Handled;
}
public Action:Command_Panic(client, args)
{
if (client == 0)
{
return Plugin_Handled;
}
TF2_StunPlayer(client, 15.0, 0.25, TF_STUNFLAGS_LOSERSTATE);
return Plugin_Handled;
}
public Action:Command_BigHit(client, args)
{
if (client == 0)
{
return Plugin_Handled;
}
TF2_StunPlayer(client, 5.0, _, TF_STUNFLAGS_BIGBONK, client);
return Plugin_Handled;
}
public Action:Command_Frighten(client, args)
{
if (client == 0)
{
return Plugin_Handled;
}
TF2_StunPlayer(client, 5.0, _, TF_STUNFLAGS_GHOSTSCARE);
return Plugin_Handled;
}
+1 -1
View File
@@ -1 +1 @@
1.3.1 1.3.3
+11 -9
View File
@@ -1,4 +1,4 @@
# (C)2004-2009 SourceMod Development Team # (C)2004-2010 SourceMod Development Team
# Makefile written by David "BAILOPAN" Anderson # Makefile written by David "BAILOPAN" Anderson
SMSDK = .. SMSDK = ..
@@ -37,7 +37,7 @@ ifeq "$(ENGINE)" "original"
METAMOD = $(MMSOURCE18)/core-legacy METAMOD = $(MMSOURCE18)/core-legacy
INCLUDE += -I$(HL2SDK)/public/dlls INCLUDE += -I$(HL2SDK)/public/dlls
SRCDS = $(SRCDS_BASE) SRCDS = $(SRCDS_BASE)
LIB_SUFFIX = i486 LIB_SUFFIX = _i486.so
override ENGSET = true override ENGSET = true
endif endif
ifeq "$(ENGINE)" "orangebox" ifeq "$(ENGINE)" "orangebox"
@@ -48,7 +48,7 @@ ifeq "$(ENGINE)" "orangebox"
METAMOD = $(MMSOURCE18)/core METAMOD = $(MMSOURCE18)/core
INCLUDE += -I$(HL2SDK)/public/game/server INCLUDE += -I$(HL2SDK)/public/game/server
SRCDS = $(SRCDS_BASE)/orangebox SRCDS = $(SRCDS_BASE)/orangebox
LIB_SUFFIX = i486 LIB_SUFFIX = _i486.so
override ENGSET = true override ENGSET = true
endif endif
ifeq "$(ENGINE)" "orangeboxvalve" ifeq "$(ENGINE)" "orangeboxvalve"
@@ -59,7 +59,8 @@ ifeq "$(ENGINE)" "orangeboxvalve"
METAMOD = $(MMSOURCE18)/core METAMOD = $(MMSOURCE18)/core
INCLUDE += -I$(HL2SDK)/public/game/server INCLUDE += -I$(HL2SDK)/public/game/server
SRCDS = $(SRCDS_BASE)/orangebox SRCDS = $(SRCDS_BASE)/orangebox
LIB_SUFFIX = i486 LIB_PREFIX = lib
LIB_SUFFIX = .so
override ENGSET = true override ENGSET = true
endif endif
ifeq "$(ENGINE)" "left4dead" ifeq "$(ENGINE)" "left4dead"
@@ -70,7 +71,7 @@ ifeq "$(ENGINE)" "left4dead"
METAMOD = $(MMSOURCE18)/core METAMOD = $(MMSOURCE18)/core
INCLUDE += -I$(HL2SDK)/public/game/server INCLUDE += -I$(HL2SDK)/public/game/server
SRCDS = $(SRCDS_BASE)/l4d SRCDS = $(SRCDS_BASE)/l4d
LIB_SUFFIX = i486 LIB_SUFFIX = _i486.so
override ENGSET = true override ENGSET = true
endif endif
ifeq "$(ENGINE)" "left4dead2" ifeq "$(ENGINE)" "left4dead2"
@@ -81,14 +82,15 @@ ifeq "$(ENGINE)" "left4dead2"
METAMOD = $(MMSOURCE18)/core METAMOD = $(MMSOURCE18)/core
INCLUDE += -I$(HL2SDK)/public/game/server INCLUDE += -I$(HL2SDK)/public/game/server
SRCDS = $(SRCDS_BASE)/left4dead2 SRCDS = $(SRCDS_BASE)/left4dead2
LIB_SUFFIX = linux LIB_PREFIX = lib
LIB_SUFFIX = .so
override ENGSET = true override ENGSET = true
endif endif
CFLAGS += -DSE_EPISODEONE=1 -DSE_DARKMESSIAH=2 -DSE_ORANGEBOX=3 -DSE_ORANGEBOXVALVE=4 \ CFLAGS += -DSE_EPISODEONE=1 -DSE_DARKMESSIAH=2 -DSE_ORANGEBOX=3 -DSE_ORANGEBOXVALVE=4 \
-DSE_LEFT4DEAD=5 -DSE_LEFT4DEAD2=6 -DSE_LEFT4DEAD=5 -DSE_LEFT4DEAD2=6
LINK = vstdlib_$(LIB_SUFFIX).so tier0_$(LIB_SUFFIX).so -m32 -ldl -lm LINK = $(LIB_PREFIX)vstdlib$(LIB_SUFFIX) $(LIB_PREFIX)tier0$(LIB_SUFFIX) -m32 -ldl -lm
INCLUDE += -I. -I.. -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \ INCLUDE += -I. -I.. -I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 \
-I$(METAMOD) -I$(METAMOD)/sourcehook -I$(SMSDK) -I$(SMSDK)/jit -I$(SMSDK)/jit/x86 \ -I$(METAMOD) -I$(METAMOD)/sourcehook -I$(SMSDK) -I$(SMSDK)/jit -I$(SMSDK)/jit/x86 \
@@ -133,8 +135,8 @@ $(BIN_DIR)/%.o: %.cpp
all: check all: check
mkdir -p $(BIN_DIR) mkdir -p $(BIN_DIR)
ln -sf $(HL2LIB)/vstdlib_$(LIB_SUFFIX).so ln -sf $(HL2LIB)/$(LIB_PREFIX)vstdlib$(LIB_SUFFIX)
ln -sf $(HL2LIB)/tier0_$(LIB_SUFFIX).so ln -sf $(HL2LIB)/$(LIB_PREFIX)tier0$(LIB_SUFFIX)
$(MAKE) -f Makefile mms_ext $(MAKE) -f Makefile mms_ext
check: check:
+11 -9
View File
@@ -1,4 +1,4 @@
# (C)2004-2009 SourceMod Development Team # (C)2004-2010 SourceMod Development Team
# Makefile written by David "BAILOPAN" Anderson # Makefile written by David "BAILOPAN" Anderson
SMSDK = ../.. SMSDK = ../..
@@ -40,7 +40,7 @@ ifeq "$(ENGINE)" "original"
METAMOD = $(MMSOURCE18)/core-legacy METAMOD = $(MMSOURCE18)/core-legacy
INCLUDE += -I$(HL2SDK)/public/dlls INCLUDE += -I$(HL2SDK)/public/dlls
SRCDS = $(SRCDS_BASE) SRCDS = $(SRCDS_BASE)
LIB_SUFFIX = i486 LIB_SUFFIX = _i486.so
override ENGSET = true override ENGSET = true
endif endif
ifeq "$(ENGINE)" "orangebox" ifeq "$(ENGINE)" "orangebox"
@@ -51,7 +51,7 @@ ifeq "$(ENGINE)" "orangebox"
METAMOD = $(MMSOURCE18)/core METAMOD = $(MMSOURCE18)/core
INCLUDE += -I$(HL2SDK)/public/game/server INCLUDE += -I$(HL2SDK)/public/game/server
SRCDS = $(SRCDS_BASE)/orangebox SRCDS = $(SRCDS_BASE)/orangebox
LIB_SUFFIX = i486 LIB_SUFFIX = _i486.so
override ENGSET = true override ENGSET = true
endif endif
ifeq "$(ENGINE)" "orangeboxvalve" ifeq "$(ENGINE)" "orangeboxvalve"
@@ -62,7 +62,8 @@ ifeq "$(ENGINE)" "orangeboxvalve"
METAMOD = $(MMSOURCE18)/core METAMOD = $(MMSOURCE18)/core
INCLUDE += -I$(HL2SDK)/public/game/server INCLUDE += -I$(HL2SDK)/public/game/server
SRCDS = $(SRCDS_BASE)/orangebox SRCDS = $(SRCDS_BASE)/orangebox
LIB_SUFFIX = i486 LIB_PREFIX = lib
LIB_SUFFIX = .so
override ENGSET = true override ENGSET = true
endif endif
ifeq "$(ENGINE)" "left4dead" ifeq "$(ENGINE)" "left4dead"
@@ -73,7 +74,7 @@ ifeq "$(ENGINE)" "left4dead"
METAMOD = $(MMSOURCE18)/core METAMOD = $(MMSOURCE18)/core
INCLUDE += -I$(HL2SDK)/public/game/server INCLUDE += -I$(HL2SDK)/public/game/server
SRCDS = $(SRCDS_BASE)/l4d SRCDS = $(SRCDS_BASE)/l4d
LIB_SUFFIX = i486 LIB_SUFFIX = _i486.so
override ENGSET = true override ENGSET = true
endif endif
ifeq "$(ENGINE)" "left4dead2" ifeq "$(ENGINE)" "left4dead2"
@@ -84,12 +85,13 @@ ifeq "$(ENGINE)" "left4dead2"
METAMOD = $(MMSOURCE18)/core METAMOD = $(MMSOURCE18)/core
INCLUDE += -I$(HL2SDK)/public/game/server INCLUDE += -I$(HL2SDK)/public/game/server
SRCDS = $(SRCDS_BASE)/left4dead2 SRCDS = $(SRCDS_BASE)/left4dead2
LIB_SUFFIX = linux LIB_PREFIX = lib
LIB_SUFFIX = .so
override ENGSET = true override ENGSET = true
endif endif
ifeq "$(USEMETA)" "true" ifeq "$(USEMETA)" "true"
LINK_HL2 = $(HL2LIB)/tier1_i486.a vstdlib_$(LIB_SUFFIX).so tier0_$(LIB_SUFFIX).so LINK_HL2 = $(HL2LIB)/tier1_i486.a $(LIB_PREFIX)vstdlib$(LIB_SUFFIX) $(LIB_PREFIX)tier0$(LIB_SUFFIX)
LINK += $(LINK_HL2) LINK += $(LINK_HL2)
@@ -147,8 +149,8 @@ $(BIN_DIR)/%.o: %.cpp
all: check all: check
mkdir -p $(BIN_DIR)/sdk mkdir -p $(BIN_DIR)/sdk
if [ "$(USEMETA)" = "true" ]; then \ if [ "$(USEMETA)" = "true" ]; then \
ln -sf $(HL2LIB)/vstdlib_$(LIB_SUFFIX).so; \ ln -sf $(HL2LIB)/$(LIB_PREFIX)vstdlib$(LIB_SUFFIX); \
ln -sf $(HL2LIB)/tier0_$(LIB_SUFFIX).so; \ ln -sf $(HL2LIB)/$(LIB_PREFIX)tier0$(LIB_SUFFIX); \
fi fi
$(MAKE) -f Makefile extension $(MAKE) -f Makefile extension
+4 -1
View File
@@ -2,7 +2,7 @@ a billion and nanas
joys of buildbot, part 2: buildbot and the very lonely square-shaped duck joys of buildbot, part 2: buildbot and the very lonely square-shaped duck
joys of buildbot, part 3: an accidental event proves troublesome for a psychic fish joys of buildbot, part 3: an accidental event proves troublesome for a psychic fish
joys of buildbot, part 4: a transient mummy is perplexed by a broken wand joys of buildbot, part 4: a transient mummy is perplexed by a broken wand
buildbot has horrible bugs buildbot has horrible blugs
i am the very model of a modern major general i am the very model of a modern major general
It's no wonder the build always falls over when we call it pushing. It's no wonder the build always falls over when we call it pushing.
@@ -18,3 +18,6 @@ joys of buildbot, part nana: if you don't do as you are told, buildbot-san, you
DS saves us from Valve again. DS saves us from Valve again.
Invaders' blood marches through my veins, like GIANT RADIOACTIVE RUBBER PANTS! Invaders' blood marches through my veins, like GIANT RADIOACTIVE RUBBER PANTS!
THE PANTS COMMAND COMMAND ME! DO NOT IGNORE MY VEINS. THE PANTS COMMAND COMMAND ME! DO NOT IGNORE MY VEINS.
This text is written in invisible ink.
o
+3
View File
@@ -2341,7 +2341,10 @@ static int declloc(int fstatic)
stradjust(sPRI); stradjust(sPRI);
} }
pushreg(sPRI); pushreg(sPRI);
/* No idea why this is here, but it throws away dimension info which
would otherwise be used by addvariable2 below.
memset(dim, 0, sizeof(int)*sDIMEN_MAX); memset(dim, 0, sizeof(int)*sDIMEN_MAX);
*/
ident = iREFARRAY; ident = iREFARRAY;
genarray(numdim, autozero); genarray(numdim, autozero);
} }
+2 -7
View File
@@ -1733,13 +1733,8 @@ inline void WriteOp_Switch(JitWriter *jit)
for (cell_t i=0; i<num_cases; i++) for (cell_t i=0; i<num_cases; i++)
{ {
val = cases[i].val; val = cases[i].val;
//cmp eax, <val> OR cmp al, <val> //cmp eax, <val>
if (val >= SCHAR_MIN && val <= SCHAR_MAX) IA32_Cmp_Eax_Imm32(jit, val);
{
IA32_Cmp_Al_Imm8(jit, val);
} else {
IA32_Cmp_Eax_Imm32(jit, cases[i].val);
}
IA32_Jump_Cond_Imm32_Rel(jit, CC_E, RelocLookup(jit, cases[i].offs, false)); IA32_Jump_Cond_Imm32_Rel(jit, CC_E, RelocLookup(jit, cases[i].offs, false));
} }
/* After all this, jump to the default case! */ /* After all this, jump to the default case! */
+1 -1
View File
@@ -209,7 +209,7 @@ AddNormalLibrary('sourcepawn.jit.x86', 'bin')
AddNormalLibrary('geoip.ext', 'extensions') AddNormalLibrary('geoip.ext', 'extensions')
AddNormalLibrary('dbi.mysql.ext', 'extensions') AddNormalLibrary('dbi.mysql.ext', 'extensions')
AddNormalLibrary('dbi.sqlite.ext', 'extensions') AddNormalLibrary('dbi.sqlite.ext', 'extensions')
AddNormalLibrary('game.cstrike.ext.1.ep1', 'extensions') AddNormalLibrary('game.cstrike.ext.2.ep2v', 'extensions')
AddNormalLibrary('game.tf2.ext.2.ep2v', 'extensions') AddNormalLibrary('game.tf2.ext.2.ep2v', 'extensions')
AddNormalLibrary('topmenus.ext', 'extensions') AddNormalLibrary('topmenus.ext', 'extensions')
AddNormalLibrary('regex.ext', 'extensions') AddNormalLibrary('regex.ext', 'extensions')