Compare commits
24
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3e63e611c2 | ||
|
|
c3598d8e71 | ||
|
|
f57097651b | ||
|
|
a5450aad18 | ||
|
|
0a4a06d9e1 | ||
|
|
dd51da519d | ||
|
|
c79f52e2c9 | ||
|
|
c4279da3b2 | ||
|
|
3923177037 | ||
|
|
80a0e24b66 | ||
|
|
75d770ba0f | ||
|
|
d9e6daa006 | ||
|
|
f08b60bc98 | ||
|
|
4d98fc2a3d | ||
|
|
0b4ec459d3 | ||
|
|
65269551f9 | ||
|
|
47b0022331 | ||
|
|
7df2b28fe0 | ||
|
|
7df1069613 | ||
|
|
7585acaeef | ||
|
|
dfcf953131 | ||
|
|
cb31a65807 | ||
|
|
6123c5e013 | ||
|
|
cb73b935ec |
@@ -381,6 +381,9 @@ class SMConfig(object):
|
|||||||
if builder.target_platform in ['linux', 'mac']:
|
if builder.target_platform in ['linux', 'mac']:
|
||||||
compiler.defines += ['NO_HOOK_MALLOC', 'NO_MALLOC_OVERRIDE']
|
compiler.defines += ['NO_HOOK_MALLOC', 'NO_MALLOC_OVERRIDE']
|
||||||
|
|
||||||
|
if sdk.name == 'csgo' and builder.target_platform == 'linux':
|
||||||
|
compiler.linkflags += ['-lstdc++']
|
||||||
|
|
||||||
for path in paths:
|
for path in paths:
|
||||||
compiler.cxxincludes += [os.path.join(sdk.path, *path)]
|
compiler.cxxincludes += [os.path.join(sdk.path, *path)]
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,19 @@
|
|||||||
SourceMod Changelog
|
SourceMod Changelog
|
||||||
|
|
||||||
|
SourceMod 1.6.2 [2014-09-20]
|
||||||
|
|
||||||
|
URL: http://wiki.alliedmods.net/SourceMod_1.6.2_Release_Notes
|
||||||
|
|
||||||
|
User Changes:
|
||||||
|
- Updated game support for TF2, CS:GO, No More Room in Hell and Fistful of Frags.
|
||||||
|
- Added compatibility shim to force Steam player auth strings to be in "Steam2" rendered format (PR 136).
|
||||||
|
- Fixed possible performance regression in DBI handling.
|
||||||
|
|
||||||
|
Developer Changes:
|
||||||
|
- Added new GetClientAuthId native to retrieve player auth strings in desired format (PR 159).
|
||||||
|
- Updated TF2 weapon and player condition enums (FlaminSarge).
|
||||||
|
|
||||||
|
----------------------------------------------------------
|
||||||
SourceMod 1.6.1 [2014-08-17]
|
SourceMod 1.6.1 [2014-08-17]
|
||||||
|
|
||||||
URL: http://wiki.alliedmods.net/SourceMod_1.6.1_Release_Notes
|
URL: http://wiki.alliedmods.net/SourceMod_1.6.1_Release_Notes
|
||||||
|
|||||||
+3
-5
@@ -52,17 +52,14 @@ for sdk_name in SM.sdks:
|
|||||||
compiler = binary.compiler
|
compiler = binary.compiler
|
||||||
|
|
||||||
if sdk.name == 'csgo':
|
if sdk.name == 'csgo':
|
||||||
# Protobuf 2.3 headers have some signed/unsigned compares. I believe that it's fixed in later versions, but Valve.
|
|
||||||
if compiler.cxx.behavior == 'gcc':
|
|
||||||
compiler.cflags += ['-Wno-sign-compare']
|
|
||||||
compiler.cxxincludes += [
|
compiler.cxxincludes += [
|
||||||
os.path.join(sdk.path, 'common', 'protobuf-2.3.0', 'src'),
|
os.path.join(sdk.path, 'common', 'protobuf-2.5.0', 'src'),
|
||||||
os.path.join(sdk.path, 'public', 'engine', 'protobuf'),
|
os.path.join(sdk.path, 'public', 'engine', 'protobuf'),
|
||||||
os.path.join(sdk.path, 'public', 'game', 'shared', 'csgo', 'protobuf')
|
os.path.join(sdk.path, 'public', 'game', 'shared', 'csgo', 'protobuf')
|
||||||
]
|
]
|
||||||
elif sdk.name == 'dota':
|
elif sdk.name == 'dota':
|
||||||
compiler.cxxincludes += [
|
compiler.cxxincludes += [
|
||||||
os.path.join(sdk.path, 'common', 'protobuf-2.4.1', 'src'),
|
os.path.join(sdk.path, 'common', 'protobuf-2.5.0', 'src'),
|
||||||
os.path.join(sdk.path, 'public', 'engine', 'protobuf'),
|
os.path.join(sdk.path, 'public', 'engine', 'protobuf'),
|
||||||
os.path.join(sdk.path, 'public', 'game', 'shared', 'protobuf'),
|
os.path.join(sdk.path, 'public', 'game', 'shared', 'protobuf'),
|
||||||
os.path.join(sdk.path, 'public', 'game', 'shared', 'dota', 'protobuf')
|
os.path.join(sdk.path, 'public', 'game', 'shared', 'dota', 'protobuf')
|
||||||
@@ -109,6 +106,7 @@ for sdk_name in SM.sdks:
|
|||||||
binary.sources += [
|
binary.sources += [
|
||||||
os.path.join(sdk.path, 'public', 'engine', 'protobuf', 'networkbasetypes.pb.cc'),
|
os.path.join(sdk.path, 'public', 'engine', 'protobuf', 'networkbasetypes.pb.cc'),
|
||||||
os.path.join(sdk.path, 'public', 'engine', 'protobuf', 'netmessages.pb.cc'),
|
os.path.join(sdk.path, 'public', 'engine', 'protobuf', 'netmessages.pb.cc'),
|
||||||
|
os.path.join(sdk.path, 'public', 'engine', 'protobuf', 'network_connection.pb.cc'),
|
||||||
os.path.join(sdk.path, 'public', 'game', 'shared', 'protobuf', 'ai_activity.pb.cc'),
|
os.path.join(sdk.path, 'public', 'game', 'shared', 'protobuf', 'ai_activity.pb.cc'),
|
||||||
os.path.join(sdk.path, 'public', 'game', 'shared', 'protobuf', 'usermessages.pb.cc'),
|
os.path.join(sdk.path, 'public', 'game', 'shared', 'protobuf', 'usermessages.pb.cc'),
|
||||||
os.path.join(sdk.path, 'public', 'game', 'shared', 'dota', 'protobuf', 'dota_commonmessages.pb.cc'),
|
os.path.join(sdk.path, 'public', 'game', 'shared', 'dota', 'protobuf', 'dota_commonmessages.pb.cc'),
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ void EventManager::FireGameEvent(IGameEvent *pEvent)
|
|||||||
Just need to add ourselves as a listener to make our hook on IGameEventManager2::FireEvent work */
|
Just need to add ourselves as a listener to make our hook on IGameEventManager2::FireEvent work */
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SOURCE_ENGINE >= SE_LEFT4DEAD
|
#if SOURCE_ENGINE >= SE_LEFT4DEAD && SOURCE_ENGINE != SE_DOTA
|
||||||
int EventManager::GetEventDebugID()
|
int EventManager::GetEventDebugID()
|
||||||
{
|
{
|
||||||
return EVENT_DEBUG_ID_INIT;
|
return EVENT_DEBUG_ID_INIT;
|
||||||
|
|||||||
+1
-1
@@ -110,7 +110,7 @@ public: // IPluginsListener
|
|||||||
void OnPluginUnloaded(IPlugin *plugin);
|
void OnPluginUnloaded(IPlugin *plugin);
|
||||||
public: // IGameEventListener2
|
public: // IGameEventListener2
|
||||||
void FireGameEvent(IGameEvent *pEvent);
|
void FireGameEvent(IGameEvent *pEvent);
|
||||||
#if SOURCE_ENGINE >= SE_LEFT4DEAD
|
#if SOURCE_ENGINE >= SE_LEFT4DEAD && SOURCE_ENGINE != SE_DOTA
|
||||||
int GetEventDebugID();
|
int GetEventDebugID();
|
||||||
#endif
|
#endif
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -47,6 +47,12 @@
|
|||||||
#include "logic_bridge.h"
|
#include "logic_bridge.h"
|
||||||
#include <sourcemod_version.h>
|
#include <sourcemod_version.h>
|
||||||
|
|
||||||
|
#if SOURCE_ENGINE >= SE_ORANGEBOX
|
||||||
|
#include <steam/steamclientpublic.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
class CSteamID;
|
||||||
|
|
||||||
PlayerManager g_Players;
|
PlayerManager g_Players;
|
||||||
bool g_OnMapStarted = false;
|
bool g_OnMapStarted = false;
|
||||||
IForward *PreAdminCheck = NULL;
|
IForward *PreAdminCheck = NULL;
|
||||||
@@ -399,15 +405,28 @@ void PlayerManager::RunAuthChecks()
|
|||||||
{
|
{
|
||||||
CPlayer *pPlayer;
|
CPlayer *pPlayer;
|
||||||
const char *authstr;
|
const char *authstr;
|
||||||
|
const CSteamID *steamid = NULL;
|
||||||
unsigned int removed = 0;
|
unsigned int removed = 0;
|
||||||
for (unsigned int i=1; i<=m_AuthQueue[0]; i++)
|
for (unsigned int i=1; i<=m_AuthQueue[0]; i++)
|
||||||
{
|
{
|
||||||
pPlayer = &m_Players[m_AuthQueue[i]];
|
pPlayer = &m_Players[m_AuthQueue[i]];
|
||||||
#if SOURCE_ENGINE == SE_DOTA
|
#if SOURCE_ENGINE == SE_DOTA
|
||||||
|
steamid = engine->GetClientSteamID(pPlayer->m_iIndex);
|
||||||
authstr = engine->GetPlayerNetworkIDString(pPlayer->m_iIndex - 1);
|
authstr = engine->GetPlayerNetworkIDString(pPlayer->m_iIndex - 1);
|
||||||
|
#elif SOURCE_ENGINE >= SE_ORANGEBOX
|
||||||
|
steamid = engine->GetClientSteamID(pPlayer->m_pEdict);
|
||||||
|
authstr = engine->GetPlayerNetworkIDString(pPlayer->m_pEdict);
|
||||||
#else
|
#else
|
||||||
authstr = engine->GetPlayerNetworkIDString(pPlayer->m_pEdict);
|
authstr = engine->GetPlayerNetworkIDString(pPlayer->m_pEdict);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if SOURCE_ENGINE >= SE_ORANGEBOX
|
||||||
|
if (authstr && authstr[0] == '[' && steamid)
|
||||||
|
{
|
||||||
|
authstr = steamid->Render();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
pPlayer->SetAuthString(authstr);
|
pPlayer->SetAuthString(authstr);
|
||||||
|
|
||||||
if (!pPlayer->IsAuthStringValidated())
|
if (!pPlayer->IsAuthStringValidated())
|
||||||
@@ -2436,3 +2455,28 @@ void CPlayer::PrintToConsole(const char *pMsg)
|
|||||||
engine->ClientPrintf(m_pEdict, pMsg);
|
engine->ClientPrintf(m_pEdict, pMsg);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if SOURCE_ENGINE >= SE_LEFT4DEAD
|
||||||
|
const EUniverse kCurrentSteamUniverse = k_EUniversePublic;
|
||||||
|
#elif SOURCE_ENGINE >= SE_ORANGEBOX
|
||||||
|
const EUniverse kCurrentSteamUniverse = k_EUniverseInvalid;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if SOURCE_ENGINE >= SE_ORANGEBOX
|
||||||
|
const char *CSteamID::Render() const
|
||||||
|
{
|
||||||
|
static char szSteamID[64];
|
||||||
|
|
||||||
|
switch (GetEAccountType())
|
||||||
|
{
|
||||||
|
case k_EAccountTypeInvalid:
|
||||||
|
case k_EAccountTypeIndividual:
|
||||||
|
snprintf(szSteamID, sizeof(szSteamID), "STEAM_%u:%u:%u", kCurrentSteamUniverse, GetAccountID() % 2, GetAccountID() >> 1);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
szSteamID[0] = '\0';
|
||||||
|
}
|
||||||
|
|
||||||
|
return szSteamID;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -19,6 +19,12 @@ if builder.target_platform == 'linux':
|
|||||||
elif builder.target_platform == 'mac':
|
elif builder.target_platform == 'mac':
|
||||||
binary.compiler.cflags += ['-Wno-deprecated-declarations']
|
binary.compiler.cflags += ['-Wno-deprecated-declarations']
|
||||||
binary.compiler.postlink += ['-framework', 'CoreServices']
|
binary.compiler.postlink += ['-framework', 'CoreServices']
|
||||||
|
|
||||||
|
if binary.compiler.vendor == 'gcc' or binary.compiler.vendor == 'clang':
|
||||||
|
binary.compiler.cxxflags += ['-fno-rtti']
|
||||||
|
elif binary.compiler.vendor == 'msvc':
|
||||||
|
binary.compiler.cxxflags += ['/GR-']
|
||||||
|
|
||||||
binary.sources += [
|
binary.sources += [
|
||||||
'common_logic.cpp',
|
'common_logic.cpp',
|
||||||
'smn_adt_array.cpp',
|
'smn_adt_array.cpp',
|
||||||
|
|||||||
@@ -615,6 +615,17 @@ void DBManager::ThreadMain()
|
|||||||
ke::AutoLock lock(&m_ThinkLock);
|
ke::AutoLock lock(&m_ThinkLock);
|
||||||
m_ThinkQueue.push(op);
|
m_ThinkQueue.push(op);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (!m_Terminate)
|
||||||
|
{
|
||||||
|
ke::AutoUnlock unlock(&m_QueueEvent);
|
||||||
|
#ifdef _WIN32
|
||||||
|
Sleep(20);
|
||||||
|
#else
|
||||||
|
usleep(20000);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_Terminate)
|
if (m_Terminate)
|
||||||
|
|||||||
@@ -37,6 +37,15 @@
|
|||||||
#include <inetchannel.h>
|
#include <inetchannel.h>
|
||||||
#include <iclient.h>
|
#include <iclient.h>
|
||||||
|
|
||||||
|
#ifndef PRIu64
|
||||||
|
#ifdef _WIN32
|
||||||
|
#define PRIu64 "I64u"
|
||||||
|
#else
|
||||||
|
#define PRIu64 "llu"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
static cell_t sm_GetMaxHumanPlayers(IPluginContext *pCtx, const cell_t *params)
|
static cell_t sm_GetMaxHumanPlayers(IPluginContext *pCtx, const cell_t *params)
|
||||||
{
|
{
|
||||||
int maxHumans = -1;
|
int maxHumans = -1;
|
||||||
@@ -380,6 +389,124 @@ static cell_t RunAdminCacheChecks(IPluginContext *pContext, const cell_t *params
|
|||||||
return (id != pPlayer->GetAdminId()) ? 1 : 0;
|
return (id != pPlayer->GetAdminId()) ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Must match clients.inc
|
||||||
|
enum AuthIdType
|
||||||
|
{
|
||||||
|
AuthType_Engine = 0,
|
||||||
|
AuthType_Steam2,
|
||||||
|
AuthType_Steam3,
|
||||||
|
AuthType_SteamId64,
|
||||||
|
};
|
||||||
|
|
||||||
|
static cell_t GetClientAuthId(IPluginContext *pContext, const cell_t *params)
|
||||||
|
{
|
||||||
|
CPlayer *pPlayer = g_Players.GetPlayerByIndex(params[1]);
|
||||||
|
if (!pPlayer)
|
||||||
|
{
|
||||||
|
return pContext->ThrowNativeError("Client index %d is invalid", params[1]);
|
||||||
|
}
|
||||||
|
else if (!pPlayer->IsConnected())
|
||||||
|
{
|
||||||
|
return pContext->ThrowNativeError("Client %d is not connected", params[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool validate = !!params[5];
|
||||||
|
|
||||||
|
switch (params[2])
|
||||||
|
{
|
||||||
|
case AuthType_Engine:
|
||||||
|
{
|
||||||
|
const char *authstr;
|
||||||
|
if (validate)
|
||||||
|
{
|
||||||
|
// Keep this as a validation check
|
||||||
|
authstr = pPlayer->GetAuthString(params[5]);
|
||||||
|
if (!authstr || authstr[0] == '\0')
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#if SOURCE_ENGINE == SE_DOTA
|
||||||
|
authstr = engine->GetPlayerNetworkIDString(pPlayer->GetIndex());
|
||||||
|
#else
|
||||||
|
authstr = engine->GetPlayerNetworkIDString(pPlayer->GetEdict());
|
||||||
|
#endif
|
||||||
|
pContext->StringToLocal(params[3], params[4], authstr);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case AuthType_Steam2:
|
||||||
|
case AuthType_Steam3:
|
||||||
|
{
|
||||||
|
if (pPlayer->IsFakeClient())
|
||||||
|
{
|
||||||
|
pContext->StringToLocal(params[3], params[4], "BOT");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static char authstr[64];
|
||||||
|
unsigned int acctId = pPlayer->GetSteamAccountID(validate);
|
||||||
|
if (acctId == 0)
|
||||||
|
{
|
||||||
|
if (g_HL2.IsLANServer())
|
||||||
|
{
|
||||||
|
pContext->StringToLocal(params[3], params[4], "STEAM_ID_LAN");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else if (!params[5])
|
||||||
|
{
|
||||||
|
pContext->StringToLocal(params[3], params[4], "STEAM_ID_PENDING");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (params[2] == AuthType_Steam2)
|
||||||
|
{
|
||||||
|
#if SOURCE_ENGINE <= SE_LEFT4DEAD
|
||||||
|
unsigned int universe = 0;
|
||||||
|
#else
|
||||||
|
unsigned int universe = 1;
|
||||||
|
#endif
|
||||||
|
_snprintf(authstr, sizeof(authstr), "STEAM_%u:%u:%u", universe, acctId & 1, acctId >> 1);
|
||||||
|
pContext->StringToLocal(params[3], params[4], authstr);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_snprintf(authstr, sizeof(authstr), "[U:1:%u]", acctId);
|
||||||
|
pContext->StringToLocal(params[3], params[4], authstr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case AuthType_SteamId64:
|
||||||
|
{
|
||||||
|
if (pPlayer->IsFakeClient() || g_HL2.IsLANServer())
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
unsigned int acctId = pPlayer->GetSteamAccountID(validate);
|
||||||
|
if (acctId == 0)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint64_t steamId = acctId;
|
||||||
|
steamId |= ((uint64_t)1<<32); // Instance (1/Desktop)
|
||||||
|
steamId |= ((uint64_t)1<<52); // Type (1/Individual)
|
||||||
|
steamId |= ((uint64_t)1<<56); // Universe (1/Public)
|
||||||
|
|
||||||
|
static char authstr[64];
|
||||||
|
snprintf(authstr, sizeof(authstr), "%" PRIu64, steamId);
|
||||||
|
pContext->StringToLocal(params[3], params[4], authstr);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
REGISTER_NATIVES(playernatives)
|
REGISTER_NATIVES(playernatives)
|
||||||
{
|
{
|
||||||
{"GetMaxHumanPlayers", sm_GetMaxHumanPlayers},
|
{"GetMaxHumanPlayers", sm_GetMaxHumanPlayers},
|
||||||
@@ -393,6 +520,7 @@ REGISTER_NATIVES(playernatives)
|
|||||||
{"GetClientAvgData", GetAvgData},
|
{"GetClientAvgData", GetAvgData},
|
||||||
{"GetClientAvgPackets", GetAvgPackets},
|
{"GetClientAvgPackets", GetAvgPackets},
|
||||||
{"RunAdminCacheChecks", RunAdminCacheChecks},
|
{"RunAdminCacheChecks", RunAdminCacheChecks},
|
||||||
|
{"GetClientAuthId", GetClientAuthId},
|
||||||
{NULL, NULL}
|
{NULL, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,10 @@ binary.compiler.cxxincludes += [
|
|||||||
os.path.join(builder.sourcePath, 'public', 'jit'),
|
os.path.join(builder.sourcePath, 'public', 'jit'),
|
||||||
os.path.join(builder.sourcePath, 'public', 'jit', 'x86'),
|
os.path.join(builder.sourcePath, 'public', 'jit', 'x86'),
|
||||||
]
|
]
|
||||||
|
if binary.compiler.vendor == 'gcc' or binary.compiler.vendor == 'clang':
|
||||||
|
binary.compiler.cxxflags += ['-fno-rtti']
|
||||||
|
elif binary.compiler.vendor == 'msvc':
|
||||||
|
binary.compiler.cxxflags += ['/GR-']
|
||||||
|
|
||||||
binary.sources += [
|
binary.sources += [
|
||||||
'extension.cpp',
|
'extension.cpp',
|
||||||
|
|||||||
@@ -5,6 +5,10 @@ binary = SM.ExtLibrary(builder, 'clientprefs.ext')
|
|||||||
binary.compiler.cxxincludes += [
|
binary.compiler.cxxincludes += [
|
||||||
os.path.join(SM.mms_root, 'core', 'sourcehook'),
|
os.path.join(SM.mms_root, 'core', 'sourcehook'),
|
||||||
]
|
]
|
||||||
|
if binary.compiler.vendor == 'gcc' or binary.compiler.vendor == 'clang':
|
||||||
|
binary.compiler.cxxflags += ['-fno-rtti']
|
||||||
|
elif binary.compiler.vendor == 'msvc':
|
||||||
|
binary.compiler.cxxflags += ['/GR-']
|
||||||
|
|
||||||
binary.sources += [
|
binary.sources += [
|
||||||
'extension.cpp',
|
'extension.cpp',
|
||||||
|
|||||||
@@ -8,6 +8,10 @@ binary.compiler.includes += [
|
|||||||
os.path.join(builder.sourcePath, 'extensions', 'curl', 'curl-src', 'include')
|
os.path.join(builder.sourcePath, 'extensions', 'curl', 'curl-src', 'include')
|
||||||
]
|
]
|
||||||
binary.compiler.defines += ['CURL_STATICLIB']
|
binary.compiler.defines += ['CURL_STATICLIB']
|
||||||
|
if binary.compiler.vendor == 'gcc' or binary.compiler.vendor == 'clang':
|
||||||
|
binary.compiler.cxxflags += ['-fno-rtti']
|
||||||
|
elif binary.compiler.vendor == 'msvc':
|
||||||
|
binary.compiler.cxxflags += ['/GR-']
|
||||||
binary.compiler.postlink += [libcurl.binary]
|
binary.compiler.postlink += [libcurl.binary]
|
||||||
if builder.target_platform == 'linux':
|
if builder.target_platform == 'linux':
|
||||||
binary.compiler.postlink += ['-lrt']
|
binary.compiler.postlink += ['-lrt']
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
binary = SM.ExtLibrary(builder, 'geoip.ext')
|
binary = SM.ExtLibrary(builder, 'geoip.ext')
|
||||||
|
if binary.compiler.vendor == 'gcc' or binary.compiler.vendor == 'clang':
|
||||||
|
binary.compiler.cxxflags += ['-fno-rtti']
|
||||||
|
elif binary.compiler.vendor == 'msvc':
|
||||||
|
binary.compiler.cxxflags += ['/GR-']
|
||||||
if builder.target_platform == 'windows':
|
if builder.target_platform == 'windows':
|
||||||
binary.compiler.postlink += ['wsock32.lib']
|
binary.compiler.postlink += ['wsock32.lib']
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,10 @@ if SM.mysql_root:
|
|||||||
os.path.join(SM.mysql_root, 'include'),
|
os.path.join(SM.mysql_root, 'include'),
|
||||||
os.path.join(SM.mms_root, 'core', 'sourcehook')
|
os.path.join(SM.mms_root, 'core', 'sourcehook')
|
||||||
]
|
]
|
||||||
|
if binary.compiler.vendor == 'gcc' or binary.compiler.vendor == 'clang':
|
||||||
|
binary.compiler.cxxflags += ['-fno-rtti']
|
||||||
|
elif binary.compiler.vendor == 'msvc':
|
||||||
|
binary.compiler.cxxflags += ['/GR-']
|
||||||
|
|
||||||
if builder.target_platform == 'linux' or builder.target_platform == 'mac':
|
if builder.target_platform == 'linux' or builder.target_platform == 'mac':
|
||||||
binary.compiler.postlink += [
|
binary.compiler.postlink += [
|
||||||
|
|||||||
@@ -5,6 +5,10 @@ binary = SM.ExtLibrary(builder, 'regex.ext')
|
|||||||
binary.compiler.cxxincludes += [
|
binary.compiler.cxxincludes += [
|
||||||
os.path.join(SM.mms_root, 'core', 'sourcehook'),
|
os.path.join(SM.mms_root, 'core', 'sourcehook'),
|
||||||
]
|
]
|
||||||
|
if binary.compiler.vendor == 'gcc' or binary.compiler.vendor == 'clang':
|
||||||
|
binary.compiler.cxxflags += ['-fno-rtti']
|
||||||
|
elif binary.compiler.vendor == 'msvc':
|
||||||
|
binary.compiler.cxxflags += ['/GR-']
|
||||||
|
|
||||||
if builder.target_platform == 'linux':
|
if builder.target_platform == 'linux':
|
||||||
path = os.path.join(builder.sourcePath, 'extensions', 'regex', 'lib_linux', 'libpcre.a')
|
path = os.path.join(builder.sourcePath, 'extensions', 'regex', 'lib_linux', 'libpcre.a')
|
||||||
|
|||||||
@@ -5,6 +5,10 @@ binary = SM.ExtLibrary(builder, 'dbi.sqlite.ext')
|
|||||||
binary.compiler.cxxincludes += [
|
binary.compiler.cxxincludes += [
|
||||||
os.path.join(SM.mms_root, 'core', 'sourcehook'),
|
os.path.join(SM.mms_root, 'core', 'sourcehook'),
|
||||||
]
|
]
|
||||||
|
if binary.compiler.vendor == 'gcc' or binary.compiler.vendor == 'clang':
|
||||||
|
binary.compiler.cxxflags += ['-fno-rtti']
|
||||||
|
elif binary.compiler.vendor == 'msvc':
|
||||||
|
binary.compiler.cxxflags += ['/GR-']
|
||||||
|
|
||||||
binary.compiler.defines += [
|
binary.compiler.defines += [
|
||||||
'SQLITE_OMIT_LOAD_EXTENSION',
|
'SQLITE_OMIT_LOAD_EXTENSION',
|
||||||
|
|||||||
@@ -5,6 +5,10 @@ binary = SM.ExtLibrary(builder, 'topmenus.ext')
|
|||||||
binary.compiler.cxxincludes += [
|
binary.compiler.cxxincludes += [
|
||||||
os.path.join(SM.mms_root, 'core', 'sourcehook'),
|
os.path.join(SM.mms_root, 'core', 'sourcehook'),
|
||||||
]
|
]
|
||||||
|
if binary.compiler.vendor == 'gcc' or binary.compiler.vendor == 'clang':
|
||||||
|
binary.compiler.cxxflags += ['-fno-rtti']
|
||||||
|
elif binary.compiler.vendor == 'msvc':
|
||||||
|
binary.compiler.cxxflags += ['/GR-']
|
||||||
|
|
||||||
binary.sources += [
|
binary.sources += [
|
||||||
'extension.cpp',
|
'extension.cpp',
|
||||||
|
|||||||
@@ -5,6 +5,10 @@ binary = SM.ExtLibrary(builder, 'updater.ext')
|
|||||||
binary.compiler.cxxincludes += [
|
binary.compiler.cxxincludes += [
|
||||||
os.path.join(SM.mms_root, 'core', 'sourcehook'),
|
os.path.join(SM.mms_root, 'core', 'sourcehook'),
|
||||||
]
|
]
|
||||||
|
if binary.compiler.vendor == 'gcc' or binary.compiler.vendor == 'clang':
|
||||||
|
binary.compiler.cxxflags += ['-fno-rtti']
|
||||||
|
elif binary.compiler.vendor == 'msvc':
|
||||||
|
binary.compiler.cxxflags += ['/GR-']
|
||||||
|
|
||||||
binary.sources += [
|
binary.sources += [
|
||||||
'extension.cpp',
|
'extension.cpp',
|
||||||
|
|||||||
@@ -24,9 +24,11 @@
|
|||||||
"plugin_f99d77668e7aa0adb6a960322ab05568" "" /* UCP Server (Endi) - Version 7.8 */
|
"plugin_f99d77668e7aa0adb6a960322ab05568" "" /* UCP Server (Endi) - Version 7.8 */
|
||||||
"plugin_7b3ce69f15e61cc896228cb8424be589" "" /* UCP Server (Endi) - Version 7.8.2 */
|
"plugin_7b3ce69f15e61cc896228cb8424be589" "" /* UCP Server (Endi) - Version 7.8.2 */
|
||||||
"plugin_24602c74f183cfcd157b3d50dee96c52" "" /* UCP Server (Endi) - Version 7.8.3 */
|
"plugin_24602c74f183cfcd157b3d50dee96c52" "" /* UCP Server (Endi) - Version 7.8.3 */
|
||||||
|
"plugin_43bd225c5fdcd3af35729ca9d481b20d" "" /* UCP Server (Endi) - Version 8.3 */
|
||||||
"plugin_78140f1a0f26cd3297767d0598eac4b1" "" /* [Any] PReplay (DarthNinja) - Version 1.0.0 */
|
"plugin_78140f1a0f26cd3297767d0598eac4b1" "" /* [Any] PReplay (DarthNinja) - Version 1.0.0 */
|
||||||
"plugin_55923ba6bfe41569a3e4fbd7ca4606e5" "" /* VIP Plugin (World-Source.Ru) - Version 2.0 */
|
"plugin_55923ba6bfe41569a3e4fbd7ca4606e5" "" /* VIP Plugin (World-Source.Ru) - Version 2.0 */
|
||||||
"plugin_4bf983e1d5b61ba0b1ab9a7e53bfda27" "" /* WarMod CS:GO (Twelve-60) */
|
"plugin_4bf983e1d5b61ba0b1ab9a7e53bfda27" "" /* WarMod CS:GO (Twelve-60) */
|
||||||
|
"plugin_08574c4295afdaa5f613b8ceef96ecc3" "" /* AlliedBans (TommY) - Version 3.140902A */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,9 +12,9 @@
|
|||||||
}
|
}
|
||||||
"FireBullets"
|
"FireBullets"
|
||||||
{
|
{
|
||||||
"windows" "112"
|
"windows" "113"
|
||||||
"linux" "113"
|
"linux" "114"
|
||||||
"mac" "113"
|
"mac" "114"
|
||||||
}
|
}
|
||||||
"OnTakeDamage"
|
"OnTakeDamage"
|
||||||
{
|
{
|
||||||
@@ -24,15 +24,15 @@
|
|||||||
}
|
}
|
||||||
"PreThink"
|
"PreThink"
|
||||||
{
|
{
|
||||||
"windows" "331"
|
"windows" "333"
|
||||||
"linux" "332"
|
"linux" "334"
|
||||||
"mac" "332"
|
"mac" "334"
|
||||||
}
|
}
|
||||||
"PostThink"
|
"PostThink"
|
||||||
{
|
{
|
||||||
"windows" "332"
|
"windows" "334"
|
||||||
"linux" "333"
|
"linux" "335"
|
||||||
"mac" "333"
|
"mac" "335"
|
||||||
}
|
}
|
||||||
"SetTransmit"
|
"SetTransmit"
|
||||||
{
|
{
|
||||||
@@ -78,39 +78,39 @@
|
|||||||
}
|
}
|
||||||
"VPhysicsUpdate"
|
"VPhysicsUpdate"
|
||||||
{
|
{
|
||||||
"windows" "157"
|
"windows" "158"
|
||||||
"linux" "158"
|
"linux" "159"
|
||||||
"mac" "158"
|
"mac" "159"
|
||||||
}
|
}
|
||||||
"Weapon_CanSwitchTo"
|
"Weapon_CanSwitchTo"
|
||||||
{
|
{
|
||||||
"windows" "265"
|
"windows" "267"
|
||||||
"linux" "266"
|
"linux" "268"
|
||||||
"mac" "266"
|
"mac" "268"
|
||||||
}
|
}
|
||||||
"Weapon_CanUse"
|
"Weapon_CanUse"
|
||||||
{
|
{
|
||||||
"windows" "259"
|
"windows" "261"
|
||||||
"linux" "260"
|
"linux" "262"
|
||||||
"mac" "260"
|
"mac" "262"
|
||||||
}
|
}
|
||||||
"Weapon_Drop"
|
"Weapon_Drop"
|
||||||
|
{
|
||||||
|
"windows" "264"
|
||||||
|
"linux" "265"
|
||||||
|
"mac" "265"
|
||||||
|
}
|
||||||
|
"Weapon_Equip"
|
||||||
{
|
{
|
||||||
"windows" "262"
|
"windows" "262"
|
||||||
"linux" "263"
|
"linux" "263"
|
||||||
"mac" "263"
|
"mac" "263"
|
||||||
}
|
}
|
||||||
"Weapon_Equip"
|
|
||||||
{
|
|
||||||
"windows" "260"
|
|
||||||
"linux" "261"
|
|
||||||
"mac" "261"
|
|
||||||
}
|
|
||||||
"Weapon_Switch"
|
"Weapon_Switch"
|
||||||
{
|
{
|
||||||
"windows" "263"
|
"windows" "265"
|
||||||
"linux" "264"
|
"linux" "266"
|
||||||
"mac" "264"
|
"mac" "266"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,9 +30,9 @@
|
|||||||
}
|
}
|
||||||
"PreThink"
|
"PreThink"
|
||||||
{
|
{
|
||||||
"windows" "344"
|
"windows" "345"
|
||||||
"linux" "345"
|
"linux" "346"
|
||||||
"mac" "345"
|
"mac" "346"
|
||||||
}
|
}
|
||||||
"PostThink"
|
"PostThink"
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -48,21 +48,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* No longer necessary. Remove later. */
|
|
||||||
"#default"
|
|
||||||
{
|
|
||||||
"Signatures"
|
|
||||||
{
|
|
||||||
"EntityFactory"
|
|
||||||
{
|
|
||||||
"library" "server"
|
|
||||||
"windows" "\xB8\x01\x00\x00\x00\x84\x2A\x2A\x2A\x2A\x2A\x75\x1D\x09\x2A\x2A\x2A\x2A\x2A\xB9\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x68\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x83\xC4\x04\xB8\x2A\x2A\x2A\x2A\xC3"
|
|
||||||
"linux" "@_Z23EntityFactoryDictionaryv"
|
|
||||||
"mac" "@_Z23EntityFactoryDictionaryv"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* SetUserInfo data */
|
/* SetUserInfo data */
|
||||||
"#default"
|
"#default"
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -131,57 +131,57 @@
|
|||||||
{
|
{
|
||||||
"GiveNamedItem"
|
"GiveNamedItem"
|
||||||
{
|
{
|
||||||
"windows" "400"
|
"windows" "402"
|
||||||
"linux" "401"
|
"linux" "403"
|
||||||
"mac" "401"
|
"mac" "403"
|
||||||
}
|
}
|
||||||
"RemovePlayerItem"
|
"RemovePlayerItem"
|
||||||
|
{
|
||||||
|
"windows" "271"
|
||||||
|
"linux" "272"
|
||||||
|
"mac" "272"
|
||||||
|
}
|
||||||
|
"Weapon_GetSlot"
|
||||||
{
|
{
|
||||||
"windows" "269"
|
"windows" "269"
|
||||||
"linux" "270"
|
"linux" "270"
|
||||||
"mac" "270"
|
"mac" "270"
|
||||||
}
|
}
|
||||||
"Weapon_GetSlot"
|
|
||||||
{
|
|
||||||
"windows" "267"
|
|
||||||
"linux" "268"
|
|
||||||
"mac" "268"
|
|
||||||
}
|
|
||||||
"Ignite"
|
"Ignite"
|
||||||
{
|
{
|
||||||
"windows" "208"
|
"windows" "210"
|
||||||
"linux" "209"
|
"linux" "211"
|
||||||
"mac" "209"
|
"mac" "211"
|
||||||
}
|
}
|
||||||
"Extinguish"
|
"Extinguish"
|
||||||
{
|
{
|
||||||
"windows" "212"
|
"windows" "214"
|
||||||
"linux" "213"
|
"linux" "215"
|
||||||
"mac" "213"
|
"mac" "215"
|
||||||
}
|
}
|
||||||
"Teleport"
|
"Teleport"
|
||||||
{
|
{
|
||||||
"windows" "108"
|
"windows" "109"
|
||||||
"linux" "109"
|
"linux" "110"
|
||||||
"mac" "109"
|
"mac" "110"
|
||||||
}
|
}
|
||||||
"CommitSuicide"
|
"CommitSuicide"
|
||||||
{
|
{
|
||||||
"windows" "442"
|
"windows" "444"
|
||||||
"linux" "442"
|
"linux" "444"
|
||||||
"mac" "442"
|
"mac" "444"
|
||||||
}
|
}
|
||||||
"GetVelocity"
|
"GetVelocity"
|
||||||
{
|
{
|
||||||
"windows" "140"
|
"windows" "141"
|
||||||
"linux" "141"
|
"linux" "142"
|
||||||
"mac" "141"
|
"mac" "142"
|
||||||
}
|
}
|
||||||
"EyeAngles"
|
"EyeAngles"
|
||||||
{
|
{
|
||||||
"windows" "131"
|
"windows" "132"
|
||||||
"linux" "132"
|
"linux" "133"
|
||||||
"mac" "132"
|
"mac" "133"
|
||||||
}
|
}
|
||||||
"AcceptInput"
|
"AcceptInput"
|
||||||
{
|
{
|
||||||
@@ -197,9 +197,9 @@
|
|||||||
}
|
}
|
||||||
"WeaponEquip"
|
"WeaponEquip"
|
||||||
{
|
{
|
||||||
"windows" "260"
|
"windows" "262"
|
||||||
"linux" "261"
|
"linux" "263"
|
||||||
"mac" "261"
|
"mac" "263"
|
||||||
}
|
}
|
||||||
"Activate"
|
"Activate"
|
||||||
{
|
{
|
||||||
@@ -209,15 +209,15 @@
|
|||||||
}
|
}
|
||||||
"PlayerRunCmd"
|
"PlayerRunCmd"
|
||||||
{
|
{
|
||||||
"windows" "418"
|
"windows" "420"
|
||||||
"linux" "419"
|
"linux" "421"
|
||||||
"mac" "419"
|
"mac" "421"
|
||||||
}
|
}
|
||||||
"GiveAmmo"
|
"GiveAmmo"
|
||||||
{
|
{
|
||||||
"windows" "251"
|
"windows" "253"
|
||||||
"linux" "252"
|
"linux" "254"
|
||||||
"mac" "252"
|
"mac" "254"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -131,9 +131,9 @@
|
|||||||
{
|
{
|
||||||
"GiveNamedItem"
|
"GiveNamedItem"
|
||||||
{
|
{
|
||||||
"windows" "412"
|
"windows" "413"
|
||||||
"linux" "413"
|
"linux" "414"
|
||||||
"mac" "413"
|
"mac" "414"
|
||||||
}
|
}
|
||||||
"RemovePlayerItem"
|
"RemovePlayerItem"
|
||||||
{
|
{
|
||||||
@@ -167,9 +167,9 @@
|
|||||||
}
|
}
|
||||||
"CommitSuicide"
|
"CommitSuicide"
|
||||||
{
|
{
|
||||||
"windows" "451"
|
"windows" "452"
|
||||||
"linux" "451"
|
"linux" "452"
|
||||||
"mac" "451"
|
"mac" "452"
|
||||||
}
|
}
|
||||||
"GetVelocity"
|
"GetVelocity"
|
||||||
{
|
{
|
||||||
@@ -209,9 +209,9 @@
|
|||||||
}
|
}
|
||||||
"PlayerRunCmd"
|
"PlayerRunCmd"
|
||||||
{
|
{
|
||||||
"windows" "430"
|
"windows" "431"
|
||||||
"linux" "431"
|
"linux" "432"
|
||||||
"mac" "431"
|
"mac" "432"
|
||||||
}
|
}
|
||||||
"GiveAmmo"
|
"GiveAmmo"
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -33,27 +33,27 @@
|
|||||||
"CTTeamScoreOffset"
|
"CTTeamScoreOffset"
|
||||||
{
|
{
|
||||||
"windows" "98"
|
"windows" "98"
|
||||||
"linux" "124"
|
"linux" "109"
|
||||||
"mac" "150"
|
"mac" "150"
|
||||||
}
|
}
|
||||||
//Offset into CheckRestartRound
|
//Offset into CheckRestartRound
|
||||||
"TTeamScoreOffset"
|
"TTeamScoreOffset"
|
||||||
{
|
{
|
||||||
"windows" "122"
|
"windows" "122"
|
||||||
"linux" "159"
|
"linux" "142"
|
||||||
"mac" "185"
|
"mac" "185"
|
||||||
}
|
}
|
||||||
"ClanTagOffset"
|
"ClanTagOffset"
|
||||||
{
|
{
|
||||||
"windows" "12"
|
"windows" "12"
|
||||||
"linux" "41"
|
"linux" "29"
|
||||||
"mac" "22"
|
"mac" "22"
|
||||||
}
|
}
|
||||||
//Offset into HandleCommand_Buy_Internal
|
//Offset into HandleCommand_Buy_Internal
|
||||||
"CCSPlayerInventoryOffset"
|
"CCSPlayerInventoryOffset"
|
||||||
{
|
{
|
||||||
"windows" "285"
|
"windows" "285"
|
||||||
"linux" "87"
|
"linux" "32"
|
||||||
"mac" "109"
|
"mac" "109"
|
||||||
}
|
}
|
||||||
"GetItemInLoadout"
|
"GetItemInLoadout"
|
||||||
|
|||||||
@@ -13,6 +13,10 @@ binary.compiler.cxxincludes += [
|
|||||||
os.path.join(SM.mms_root, 'core'),
|
os.path.join(SM.mms_root, 'core'),
|
||||||
os.path.join(SM.mms_root, 'sourcehook')
|
os.path.join(SM.mms_root, 'sourcehook')
|
||||||
]
|
]
|
||||||
|
if binary.compiler.vendor == 'gcc' or binary.compiler.vendor == 'clang':
|
||||||
|
binary.compiler.cxxflags += ['-fno-rtti']
|
||||||
|
elif binary.compiler.vendor == 'msvc':
|
||||||
|
binary.compiler.cxxflags += ['/GR-']
|
||||||
binary.compiler.linkflags += extra_ldflags
|
binary.compiler.linkflags += extra_ldflags
|
||||||
binary.sources = [
|
binary.sources = [
|
||||||
'loader.cpp'
|
'loader.cpp'
|
||||||
|
|||||||
@@ -45,6 +45,25 @@ enum NetFlow
|
|||||||
NetFlow_Both, /**< Both values added together */
|
NetFlow_Both, /**< Both values added together */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Auth string types.
|
||||||
|
*
|
||||||
|
* Note that for the Steam2 and Steam3 types, the following ids are
|
||||||
|
* also valid values:
|
||||||
|
* "STEAM_ID_PENDING" - Authentication is pending.
|
||||||
|
* "STEAM_ID_LAN" - Authentication is disabled because of being on a LAN server.
|
||||||
|
* "BOT" - The client is a bot.
|
||||||
|
*/
|
||||||
|
enum AuthIdType
|
||||||
|
{
|
||||||
|
AuthId_Engine = 0, /**< The game-specific auth string as returned from the engine */
|
||||||
|
|
||||||
|
// The following are only available on games that support Steam authentication.
|
||||||
|
AuthId_Steam2, /**< Steam2 rendered format, ex "STEAM_1:1:4153990" */
|
||||||
|
AuthId_Steam3, /**< Steam3 rendered format, ex "[U:1:8307981]" */
|
||||||
|
AuthId_SteamID64, /**< A SteamID64 (uint64) as a String, ex "76561197968573709" */
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* MAXPLAYERS is not the same as MaxClients.
|
* MAXPLAYERS is not the same as MaxClients.
|
||||||
* MAXPLAYERS is a hardcoded value as an upper limit. MaxClients changes based on the server.
|
* MAXPLAYERS is a hardcoded value as an upper limit. MaxClients changes based on the server.
|
||||||
@@ -261,14 +280,29 @@ native bool:GetClientIP(client, String:ip[], maxlen, bool:remport=true);
|
|||||||
* @param client Player index.
|
* @param client Player index.
|
||||||
* @param auth Buffer to store the client's auth string.
|
* @param auth Buffer to store the client's auth string.
|
||||||
* @param maxlen Maximum length of string buffer (includes NULL terminator).
|
* @param maxlen Maximum length of string buffer (includes NULL terminator).
|
||||||
* @param validate Check backend validation status.
|
* @param validate Check backend validation status.
|
||||||
* DO NOT PASS FALSE UNLESS YOU UNDERSTAND THE CONSEQUENCES,
|
* DO NOT PASS FALSE UNLESS YOU UNDERSTAND THE CONSEQUENCES,
|
||||||
* You WILL KNOW if you need to use this, MOST WILL NOT.
|
* You WILL KNOW if you need to use this, MOST WILL NOT.
|
||||||
* @return True on success, false otherwise.
|
* @return True on success, false otherwise.
|
||||||
* @error If the client is not connected or the index is invalid.
|
* @error If the client is not connected or the index is invalid.
|
||||||
*/
|
*/
|
||||||
native bool:GetClientAuthString(client, String:auth[], maxlen, bool:validate=true);
|
native bool:GetClientAuthString(client, String:auth[], maxlen, bool:validate=true);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves a client's authentication string (SteamID).
|
||||||
|
*
|
||||||
|
* @param client Player index.
|
||||||
|
* @param authType Auth id type and format to use.
|
||||||
|
* @param auth Buffer to store the client's auth id.
|
||||||
|
* @param maxlen Maximum length of string buffer (includes NULL terminator).
|
||||||
|
* @param validate Check backend validation status.
|
||||||
|
* DO NOT PASS FALSE UNLESS YOU UNDERSTAND THE CONSEQUENCES,
|
||||||
|
* You WILL KNOW if you need to use this, MOST WILL NOT.
|
||||||
|
* @return True on success, false otherwise.
|
||||||
|
* @error If the client is not connected or the index is invalid.
|
||||||
|
*/
|
||||||
|
native bool:GetClientAuthId(client, AuthIdType:authType, String:auth[], maxlen, bool:validate=true);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the client's Steam account ID.
|
* Returns the client's Steam account ID.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -153,6 +153,10 @@ enum TFCond
|
|||||||
TFCond_HalloweenTiny,
|
TFCond_HalloweenTiny,
|
||||||
TFCond_HalloweenInHell,
|
TFCond_HalloweenInHell,
|
||||||
TFCond_HalloweenGhostMode,
|
TFCond_HalloweenGhostMode,
|
||||||
|
|
||||||
|
TFCond_DodgeChance = 79,
|
||||||
|
TFCond_Parachute,
|
||||||
|
TFCond_BlastJumping,
|
||||||
};
|
};
|
||||||
|
|
||||||
const Float:TFCondDuration_Infinite = -1.0;
|
const Float:TFCondDuration_Infinite = -1.0;
|
||||||
|
|||||||
@@ -249,6 +249,7 @@ enum {
|
|||||||
TF_WEAPON_SPELLBOOK,
|
TF_WEAPON_SPELLBOOK,
|
||||||
TF_WEAPON_SPELLBOOK_PROJECTILE,
|
TF_WEAPON_SPELLBOOK_PROJECTILE,
|
||||||
TF_WEAPON_SNIPERRIFLE_CLASSIC,
|
TF_WEAPON_SNIPERRIFLE_CLASSIC,
|
||||||
|
TF_WEAPON_PARACHUTE,
|
||||||
};
|
};
|
||||||
|
|
||||||
// TF2 Weapon Loadout Slots
|
// TF2 Weapon Loadout Slots
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
1.6.1
|
1.6.2
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ i
|
|||||||
D
|
D
|
||||||
S
|
S
|
||||||
!
|
!
|
||||||
|
she calls it a mayonegg
|
||||||
joys of buildbot, part 5: a watermelon's diatribes need not be cause for spilling the queen's tea
|
joys of buildbot, part 5: a watermelon's diatribes need not be cause for spilling the queen's tea
|
||||||
crab
|
crab
|
||||||
joys of buildbot, part 6: a merry metal matchturtle mocks mostly and mainly in Madrid.
|
joys of buildbot, part 6: a merry metal matchturtle mocks mostly and mainly in Madrid.
|
||||||
|
|||||||
@@ -14,6 +14,11 @@ binary.compiler.includes += [
|
|||||||
os.path.join(builder.sourcePath, 'knight', 'shared'),
|
os.path.join(builder.sourcePath, 'knight', 'shared'),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
if binary.compiler.vendor == 'gcc' or binary.compiler.vendor == 'clang':
|
||||||
|
binary.compiler.cxxflags += ['-fno-rtti']
|
||||||
|
elif binary.compiler.vendor == 'msvc':
|
||||||
|
binary.compiler.cxxflags += ['/GR-']
|
||||||
|
|
||||||
if builder.target_platform == 'linux':
|
if builder.target_platform == 'linux':
|
||||||
binary.compiler.postlink += ['-lpthread', '-lrt']
|
binary.compiler.postlink += ['-lpthread', '-lrt']
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user