Compare commits
201 Commits
1.9-dev
...
revert-883
Author | SHA1 | Date | |
---|---|---|---|
8db3853fb7 | |||
70d1aff519 | |||
bee4b47b07 | |||
8c6b0f84bb | |||
a4e929eedc | |||
c81f68aac3 | |||
03f4c7dd2c | |||
7cb045c688 | |||
73f3afa95f | |||
2fadf887e6 | |||
1027df054a | |||
2e3c105c7d | |||
ff2fc19b08 | |||
f4fefd0bb4 | |||
b26118006a | |||
ed1ab00faf | |||
6d6a41b894 | |||
b9b4001bf9 | |||
1bc342a692 | |||
368bde1d07 | |||
51ede1097d | |||
a5f2b5539f | |||
307e71455a | |||
b60f58ac34 | |||
6ef40779e7 | |||
18a5f6f5ea | |||
d3ef881f31 | |||
0eba9b3708 | |||
0ccba67006 | |||
c86813697a | |||
4f6b779bf4 | |||
d819df80f9 | |||
5120deaf74 | |||
d01aa5762f | |||
8930ecf7c5 | |||
aa06e5ab93 | |||
8309a1e06b | |||
7a44e6ec66 | |||
0bd69445f9 | |||
5a257a7a42 | |||
136cc23463 | |||
024003d6f0 | |||
abba8f1a7c | |||
16c5e4b34b | |||
132277bfdc | |||
f1332bb4af | |||
d659761195 | |||
8a57a94480 | |||
0409910e1f | |||
c392d358a7 | |||
a901a127eb | |||
2f90940c3f | |||
e66b466745 | |||
9068f3c95a | |||
d2e71dd1f2 | |||
58e552ceff | |||
8a19774edd | |||
66876f89cd | |||
d18cc72510 | |||
179b802c7b | |||
aba5897818 | |||
ee2d846e0d | |||
a6897ec39b | |||
8aabf09067 | |||
b5fb4611cd | |||
f41aeef8b0 | |||
7561426bd4 | |||
1bac8319c4 | |||
c6eb8a11d8 | |||
6aa012f062 | |||
887dd5b6d1 | |||
703a6872bc | |||
71eb9fe0d8 | |||
096dae9095 | |||
1eb8a7f8c2 | |||
8cbbf71f0c | |||
6923c1b209 | |||
de93fa0824 | |||
118f33a83e | |||
bc0d83bc92 | |||
bc36bb23df | |||
00967632d5 | |||
74171687f7 | |||
88d9145524 | |||
50971fd9d0 | |||
45c2e90a3f | |||
a6ccf82419 | |||
3c3ac7a36c | |||
41abeb3322 | |||
1e89e4c685 | |||
653c5edcf4 | |||
302d127f6f | |||
0eeda72922 | |||
cb1941c99a | |||
51adc75e96 | |||
8882bd5ca0 | |||
0928d7a6fe | |||
e502c61f2c | |||
38848ff636 | |||
59ce7064c7 | |||
8cee128e50 | |||
7ddc462135 | |||
cd76998995 | |||
48c0ae1711 | |||
85124d3417 | |||
8b1a83f085 | |||
3fb981f6be | |||
388a68e694 | |||
60e2109b4f | |||
ca7e289273 | |||
437ad0f8ec | |||
32ff785d85 | |||
2d607b6d68 | |||
9c21bcd18b | |||
dcdd5a1442 | |||
072095445e | |||
486da2f44b | |||
681acffee9 | |||
dfd835eba5 | |||
ecbff2e8f1 | |||
55f01c9488 | |||
49c219e6a2 | |||
cccb8c84af | |||
3dc5ec0331 | |||
12664d9427 | |||
365a0559b3 | |||
62052ee590 | |||
0aa97dee3f | |||
4c55da4de9 | |||
0f667692b1 | |||
6addd9c074 | |||
295d09df8b | |||
1cc7786a4c | |||
f301fbaf08 | |||
05cd0af3a5 | |||
97fc80dd03 | |||
d3ca82411a | |||
3e91def7f0 | |||
96a74ec654 | |||
4f3b9e7a60 | |||
df819beab5 | |||
7ecc62aaef | |||
ef570a987a | |||
09548bfd2c | |||
2e0c240573 | |||
dc59d826a3 | |||
35788efa07 | |||
ac6364bfdc | |||
6655fe7c28 | |||
bb31835dea | |||
bd67978c3a | |||
ede7b69b25 | |||
7b2ef405a3 | |||
8264328235 | |||
113c50b1fa | |||
340e2b9df2 | |||
3486a7d7fc | |||
e1d1004cd6 | |||
8940de5956 | |||
304af5055e | |||
7c07ae6099 | |||
1c39c85929 | |||
5b07b25d62 | |||
6bed09db57 | |||
ca69c36c1e | |||
f623126fe1 | |||
f392c90729 | |||
fd64327313 | |||
38cd5ab1cd | |||
5947926a09 | |||
ea7ffafd88 | |||
ba083deb1e | |||
f365c943b7 | |||
9417ec188d | |||
af56d964c1 | |||
7c7ad3d3c0 | |||
bb84a43a7b | |||
20d917a307 | |||
77eb33d5f2 | |||
75cf5f55f9 | |||
fb615aaef1 | |||
7f7d01fb8d | |||
87b6f274a0 | |||
0b5584a334 | |||
f82455dd84 | |||
8717ffe07c | |||
b4768a3d1d | |||
f1f95425b6 | |||
49430082f5 | |||
22fd09efea | |||
e8c8111178 | |||
08213d8ead | |||
c3225afda1 | |||
dfbeec069c | |||
a54b9f05a7 | |||
1f0dc33875 | |||
8d1f924248 | |||
5694acf482 | |||
8f88dc5ac8 | |||
b1b053c205 | |||
c9e9ef905e |
2
.gitignore
vendored
2
.gitignore
vendored
@ -84,7 +84,5 @@ Thumbs.db
|
|||||||
# AMXX plugin build related files
|
# AMXX plugin build related files
|
||||||
plugins/compile.dat
|
plugins/compile.dat
|
||||||
plugins/compiled/
|
plugins/compiled/
|
||||||
*.amx
|
|
||||||
*.amxx
|
|
||||||
|
|
||||||
build_deps/
|
build_deps/
|
||||||
|
@ -227,11 +227,6 @@ class AMXXConfig(object):
|
|||||||
cxx.cflags += ['-Wno-unused-result', '-Wno-error=sign-compare']
|
cxx.cflags += ['-Wno-unused-result', '-Wno-error=sign-compare']
|
||||||
if have_clang:
|
if have_clang:
|
||||||
cxx.cxxflags += ['-Wno-implicit-exception-spec-mismatch']
|
cxx.cxxflags += ['-Wno-implicit-exception-spec-mismatch']
|
||||||
if cxx.version >= 'apple-clang-10.0':
|
|
||||||
cxx.cxxflags += [
|
|
||||||
'-Wno-inconsistent-missing-override',
|
|
||||||
'-Wno-varargs',
|
|
||||||
]
|
|
||||||
if cxx.version >= 'apple-clang-5.1' or cxx.version >= 'clang-3.4':
|
if cxx.version >= 'apple-clang-5.1' or cxx.version >= 'clang-3.4':
|
||||||
cxx.cxxflags += ['-Wno-deprecated-register']
|
cxx.cxxflags += ['-Wno-deprecated-register']
|
||||||
else:
|
else:
|
||||||
@ -322,18 +317,15 @@ class AMXXConfig(object):
|
|||||||
|
|
||||||
def configure_mac(self, cxx):
|
def configure_mac(self, cxx):
|
||||||
cxx.defines += ['OSX', '_OSX', 'POSIX']
|
cxx.defines += ['OSX', '_OSX', 'POSIX']
|
||||||
cxx.cflags += [
|
cxx.cflags += ['-mmacosx-version-min=10.5']
|
||||||
'-mmacosx-version-min=10.7',
|
|
||||||
'-Wno-address-of-packed-member',
|
|
||||||
]
|
|
||||||
cxx.linkflags += [
|
cxx.linkflags += [
|
||||||
'-mmacosx-version-min=10.7',
|
'-mmacosx-version-min=10.5',
|
||||||
'-arch', 'i386',
|
'-arch', 'i386',
|
||||||
'-lstdc++',
|
'-lstdc++',
|
||||||
'-stdlib=libc++',
|
'-stdlib=libstdc++',
|
||||||
'-framework', 'CoreServices',
|
'-framework', 'CoreServices',
|
||||||
]
|
]
|
||||||
cxx.cxxflags += ['-stdlib=libc++']
|
cxx.cxxflags += ['-stdlib=libstdc++']
|
||||||
|
|
||||||
def configure_windows(self, cxx):
|
def configure_windows(self, cxx):
|
||||||
cxx.defines += ['WIN32', '_WINDOWS']
|
cxx.defines += ['WIN32', '_WINDOWS']
|
||||||
|
@ -325,16 +325,16 @@ SMCResult CGameConfig::ReadSMC_KeyValue(const SMCStates *states, const char *key
|
|||||||
}
|
}
|
||||||
else if (!strcmp(key, "size"))
|
else if (!strcmp(key, "size"))
|
||||||
{
|
{
|
||||||
TempType.fieldSize = ke::Max<int>(0, atoi(value));
|
TempType.fieldSize = ke::Max<int>(0, strtol(value, nullptr, 0));
|
||||||
}
|
}
|
||||||
else if (!strcmp(key, "unsigned"))
|
else if (!strcmp(key, "unsigned"))
|
||||||
{
|
{
|
||||||
TempType.fieldUnsigned = !!atoi(value);
|
TempType.fieldUnsigned = !!strtol(value, nullptr, 0);
|
||||||
}
|
}
|
||||||
else if (g_LibSys.IsPlatformCompatible(key, &m_MatchedPlatform))
|
else if (g_LibSys.IsPlatformCompatible(key, &m_MatchedPlatform))
|
||||||
{
|
{
|
||||||
m_FoundOffset = true;
|
m_FoundOffset = true;
|
||||||
TempType.fieldOffset = atoi(value);
|
TempType.fieldOffset = strtol(value, nullptr, 0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -397,7 +397,7 @@ SMCResult CGameConfig::ReadSMC_KeyValue(const SMCStates *states, const char *key
|
|||||||
|
|
||||||
if (m_AddressReadCount < limit)
|
if (m_AddressReadCount < limit)
|
||||||
{
|
{
|
||||||
m_AddressRead[m_AddressReadCount] = atoi(value);
|
m_AddressRead[m_AddressReadCount] = strtol(value, nullptr, 0);
|
||||||
m_AddressReadCount++;
|
m_AddressReadCount++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -180,6 +180,18 @@ class CGameConfigManager : public IGameConfigManager
|
|||||||
member = type.fieldOffset; \
|
member = type.fieldOffset; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define GET_OFFSET_NO_ERROR(classname, member) \
|
||||||
|
static int member = -1; \
|
||||||
|
if (member == -1) \
|
||||||
|
{ \
|
||||||
|
TypeDescription type; \
|
||||||
|
if (!CommonConfig->GetOffsetByClass(classname, #member, &type) || type.fieldOffset < 0)\
|
||||||
|
{ \
|
||||||
|
return; \
|
||||||
|
} \
|
||||||
|
member = type.fieldOffset; \
|
||||||
|
}
|
||||||
|
|
||||||
extern CGameConfigManager ConfigManager;
|
extern CGameConfigManager ConfigManager;
|
||||||
extern IGameConfig *CommonConfig;
|
extern IGameConfig *CommonConfig;
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
#include "debugger.h"
|
#include "debugger.h"
|
||||||
#include "libraries.h"
|
#include "libraries.h"
|
||||||
#include <amxmodx_version.h>
|
#include <amxmodx_version.h>
|
||||||
|
#include "engine_strucs.h"
|
||||||
|
|
||||||
extern const char *no_function;
|
extern const char *no_function;
|
||||||
|
|
||||||
@ -154,6 +155,37 @@ int CPluginMngr::loadPluginsFromFile(const char* filename, bool warn)
|
|||||||
*get_amxaddr(plugin->getAMX(), addr) = gpGlobals->maxClients;
|
*get_amxaddr(plugin->getAMX(), addr) = gpGlobals->maxClients;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (amx_FindPubVar(plugin->getAMX(), "MapName", &addr) != AMX_ERR_NOTFOUND)
|
||||||
|
{
|
||||||
|
set_amxstring(plugin->getAMX(), addr, STRING(gpGlobals->mapname), MAX_MAPNAME_LENGTH - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
auto length = 0;
|
||||||
|
if (amx_FindPubVar(plugin->getAMX(), "PluginName", &addr) != AMX_ERR_NOTFOUND)
|
||||||
|
{
|
||||||
|
plugin->setTitle(get_amxstring(plugin->getAMX(), addr, 0, length));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (amx_FindPubVar(plugin->getAMX(), "PluginVersion", &addr) != AMX_ERR_NOTFOUND)
|
||||||
|
{
|
||||||
|
plugin->setVersion(get_amxstring(plugin->getAMX(), addr, 0, length));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (amx_FindPubVar(plugin->getAMX(), "PluginAuthor", &addr) != AMX_ERR_NOTFOUND)
|
||||||
|
{
|
||||||
|
plugin->setAuthor(get_amxstring(plugin->getAMX(), addr, 0, length));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (amx_FindPubVar(plugin->getAMX(), "PluginURL", &addr) != AMX_ERR_NOTFOUND)
|
||||||
|
{
|
||||||
|
plugin->setUrl(get_amxstring(plugin->getAMX(), addr, 0, length));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (amx_FindPubVar(plugin->getAMX(), "PluginDescription", &addr) != AMX_ERR_NOTFOUND)
|
||||||
|
{
|
||||||
|
plugin->setDescription(get_amxstring(plugin->getAMX(), addr, 0, length));
|
||||||
|
}
|
||||||
|
|
||||||
if (amx_FindPubVar(plugin->getAMX(), "NULL_STRING", &addr) != AMX_ERR_NOTFOUND)
|
if (amx_FindPubVar(plugin->getAMX(), "NULL_STRING", &addr) != AMX_ERR_NOTFOUND)
|
||||||
{
|
{
|
||||||
plugin->m_pNullStringOfs = get_amxaddr(plugin->getAMX(), addr);
|
plugin->m_pNullStringOfs = get_amxaddr(plugin->getAMX(), addr);
|
||||||
@ -275,6 +307,7 @@ CPluginMngr::CPlugin::CPlugin(int i, const char* p, const char* n, char* e, size
|
|||||||
title = unk;
|
title = unk;
|
||||||
author = unk;
|
author = unk;
|
||||||
version = unk;
|
version = unk;
|
||||||
|
url = unk;
|
||||||
|
|
||||||
char file[PLATFORM_MAX_PATH];
|
char file[PLATFORM_MAX_PATH];
|
||||||
char* path = build_pathname_r(file, sizeof(file), "%s/%s", p, n);
|
char* path = build_pathname_r(file, sizeof(file), "%s/%s", p, n);
|
||||||
|
@ -56,6 +56,8 @@ public:
|
|||||||
ke::AString version;
|
ke::AString version;
|
||||||
ke::AString title;
|
ke::AString title;
|
||||||
ke::AString author;
|
ke::AString author;
|
||||||
|
ke::AString url;
|
||||||
|
ke::AString description;
|
||||||
ke::AString errorMsg;
|
ke::AString errorMsg;
|
||||||
|
|
||||||
unsigned int failcounter;
|
unsigned int failcounter;
|
||||||
@ -78,6 +80,8 @@ public:
|
|||||||
inline const char* getVersion() { return version.chars();}
|
inline const char* getVersion() { return version.chars();}
|
||||||
inline const char* getTitle() { return title.chars();}
|
inline const char* getTitle() { return title.chars();}
|
||||||
inline const char* getAuthor() { return author.chars();}
|
inline const char* getAuthor() { return author.chars();}
|
||||||
|
inline const char* getUrl() { return url.chars(); }
|
||||||
|
inline const char* getDescription() { return description.chars(); }
|
||||||
inline const char* getError() { return errorMsg.chars();}
|
inline const char* getError() { return errorMsg.chars();}
|
||||||
inline int getStatusCode() { return status; }
|
inline int getStatusCode() { return status; }
|
||||||
inline int getId() const { return id; }
|
inline int getId() const { return id; }
|
||||||
@ -86,6 +90,8 @@ public:
|
|||||||
inline void setTitle(const char* n) { title = n; }
|
inline void setTitle(const char* n) { title = n; }
|
||||||
inline void setAuthor(const char* n) { author =n; }
|
inline void setAuthor(const char* n) { author =n; }
|
||||||
inline void setVersion(const char* n) { version = n; }
|
inline void setVersion(const char* n) { version = n; }
|
||||||
|
inline void setUrl(const char* n) { url = n; }
|
||||||
|
inline void setDescription(const char* n) { description = n; }
|
||||||
inline void setError(const char* n) { errorMsg = n; }
|
inline void setError(const char* n) { errorMsg = n; }
|
||||||
inline bool isValid() const { return (status >= ps_paused); }
|
inline bool isValid() const { return (status >= ps_paused); }
|
||||||
inline bool isPaused() const { return ((status == ps_paused) || (status == ps_stopped)); }
|
inline bool isPaused() const { return ((status == ps_paused) || (status == ps_stopped)); }
|
||||||
|
@ -23,16 +23,31 @@
|
|||||||
extern CFlagManager FlagMan;
|
extern CFlagManager FlagMan;
|
||||||
ke::Vector<CAdminData *> DynamicAdmins;
|
ke::Vector<CAdminData *> DynamicAdmins;
|
||||||
|
|
||||||
|
const char *g_sInaccessibleXVars[] =
|
||||||
|
{
|
||||||
|
"MaxClients",
|
||||||
|
"MapName",
|
||||||
|
"PluginName",
|
||||||
|
"PluginVersion",
|
||||||
|
"PluginAuthor",
|
||||||
|
"PluginURL",
|
||||||
|
"NULL_STRING",
|
||||||
|
"NULL_VECTOR"
|
||||||
|
};
|
||||||
|
|
||||||
static cell AMX_NATIVE_CALL get_xvar_id(AMX *amx, cell *params)
|
static cell AMX_NATIVE_CALL get_xvar_id(AMX *amx, cell *params)
|
||||||
{
|
{
|
||||||
int len;
|
int len;
|
||||||
char* sName = get_amxstring(amx, params[1], 0, len);
|
char* sName = get_amxstring(amx, params[1], 0, len);
|
||||||
cell ptr;
|
cell ptr;
|
||||||
|
|
||||||
if (!strcmp(sName, "MaxClients") || !strcmp(sName, "NULL_STRING") || !strcmp(sName, "NULL_VECTOR"))
|
for (auto name : g_sInaccessibleXVars)
|
||||||
|
{
|
||||||
|
if (!strcmp(sName, name))
|
||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for (CPluginMngr::iterator a = g_plugins.begin(); a ; ++a)
|
for (CPluginMngr::iterator a = g_plugins.begin(); a ; ++a)
|
||||||
{
|
{
|
||||||
@ -525,27 +540,13 @@ static cell AMX_NATIVE_CALL next_hudchannel(AMX *amx, cell *params)
|
|||||||
return pPlayer->NextHUDChannel();
|
return pPlayer->NextHUDChannel();
|
||||||
}
|
}
|
||||||
|
|
||||||
static cell AMX_NATIVE_CALL set_hudmessage(AMX *amx, cell *params) /* 13 param */
|
static cell AMX_NATIVE_CALL set_hudmessage(AMX *amx, cell *params) /* 11 param */
|
||||||
{
|
{
|
||||||
cell num_params = params[0] / sizeof(cell);
|
|
||||||
|
|
||||||
if(num_params >= 13) {
|
|
||||||
cell *color2 = get_amxaddr(amx, params[13]);
|
|
||||||
|
|
||||||
g_hudset.a1 = params[12];
|
|
||||||
g_hudset.a2 = color2[3];
|
|
||||||
g_hudset.r2 = color2[0];
|
|
||||||
g_hudset.g2 = color2[1];
|
|
||||||
g_hudset.b2 = color2[2];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
g_hudset.a1 = 0;
|
g_hudset.a1 = 0;
|
||||||
g_hudset.a2 = 0;
|
g_hudset.a2 = 0;
|
||||||
g_hudset.r2 = 255;
|
g_hudset.r2 = 255;
|
||||||
g_hudset.g2 = 255;
|
g_hudset.g2 = 255;
|
||||||
g_hudset.b2 = 250;
|
g_hudset.b2 = 250;
|
||||||
}
|
|
||||||
|
|
||||||
g_hudset.r1 = static_cast<byte>(params[1]);
|
g_hudset.r1 = static_cast<byte>(params[1]);
|
||||||
g_hudset.g1 = static_cast<byte>(params[2]);
|
g_hudset.g1 = static_cast<byte>(params[2]);
|
||||||
g_hudset.b1 = static_cast<byte>(params[3]);
|
g_hudset.b1 = static_cast<byte>(params[3]);
|
||||||
@ -1447,29 +1448,34 @@ static cell AMX_NATIVE_CALL show_menu(AMX *amx, cell *params) /* 3 param */
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static cell AMX_NATIVE_CALL register_plugin(AMX *amx, cell *params) /* 3 param */
|
static cell AMX_NATIVE_CALL register_plugin(AMX *amx, cell *params) /* 5 param */
|
||||||
{
|
{
|
||||||
|
enum { arg_count, arg_title, arg_version, arg_author, arg_url, arg_description };
|
||||||
|
|
||||||
CPluginMngr::CPlugin* a = g_plugins.findPluginFast(amx);
|
CPluginMngr::CPlugin* a = g_plugins.findPluginFast(amx);
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
char *title = get_amxstring(amx, params[1], 0, i);
|
|
||||||
char *vers = get_amxstring(amx, params[2], 1, i);
|
a->setTitle(get_amxstring(amx, params[arg_title], 0, i));
|
||||||
char *author = get_amxstring(amx, params[3], 2, i);
|
a->setVersion(get_amxstring(amx, params[arg_version], 0, i));
|
||||||
|
a->setAuthor(get_amxstring(amx, params[arg_author], 0, i));
|
||||||
|
|
||||||
#if defined BINLOG_ENABLED
|
#if defined BINLOG_ENABLED
|
||||||
g_BinLog.WriteOp(BinLog_Registered, a->getId(), title, vers);
|
g_BinLog.WriteOp(BinLog_Registered, a->getId(), a->getTitle(), a->getVersion());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
a->setTitle(title);
|
if (params[arg_count] / sizeof(cell) > arg_author)
|
||||||
a->setVersion(vers);
|
{
|
||||||
a->setAuthor(author);
|
a->setUrl(get_amxstring(amx, params[arg_url], 0, i));
|
||||||
|
a->setDescription(get_amxstring(amx, params[arg_description], 0, i));
|
||||||
|
}
|
||||||
|
|
||||||
/* Check if we need to add fail counters */
|
/* Check if we need to add fail counters */
|
||||||
i = 0;
|
i = 0;
|
||||||
unsigned int counter = 0;
|
unsigned int counter = 0;
|
||||||
while (NONGPL_PLUGIN_LIST[i].author != NULL)
|
while (NONGPL_PLUGIN_LIST[i].author != NULL)
|
||||||
{
|
{
|
||||||
if (strcmp(NONGPL_PLUGIN_LIST[i].author, author) == 0)
|
if (strcmp(NONGPL_PLUGIN_LIST[i].author, a->getAuthor()) == 0)
|
||||||
{
|
{
|
||||||
counter++;
|
counter++;
|
||||||
}
|
}
|
||||||
@ -1477,7 +1483,7 @@ static cell AMX_NATIVE_CALL register_plugin(AMX *amx, cell *params) /* 3 param *
|
|||||||
{
|
{
|
||||||
counter++;
|
counter++;
|
||||||
}
|
}
|
||||||
if (stricmp(NONGPL_PLUGIN_LIST[i].title, title) == 0)
|
if (stricmp(NONGPL_PLUGIN_LIST[i].title, a->getTitle()) == 0)
|
||||||
{
|
{
|
||||||
counter++;
|
counter++;
|
||||||
}
|
}
|
||||||
@ -1511,31 +1517,34 @@ static cell AMX_NATIVE_CALL register_menucmd(AMX *amx, cell *params) /* 3 param
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static cell AMX_NATIVE_CALL get_plugin(AMX *amx, cell *params) /* 11 param */
|
static cell AMX_NATIVE_CALL get_plugin(AMX *amx, cell *params) /* 15 param */
|
||||||
{
|
{
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
arg_count, arg_plugin, arg_name, arg_namelen, arg_title, arg_titlelen,
|
||||||
|
arg_version, arg_versionlen, arg_author, arg_authorlen, arg_status, arg_statuslen,
|
||||||
|
arg_url, arg_urllen, arg_description, arg_descriptionlen
|
||||||
|
};
|
||||||
|
|
||||||
CPluginMngr::CPlugin* a;
|
CPluginMngr::CPlugin* a;
|
||||||
|
|
||||||
if (params[1] < 0)
|
if (params[arg_plugin] < 0)
|
||||||
a = g_plugins.findPluginFast(amx);
|
a = g_plugins.findPluginFast(amx);
|
||||||
else
|
else
|
||||||
a = g_plugins.findPlugin((int)params[1]);
|
a = g_plugins.findPlugin((int)params[arg_plugin]);
|
||||||
|
|
||||||
if (a)
|
if (a)
|
||||||
{
|
{
|
||||||
set_amxstring(amx, params[2], a->getName(), params[3]);
|
set_amxstring(amx, params[arg_name], a->getName(), params[arg_namelen]);
|
||||||
set_amxstring(amx, params[4], a->getTitle(), params[5]);
|
set_amxstring(amx, params[arg_title], a->getTitle(), params[arg_titlelen]);
|
||||||
set_amxstring(amx, params[6], a->getVersion(), params[7]);
|
set_amxstring(amx, params[arg_version], a->getVersion(), params[arg_versionlen]);
|
||||||
set_amxstring(amx, params[8], a->getAuthor(), params[9]);
|
set_amxstring(amx, params[arg_author], a->getAuthor(), params[arg_authorlen]);
|
||||||
set_amxstring(amx, params[10], a->getStatus(), params[11]);
|
set_amxstring(amx, params[arg_status], a->getStatus(), params[arg_statuslen]);
|
||||||
|
|
||||||
if (params[0] / sizeof(cell) >= 12)
|
if (params[arg_count] / sizeof(cell) > arg_url)
|
||||||
{
|
{
|
||||||
cell *jit_info = get_amxaddr(amx, params[12]);
|
set_amxstring(amx, params[arg_url], a->getUrl(), params[arg_urllen]);
|
||||||
#if defined AMD64 || !defined JIT
|
set_amxstring(amx, params[arg_description], a->getDescription(), params[arg_descriptionlen]);
|
||||||
*jit_info = 0;
|
|
||||||
#else
|
|
||||||
*jit_info = a->isDebug() ? 0 : 1;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return a->getId();
|
return a->getId();
|
||||||
|
@ -88,10 +88,15 @@ void Client_TeamInfo(void* mValue)
|
|||||||
if (index < 1 || index > gpGlobals->maxClients) break;
|
if (index < 1 || index > gpGlobals->maxClients) break;
|
||||||
char* msg = (char*)mValue;
|
char* msg = (char*)mValue;
|
||||||
if (!msg) break;
|
if (!msg) break;
|
||||||
g_players[index].team = msg;
|
|
||||||
g_teamsIds.registerTeam(msg, -1);
|
|
||||||
g_players[index].teamId = g_teamsIds.findTeamId(msg);
|
|
||||||
|
|
||||||
|
auto pPlayer = GET_PLAYER_POINTER_I(index);
|
||||||
|
|
||||||
|
pPlayer->team = msg;
|
||||||
|
g_teamsIds.registerTeam(msg, -1);
|
||||||
|
pPlayer->teamId = g_teamsIds.findTeamId(msg);
|
||||||
|
|
||||||
|
if (pPlayer->teamId == -1)
|
||||||
|
{
|
||||||
/**
|
/**
|
||||||
* CS fix for SPECTATOR team.
|
* CS fix for SPECTATOR team.
|
||||||
* -
|
* -
|
||||||
@ -99,12 +104,30 @@ void Client_TeamInfo(void* mValue)
|
|||||||
* This means for the first round of first spectator, SPECTATOR name is not associated with its index.
|
* This means for the first round of first spectator, SPECTATOR name is not associated with its index.
|
||||||
* The following fix manually sets the team index when we hit SPECTATOR team.
|
* The following fix manually sets the team index when we hit SPECTATOR team.
|
||||||
*/
|
*/
|
||||||
if (g_players[index].teamId == -1 && g_bmod_cstrike && !strcmp(msg, "SPECTATOR"))
|
if (g_bmod_cstrike && !strcmp(msg, "SPECTATOR"))
|
||||||
{
|
{
|
||||||
g_players[index].teamId = 3;
|
pPlayer->teamId = 3;
|
||||||
g_teamsIds.registerTeam(msg, 3);
|
g_teamsIds.registerTeam(msg, 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fixes in-between situation where the team name is not yet associated with a valid index
|
||||||
|
* and ScoreInfo is executed later (used to retrieve the index). E.g. a player is dead,
|
||||||
|
* then changes team. Index will return -1 until ScoreInfo is sent, usually at the next spawn.
|
||||||
|
*/
|
||||||
|
else if ((g_bmod_cstrike || g_bmod_dod || g_bmod_tfc || g_bmod_gearbox || g_bmod_valve)
|
||||||
|
&& pPlayer->pEdict->pvPrivateData
|
||||||
|
&& !pPlayer->IsAlive())
|
||||||
|
{
|
||||||
|
GET_OFFSET_NO_ERROR("CBasePlayer", m_iTeam);
|
||||||
|
|
||||||
|
const auto teamId = get_pdata<int>(pPlayer->pEdict, m_iTeam);
|
||||||
|
|
||||||
|
pPlayer->teamId = teamId;
|
||||||
|
g_teamsIds.registerTeam(msg, teamId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -774,6 +774,15 @@ void C_ServerDeactivate_Post()
|
|||||||
g_vault.clear();
|
g_vault.clear();
|
||||||
g_xvars.clear();
|
g_xvars.clear();
|
||||||
g_plugins.clear();
|
g_plugins.clear();
|
||||||
|
g_langMngr.Clear();
|
||||||
|
|
||||||
|
ArrayHandles.clear();
|
||||||
|
TrieHandles.clear();
|
||||||
|
TrieIterHandles.clear();
|
||||||
|
TrieSnapshotHandles.clear();
|
||||||
|
DataPackHandles.clear();
|
||||||
|
TextParsersHandles.clear();
|
||||||
|
GameConfigHandle.clear();
|
||||||
|
|
||||||
g_CvarManager.OnPluginUnloaded();
|
g_CvarManager.OnPluginUnloaded();
|
||||||
|
|
||||||
@ -1145,12 +1154,12 @@ void C_ClientCommand(edict_t *pEntity)
|
|||||||
if (item == MENU_BACK)
|
if (item == MENU_BACK)
|
||||||
{
|
{
|
||||||
if (pMenu->pageCallback >= 0)
|
if (pMenu->pageCallback >= 0)
|
||||||
executeForwards(pMenu->pageCallback, static_cast<cell>(pPlayer->index), static_cast<cell>(MENU_BACK));
|
executeForwards(pMenu->pageCallback, static_cast<cell>(pPlayer->index), static_cast<cell>(MENU_BACK), static_cast<cell>(menu));
|
||||||
|
|
||||||
pMenu->Display(pPlayer->index, pPlayer->page - 1);
|
pMenu->Display(pPlayer->index, pPlayer->page - 1);
|
||||||
} else if (item == MENU_MORE) {
|
} else if (item == MENU_MORE) {
|
||||||
if (pMenu->pageCallback >= 0)
|
if (pMenu->pageCallback >= 0)
|
||||||
executeForwards(pMenu->pageCallback, static_cast<cell>(pPlayer->index), static_cast<cell>(MENU_MORE));
|
executeForwards(pMenu->pageCallback, static_cast<cell>(pPlayer->index), static_cast<cell>(MENU_MORE), static_cast<cell>(menu));
|
||||||
|
|
||||||
pMenu->Display(pPlayer->index, pPlayer->page + 1);
|
pMenu->Display(pPlayer->index, pPlayer->page + 1);
|
||||||
} else {
|
} else {
|
||||||
@ -1730,6 +1739,14 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIME now, PL_UNLOAD_REASON reason)
|
|||||||
g_plugins.clear();
|
g_plugins.clear();
|
||||||
g_langMngr.Clear();
|
g_langMngr.Clear();
|
||||||
|
|
||||||
|
ArrayHandles.clear();
|
||||||
|
TrieHandles.clear();
|
||||||
|
TrieIterHandles.clear();
|
||||||
|
TrieSnapshotHandles.clear();
|
||||||
|
DataPackHandles.clear();
|
||||||
|
TextParsersHandles.clear();
|
||||||
|
GameConfigHandle.clear();
|
||||||
|
|
||||||
ClearMessages();
|
ClearMessages();
|
||||||
|
|
||||||
modules_callPluginsUnloaded();
|
modules_callPluginsUnloaded();
|
||||||
|
@ -457,6 +457,7 @@ md -p JIT 2>NUL
|
|||||||
<None Include="..\..\plugins\include\cvars.inc" />
|
<None Include="..\..\plugins\include\cvars.inc" />
|
||||||
<None Include="..\..\plugins\include\datapack.inc" />
|
<None Include="..\..\plugins\include\datapack.inc" />
|
||||||
<None Include="..\..\plugins\include\gameconfig.inc" />
|
<None Include="..\..\plugins\include\gameconfig.inc" />
|
||||||
|
<None Include="..\..\plugins\include\newmenus.inc" />
|
||||||
<None Include="..\..\plugins\include\string_const.inc" />
|
<None Include="..\..\plugins\include\string_const.inc" />
|
||||||
<None Include="..\..\plugins\include\string_stocks.inc" />
|
<None Include="..\..\plugins\include\string_stocks.inc" />
|
||||||
<None Include="..\..\plugins\include\textparse_ini.inc" />
|
<None Include="..\..\plugins\include\textparse_ini.inc" />
|
||||||
|
@ -693,6 +693,9 @@
|
|||||||
<None Include="..\..\plugins\include\string_stocks.inc">
|
<None Include="..\..\plugins\include\string_stocks.inc">
|
||||||
<Filter>Pawn Includes</Filter>
|
<Filter>Pawn Includes</Filter>
|
||||||
</None>
|
</None>
|
||||||
|
<None Include="..\..\plugins\include\newmenus.inc">
|
||||||
|
<Filter>Pawn Includes</Filter>
|
||||||
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Object Include="..\Jit\helpers-x86.obj">
|
<Object Include="..\Jit\helpers-x86.obj">
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
#include "amxmodx.h"
|
#include "amxmodx.h"
|
||||||
#include "CMenu.h"
|
#include "CMenu.h"
|
||||||
#include "newmenus.h"
|
#include "newmenus.h"
|
||||||
|
#include "format.h"
|
||||||
|
|
||||||
ke::Vector<Menu *> g_NewMenus;
|
ke::Vector<Menu *> g_NewMenus;
|
||||||
CStack<int> g_MenuFreeStack;
|
CStack<int> g_MenuFreeStack;
|
||||||
@ -90,9 +91,9 @@ bool CloseNewMenus(CPlayer *pPlayer)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Menu::Menu(const char *title, AMX *amx, int fid) : m_Title(title), m_ItemColor("\\r"),
|
Menu::Menu(const char *title, AMX *amx, int fid, bool use_ml) : m_Title(title), m_ItemColor("\\r"),
|
||||||
m_NeverExit(false), m_AutoColors(g_coloredmenus), thisId(0), func(fid),
|
m_NeverExit(false), m_ForceExit(false), m_AutoColors(g_coloredmenus), thisId(0), func(fid),
|
||||||
isDestroying(false), pageCallback(-1), showPageNumber(true), items_per_page(7)
|
isDestroying(false), pageCallback(-1), showPageNumber(true), useMultilingual(use_ml), amx(amx), items_per_page(7)
|
||||||
{
|
{
|
||||||
CPluginMngr::CPlugin *pPlugin = g_plugins.findPluginFast(amx);
|
CPluginMngr::CPlugin *pPlugin = g_plugins.findPluginFast(amx);
|
||||||
menuId = g_menucmds.registerMenuId(title, amx);
|
menuId = g_menucmds.registerMenuId(title, amx);
|
||||||
@ -356,18 +357,32 @@ const char *Menu::GetTextString(int player, page_t page, int &keys)
|
|||||||
|
|
||||||
m_Text = nullptr;
|
m_Text = nullptr;
|
||||||
|
|
||||||
|
|
||||||
|
auto title = m_Title.chars();
|
||||||
|
|
||||||
|
if (this->useMultilingual)
|
||||||
|
{
|
||||||
|
const auto language = playerlang(player);
|
||||||
|
const auto definition = translate(this->amx, language, title);
|
||||||
|
|
||||||
|
if (definition)
|
||||||
|
{
|
||||||
|
title = definition;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
char buffer[255];
|
char buffer[255];
|
||||||
if (showPageNumber && items_per_page && (pages != 1))
|
if (showPageNumber && items_per_page && (pages != 1))
|
||||||
{
|
{
|
||||||
if (m_AutoColors)
|
if (m_AutoColors)
|
||||||
ke::SafeSprintf(buffer, sizeof(buffer), "\\y%s %d/%d\n\\w\n", m_Title.chars(), page + 1, pages);
|
ke::SafeSprintf(buffer, sizeof(buffer), "\\y%s %d/%d\n\\w\n", title, page + 1, pages);
|
||||||
else
|
else
|
||||||
ke::SafeSprintf(buffer, sizeof(buffer), "%s %d/%d\n\n", m_Title.chars(), page + 1, pages);
|
ke::SafeSprintf(buffer, sizeof(buffer), "%s %d/%d\n\n", title, page + 1, pages);
|
||||||
} else {
|
} else {
|
||||||
if (m_AutoColors)
|
if (m_AutoColors)
|
||||||
ke::SafeSprintf(buffer, sizeof(buffer), "\\y%s\n\\w\n", m_Title.chars());
|
ke::SafeSprintf(buffer, sizeof(buffer), "\\y%s\n\\w\n", title);
|
||||||
else
|
else
|
||||||
ke::SafeSprintf(buffer, sizeof(buffer), "%s\n\n", m_Title.chars());
|
ke::SafeSprintf(buffer, sizeof(buffer), "%s\n\n", title);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_Text = m_Text + buffer;
|
m_Text = m_Text + buffer;
|
||||||
@ -462,24 +477,37 @@ const char *Menu::GetTextString(int player, page_t page, int &keys)
|
|||||||
option_display = 0;
|
option_display = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto itemName = pItem->name.chars();
|
||||||
|
|
||||||
|
if (this->useMultilingual)
|
||||||
|
{
|
||||||
|
const auto language = playerlang(player);
|
||||||
|
const auto definition = translate(this->amx, language, itemName);
|
||||||
|
|
||||||
|
if (definition)
|
||||||
|
{
|
||||||
|
itemName = definition;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (pItem->isBlank)
|
if (pItem->isBlank)
|
||||||
{
|
{
|
||||||
ke::SafeSprintf(buffer, sizeof(buffer), "%s\n", pItem->name.chars());
|
ke::SafeSprintf(buffer, sizeof(buffer), "%s\n", itemName);
|
||||||
}
|
}
|
||||||
else if (enabled)
|
else if (enabled)
|
||||||
{
|
{
|
||||||
if (m_AutoColors)
|
if (m_AutoColors)
|
||||||
{
|
{
|
||||||
ke::SafeSprintf(buffer, sizeof(buffer), "%s%d.\\w %s\n", m_ItemColor.chars(),option_display, pItem->name.chars());
|
ke::SafeSprintf(buffer, sizeof(buffer), "%s%d.\\w %s\n", m_ItemColor.chars(),option_display, itemName);
|
||||||
} else {
|
} else {
|
||||||
ke::SafeSprintf(buffer, sizeof(buffer), "%d. %s\n", option_display, pItem->name.chars());
|
ke::SafeSprintf(buffer, sizeof(buffer), "%d. %s\n", option_display, itemName);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (m_AutoColors)
|
if (m_AutoColors)
|
||||||
{
|
{
|
||||||
ke::SafeSprintf(buffer, sizeof(buffer), "\\d%d. %s\n\\w", option_display, pItem->name.chars());
|
ke::SafeSprintf(buffer, sizeof(buffer), "\\d%d. %s\n\\w", option_display, itemName);
|
||||||
} else {
|
} else {
|
||||||
ke::SafeSprintf(buffer, sizeof(buffer), "#. %s\n", pItem->name.chars());
|
ke::SafeSprintf(buffer, sizeof(buffer), "#. %s\n", itemName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
slots++;
|
slots++;
|
||||||
@ -516,6 +544,20 @@ const char *Menu::GetTextString(int player, page_t page, int &keys)
|
|||||||
/* Don't bother if there is only one page */
|
/* Don't bother if there is only one page */
|
||||||
if (pages > 1)
|
if (pages > 1)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
auto tempItemName = m_OptNames[abs(MENU_BACK)].chars();
|
||||||
|
|
||||||
|
if (this->useMultilingual)
|
||||||
|
{
|
||||||
|
const auto language = playerlang(player);
|
||||||
|
const auto definition = translate(this->amx, language, tempItemName);
|
||||||
|
|
||||||
|
if (definition)
|
||||||
|
{
|
||||||
|
tempItemName = definition;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (flags & Display_Back)
|
if (flags & Display_Back)
|
||||||
{
|
{
|
||||||
keys |= (1<<option++);
|
keys |= (1<<option++);
|
||||||
@ -526,13 +568,13 @@ const char *Menu::GetTextString(int player, page_t page, int &keys)
|
|||||||
"%s%d. \\w%s\n",
|
"%s%d. \\w%s\n",
|
||||||
m_ItemColor.chars(),
|
m_ItemColor.chars(),
|
||||||
option == 10 ? 0 : option,
|
option == 10 ? 0 : option,
|
||||||
m_OptNames[abs(MENU_BACK)].chars());
|
tempItemName);
|
||||||
} else {
|
} else {
|
||||||
ke::SafeSprintf(buffer,
|
ke::SafeSprintf(buffer,
|
||||||
sizeof(buffer),
|
sizeof(buffer),
|
||||||
"%d. %s\n",
|
"%d. %s\n",
|
||||||
option == 10 ? 0 : option,
|
option == 10 ? 0 : option,
|
||||||
m_OptNames[abs(MENU_BACK)].chars());
|
tempItemName);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
option++;
|
option++;
|
||||||
@ -542,13 +584,26 @@ const char *Menu::GetTextString(int player, page_t page, int &keys)
|
|||||||
sizeof(buffer),
|
sizeof(buffer),
|
||||||
"\\d%d. %s\n\\w",
|
"\\d%d. %s\n\\w",
|
||||||
option == 10 ? 0 : option,
|
option == 10 ? 0 : option,
|
||||||
m_OptNames[abs(MENU_BACK)].chars());
|
tempItemName);
|
||||||
} else {
|
} else {
|
||||||
ke::SafeSprintf(buffer, sizeof(buffer), "#. %s\n", m_OptNames[abs(MENU_BACK)].chars());
|
ke::SafeSprintf(buffer, sizeof(buffer), "#. %s\n", tempItemName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_Text = m_Text + buffer;
|
m_Text = m_Text + buffer;
|
||||||
|
|
||||||
|
tempItemName = m_OptNames[abs(MENU_MORE)].chars();
|
||||||
|
|
||||||
|
if (this->useMultilingual)
|
||||||
|
{
|
||||||
|
const auto language = playerlang(player);
|
||||||
|
const auto definition = translate(this->amx, language, tempItemName);
|
||||||
|
|
||||||
|
if (definition)
|
||||||
|
{
|
||||||
|
tempItemName = definition;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (flags & Display_Next)
|
if (flags & Display_Next)
|
||||||
{
|
{
|
||||||
keys |= (1<<option++);
|
keys |= (1<<option++);
|
||||||
@ -559,13 +614,13 @@ const char *Menu::GetTextString(int player, page_t page, int &keys)
|
|||||||
"%s%d. \\w%s\n",
|
"%s%d. \\w%s\n",
|
||||||
m_ItemColor.chars(),
|
m_ItemColor.chars(),
|
||||||
option == 10 ? 0 : option,
|
option == 10 ? 0 : option,
|
||||||
m_OptNames[abs(MENU_MORE)].chars());
|
tempItemName);
|
||||||
} else {
|
} else {
|
||||||
ke::SafeSprintf(buffer,
|
ke::SafeSprintf(buffer,
|
||||||
sizeof(buffer),
|
sizeof(buffer),
|
||||||
"%d. %s\n",
|
"%d. %s\n",
|
||||||
option == 10 ? 0 : option,
|
option == 10 ? 0 : option,
|
||||||
m_OptNames[abs(MENU_MORE)].chars());
|
tempItemName);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
option++;
|
option++;
|
||||||
@ -575,9 +630,9 @@ const char *Menu::GetTextString(int player, page_t page, int &keys)
|
|||||||
sizeof(buffer),
|
sizeof(buffer),
|
||||||
"\\d%d. %s\n\\w",
|
"\\d%d. %s\n\\w",
|
||||||
option == 10 ? 0 : option,
|
option == 10 ? 0 : option,
|
||||||
m_OptNames[abs(MENU_MORE)].chars());
|
tempItemName);
|
||||||
} else {
|
} else {
|
||||||
ke::SafeSprintf(buffer, sizeof(buffer), "#. %s\n", m_OptNames[abs(MENU_MORE)].chars());
|
ke::SafeSprintf(buffer, sizeof(buffer), "#. %s\n", tempItemName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_Text = m_Text + buffer;
|
m_Text = m_Text + buffer;
|
||||||
@ -589,6 +644,19 @@ const char *Menu::GetTextString(int player, page_t page, int &keys)
|
|||||||
|
|
||||||
if ((items_per_page && !m_NeverExit) || (m_ForceExit && numItems < 10))
|
if ((items_per_page && !m_NeverExit) || (m_ForceExit && numItems < 10))
|
||||||
{
|
{
|
||||||
|
auto exitName = m_OptNames[abs(MENU_EXIT)].chars();
|
||||||
|
|
||||||
|
if (this->useMultilingual)
|
||||||
|
{
|
||||||
|
const auto language = playerlang(player);
|
||||||
|
const auto definition = translate(this->amx, language, exitName);
|
||||||
|
|
||||||
|
if (definition)
|
||||||
|
{
|
||||||
|
exitName = definition;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Visual pad has not been added yet */
|
/* Visual pad has not been added yet */
|
||||||
if (!items_per_page)
|
if (!items_per_page)
|
||||||
m_Text = m_Text + "\n";
|
m_Text = m_Text + "\n";
|
||||||
@ -601,13 +669,13 @@ const char *Menu::GetTextString(int player, page_t page, int &keys)
|
|||||||
"%s%d. \\w%s\n",
|
"%s%d. \\w%s\n",
|
||||||
m_ItemColor.chars(),
|
m_ItemColor.chars(),
|
||||||
option == 10 ? 0 : option,
|
option == 10 ? 0 : option,
|
||||||
m_OptNames[abs(MENU_EXIT)].chars());
|
exitName);
|
||||||
} else {
|
} else {
|
||||||
ke::SafeSprintf(buffer,
|
ke::SafeSprintf(buffer,
|
||||||
sizeof(buffer),
|
sizeof(buffer),
|
||||||
"%d. %s\n",
|
"%d. %s\n",
|
||||||
option == 10 ? 0 : option,
|
option == 10 ? 0 : option,
|
||||||
m_OptNames[abs(MENU_EXIT)].chars());
|
exitName);
|
||||||
}
|
}
|
||||||
m_Text = m_Text + buffer;
|
m_Text = m_Text + buffer;
|
||||||
}
|
}
|
||||||
@ -620,38 +688,45 @@ const char *Menu::GetTextString(int player, page_t page, int &keys)
|
|||||||
LogError(amx, AMX_ERR_NATIVE, "Invalid menu id %d(%d)", p, g_NewMenus.length()); \
|
LogError(amx, AMX_ERR_NATIVE, "Invalid menu id %d(%d)", p, g_NewMenus.length()); \
|
||||||
return 0; }
|
return 0; }
|
||||||
|
|
||||||
//Makes a new menu handle (-1 for failure)
|
// native menu_create(const title[], const handler[], bool:ml = false);
|
||||||
//native csdm_makemenu(title[]);
|
|
||||||
static cell AMX_NATIVE_CALL menu_create(AMX *amx, cell *params)
|
static cell AMX_NATIVE_CALL menu_create(AMX *amx, cell *params)
|
||||||
{
|
{
|
||||||
int len;
|
enum args { arg_count, arg_title, arg_handler, arg_ml };
|
||||||
char *title = get_amxstring(amx, params[1], 0, len);
|
|
||||||
validate_menu_text(title);
|
|
||||||
char *handler = get_amxstring(amx, params[2], 1, len);
|
|
||||||
|
|
||||||
int func = registerSPForwardByName(amx, handler, FP_CELL, FP_CELL, FP_CELL, FP_DONE);
|
int length;
|
||||||
|
const auto title = get_amxstring(amx, params[arg_title], 0, length);
|
||||||
|
const auto handler = get_amxstring(amx, params[arg_handler], 1, length);
|
||||||
|
const auto callback = registerSPForwardByName(amx, handler, FP_CELL, FP_CELL, FP_CELL, FP_DONE);
|
||||||
|
|
||||||
if (func == -1)
|
if (callback == -1)
|
||||||
{
|
{
|
||||||
LogError(amx, AMX_ERR_NOTFOUND, "Invalid function \"%s\"", handler);
|
LogError(amx, AMX_ERR_NOTFOUND, R"(Invalid function "%s")", handler);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Menu *pMenu = new Menu(title, amx, func);
|
validate_menu_text(title);
|
||||||
|
|
||||||
|
auto pMenu = new Menu(title, amx, callback, params[arg_ml] != 0);
|
||||||
|
|
||||||
if (g_MenuFreeStack.empty())
|
if (g_MenuFreeStack.empty())
|
||||||
{
|
{
|
||||||
g_NewMenus.append(pMenu);
|
g_NewMenus.append(pMenu);
|
||||||
pMenu->thisId = (int)g_NewMenus.length() - 1;
|
|
||||||
} else {
|
pMenu->thisId = static_cast<int>(g_NewMenus.length()) - 1;
|
||||||
int pos = g_MenuFreeStack.front();
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const auto position = g_MenuFreeStack.front();
|
||||||
|
|
||||||
g_MenuFreeStack.pop();
|
g_MenuFreeStack.pop();
|
||||||
g_NewMenus[pos] = pMenu;
|
g_NewMenus[position] = pMenu;
|
||||||
pMenu->thisId = pos;
|
|
||||||
|
pMenu->thisId = position;
|
||||||
}
|
}
|
||||||
|
|
||||||
return pMenu->thisId;
|
return pMenu->thisId;
|
||||||
}
|
}
|
||||||
|
|
||||||
static cell AMX_NATIVE_CALL menu_addblank(AMX *amx, cell *params)
|
static cell AMX_NATIVE_CALL menu_addblank(AMX *amx, cell *params)
|
||||||
{
|
{
|
||||||
GETMENU(params[1]);
|
GETMENU(params[1]);
|
||||||
@ -971,6 +1046,20 @@ static cell AMX_NATIVE_CALL menu_item_setcall(AMX *amx, cell *params)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static cell AMX_NATIVE_CALL menu_item_setaccess(AMX *amx, cell *params)
|
||||||
|
{
|
||||||
|
GETMENU(params[1]);
|
||||||
|
|
||||||
|
menuitem *pItem = pMenu->GetMenuItem(static_cast<item_t>(params[2]));
|
||||||
|
|
||||||
|
if (!pItem)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
pItem->access = params[3];
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
static cell AMX_NATIVE_CALL menu_setprop(AMX *amx, cell *params)
|
static cell AMX_NATIVE_CALL menu_setprop(AMX *amx, cell *params)
|
||||||
{
|
{
|
||||||
GETMENU(params[1]);
|
GETMENU(params[1]);
|
||||||
@ -994,7 +1083,7 @@ static cell AMX_NATIVE_CALL menu_setprop(AMX *amx, cell *params)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
int callback = registerSPForwardByName(amx, str, FP_CELL, FP_CELL, FP_DONE);
|
int callback = registerSPForwardByName(amx, str, FP_CELL, FP_CELL, FP_CELL, FP_DONE);
|
||||||
if (callback < 0)
|
if (callback < 0)
|
||||||
{
|
{
|
||||||
LogError(amx, AMX_ERR_NATIVE, "Function %s not present", str);
|
LogError(amx, AMX_ERR_NATIVE, "Function %s not present", str);
|
||||||
@ -1202,6 +1291,7 @@ AMX_NATIVE_INFO g_NewMenuNatives[] =
|
|||||||
{"menu_item_getinfo", menu_item_getinfo},
|
{"menu_item_getinfo", menu_item_getinfo},
|
||||||
{"menu_makecallback", menu_makecallback},
|
{"menu_makecallback", menu_makecallback},
|
||||||
{"menu_item_setcall", menu_item_setcall},
|
{"menu_item_setcall", menu_item_setcall},
|
||||||
|
{"menu_item_setaccess", menu_item_setaccess},
|
||||||
{"menu_item_setcmd", menu_item_setcmd},
|
{"menu_item_setcmd", menu_item_setcmd},
|
||||||
{"menu_item_setname", menu_item_setname},
|
{"menu_item_setname", menu_item_setname},
|
||||||
{"menu_destroy", menu_destroy},
|
{"menu_destroy", menu_destroy},
|
||||||
|
@ -95,7 +95,7 @@ typedef unsigned int page_t;
|
|||||||
class Menu
|
class Menu
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Menu(const char *title, AMX *amx, int fid);
|
Menu(const char *title, AMX *amx, int fid, bool use_ml);
|
||||||
~Menu();
|
~Menu();
|
||||||
|
|
||||||
menuitem *GetMenuItem(item_t item);
|
menuitem *GetMenuItem(item_t item);
|
||||||
@ -127,6 +127,8 @@ public:
|
|||||||
bool isDestroying;
|
bool isDestroying;
|
||||||
int pageCallback;
|
int pageCallback;
|
||||||
bool showPageNumber;
|
bool showPageNumber;
|
||||||
|
bool useMultilingual;
|
||||||
|
AMX *amx;
|
||||||
public:
|
public:
|
||||||
unsigned int items_per_page;
|
unsigned int items_per_page;
|
||||||
};
|
};
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
|
|
||||||
#include "amxmodx.h"
|
#include "amxmodx.h"
|
||||||
#include <amxmodx_version.h>
|
#include <amxmodx_version.h>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
void amx_command()
|
void amx_command()
|
||||||
{
|
{
|
||||||
@ -25,7 +26,7 @@ void amx_command()
|
|||||||
if (!strcmp(cmd, "plugins") || !strcmp(cmd, "list"))
|
if (!strcmp(cmd, "plugins") || !strcmp(cmd, "list"))
|
||||||
{
|
{
|
||||||
print_srvconsole("Currently loaded plugins:\n");
|
print_srvconsole("Currently loaded plugins:\n");
|
||||||
print_srvconsole(" %-23.22s %-11.10s %-17.16s %-16.15s %-9.8s\n", "name", "version", "author", "file", "status");
|
print_srvconsole(" %-3.2s %-23.22s %-11.10s %-17.16s %-32.31s %-12.11s %-9.8s\n", "id", "name", "version", "author", "url", "file", "status");
|
||||||
|
|
||||||
int plugins = 0;
|
int plugins = 0;
|
||||||
int running = 0;
|
int running = 0;
|
||||||
@ -40,7 +41,7 @@ void amx_command()
|
|||||||
if ((*a).isValid() && !(*a).isPaused())
|
if ((*a).isValid() && !(*a).isPaused())
|
||||||
++running;
|
++running;
|
||||||
|
|
||||||
print_srvconsole(" [%3d] %-23.22s %-11.10s %-17.16s %-16.15s %-9.8s\n", plugins, (*a).getTitle(), (*a).getVersion(), (*a).getAuthor(), (*a).getName(), (*a).getStatus());
|
print_srvconsole(" [%3d] %-3i %-23.22s %-11.10s %-17.16s %-32.31s %-12.11s %-9.8s\n", plugins, (*a).getId(), (*a).getTitle(), (*a).getVersion(), (*a).getAuthor(), (*a).getUrl(), (*a).getName(), (*a).getStatus());
|
||||||
}
|
}
|
||||||
++a;
|
++a;
|
||||||
}
|
}
|
||||||
@ -63,6 +64,52 @@ void amx_command()
|
|||||||
|
|
||||||
print_srvconsole("%d plugins, %d running\n", plugins, running);
|
print_srvconsole("%d plugins, %d running\n", plugins, running);
|
||||||
}
|
}
|
||||||
|
else if (!strcmp(cmd, "plugin"))
|
||||||
|
{
|
||||||
|
if (CMD_ARGC() < 3)
|
||||||
|
{
|
||||||
|
print_srvconsole("Usage: amxx plugin [ id ]\nFor a list of plugins, use the \"amxx plugins\" command\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
char *pEnd;
|
||||||
|
auto id = strtol(CMD_ARGV(2), &pEnd, 10);
|
||||||
|
|
||||||
|
if (!pEnd)
|
||||||
|
{
|
||||||
|
print_srvconsole("Invalid plugin index %i.\n", id);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto plugin = g_plugins.findPlugin(id);
|
||||||
|
|
||||||
|
if (plugin && plugin->isValid())
|
||||||
|
{
|
||||||
|
print_srvconsole(" Name: %s\n", plugin->getTitle());
|
||||||
|
print_srvconsole(" Version: %s\n", plugin->getVersion());
|
||||||
|
print_srvconsole(" Author: %s\n", plugin->getAuthor());
|
||||||
|
|
||||||
|
auto url = plugin->getUrl();
|
||||||
|
if (url[0])
|
||||||
|
{
|
||||||
|
print_srvconsole(" URL: %s\n", url);
|
||||||
|
}
|
||||||
|
|
||||||
|
auto description = plugin->getDescription();
|
||||||
|
if (description[0])
|
||||||
|
{
|
||||||
|
print_srvconsole(" Description: %s\n", description);
|
||||||
|
}
|
||||||
|
|
||||||
|
print_srvconsole(" Filename: %s\n", plugin->getName());
|
||||||
|
print_srvconsole(" Status: %s\n", plugin->getStatus());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print_srvconsole("Plugin index %i not found.\n", id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (!strcmp(cmd, "pause") && CMD_ARGC() > 2)
|
else if (!strcmp(cmd, "pause") && CMD_ARGC() > 2)
|
||||||
{
|
{
|
||||||
const char* sPlugin = CMD_ARGV(2);
|
const char* sPlugin = CMD_ARGV(2);
|
||||||
@ -244,6 +291,7 @@ void amx_command()
|
|||||||
print_srvconsole(" version - display amxx version info\n");
|
print_srvconsole(" version - display amxx version info\n");
|
||||||
print_srvconsole(" gpl - print the license\n");
|
print_srvconsole(" gpl - print the license\n");
|
||||||
print_srvconsole(" plugins [ criteria ] - list plugins currently loaded or ones matching given search criteria\n");
|
print_srvconsole(" plugins [ criteria ] - list plugins currently loaded or ones matching given search criteria\n");
|
||||||
|
print_srvconsole(" plugin [ id ] - information about a plugin\n");
|
||||||
print_srvconsole(" modules - list modules currently loaded\n");
|
print_srvconsole(" modules - list modules currently loaded\n");
|
||||||
print_srvconsole(" cvars [ plugin ] [ index ] - list cvars handled by amxx or show information about a cvar if index is provided\n");
|
print_srvconsole(" cvars [ plugin ] [ index ] - list cvars handled by amxx or show information about a cvar if index is provided\n");
|
||||||
print_srvconsole(" cmds [ plugin ] - list commands registered by plugins\n");
|
print_srvconsole(" cmds [ plugin ] - list commands registered by plugins\n");
|
||||||
|
@ -221,11 +221,11 @@ void UTIL_HudMessage(edict_t *pEntity, const hudtextparms_t &textparms, const ch
|
|||||||
WRITE_BYTE(textparms.r1);
|
WRITE_BYTE(textparms.r1);
|
||||||
WRITE_BYTE(textparms.g1);
|
WRITE_BYTE(textparms.g1);
|
||||||
WRITE_BYTE(textparms.b1);
|
WRITE_BYTE(textparms.b1);
|
||||||
WRITE_BYTE(textparms.a1);
|
WRITE_BYTE(0);
|
||||||
WRITE_BYTE(textparms.r2);
|
WRITE_BYTE(255);
|
||||||
WRITE_BYTE(textparms.g2);
|
WRITE_BYTE(255);
|
||||||
WRITE_BYTE(textparms.b2);
|
WRITE_BYTE(250);
|
||||||
WRITE_BYTE(textparms.a2);
|
WRITE_BYTE(0);
|
||||||
WRITE_SHORT(FixedUnsigned16(textparms.fadeinTime, (1<<8)));
|
WRITE_SHORT(FixedUnsigned16(textparms.fadeinTime, (1<<8)));
|
||||||
WRITE_SHORT(FixedUnsigned16(textparms.fadeoutTime, (1<<8)));
|
WRITE_SHORT(FixedUnsigned16(textparms.fadeoutTime, (1<<8)));
|
||||||
WRITE_SHORT(FixedUnsigned16(textparms.holdTime, (1<<8)));
|
WRITE_SHORT(FixedUnsigned16(textparms.holdTime, (1<<8)));
|
||||||
|
@ -29,4 +29,4 @@ build_script:
|
|||||||
- mkdir build
|
- mkdir build
|
||||||
- cd build
|
- cd build
|
||||||
- c:\python27\python ../configure.py --enable-optimize --nasm="C:\nasm\nasm-2.13.03\nasm.exe"
|
- c:\python27\python ../configure.py --enable-optimize --nasm="C:\nasm\nasm-2.13.03\nasm.exe"
|
||||||
- c:\python27\scripts\ambuild
|
- ambuild
|
||||||
|
@ -359,6 +359,7 @@ void show_help()
|
|||||||
printf("\t-o<name> set base name of output file\n");
|
printf("\t-o<name> set base name of output file\n");
|
||||||
printf("\t-p<name> set name of \"prefix\" file\n");
|
printf("\t-p<name> set name of \"prefix\" file\n");
|
||||||
printf("\t-r[name] write cross reference report to console or to specified file\n");
|
printf("\t-r[name] write cross reference report to console or to specified file\n");
|
||||||
|
printf("\t-sui[+/-] show stack usage info\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(__linux__) || defined(__APPLE__)
|
#if defined(__linux__) || defined(__APPLE__)
|
||||||
|
@ -54,7 +54,7 @@
|
|||||||
#define CTRL_CHAR '^' /* default control character */
|
#define CTRL_CHAR '^' /* default control character */
|
||||||
#define sCHARBITS 8 /* size of a packed character */
|
#define sCHARBITS 8 /* size of a packed character */
|
||||||
|
|
||||||
#define sDIMEN_MAX 3 /* maximum number of array dimensions */
|
#define sDIMEN_MAX 4 /* maximum number of array dimensions */
|
||||||
#define sLINEMAX 4095 /* input line length (in characters) */
|
#define sLINEMAX 4095 /* input line length (in characters) */
|
||||||
#define sCOMP_STACK 32 /* maximum nesting of #if .. #endif sections */
|
#define sCOMP_STACK 32 /* maximum nesting of #if .. #endif sections */
|
||||||
#define sDEF_LITMAX 500 /* initial size of the literal pool, in "cells" */
|
#define sDEF_LITMAX 500 /* initial size of the literal pool, in "cells" */
|
||||||
@ -280,6 +280,12 @@ typedef struct s_stringpair {
|
|||||||
char *documentation;
|
char *documentation;
|
||||||
} stringpair;
|
} stringpair;
|
||||||
|
|
||||||
|
typedef struct s_valuepair {
|
||||||
|
struct s_valuepair *next;
|
||||||
|
long first;
|
||||||
|
long second;
|
||||||
|
} valuepair;
|
||||||
|
|
||||||
/* macros for code generation */
|
/* macros for code generation */
|
||||||
#define opcodes(n) ((n)*sizeof(cell)) /* opcode size */
|
#define opcodes(n) ((n)*sizeof(cell)) /* opcode size */
|
||||||
#define opargs(n) ((n)*sizeof(cell)) /* size of typical argument */
|
#define opargs(n) ((n)*sizeof(cell)) /* size of typical argument */
|
||||||
@ -700,6 +706,9 @@ SC_FUNC void delete_docstringtable(void);
|
|||||||
SC_FUNC stringlist *insert_autolist(char *string);
|
SC_FUNC stringlist *insert_autolist(char *string);
|
||||||
SC_FUNC char *get_autolist(int index);
|
SC_FUNC char *get_autolist(int index);
|
||||||
SC_FUNC void delete_autolisttable(void);
|
SC_FUNC void delete_autolisttable(void);
|
||||||
|
SC_FUNC valuepair *push_heaplist(long first, long second);
|
||||||
|
SC_FUNC int popfront_heaplist(long *first, long *second);
|
||||||
|
SC_FUNC void delete_heaplisttable(void);
|
||||||
SC_FUNC stringlist *insert_dbgfile(const char *filename);
|
SC_FUNC stringlist *insert_dbgfile(const char *filename);
|
||||||
SC_FUNC stringlist *insert_dbgline(int linenr);
|
SC_FUNC stringlist *insert_dbgline(int linenr);
|
||||||
SC_FUNC stringlist *insert_dbgsymbol(symbol *sym);
|
SC_FUNC stringlist *insert_dbgsymbol(symbol *sym);
|
||||||
@ -803,6 +812,7 @@ SC_VDECL int rational_digits; /* number of fractional digits */
|
|||||||
SC_VDECL int sc_allowproccall;/* allow/detect tagnames in lex() */
|
SC_VDECL int sc_allowproccall;/* allow/detect tagnames in lex() */
|
||||||
SC_VDECL char *pc_deprecate; /* if non-NULL, mark next declaration as deprecated */
|
SC_VDECL char *pc_deprecate; /* if non-NULL, mark next declaration as deprecated */
|
||||||
SC_VDECL int sc_warnings_are_errors;
|
SC_VDECL int sc_warnings_are_errors;
|
||||||
|
SC_VDECL int sc_stkusageinfo; /* show stack usage info? */
|
||||||
|
|
||||||
SC_VDECL constvalue sc_automaton_tab; /* automaton table */
|
SC_VDECL constvalue sc_automaton_tab; /* automaton table */
|
||||||
SC_VDECL constvalue sc_state_tab; /* state table */
|
SC_VDECL constvalue sc_state_tab; /* state table */
|
||||||
|
@ -628,6 +628,7 @@ int pc_compile(int argc, char *argv[])
|
|||||||
/* reset "defined" flag of all functions and global variables */
|
/* reset "defined" flag of all functions and global variables */
|
||||||
reduce_referrers(&glbtab);
|
reduce_referrers(&glbtab);
|
||||||
delete_symbols(&glbtab,0,TRUE,FALSE);
|
delete_symbols(&glbtab,0,TRUE,FALSE);
|
||||||
|
delete_heaplisttable();
|
||||||
#if !defined NO_DEFINE
|
#if !defined NO_DEFINE
|
||||||
delete_substtable();
|
delete_substtable();
|
||||||
inst_datetime_defines();
|
inst_datetime_defines();
|
||||||
@ -755,14 +756,55 @@ cleanup:
|
|||||||
|
|
||||||
#if !defined SC_LIGHT
|
#if !defined SC_LIGHT
|
||||||
if (errnum==0 && strlen(errfname)==0) {
|
if (errnum==0 && strlen(errfname)==0) {
|
||||||
int flag_exceed=0;
|
int recursion = 0, flag_exceed = 0;
|
||||||
if (sc_amxlimit > 0 && (long)(hdrsize+code_idx+glb_declared*sizeof(cell)+sc_stksize*sizeof(cell)) >= sc_amxlimit)
|
long stacksize = 0L;
|
||||||
flag_exceed=1;
|
unsigned long maxStackUsage = 0L;
|
||||||
if ((sc_debug & sSYMBOLIC)!=0 || verbosity>=2 || flag_exceed) {
|
unsigned long dynamicStackSizeLimit = (long)sc_stksize * sizeof(cell);
|
||||||
|
|
||||||
|
if (sc_amxlimit > 0) {
|
||||||
|
long totalsize = hdrsize + code_idx + glb_declared * sizeof(cell) + dynamicStackSizeLimit;
|
||||||
|
if (totalsize >= sc_amxlimit)
|
||||||
|
flag_exceed = 1;
|
||||||
|
} /* if */
|
||||||
|
|
||||||
|
/* if */
|
||||||
|
if(sc_stkusageinfo) {
|
||||||
|
stacksize = max_stacksize(&glbtab, &recursion);
|
||||||
|
maxStackUsage = stacksize * sizeof(cell);
|
||||||
|
|
||||||
|
if (recursion) {
|
||||||
|
pc_printf("Note: estimated max. usage: unknown, due to recursion\n");
|
||||||
|
} /* if */
|
||||||
|
else if (maxStackUsage >= dynamicStackSizeLimit) {
|
||||||
|
pc_printf("Note: estimated max. stack usage is %ld cells %ld bytes, limit %ld bytes\n", stacksize, maxStackUsage, dynamicStackSizeLimit);
|
||||||
|
}
|
||||||
|
} /* if */
|
||||||
|
|
||||||
|
/* if */
|
||||||
|
/* Note: Seems like `stacksize + 32 >= (long)sc_stksize` condition in original compiler invented to show stack usage warning if it's exceeded, that's why it's defined */
|
||||||
|
if ((sc_debug & sSYMBOLIC)!=0 || verbosity>=2 || /* stacksize + 32 >= (long)sc_stksize || */ flag_exceed) {
|
||||||
pc_printf("Header size: %8ld bytes\n", (long)hdrsize);
|
pc_printf("Header size: %8ld bytes\n", (long)hdrsize);
|
||||||
pc_printf("Code size: %8ld bytes\n", (long)code_idx);
|
pc_printf("Code size: %8ld bytes\n", (long)code_idx);
|
||||||
pc_printf("Data size: %8ld bytes\n", (long)glb_declared*sizeof(cell));
|
pc_printf("Data size: %8ld bytes\n", (long)glb_declared*sizeof(cell));
|
||||||
pc_printf("Stack/heap size: %8ld bytes\n", (long)sc_stksize*sizeof(cell));
|
pc_printf("Stack/heap size: %8ld bytes", dynamicStackSizeLimit);
|
||||||
|
|
||||||
|
if(sc_stkusageinfo) {
|
||||||
|
pc_printf(" | estimated max. usage");
|
||||||
|
|
||||||
|
/* if */
|
||||||
|
if (recursion) {
|
||||||
|
pc_printf(": unknown, due to recursion\n");
|
||||||
|
}
|
||||||
|
/* else if ((pc_memflags & suSLEEP_INSTR) != 0)
|
||||||
|
pc_printf(": unknown, due to the \"sleep\" instruction\n");*/
|
||||||
|
else {
|
||||||
|
pc_printf("=%ld cells (%ld bytes)\n", stacksize, maxStackUsage);
|
||||||
|
} /* if */
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
pc_printf("\n");
|
||||||
|
} /* if */
|
||||||
|
|
||||||
pc_printf("Total requirements:%8ld bytes\n", (long)hdrsize+(long)code_idx+(long)glb_declared*sizeof(cell)+(long)sc_stksize*sizeof(cell));
|
pc_printf("Total requirements:%8ld bytes\n", (long)hdrsize+(long)code_idx+(long)glb_declared*sizeof(cell)+(long)sc_stksize*sizeof(cell));
|
||||||
} /* if */
|
} /* if */
|
||||||
if (flag_exceed)
|
if (flag_exceed)
|
||||||
@ -805,6 +847,7 @@ cleanup:
|
|||||||
free(sc_documentation);
|
free(sc_documentation);
|
||||||
#endif
|
#endif
|
||||||
delete_autolisttable();
|
delete_autolisttable();
|
||||||
|
delete_heaplisttable();
|
||||||
if (errnum!=0) {
|
if (errnum!=0) {
|
||||||
if (strlen(errfname)==0)
|
if (strlen(errfname)==0)
|
||||||
pc_printf("\n%d Error%s.\n",errnum,(errnum>1) ? "s" : "");
|
pc_printf("\n%d Error%s.\n",errnum,(errnum>1) ? "s" : "");
|
||||||
@ -960,6 +1003,8 @@ static void initglobals(void)
|
|||||||
sc_documentation=NULL;
|
sc_documentation=NULL;
|
||||||
sc_makereport=FALSE; /* do not generate a cross-reference report */
|
sc_makereport=FALSE; /* do not generate a cross-reference report */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
sc_stkusageinfo=FALSE;/* stack usage info disabled by default */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* set_extension
|
/* set_extension
|
||||||
@ -1022,6 +1067,8 @@ static void parseoptions(int argc,char **argv,char *oname,char *ename,char *pnam
|
|||||||
const char *ptr;
|
const char *ptr;
|
||||||
int arg,i,isoption;
|
int arg,i,isoption;
|
||||||
|
|
||||||
|
static const char stackusageinfo[4] = { 's', 'u', 'i', '\0' };
|
||||||
|
|
||||||
for (arg=1; arg<argc; arg++) {
|
for (arg=1; arg<argc; arg++) {
|
||||||
#if DIRSEP_CHAR=='/'
|
#if DIRSEP_CHAR=='/'
|
||||||
isoption= argv[arg][0]=='-';
|
isoption= argv[arg][0]=='-';
|
||||||
@ -1150,9 +1197,18 @@ static void parseoptions(int argc,char **argv,char *oname,char *ename,char *pnam
|
|||||||
else
|
else
|
||||||
about();
|
about();
|
||||||
break;
|
break;
|
||||||
case 's':
|
case 's': {
|
||||||
|
if(strlen(ptr) >= (sizeof(stackusageinfo) - 1)) {
|
||||||
|
if(*(ptr+1) == stackusageinfo[1] && *(ptr+2) == stackusageinfo[2]) {
|
||||||
|
ptr += 2;
|
||||||
|
sc_stkusageinfo = toggle_option(ptr, sc_stkusageinfo);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
skipinput=atoi(option_value(ptr));
|
skipinput=atoi(option_value(ptr));
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case 't':
|
case 't':
|
||||||
i=atoi(option_value(ptr));
|
i=atoi(option_value(ptr));
|
||||||
if (i>0)
|
if (i>0)
|
||||||
@ -1432,6 +1488,7 @@ static void about(void)
|
|||||||
#endif
|
#endif
|
||||||
pc_printf(" -S<num> stack/heap size in cells (default=%d)\n",(int)sc_stksize);
|
pc_printf(" -S<num> stack/heap size in cells (default=%d)\n",(int)sc_stksize);
|
||||||
pc_printf(" -s<num> skip lines from the input file\n");
|
pc_printf(" -s<num> skip lines from the input file\n");
|
||||||
|
pc_printf(" -sui[+/-] show stack usage info\n");
|
||||||
pc_printf(" -t<num> TAB indent size (in character positions, default=%d)\n",sc_tabsize);
|
pc_printf(" -t<num> TAB indent size (in character positions, default=%d)\n",sc_tabsize);
|
||||||
pc_printf(" -v<num> verbosity level; 0=quiet, 1=normal, 2=verbose (default=%d)\n",verbosity);
|
pc_printf(" -v<num> verbosity level; 0=quiet, 1=normal, 2=verbose (default=%d)\n",verbosity);
|
||||||
pc_printf(" -w<num> disable a specific warning by its number\n");
|
pc_printf(" -w<num> disable a specific warning by its number\n");
|
||||||
@ -2170,26 +2227,24 @@ static cell calc_arraysize(int dim[],int numdim,int cur)
|
|||||||
return dim[cur]+(dim[cur]*calc_arraysize(dim,numdim,cur+1));
|
return dim[cur]+(dim[cur]*calc_arraysize(dim,numdim,cur+1));
|
||||||
}
|
}
|
||||||
|
|
||||||
static cell adjust_indirectiontables(int dim[],int numdim,int cur,cell increment,
|
static void adjust_indirectiontables(int dim[],int numdim,int startlit,
|
||||||
int startlit,constvalue *lastdim,int *skipdim)
|
constvalue *lastdim,int *skipdim)
|
||||||
{
|
{
|
||||||
static int base;
|
static int base;
|
||||||
int d;
|
int cur;
|
||||||
|
int i,d;
|
||||||
cell accum;
|
cell accum;
|
||||||
|
cell size;
|
||||||
|
|
||||||
assert(cur>=0 && cur<numdim);
|
assert(startlit==-1 || startlit>=0 && startlit<=litidx);
|
||||||
assert(increment>=0);
|
|
||||||
assert(cur>0 && startlit==-1 || startlit>=0 && startlit<=litidx);
|
|
||||||
if (cur==0)
|
|
||||||
base=startlit;
|
base=startlit;
|
||||||
if (cur==numdim-1)
|
size=1;
|
||||||
return 0;
|
for (cur=0; cur<numdim-1; cur++) {
|
||||||
/* 2 or more dimensions left, fill in an indirection vector */
|
/* 2 or more dimensions left, fill in an indirection vector */
|
||||||
assert(dim[cur]>0);
|
|
||||||
if (dim[cur+1]>0) {
|
if (dim[cur+1]>0) {
|
||||||
|
for (i=0; i<size; i++)
|
||||||
for (d=0; d<dim[cur]; d++)
|
for (d=0; d<dim[cur]; d++)
|
||||||
litq[base++]=(dim[cur]+d*(dim[cur+1]-1)+increment) * sizeof(cell);
|
litq[base++]=(size*dim[cur]+(dim[cur+1]-1)*(dim[cur]*i+d)) * sizeof(cell);
|
||||||
accum=dim[cur]*(dim[cur+1]-1);
|
|
||||||
} else {
|
} else {
|
||||||
/* final dimension is variable length */
|
/* final dimension is variable length */
|
||||||
constvalue *ld;
|
constvalue *ld;
|
||||||
@ -2197,6 +2252,7 @@ static int base;
|
|||||||
assert(lastdim!=NULL);
|
assert(lastdim!=NULL);
|
||||||
assert(skipdim!=NULL);
|
assert(skipdim!=NULL);
|
||||||
accum=0;
|
accum=0;
|
||||||
|
for (i=0; i<size; i++) {
|
||||||
/* skip the final dimension sizes for all earlier major dimensions */
|
/* skip the final dimension sizes for all earlier major dimensions */
|
||||||
for (d=0,ld=lastdim->next; d<*skipdim; d++,ld=ld->next) {
|
for (d=0,ld=lastdim->next; d<*skipdim; d++,ld=ld->next) {
|
||||||
assert(ld!=NULL);
|
assert(ld!=NULL);
|
||||||
@ -2204,19 +2260,15 @@ static int base;
|
|||||||
for (d=0; d<dim[cur]; d++) {
|
for (d=0; d<dim[cur]; d++) {
|
||||||
assert(ld!=NULL);
|
assert(ld!=NULL);
|
||||||
assert(strtol(ld->name,NULL,16)==d);
|
assert(strtol(ld->name,NULL,16)==d);
|
||||||
litq[base++]=(dim[cur]+accum+increment) * sizeof(cell);
|
litq[base++]=(size*dim[cur]+accum) * sizeof(cell);
|
||||||
accum+=ld->value-1;
|
accum+=ld->value-1;
|
||||||
*skipdim+=1;
|
*skipdim+=1;
|
||||||
ld=ld->next;
|
ld=ld->next;
|
||||||
} /* for */
|
} /* for */
|
||||||
|
} /* for */
|
||||||
} /* if */
|
} /* if */
|
||||||
/* create the indirection tables for the lower level */
|
size*=dim[cur];
|
||||||
if (cur+2<numdim) { /* are there at least 2 dimensions below this one? */
|
} /* for */
|
||||||
increment+=(dim[cur]-1)*dim[cur+1]; /* this many indirection tables follow */
|
|
||||||
for (d=0; d<dim[cur]; d++)
|
|
||||||
increment+=adjust_indirectiontables(dim,numdim,cur+1,increment,-1,lastdim,skipdim);
|
|
||||||
} /* if */
|
|
||||||
return accum;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* initials
|
/* initials
|
||||||
@ -2274,7 +2326,7 @@ static void initials2(int ident,int tag,cell *size,int dim[],int numdim,
|
|||||||
for (tablesize=calc_arraysize(dim,numdim-1,0); tablesize>0; tablesize--)
|
for (tablesize=calc_arraysize(dim,numdim-1,0); tablesize>0; tablesize--)
|
||||||
litadd(0);
|
litadd(0);
|
||||||
if (dim[numdim-1]!=0) /* error 9 has already been given */
|
if (dim[numdim-1]!=0) /* error 9 has already been given */
|
||||||
adjust_indirectiontables(dim,numdim,0,0,curlit,NULL,NULL);
|
adjust_indirectiontables(dim,numdim,curlit,NULL,NULL);
|
||||||
} /* if */
|
} /* if */
|
||||||
return;
|
return;
|
||||||
} /* if */
|
} /* if */
|
||||||
@ -2340,7 +2392,7 @@ static void initials2(int ident,int tag,cell *size,int dim[],int numdim,
|
|||||||
* of the array and we can properly adjust the indirection vectors
|
* of the array and we can properly adjust the indirection vectors
|
||||||
*/
|
*/
|
||||||
if (err==0)
|
if (err==0)
|
||||||
adjust_indirectiontables(dim,numdim,0,0,curlit,&lastdim,&skipdim);
|
adjust_indirectiontables(dim,numdim,curlit,&lastdim,&skipdim);
|
||||||
delete_consttable(&lastdim); /* clear list of minor dimension sizes */
|
delete_consttable(&lastdim); /* clear list of minor dimension sizes */
|
||||||
} /* if */
|
} /* if */
|
||||||
} /* if */
|
} /* if */
|
||||||
@ -5455,6 +5507,16 @@ static void doreturn(void)
|
|||||||
/* nothing */;
|
/* nothing */;
|
||||||
sub=addvariable(curfunc->name,(argcount+3)*sizeof(cell),iREFARRAY,sGLOBAL,curfunc->tag,dim,numdim,idxtag);
|
sub=addvariable(curfunc->name,(argcount+3)*sizeof(cell),iREFARRAY,sGLOBAL,curfunc->tag,dim,numdim,idxtag);
|
||||||
sub->parent=curfunc;
|
sub->parent=curfunc;
|
||||||
|
/* Function that returns array can be used before it is defined, so at
|
||||||
|
* the call point (if it is before definition) we may not know if this
|
||||||
|
* function returns array and what is its size (for example inside the
|
||||||
|
* conditional operator), so we don't know how many cells on the heap
|
||||||
|
* we need. Calculating heap consumption is required for the fix of
|
||||||
|
* incorrect heap deallocation on conditional operator. That's why we
|
||||||
|
* need an additional pass.
|
||||||
|
*/
|
||||||
|
if ((curfunc->usage & uREAD)!=0)
|
||||||
|
sc_reparse=TRUE;
|
||||||
} /* if */
|
} /* if */
|
||||||
/* get the hidden parameter, copy the array (the array is on the heap;
|
/* get the hidden parameter, copy the array (the array is on the heap;
|
||||||
* it stays on the heap for the moment, and it is removed -usually- at
|
* it stays on the heap for the moment, and it is removed -usually- at
|
||||||
@ -5727,3 +5789,137 @@ static int *readwhile(void)
|
|||||||
return (wqptr-wqSIZE);
|
return (wqptr-wqSIZE);
|
||||||
} /* if */
|
} /* if */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !defined SC_LIGHT
|
||||||
|
static long max_stacksize_recurse(symbol** sourcesym, symbol* sym, symbol** rsourcesym, long basesize, int* pubfuncparams, int* recursion)
|
||||||
|
{
|
||||||
|
long size, maxsize;
|
||||||
|
int i, stkpos;
|
||||||
|
|
||||||
|
assert(sourcesym != NULL);
|
||||||
|
assert(sym != NULL);
|
||||||
|
assert(sym->ident == iFUNCTN);
|
||||||
|
assert((sym->usage & uNATIVE) == 0);
|
||||||
|
assert(recursion != NULL);
|
||||||
|
|
||||||
|
maxsize = sym->x.stacksize;
|
||||||
|
for (i = 0; i < sym->numrefers; i++) {
|
||||||
|
if (sym->refer[i] != NULL) {
|
||||||
|
assert(sym->refer[i]->ident == iFUNCTN);
|
||||||
|
assert((sym->refer[i]->usage & uNATIVE) == 0); /* a native function cannot refer to a user-function */
|
||||||
|
*(rsourcesym) = sym;
|
||||||
|
*(rsourcesym + 1) = NULL;
|
||||||
|
for (stkpos = 0; sourcesym[stkpos] != NULL; stkpos++) {
|
||||||
|
if (sym->refer[i] == sourcesym[stkpos]) { /* recursion detection */
|
||||||
|
*recursion = 1;
|
||||||
|
goto break_recursion; /* recursion was detected, quit loop */
|
||||||
|
} /* if */
|
||||||
|
} /* for */
|
||||||
|
/* add this symbol to the stack */
|
||||||
|
sourcesym[stkpos] = sym;
|
||||||
|
sourcesym[stkpos + 1] = NULL;
|
||||||
|
/* check size of callee */
|
||||||
|
size = max_stacksize_recurse(sourcesym, sym->refer[i], rsourcesym + 1, sym->x.stacksize, pubfuncparams, recursion);
|
||||||
|
if (maxsize < size)
|
||||||
|
maxsize = size;
|
||||||
|
/* remove this symbol from the stack */
|
||||||
|
sourcesym[stkpos] = NULL;
|
||||||
|
} /* if */
|
||||||
|
} /* for */
|
||||||
|
break_recursion:
|
||||||
|
|
||||||
|
if ((sym->usage & uPUBLIC) != 0) {
|
||||||
|
/* Find out how many parameters a public function has, then see if this
|
||||||
|
* is bigger than some maximum
|
||||||
|
*/
|
||||||
|
arginfo* arg = sym->dim.arglist;
|
||||||
|
int count = 0;
|
||||||
|
assert(arg != 0);
|
||||||
|
while (arg->ident != 0) {
|
||||||
|
count++;
|
||||||
|
arg++;
|
||||||
|
} /* while */
|
||||||
|
assert(pubfuncparams != 0);
|
||||||
|
if (count > * pubfuncparams)
|
||||||
|
*pubfuncparams = count;
|
||||||
|
} /* if */
|
||||||
|
|
||||||
|
return maxsize + basesize;
|
||||||
|
}
|
||||||
|
|
||||||
|
static long max_stacksize(symbol* root, int* recursion)
|
||||||
|
{
|
||||||
|
/* Loop over all non-native functions. For each function, loop
|
||||||
|
* over all of its referrers, accumulating the stack requirements.
|
||||||
|
* Detect (indirect) recursion with a "mark-and-sweep" algorithm.
|
||||||
|
* I (mis-)use the "compound" field of the symbol structure for
|
||||||
|
* the marker, as this field is unused for functions.
|
||||||
|
*
|
||||||
|
* Note that the stack is shared with the heap. A host application
|
||||||
|
* may "eat" cells from the heap as well, through amx_Allot(). The
|
||||||
|
* stack requirements are thus only an estimate.
|
||||||
|
*/
|
||||||
|
long size, maxsize;
|
||||||
|
int maxparams, numfunctions;
|
||||||
|
symbol* sym;
|
||||||
|
symbol** symstack, ** rsymstack;
|
||||||
|
|
||||||
|
assert(root != NULL);
|
||||||
|
assert(recursion != NULL);
|
||||||
|
/* count number of functions (for allocating the stack for recursion detection) */
|
||||||
|
numfunctions = 0;
|
||||||
|
for (sym = root->next; sym != NULL; sym = sym->next) {
|
||||||
|
if (sym->ident == iFUNCTN) {
|
||||||
|
assert(sym->compound == 0);
|
||||||
|
if ((sym->usage & uNATIVE) == 0)
|
||||||
|
numfunctions++;
|
||||||
|
} /* if */
|
||||||
|
} /* if */
|
||||||
|
/* allocate function symbol stack */
|
||||||
|
symstack = (symbol**)malloc((numfunctions + 1) * sizeof(symbol*));
|
||||||
|
rsymstack = (symbol**)malloc((numfunctions + 1) * sizeof(symbol*));
|
||||||
|
if (symstack == NULL || rsymstack == NULL)
|
||||||
|
error(103); /* insufficient memory (fatal error) */
|
||||||
|
memset(symstack, 0, (numfunctions + 1) * sizeof(symbol*));
|
||||||
|
memset(rsymstack, 0, (numfunctions + 1) * sizeof(symbol*));
|
||||||
|
|
||||||
|
maxsize = 0;
|
||||||
|
maxparams = 0;
|
||||||
|
*recursion = 0; /* assume no recursion */
|
||||||
|
for (sym = root->next; sym != NULL; sym = sym->next) {
|
||||||
|
int recursion_detected;
|
||||||
|
/* drop out if this is not a user-implemented function */
|
||||||
|
if (sym->ident != iFUNCTN || (sym->usage & uNATIVE) != 0)
|
||||||
|
continue;
|
||||||
|
/* accumulate stack size for this symbol */
|
||||||
|
symstack[0] = sym;
|
||||||
|
assert(symstack[1] == NULL);
|
||||||
|
recursion_detected = 0;
|
||||||
|
size = max_stacksize_recurse(symstack, sym, rsymstack, 0L, &maxparams, &recursion_detected);
|
||||||
|
if (recursion_detected) {
|
||||||
|
if (rsymstack[1] == NULL) {
|
||||||
|
pc_printf("recursion detected: function %s directly calls itself\n", sym->name);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
int i;
|
||||||
|
pc_printf("recursion detected: function %s indirectly calls itself:\n", sym->name);
|
||||||
|
pc_printf("%s ", sym->name);
|
||||||
|
for (i = 1; rsymstack[i] != NULL; i++) {
|
||||||
|
pc_printf("<- %s ", rsymstack[i]->name);
|
||||||
|
}
|
||||||
|
pc_printf("<- %s\n", sym->name);
|
||||||
|
}
|
||||||
|
*recursion = recursion_detected;
|
||||||
|
}
|
||||||
|
assert(size >= 0);
|
||||||
|
if (maxsize < size)
|
||||||
|
maxsize = size;
|
||||||
|
} /* for */
|
||||||
|
|
||||||
|
free((void*)symstack);
|
||||||
|
free((void*)rsymstack);
|
||||||
|
maxsize++; /* +1 because a zero cell is always pushed on top
|
||||||
|
* of the stack to catch stack overwrites */
|
||||||
|
return maxsize + (maxparams + 1);/* +1 because # of parameters is always pushed on entry */
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
@ -1190,6 +1190,8 @@ static int command(void)
|
|||||||
if (comma)
|
if (comma)
|
||||||
lptr++;
|
lptr++;
|
||||||
} while (comma);
|
} while (comma);
|
||||||
|
} else if (strcmp(str, "showstackusageinfo")==0) {
|
||||||
|
sc_stkusageinfo=TRUE;
|
||||||
} else {
|
} else {
|
||||||
error(207); /* unknown #pragma */
|
error(207); /* unknown #pragma */
|
||||||
} /* if */
|
} /* if */
|
||||||
|
63
compiler/libpc300/sc3.c
Executable file → Normal file
63
compiler/libpc300/sc3.c
Executable file → Normal file
@ -1010,38 +1010,60 @@ static int hier13(value *lval)
|
|||||||
{
|
{
|
||||||
int lvalue=plnge1(hier12,lval);
|
int lvalue=plnge1(hier12,lval);
|
||||||
if (matchtoken('?')) {
|
if (matchtoken('?')) {
|
||||||
|
int locheap=decl_heap; /* save current heap delta */
|
||||||
|
long heap1,heap2; /* max. heap delta either branch */
|
||||||
|
valuepair *heaplist_node;
|
||||||
int flab1=getlabel();
|
int flab1=getlabel();
|
||||||
int flab2=getlabel();
|
int flab2=getlabel();
|
||||||
value lval2 = {0};
|
value lval2 = {0};
|
||||||
int array1,array2;
|
int array1,array2;
|
||||||
|
|
||||||
int orig_heap=decl_heap;
|
|
||||||
int diff1=0,diff2=0;
|
|
||||||
if (lvalue) {
|
if (lvalue) {
|
||||||
rvalue(lval);
|
rvalue(lval);
|
||||||
} else if (lval->ident==iCONSTEXPR) {
|
} else if (lval->ident==iCONSTEXPR) {
|
||||||
ldconst(lval->constval,sPRI);
|
ldconst(lval->constval,sPRI);
|
||||||
error(lval->constval ? 206 : 205); /* redundant test */
|
error(lval->constval ? 206 : 205); /* redundant test */
|
||||||
} /* if */
|
} /* if */
|
||||||
|
if (sc_status==statFIRST) {
|
||||||
|
/* We should push a new node right now otherwise we will pop it in the
|
||||||
|
* wrong order on the write stage.
|
||||||
|
*/
|
||||||
|
heaplist_node=push_heaplist(0,0); /* save the pointer to write the actual data later */
|
||||||
|
} else if (sc_status==statWRITE || sc_status==statSKIP) {
|
||||||
|
#if !defined NDEBUG
|
||||||
|
int result=
|
||||||
|
#endif
|
||||||
|
popfront_heaplist(&heap1,&heap2);
|
||||||
|
assert(result); /* pop off equally many items than were pushed */
|
||||||
|
} /* if */
|
||||||
jmp_eq0(flab1); /* go to second expression if primary register==0 */
|
jmp_eq0(flab1); /* go to second expression if primary register==0 */
|
||||||
PUSHSTK_I(sc_allowtags);
|
PUSHSTK_I(sc_allowtags);
|
||||||
sc_allowtags=FALSE; /* do not allow tagnames here (colon is a special token) */
|
sc_allowtags=FALSE; /* do not allow tagnames here (colon is a special token) */
|
||||||
|
if (sc_status==statWRITE) {
|
||||||
|
modheap(heap1*sizeof(cell));
|
||||||
|
decl_heap+=heap1; /* equilibrate the heap (see comment below) */
|
||||||
|
} /* if */
|
||||||
if (hier13(lval))
|
if (hier13(lval))
|
||||||
rvalue(lval);
|
rvalue(lval);
|
||||||
if (lval->ident==iCONSTEXPR) /* load constant here */
|
if (lval->ident==iCONSTEXPR) /* load constant here */
|
||||||
ldconst(lval->constval,sPRI);
|
ldconst(lval->constval,sPRI);
|
||||||
sc_allowtags=(short)POPSTK_I(); /* restore */
|
sc_allowtags=(short)POPSTK_I(); /* restore */
|
||||||
|
heap1=decl_heap-locheap; /* save heap space used in "true" branch */
|
||||||
|
assert(heap1>=0);
|
||||||
|
decl_heap=locheap; /* restore heap delta */
|
||||||
jumplabel(flab2);
|
jumplabel(flab2);
|
||||||
setlabel(flab1);
|
setlabel(flab1);
|
||||||
if (orig_heap!=decl_heap) {
|
|
||||||
diff1=abs(decl_heap-orig_heap);
|
|
||||||
decl_heap=orig_heap;
|
|
||||||
}
|
|
||||||
needtoken(':');
|
needtoken(':');
|
||||||
|
if (sc_status==statWRITE) {
|
||||||
|
modheap(heap2*sizeof(cell));
|
||||||
|
decl_heap+=heap2; /* equilibrate the heap (see comment below) */
|
||||||
|
} /* if */
|
||||||
if (hier13(&lval2))
|
if (hier13(&lval2))
|
||||||
rvalue(&lval2);
|
rvalue(&lval2);
|
||||||
if (lval2.ident==iCONSTEXPR) /* load constant here */
|
if (lval2.ident==iCONSTEXPR) /* load constant here */
|
||||||
ldconst(lval2.constval,sPRI);
|
ldconst(lval2.constval,sPRI);
|
||||||
|
heap2=decl_heap-locheap; /* save heap space used in "false" branch */
|
||||||
|
assert(heap2>=0);
|
||||||
array1= (lval->ident==iARRAY || lval->ident==iREFARRAY);
|
array1= (lval->ident==iARRAY || lval->ident==iREFARRAY);
|
||||||
array2= (lval2.ident==iARRAY || lval2.ident==iREFARRAY);
|
array2= (lval2.ident==iARRAY || lval2.ident==iREFARRAY);
|
||||||
if (array1 && !array2) {
|
if (array1 && !array2) {
|
||||||
@ -1055,19 +1077,26 @@ static int hier13(value *lval)
|
|||||||
if (!matchtag(lval->tag,lval2.tag,FALSE))
|
if (!matchtag(lval->tag,lval2.tag,FALSE))
|
||||||
error(213); /* tagname mismatch ('true' and 'false' expressions) */
|
error(213); /* tagname mismatch ('true' and 'false' expressions) */
|
||||||
setlabel(flab2);
|
setlabel(flab2);
|
||||||
|
if (sc_status==statFIRST) {
|
||||||
|
/* Calculate the max. heap space used by either branch and save values of
|
||||||
|
* max - heap1 and max - heap2. On the second pass, we use these values
|
||||||
|
* to equilibrate the heap space used by either branch. This is needed
|
||||||
|
* because we don't know (at compile time) which branch will be taken,
|
||||||
|
* but the heap cannot be restored inside each branch because the result
|
||||||
|
* on the heap may needed by the remaining expression.
|
||||||
|
*/
|
||||||
|
int max=(heap1>heap2) ? heap1 : heap2;
|
||||||
|
heaplist_node->first=max-heap1;
|
||||||
|
heaplist_node->second=max-heap2;
|
||||||
|
decl_heap=locheap+max; /* otherwise it will contain locheap+heap2 and the
|
||||||
|
* max. heap usage will be wrong for the upper
|
||||||
|
* expression */
|
||||||
|
} /* if */
|
||||||
|
assert(sc_status!=statWRITE || heap1==heap2);
|
||||||
if (lval->ident==iARRAY)
|
if (lval->ident==iARRAY)
|
||||||
lval->ident=iREFARRAY; /* iARRAY becomes iREFARRAY */
|
lval->ident=iREFARRAY; /* iARRAY becomes iREFARRAY */
|
||||||
else if (lval->ident!=iREFARRAY)
|
else if (lval->ident!=iREFARRAY)
|
||||||
lval->ident=iEXPRESSION; /* iREFARRAY stays iREFARRAY, rest becomes iEXPRESSION */
|
lval->ident=iEXPRESSION; /* iREFARRAY stays iREFARRAY, rest becomes iEXPRESSION */
|
||||||
if (orig_heap!=decl_heap) {
|
|
||||||
diff2=abs(decl_heap-orig_heap);
|
|
||||||
decl_heap=orig_heap;
|
|
||||||
}
|
|
||||||
if (diff1==diff2) {
|
|
||||||
decl_heap+=(diff1/2);
|
|
||||||
} else {
|
|
||||||
decl_heap+=(diff1+diff2);
|
|
||||||
}
|
|
||||||
return FALSE; /* conditional expression is no lvalue */
|
return FALSE; /* conditional expression is no lvalue */
|
||||||
} else {
|
} else {
|
||||||
return lvalue;
|
return lvalue;
|
||||||
@ -2058,7 +2087,8 @@ static int nesting=0;
|
|||||||
error(35,argidx+1); /* argument type mismatch */
|
error(35,argidx+1); /* argument type mismatch */
|
||||||
/* Verify that the dimensions match with those in arg[argidx].
|
/* Verify that the dimensions match with those in arg[argidx].
|
||||||
* A literal array always has a single dimension.
|
* A literal array always has a single dimension.
|
||||||
* An iARRAYCELL parameter is also assumed to have a single dimension.
|
* An iARRAYCELL parameter is also assumed to have a single dimension,
|
||||||
|
* but its size may be >1 in case of an enumeration pseudo-array.
|
||||||
*/
|
*/
|
||||||
if (lval.sym==NULL || lval.ident==iARRAYCELL) {
|
if (lval.sym==NULL || lval.ident==iARRAYCELL) {
|
||||||
if (arg[argidx].numdim!=1) {
|
if (arg[argidx].numdim!=1) {
|
||||||
@ -2066,6 +2096,7 @@ static int nesting=0;
|
|||||||
} else if (arg[argidx].dim[0]!=0) {
|
} else if (arg[argidx].dim[0]!=0) {
|
||||||
assert(arg[argidx].dim[0]>0);
|
assert(arg[argidx].dim[0]>0);
|
||||||
if (lval.ident==iARRAYCELL) {
|
if (lval.ident==iARRAYCELL) {
|
||||||
|
if (lval.constval==0 || arg[argidx].dim[0]!=lval.constval)
|
||||||
error(47); /* array sizes must match */
|
error(47); /* array sizes must match */
|
||||||
} else {
|
} else {
|
||||||
assert(lval.constval!=0); /* literal array must have a size */
|
assert(lval.constval!=0); /* literal array must have a size */
|
||||||
|
@ -443,6 +443,52 @@ SC_FUNC void delete_autolisttable(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ----- value pair list ----------------------------------------- */
|
||||||
|
static valuepair heaplist = {NULL, 0, 0};
|
||||||
|
|
||||||
|
SC_FUNC valuepair *push_heaplist(long first, long second)
|
||||||
|
{
|
||||||
|
valuepair *cur, *last;
|
||||||
|
if ((cur=malloc(sizeof(valuepair)))==NULL)
|
||||||
|
error(103); /* insufficient memory (fatal error) */
|
||||||
|
|
||||||
|
cur->first=first;
|
||||||
|
cur->second=second;
|
||||||
|
cur->next=NULL;
|
||||||
|
|
||||||
|
for (last=&heaplist; last->next!=NULL; last=last->next)
|
||||||
|
/* nothing */;
|
||||||
|
last->next=cur;
|
||||||
|
return cur;
|
||||||
|
}
|
||||||
|
|
||||||
|
SC_FUNC int popfront_heaplist(long *first, long *second)
|
||||||
|
{
|
||||||
|
valuepair *front=heaplist.next;
|
||||||
|
if (front==NULL)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
/* copy fields */
|
||||||
|
*first=front->first;
|
||||||
|
*second=front->second;
|
||||||
|
|
||||||
|
/* unlink and free */
|
||||||
|
heaplist.next=front->next;
|
||||||
|
free(front);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
SC_FUNC void delete_heaplisttable(void)
|
||||||
|
{
|
||||||
|
valuepair *cur;
|
||||||
|
while (heaplist.next!=NULL) {
|
||||||
|
cur=heaplist.next;
|
||||||
|
heaplist.next=cur->next;
|
||||||
|
free(cur);
|
||||||
|
} /* while */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* ----- debug information --------------------------------------- */
|
/* ----- debug information --------------------------------------- */
|
||||||
|
|
||||||
static stringlist dbgstrings = {NULL, NULL};
|
static stringlist dbgstrings = {NULL, NULL};
|
||||||
|
@ -87,6 +87,7 @@ SC_VDEFINE int sc_allowproccall=0; /* allow/detect tagnames in lex() */
|
|||||||
SC_VDEFINE char *pc_deprecate = NULL;/* if non-null, mark next declaration as deprecated */
|
SC_VDEFINE char *pc_deprecate = NULL;/* if non-null, mark next declaration as deprecated */
|
||||||
SC_VDEFINE int sc_showincludes=0; /* show include files */
|
SC_VDEFINE int sc_showincludes=0; /* show include files */
|
||||||
SC_VDEFINE int sc_warnings_are_errors=0;
|
SC_VDEFINE int sc_warnings_are_errors=0;
|
||||||
|
SC_VDEFINE int sc_stkusageinfo = FALSE; /* show stack usage info? */
|
||||||
|
|
||||||
SC_VDEFINE constvalue sc_automaton_tab = { NULL, "", 0, 0}; /* automaton table */
|
SC_VDEFINE constvalue sc_automaton_tab = { NULL, "", 0, 0}; /* automaton table */
|
||||||
SC_VDEFINE constvalue sc_state_tab = { NULL, "", 0, 0}; /* state table */
|
SC_VDEFINE constvalue sc_state_tab = { NULL, "", 0, 0}; /* state table */
|
||||||
|
4719
configs/hamdata.ini
4719
configs/hamdata.ini
File diff suppressed because it is too large
Load Diff
@ -4105,4 +4105,67 @@
|
|||||||
"game" "valve"
|
"game" "valve"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Virtual Functions
|
||||||
|
//
|
||||||
|
|
||||||
|
"virtual.games/ag/offsets-common.txt"
|
||||||
|
{
|
||||||
|
"game" "ag"
|
||||||
|
}
|
||||||
|
|
||||||
|
"virtual.games/cstrike/offsets-common.txt"
|
||||||
|
{
|
||||||
|
"game" "cstrike"
|
||||||
|
"game" "czero"
|
||||||
|
}
|
||||||
|
|
||||||
|
"virtual.games/dod/offsets-common.txt"
|
||||||
|
{
|
||||||
|
"game" "dod"
|
||||||
|
}
|
||||||
|
|
||||||
|
"virtual.games/esf/offsets-common.txt"
|
||||||
|
{
|
||||||
|
"game" "esf"
|
||||||
|
}
|
||||||
|
|
||||||
|
"virtual.games/esf_openbeta/offsets-common.txt"
|
||||||
|
{
|
||||||
|
"game" "esf_openbeta"
|
||||||
|
}
|
||||||
|
|
||||||
|
"virtual.games/gearbox/offsets-common.txt"
|
||||||
|
{
|
||||||
|
"game" "gearbox"
|
||||||
|
}
|
||||||
|
|
||||||
|
"virtual.games/ns/offsets-common.txt"
|
||||||
|
{
|
||||||
|
"game" "ns"
|
||||||
|
"game" "nsp"
|
||||||
|
}
|
||||||
|
|
||||||
|
"virtual.games/svencoop/offsets-common.txt"
|
||||||
|
{
|
||||||
|
"game" "svencoop"
|
||||||
|
}
|
||||||
|
|
||||||
|
"virtual.games/tfc/offsets-common.txt"
|
||||||
|
{
|
||||||
|
"game" "tfc"
|
||||||
|
}
|
||||||
|
|
||||||
|
"virtual.games/ts/offsets-common.txt"
|
||||||
|
{
|
||||||
|
"game" "ts"
|
||||||
|
}
|
||||||
|
|
||||||
|
"virtual.games/valve/offsets-common.txt"
|
||||||
|
{
|
||||||
|
"game" "valve"
|
||||||
|
"game" "dmc"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
938
gamedata/common.games/virtual.games/ag/offsets-common.txt
Normal file
938
gamedata/common.games/virtual.games/ag/offsets-common.txt
Normal file
@ -0,0 +1,938 @@
|
|||||||
|
/**
|
||||||
|
* Do not edit this file. Any changes will be overwritten by the gamedata
|
||||||
|
* updater or by upgrading your AMX Mod X install.
|
||||||
|
*
|
||||||
|
* To override data in this file, create a subdirectory named "custom" and
|
||||||
|
* place your own gamedata file(s) inside of it. Such files will be parsed
|
||||||
|
* after AMXX's own.
|
||||||
|
*
|
||||||
|
* For more information, see http://wiki.alliedmods.net/Gamedata_Updating_(AMX_Mod_X)
|
||||||
|
*/
|
||||||
|
|
||||||
|
"Games"
|
||||||
|
{
|
||||||
|
"#default"
|
||||||
|
{
|
||||||
|
"Offsets"
|
||||||
|
{
|
||||||
|
"pev"
|
||||||
|
{
|
||||||
|
"windows" "4"
|
||||||
|
"linux" "0"
|
||||||
|
}
|
||||||
|
|
||||||
|
"base"
|
||||||
|
{
|
||||||
|
"windows" "0x0"
|
||||||
|
"linux" "0x60"
|
||||||
|
}
|
||||||
|
|
||||||
|
"spawn"
|
||||||
|
{
|
||||||
|
"windows" "0"
|
||||||
|
"linux" "2"
|
||||||
|
}
|
||||||
|
|
||||||
|
"precache"
|
||||||
|
{
|
||||||
|
"windows" "1"
|
||||||
|
"linux" "3"
|
||||||
|
}
|
||||||
|
|
||||||
|
"keyvalue"
|
||||||
|
{
|
||||||
|
"windows" "2"
|
||||||
|
"linux" "4"
|
||||||
|
}
|
||||||
|
|
||||||
|
"objectcaps"
|
||||||
|
{
|
||||||
|
"windows" "5"
|
||||||
|
"linux" "7"
|
||||||
|
}
|
||||||
|
|
||||||
|
"activate"
|
||||||
|
{
|
||||||
|
"windows" "6"
|
||||||
|
"linux" "8"
|
||||||
|
}
|
||||||
|
|
||||||
|
"setobjectcollisionbox"
|
||||||
|
{
|
||||||
|
"windows" "7"
|
||||||
|
"linux" "9"
|
||||||
|
}
|
||||||
|
|
||||||
|
"classify"
|
||||||
|
{
|
||||||
|
"windows" "8"
|
||||||
|
"linux" "10"
|
||||||
|
}
|
||||||
|
|
||||||
|
"deathnotice"
|
||||||
|
{
|
||||||
|
"windows" "9"
|
||||||
|
"linux" "11"
|
||||||
|
}
|
||||||
|
|
||||||
|
"traceattack"
|
||||||
|
{
|
||||||
|
"windows" "10"
|
||||||
|
"linux" "12"
|
||||||
|
}
|
||||||
|
|
||||||
|
"takedamage"
|
||||||
|
{
|
||||||
|
"windows" "11"
|
||||||
|
"linux" "13"
|
||||||
|
}
|
||||||
|
|
||||||
|
"takehealth"
|
||||||
|
{
|
||||||
|
"windows" "12"
|
||||||
|
"linux" "14"
|
||||||
|
}
|
||||||
|
|
||||||
|
"killed"
|
||||||
|
{
|
||||||
|
"windows" "13"
|
||||||
|
"linux" "15"
|
||||||
|
}
|
||||||
|
|
||||||
|
"bloodcolor"
|
||||||
|
{
|
||||||
|
"windows" "14"
|
||||||
|
"linux" "16"
|
||||||
|
}
|
||||||
|
|
||||||
|
"tracebleed"
|
||||||
|
{
|
||||||
|
"windows" "15"
|
||||||
|
"linux" "17"
|
||||||
|
}
|
||||||
|
|
||||||
|
"istriggered"
|
||||||
|
{
|
||||||
|
"windows" "16"
|
||||||
|
"linux" "18"
|
||||||
|
}
|
||||||
|
|
||||||
|
"mymonsterpointer"
|
||||||
|
{
|
||||||
|
"windows" "17"
|
||||||
|
"linux" "19"
|
||||||
|
}
|
||||||
|
|
||||||
|
"mysquadmonsterpointer"
|
||||||
|
{
|
||||||
|
"windows" "18"
|
||||||
|
"linux" "20"
|
||||||
|
}
|
||||||
|
|
||||||
|
"gettogglestate"
|
||||||
|
{
|
||||||
|
"windows" "19"
|
||||||
|
"linux" "21"
|
||||||
|
}
|
||||||
|
|
||||||
|
"addpoints"
|
||||||
|
{
|
||||||
|
"windows" "20"
|
||||||
|
"linux" "22"
|
||||||
|
}
|
||||||
|
|
||||||
|
"addpointstoteam"
|
||||||
|
{
|
||||||
|
"windows" "21"
|
||||||
|
"linux" "23"
|
||||||
|
}
|
||||||
|
|
||||||
|
"addplayeritem"
|
||||||
|
{
|
||||||
|
"windows" "22"
|
||||||
|
"linux" "24"
|
||||||
|
}
|
||||||
|
|
||||||
|
"removeplayeritem"
|
||||||
|
{
|
||||||
|
"windows" "23"
|
||||||
|
"linux" "25"
|
||||||
|
}
|
||||||
|
|
||||||
|
"giveammo"
|
||||||
|
{
|
||||||
|
"windows" "24"
|
||||||
|
"linux" "26"
|
||||||
|
}
|
||||||
|
|
||||||
|
"getdelay"
|
||||||
|
{
|
||||||
|
"windows" "25"
|
||||||
|
"linux" "27"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ismoving"
|
||||||
|
{
|
||||||
|
"windows" "26"
|
||||||
|
"linux" "28"
|
||||||
|
}
|
||||||
|
|
||||||
|
"overridereset"
|
||||||
|
{
|
||||||
|
"windows" "27"
|
||||||
|
"linux" "29"
|
||||||
|
}
|
||||||
|
|
||||||
|
"damagedecal"
|
||||||
|
{
|
||||||
|
"windows" "28"
|
||||||
|
"linux" "30"
|
||||||
|
}
|
||||||
|
|
||||||
|
"settogglestate"
|
||||||
|
{
|
||||||
|
"windows" "29"
|
||||||
|
"linux" "31"
|
||||||
|
}
|
||||||
|
|
||||||
|
"startsneaking"
|
||||||
|
{
|
||||||
|
"windows" "30"
|
||||||
|
"linux" "32"
|
||||||
|
}
|
||||||
|
|
||||||
|
"stopsneaking"
|
||||||
|
{
|
||||||
|
"windows" "31"
|
||||||
|
"linux" "33"
|
||||||
|
}
|
||||||
|
|
||||||
|
"oncontrols"
|
||||||
|
{
|
||||||
|
"windows" "32"
|
||||||
|
"linux" "34"
|
||||||
|
}
|
||||||
|
|
||||||
|
"issneaking"
|
||||||
|
{
|
||||||
|
"windows" "33"
|
||||||
|
"linux" "35"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isalive"
|
||||||
|
{
|
||||||
|
"windows" "34"
|
||||||
|
"linux" "36"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isbspmodel"
|
||||||
|
{
|
||||||
|
"windows" "35"
|
||||||
|
"linux" "37"
|
||||||
|
}
|
||||||
|
|
||||||
|
"reflectgauss"
|
||||||
|
{
|
||||||
|
"windows" "36"
|
||||||
|
"linux" "38"
|
||||||
|
}
|
||||||
|
|
||||||
|
"hastarget"
|
||||||
|
{
|
||||||
|
"windows" "37"
|
||||||
|
"linux" "39"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isinworld"
|
||||||
|
{
|
||||||
|
"windows" "38"
|
||||||
|
"linux" "40"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isplayer"
|
||||||
|
{
|
||||||
|
"windows" "39"
|
||||||
|
"linux" "41"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isnetclient"
|
||||||
|
{
|
||||||
|
"windows" "40"
|
||||||
|
"linux" "42"
|
||||||
|
}
|
||||||
|
|
||||||
|
"teamid"
|
||||||
|
{
|
||||||
|
"windows" "41"
|
||||||
|
"linux" "43"
|
||||||
|
}
|
||||||
|
|
||||||
|
"getnexttarget"
|
||||||
|
{
|
||||||
|
"windows" "42"
|
||||||
|
"linux" "44"
|
||||||
|
}
|
||||||
|
|
||||||
|
"think"
|
||||||
|
{
|
||||||
|
"windows" "43"
|
||||||
|
"linux" "45"
|
||||||
|
}
|
||||||
|
|
||||||
|
"touch"
|
||||||
|
{
|
||||||
|
"windows" "44"
|
||||||
|
"linux" "46"
|
||||||
|
}
|
||||||
|
|
||||||
|
"use"
|
||||||
|
{
|
||||||
|
"windows" "45"
|
||||||
|
"linux" "47"
|
||||||
|
}
|
||||||
|
|
||||||
|
"blocked"
|
||||||
|
{
|
||||||
|
"windows" "46"
|
||||||
|
"linux" "48"
|
||||||
|
}
|
||||||
|
|
||||||
|
"respawn"
|
||||||
|
{
|
||||||
|
"windows" "48"
|
||||||
|
"linux" "50"
|
||||||
|
}
|
||||||
|
|
||||||
|
"updateowner"
|
||||||
|
{
|
||||||
|
"windows" "49"
|
||||||
|
"linux" "51"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fbecomeprone"
|
||||||
|
{
|
||||||
|
"windows" "50"
|
||||||
|
"linux" "52"
|
||||||
|
}
|
||||||
|
|
||||||
|
"center"
|
||||||
|
{
|
||||||
|
"windows" "51"
|
||||||
|
"linux" "53"
|
||||||
|
}
|
||||||
|
|
||||||
|
"eyeposition"
|
||||||
|
{
|
||||||
|
"windows" "52"
|
||||||
|
"linux" "54"
|
||||||
|
}
|
||||||
|
|
||||||
|
"earposition"
|
||||||
|
{
|
||||||
|
"windows" "53"
|
||||||
|
"linux" "55"
|
||||||
|
}
|
||||||
|
|
||||||
|
"bodytarget"
|
||||||
|
{
|
||||||
|
"windows" "54"
|
||||||
|
"linux" "56"
|
||||||
|
}
|
||||||
|
|
||||||
|
"illumination"
|
||||||
|
{
|
||||||
|
"windows" "55"
|
||||||
|
"linux" "57"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fvisible"
|
||||||
|
{
|
||||||
|
"windows" "56"
|
||||||
|
"linux" "58"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fvecvisible"
|
||||||
|
{
|
||||||
|
"windows" "57"
|
||||||
|
"linux" "59"
|
||||||
|
}
|
||||||
|
|
||||||
|
"look"
|
||||||
|
{
|
||||||
|
"windows" "60"
|
||||||
|
"linux" "62"
|
||||||
|
}
|
||||||
|
|
||||||
|
"changeyaw"
|
||||||
|
{
|
||||||
|
"windows" "63"
|
||||||
|
"linux" "65"
|
||||||
|
}
|
||||||
|
|
||||||
|
"irelationship"
|
||||||
|
{
|
||||||
|
"windows" "65"
|
||||||
|
"linux" "67"
|
||||||
|
}
|
||||||
|
|
||||||
|
"monsterinitdead"
|
||||||
|
{
|
||||||
|
"windows" "67"
|
||||||
|
"linux" "69"
|
||||||
|
}
|
||||||
|
|
||||||
|
"becomedead"
|
||||||
|
{
|
||||||
|
"windows" "68"
|
||||||
|
"linux" "70"
|
||||||
|
}
|
||||||
|
|
||||||
|
"bestvisibleenemy"
|
||||||
|
{
|
||||||
|
"windows" "70"
|
||||||
|
"linux" "72"
|
||||||
|
}
|
||||||
|
|
||||||
|
"finviewcone"
|
||||||
|
{
|
||||||
|
"windows" "71"
|
||||||
|
"linux" "73"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fvecinviewcone"
|
||||||
|
{
|
||||||
|
"windows" "72"
|
||||||
|
"linux" "74"
|
||||||
|
}
|
||||||
|
|
||||||
|
"runai"
|
||||||
|
{
|
||||||
|
"windows" "61"
|
||||||
|
"linux" "63"
|
||||||
|
}
|
||||||
|
|
||||||
|
"monsterthink"
|
||||||
|
{
|
||||||
|
"windows" "64"
|
||||||
|
"linux" "66"
|
||||||
|
}
|
||||||
|
|
||||||
|
"monsterinit"
|
||||||
|
{
|
||||||
|
"windows" "66"
|
||||||
|
"linux" "68"
|
||||||
|
}
|
||||||
|
|
||||||
|
"checklocalmove"
|
||||||
|
{
|
||||||
|
"windows" "73"
|
||||||
|
"linux" "75"
|
||||||
|
}
|
||||||
|
|
||||||
|
"move"
|
||||||
|
{
|
||||||
|
"windows" "74"
|
||||||
|
"linux" "76"
|
||||||
|
}
|
||||||
|
|
||||||
|
"moveexecute"
|
||||||
|
{
|
||||||
|
"windows" "75"
|
||||||
|
"linux" "77"
|
||||||
|
}
|
||||||
|
|
||||||
|
"shouldadvanceroute"
|
||||||
|
{
|
||||||
|
"windows" "76"
|
||||||
|
"linux" "78"
|
||||||
|
}
|
||||||
|
|
||||||
|
"getstoppedactivity"
|
||||||
|
{
|
||||||
|
"windows" "77"
|
||||||
|
"linux" "79"
|
||||||
|
}
|
||||||
|
|
||||||
|
"stop"
|
||||||
|
{
|
||||||
|
"windows" "78"
|
||||||
|
"linux" "80"
|
||||||
|
}
|
||||||
|
|
||||||
|
"checkrangeattack1"
|
||||||
|
{
|
||||||
|
"windows" "79"
|
||||||
|
"linux" "81"
|
||||||
|
}
|
||||||
|
|
||||||
|
"checkrangeattack2"
|
||||||
|
{
|
||||||
|
"windows" "80"
|
||||||
|
"linux" "82"
|
||||||
|
}
|
||||||
|
|
||||||
|
"checkmeleeattack1"
|
||||||
|
{
|
||||||
|
"windows" "81"
|
||||||
|
"linux" "83"
|
||||||
|
}
|
||||||
|
|
||||||
|
"checkmeleeattack2"
|
||||||
|
{
|
||||||
|
"windows" "82"
|
||||||
|
"linux" "84"
|
||||||
|
}
|
||||||
|
|
||||||
|
"schedulechange"
|
||||||
|
{
|
||||||
|
"windows" "88"
|
||||||
|
"linux" "90"
|
||||||
|
}
|
||||||
|
|
||||||
|
"canplaysequence"
|
||||||
|
{
|
||||||
|
"windows" "89"
|
||||||
|
"linux" "91"
|
||||||
|
}
|
||||||
|
|
||||||
|
"canplaysentence"
|
||||||
|
{
|
||||||
|
"windows" "90"
|
||||||
|
"linux" "92"
|
||||||
|
}
|
||||||
|
|
||||||
|
"playsentence"
|
||||||
|
{
|
||||||
|
"windows" "91"
|
||||||
|
"linux" "93"
|
||||||
|
}
|
||||||
|
|
||||||
|
"playscriptedsentence"
|
||||||
|
{
|
||||||
|
"windows" "92"
|
||||||
|
"linux" "94"
|
||||||
|
}
|
||||||
|
|
||||||
|
"sentencestop"
|
||||||
|
{
|
||||||
|
"windows" "93"
|
||||||
|
"linux" "95"
|
||||||
|
}
|
||||||
|
|
||||||
|
"getidealstate"
|
||||||
|
{
|
||||||
|
"windows" "94"
|
||||||
|
"linux" "96"
|
||||||
|
}
|
||||||
|
|
||||||
|
"setactivity"
|
||||||
|
{
|
||||||
|
"windows" "95"
|
||||||
|
"linux" "97"
|
||||||
|
}
|
||||||
|
|
||||||
|
"reportaistate"
|
||||||
|
{
|
||||||
|
"windows" "96"
|
||||||
|
"linux" "98"
|
||||||
|
}
|
||||||
|
|
||||||
|
"checkenemy"
|
||||||
|
{
|
||||||
|
"windows" "97"
|
||||||
|
"linux" "99"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ftriangulate"
|
||||||
|
{
|
||||||
|
"windows" "98"
|
||||||
|
"linux" "100"
|
||||||
|
}
|
||||||
|
|
||||||
|
"setyawspeed"
|
||||||
|
{
|
||||||
|
"windows" "99"
|
||||||
|
"linux" "101"
|
||||||
|
}
|
||||||
|
|
||||||
|
"buildnearestroute"
|
||||||
|
{
|
||||||
|
"windows" "100"
|
||||||
|
"linux" "102"
|
||||||
|
}
|
||||||
|
|
||||||
|
"findcover"
|
||||||
|
{
|
||||||
|
"windows" "101"
|
||||||
|
"linux" "103"
|
||||||
|
}
|
||||||
|
|
||||||
|
"coverradius"
|
||||||
|
{
|
||||||
|
"windows" "103"
|
||||||
|
"linux" "105"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fcancheckattacks"
|
||||||
|
{
|
||||||
|
"windows" "104"
|
||||||
|
"linux" "106"
|
||||||
|
}
|
||||||
|
|
||||||
|
"checkammo"
|
||||||
|
{
|
||||||
|
"windows" "105"
|
||||||
|
"linux" "107"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ignoreconditions"
|
||||||
|
{
|
||||||
|
"windows" "106"
|
||||||
|
"linux" "108"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fvalidatehinttype"
|
||||||
|
{
|
||||||
|
"windows" "107"
|
||||||
|
"linux" "109"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fcanactiveidle"
|
||||||
|
{
|
||||||
|
"windows" "108"
|
||||||
|
"linux" "110"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isoundmask"
|
||||||
|
{
|
||||||
|
"windows" "109"
|
||||||
|
"linux" "111"
|
||||||
|
}
|
||||||
|
|
||||||
|
"hearingsensitivity"
|
||||||
|
{
|
||||||
|
"windows" "112"
|
||||||
|
"linux" "114"
|
||||||
|
}
|
||||||
|
|
||||||
|
"barnaclevictimbitten"
|
||||||
|
{
|
||||||
|
"windows" "113"
|
||||||
|
"linux" "115"
|
||||||
|
}
|
||||||
|
|
||||||
|
"barnaclevictimreleased"
|
||||||
|
{
|
||||||
|
"windows" "114"
|
||||||
|
"linux" "116"
|
||||||
|
}
|
||||||
|
|
||||||
|
"preschedulethink"
|
||||||
|
{
|
||||||
|
"windows" "115"
|
||||||
|
"linux" "117"
|
||||||
|
}
|
||||||
|
|
||||||
|
"getdeathactivity"
|
||||||
|
{
|
||||||
|
"windows" "116"
|
||||||
|
"linux" "118"
|
||||||
|
}
|
||||||
|
|
||||||
|
"gibmonster"
|
||||||
|
{
|
||||||
|
"windows" "117"
|
||||||
|
"linux" "119"
|
||||||
|
}
|
||||||
|
|
||||||
|
"hashumangibs"
|
||||||
|
{
|
||||||
|
"windows" "118"
|
||||||
|
"linux" "120"
|
||||||
|
}
|
||||||
|
|
||||||
|
"hasaliengibs"
|
||||||
|
{
|
||||||
|
"windows" "119"
|
||||||
|
"linux" "121"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fademonster"
|
||||||
|
{
|
||||||
|
"windows" "120"
|
||||||
|
"linux" "122"
|
||||||
|
}
|
||||||
|
|
||||||
|
"deathsound"
|
||||||
|
{
|
||||||
|
"windows" "122"
|
||||||
|
"linux" "124"
|
||||||
|
}
|
||||||
|
|
||||||
|
"alertsound"
|
||||||
|
{
|
||||||
|
"windows" "123"
|
||||||
|
"linux" "125"
|
||||||
|
}
|
||||||
|
|
||||||
|
"idlesound"
|
||||||
|
{
|
||||||
|
"windows" "124"
|
||||||
|
"linux" "126"
|
||||||
|
}
|
||||||
|
|
||||||
|
"painsound"
|
||||||
|
{
|
||||||
|
"windows" "125"
|
||||||
|
"linux" "127"
|
||||||
|
}
|
||||||
|
|
||||||
|
"stopfollowing"
|
||||||
|
{
|
||||||
|
"windows" "126"
|
||||||
|
"linux" "128"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_jump"
|
||||||
|
{
|
||||||
|
"windows" "127"
|
||||||
|
"linux" "129"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_duck"
|
||||||
|
{
|
||||||
|
"windows" "128"
|
||||||
|
"linux" "130"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_prethink"
|
||||||
|
{
|
||||||
|
"windows" "129"
|
||||||
|
"linux" "131"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_postthink"
|
||||||
|
{
|
||||||
|
"windows" "130"
|
||||||
|
"linux" "132"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_getgunposition"
|
||||||
|
{
|
||||||
|
"windows" "121"
|
||||||
|
"linux" "123"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_shouldfadeondeath"
|
||||||
|
{
|
||||||
|
"windows" "62"
|
||||||
|
"linux" "64"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_impulsecommands"
|
||||||
|
{
|
||||||
|
"windows" "132"
|
||||||
|
"linux" "134"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_updateclientdata"
|
||||||
|
{
|
||||||
|
"windows" "131"
|
||||||
|
"linux" "133"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_addtoplayer"
|
||||||
|
{
|
||||||
|
"windows" "59"
|
||||||
|
"linux" "61"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_addduplicate"
|
||||||
|
{
|
||||||
|
"windows" "60"
|
||||||
|
"linux" "62"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_getiteminfo"
|
||||||
|
{
|
||||||
|
"windows" "61"
|
||||||
|
"linux" "63"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_candeploy"
|
||||||
|
{
|
||||||
|
"windows" "62"
|
||||||
|
"linux" "64"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_deploy"
|
||||||
|
{
|
||||||
|
"windows" "63"
|
||||||
|
"linux" "65"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_canholster"
|
||||||
|
{
|
||||||
|
"windows" "64"
|
||||||
|
"linux" "66"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_holster"
|
||||||
|
{
|
||||||
|
"windows" "65"
|
||||||
|
"linux" "67"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_updateiteminfo"
|
||||||
|
{
|
||||||
|
"windows" "66"
|
||||||
|
"linux" "68"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_preframe"
|
||||||
|
{
|
||||||
|
"windows" "67"
|
||||||
|
"linux" "69"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_postframe"
|
||||||
|
{
|
||||||
|
"windows" "68"
|
||||||
|
"linux" "70"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_drop"
|
||||||
|
{
|
||||||
|
"windows" "69"
|
||||||
|
"linux" "71"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_kill"
|
||||||
|
{
|
||||||
|
"windows" "70"
|
||||||
|
"linux" "72"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_attachtoplayer"
|
||||||
|
{
|
||||||
|
"windows" "71"
|
||||||
|
"linux" "73"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_primaryammoindex"
|
||||||
|
{
|
||||||
|
"windows" "72"
|
||||||
|
"linux" "74"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_secondaryammoindex"
|
||||||
|
{
|
||||||
|
"windows" "73"
|
||||||
|
"linux" "75"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_updateclientdata"
|
||||||
|
{
|
||||||
|
"windows" "74"
|
||||||
|
"linux" "76"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_getweaponptr"
|
||||||
|
{
|
||||||
|
"windows" "75"
|
||||||
|
"linux" "77"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_itemslot"
|
||||||
|
{
|
||||||
|
"windows" "76"
|
||||||
|
"linux" "78"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_extractammo"
|
||||||
|
{
|
||||||
|
"windows" "77"
|
||||||
|
"linux" "79"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_extractclipammo"
|
||||||
|
{
|
||||||
|
"windows" "78"
|
||||||
|
"linux" "80"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_addweapon"
|
||||||
|
{
|
||||||
|
"windows" "79"
|
||||||
|
"linux" "81"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_playemptysound"
|
||||||
|
{
|
||||||
|
"windows" "80"
|
||||||
|
"linux" "82"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_resetemptysound"
|
||||||
|
{
|
||||||
|
"windows" "81"
|
||||||
|
"linux" "83"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_sendweaponanim"
|
||||||
|
{
|
||||||
|
"windows" "82"
|
||||||
|
"linux" "84"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_isusable"
|
||||||
|
{
|
||||||
|
"windows" "83"
|
||||||
|
"linux" "85"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_primaryattack"
|
||||||
|
{
|
||||||
|
"windows" "84"
|
||||||
|
"linux" "86"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_secondaryattack"
|
||||||
|
{
|
||||||
|
"windows" "85"
|
||||||
|
"linux" "87"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_reload"
|
||||||
|
{
|
||||||
|
"windows" "86"
|
||||||
|
"linux" "88"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_weaponidle"
|
||||||
|
{
|
||||||
|
"windows" "87"
|
||||||
|
"linux" "89"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_retireweapon"
|
||||||
|
{
|
||||||
|
"windows" "88"
|
||||||
|
"linux" "90"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_shouldweaponidle"
|
||||||
|
{
|
||||||
|
"windows" "89"
|
||||||
|
"linux" "91"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_usedecrement"
|
||||||
|
{
|
||||||
|
"windows" "90"
|
||||||
|
"linux" "92"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
874
gamedata/common.games/virtual.games/cstrike/offsets-common.txt
Normal file
874
gamedata/common.games/virtual.games/cstrike/offsets-common.txt
Normal file
@ -0,0 +1,874 @@
|
|||||||
|
/**
|
||||||
|
* Do not edit this file. Any changes will be overwritten by the gamedata
|
||||||
|
* updater or by upgrading your AMX Mod X install.
|
||||||
|
*
|
||||||
|
* To override data in this file, create a subdirectory named "custom" and
|
||||||
|
* place your own gamedata file(s) inside of it. Such files will be parsed
|
||||||
|
* after AMXX's own.
|
||||||
|
*
|
||||||
|
* For more information, see http://wiki.alliedmods.net/Gamedata_Updating_(AMX_Mod_X)
|
||||||
|
*/
|
||||||
|
|
||||||
|
"Games"
|
||||||
|
{
|
||||||
|
"#default"
|
||||||
|
{
|
||||||
|
"Offsets"
|
||||||
|
{
|
||||||
|
"pev"
|
||||||
|
{
|
||||||
|
"windows" "4"
|
||||||
|
"linux" "4"
|
||||||
|
"mac" "4"
|
||||||
|
}
|
||||||
|
|
||||||
|
"base"
|
||||||
|
{
|
||||||
|
"windows" "0x0"
|
||||||
|
"linux" "0x0"
|
||||||
|
"mac" "0x0"
|
||||||
|
}
|
||||||
|
|
||||||
|
"spawn"
|
||||||
|
{
|
||||||
|
"windows" "0"
|
||||||
|
"linux" "0"
|
||||||
|
"mac" "0"
|
||||||
|
}
|
||||||
|
|
||||||
|
"precache"
|
||||||
|
{
|
||||||
|
"windows" "1"
|
||||||
|
"linux" "1"
|
||||||
|
"mac" "1"
|
||||||
|
}
|
||||||
|
|
||||||
|
"keyvalue"
|
||||||
|
{
|
||||||
|
"windows" "3"
|
||||||
|
"linux" "3"
|
||||||
|
"mac" "3"
|
||||||
|
}
|
||||||
|
|
||||||
|
"objectcaps"
|
||||||
|
{
|
||||||
|
"windows" "6"
|
||||||
|
"linux" "6"
|
||||||
|
"mac" "6"
|
||||||
|
}
|
||||||
|
|
||||||
|
"activate"
|
||||||
|
{
|
||||||
|
"windows" "7"
|
||||||
|
"linux" "7"
|
||||||
|
"mac" "7"
|
||||||
|
}
|
||||||
|
|
||||||
|
"setobjectcollisionbox"
|
||||||
|
{
|
||||||
|
"windows" "8"
|
||||||
|
"linux" "8"
|
||||||
|
"mac" "8"
|
||||||
|
}
|
||||||
|
|
||||||
|
"classify"
|
||||||
|
{
|
||||||
|
"windows" "9"
|
||||||
|
"linux" "9"
|
||||||
|
"mac" "9"
|
||||||
|
}
|
||||||
|
|
||||||
|
"deathnotice"
|
||||||
|
{
|
||||||
|
"windows" "10"
|
||||||
|
"linux" "10"
|
||||||
|
"mac" "10"
|
||||||
|
}
|
||||||
|
|
||||||
|
"traceattack"
|
||||||
|
{
|
||||||
|
"windows" "11"
|
||||||
|
"linux" "11"
|
||||||
|
"mac" "11"
|
||||||
|
}
|
||||||
|
|
||||||
|
"takedamage"
|
||||||
|
{
|
||||||
|
"windows" "12"
|
||||||
|
"linux" "12"
|
||||||
|
"mac" "12"
|
||||||
|
}
|
||||||
|
|
||||||
|
"takehealth"
|
||||||
|
{
|
||||||
|
"windows" "13"
|
||||||
|
"linux" "13"
|
||||||
|
"mac" "13"
|
||||||
|
}
|
||||||
|
|
||||||
|
"killed"
|
||||||
|
{
|
||||||
|
"windows" "14"
|
||||||
|
"linux" "14"
|
||||||
|
"mac" "14"
|
||||||
|
}
|
||||||
|
|
||||||
|
"bloodcolor"
|
||||||
|
{
|
||||||
|
"windows" "15"
|
||||||
|
"linux" "15"
|
||||||
|
"mac" "15"
|
||||||
|
}
|
||||||
|
|
||||||
|
"tracebleed"
|
||||||
|
{
|
||||||
|
"windows" "16"
|
||||||
|
"linux" "16"
|
||||||
|
"mac" "16"
|
||||||
|
}
|
||||||
|
|
||||||
|
"istriggered"
|
||||||
|
{
|
||||||
|
"windows" "17"
|
||||||
|
"linux" "17"
|
||||||
|
"mac" "17"
|
||||||
|
}
|
||||||
|
|
||||||
|
"mymonsterpointer"
|
||||||
|
{
|
||||||
|
"windows" "18"
|
||||||
|
"linux" "18"
|
||||||
|
"mac" "18"
|
||||||
|
}
|
||||||
|
|
||||||
|
"mysquadmonsterpointer"
|
||||||
|
{
|
||||||
|
"windows" "19"
|
||||||
|
"linux" "19"
|
||||||
|
"mac" "19"
|
||||||
|
}
|
||||||
|
|
||||||
|
"gettogglestate"
|
||||||
|
{
|
||||||
|
"windows" "20"
|
||||||
|
"linux" "20"
|
||||||
|
"mac" "20"
|
||||||
|
}
|
||||||
|
|
||||||
|
"addpoints"
|
||||||
|
{
|
||||||
|
"windows" "21"
|
||||||
|
"linux" "21"
|
||||||
|
"mac" "21"
|
||||||
|
}
|
||||||
|
|
||||||
|
"addpointstoteam"
|
||||||
|
{
|
||||||
|
"windows" "22"
|
||||||
|
"linux" "22"
|
||||||
|
"mac" "22"
|
||||||
|
}
|
||||||
|
|
||||||
|
"addplayeritem"
|
||||||
|
{
|
||||||
|
"windows" "23"
|
||||||
|
"linux" "23"
|
||||||
|
"mac" "23"
|
||||||
|
}
|
||||||
|
|
||||||
|
"removeplayeritem"
|
||||||
|
{
|
||||||
|
"windows" "24"
|
||||||
|
"linux" "24"
|
||||||
|
"mac" "24"
|
||||||
|
}
|
||||||
|
|
||||||
|
"giveammo"
|
||||||
|
{
|
||||||
|
"windows" "25"
|
||||||
|
"linux" "25"
|
||||||
|
"mac" "25"
|
||||||
|
}
|
||||||
|
|
||||||
|
"getdelay"
|
||||||
|
{
|
||||||
|
"windows" "26"
|
||||||
|
"linux" "26"
|
||||||
|
"mac" "26"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ismoving"
|
||||||
|
{
|
||||||
|
"windows" "27"
|
||||||
|
"linux" "27"
|
||||||
|
"mac" "27"
|
||||||
|
}
|
||||||
|
|
||||||
|
"overridereset"
|
||||||
|
{
|
||||||
|
"windows" "28"
|
||||||
|
"linux" "28"
|
||||||
|
"mac" "28"
|
||||||
|
}
|
||||||
|
|
||||||
|
"damagedecal"
|
||||||
|
{
|
||||||
|
"windows" "29"
|
||||||
|
"linux" "29"
|
||||||
|
"mac" "29"
|
||||||
|
}
|
||||||
|
|
||||||
|
"settogglestate"
|
||||||
|
{
|
||||||
|
"windows" "30"
|
||||||
|
"linux" "30"
|
||||||
|
"mac" "30"
|
||||||
|
}
|
||||||
|
|
||||||
|
"startsneaking"
|
||||||
|
{
|
||||||
|
"windows" "31"
|
||||||
|
"linux" "31"
|
||||||
|
"mac" "31"
|
||||||
|
}
|
||||||
|
|
||||||
|
"stopsneaking"
|
||||||
|
{
|
||||||
|
"windows" "32"
|
||||||
|
"linux" "32"
|
||||||
|
"mac" "32"
|
||||||
|
}
|
||||||
|
|
||||||
|
"oncontrols"
|
||||||
|
{
|
||||||
|
"windows" "33"
|
||||||
|
"linux" "33"
|
||||||
|
"mac" "33"
|
||||||
|
}
|
||||||
|
|
||||||
|
"issneaking"
|
||||||
|
{
|
||||||
|
"windows" "34"
|
||||||
|
"linux" "34"
|
||||||
|
"mac" "34"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isalive"
|
||||||
|
{
|
||||||
|
"windows" "35"
|
||||||
|
"linux" "35"
|
||||||
|
"mac" "35"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isbspmodel"
|
||||||
|
{
|
||||||
|
"windows" "36"
|
||||||
|
"linux" "36"
|
||||||
|
"mac" "36"
|
||||||
|
}
|
||||||
|
|
||||||
|
"reflectgauss"
|
||||||
|
{
|
||||||
|
"windows" "37"
|
||||||
|
"linux" "37"
|
||||||
|
"mac" "37"
|
||||||
|
}
|
||||||
|
|
||||||
|
"hastarget"
|
||||||
|
{
|
||||||
|
"windows" "38"
|
||||||
|
"linux" "38"
|
||||||
|
"mac" "38"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isinworld"
|
||||||
|
{
|
||||||
|
"windows" "39"
|
||||||
|
"linux" "39"
|
||||||
|
"mac" "39"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isplayer"
|
||||||
|
{
|
||||||
|
"windows" "40"
|
||||||
|
"linux" "40"
|
||||||
|
"mac" "40"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isnetclient"
|
||||||
|
{
|
||||||
|
"windows" "41"
|
||||||
|
"linux" "41"
|
||||||
|
"mac" "41"
|
||||||
|
}
|
||||||
|
|
||||||
|
"teamid"
|
||||||
|
{
|
||||||
|
"windows" "42"
|
||||||
|
"linux" "42"
|
||||||
|
"mac" "42"
|
||||||
|
}
|
||||||
|
|
||||||
|
"getnexttarget"
|
||||||
|
{
|
||||||
|
"windows" "43"
|
||||||
|
"linux" "43"
|
||||||
|
"mac" "43"
|
||||||
|
}
|
||||||
|
|
||||||
|
"think"
|
||||||
|
{
|
||||||
|
"windows" "44"
|
||||||
|
"linux" "44"
|
||||||
|
"mac" "44"
|
||||||
|
}
|
||||||
|
|
||||||
|
"touch"
|
||||||
|
{
|
||||||
|
"windows" "45"
|
||||||
|
"linux" "45"
|
||||||
|
"mac" "45"
|
||||||
|
}
|
||||||
|
|
||||||
|
"use"
|
||||||
|
{
|
||||||
|
"windows" "46"
|
||||||
|
"linux" "46"
|
||||||
|
"mac" "46"
|
||||||
|
}
|
||||||
|
|
||||||
|
"blocked"
|
||||||
|
{
|
||||||
|
"windows" "47"
|
||||||
|
"linux" "47"
|
||||||
|
"mac" "47"
|
||||||
|
}
|
||||||
|
|
||||||
|
"respawn"
|
||||||
|
{
|
||||||
|
"windows" "48"
|
||||||
|
"linux" "48"
|
||||||
|
"mac" "48"
|
||||||
|
}
|
||||||
|
|
||||||
|
"updateowner"
|
||||||
|
{
|
||||||
|
"windows" "49"
|
||||||
|
"linux" "49"
|
||||||
|
"mac" "49"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fbecomeprone"
|
||||||
|
{
|
||||||
|
"windows" "50"
|
||||||
|
"linux" "50"
|
||||||
|
"mac" "50"
|
||||||
|
}
|
||||||
|
|
||||||
|
"center"
|
||||||
|
{
|
||||||
|
"windows" "51"
|
||||||
|
"linux" "51"
|
||||||
|
"mac" "51"
|
||||||
|
}
|
||||||
|
|
||||||
|
"eyeposition"
|
||||||
|
{
|
||||||
|
"windows" "52"
|
||||||
|
"linux" "52"
|
||||||
|
"mac" "52"
|
||||||
|
}
|
||||||
|
|
||||||
|
"earposition"
|
||||||
|
{
|
||||||
|
"windows" "53"
|
||||||
|
"linux" "53"
|
||||||
|
"mac" "53"
|
||||||
|
}
|
||||||
|
|
||||||
|
"bodytarget"
|
||||||
|
{
|
||||||
|
"windows" "54"
|
||||||
|
"linux" "54"
|
||||||
|
"mac" "54"
|
||||||
|
}
|
||||||
|
|
||||||
|
"illumination"
|
||||||
|
{
|
||||||
|
"windows" "55"
|
||||||
|
"linux" "55"
|
||||||
|
"mac" "55"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fvisible"
|
||||||
|
{
|
||||||
|
"windows" "56"
|
||||||
|
"linux" "56"
|
||||||
|
"mac" "56"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fvecvisible"
|
||||||
|
{
|
||||||
|
"windows" "57"
|
||||||
|
"linux" "57"
|
||||||
|
"mac" "57"
|
||||||
|
}
|
||||||
|
|
||||||
|
"changeyaw"
|
||||||
|
{
|
||||||
|
"windows" "59"
|
||||||
|
"linux" "59"
|
||||||
|
"mac" "59"
|
||||||
|
}
|
||||||
|
|
||||||
|
"hashumangibs"
|
||||||
|
{
|
||||||
|
"windows" "60"
|
||||||
|
"linux" "60"
|
||||||
|
"mac" "60"
|
||||||
|
}
|
||||||
|
|
||||||
|
"hasaliengibs"
|
||||||
|
{
|
||||||
|
"windows" "61"
|
||||||
|
"linux" "61"
|
||||||
|
"mac" "61"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fademonster"
|
||||||
|
{
|
||||||
|
"windows" "62"
|
||||||
|
"linux" "62"
|
||||||
|
"mac" "62"
|
||||||
|
}
|
||||||
|
|
||||||
|
"gibmonster"
|
||||||
|
{
|
||||||
|
"windows" "63"
|
||||||
|
"linux" "63"
|
||||||
|
"mac" "63"
|
||||||
|
}
|
||||||
|
|
||||||
|
"getdeathactivity"
|
||||||
|
{
|
||||||
|
"windows" "64"
|
||||||
|
"linux" "64"
|
||||||
|
"mac" "64"
|
||||||
|
}
|
||||||
|
|
||||||
|
"becomedead"
|
||||||
|
{
|
||||||
|
"windows" "65"
|
||||||
|
"linux" "65"
|
||||||
|
"mac" "65"
|
||||||
|
}
|
||||||
|
|
||||||
|
"irelationship"
|
||||||
|
{
|
||||||
|
"windows" "67"
|
||||||
|
"linux" "67"
|
||||||
|
"mac" "67"
|
||||||
|
}
|
||||||
|
|
||||||
|
"painsound"
|
||||||
|
{
|
||||||
|
"windows" "68"
|
||||||
|
"linux" "68"
|
||||||
|
"mac" "68"
|
||||||
|
}
|
||||||
|
|
||||||
|
"reportaistate"
|
||||||
|
{
|
||||||
|
"windows" "70"
|
||||||
|
"linux" "70"
|
||||||
|
"mac" "70"
|
||||||
|
}
|
||||||
|
|
||||||
|
"monsterinitdead"
|
||||||
|
{
|
||||||
|
"windows" "71"
|
||||||
|
"linux" "71"
|
||||||
|
"mac" "71"
|
||||||
|
}
|
||||||
|
|
||||||
|
"look"
|
||||||
|
{
|
||||||
|
"windows" "72"
|
||||||
|
"linux" "72"
|
||||||
|
"mac" "72"
|
||||||
|
}
|
||||||
|
|
||||||
|
"bestvisibleenemy"
|
||||||
|
{
|
||||||
|
"windows" "73"
|
||||||
|
"linux" "73"
|
||||||
|
"mac" "73"
|
||||||
|
}
|
||||||
|
|
||||||
|
"finviewcone"
|
||||||
|
{
|
||||||
|
"windows" "75"
|
||||||
|
"linux" "74"
|
||||||
|
"mac" "74"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fvecinviewcone"
|
||||||
|
{
|
||||||
|
"windows" "74"
|
||||||
|
"linux" "75"
|
||||||
|
"mac" "75"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_jump"
|
||||||
|
{
|
||||||
|
"windows" "76"
|
||||||
|
"linux" "76"
|
||||||
|
"mac" "76"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_duck"
|
||||||
|
{
|
||||||
|
"windows" "77"
|
||||||
|
"linux" "77"
|
||||||
|
"mac" "77"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_prethink"
|
||||||
|
{
|
||||||
|
"windows" "78"
|
||||||
|
"linux" "78"
|
||||||
|
"mac" "78"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_postthink"
|
||||||
|
{
|
||||||
|
"windows" "79"
|
||||||
|
"linux" "79"
|
||||||
|
"mac" "79"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_getgunposition"
|
||||||
|
{
|
||||||
|
"windows" "80"
|
||||||
|
"linux" "80"
|
||||||
|
"mac" "80"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_shouldfadeondeath"
|
||||||
|
{
|
||||||
|
"windows" "66"
|
||||||
|
"linux" "66"
|
||||||
|
"mac" "66"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_impulsecommands"
|
||||||
|
{
|
||||||
|
"windows" "83"
|
||||||
|
"linux" "83"
|
||||||
|
"mac" "83"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_updateclientdata"
|
||||||
|
{
|
||||||
|
"windows" "82"
|
||||||
|
"linux" "82"
|
||||||
|
"mac" "82"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_addtoplayer"
|
||||||
|
{
|
||||||
|
"windows" "59"
|
||||||
|
"linux" "59"
|
||||||
|
"mac" "59"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_addduplicate"
|
||||||
|
{
|
||||||
|
"windows" "60"
|
||||||
|
"linux" "60"
|
||||||
|
"mac" "60"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_getiteminfo"
|
||||||
|
{
|
||||||
|
"windows" "61"
|
||||||
|
"linux" "61"
|
||||||
|
"mac" "61"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_candeploy"
|
||||||
|
{
|
||||||
|
"windows" "62"
|
||||||
|
"linux" "62"
|
||||||
|
"mac" "62"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_deploy"
|
||||||
|
{
|
||||||
|
"windows" "64"
|
||||||
|
"linux" "64"
|
||||||
|
"mac" "64"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_canholster"
|
||||||
|
{
|
||||||
|
"windows" "66"
|
||||||
|
"linux" "66"
|
||||||
|
"mac" "66"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_holster"
|
||||||
|
{
|
||||||
|
"windows" "67"
|
||||||
|
"linux" "67"
|
||||||
|
"mac" "67"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_updateiteminfo"
|
||||||
|
{
|
||||||
|
"windows" "68"
|
||||||
|
"linux" "68"
|
||||||
|
"mac" "68"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_preframe"
|
||||||
|
{
|
||||||
|
"windows" "69"
|
||||||
|
"linux" "69"
|
||||||
|
"mac" "69"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_postframe"
|
||||||
|
{
|
||||||
|
"windows" "70"
|
||||||
|
"linux" "70"
|
||||||
|
"mac" "70"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_drop"
|
||||||
|
{
|
||||||
|
"windows" "71"
|
||||||
|
"linux" "71"
|
||||||
|
"mac" "71"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_kill"
|
||||||
|
{
|
||||||
|
"windows" "72"
|
||||||
|
"linux" "72"
|
||||||
|
"mac" "72"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_attachtoplayer"
|
||||||
|
{
|
||||||
|
"windows" "73"
|
||||||
|
"linux" "73"
|
||||||
|
"mac" "73"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_primaryammoindex"
|
||||||
|
{
|
||||||
|
"windows" "74"
|
||||||
|
"linux" "74"
|
||||||
|
"mac" "74"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_secondaryammoindex"
|
||||||
|
{
|
||||||
|
"windows" "75"
|
||||||
|
"linux" "75"
|
||||||
|
"mac" "75"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_updateclientdata"
|
||||||
|
{
|
||||||
|
"windows" "76"
|
||||||
|
"linux" "76"
|
||||||
|
"mac" "76"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_getweaponptr"
|
||||||
|
{
|
||||||
|
"windows" "77"
|
||||||
|
"linux" "77"
|
||||||
|
"mac" "77"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_itemslot"
|
||||||
|
{
|
||||||
|
"windows" "79"
|
||||||
|
"linux" "79"
|
||||||
|
"mac" "79"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_extractammo"
|
||||||
|
{
|
||||||
|
"windows" "80"
|
||||||
|
"linux" "80"
|
||||||
|
"mac" "80"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_extractclipammo"
|
||||||
|
{
|
||||||
|
"windows" "81"
|
||||||
|
"linux" "81"
|
||||||
|
"mac" "81"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_addweapon"
|
||||||
|
{
|
||||||
|
"windows" "82"
|
||||||
|
"linux" "82"
|
||||||
|
"mac" "82"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_playemptysound"
|
||||||
|
{
|
||||||
|
"windows" "83"
|
||||||
|
"linux" "83"
|
||||||
|
"mac" "83"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_resetemptysound"
|
||||||
|
{
|
||||||
|
"windows" "84"
|
||||||
|
"linux" "84"
|
||||||
|
"mac" "84"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_isusable"
|
||||||
|
{
|
||||||
|
"windows" "86"
|
||||||
|
"linux" "86"
|
||||||
|
"mac" "86"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_primaryattack"
|
||||||
|
{
|
||||||
|
"windows" "87"
|
||||||
|
"linux" "87"
|
||||||
|
"mac" "87"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_secondaryattack"
|
||||||
|
{
|
||||||
|
"windows" "88"
|
||||||
|
"linux" "88"
|
||||||
|
"mac" "88"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_reload"
|
||||||
|
{
|
||||||
|
"windows" "89"
|
||||||
|
"linux" "89"
|
||||||
|
"mac" "89"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_weaponidle"
|
||||||
|
{
|
||||||
|
"windows" "90"
|
||||||
|
"linux" "90"
|
||||||
|
"mac" "90"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_retireweapon"
|
||||||
|
{
|
||||||
|
"windows" "91"
|
||||||
|
"linux" "91"
|
||||||
|
"mac" "91"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_shouldweaponidle"
|
||||||
|
{
|
||||||
|
"windows" "92"
|
||||||
|
"linux" "92"
|
||||||
|
"mac" "92"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_usedecrement"
|
||||||
|
{
|
||||||
|
"windows" "93"
|
||||||
|
"linux" "93"
|
||||||
|
"mac" "93"
|
||||||
|
}
|
||||||
|
|
||||||
|
"cstrike_restart"
|
||||||
|
{
|
||||||
|
"windows" "2"
|
||||||
|
"linux" "2"
|
||||||
|
"mac" "2"
|
||||||
|
}
|
||||||
|
|
||||||
|
"cstrike_roundrespawn"
|
||||||
|
{
|
||||||
|
"windows" "84"
|
||||||
|
"linux" "84"
|
||||||
|
"mac" "84"
|
||||||
|
}
|
||||||
|
|
||||||
|
"cstrike_item_candrop"
|
||||||
|
{
|
||||||
|
"windows" "63"
|
||||||
|
"linux" "63"
|
||||||
|
"mac" "63"
|
||||||
|
}
|
||||||
|
|
||||||
|
"cstrike_item_isweapon"
|
||||||
|
{
|
||||||
|
"windows" "65"
|
||||||
|
"linux" "65"
|
||||||
|
"mac" "65"
|
||||||
|
}
|
||||||
|
|
||||||
|
"cstrike_item_getmaxspeed"
|
||||||
|
{
|
||||||
|
"windows" "78"
|
||||||
|
"linux" "78"
|
||||||
|
"mac" "78"
|
||||||
|
}
|
||||||
|
|
||||||
|
"cstrike_weapon_sendweaponanim"
|
||||||
|
{
|
||||||
|
"windows" "85"
|
||||||
|
"linux" "85"
|
||||||
|
"mac" "85"
|
||||||
|
}
|
||||||
|
|
||||||
|
"cstrike_player_resetmaxspeed"
|
||||||
|
{
|
||||||
|
"windows" "69"
|
||||||
|
"linux" "69"
|
||||||
|
"mac" "69"
|
||||||
|
}
|
||||||
|
|
||||||
|
"cstrike_player_isbot"
|
||||||
|
{
|
||||||
|
"windows" "81"
|
||||||
|
"linux" "81"
|
||||||
|
"mac" "81"
|
||||||
|
}
|
||||||
|
|
||||||
|
"cstrike_player_getautoaimvector"
|
||||||
|
{
|
||||||
|
"windows" "85"
|
||||||
|
"linux" "85"
|
||||||
|
"mac" "85"
|
||||||
|
}
|
||||||
|
|
||||||
|
"cstrike_player_blind"
|
||||||
|
{
|
||||||
|
"windows" "86"
|
||||||
|
"linux" "86"
|
||||||
|
"mac" "86"
|
||||||
|
}
|
||||||
|
|
||||||
|
"cstrike_player_ontouchingweapon"
|
||||||
|
{
|
||||||
|
"windows" "87"
|
||||||
|
"linux" "87"
|
||||||
|
"mac" "87"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
1238
gamedata/common.games/virtual.games/dod/offsets-common.txt
Normal file
1238
gamedata/common.games/virtual.games/dod/offsets-common.txt
Normal file
File diff suppressed because it is too large
Load Diff
902
gamedata/common.games/virtual.games/esf/offsets-common.txt
Normal file
902
gamedata/common.games/virtual.games/esf/offsets-common.txt
Normal file
@ -0,0 +1,902 @@
|
|||||||
|
/**
|
||||||
|
* Do not edit this file. Any changes will be overwritten by the gamedata
|
||||||
|
* updater or by upgrading your AMX Mod X install.
|
||||||
|
*
|
||||||
|
* To override data in this file, create a subdirectory named "custom" and
|
||||||
|
* place your own gamedata file(s) inside of it. Such files will be parsed
|
||||||
|
* after AMXX's own.
|
||||||
|
*
|
||||||
|
* For more information, see http://wiki.alliedmods.net/Gamedata_Updating_(AMX_Mod_X)
|
||||||
|
*/
|
||||||
|
|
||||||
|
"Games"
|
||||||
|
{
|
||||||
|
"#default"
|
||||||
|
{
|
||||||
|
"Offsets"
|
||||||
|
{
|
||||||
|
"pev"
|
||||||
|
{
|
||||||
|
"windows" "4"
|
||||||
|
"linux" "0"
|
||||||
|
}
|
||||||
|
|
||||||
|
"base"
|
||||||
|
{
|
||||||
|
"windows" "0x0"
|
||||||
|
"linux" "0x60"
|
||||||
|
}
|
||||||
|
|
||||||
|
"spawn"
|
||||||
|
{
|
||||||
|
"windows" "0"
|
||||||
|
"linux" "2"
|
||||||
|
}
|
||||||
|
|
||||||
|
"precache"
|
||||||
|
{
|
||||||
|
"windows" "1"
|
||||||
|
"linux" "3"
|
||||||
|
}
|
||||||
|
|
||||||
|
"keyvalue"
|
||||||
|
{
|
||||||
|
"windows" "2"
|
||||||
|
"linux" "4"
|
||||||
|
}
|
||||||
|
|
||||||
|
"objectcaps"
|
||||||
|
{
|
||||||
|
"windows" "5"
|
||||||
|
"linux" "7"
|
||||||
|
}
|
||||||
|
|
||||||
|
"activate"
|
||||||
|
{
|
||||||
|
"windows" "6"
|
||||||
|
"linux" "8"
|
||||||
|
}
|
||||||
|
|
||||||
|
"setobjectcollisionbox"
|
||||||
|
{
|
||||||
|
"windows" "7"
|
||||||
|
"linux" "9"
|
||||||
|
}
|
||||||
|
|
||||||
|
"classify"
|
||||||
|
{
|
||||||
|
"windows" "8"
|
||||||
|
"linux" "10"
|
||||||
|
}
|
||||||
|
|
||||||
|
"deathnotice"
|
||||||
|
{
|
||||||
|
"windows" "9"
|
||||||
|
"linux" "11"
|
||||||
|
}
|
||||||
|
|
||||||
|
"traceattack"
|
||||||
|
{
|
||||||
|
"windows" "10"
|
||||||
|
"linux" "12"
|
||||||
|
}
|
||||||
|
|
||||||
|
"takedamage"
|
||||||
|
{
|
||||||
|
"windows" "11"
|
||||||
|
"linux" "13"
|
||||||
|
}
|
||||||
|
|
||||||
|
"takehealth"
|
||||||
|
{
|
||||||
|
"windows" "12"
|
||||||
|
"linux" "14"
|
||||||
|
}
|
||||||
|
|
||||||
|
"killed"
|
||||||
|
{
|
||||||
|
"windows" "13"
|
||||||
|
"linux" "15"
|
||||||
|
}
|
||||||
|
|
||||||
|
"bloodcolor"
|
||||||
|
{
|
||||||
|
"windows" "14"
|
||||||
|
"linux" "16"
|
||||||
|
}
|
||||||
|
|
||||||
|
"tracebleed"
|
||||||
|
{
|
||||||
|
"windows" "15"
|
||||||
|
"linux" "17"
|
||||||
|
}
|
||||||
|
|
||||||
|
"istriggered"
|
||||||
|
{
|
||||||
|
"windows" "16"
|
||||||
|
"linux" "18"
|
||||||
|
}
|
||||||
|
|
||||||
|
"mymonsterpointer"
|
||||||
|
{
|
||||||
|
"windows" "17"
|
||||||
|
"linux" "19"
|
||||||
|
}
|
||||||
|
|
||||||
|
"mysquadmonsterpointer"
|
||||||
|
{
|
||||||
|
"windows" "18"
|
||||||
|
"linux" "20"
|
||||||
|
}
|
||||||
|
|
||||||
|
"gettogglestate"
|
||||||
|
{
|
||||||
|
"windows" "19"
|
||||||
|
"linux" "21"
|
||||||
|
}
|
||||||
|
|
||||||
|
"addpoints"
|
||||||
|
{
|
||||||
|
"windows" "20"
|
||||||
|
"linux" "22"
|
||||||
|
}
|
||||||
|
|
||||||
|
"addpointstoteam"
|
||||||
|
{
|
||||||
|
"windows" "21"
|
||||||
|
"linux" "23"
|
||||||
|
}
|
||||||
|
|
||||||
|
"addplayeritem"
|
||||||
|
{
|
||||||
|
"windows" "22"
|
||||||
|
"linux" "24"
|
||||||
|
}
|
||||||
|
|
||||||
|
"removeplayeritem"
|
||||||
|
{
|
||||||
|
"windows" "23"
|
||||||
|
"linux" "25"
|
||||||
|
}
|
||||||
|
|
||||||
|
"getdelay"
|
||||||
|
{
|
||||||
|
"windows" "24"
|
||||||
|
"linux" "26"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ismoving"
|
||||||
|
{
|
||||||
|
"windows" "25"
|
||||||
|
"linux" "27"
|
||||||
|
}
|
||||||
|
|
||||||
|
"overridereset"
|
||||||
|
{
|
||||||
|
"windows" "26"
|
||||||
|
"linux" "28"
|
||||||
|
}
|
||||||
|
|
||||||
|
"damagedecal"
|
||||||
|
{
|
||||||
|
"windows" "27"
|
||||||
|
"linux" "29"
|
||||||
|
}
|
||||||
|
|
||||||
|
"settogglestate"
|
||||||
|
{
|
||||||
|
"windows" "28"
|
||||||
|
"linux" "30"
|
||||||
|
}
|
||||||
|
|
||||||
|
"startsneaking"
|
||||||
|
{
|
||||||
|
"windows" "29"
|
||||||
|
"linux" "31"
|
||||||
|
}
|
||||||
|
|
||||||
|
"stopsneaking"
|
||||||
|
{
|
||||||
|
"windows" "30"
|
||||||
|
"linux" "32"
|
||||||
|
}
|
||||||
|
|
||||||
|
"oncontrols"
|
||||||
|
{
|
||||||
|
"windows" "31"
|
||||||
|
"linux" "33"
|
||||||
|
}
|
||||||
|
|
||||||
|
"issneaking"
|
||||||
|
{
|
||||||
|
"windows" "32"
|
||||||
|
"linux" "34"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isalive"
|
||||||
|
{
|
||||||
|
"windows" "33"
|
||||||
|
"linux" "35"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isbspmodel"
|
||||||
|
{
|
||||||
|
"windows" "34"
|
||||||
|
"linux" "36"
|
||||||
|
}
|
||||||
|
|
||||||
|
"reflectgauss"
|
||||||
|
{
|
||||||
|
"windows" "35"
|
||||||
|
"linux" "37"
|
||||||
|
}
|
||||||
|
|
||||||
|
"hastarget"
|
||||||
|
{
|
||||||
|
"windows" "36"
|
||||||
|
"linux" "38"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isinworld"
|
||||||
|
{
|
||||||
|
"windows" "37"
|
||||||
|
"linux" "39"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isplayer"
|
||||||
|
{
|
||||||
|
"windows" "38"
|
||||||
|
"linux" "40"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isnetclient"
|
||||||
|
{
|
||||||
|
"windows" "39"
|
||||||
|
"linux" "41"
|
||||||
|
}
|
||||||
|
|
||||||
|
"teamid"
|
||||||
|
{
|
||||||
|
"windows" "40"
|
||||||
|
"linux" "42"
|
||||||
|
}
|
||||||
|
|
||||||
|
"getnexttarget"
|
||||||
|
{
|
||||||
|
"windows" "41"
|
||||||
|
"linux" "43"
|
||||||
|
}
|
||||||
|
|
||||||
|
"think"
|
||||||
|
{
|
||||||
|
"windows" "42"
|
||||||
|
"linux" "44"
|
||||||
|
}
|
||||||
|
|
||||||
|
"touch"
|
||||||
|
{
|
||||||
|
"windows" "43"
|
||||||
|
"linux" "45"
|
||||||
|
}
|
||||||
|
|
||||||
|
"use"
|
||||||
|
{
|
||||||
|
"windows" "44"
|
||||||
|
"linux" "46"
|
||||||
|
}
|
||||||
|
|
||||||
|
"blocked"
|
||||||
|
{
|
||||||
|
"windows" "45"
|
||||||
|
"linux" "47"
|
||||||
|
}
|
||||||
|
|
||||||
|
"respawn"
|
||||||
|
{
|
||||||
|
"windows" "46"
|
||||||
|
"linux" "48"
|
||||||
|
}
|
||||||
|
|
||||||
|
"updateowner"
|
||||||
|
{
|
||||||
|
"windows" "47"
|
||||||
|
"linux" "49"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fbecomeprone"
|
||||||
|
{
|
||||||
|
"windows" "48"
|
||||||
|
"linux" "50"
|
||||||
|
}
|
||||||
|
|
||||||
|
"center"
|
||||||
|
{
|
||||||
|
"windows" "49"
|
||||||
|
"linux" "51"
|
||||||
|
}
|
||||||
|
|
||||||
|
"eyeposition"
|
||||||
|
{
|
||||||
|
"windows" "50"
|
||||||
|
"linux" "52"
|
||||||
|
}
|
||||||
|
|
||||||
|
"earposition"
|
||||||
|
{
|
||||||
|
"windows" "51"
|
||||||
|
"linux" "53"
|
||||||
|
}
|
||||||
|
|
||||||
|
"bodytarget"
|
||||||
|
{
|
||||||
|
"windows" "52"
|
||||||
|
"linux" "54"
|
||||||
|
}
|
||||||
|
|
||||||
|
"illumination"
|
||||||
|
{
|
||||||
|
"windows" "53"
|
||||||
|
"linux" "55"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fvisible"
|
||||||
|
{
|
||||||
|
"windows" "54"
|
||||||
|
"linux" "56"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fvecvisible"
|
||||||
|
{
|
||||||
|
"windows" "55"
|
||||||
|
"linux" "57"
|
||||||
|
}
|
||||||
|
|
||||||
|
"look"
|
||||||
|
{
|
||||||
|
"windows" "57"
|
||||||
|
"linux" "59"
|
||||||
|
}
|
||||||
|
|
||||||
|
"changeyaw"
|
||||||
|
{
|
||||||
|
"windows" "60"
|
||||||
|
"linux" "62"
|
||||||
|
}
|
||||||
|
|
||||||
|
"irelationship"
|
||||||
|
{
|
||||||
|
"windows" "62"
|
||||||
|
"linux" "64"
|
||||||
|
}
|
||||||
|
|
||||||
|
"monsterinitdead"
|
||||||
|
{
|
||||||
|
"windows" "64"
|
||||||
|
"linux" "66"
|
||||||
|
}
|
||||||
|
|
||||||
|
"becomedead"
|
||||||
|
{
|
||||||
|
"windows" "65"
|
||||||
|
"linux" "67"
|
||||||
|
}
|
||||||
|
|
||||||
|
"bestvisibleenemy"
|
||||||
|
{
|
||||||
|
"windows" "67"
|
||||||
|
"linux" "69"
|
||||||
|
}
|
||||||
|
|
||||||
|
"finviewcone"
|
||||||
|
{
|
||||||
|
"windows" "68"
|
||||||
|
"linux" "70"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fvecinviewcone"
|
||||||
|
{
|
||||||
|
"windows" "69"
|
||||||
|
"linux" "71"
|
||||||
|
}
|
||||||
|
|
||||||
|
"runai"
|
||||||
|
{
|
||||||
|
"windows" "58"
|
||||||
|
"linux" "60"
|
||||||
|
}
|
||||||
|
|
||||||
|
"monsterthink"
|
||||||
|
{
|
||||||
|
"windows" "61"
|
||||||
|
"linux" "63"
|
||||||
|
}
|
||||||
|
|
||||||
|
"monsterinit"
|
||||||
|
{
|
||||||
|
"windows" "63"
|
||||||
|
"linux" "65"
|
||||||
|
}
|
||||||
|
|
||||||
|
"checklocalmove"
|
||||||
|
{
|
||||||
|
"windows" "70"
|
||||||
|
"linux" "72"
|
||||||
|
}
|
||||||
|
|
||||||
|
"move"
|
||||||
|
{
|
||||||
|
"windows" "71"
|
||||||
|
"linux" "73"
|
||||||
|
}
|
||||||
|
|
||||||
|
"moveexecute"
|
||||||
|
{
|
||||||
|
"windows" "72"
|
||||||
|
"linux" "74"
|
||||||
|
}
|
||||||
|
|
||||||
|
"shouldadvanceroute"
|
||||||
|
{
|
||||||
|
"windows" "73"
|
||||||
|
"linux" "75"
|
||||||
|
}
|
||||||
|
|
||||||
|
"getstoppedactivity"
|
||||||
|
{
|
||||||
|
"windows" "74"
|
||||||
|
"linux" "76"
|
||||||
|
}
|
||||||
|
|
||||||
|
"stop"
|
||||||
|
{
|
||||||
|
"windows" "75"
|
||||||
|
"linux" "77"
|
||||||
|
}
|
||||||
|
|
||||||
|
"checkrangeattack1"
|
||||||
|
{
|
||||||
|
"windows" "76"
|
||||||
|
"linux" "78"
|
||||||
|
}
|
||||||
|
|
||||||
|
"checkrangeattack2"
|
||||||
|
{
|
||||||
|
"windows" "77"
|
||||||
|
"linux" "79"
|
||||||
|
}
|
||||||
|
|
||||||
|
"checkmeleeattack1"
|
||||||
|
{
|
||||||
|
"windows" "78"
|
||||||
|
"linux" "80"
|
||||||
|
}
|
||||||
|
|
||||||
|
"checkmeleeattack2"
|
||||||
|
{
|
||||||
|
"windows" "79"
|
||||||
|
"linux" "81"
|
||||||
|
}
|
||||||
|
|
||||||
|
"schedulechange"
|
||||||
|
{
|
||||||
|
"windows" "85"
|
||||||
|
"linux" "87"
|
||||||
|
}
|
||||||
|
|
||||||
|
"canplaysequence"
|
||||||
|
{
|
||||||
|
"windows" "86"
|
||||||
|
"linux" "88"
|
||||||
|
}
|
||||||
|
|
||||||
|
"canplaysentence"
|
||||||
|
{
|
||||||
|
"windows" "87"
|
||||||
|
"linux" "89"
|
||||||
|
}
|
||||||
|
|
||||||
|
"playsentence"
|
||||||
|
{
|
||||||
|
"windows" "88"
|
||||||
|
"linux" "90"
|
||||||
|
}
|
||||||
|
|
||||||
|
"playscriptedsentence"
|
||||||
|
{
|
||||||
|
"windows" "89"
|
||||||
|
"linux" "91"
|
||||||
|
}
|
||||||
|
|
||||||
|
"sentencestop"
|
||||||
|
{
|
||||||
|
"windows" "90"
|
||||||
|
"linux" "92"
|
||||||
|
}
|
||||||
|
|
||||||
|
"getidealstate"
|
||||||
|
{
|
||||||
|
"windows" "91"
|
||||||
|
"linux" "93"
|
||||||
|
}
|
||||||
|
|
||||||
|
"setactivity"
|
||||||
|
{
|
||||||
|
"windows" "92"
|
||||||
|
"linux" "94"
|
||||||
|
}
|
||||||
|
|
||||||
|
"reportaistate"
|
||||||
|
{
|
||||||
|
"windows" "93"
|
||||||
|
"linux" "95"
|
||||||
|
}
|
||||||
|
|
||||||
|
"checkenemy"
|
||||||
|
{
|
||||||
|
"windows" "94"
|
||||||
|
"linux" "96"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ftriangulate"
|
||||||
|
{
|
||||||
|
"windows" "95"
|
||||||
|
"linux" "97"
|
||||||
|
}
|
||||||
|
|
||||||
|
"setyawspeed"
|
||||||
|
{
|
||||||
|
"windows" "96"
|
||||||
|
"linux" "98"
|
||||||
|
}
|
||||||
|
|
||||||
|
"buildnearestroute"
|
||||||
|
{
|
||||||
|
"windows" "97"
|
||||||
|
"linux" "99"
|
||||||
|
}
|
||||||
|
|
||||||
|
"findcover"
|
||||||
|
{
|
||||||
|
"windows" "98"
|
||||||
|
"linux" "100"
|
||||||
|
}
|
||||||
|
|
||||||
|
"coverradius"
|
||||||
|
{
|
||||||
|
"windows" "100"
|
||||||
|
"linux" "102"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fcancheckattacks"
|
||||||
|
{
|
||||||
|
"windows" "101"
|
||||||
|
"linux" "103"
|
||||||
|
}
|
||||||
|
|
||||||
|
"checkammo"
|
||||||
|
{
|
||||||
|
"windows" "102"
|
||||||
|
"linux" "104"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ignoreconditions"
|
||||||
|
{
|
||||||
|
"windows" "103"
|
||||||
|
"linux" "105"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fvalidatehinttype"
|
||||||
|
{
|
||||||
|
"windows" "104"
|
||||||
|
"linux" "106"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fcanactiveidle"
|
||||||
|
{
|
||||||
|
"windows" "105"
|
||||||
|
"linux" "107"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isoundmask"
|
||||||
|
{
|
||||||
|
"windows" "106"
|
||||||
|
"linux" "108"
|
||||||
|
}
|
||||||
|
|
||||||
|
"hearingsensitivity"
|
||||||
|
{
|
||||||
|
"windows" "109"
|
||||||
|
"linux" "111"
|
||||||
|
}
|
||||||
|
|
||||||
|
"barnaclevictimbitten"
|
||||||
|
{
|
||||||
|
"windows" "110"
|
||||||
|
"linux" "112"
|
||||||
|
}
|
||||||
|
|
||||||
|
"barnaclevictimreleased"
|
||||||
|
{
|
||||||
|
"windows" "111"
|
||||||
|
"linux" "113"
|
||||||
|
}
|
||||||
|
|
||||||
|
"preschedulethink"
|
||||||
|
{
|
||||||
|
"windows" "112"
|
||||||
|
"linux" "114"
|
||||||
|
}
|
||||||
|
|
||||||
|
"getdeathactivity"
|
||||||
|
{
|
||||||
|
"windows" "113"
|
||||||
|
"linux" "115"
|
||||||
|
}
|
||||||
|
|
||||||
|
"gibmonster"
|
||||||
|
{
|
||||||
|
"windows" "114"
|
||||||
|
"linux" "116"
|
||||||
|
}
|
||||||
|
|
||||||
|
"hashumangibs"
|
||||||
|
{
|
||||||
|
"windows" "115"
|
||||||
|
"linux" "117"
|
||||||
|
}
|
||||||
|
|
||||||
|
"hasaliengibs"
|
||||||
|
{
|
||||||
|
"windows" "116"
|
||||||
|
"linux" "118"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fademonster"
|
||||||
|
{
|
||||||
|
"windows" "117"
|
||||||
|
"linux" "119"
|
||||||
|
}
|
||||||
|
|
||||||
|
"deathsound"
|
||||||
|
{
|
||||||
|
"windows" "119"
|
||||||
|
"linux" "121"
|
||||||
|
}
|
||||||
|
|
||||||
|
"alertsound"
|
||||||
|
{
|
||||||
|
"windows" "120"
|
||||||
|
"linux" "122"
|
||||||
|
}
|
||||||
|
|
||||||
|
"idlesound"
|
||||||
|
{
|
||||||
|
"windows" "121"
|
||||||
|
"linux" "123"
|
||||||
|
}
|
||||||
|
|
||||||
|
"painsound"
|
||||||
|
{
|
||||||
|
"windows" "122"
|
||||||
|
"linux" "124"
|
||||||
|
}
|
||||||
|
|
||||||
|
"stopfollowing"
|
||||||
|
{
|
||||||
|
"windows" "123"
|
||||||
|
"linux" "125"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_jump"
|
||||||
|
{
|
||||||
|
"windows" "124"
|
||||||
|
"linux" "126"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_prethink"
|
||||||
|
{
|
||||||
|
"windows" "125"
|
||||||
|
"linux" "127"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_postthink"
|
||||||
|
{
|
||||||
|
"windows" "126"
|
||||||
|
"linux" "128"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_getgunposition"
|
||||||
|
{
|
||||||
|
"windows" "118"
|
||||||
|
"linux" "120"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_shouldfadeondeath"
|
||||||
|
{
|
||||||
|
"windows" "59"
|
||||||
|
"linux" "61"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_impulsecommands"
|
||||||
|
{
|
||||||
|
"windows" "128"
|
||||||
|
"linux" "130"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_updateclientdata"
|
||||||
|
{
|
||||||
|
"windows" "127"
|
||||||
|
"linux" "129"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_addtoplayer"
|
||||||
|
{
|
||||||
|
"windows" "57"
|
||||||
|
"linux" "59"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_addduplicate"
|
||||||
|
{
|
||||||
|
"windows" "58"
|
||||||
|
"linux" "60"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_getiteminfo"
|
||||||
|
{
|
||||||
|
"windows" "59"
|
||||||
|
"linux" "61"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_candeploy"
|
||||||
|
{
|
||||||
|
"windows" "60"
|
||||||
|
"linux" "62"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_deploy"
|
||||||
|
{
|
||||||
|
"windows" "61"
|
||||||
|
"linux" "63"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_canholster"
|
||||||
|
{
|
||||||
|
"windows" "62"
|
||||||
|
"linux" "64"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_holster"
|
||||||
|
{
|
||||||
|
"windows" "63"
|
||||||
|
"linux" "65"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_updateiteminfo"
|
||||||
|
{
|
||||||
|
"windows" "64"
|
||||||
|
"linux" "66"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_preframe"
|
||||||
|
{
|
||||||
|
"windows" "65"
|
||||||
|
"linux" "67"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_postframe"
|
||||||
|
{
|
||||||
|
"windows" "66"
|
||||||
|
"linux" "68"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_drop"
|
||||||
|
{
|
||||||
|
"windows" "67"
|
||||||
|
"linux" "69"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_kill"
|
||||||
|
{
|
||||||
|
"windows" "68"
|
||||||
|
"linux" "70"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_attachtoplayer"
|
||||||
|
{
|
||||||
|
"windows" "69"
|
||||||
|
"linux" "71"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_primaryammoindex"
|
||||||
|
{
|
||||||
|
"windows" "70"
|
||||||
|
"linux" "72"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_secondaryammoindex"
|
||||||
|
{
|
||||||
|
"windows" "71"
|
||||||
|
"linux" "73"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_updateclientdata"
|
||||||
|
{
|
||||||
|
"windows" "72"
|
||||||
|
"linux" "74"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_getweaponptr"
|
||||||
|
{
|
||||||
|
"windows" "73"
|
||||||
|
"linux" "75"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_itemslot"
|
||||||
|
{
|
||||||
|
"windows" "74"
|
||||||
|
"linux" "76"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_playemptysound"
|
||||||
|
{
|
||||||
|
"windows" "75"
|
||||||
|
"linux" "77"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_resetemptysound"
|
||||||
|
{
|
||||||
|
"windows" "76"
|
||||||
|
"linux" "78"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_sendweaponanim"
|
||||||
|
{
|
||||||
|
"windows" "77"
|
||||||
|
"linux" "79"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_primaryattack"
|
||||||
|
{
|
||||||
|
"windows" "78"
|
||||||
|
"linux" "80"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_secondaryattack"
|
||||||
|
{
|
||||||
|
"windows" "79"
|
||||||
|
"linux" "81"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_weaponidle"
|
||||||
|
{
|
||||||
|
"windows" "80"
|
||||||
|
"linux" "82"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_retireweapon"
|
||||||
|
{
|
||||||
|
"windows" "81"
|
||||||
|
"linux" "83"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_shouldweaponidle"
|
||||||
|
{
|
||||||
|
"windows" "82"
|
||||||
|
"linux" "84"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_usedecrement"
|
||||||
|
{
|
||||||
|
"windows" "83"
|
||||||
|
"linux" "85"
|
||||||
|
}
|
||||||
|
|
||||||
|
"esf_weapon_holsterwhenmeleed"
|
||||||
|
{
|
||||||
|
"windows" "84"
|
||||||
|
"linux" "86"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
1388
gamedata/common.games/virtual.games/esf_openbeta/offsets-common.txt
Normal file
1388
gamedata/common.games/virtual.games/esf_openbeta/offsets-common.txt
Normal file
File diff suppressed because it is too large
Load Diff
1105
gamedata/common.games/virtual.games/gearbox/offsets-common.txt
Normal file
1105
gamedata/common.games/virtual.games/gearbox/offsets-common.txt
Normal file
File diff suppressed because it is too large
Load Diff
878
gamedata/common.games/virtual.games/ns/offsets-common.txt
Normal file
878
gamedata/common.games/virtual.games/ns/offsets-common.txt
Normal file
@ -0,0 +1,878 @@
|
|||||||
|
/**
|
||||||
|
* Do not edit this file. Any changes will be overwritten by the gamedata
|
||||||
|
* updater or by upgrading your AMX Mod X install.
|
||||||
|
*
|
||||||
|
* To override data in this file, create a subdirectory named "custom" and
|
||||||
|
* place your own gamedata file(s) inside of it. Such files will be parsed
|
||||||
|
* after AMXX's own.
|
||||||
|
*
|
||||||
|
* For more information, see http://wiki.alliedmods.net/Gamedata_Updating_(AMX_Mod_X)
|
||||||
|
*/
|
||||||
|
|
||||||
|
"Games"
|
||||||
|
{
|
||||||
|
"#default"
|
||||||
|
{
|
||||||
|
"Offsets"
|
||||||
|
{
|
||||||
|
"pev"
|
||||||
|
{
|
||||||
|
"windows" "4"
|
||||||
|
"linux" "4"
|
||||||
|
}
|
||||||
|
|
||||||
|
"base"
|
||||||
|
{
|
||||||
|
"windows" "0x0"
|
||||||
|
"linux" "0x0"
|
||||||
|
}
|
||||||
|
|
||||||
|
"spawn"
|
||||||
|
{
|
||||||
|
"windows" "0"
|
||||||
|
"linux" "0"
|
||||||
|
}
|
||||||
|
|
||||||
|
"precache"
|
||||||
|
{
|
||||||
|
"windows" "1"
|
||||||
|
"linux" "1"
|
||||||
|
}
|
||||||
|
|
||||||
|
"keyvalue"
|
||||||
|
{
|
||||||
|
"windows" "2"
|
||||||
|
"linux" "2"
|
||||||
|
}
|
||||||
|
|
||||||
|
"objectcaps"
|
||||||
|
{
|
||||||
|
"windows" "5"
|
||||||
|
"linux" "5"
|
||||||
|
}
|
||||||
|
|
||||||
|
"activate"
|
||||||
|
{
|
||||||
|
"windows" "6"
|
||||||
|
"linux" "6"
|
||||||
|
}
|
||||||
|
|
||||||
|
"setobjectcollisionbox"
|
||||||
|
{
|
||||||
|
"windows" "7"
|
||||||
|
"linux" "7"
|
||||||
|
}
|
||||||
|
|
||||||
|
"classify"
|
||||||
|
{
|
||||||
|
"windows" "8"
|
||||||
|
"linux" "8"
|
||||||
|
}
|
||||||
|
|
||||||
|
"deathnotice"
|
||||||
|
{
|
||||||
|
"windows" "9"
|
||||||
|
"linux" "9"
|
||||||
|
}
|
||||||
|
|
||||||
|
"traceattack"
|
||||||
|
{
|
||||||
|
"windows" "10"
|
||||||
|
"linux" "10"
|
||||||
|
}
|
||||||
|
|
||||||
|
"takedamage"
|
||||||
|
{
|
||||||
|
"windows" "11"
|
||||||
|
"linux" "11"
|
||||||
|
}
|
||||||
|
|
||||||
|
"takehealth"
|
||||||
|
{
|
||||||
|
"windows" "12"
|
||||||
|
"linux" "12"
|
||||||
|
}
|
||||||
|
|
||||||
|
"killed"
|
||||||
|
{
|
||||||
|
"windows" "14"
|
||||||
|
"linux" "14"
|
||||||
|
}
|
||||||
|
|
||||||
|
"bloodcolor"
|
||||||
|
{
|
||||||
|
"windows" "16"
|
||||||
|
"linux" "16"
|
||||||
|
}
|
||||||
|
|
||||||
|
"tracebleed"
|
||||||
|
{
|
||||||
|
"windows" "17"
|
||||||
|
"linux" "17"
|
||||||
|
}
|
||||||
|
|
||||||
|
"istriggered"
|
||||||
|
{
|
||||||
|
"windows" "18"
|
||||||
|
"linux" "18"
|
||||||
|
}
|
||||||
|
|
||||||
|
"mymonsterpointer"
|
||||||
|
{
|
||||||
|
"windows" "19"
|
||||||
|
"linux" "19"
|
||||||
|
}
|
||||||
|
|
||||||
|
"mysquadmonsterpointer"
|
||||||
|
{
|
||||||
|
"windows" "20"
|
||||||
|
"linux" "20"
|
||||||
|
}
|
||||||
|
|
||||||
|
"gettogglestate"
|
||||||
|
{
|
||||||
|
"windows" "21"
|
||||||
|
"linux" "21"
|
||||||
|
}
|
||||||
|
|
||||||
|
"addpoints"
|
||||||
|
{
|
||||||
|
"windows" "22"
|
||||||
|
"linux" "22"
|
||||||
|
}
|
||||||
|
|
||||||
|
"addpointstoteam"
|
||||||
|
{
|
||||||
|
"windows" "23"
|
||||||
|
"linux" "23"
|
||||||
|
}
|
||||||
|
|
||||||
|
"addplayeritem"
|
||||||
|
{
|
||||||
|
"windows" "24"
|
||||||
|
"linux" "24"
|
||||||
|
}
|
||||||
|
|
||||||
|
"removeplayeritem"
|
||||||
|
{
|
||||||
|
"windows" "25"
|
||||||
|
"linux" "25"
|
||||||
|
}
|
||||||
|
|
||||||
|
"giveammo"
|
||||||
|
{
|
||||||
|
"windows" "26"
|
||||||
|
"linux" "26"
|
||||||
|
}
|
||||||
|
|
||||||
|
"getdelay"
|
||||||
|
{
|
||||||
|
"windows" "27"
|
||||||
|
"linux" "27"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ismoving"
|
||||||
|
{
|
||||||
|
"windows" "28"
|
||||||
|
"linux" "28"
|
||||||
|
}
|
||||||
|
|
||||||
|
"overridereset"
|
||||||
|
{
|
||||||
|
"windows" "29"
|
||||||
|
"linux" "29"
|
||||||
|
}
|
||||||
|
|
||||||
|
"damagedecal"
|
||||||
|
{
|
||||||
|
"windows" "30"
|
||||||
|
"linux" "30"
|
||||||
|
}
|
||||||
|
|
||||||
|
"settogglestate"
|
||||||
|
{
|
||||||
|
"windows" "31"
|
||||||
|
"linux" "31"
|
||||||
|
}
|
||||||
|
|
||||||
|
"startsneaking"
|
||||||
|
{
|
||||||
|
"windows" "32"
|
||||||
|
"linux" "32"
|
||||||
|
}
|
||||||
|
|
||||||
|
"stopsneaking"
|
||||||
|
{
|
||||||
|
"windows" "33"
|
||||||
|
"linux" "33"
|
||||||
|
}
|
||||||
|
|
||||||
|
"oncontrols"
|
||||||
|
{
|
||||||
|
"windows" "34"
|
||||||
|
"linux" "34"
|
||||||
|
}
|
||||||
|
|
||||||
|
"issneaking"
|
||||||
|
{
|
||||||
|
"windows" "35"
|
||||||
|
"linux" "35"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isalive"
|
||||||
|
{
|
||||||
|
"windows" "36"
|
||||||
|
"linux" "36"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isbspmodel"
|
||||||
|
{
|
||||||
|
"windows" "37"
|
||||||
|
"linux" "37"
|
||||||
|
}
|
||||||
|
|
||||||
|
"reflectgauss"
|
||||||
|
{
|
||||||
|
"windows" "38"
|
||||||
|
"linux" "38"
|
||||||
|
}
|
||||||
|
|
||||||
|
"hastarget"
|
||||||
|
{
|
||||||
|
"windows" "39"
|
||||||
|
"linux" "39"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isinworld"
|
||||||
|
{
|
||||||
|
"windows" "40"
|
||||||
|
"linux" "40"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isplayer"
|
||||||
|
{
|
||||||
|
"windows" "41"
|
||||||
|
"linux" "41"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isnetclient"
|
||||||
|
{
|
||||||
|
"windows" "42"
|
||||||
|
"linux" "42"
|
||||||
|
}
|
||||||
|
|
||||||
|
"teamid"
|
||||||
|
{
|
||||||
|
"windows" "43"
|
||||||
|
"linux" "43"
|
||||||
|
}
|
||||||
|
|
||||||
|
"getnexttarget"
|
||||||
|
{
|
||||||
|
"windows" "46"
|
||||||
|
"linux" "46"
|
||||||
|
}
|
||||||
|
|
||||||
|
"think"
|
||||||
|
{
|
||||||
|
"windows" "47"
|
||||||
|
"linux" "47"
|
||||||
|
}
|
||||||
|
|
||||||
|
"touch"
|
||||||
|
{
|
||||||
|
"windows" "48"
|
||||||
|
"linux" "48"
|
||||||
|
}
|
||||||
|
|
||||||
|
"use"
|
||||||
|
{
|
||||||
|
"windows" "49"
|
||||||
|
"linux" "49"
|
||||||
|
}
|
||||||
|
|
||||||
|
"blocked"
|
||||||
|
{
|
||||||
|
"windows" "50"
|
||||||
|
"linux" "50"
|
||||||
|
}
|
||||||
|
|
||||||
|
"respawn"
|
||||||
|
{
|
||||||
|
"windows" "52"
|
||||||
|
"linux" "52"
|
||||||
|
}
|
||||||
|
|
||||||
|
"updateowner"
|
||||||
|
{
|
||||||
|
"windows" "53"
|
||||||
|
"linux" "53"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fbecomeprone"
|
||||||
|
{
|
||||||
|
"windows" "54"
|
||||||
|
"linux" "54"
|
||||||
|
}
|
||||||
|
|
||||||
|
"center"
|
||||||
|
{
|
||||||
|
"windows" "55"
|
||||||
|
"linux" "55"
|
||||||
|
}
|
||||||
|
|
||||||
|
"eyeposition"
|
||||||
|
{
|
||||||
|
"windows" "56"
|
||||||
|
"linux" "56"
|
||||||
|
}
|
||||||
|
|
||||||
|
"earposition"
|
||||||
|
{
|
||||||
|
"windows" "57"
|
||||||
|
"linux" "57"
|
||||||
|
}
|
||||||
|
|
||||||
|
"bodytarget"
|
||||||
|
{
|
||||||
|
"windows" "58"
|
||||||
|
"linux" "58"
|
||||||
|
}
|
||||||
|
|
||||||
|
"illumination"
|
||||||
|
{
|
||||||
|
"windows" "59"
|
||||||
|
"linux" "59"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fvisible"
|
||||||
|
{
|
||||||
|
"windows" "60"
|
||||||
|
"linux" "60"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fvecvisible"
|
||||||
|
{
|
||||||
|
"windows" "61"
|
||||||
|
"linux" "61"
|
||||||
|
}
|
||||||
|
|
||||||
|
"changeyaw"
|
||||||
|
{
|
||||||
|
"windows" "65"
|
||||||
|
"linux" "65"
|
||||||
|
}
|
||||||
|
|
||||||
|
"hashumangibs"
|
||||||
|
{
|
||||||
|
"windows" "66"
|
||||||
|
"linux" "66"
|
||||||
|
}
|
||||||
|
|
||||||
|
"hasaliengibs"
|
||||||
|
{
|
||||||
|
"windows" "67"
|
||||||
|
"linux" "67"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fademonster"
|
||||||
|
{
|
||||||
|
"windows" "68"
|
||||||
|
"linux" "68"
|
||||||
|
}
|
||||||
|
|
||||||
|
"gibmonster"
|
||||||
|
{
|
||||||
|
"windows" "69"
|
||||||
|
"linux" "69"
|
||||||
|
}
|
||||||
|
|
||||||
|
"getdeathactivity"
|
||||||
|
{
|
||||||
|
"windows" "70"
|
||||||
|
"linux" "70"
|
||||||
|
}
|
||||||
|
|
||||||
|
"becomedead"
|
||||||
|
{
|
||||||
|
"windows" "71"
|
||||||
|
"linux" "71"
|
||||||
|
}
|
||||||
|
|
||||||
|
"irelationship"
|
||||||
|
{
|
||||||
|
"windows" "73"
|
||||||
|
"linux" "73"
|
||||||
|
}
|
||||||
|
|
||||||
|
"painsound"
|
||||||
|
{
|
||||||
|
"windows" "74"
|
||||||
|
"linux" "74"
|
||||||
|
}
|
||||||
|
|
||||||
|
"reportaistate"
|
||||||
|
{
|
||||||
|
"windows" "75"
|
||||||
|
"linux" "75"
|
||||||
|
}
|
||||||
|
|
||||||
|
"monsterinitdead"
|
||||||
|
{
|
||||||
|
"windows" "76"
|
||||||
|
"linux" "76"
|
||||||
|
}
|
||||||
|
|
||||||
|
"look"
|
||||||
|
{
|
||||||
|
"windows" "77"
|
||||||
|
"linux" "77"
|
||||||
|
}
|
||||||
|
|
||||||
|
"bestvisibleenemy"
|
||||||
|
{
|
||||||
|
"windows" "78"
|
||||||
|
"linux" "78"
|
||||||
|
}
|
||||||
|
|
||||||
|
"finviewcone"
|
||||||
|
{
|
||||||
|
"windows" "80"
|
||||||
|
"linux" "80"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fvecinviewcone"
|
||||||
|
{
|
||||||
|
"windows" "81"
|
||||||
|
"linux" "81"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_jump"
|
||||||
|
{
|
||||||
|
"windows" "83"
|
||||||
|
"linux" "83"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_duck"
|
||||||
|
{
|
||||||
|
"windows" "84"
|
||||||
|
"linux" "84"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_prethink"
|
||||||
|
{
|
||||||
|
"windows" "85"
|
||||||
|
"linux" "85"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_postthink"
|
||||||
|
{
|
||||||
|
"windows" "86"
|
||||||
|
"linux" "86"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_getgunposition"
|
||||||
|
{
|
||||||
|
"windows" "87"
|
||||||
|
"linux" "87"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_shouldfadeondeath"
|
||||||
|
{
|
||||||
|
"windows" "72"
|
||||||
|
"linux" "72"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_impulsecommands"
|
||||||
|
{
|
||||||
|
"windows" "101"
|
||||||
|
"linux" "101"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_updateclientdata"
|
||||||
|
{
|
||||||
|
"windows" "99"
|
||||||
|
"linux" "99"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_addtoplayer"
|
||||||
|
{
|
||||||
|
"windows" "64"
|
||||||
|
"linux" "64"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_addduplicate"
|
||||||
|
{
|
||||||
|
"windows" "65"
|
||||||
|
"linux" "65"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_getiteminfo"
|
||||||
|
{
|
||||||
|
"windows" "68"
|
||||||
|
"linux" "68"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_candeploy"
|
||||||
|
{
|
||||||
|
"windows" "69"
|
||||||
|
"linux" "69"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_deploy"
|
||||||
|
{
|
||||||
|
"windows" "70"
|
||||||
|
"linux" "70"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_canholster"
|
||||||
|
{
|
||||||
|
"windows" "71"
|
||||||
|
"linux" "71"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_holster"
|
||||||
|
{
|
||||||
|
"windows" "72"
|
||||||
|
"linux" "72"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_updateiteminfo"
|
||||||
|
{
|
||||||
|
"windows" "74"
|
||||||
|
"linux" "74"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_preframe"
|
||||||
|
{
|
||||||
|
"windows" "75"
|
||||||
|
"linux" "75"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_postframe"
|
||||||
|
{
|
||||||
|
"windows" "76"
|
||||||
|
"linux" "76"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_drop"
|
||||||
|
{
|
||||||
|
"windows" "77"
|
||||||
|
"linux" "77"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_kill"
|
||||||
|
{
|
||||||
|
"windows" "78"
|
||||||
|
"linux" "78"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_attachtoplayer"
|
||||||
|
{
|
||||||
|
"windows" "79"
|
||||||
|
"linux" "79"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_primaryammoindex"
|
||||||
|
{
|
||||||
|
"windows" "80"
|
||||||
|
"linux" "80"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_secondaryammoindex"
|
||||||
|
{
|
||||||
|
"windows" "81"
|
||||||
|
"linux" "81"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_updateclientdata"
|
||||||
|
{
|
||||||
|
"windows" "82"
|
||||||
|
"linux" "82"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_getweaponptr"
|
||||||
|
{
|
||||||
|
"windows" "83"
|
||||||
|
"linux" "83"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_itemslot"
|
||||||
|
{
|
||||||
|
"windows" "84"
|
||||||
|
"linux" "84"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_extractammo"
|
||||||
|
{
|
||||||
|
"windows" "85"
|
||||||
|
"linux" "85"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_extractclipammo"
|
||||||
|
{
|
||||||
|
"windows" "86"
|
||||||
|
"linux" "86"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_addweapon"
|
||||||
|
{
|
||||||
|
"windows" "87"
|
||||||
|
"linux" "87"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_playemptysound"
|
||||||
|
{
|
||||||
|
"windows" "88"
|
||||||
|
"linux" "88"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_resetemptysound"
|
||||||
|
{
|
||||||
|
"windows" "89"
|
||||||
|
"linux" "89"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_sendweaponanim"
|
||||||
|
{
|
||||||
|
"windows" "94"
|
||||||
|
"linux" "94"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_isusable"
|
||||||
|
{
|
||||||
|
"windows" "73"
|
||||||
|
"linux" "73"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_primaryattack"
|
||||||
|
{
|
||||||
|
"windows" "98"
|
||||||
|
"linux" "98"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_secondaryattack"
|
||||||
|
{
|
||||||
|
"windows" "99"
|
||||||
|
"linux" "99"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_reload"
|
||||||
|
{
|
||||||
|
"windows" "100"
|
||||||
|
"linux" "100"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_weaponidle"
|
||||||
|
{
|
||||||
|
"windows" "101"
|
||||||
|
"linux" "101"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_retireweapon"
|
||||||
|
{
|
||||||
|
"windows" "102"
|
||||||
|
"linux" "102"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_shouldweaponidle"
|
||||||
|
{
|
||||||
|
"windows" "103"
|
||||||
|
"linux" "103"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_usedecrement"
|
||||||
|
{
|
||||||
|
"windows" "104"
|
||||||
|
"linux" "104"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_getpointvalue"
|
||||||
|
{
|
||||||
|
"windows" "13"
|
||||||
|
"linux" "13"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_awardkill"
|
||||||
|
{
|
||||||
|
"windows" "15"
|
||||||
|
"linux" "15"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_resetentity"
|
||||||
|
{
|
||||||
|
"windows" "45"
|
||||||
|
"linux" "45"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_updateonremove"
|
||||||
|
{
|
||||||
|
"windows" "51"
|
||||||
|
"linux" "51"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_setbonecontroller"
|
||||||
|
{
|
||||||
|
"windows" "63"
|
||||||
|
"linux" "63"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_savedataforreset"
|
||||||
|
{
|
||||||
|
"windows" "64"
|
||||||
|
"linux" "64"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_gethull"
|
||||||
|
{
|
||||||
|
"windows" "79"
|
||||||
|
"linux" "79"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_getmaxwalkspeed"
|
||||||
|
{
|
||||||
|
"windows" "88"
|
||||||
|
"linux" "88"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_setteamid"
|
||||||
|
{
|
||||||
|
"windows" "90"
|
||||||
|
"linux" "90"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_geteffectiveplayerclass"
|
||||||
|
{
|
||||||
|
"windows" "91"
|
||||||
|
"linux" "91"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_getauthenticationmask"
|
||||||
|
{
|
||||||
|
"windows" "92"
|
||||||
|
"linux" "92"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_effectiveplayerclasschanged"
|
||||||
|
{
|
||||||
|
"windows" "93"
|
||||||
|
"linux" "93"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_needsteamupdate"
|
||||||
|
{
|
||||||
|
"windows" "94"
|
||||||
|
"linux" "94"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_sendteamupdate"
|
||||||
|
{
|
||||||
|
"windows" "95"
|
||||||
|
"linux" "95"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_sendweaponupdate"
|
||||||
|
{
|
||||||
|
"windows" "96"
|
||||||
|
"linux" "96"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_initplayerfromspawn"
|
||||||
|
{
|
||||||
|
"windows" "97"
|
||||||
|
"linux" "97"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_packdeadplayeritems"
|
||||||
|
{
|
||||||
|
"windows" "98"
|
||||||
|
"linux" "98"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_getanimationforactivity"
|
||||||
|
{
|
||||||
|
"windows" "100"
|
||||||
|
"linux" "100"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_startobserver"
|
||||||
|
{
|
||||||
|
"windows" "102"
|
||||||
|
"linux" "102"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_stopobserver"
|
||||||
|
{
|
||||||
|
"windows" "103"
|
||||||
|
"linux" "103"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_getadrenalinefactor"
|
||||||
|
{
|
||||||
|
"windows" "104"
|
||||||
|
"linux" "104"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_givenameditem"
|
||||||
|
{
|
||||||
|
"windows" "106"
|
||||||
|
"linux" "106"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_suicide"
|
||||||
|
{
|
||||||
|
"windows" "107"
|
||||||
|
"linux" "107"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_getcanuseweapon"
|
||||||
|
{
|
||||||
|
"windows" "108"
|
||||||
|
"linux" "108"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_weapon_getweaponprimetime"
|
||||||
|
{
|
||||||
|
"windows" "90"
|
||||||
|
"linux" "90"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_weapon_primeweapon"
|
||||||
|
{
|
||||||
|
"windows" "91"
|
||||||
|
"linux" "91"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_weapon_getisweaponprimed"
|
||||||
|
{
|
||||||
|
"windows" "92"
|
||||||
|
"linux" "92"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_weapon_getisweaponpriming"
|
||||||
|
{
|
||||||
|
"windows" "93"
|
||||||
|
"linux" "93"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_weapon_defaultdeploy"
|
||||||
|
{
|
||||||
|
"windows" "95"
|
||||||
|
"linux" "95"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_weapon_defaultreload"
|
||||||
|
{
|
||||||
|
"windows" "96"
|
||||||
|
"linux" "96"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ns_weapon_getdeploytime"
|
||||||
|
{
|
||||||
|
"windows" "97"
|
||||||
|
"linux" "97"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
1466
gamedata/common.games/virtual.games/svencoop/offsets-common.txt
Normal file
1466
gamedata/common.games/virtual.games/svencoop/offsets-common.txt
Normal file
File diff suppressed because it is too large
Load Diff
1133
gamedata/common.games/virtual.games/tfc/offsets-common.txt
Normal file
1133
gamedata/common.games/virtual.games/tfc/offsets-common.txt
Normal file
File diff suppressed because it is too large
Load Diff
746
gamedata/common.games/virtual.games/ts/offsets-common.txt
Normal file
746
gamedata/common.games/virtual.games/ts/offsets-common.txt
Normal file
@ -0,0 +1,746 @@
|
|||||||
|
/**
|
||||||
|
* Do not edit this file. Any changes will be overwritten by the gamedata
|
||||||
|
* updater or by upgrading your AMX Mod X install.
|
||||||
|
*
|
||||||
|
* To override data in this file, create a subdirectory named "custom" and
|
||||||
|
* place your own gamedata file(s) inside of it. Such files will be parsed
|
||||||
|
* after AMXX's own.
|
||||||
|
*
|
||||||
|
* For more information, see http://wiki.alliedmods.net/Gamedata_Updating_(AMX_Mod_X)
|
||||||
|
*/
|
||||||
|
|
||||||
|
"Games"
|
||||||
|
{
|
||||||
|
"#default"
|
||||||
|
{
|
||||||
|
"Offsets"
|
||||||
|
{
|
||||||
|
"pev"
|
||||||
|
{
|
||||||
|
"windows" "4"
|
||||||
|
"linux" "0"
|
||||||
|
}
|
||||||
|
|
||||||
|
"base"
|
||||||
|
{
|
||||||
|
"windows" "0x0"
|
||||||
|
"linux" "0x60"
|
||||||
|
}
|
||||||
|
|
||||||
|
"spawn"
|
||||||
|
{
|
||||||
|
"windows" "7"
|
||||||
|
"linux" "9"
|
||||||
|
}
|
||||||
|
|
||||||
|
"precache"
|
||||||
|
{
|
||||||
|
"windows" "8"
|
||||||
|
"linux" "10"
|
||||||
|
}
|
||||||
|
|
||||||
|
"keyvalue"
|
||||||
|
{
|
||||||
|
"windows" "9"
|
||||||
|
"linux" "11"
|
||||||
|
}
|
||||||
|
|
||||||
|
"objectcaps"
|
||||||
|
{
|
||||||
|
"windows" "12"
|
||||||
|
"linux" "14"
|
||||||
|
}
|
||||||
|
|
||||||
|
"activate"
|
||||||
|
{
|
||||||
|
"windows" "13"
|
||||||
|
"linux" "15"
|
||||||
|
}
|
||||||
|
|
||||||
|
"setobjectcollisionbox"
|
||||||
|
{
|
||||||
|
"windows" "16"
|
||||||
|
"linux" "18"
|
||||||
|
}
|
||||||
|
|
||||||
|
"classify"
|
||||||
|
{
|
||||||
|
"windows" "17"
|
||||||
|
"linux" "19"
|
||||||
|
}
|
||||||
|
|
||||||
|
"deathnotice"
|
||||||
|
{
|
||||||
|
"windows" "18"
|
||||||
|
"linux" "20"
|
||||||
|
}
|
||||||
|
|
||||||
|
"traceattack"
|
||||||
|
{
|
||||||
|
"windows" "19"
|
||||||
|
"linux" "21"
|
||||||
|
}
|
||||||
|
|
||||||
|
"takedamage"
|
||||||
|
{
|
||||||
|
"windows" "20"
|
||||||
|
"linux" "22"
|
||||||
|
}
|
||||||
|
|
||||||
|
"takehealth"
|
||||||
|
{
|
||||||
|
"windows" "21"
|
||||||
|
"linux" "23"
|
||||||
|
}
|
||||||
|
|
||||||
|
"killed"
|
||||||
|
{
|
||||||
|
"windows" "22"
|
||||||
|
"linux" "24"
|
||||||
|
}
|
||||||
|
|
||||||
|
"bloodcolor"
|
||||||
|
{
|
||||||
|
"windows" "23"
|
||||||
|
"linux" "25"
|
||||||
|
}
|
||||||
|
|
||||||
|
"tracebleed"
|
||||||
|
{
|
||||||
|
"windows" "24"
|
||||||
|
"linux" "26"
|
||||||
|
}
|
||||||
|
|
||||||
|
"istriggered"
|
||||||
|
{
|
||||||
|
"windows" "25"
|
||||||
|
"linux" "27"
|
||||||
|
}
|
||||||
|
|
||||||
|
"mymonsterpointer"
|
||||||
|
{
|
||||||
|
"windows" "26"
|
||||||
|
"linux" "28"
|
||||||
|
}
|
||||||
|
|
||||||
|
"mysquadmonsterpointer"
|
||||||
|
{
|
||||||
|
"windows" "27"
|
||||||
|
"linux" "29"
|
||||||
|
}
|
||||||
|
|
||||||
|
"gettogglestate"
|
||||||
|
{
|
||||||
|
"windows" "28"
|
||||||
|
"linux" "30"
|
||||||
|
}
|
||||||
|
|
||||||
|
"addpoints"
|
||||||
|
{
|
||||||
|
"windows" "29"
|
||||||
|
"linux" "31"
|
||||||
|
}
|
||||||
|
|
||||||
|
"addpointstoteam"
|
||||||
|
{
|
||||||
|
"windows" "30"
|
||||||
|
"linux" "32"
|
||||||
|
}
|
||||||
|
|
||||||
|
"addplayeritem"
|
||||||
|
{
|
||||||
|
"windows" "31"
|
||||||
|
"linux" "33"
|
||||||
|
}
|
||||||
|
|
||||||
|
"removeplayeritem"
|
||||||
|
{
|
||||||
|
"windows" "32"
|
||||||
|
"linux" "34"
|
||||||
|
}
|
||||||
|
|
||||||
|
"giveammo"
|
||||||
|
{
|
||||||
|
"windows" "33"
|
||||||
|
"linux" "35"
|
||||||
|
}
|
||||||
|
|
||||||
|
"getdelay"
|
||||||
|
{
|
||||||
|
"windows" "34"
|
||||||
|
"linux" "36"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ismoving"
|
||||||
|
{
|
||||||
|
"windows" "35"
|
||||||
|
"linux" "37"
|
||||||
|
}
|
||||||
|
|
||||||
|
"overridereset"
|
||||||
|
{
|
||||||
|
"windows" "36"
|
||||||
|
"linux" "38"
|
||||||
|
}
|
||||||
|
|
||||||
|
"damagedecal"
|
||||||
|
{
|
||||||
|
"windows" "37"
|
||||||
|
"linux" "39"
|
||||||
|
}
|
||||||
|
|
||||||
|
"settogglestate"
|
||||||
|
{
|
||||||
|
"windows" "38"
|
||||||
|
"linux" "40"
|
||||||
|
}
|
||||||
|
|
||||||
|
"startsneaking"
|
||||||
|
{
|
||||||
|
"windows" "39"
|
||||||
|
"linux" "41"
|
||||||
|
}
|
||||||
|
|
||||||
|
"stopsneaking"
|
||||||
|
{
|
||||||
|
"windows" "40"
|
||||||
|
"linux" "42"
|
||||||
|
}
|
||||||
|
|
||||||
|
"oncontrols"
|
||||||
|
{
|
||||||
|
"windows" "41"
|
||||||
|
"linux" "43"
|
||||||
|
}
|
||||||
|
|
||||||
|
"issneaking"
|
||||||
|
{
|
||||||
|
"windows" "42"
|
||||||
|
"linux" "44"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isalive"
|
||||||
|
{
|
||||||
|
"windows" "43"
|
||||||
|
"linux" "45"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isbspmodel"
|
||||||
|
{
|
||||||
|
"windows" "44"
|
||||||
|
"linux" "46"
|
||||||
|
}
|
||||||
|
|
||||||
|
"reflectgauss"
|
||||||
|
{
|
||||||
|
"windows" "45"
|
||||||
|
"linux" "47"
|
||||||
|
}
|
||||||
|
|
||||||
|
"hastarget"
|
||||||
|
{
|
||||||
|
"windows" "46"
|
||||||
|
"linux" "48"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isinworld"
|
||||||
|
{
|
||||||
|
"windows" "47"
|
||||||
|
"linux" "49"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isplayer"
|
||||||
|
{
|
||||||
|
"windows" "48"
|
||||||
|
"linux" "50"
|
||||||
|
}
|
||||||
|
|
||||||
|
"isnetclient"
|
||||||
|
{
|
||||||
|
"windows" "49"
|
||||||
|
"linux" "51"
|
||||||
|
}
|
||||||
|
|
||||||
|
"teamid"
|
||||||
|
{
|
||||||
|
"windows" "50"
|
||||||
|
"linux" "52"
|
||||||
|
}
|
||||||
|
|
||||||
|
"getnexttarget"
|
||||||
|
{
|
||||||
|
"windows" "51"
|
||||||
|
"linux" "53"
|
||||||
|
}
|
||||||
|
|
||||||
|
"think"
|
||||||
|
{
|
||||||
|
"windows" "52"
|
||||||
|
"linux" "54"
|
||||||
|
}
|
||||||
|
|
||||||
|
"touch"
|
||||||
|
{
|
||||||
|
"windows" "53"
|
||||||
|
"linux" "55"
|
||||||
|
}
|
||||||
|
|
||||||
|
"use"
|
||||||
|
{
|
||||||
|
"windows" "54"
|
||||||
|
"linux" "56"
|
||||||
|
}
|
||||||
|
|
||||||
|
"blocked"
|
||||||
|
{
|
||||||
|
"windows" "55"
|
||||||
|
"linux" "57"
|
||||||
|
}
|
||||||
|
|
||||||
|
"respawn"
|
||||||
|
{
|
||||||
|
"windows" "57"
|
||||||
|
"linux" "59"
|
||||||
|
}
|
||||||
|
|
||||||
|
"updateowner"
|
||||||
|
{
|
||||||
|
"windows" "58"
|
||||||
|
"linux" "60"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fbecomeprone"
|
||||||
|
{
|
||||||
|
"windows" "59"
|
||||||
|
"linux" "61"
|
||||||
|
}
|
||||||
|
|
||||||
|
"center"
|
||||||
|
{
|
||||||
|
"windows" "60"
|
||||||
|
"linux" "62"
|
||||||
|
}
|
||||||
|
|
||||||
|
"eyeposition"
|
||||||
|
{
|
||||||
|
"windows" "61"
|
||||||
|
"linux" "63"
|
||||||
|
}
|
||||||
|
|
||||||
|
"earposition"
|
||||||
|
{
|
||||||
|
"windows" "62"
|
||||||
|
"linux" "64"
|
||||||
|
}
|
||||||
|
|
||||||
|
"bodytarget"
|
||||||
|
{
|
||||||
|
"windows" "63"
|
||||||
|
"linux" "65"
|
||||||
|
}
|
||||||
|
|
||||||
|
"illumination"
|
||||||
|
{
|
||||||
|
"windows" "64"
|
||||||
|
"linux" "66"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fvisible"
|
||||||
|
{
|
||||||
|
"windows" "65"
|
||||||
|
"linux" "67"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fvecvisible"
|
||||||
|
{
|
||||||
|
"windows" "66"
|
||||||
|
"linux" "68"
|
||||||
|
}
|
||||||
|
|
||||||
|
"changeyaw"
|
||||||
|
{
|
||||||
|
"windows" "68"
|
||||||
|
"linux" "70"
|
||||||
|
}
|
||||||
|
|
||||||
|
"hashumangibs"
|
||||||
|
{
|
||||||
|
"windows" "69"
|
||||||
|
"linux" "71"
|
||||||
|
}
|
||||||
|
|
||||||
|
"hasaliengibs"
|
||||||
|
{
|
||||||
|
"windows" "70"
|
||||||
|
"linux" "72"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fademonster"
|
||||||
|
{
|
||||||
|
"windows" "71"
|
||||||
|
"linux" "73"
|
||||||
|
}
|
||||||
|
|
||||||
|
"gibmonster"
|
||||||
|
{
|
||||||
|
"windows" "72"
|
||||||
|
"linux" "74"
|
||||||
|
}
|
||||||
|
|
||||||
|
"getdeathactivity"
|
||||||
|
{
|
||||||
|
"windows" "73"
|
||||||
|
"linux" "75"
|
||||||
|
}
|
||||||
|
|
||||||
|
"becomedead"
|
||||||
|
{
|
||||||
|
"windows" "74"
|
||||||
|
"linux" "76"
|
||||||
|
}
|
||||||
|
|
||||||
|
"irelationship"
|
||||||
|
{
|
||||||
|
"windows" "76"
|
||||||
|
"linux" "78"
|
||||||
|
}
|
||||||
|
|
||||||
|
"painsound"
|
||||||
|
{
|
||||||
|
"windows" "77"
|
||||||
|
"linux" "79"
|
||||||
|
}
|
||||||
|
|
||||||
|
"reportaistate"
|
||||||
|
{
|
||||||
|
"windows" "78"
|
||||||
|
"linux" "80"
|
||||||
|
}
|
||||||
|
|
||||||
|
"monsterinitdead"
|
||||||
|
{
|
||||||
|
"windows" "79"
|
||||||
|
"linux" "81"
|
||||||
|
}
|
||||||
|
|
||||||
|
"look"
|
||||||
|
{
|
||||||
|
"windows" "80"
|
||||||
|
"linux" "82"
|
||||||
|
}
|
||||||
|
|
||||||
|
"bestvisibleenemy"
|
||||||
|
{
|
||||||
|
"windows" "81"
|
||||||
|
"linux" "83"
|
||||||
|
}
|
||||||
|
|
||||||
|
"finviewcone"
|
||||||
|
{
|
||||||
|
"windows" "82"
|
||||||
|
"linux" "84"
|
||||||
|
}
|
||||||
|
|
||||||
|
"fvecinviewcone"
|
||||||
|
{
|
||||||
|
"windows" "83"
|
||||||
|
"linux" "85"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_jump"
|
||||||
|
{
|
||||||
|
"windows" "84"
|
||||||
|
"linux" "86"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_duck"
|
||||||
|
{
|
||||||
|
"windows" "85"
|
||||||
|
"linux" "87"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_prethink"
|
||||||
|
{
|
||||||
|
"windows" "86"
|
||||||
|
"linux" "88"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_postthink"
|
||||||
|
{
|
||||||
|
"windows" "87"
|
||||||
|
"linux" "89"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_getgunposition"
|
||||||
|
{
|
||||||
|
"windows" "88"
|
||||||
|
"linux" "90"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_shouldfadeondeath"
|
||||||
|
{
|
||||||
|
"windows" "75"
|
||||||
|
"linux" "77"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_impulsecommands"
|
||||||
|
{
|
||||||
|
"windows" "90"
|
||||||
|
"linux" "92"
|
||||||
|
}
|
||||||
|
|
||||||
|
"player_updateclientdata"
|
||||||
|
{
|
||||||
|
"windows" "89"
|
||||||
|
"linux" "91"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_addtoplayer"
|
||||||
|
{
|
||||||
|
"windows" "68"
|
||||||
|
"linux" "70"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_addduplicate"
|
||||||
|
{
|
||||||
|
"windows" "69"
|
||||||
|
"linux" "71"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_candeploy"
|
||||||
|
{
|
||||||
|
"windows" "71"
|
||||||
|
"linux" "73"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_deploy"
|
||||||
|
{
|
||||||
|
"windows" "72"
|
||||||
|
"linux" "74"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_canholster"
|
||||||
|
{
|
||||||
|
"windows" "73"
|
||||||
|
"linux" "75"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_holster"
|
||||||
|
{
|
||||||
|
"windows" "74"
|
||||||
|
"linux" "76"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_updateiteminfo"
|
||||||
|
{
|
||||||
|
"windows" "75"
|
||||||
|
"linux" "77"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_preframe"
|
||||||
|
{
|
||||||
|
"windows" "76"
|
||||||
|
"linux" "78"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_postframe"
|
||||||
|
{
|
||||||
|
"windows" "77"
|
||||||
|
"linux" "79"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_drop"
|
||||||
|
{
|
||||||
|
"windows" "78"
|
||||||
|
"linux" "80"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_kill"
|
||||||
|
{
|
||||||
|
"windows" "79"
|
||||||
|
"linux" "81"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_attachtoplayer"
|
||||||
|
{
|
||||||
|
"windows" "80"
|
||||||
|
"linux" "82"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_primaryammoindex"
|
||||||
|
{
|
||||||
|
"windows" "81"
|
||||||
|
"linux" "83"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_secondaryammoindex"
|
||||||
|
{
|
||||||
|
"windows" "82"
|
||||||
|
"linux" "84"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_updateclientdata"
|
||||||
|
{
|
||||||
|
"windows" "83"
|
||||||
|
"linux" "85"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_getweaponptr"
|
||||||
|
{
|
||||||
|
"windows" "84"
|
||||||
|
"linux" "86"
|
||||||
|
}
|
||||||
|
|
||||||
|
"item_itemslot"
|
||||||
|
{
|
||||||
|
"windows" "85"
|
||||||
|
"linux" "87"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_extractammo"
|
||||||
|
{
|
||||||
|
"windows" "86"
|
||||||
|
"linux" "88"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_extractclipammo"
|
||||||
|
{
|
||||||
|
"windows" "87"
|
||||||
|
"linux" "89"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_addweapon"
|
||||||
|
{
|
||||||
|
"windows" "88"
|
||||||
|
"linux" "90"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_playemptysound"
|
||||||
|
{
|
||||||
|
"windows" "89"
|
||||||
|
"linux" "91"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_resetemptysound"
|
||||||
|
{
|
||||||
|
"windows" "90"
|
||||||
|
"linux" "92"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_sendweaponanim"
|
||||||
|
{
|
||||||
|
"windows" "91"
|
||||||
|
"linux" "93"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_isusable"
|
||||||
|
{
|
||||||
|
"windows" "92"
|
||||||
|
"linux" "94"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_primaryattack"
|
||||||
|
{
|
||||||
|
"windows" "93"
|
||||||
|
"linux" "95"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_secondaryattack"
|
||||||
|
{
|
||||||
|
"windows" "94"
|
||||||
|
"linux" "96"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_reload"
|
||||||
|
{
|
||||||
|
"windows" "96"
|
||||||
|
"linux" "98"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_weaponidle"
|
||||||
|
{
|
||||||
|
"windows" "97"
|
||||||
|
"linux" "99"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_retireweapon"
|
||||||
|
{
|
||||||
|
"windows" "98"
|
||||||
|
"linux" "100"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_shouldweaponidle"
|
||||||
|
{
|
||||||
|
"windows" "99"
|
||||||
|
"linux" "101"
|
||||||
|
}
|
||||||
|
|
||||||
|
"weapon_usedecrement"
|
||||||
|
{
|
||||||
|
"windows" "100"
|
||||||
|
"linux" "102"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ts_breakablerespawn"
|
||||||
|
{
|
||||||
|
"windows" "0"
|
||||||
|
"linux" "2"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ts_canusedthroughwalls"
|
||||||
|
{
|
||||||
|
"windows" "1"
|
||||||
|
"linux" "3"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ts_giveslowmul"
|
||||||
|
{
|
||||||
|
"windows" "2"
|
||||||
|
"linux" "4"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ts_goslow"
|
||||||
|
{
|
||||||
|
"windows" "3"
|
||||||
|
"linux" "5"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ts_inslow"
|
||||||
|
{
|
||||||
|
"windows" "4"
|
||||||
|
"linux" "6"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ts_isobjective"
|
||||||
|
{
|
||||||
|
"windows" "5"
|
||||||
|
"linux" "7"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ts_enableobjective"
|
||||||
|
{
|
||||||
|
"windows" "6"
|
||||||
|
"linux" "8"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ts_onfreeentprivatedata"
|
||||||
|
{
|
||||||
|
"windows" "10"
|
||||||
|
"linux" "12"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ts_shouldcollide"
|
||||||
|
{
|
||||||
|
"windows" "11"
|
||||||
|
"linux" "13"
|
||||||
|
}
|
||||||
|
|
||||||
|
"ts_weapon_alternateattack"
|
||||||
|
{
|
||||||
|
"windows" "95"
|
||||||
|
"linux" "97"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
1091
gamedata/common.games/virtual.games/valve/offsets-common.txt
Normal file
1091
gamedata/common.games/virtual.games/valve/offsets-common.txt
Normal file
File diff suppressed because it is too large
Load Diff
@ -110,7 +110,6 @@ Section "MainSection" SEC01
|
|||||||
File "installer\files\base\addons\amxmodx\configs\core.ini"
|
File "installer\files\base\addons\amxmodx\configs\core.ini"
|
||||||
File "installer\files\base\addons\amxmodx\configs\custommenuitems.cfg"
|
File "installer\files\base\addons\amxmodx\configs\custommenuitems.cfg"
|
||||||
File "installer\files\base\addons\amxmodx\configs\cvars.ini"
|
File "installer\files\base\addons\amxmodx\configs\cvars.ini"
|
||||||
File "installer\files\base\addons\amxmodx\configs\hamdata.ini"
|
|
||||||
File "installer\files\base\addons\amxmodx\configs\maps.ini"
|
File "installer\files\base\addons\amxmodx\configs\maps.ini"
|
||||||
File "installer\files\base\addons\amxmodx\configs\modules.ini"
|
File "installer\files\base\addons\amxmodx\configs\modules.ini"
|
||||||
File "installer\files\base\addons\amxmodx\configs\plugins.ini"
|
File "installer\files\base\addons\amxmodx\configs\plugins.ini"
|
||||||
|
@ -131,7 +131,7 @@ void CPlayer::restartStats(bool all)
|
|||||||
memset(weaponsRnd,0,sizeof(weaponsRnd)); //DEC-Weapon (Round) stats
|
memset(weaponsRnd,0,sizeof(weaponsRnd)); //DEC-Weapon (Round) stats
|
||||||
memset(attackers,0,sizeof(attackers));
|
memset(attackers,0,sizeof(attackers));
|
||||||
memset(victims,0,sizeof(victims));
|
memset(victims,0,sizeof(victims));
|
||||||
memset(&life,0,sizeof(life));
|
life = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPlayer::Init( int pi, edict_t* pe )
|
void CPlayer::Init( int pi, edict_t* pe )
|
||||||
|
@ -95,14 +95,14 @@ void CPlayer::restartStats(bool all)
|
|||||||
if ( all )
|
if ( all )
|
||||||
{
|
{
|
||||||
memset(weapons,0,sizeof(weapons));
|
memset(weapons,0,sizeof(weapons));
|
||||||
memset(&round,0,sizeof(round));
|
memset(static_cast<void *>(&round),0,sizeof(round));
|
||||||
memset(weaponsRnd,0,sizeof(weaponsRnd));
|
memset(weaponsRnd,0,sizeof(weaponsRnd));
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(weaponsLife,0,sizeof(weaponsLife)); //DEC-Weapon (Round) stats
|
memset(weaponsLife,0,sizeof(weaponsLife)); //DEC-Weapon (Round) stats
|
||||||
memset(attackers,0,sizeof(attackers));
|
memset(attackers,0,sizeof(attackers));
|
||||||
memset(victims,0,sizeof(victims));
|
memset(victims,0,sizeof(victims));
|
||||||
memset(&life,0,sizeof(life));
|
life = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPlayer::Init( int pi, edict_t* pe )
|
void CPlayer::Init( int pi, edict_t* pe )
|
||||||
|
@ -172,7 +172,7 @@ void PlayerPreThink_Post(edict_t *pEntity)
|
|||||||
if(pPlayer->clearRound && pPlayer->clearRound < gpGlobals->time)
|
if(pPlayer->clearRound && pPlayer->clearRound < gpGlobals->time)
|
||||||
{
|
{
|
||||||
pPlayer->clearRound = 0.0f;
|
pPlayer->clearRound = 0.0f;
|
||||||
memset(&pPlayer->round,0,sizeof(pPlayer->round));
|
memset(static_cast<void *>(&pPlayer->round),0,sizeof(pPlayer->round));
|
||||||
memset(pPlayer->weaponsRnd,0,sizeof(pPlayer->weaponsRnd));
|
memset(pPlayer->weaponsRnd,0,sizeof(pPlayer->weaponsRnd));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1255,7 +1255,7 @@ static cell AMX_NATIVE_CALL create_tr2(AMX *amx, cell *params)
|
|||||||
tr = g_FreeTRs.front();
|
tr = g_FreeTRs.front();
|
||||||
g_FreeTRs.pop();
|
g_FreeTRs.pop();
|
||||||
}
|
}
|
||||||
memset(tr, 0, sizeof(TraceResult));
|
memset(static_cast<void *>(tr), 0, sizeof(TraceResult));
|
||||||
return reinterpret_cast<cell>(tr);
|
return reinterpret_cast<cell>(tr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,381 +11,46 @@
|
|||||||
// Ham Sandwich Module
|
// Ham Sandwich Module
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "amxxmodule.h"
|
#include <amxxmodule.h>
|
||||||
|
|
||||||
#include "ham_const.h"
|
#include "ham_const.h"
|
||||||
#include "hooklist.h"
|
#include "hooklist.h"
|
||||||
#include "offsets.h"
|
#include "offsets.h"
|
||||||
#include <amtl/am-string.h>
|
|
||||||
|
|
||||||
extern hook_t hooklist[];
|
IGameConfig *CommonConfig;
|
||||||
|
IGameConfigManager *ConfigManager;
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
LEX_INVALID = 0,
|
|
||||||
|
|
||||||
LEX_UNKNOWN,
|
|
||||||
|
|
||||||
LEX_START_SEC,
|
|
||||||
LEX_END_SEC,
|
|
||||||
|
|
||||||
LEX_MIRROR,
|
|
||||||
|
|
||||||
LEX_PEV,
|
|
||||||
LEX_BASE,
|
|
||||||
|
|
||||||
LEX_END
|
|
||||||
};
|
|
||||||
|
|
||||||
const char *tokens[] =
|
|
||||||
{
|
|
||||||
"", // LEX_INVALID
|
|
||||||
|
|
||||||
"", // LEX_UNKNOWN
|
|
||||||
|
|
||||||
"@section", // LEX_START_SEC
|
|
||||||
"@end", // LEX_END_SEC
|
|
||||||
|
|
||||||
"@mirror", // LEX_MIRROR
|
|
||||||
|
|
||||||
"pev", // LEX_PEV
|
|
||||||
"base", // LEX_BASE
|
|
||||||
|
|
||||||
"", // LEX_END
|
|
||||||
};
|
|
||||||
|
|
||||||
static void trim_line(char *input);
|
|
||||||
static void read_mirror(char *input);
|
|
||||||
static void skip_to_end_of_section(FILE *fp);
|
|
||||||
static int lex(char*& buffer);
|
|
||||||
|
|
||||||
int lex(char*& buffer)
|
|
||||||
{
|
|
||||||
trim_line(buffer);
|
|
||||||
|
|
||||||
size_t len;
|
|
||||||
|
|
||||||
for (int i=0; i<LEX_END; i++)
|
|
||||||
{
|
|
||||||
if (tokens[i]!=NULL && *(tokens[i])!='\0')
|
|
||||||
{
|
|
||||||
len=strlen(tokens[i]);
|
|
||||||
if (strncmp(buffer,tokens[i],len)==0)
|
|
||||||
{
|
|
||||||
buffer+=len+1;
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return LEX_UNKNOWN;
|
|
||||||
}
|
|
||||||
|
|
||||||
// How we handle "mirrors"
|
|
||||||
// We just note down the current mod name, and every time
|
|
||||||
// we come across a mirror with the destination that matches
|
|
||||||
// the current mod name, we change the current mod name to
|
|
||||||
// the source for that mirror.
|
|
||||||
|
|
||||||
char CurrentModName[64];
|
|
||||||
|
|
||||||
static void read_mirror(char *input)
|
|
||||||
{
|
|
||||||
char *data=input;
|
|
||||||
char *data2;
|
|
||||||
|
|
||||||
char source[64];
|
|
||||||
char dest[64];
|
|
||||||
|
|
||||||
char old;
|
|
||||||
while ( *data!=' ' &&
|
|
||||||
*data!='\t' &&
|
|
||||||
*data!='\0')
|
|
||||||
{
|
|
||||||
|
|
||||||
data++;
|
|
||||||
}
|
|
||||||
|
|
||||||
old=*data;
|
|
||||||
*data='\0';
|
|
||||||
|
|
||||||
// mark down the source
|
|
||||||
ke::SafeSprintf(source, sizeof(source), "%s", input);
|
|
||||||
|
|
||||||
*data=old;
|
|
||||||
|
|
||||||
while ( *data==' ' ||
|
|
||||||
*data=='\t')
|
|
||||||
{
|
|
||||||
data++;
|
|
||||||
}
|
|
||||||
data2=data;
|
|
||||||
|
|
||||||
while ( *data!=' ' &&
|
|
||||||
*data!='\t' &&
|
|
||||||
*data!='\0')
|
|
||||||
{
|
|
||||||
data++;
|
|
||||||
}
|
|
||||||
old=*data;
|
|
||||||
*data='\0';
|
|
||||||
|
|
||||||
ke::SafeSprintf(dest, sizeof(dest), "%s", data2);
|
|
||||||
|
|
||||||
*data=old;
|
|
||||||
|
|
||||||
if (strcmp(dest, CurrentModName)==0)
|
|
||||||
{
|
|
||||||
ke::SafeSprintf(CurrentModName, sizeof(CurrentModName), "%s", source);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
static void trim_line(char *input)
|
|
||||||
{
|
|
||||||
char *oldinput=input;
|
|
||||||
char *start=input;
|
|
||||||
|
|
||||||
while ( *start==' ' ||
|
|
||||||
*start=='\t' ||
|
|
||||||
*start=='\r' ||
|
|
||||||
*start=='\n')
|
|
||||||
{
|
|
||||||
start++;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Overwrite the whitespace
|
|
||||||
|
|
||||||
if (start != input)
|
|
||||||
{
|
|
||||||
while ((*input++=*start++)!='\0')
|
|
||||||
/* do nothing */ ;
|
|
||||||
}
|
|
||||||
|
|
||||||
start=oldinput;
|
|
||||||
|
|
||||||
start+=strlen(start) - 1;
|
|
||||||
|
|
||||||
while ( start >= oldinput &&
|
|
||||||
( *start == '\0' ||
|
|
||||||
*start == ' ' ||
|
|
||||||
*start == '\r' ||
|
|
||||||
*start == '\n' ||
|
|
||||||
*start == '\t'))
|
|
||||||
{
|
|
||||||
start--;
|
|
||||||
}
|
|
||||||
start++;
|
|
||||||
*start='\0';
|
|
||||||
|
|
||||||
// Now find any comments and cut off at the start
|
|
||||||
|
|
||||||
while (*start != '\0')
|
|
||||||
{
|
|
||||||
if (*start == ';')
|
|
||||||
{
|
|
||||||
*start='\0';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
start++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void skip_to_end_of_section(FILE *fp)
|
|
||||||
{
|
|
||||||
char buffer[1024];
|
|
||||||
|
|
||||||
while (!feof(fp))
|
|
||||||
{
|
|
||||||
buffer[0]='\0';
|
|
||||||
|
|
||||||
fgets(buffer, sizeof(buffer)-1, fp);
|
|
||||||
|
|
||||||
trim_line(buffer);
|
|
||||||
|
|
||||||
char *b=&buffer[0];
|
|
||||||
if (lex(b)==LEX_END_SEC)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
static const char* get_localinfo( const char* name , const char* def = 0 )
|
|
||||||
{
|
|
||||||
const char* b = LOCALINFO( (char*)name );
|
|
||||||
if (((b==0)||(*b==0)) && def )
|
|
||||||
SET_LOCALINFO((char*)name,(char*)(b = def) );
|
|
||||||
return b;
|
|
||||||
}
|
|
||||||
int read_start_section(char *data)
|
|
||||||
{
|
|
||||||
if (strncasecmp(data, CurrentModName, strlen(CurrentModName))==0)
|
|
||||||
{
|
|
||||||
data+=strlen(CurrentModName)+1;
|
|
||||||
trim_line(data);
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
if (strcmp(data, "windows")==0)
|
|
||||||
#elif defined(__linux__)
|
|
||||||
if (strcmp(data, "linux")==0)
|
|
||||||
#elif defined(__APPLE__)
|
|
||||||
if (strcmp(data, "mac")==0)
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
int read_number(char *input)
|
|
||||||
{
|
|
||||||
char *end; /* Temporary pointer, needed for strtoul(). */
|
|
||||||
|
|
||||||
// if begins with 0x or 0X it's to be interpretted as hex
|
|
||||||
if (*input=='0' &&
|
|
||||||
(*(input+1)=='x' || *(input+1)=='X'))
|
|
||||||
{
|
|
||||||
return strtoul(input,&end,16);
|
|
||||||
}
|
|
||||||
|
|
||||||
// otherwise it's to be interpretted as base 10
|
|
||||||
return strtoul(input,&end,10);
|
|
||||||
}
|
|
||||||
void process_pev(char *data)
|
|
||||||
{
|
|
||||||
trim_line(data);
|
|
||||||
Offsets.SetPev(read_number(data));
|
|
||||||
}
|
|
||||||
void process_base(char *data)
|
|
||||||
{
|
|
||||||
trim_line(data);
|
|
||||||
Offsets.SetBase(read_number(data));
|
|
||||||
}
|
|
||||||
void process_key(char *data)
|
|
||||||
{
|
|
||||||
size_t size=0;
|
|
||||||
|
|
||||||
char *a=data;
|
|
||||||
|
|
||||||
while (*a != ' ' && *a != '\t' && *a != '\0')
|
|
||||||
{
|
|
||||||
a++;
|
|
||||||
size++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (size==0)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
int set=0;
|
|
||||||
for (int i=0; i< HAM_LAST_ENTRY_DONT_USE_ME_LOL; i++)
|
|
||||||
{
|
|
||||||
if (strncmp(data, hooklist[i].name, size)==0)
|
|
||||||
{
|
|
||||||
data+=size+1;
|
|
||||||
|
|
||||||
trim_line(data);
|
|
||||||
int value=read_number(data);
|
|
||||||
|
|
||||||
hooklist[i].isset=1;
|
|
||||||
hooklist[i].vtid=value;
|
|
||||||
|
|
||||||
|
|
||||||
set=1;
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (set==0)
|
|
||||||
{
|
|
||||||
printf("stray key in process_key: %s\n", data);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
int ReadConfig(void)
|
int ReadConfig(void)
|
||||||
{
|
{
|
||||||
char FileName[512];
|
ConfigManager = MF_GetConfigManager();
|
||||||
|
|
||||||
MF_BuildPathnameR(FileName,sizeof(FileName),"%s",get_localinfo("amxx_configsdir","addons/amxmodx/configs"));
|
char error[256] = "";
|
||||||
|
|
||||||
strncat(FileName,"/hamdata.ini",sizeof(FileName)-1);
|
if (!ConfigManager->LoadGameConfigFile("common.games", &CommonConfig, error, sizeof error))
|
||||||
|
|
||||||
FILE *fp=fopen(FileName,"r");
|
|
||||||
|
|
||||||
|
|
||||||
ke::SafeSprintf(CurrentModName, sizeof(CurrentModName), "%s", MF_GetModname());
|
|
||||||
|
|
||||||
if (!fp)
|
|
||||||
{
|
{
|
||||||
MF_Log("Unable to open \"%s\" for reading.", FileName);
|
MF_Log("common.games gamedata could not be read: %s", error);
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
char data[2048];
|
TypeDescription value;
|
||||||
|
|
||||||
int insec=0;
|
if (CommonConfig->GetOffset("pev", &value))
|
||||||
|
|
||||||
while (!feof(fp))
|
|
||||||
{
|
{
|
||||||
data[0]='\0';
|
Offsets.SetPev(value.fieldOffset);
|
||||||
|
|
||||||
fgets(data, sizeof(data)-1, fp);
|
|
||||||
|
|
||||||
char *b=&data[0];
|
|
||||||
|
|
||||||
switch(lex(b))
|
|
||||||
{
|
|
||||||
case LEX_PEV:
|
|
||||||
{
|
|
||||||
if (insec)
|
|
||||||
{
|
|
||||||
process_pev(b);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
};
|
|
||||||
case LEX_BASE:
|
|
||||||
{
|
|
||||||
if (insec)
|
|
||||||
{
|
|
||||||
process_base(b);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
};
|
|
||||||
case LEX_MIRROR:
|
|
||||||
{
|
|
||||||
read_mirror(b);
|
|
||||||
break;
|
|
||||||
};
|
|
||||||
case LEX_START_SEC:
|
|
||||||
{
|
|
||||||
insec=read_start_section(b);
|
|
||||||
|
|
||||||
if (!insec)
|
|
||||||
{
|
|
||||||
skip_to_end_of_section(fp);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
};
|
|
||||||
case LEX_END_SEC:
|
|
||||||
{
|
|
||||||
insec=0;
|
|
||||||
break;
|
|
||||||
};
|
|
||||||
case LEX_UNKNOWN:
|
|
||||||
{
|
|
||||||
if (insec)
|
|
||||||
{
|
|
||||||
process_key(b);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (CommonConfig->GetOffset("base", &value))
|
||||||
|
{
|
||||||
|
Offsets.SetBase(value.fieldOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
fclose(fp);
|
for (auto index = 0; index < HAM_LAST_ENTRY_DONT_USE_ME_LOL; ++index)
|
||||||
|
{
|
||||||
|
if (CommonConfig->GetOffset(hooklist[index].name, &value))
|
||||||
|
{
|
||||||
|
hooklist[index].isset = 1;
|
||||||
|
hooklist[index].vtid = value.fieldOffset;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -558,7 +558,7 @@ enum
|
|||||||
HAM_OK = 0,
|
HAM_OK = 0,
|
||||||
|
|
||||||
HAM_INVALID_FUNC, // The function is not valid
|
HAM_INVALID_FUNC, // The function is not valid
|
||||||
HAM_FUNC_NOT_CONFIGURED, // This function is not configured in hamdata.ini
|
HAM_FUNC_NOT_CONFIGURED, // This function is not configured in gamedata
|
||||||
HAM_FUNC_NOT_AVAILABLE, // This function is not more available in the mod
|
HAM_FUNC_NOT_AVAILABLE, // This function is not more available in the mod
|
||||||
|
|
||||||
HAM_ERR_END
|
HAM_ERR_END
|
||||||
|
@ -33,7 +33,7 @@ extern HLTypeConversion TypeConversion;
|
|||||||
return 0; \
|
return 0; \
|
||||||
} else if (hooklist[x].isset == 0) { \
|
} else if (hooklist[x].isset == 0) { \
|
||||||
char msg[1024]; \
|
char msg[1024]; \
|
||||||
ke::SafeSprintf(msg, sizeof(msg), "Function %s is not configured in hamdata.ini.", hooklist[x].name); \
|
ke::SafeSprintf(msg, sizeof(msg), "Function %s is not configured in gamedata.", hooklist[x].name); \
|
||||||
FailPlugin(amx, x, HAM_FUNC_NOT_CONFIGURED, msg); \
|
FailPlugin(amx, x, HAM_FUNC_NOT_CONFIGURED, msg); \
|
||||||
return 0; \
|
return 0; \
|
||||||
}
|
}
|
||||||
|
@ -136,7 +136,7 @@ extern bool gDoForwards;
|
|||||||
#define CHECK_RETURN_VEC() \
|
#define CHECK_RETURN_VEC() \
|
||||||
if (thisresult < HAM_OVERRIDE) \
|
if (thisresult < HAM_OVERRIDE) \
|
||||||
{ \
|
{ \
|
||||||
memcpy(out, &origret, sizeof(Vector)); \
|
memcpy(static_cast<void *>(out), &origret, sizeof(Vector)); \
|
||||||
return; \
|
return; \
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -852,8 +852,8 @@ void Hook_Vector_Float_Cbase_Int(Hook *hook, Vector *out, void *pthis, float f1,
|
|||||||
|
|
||||||
MAKE_VECTOR()
|
MAKE_VECTOR()
|
||||||
|
|
||||||
memset(&ret, 0x0, sizeof(Vector));
|
memset(static_cast<void *>(&ret), 0x0, sizeof(Vector));
|
||||||
memset(&origret, 0x0, sizeof(Vector));
|
memset(static_cast<void *>(&origret), 0x0, sizeof(Vector));
|
||||||
|
|
||||||
int iEnt = TypeConversion.cbase_to_id(cb);
|
int iEnt = TypeConversion.cbase_to_id(cb);
|
||||||
|
|
||||||
@ -879,7 +879,7 @@ void Hook_Vector_Float_Cbase_Int(Hook *hook, Vector *out, void *pthis, float f1,
|
|||||||
POP()
|
POP()
|
||||||
|
|
||||||
CHECK_RETURN_VEC()
|
CHECK_RETURN_VEC()
|
||||||
memcpy(out, &ret, sizeof(Vector));
|
memcpy(static_cast<void *>(out), &ret, sizeof(Vector));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Hook_Void_Cbase_Cbase_Int_Float(Hook *hook, void *pthis, void *cb1, void *cb2, int i1, float f1)
|
void Hook_Void_Cbase_Cbase_Int_Float(Hook *hook, void *pthis, void *cb1, void *cb2, int i1, float f1)
|
||||||
@ -1038,8 +1038,8 @@ void Hook_Vector_Void(Hook *hook, Vector *out, void *pthis)
|
|||||||
|
|
||||||
MAKE_VECTOR()
|
MAKE_VECTOR()
|
||||||
|
|
||||||
memset(&ret, 0x0, sizeof(Vector));
|
memset(static_cast<void *>(&ret), 0x0, sizeof(Vector));
|
||||||
memset(&origret, 0x0, sizeof(Vector));
|
memset(static_cast<void *>(&origret), 0x0, sizeof(Vector));
|
||||||
|
|
||||||
PRE_START()
|
PRE_START()
|
||||||
PRE_END()
|
PRE_END()
|
||||||
@ -1056,7 +1056,7 @@ void Hook_Vector_Void(Hook *hook, Vector *out, void *pthis)
|
|||||||
KILL_VECTOR()
|
KILL_VECTOR()
|
||||||
POP()
|
POP()
|
||||||
CHECK_RETURN_VEC()
|
CHECK_RETURN_VEC()
|
||||||
memcpy(out, &ret, sizeof(Vector));
|
memcpy(static_cast<void *>(out), &ret, sizeof(Vector));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1074,8 +1074,8 @@ void Hook_Vector_pVector(Hook *hook, Vector *out, void *pthis, Vector *v1)
|
|||||||
MAKE_VECTOR()
|
MAKE_VECTOR()
|
||||||
P_PTRVECTOR(v1)
|
P_PTRVECTOR(v1)
|
||||||
|
|
||||||
memset(&ret, 0x0, sizeof(Vector));
|
memset(static_cast<void *>(&ret), 0x0, sizeof(Vector));
|
||||||
memset(&origret, 0x0, sizeof(Vector));
|
memset(static_cast<void *>(&origret), 0x0, sizeof(Vector));
|
||||||
|
|
||||||
PRE_START()
|
PRE_START()
|
||||||
, MF_PrepareCellArrayA(reinterpret_cast<cell *>(v1), 3, false)
|
, MF_PrepareCellArrayA(reinterpret_cast<cell *>(v1), 3, false)
|
||||||
@ -1094,7 +1094,7 @@ void Hook_Vector_pVector(Hook *hook, Vector *out, void *pthis, Vector *v1)
|
|||||||
KILL_VECTOR()
|
KILL_VECTOR()
|
||||||
POP()
|
POP()
|
||||||
CHECK_RETURN_VEC()
|
CHECK_RETURN_VEC()
|
||||||
memcpy(out, &ret, sizeof(Vector));
|
memcpy(static_cast<void *>(out), &ret, sizeof(Vector));
|
||||||
}
|
}
|
||||||
|
|
||||||
int Hook_Int_pVector(Hook *hook, void *pthis, Vector *v1)
|
int Hook_Int_pVector(Hook *hook, void *pthis, Vector *v1)
|
||||||
@ -1476,8 +1476,8 @@ void Hook_Vector_Float(Hook *hook, Vector *out, void *pthis, float f1)
|
|||||||
MAKE_VECTOR()
|
MAKE_VECTOR()
|
||||||
P_FLOAT(f1)
|
P_FLOAT(f1)
|
||||||
|
|
||||||
memset(&ret, 0x0, sizeof(Vector));
|
memset(static_cast<void *>(&ret), 0x0, sizeof(Vector));
|
||||||
memset(&origret, 0x0, sizeof(Vector));
|
memset(static_cast<void *>(&origret), 0x0, sizeof(Vector));
|
||||||
|
|
||||||
PRE_START()
|
PRE_START()
|
||||||
, f1
|
, f1
|
||||||
@ -1496,7 +1496,7 @@ void Hook_Vector_Float(Hook *hook, Vector *out, void *pthis, float f1)
|
|||||||
KILL_VECTOR()
|
KILL_VECTOR()
|
||||||
POP()
|
POP()
|
||||||
CHECK_RETURN_VEC()
|
CHECK_RETURN_VEC()
|
||||||
memcpy(out, &ret, sizeof(Vector));
|
memcpy(static_cast<void *>(out), &ret, sizeof(Vector));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3269,8 +3269,8 @@ void Hook_Vector_Vector_Vector_Vector(Hook *hook, Vector *out, void *pthis, Vect
|
|||||||
P_VECTOR(v2)
|
P_VECTOR(v2)
|
||||||
P_VECTOR(v3)
|
P_VECTOR(v3)
|
||||||
|
|
||||||
memset(&ret, 0x0, sizeof(Vector));
|
memset(static_cast<void *>(&ret), 0x0, sizeof(Vector));
|
||||||
memset(&origret, 0x0, sizeof(Vector));
|
memset(static_cast<void *>(&origret), 0x0, sizeof(Vector));
|
||||||
|
|
||||||
PRE_START()
|
PRE_START()
|
||||||
, MF_PrepareCellArrayA(reinterpret_cast<cell *>(&v1), 3, false)
|
, MF_PrepareCellArrayA(reinterpret_cast<cell *>(&v1), 3, false)
|
||||||
@ -3294,7 +3294,7 @@ void Hook_Vector_Vector_Vector_Vector(Hook *hook, Vector *out, void *pthis, Vect
|
|||||||
POP()
|
POP()
|
||||||
CHECK_RETURN_VEC()
|
CHECK_RETURN_VEC()
|
||||||
|
|
||||||
memcpy(out, &ret, sizeof(Vector));
|
memcpy(static_cast<void *>(out), &ret, sizeof(Vector));
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *Hook_Str_Str(Hook *hook, void *pthis, const char* str)
|
const char *Hook_Str_Str(Hook *hook, void *pthis, const char* str)
|
||||||
|
@ -697,12 +697,6 @@ static cell AMX_NATIVE_CALL amxx_json_object_set_value(AMX *amx, cell *params)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!JsonMngr->IsValidHandle(params[3]))
|
|
||||||
{
|
|
||||||
MF_LogError(amx, AMX_ERR_NATIVE, "Invalid JSON value! %d", params[3]);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int len;
|
int len;
|
||||||
auto name = MF_GetAmxString(amx, params[2], 0, &len);
|
auto name = MF_GetAmxString(amx, params[2], 0, &len);
|
||||||
|
|
||||||
|
@ -178,7 +178,7 @@ void MysqlThread::RunThread(IThreadHandle *pHandle)
|
|||||||
|
|
||||||
float save_time = m_qrInfo.queue_time;
|
float save_time = m_qrInfo.queue_time;
|
||||||
|
|
||||||
memset(&m_qrInfo, 0, sizeof(m_qrInfo));
|
memset(static_cast<void *>(&m_qrInfo), 0, sizeof(m_qrInfo));
|
||||||
|
|
||||||
m_qrInfo.queue_time = save_time;
|
m_qrInfo.queue_time = save_time;
|
||||||
|
|
||||||
|
@ -162,7 +162,7 @@ void MysqlThread::RunThread(IThreadHandle *pHandle)
|
|||||||
|
|
||||||
float save_time = m_qrInfo.queue_time;
|
float save_time = m_qrInfo.queue_time;
|
||||||
|
|
||||||
memset(&m_qrInfo, 0, sizeof(m_qrInfo));
|
memset(static_cast<void *>(&m_qrInfo), 0, sizeof(m_qrInfo));
|
||||||
|
|
||||||
m_qrInfo.queue_time = save_time;
|
m_qrInfo.queue_time = save_time;
|
||||||
|
|
||||||
|
@ -130,7 +130,7 @@ void CPlayer::restartStats(bool all)
|
|||||||
memset(weaponsRnd,0,sizeof(weaponsRnd)); //DEC-Weapon (Round) stats
|
memset(weaponsRnd,0,sizeof(weaponsRnd)); //DEC-Weapon (Round) stats
|
||||||
memset(attackers,0,sizeof(attackers));
|
memset(attackers,0,sizeof(attackers));
|
||||||
memset(victims,0,sizeof(victims));
|
memset(victims,0,sizeof(victims));
|
||||||
memset(&life,0,sizeof(life));
|
life = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPlayer::Init( int pi, edict_t* pe )
|
void CPlayer::Init( int pi, edict_t* pe )
|
||||||
|
@ -121,23 +121,10 @@ void Client_Damage(void* mValue){
|
|||||||
if ( FNullEnt( enemy ) )
|
if ( FNullEnt( enemy ) )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef _DEBUG_TFCX
|
|
||||||
ALERT(at_logged, "Clinet_damage Called with state-%d dmg-%d Netname'%s'(Class'%s') slno-'%d'\n",
|
|
||||||
mState, damage, STRING(mPlayer->pEdict->v.netname),
|
|
||||||
STRING(mPlayer->pEdict->v.classname), mPlayer->pEdict->serialnumber);
|
|
||||||
|
|
||||||
ALERT(at_logged, " Called with enemy-slno-%d Netname:'%s'(Class'%s')\n", mPlayer->pEdict->serialnumber,
|
|
||||||
STRING(enemy->v.netname), STRING(enemy->v.classname));
|
|
||||||
#endif // _DEBUG_TFCX
|
|
||||||
|
|
||||||
if (enemy->v.flags & (FL_CLIENT | FL_FAKECLIENT) ) { // attacker is player and his active weapon
|
if (enemy->v.flags & (FL_CLIENT | FL_FAKECLIENT) ) { // attacker is player and his active weapon
|
||||||
|
|
||||||
pAttacker = GET_PLAYER_POINTER(enemy);
|
pAttacker = GET_PLAYER_POINTER(enemy);
|
||||||
|
|
||||||
#ifdef _DEBUG_TFCX
|
|
||||||
ALERT(at_logged, " attacker is player and his active weapon id-%d, has flags - (FL_CLIENT | FL_FAKECLIENT)\n\n", pAttacker->current);
|
|
||||||
#endif // _DEBUG_TFCX
|
|
||||||
|
|
||||||
aim = pAttacker->aiming;
|
aim = pAttacker->aiming;
|
||||||
weapon = pAttacker->current;
|
weapon = pAttacker->current;
|
||||||
|
|
||||||
@ -163,15 +150,6 @@ void Client_Damage(void* mValue){
|
|||||||
|
|
||||||
pAttacker = GET_PLAYER_POINTER(enemy->v.owner);
|
pAttacker = GET_PLAYER_POINTER(enemy->v.owner);
|
||||||
|
|
||||||
#ifdef _DEBUG_TFCX
|
|
||||||
ALERT(at_logged, " attacker is Class'%s'(with its enmy as Netname'%s'[Class'%s']) and his owner is '%s(%s)' enemy->owner has flags - FL_CLIENT | FL_FAKECLIENT\n\n",
|
|
||||||
(enemy ? STRING(enemy->v.classname) : "Null"),
|
|
||||||
(enemy->v.enemy ? STRING(enemy->v.enemy->v.netname) : "Null"),
|
|
||||||
(enemy->v.enemy ? STRING(enemy->v.enemy->v.classname) : "Null"),
|
|
||||||
(enemy->v.owner ? STRING(enemy->v.owner->v.netname) : "Null"),
|
|
||||||
(enemy->v.owner ? STRING(enemy->v.owner->v.classname) : "Null"));
|
|
||||||
#endif // _DEBUG_TFCX
|
|
||||||
|
|
||||||
const char *szClass = STRING(enemy->v.classname);
|
const char *szClass = STRING(enemy->v.classname);
|
||||||
|
|
||||||
switch(szClass[10]){
|
switch(szClass[10]){
|
||||||
@ -207,8 +185,16 @@ void Client_Damage(void* mValue){
|
|||||||
if ( !weapon ) {
|
if ( !weapon ) {
|
||||||
switch(szClass[3]){
|
switch(szClass[3]){
|
||||||
case 'e':
|
case 'e':
|
||||||
weapon = TFC_WPN_TIMER; // TFC_WPN_MEDKIT ?? //ShootingKing: Class - "timer"
|
weapon = TFC_WPN_TIMER; // TFC_WPN_MEDKIT ??
|
||||||
pAttacker = GET_PLAYER_POINTER(enemy->v.enemy);
|
|
||||||
|
tempInt = get_pdata_ehandle(mPlayer->pEdict, pdTimerOwner * 4); // function is char-based.
|
||||||
|
|
||||||
|
if (tempInt < 1 || tempInt > gpGlobals->maxClients)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
pAttacker = GET_PLAYER_POINTER_I(tempInt);
|
||||||
|
|
||||||
if (pAttacker->teamId == mPlayer->teamId) // ???
|
if (pAttacker->teamId == mPlayer->teamId) // ???
|
||||||
{
|
{
|
||||||
|
@ -82,7 +82,7 @@ void CPlayer::restartStats(bool all)
|
|||||||
memset(weaponsRnd,0,sizeof(weaponsRnd)); //DEC-Weapon (Round) stats
|
memset(weaponsRnd,0,sizeof(weaponsRnd)); //DEC-Weapon (Round) stats
|
||||||
memset(attackers,0,sizeof(attackers));
|
memset(attackers,0,sizeof(attackers));
|
||||||
memset(victims,0,sizeof(victims));
|
memset(victims,0,sizeof(victims));
|
||||||
memset(&life,0,sizeof(life));
|
life = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
void CPlayer::Init( int pi, edict_t* pe )
|
void CPlayer::Init( int pi, edict_t* pe )
|
||||||
|
@ -14,64 +14,97 @@
|
|||||||
#include <amxmodx>
|
#include <amxmodx>
|
||||||
#include <amxmisc>
|
#include <amxmisc>
|
||||||
|
|
||||||
new g_ResPtr
|
new CvarReservation;
|
||||||
new g_HidePtr
|
new CvarHideSlots;
|
||||||
new g_sv_visiblemaxplayers
|
|
||||||
|
new CvarHandleMaxVisiblePlayers;
|
||||||
|
|
||||||
public plugin_init()
|
public plugin_init()
|
||||||
{
|
{
|
||||||
register_plugin("Slots Reservation", AMXX_VERSION_STR, "AMXX Dev Team")
|
register_plugin("Slots Reservation", AMXX_VERSION_STR, "AMXX Dev Team");
|
||||||
register_dictionary("adminslots.txt")
|
|
||||||
register_dictionary("common.txt")
|
register_dictionary("adminslots.txt");
|
||||||
g_ResPtr = register_cvar("amx_reservation", "0", FCVAR_PROTECTED)
|
register_dictionary("common.txt");
|
||||||
g_HidePtr = register_cvar("amx_hideslots", "0")
|
|
||||||
g_sv_visiblemaxplayers = get_cvar_pointer("sv_visiblemaxplayers")
|
hook_cvar_change(create_cvar("amx_reservation", "0", FCVAR_PROTECTED, fmt("%L", LANG_SERVER, "CVAR_RESERVATION"), .has_min = true, .min_val = 0.0, .has_max = true, .max_val = float(MaxClients - 1)), "@OnReservationChange");
|
||||||
|
hook_cvar_change(create_cvar("amx_hideslots" , "0", FCVAR_NONE , fmt("%L", LANG_SERVER, "CVAR_HIDESLOTS") , .has_min = true, .min_val = 0.0, .has_max = true, .max_val = 1.0), "@OnHideSlotsChange");
|
||||||
|
|
||||||
|
CvarHandleMaxVisiblePlayers = get_cvar_pointer("sv_visiblemaxplayers");
|
||||||
}
|
}
|
||||||
|
|
||||||
public plugin_cfg()
|
@OnReservationChange(const handle, const oldValue[], const newValue[])
|
||||||
{
|
{
|
||||||
set_task(3.0, "MapLoaded")
|
CvarReservation = strtol(newValue);
|
||||||
|
|
||||||
|
setVisibleSlots();
|
||||||
}
|
}
|
||||||
|
|
||||||
public MapLoaded()
|
@OnHideSlotsChange(const handle, const oldValue[], const newValue[])
|
||||||
{
|
{
|
||||||
if (get_pcvar_num(g_HidePtr))
|
CvarHideSlots = strtol(newValue);
|
||||||
{
|
|
||||||
setVisibleSlots(get_playersnum(1), MaxClients - get_pcvar_num(g_ResPtr))
|
setVisibleSlots();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public client_authorized(id)
|
public client_authorized(id)
|
||||||
{
|
{
|
||||||
new players = get_playersnum(1)
|
setVisibleSlots(id);
|
||||||
new limit = MaxClients - get_pcvar_num(g_ResPtr)
|
|
||||||
|
|
||||||
if (access(id, ADMIN_RESERVATION) || (players <= limit))
|
|
||||||
{
|
|
||||||
if (get_pcvar_num(g_HidePtr))
|
|
||||||
setVisibleSlots(players, limit)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
server_cmd("kick #%d ^"%L^"", get_user_userid(id), id, "DROPPED_RES")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public client_remove(id)
|
public client_remove(id)
|
||||||
{
|
{
|
||||||
if (get_pcvar_num(g_HidePtr))
|
setVisibleSlots();
|
||||||
{
|
|
||||||
setVisibleSlots(get_playersnum(1), MaxClients - get_pcvar_num(g_ResPtr))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setVisibleSlots(players, limit)
|
setVisibleSlots(const playerId = 0)
|
||||||
{
|
{
|
||||||
new num = players + 1
|
if ((playerId == 0 && !CvarHideSlots) || !CvarReservation)
|
||||||
|
{
|
||||||
|
if (get_pcvar_num(CvarHandleMaxVisiblePlayers) > 0)
|
||||||
|
{
|
||||||
|
resetVisibleSlots(MaxClients);
|
||||||
|
}
|
||||||
|
|
||||||
if (players == MaxClients)
|
return;
|
||||||
num = MaxClients
|
}
|
||||||
else if (players < limit)
|
|
||||||
num = limit
|
|
||||||
|
|
||||||
set_pcvar_num(g_sv_visiblemaxplayers, num)
|
new const playersCount = get_playersnum_ex(GetPlayers_IncludeConnecting);
|
||||||
|
new const freeVisibleSlots = MaxClients - CvarReservation;
|
||||||
|
|
||||||
|
if (playerId != 0)
|
||||||
|
{
|
||||||
|
if (playersCount > freeVisibleSlots && !access(playerId, ADMIN_RESERVATION))
|
||||||
|
{
|
||||||
|
server_cmd("kick #%d ^"%L^"", get_user_userid(playerId), playerId, "DROPPED_RES");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!CvarHideSlots)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
new maxVisiblePlayers = playersCount + 1;
|
||||||
|
|
||||||
|
if (playersCount == MaxClients)
|
||||||
|
{
|
||||||
|
maxVisiblePlayers = MaxClients;
|
||||||
|
}
|
||||||
|
else if (playersCount < freeVisibleSlots)
|
||||||
|
{
|
||||||
|
maxVisiblePlayers = freeVisibleSlots;
|
||||||
|
}
|
||||||
|
|
||||||
|
resetVisibleSlots(maxVisiblePlayers);
|
||||||
|
}
|
||||||
|
|
||||||
|
resetVisibleSlots(value)
|
||||||
|
{
|
||||||
|
if (value == MaxClients)
|
||||||
|
{
|
||||||
|
value = -1; // Default sv_visiblemaxplayers value.
|
||||||
|
}
|
||||||
|
|
||||||
|
set_pcvar_num(CvarHandleMaxVisiblePlayers, value);
|
||||||
}
|
}
|
||||||
|
@ -495,10 +495,8 @@ findAdminsWithMenu(playersList[MAX_PLAYERS], &playersCount, const commandLevel =
|
|||||||
|
|
||||||
get_players(playersList, playersCount, "ch");
|
get_players(playersList, playersCount, "ch");
|
||||||
|
|
||||||
for (new i = 0; i < playersCount; ++i)
|
for (new i = 0; i < playersCount, (player = playersList[i]); ++i)
|
||||||
{
|
{
|
||||||
player = playersList[i]
|
|
||||||
|
|
||||||
if (player_menu_info(player, menu, newmenu) && newmenu != -1 && newmenu == MenuHandle[player])
|
if (player_menu_info(player, menu, newmenu) && newmenu != -1 && newmenu == MenuHandle[player])
|
||||||
{
|
{
|
||||||
if (commandLevel == -1 || access(player, commandLevel)) // extra safety
|
if (commandLevel == -1 || access(player, commandLevel)) // extra safety
|
||||||
@ -521,10 +519,8 @@ refreshMenus(const commandLevel = 0, const bool:displaySaveMessage = false)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (new i = 0, player; i < playersCount; ++i)
|
for (new i = 0, player; i < playersCount, (player = playersList[i]); ++i)
|
||||||
{
|
{
|
||||||
player = playersList[i]
|
|
||||||
|
|
||||||
MenuHandle[player] = displayMenu(player, MenuPosition[player]);
|
MenuHandle[player] = displayMenu(player, MenuPosition[player]);
|
||||||
|
|
||||||
if (displaySaveMessage)
|
if (displaySaveMessage)
|
||||||
|
@ -29,6 +29,11 @@
|
|||||||
*/
|
*/
|
||||||
#define MAX_STRING_LENGTH 16384
|
#define MAX_STRING_LENGTH 16384
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The maximum buffer size required to store a map's name.
|
||||||
|
*/
|
||||||
|
#define MAX_MAPNAME_LENGTH 64
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Defines and constants related to the maximum number of clients.
|
* Defines and constants related to the maximum number of clients.
|
||||||
*
|
*
|
||||||
@ -44,6 +49,11 @@
|
|||||||
*/
|
*/
|
||||||
public stock const MaxClients;
|
public stock const MaxClients;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Current map name
|
||||||
|
*/
|
||||||
|
public stock const MapName[MAX_MAPNAME_LENGTH];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pass this into certain functions to act as a C++ NULL
|
* Pass this into certain functions to act as a C++ NULL
|
||||||
*/
|
*/
|
||||||
@ -341,7 +351,6 @@ enum
|
|||||||
kRenderFxExplode, /* Scale up really big! */
|
kRenderFxExplode, /* Scale up really big! */
|
||||||
kRenderFxGlowShell, /* Glowing Shell */
|
kRenderFxGlowShell, /* Glowing Shell */
|
||||||
kRenderFxClampMinScale, /* Keep this sprite from getting very small (SPRITES only!) */
|
kRenderFxClampMinScale, /* Keep this sprite from getting very small (SPRITES only!) */
|
||||||
kRenderFxLightMultiplier, /* CTM !!!CZERO added to tell the studiorender that the value in iuser2 is a lightmultiplier */
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -761,12 +761,8 @@ stock constraint_offset(low, high, seed, offset)
|
|||||||
{
|
{
|
||||||
return low + (offset % numElements);
|
return low + (offset % numElements);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
return high - (abs(offset) % numElements) + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0; // Makes the compiler happy -_-
|
return high - (abs(offset) % numElements) + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -243,10 +243,12 @@ forward client_putinserver(id);
|
|||||||
* @param plugin_name Name of the plugin
|
* @param plugin_name Name of the plugin
|
||||||
* @param version Version of the plugin
|
* @param version Version of the plugin
|
||||||
* @param author Author of the plugin
|
* @param author Author of the plugin
|
||||||
|
* @param url URL of the plugin
|
||||||
|
* @param description Description of the plugin
|
||||||
*
|
*
|
||||||
* @return Plugin id of the calling plugin
|
* @return Plugin id of the calling plugin
|
||||||
*/
|
*/
|
||||||
native register_plugin(const plugin_name[], const version[], const author[]);
|
native register_plugin(const plugin_name[], const version[], const author[], const url[] = "", const description[] = "");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Precaches a model file.
|
* Precaches a model file.
|
||||||
@ -679,12 +681,10 @@ native disable_logevent(handle);
|
|||||||
* @param fadeintime Time it takes the message to fully appear (fade-in)
|
* @param fadeintime Time it takes the message to fully appear (fade-in)
|
||||||
* @param fadeouttime Time it takes the message to fully disappear (fade-out)
|
* @param fadeouttime Time it takes the message to fully disappear (fade-out)
|
||||||
* @param channel Channel to use on the client
|
* @param channel Channel to use on the client
|
||||||
* @param alpha1 Alpha component of hudmessage color
|
|
||||||
* @param color2[4] Color 2 array {r,g,b,a}
|
|
||||||
*
|
*
|
||||||
* @noreturn
|
* @noreturn
|
||||||
*/
|
*/
|
||||||
native set_hudmessage(red = 200, green = 100, blue = 0, Float:x = -1.0, Float:y = 0.35, effects = 0, Float:fxtime = 6.0, Float:holdtime = 12.0, Float:fadeintime = 0.1, Float:fadeouttime = 0.2, channel = -1, alpha1 = 0, color2[4] = {255, 255, 250, 0});
|
native set_hudmessage(red = 200, green = 100, blue = 0, Float:x = -1.0, Float:y = 0.35, effects = 0, Float:fxtime = 6.0, Float:holdtime = 12.0, Float:fadeintime = 0.1, Float:fadeouttime = 0.2, channel = -1);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Displays a message on the client HUD.
|
* Displays a message on the client HUD.
|
||||||
@ -923,6 +923,19 @@ native is_user_bot(index);
|
|||||||
*/
|
*/
|
||||||
native is_user_hltv(index);
|
native is_user_hltv(index);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns if the client is authorized.
|
||||||
|
*
|
||||||
|
* @note This does not throw an error if the provided index is out of the
|
||||||
|
* 1 to MaxClients range. That means you can safely use this native
|
||||||
|
* without manually verifying that the index is a valid client index.
|
||||||
|
*
|
||||||
|
* @param index Client index
|
||||||
|
*
|
||||||
|
* @return 1 if client is authorized, 0 otherwise
|
||||||
|
*/
|
||||||
|
native is_user_authorized(index);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns if the client is connected.
|
* Returns if the client is connected.
|
||||||
*
|
*
|
||||||
@ -2318,12 +2331,15 @@ native is_plugin_loaded(const name[], bool:usefilename = false);
|
|||||||
* @param len4 Maximum author buffer size
|
* @param len4 Maximum author buffer size
|
||||||
* @param status Buffer to copy plugin status flags to
|
* @param status Buffer to copy plugin status flags to
|
||||||
* @param len5 Maximum status buffer size
|
* @param len5 Maximum status buffer size
|
||||||
* @param ... Unused and ignored
|
* @param url Buffer to copy plugin url to
|
||||||
|
* @param len6 Maximum url buffer size
|
||||||
|
* @param desc Buffer to copy plugin description to
|
||||||
|
* @param len7 Maximum description buffer size
|
||||||
*
|
*
|
||||||
* @return Plugin index on success, -1 if there is no plugin with given
|
* @return Plugin index on success, -1 if there is no plugin with given
|
||||||
* index
|
* index
|
||||||
*/
|
*/
|
||||||
native get_plugin(index, filename[] = "", len1 = 0, name[] = "", len2 = 0, version[] = "", len3 = 0, author[] = "", len4 = 0, status[] = "", len5 = 0, ...);
|
native get_plugin(index, filename[] = "", len1 = 0, name[] = "", len2 = 0, version[] = "", len3 = 0, author[] = "", len4 = 0, status[] = "", len5 = 0, url[] = "", len6 = 0, desc[] = "", len7 = 0);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the number of loaded AMXX plugins.
|
* Returns the number of loaded AMXX plugins.
|
||||||
|
@ -12,6 +12,6 @@
|
|||||||
#endif
|
#endif
|
||||||
#define _amxmodx_version_included
|
#define _amxmodx_version_included
|
||||||
|
|
||||||
#define AMXX_VERSION 1.9.0
|
#define AMXX_VERSION 1.10.0
|
||||||
#define AMXX_VERSION_NUM 190
|
#define AMXX_VERSION_NUM 1100
|
||||||
stock const AMXX_VERSION_STR[] = "1.9.0-manual";
|
stock const AMXX_VERSION_STR[] = "1.10.0-manual";
|
||||||
|
@ -70,7 +70,7 @@ native create_cvar(const name[], const string[], flags = FCVAR_NONE, const descr
|
|||||||
* Registers a new cvar for the engine.
|
* Registers a new cvar for the engine.
|
||||||
*
|
*
|
||||||
* @note Deprecated. Consider to use create_cvar for more options.
|
* @note Deprecated. Consider to use create_cvar for more options.
|
||||||
* @note For a list of possible cvar flags see FCVAR_* constants in amxconst.inc
|
* @note For a list of possible cvar flags see FCVAR_* constants in cvars.inc
|
||||||
* @note If an already existing cvar is registered it will not be duplicated.
|
* @note If an already existing cvar is registered it will not be duplicated.
|
||||||
* The default value is only set when the cvar is registered for the very
|
* The default value is only set when the cvar is registered for the very
|
||||||
* first time since the server was started.
|
* first time since the server was started.
|
||||||
|
@ -40,7 +40,7 @@
|
|||||||
* This is the entity from which the function is being executed on.
|
* This is the entity from which the function is being executed on.
|
||||||
* @note All functions and forwards (eg: {Register,Execute}Ham[B]) require
|
* @note All functions and forwards (eg: {Register,Execute}Ham[B]) require
|
||||||
* the mod to have the pev and base keys in addition to the function
|
* the mod to have the pev and base keys in addition to the function
|
||||||
* keys for the corresponding mod/operating system in hamdata.ini
|
* keys for the corresponding mod/operating system in gamedata
|
||||||
* @note Some functions that return booleans may need to be logically ANDed
|
* @note Some functions that return booleans may need to be logically ANDed
|
||||||
* to get the desired results because the mod will return the full integer
|
* to get the desired results because the mod will return the full integer
|
||||||
* value. E.g.: (ExecuteHam(Ham_TS_IsObjective, this) & 0x0000FFFF) != 0
|
* value. E.g.: (ExecuteHam(Ham_TS_IsObjective, this) & 0x0000FFFF) != 0
|
||||||
@ -4328,7 +4328,7 @@ enum HamError
|
|||||||
HAM_OK = 0,
|
HAM_OK = 0,
|
||||||
|
|
||||||
HAM_INVALID_FUNC, // The function is not valid
|
HAM_INVALID_FUNC, // The function is not valid
|
||||||
HAM_FUNC_NOT_CONFIGURED, // This function is not configured in hamdata.ini
|
HAM_FUNC_NOT_CONFIGURED, // This function is not configured in gamedata
|
||||||
HAM_FUNC_NOT_AVAILABLE, // This function is not more available in the mod
|
HAM_FUNC_NOT_AVAILABLE, // This function is not more available in the mod
|
||||||
|
|
||||||
HAM_ERR_END
|
HAM_ERR_END
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
* Ham Sandwich is a module that is used to hook and call virtual functions of
|
* Ham Sandwich is a module that is used to hook and call virtual functions of
|
||||||
* entities.
|
* entities.
|
||||||
* Virtual functions are mod-specific functions. This means that in order
|
* Virtual functions are mod-specific functions. This means that in order
|
||||||
* for this to work on a mod, it needs to be configured with the hamdata.ini
|
* for this to work on a mod, it needs to be configured with the gamedata
|
||||||
* file.
|
* file.
|
||||||
* Be very careful with parameter passing to these functions.
|
* Be very careful with parameter passing to these functions.
|
||||||
*/
|
*/
|
||||||
|
@ -737,7 +737,7 @@ enum
|
|||||||
* write_byte(TE_FIZZ)
|
* write_byte(TE_FIZZ)
|
||||||
* write_short(entity)
|
* write_short(entity)
|
||||||
* write_short(sprite index)
|
* write_short(sprite index)
|
||||||
* write_byte(density)
|
* write_byte density)
|
||||||
*/
|
*/
|
||||||
#define TE_FIZZ 105
|
#define TE_FIZZ 105
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Function to be called on Back and Next (param1 = string)
|
* Function to be called on Back and Next (param1 = string)
|
||||||
* public function(id, status); where status is either MENU_BACK or MENU_MORE
|
* public function(id, status, menu); where status is either MENU_BACK or MENU_MORE
|
||||||
* Pass NULL_STRING to disable the callback
|
* Pass NULL_STRING to disable the callback
|
||||||
*/
|
*/
|
||||||
#define MPROP_PAGE_CALLBACK 11
|
#define MPROP_PAGE_CALLBACK 11
|
||||||
@ -117,13 +117,14 @@
|
|||||||
* @param title Title the menu should use.
|
* @param title Title the menu should use.
|
||||||
* @param handler Name of the handler function. The function will be invoked
|
* @param handler Name of the handler function. The function will be invoked
|
||||||
* once and only once to every menu_display() call.
|
* once and only once to every menu_display() call.
|
||||||
* @param ml Unused (should be 0).
|
* @param ml If true, the menu title and items will be looked up as multilingual keys
|
||||||
|
* when the menu displays.
|
||||||
* @return Menu resource identifier which must be destroyed via
|
* @return Menu resource identifier which must be destroyed via
|
||||||
* menu_destroy(). All menus are destroyed when the plugin
|
* menu_destroy(). All menus are destroyed when the plugin
|
||||||
* unloads.
|
* unloads.
|
||||||
* @error Function name not found.
|
* @error Function name not found.
|
||||||
*/
|
*/
|
||||||
native menu_create(const title[], const handler[], ml=0);
|
native menu_create(const title[], const handler[], bool:ml = false);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a menu item callback handler.
|
* Creates a menu item callback handler.
|
||||||
@ -256,6 +257,17 @@ native menu_item_setcmd(menu, item, const info[]);
|
|||||||
*/
|
*/
|
||||||
native menu_item_setcall(menu, item, callback=-1);
|
native menu_item_setcall(menu, item, callback=-1);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets an item's access.
|
||||||
|
*
|
||||||
|
* @param menu Menu resource identifier.
|
||||||
|
* @param item Item identifier.
|
||||||
|
* @param access New access required by the player for access to the item.
|
||||||
|
* @return 1 on success, 0 on failure.
|
||||||
|
* @error Invalid menu resource.
|
||||||
|
*/
|
||||||
|
native menu_item_setaccess(menu, item, access=0);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Destroys a menu. Player menus will be cancelled (although may still linger
|
* Destroys a menu. Player menus will be cancelled (although may still linger
|
||||||
* on the HUD), and future attempts to access the menu resource will result in
|
* on the HUD), and future attempts to access the menu resource will result in
|
||||||
|
@ -519,7 +519,7 @@ stock SQL_SimpleQueryFmt(Handle:db, error[]="", maxlength=0, &rows=0, const fmt[
|
|||||||
* @param queryfmt The query string that can be formated with format specifiers.
|
* @param queryfmt The query string that can be formated with format specifiers.
|
||||||
* @pram ... Additional arguments for formating the query.
|
* @pram ... Additional arguments for formating the query.
|
||||||
*
|
*
|
||||||
* @return -1 on error.
|
* @return 1 on error.
|
||||||
* >= 0 on success (with the number of affected rows).
|
* >= 0 on success (with the number of affected rows).
|
||||||
*/
|
*/
|
||||||
stock SQL_QueryAndIgnore(Handle:db, const queryfmt[], any:...)
|
stock SQL_QueryAndIgnore(Handle:db, const queryfmt[], any:...)
|
||||||
|
@ -627,6 +627,37 @@ stock Float:xs_vec_distance_2d(const Float:vec1[], const Float:vec2[])
|
|||||||
(vec1[1]-vec2[1]) * (vec1[1]-vec2[1]));
|
(vec1[1]-vec2[1]) * (vec1[1]-vec2[1]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Computes the square of the distance between two vectors (points).
|
||||||
|
* This is faster than the distance.
|
||||||
|
*
|
||||||
|
* @param vec1 First vector.
|
||||||
|
* @param vec2 Second vector.
|
||||||
|
*
|
||||||
|
* @return The square of the distance between two vectors.
|
||||||
|
*/
|
||||||
|
stock Float:xs_vec_sqdistance(const Float:vec1[], const Float:vec2[])
|
||||||
|
{
|
||||||
|
return (vec1[0]-vec2[0]) * (vec1[0]-vec2[0]) +
|
||||||
|
(vec1[1]-vec2[1]) * (vec1[1]-vec2[1]) +
|
||||||
|
(vec1[2]-vec2[2]) * (vec1[2]-vec2[2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Computes the square of the distance between two 2D vectors (points).
|
||||||
|
* This is faster than the distance.
|
||||||
|
*
|
||||||
|
* @param vec1 First vector.
|
||||||
|
* @param vec2 Second vector.
|
||||||
|
*
|
||||||
|
* @return The square of the distance between two vectors.
|
||||||
|
*/
|
||||||
|
stock Float:xs_vec_sqdistance_2d(const Float:vec1[], const Float:vec2[])
|
||||||
|
{
|
||||||
|
return (vec1[0]-vec2[0]) * (vec1[0]-vec2[0]) +
|
||||||
|
(vec1[1]-vec2[1]) * (vec1[1]-vec2[1]);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Normalizes a vector. Normalized vector is a vector with the length of 1 unit,
|
* Normalizes a vector. Normalized vector is a vector with the length of 1 unit,
|
||||||
* but with the same direction as the original vector.
|
* but with the same direction as the original vector.
|
||||||
|
@ -314,7 +314,7 @@ NO_ENTRY = Ju nuk mund të futeni në server...
|
|||||||
LOADED_ADMIN = 1 admin foi carregado do ficheiro
|
LOADED_ADMIN = 1 admin foi carregado do ficheiro
|
||||||
LOADED_ADMINS = %d admins foram carregados do ficheiro
|
LOADED_ADMINS = %d admins foram carregados do ficheiro
|
||||||
SQL_CANT_CON = Erro de SQL: não foi possível conectar-se: '%s'
|
SQL_CANT_CON = Erro de SQL: não foi possível conectar-se: '%s'
|
||||||
SQL_CANT_LOAD_ADMINS = Erro de SQL: não foi possível carregar admins: '%s'
|
SQL_CANT_LOAD_ADMINS = Erro de SQl: não foi possível carregar admins: '%s'
|
||||||
NO_ADMINS = Não foram encontrados admins.
|
NO_ADMINS = Não foram encontrados admins.
|
||||||
SQL_LOADED_ADMIN = 1 admin foi carregado da base de dados
|
SQL_LOADED_ADMIN = 1 admin foi carregado da base de dados
|
||||||
SQL_LOADED_ADMINS = %d admins foram carregados da base de dados
|
SQL_LOADED_ADMINS = %d admins foram carregados da base de dados
|
||||||
|
@ -126,8 +126,8 @@ PAUSED = pausiert
|
|||||||
UNPAUSED = fortgesetzt
|
UNPAUSED = fortgesetzt
|
||||||
UNABLE_PAUSE = Server konnte das Spiel nicht anhalten. Reale Spieler werden auf dem Server benötigt.
|
UNABLE_PAUSE = Server konnte das Spiel nicht anhalten. Reale Spieler werden auf dem Server benötigt.
|
||||||
SERVER_PROC = Server führt %s aus
|
SERVER_PROC = Server führt %s aus
|
||||||
PAUSING = pausiert den Server...
|
PAUSING = Pausiere
|
||||||
UNPAUSING = setzt den Server fort...
|
UNPAUSING = setze fort
|
||||||
PAUSE = Pause
|
PAUSE = Pause
|
||||||
UNPAUSE = Fortsetzen
|
UNPAUSE = Fortsetzen
|
||||||
COM_SENT_SERVER = Befehlszeile "%s" zur Serverconsole gesendet
|
COM_SENT_SERVER = Befehlszeile "%s" zur Serverconsole gesendet
|
||||||
@ -138,11 +138,11 @@ ACCESS = Berechtigung
|
|||||||
TOTAL_NUM = Total %d
|
TOTAL_NUM = Total %d
|
||||||
SKIP_MATCH = Überspringe "%s" (stimmt überein mit "%s")
|
SKIP_MATCH = Überspringe "%s" (stimmt überein mit "%s")
|
||||||
SKIP_IMM = Überspringe "%s" (Immunität)
|
SKIP_IMM = Überspringe "%s" (Immunität)
|
||||||
KICK_PL = Kicke "%s"
|
KICK_PL = Kickt "%s"
|
||||||
YOU_DROPPED = Du wurdest gekickt, weil der Admin nur spezielle Spielergruppen auf dem Server zulässt
|
YOU_DROPPED = Du wurdest gekickt, weil der Admin nur spezielle Spielergruppen auf dem Server zulässt
|
||||||
KICKED_CLIENTS = %d Spieler gekickt
|
KICKED_CLIENTS = Kickt %d clients
|
||||||
ADMIN_LEAVE_1 = ADMIN: Spieler ohne Berechtigung %s %s %s %s verlassen den Server!
|
ADMIN_LEAVE_1 = ADMIN: erlaubt %s %s %s %s
|
||||||
ADMIN_LEAVE_2 = ADMIN %s: Spieler ohne Berechtigung %s %s %s %s verlassen den Server!
|
ADMIN_LEAVE_2 = ADMIN %s: erlaubt %s %s %s %s
|
||||||
ADMIN_NICK_1 = ADMIN: ändert Name von %s zu "%s"
|
ADMIN_NICK_1 = ADMIN: ändert Name von %s zu "%s"
|
||||||
ADMIN_NICK_2 = ADMIN %s: ändert Name von %s zu "%s"
|
ADMIN_NICK_2 = ADMIN %s: ändert Name von %s zu "%s"
|
||||||
CHANGED_NICK = Name von %s zu "%s" geändert
|
CHANGED_NICK = Name von %s zu "%s" geändert
|
||||||
@ -1134,8 +1134,8 @@ IP_REMOVED = IP "%s" eltávolítva a banlistáról
|
|||||||
AUTHID_REMOVED = Authid "%s" eltávolítva a banlistáról
|
AUTHID_REMOVED = Authid "%s" eltávolítva a banlistáról
|
||||||
ADMIN_UNBAN_1 = ADMIN: %s ban visszavonva
|
ADMIN_UNBAN_1 = ADMIN: %s ban visszavonva
|
||||||
ADMIN_UNBAN_2 = ADMIN %s: %s ban visszavonva
|
ADMIN_UNBAN_2 = ADMIN %s: %s ban visszavonva
|
||||||
ADMIN_ADDBAN_1 = ADMIN: ban %s
|
ADMIN_ADDBAN_1 = ADMIN: bannolta %s játékost
|
||||||
ADMIN_ADDBAN_2 = ADMIN %s: ban %s
|
ADMIN_ADDBAN_2 = ADMIN %s: bannolta %s játékost
|
||||||
BANNED = Bannolva
|
BANNED = Bannolva
|
||||||
REASON = Indok
|
REASON = Indok
|
||||||
FOR_MIN = %s percre
|
FOR_MIN = %s percre
|
||||||
@ -1145,7 +1145,7 @@ ADMIN_SLAY_1 = ADMIN: %s megölve
|
|||||||
ADMIN_SLAY_2 = ADMIN %s: %s megölve
|
ADMIN_SLAY_2 = ADMIN %s: %s megölve
|
||||||
CLIENT_SLAYED = "%s" játékos megölve
|
CLIENT_SLAYED = "%s" játékos megölve
|
||||||
ADMIN_SLAP_1 = ADMIN: %s megütve %d sebzéssel
|
ADMIN_SLAP_1 = ADMIN: %s megütve %d sebzéssel
|
||||||
ADMIN_SLAP_2 = ADMIN %s: megütve %s %d sebzéssel
|
ADMIN_SLAP_2 = ADMIN %s: %s megütve %d sebzéssel
|
||||||
CLIENT_SLAPED = "%s" játékos megütve %d sebzéssel
|
CLIENT_SLAPED = "%s" játékos megütve %d sebzéssel
|
||||||
MAP_NOT_FOUND = Nem található ilyen nevű pálya
|
MAP_NOT_FOUND = Nem található ilyen nevű pálya
|
||||||
ADMIN_MAP_1 = ADMIN: pályaváltás %s
|
ADMIN_MAP_1 = ADMIN: pályaváltás %s
|
||||||
@ -1153,15 +1153,15 @@ ADMIN_MAP_2 = ADMIN %s: pályaváltás %s
|
|||||||
NO_MORE_CVARS = Nem lehet több cvart hozzáadni az rcon hozzáféréshez!
|
NO_MORE_CVARS = Nem lehet több cvart hozzáadni az rcon hozzáféréshez!
|
||||||
UNKNOWN_CVAR = Ismeretlen cvar: %s
|
UNKNOWN_CVAR = Ismeretlen cvar: %s
|
||||||
UNKNOWN_XVAR = Ismeretlen xvar: %s
|
UNKNOWN_XVAR = Ismeretlen xvar: %s
|
||||||
CVAR_NO_ACC = Nincs engedélyed a cvar-hoz
|
CVAR_NO_ACC = Nincs engedélyed a cvarhoz
|
||||||
XVAR_NO_ACC = Nincs engedélyed a xvar-hoz
|
XVAR_NO_ACC = Nincs engedélyed az xvarhoz
|
||||||
CVAR_IS = Cvar "%s" jelenleg "%s"
|
CVAR_IS = Cvar "%s" jelenleg "%s"
|
||||||
XVAR_IS = Xvar "%s" jelenleg "%s"
|
XVAR_IS = Xvar "%s" jelenleg "%s"
|
||||||
PROTECTED = Védett
|
PROTECTED = Védett
|
||||||
SET_CVAR_TO = %s beállítva cvar %s -> "%s"
|
SET_CVAR_TO = %s cvar átállítva: %s -> "%s"
|
||||||
SET_XVAR_TO = %s beállítva xvar %s -> "%s"
|
SET_XVAR_TO = %s xvar átállítva: %s -> "%s"
|
||||||
CVAR_CHANGED = Cvar "%s" átállítva "%s"-ra.
|
CVAR_CHANGED = Cvar "%s" átállítva "%s" értékre.
|
||||||
XVAR_CHANGED = Xvar "%s" átállítva "%s"-ra.
|
XVAR_CHANGED = Xvar "%s" átállítva "%s" értékre.
|
||||||
LOADED_PLUGINS = Jelenleg betöltött pluginok
|
LOADED_PLUGINS = Jelenleg betöltött pluginok
|
||||||
NAME = Név
|
NAME = Név
|
||||||
VERSION = Verzió
|
VERSION = Verzió
|
||||||
@ -1194,11 +1194,11 @@ YOU_DROPPED = Le lettél csatlakoztatva, mert az admin csak bizonyos csapat tagj
|
|||||||
KICKED_CLIENTS = kirúgva %d felhasználó
|
KICKED_CLIENTS = kirúgva %d felhasználó
|
||||||
ADMIN_LEAVE_1 = ADMIN: ledobta %s %s %s %s
|
ADMIN_LEAVE_1 = ADMIN: ledobta %s %s %s %s
|
||||||
ADMIN_LEAVE_2 = ADMIN %s: ledobta %s %s %s %s
|
ADMIN_LEAVE_2 = ADMIN %s: ledobta %s %s %s %s
|
||||||
ADMIN_NICK_1 = ADMIN: névváltás %s-ról "%s"-ra
|
ADMIN_NICK_1 = ADMIN: %s nevét átírta, mostantól a neve "%s"
|
||||||
ADMIN_NICK_2 = ADMIN %s: nevváltás %s-ról "%s"ra
|
ADMIN_NICK_2 = ADMIN %s: %s nevét átírta, mostantól a neve "%s"
|
||||||
CHANGED_NICK = Névváltás %s-ról "%s"ra
|
CHANGED_NICK = %s neve mostantól: "%s"
|
||||||
ADMIN_EXTEND_1 = ADMIN: Páya hosszabbítása %d perccel
|
ADMIN_EXTEND_1 = ADMIN: Pálya hosszabbítása %d perccel
|
||||||
ADMIN_EXTEND_2 = ADMIN %s: Páya hosszabbítása %d perccel
|
ADMIN_EXTEND_2 = ADMIN %s: Pálya hosszabbítása %d perccel
|
||||||
MAP_EXTENDED = %s pálya meghosszabbítva %d perccel
|
MAP_EXTENDED = %s pálya meghosszabbítva %d perccel
|
||||||
ADMIN_MUST_TEMPBAN = Csak időhöz kötött bant tudsz kiosztani, maximum %d percet
|
ADMIN_MUST_TEMPBAN = Csak időhöz kötött bant tudsz kiosztani, maximum %d percet
|
||||||
ADMIN_MUST_TEMPUNBAN = Csak a nemrég általad bannolt játékosokat oldhatod fel
|
ADMIN_MUST_TEMPUNBAN = Csak a nemrég általad bannolt játékosokat oldhatod fel
|
||||||
@ -1819,9 +1819,9 @@ CLIENT_BANNED = O cliente "%s" foi banido
|
|||||||
ADMIN_SLAY_1 = ADMIN: matou %s
|
ADMIN_SLAY_1 = ADMIN: matou %s
|
||||||
ADMIN_SLAY_2 = ADMIN %s: matou %s
|
ADMIN_SLAY_2 = ADMIN %s: matou %s
|
||||||
CLIENT_SLAYED = O cliente "%s" foi morto
|
CLIENT_SLAYED = O cliente "%s" foi morto
|
||||||
ADMIN_SLAP_1 = ADMIN: esbofeteou %s com %d de dano
|
ADMIN_SLAP_1 = ADMIN: esbofeteou %s com %d dano
|
||||||
ADMIN_SLAP_2 = ADMIN %s: esbofeteou %s com %d de dano
|
ADMIN_SLAP_2 = ADMIN %s: esbofeteou %s com %d dano
|
||||||
CLIENT_SLAPED = O cliente "%s" foi esbofeteado com %d de dano
|
CLIENT_SLAPED = O cliente "%s" foi esbofeteado com %d dano
|
||||||
MAP_NOT_FOUND = O mapa com esse nome não foi encontrado ou é inválido
|
MAP_NOT_FOUND = O mapa com esse nome não foi encontrado ou é inválido
|
||||||
ADMIN_MAP_1 = ADMIN: mudou de mapa para %s
|
ADMIN_MAP_1 = ADMIN: mudou de mapa para %s
|
||||||
ADMIN_MAP_2 = ADMIN %s: mudou de mapa para %s
|
ADMIN_MAP_2 = ADMIN %s: mudou de mapa para %s
|
||||||
@ -1831,7 +1831,7 @@ UNKNOWN_XVAR = Xvar desconhecida: %s
|
|||||||
CVAR_NO_ACC = Tu não tens acesso a essa cvar
|
CVAR_NO_ACC = Tu não tens acesso a essa cvar
|
||||||
XVAR_NO_ACC = Tu não tens acesso a essa xvar
|
XVAR_NO_ACC = Tu não tens acesso a essa xvar
|
||||||
CVAR_IS = A cvar "%s" é "%s"
|
CVAR_IS = A cvar "%s" é "%s"
|
||||||
XVAR_IS = A xvar "%s" é "%s"
|
XVAR_IS = A Xvar "%s" é "%s"
|
||||||
PROTECTED = PROTEGIDO
|
PROTECTED = PROTEGIDO
|
||||||
SET_CVAR_TO = %s mudou a cvar %s para "%s"
|
SET_CVAR_TO = %s mudou a cvar %s para "%s"
|
||||||
SET_XVAR_TO = %s mudou a xvar %s para "%s"
|
SET_XVAR_TO = %s mudou a xvar %s para "%s"
|
||||||
@ -1867,7 +1867,7 @@ SKIP_MATCH = A saltar "%s" (a coincidir com "%s")
|
|||||||
SKIP_IMM = A saltar "%s" (imunidade)
|
SKIP_IMM = A saltar "%s" (imunidade)
|
||||||
KICK_PL = A expulsar "%s"
|
KICK_PL = A expulsar "%s"
|
||||||
YOU_DROPPED = Tu foste desconectado pois o admin só deixa entrar um grupo de clientes específico
|
YOU_DROPPED = Tu foste desconectado pois o admin só deixa entrar um grupo de clientes específico
|
||||||
KICKED_CLIENTS = Foram expulsos %d clientes
|
KICKED_CLIENTS = %d clientes expulsados
|
||||||
ADMIN_LEAVE_1 = ADMIN: deixou %s %s %s %s
|
ADMIN_LEAVE_1 = ADMIN: deixou %s %s %s %s
|
||||||
ADMIN_LEAVE_2 = ADMIN %s: deixou %s %s %s %s
|
ADMIN_LEAVE_2 = ADMIN %s: deixou %s %s %s %s
|
||||||
ADMIN_NICK_1 = ADMIN: mudou o nome de %s para "%s"
|
ADMIN_NICK_1 = ADMIN: mudou o nome de %s para "%s"
|
||||||
@ -1876,5 +1876,5 @@ CHANGED_NICK = Mudou o nome de %s para "%s"
|
|||||||
ADMIN_EXTEND_1 = ADMIN: extendeu o mapa por %d minutos
|
ADMIN_EXTEND_1 = ADMIN: extendeu o mapa por %d minutos
|
||||||
ADMIN_EXTEND_2 = ADMIN %s: extendeu o mapa por %d minutos
|
ADMIN_EXTEND_2 = ADMIN %s: extendeu o mapa por %d minutos
|
||||||
MAP_EXTENDED = O mapa "%s" foi extendido por %d minutos
|
MAP_EXTENDED = O mapa "%s" foi extendido por %d minutos
|
||||||
ADMIN_MUST_TEMPBAN = Tu só podes banir jogadores temporariamente, até %d minutos
|
ADMIN_MUST_TEMPBAN = Tu só podes banir jogadores temporariamente temporariamente, até %d minutos
|
||||||
ADMIN_MUST_TEMPUNBAN = Tu só podes desbanir jogadores que baniste recentemente
|
ADMIN_MUST_TEMPUNBAN = Tu só podes desbanir jogadores que tu baniste recentemente
|
||||||
|
@ -149,8 +149,8 @@ HELP_USE_BEGIN = Írj 'amx_help 1'-et az első oldalhoz
|
|||||||
TYPE_HELP = Írj 'amx_help'-et a konzolba, hogy láthasd a parancsokat
|
TYPE_HELP = Írj 'amx_help'-et a konzolba, hogy láthasd a parancsokat
|
||||||
TIME_INFO_1 = Hátrálévő idő: %d:%02d perc. Következő pálya: %s
|
TIME_INFO_1 = Hátrálévő idő: %d:%02d perc. Következő pálya: %s
|
||||||
TIME_INFO_2 = Nincs időhatár. A következő pálya: %s
|
TIME_INFO_2 = Nincs időhatár. A következő pálya: %s
|
||||||
HELP_CMD_INFO = <bejegyzés száma.> [megjeneítendő bejegyzések száma (csak szerver)] - információt nyújt az elérhető parancsokhoz
|
HELP_CMD_INFO = <bejegyzés száma> [megjelenítendő bejegyzések száma (csak szerver)] - információt nyújt az elérhető parancsokhoz
|
||||||
SEARCH_CMD_INFO = <egyezés> <bejegyzés száma> [megjeneítendő bejegyzések száma (csak szerver)] - információt nyújt az egyező parancsokhoz
|
SEARCH_CMD_INFO = <egyezés> <bejegyzés száma> [megjelenítendő bejegyzések száma (csak szerver)] - információt nyújt a talált parancsokhoz
|
||||||
NO_MATCHING_RESULTS = ^nNem található egyezés^n
|
NO_MATCHING_RESULTS = ^nNem található egyezés^n
|
||||||
|
|
||||||
[lt]
|
[lt]
|
||||||
|
@ -1,8 +1,12 @@
|
|||||||
[en]
|
[en]
|
||||||
DROPPED_RES = Dropped due to slot reservation
|
DROPPED_RES = Dropped due to slot reservation
|
||||||
|
CVAR_RESERVATION = Amount of slots to reserve
|
||||||
|
CVAR_HIDESLOTS = If you set this to 1, you can hide slots on your server.^nIf the server's public and hidden slots are full, you must manually connect with the "connect" console command.
|
||||||
|
|
||||||
[de]
|
[de]
|
||||||
DROPPED_RES = Sorry, dieser Slot ist reserviert
|
DROPPED_RES = Sorry, dieser Slot ist reserviert
|
||||||
|
CVAR_RESERVATION = Anzahl der zu reservierenden Slots
|
||||||
|
CVAR_HIDESLOTS = Wenn diese CVAR auf 1 gesetzt wird, können Slots auf Ihrem Server ausgeblendet werden.^nWenn die öffentlichen Slots auf dem Server "voll" sind und weitere freie Slots ausgeblendet sind, müssen Sie die Verbindung manuell über den Konsolenbefehl "connect" herstellen.
|
||||||
|
|
||||||
[sr]
|
[sr]
|
||||||
DROPPED_RES = Server je pun, nemate pristup rezervisanim mestima
|
DROPPED_RES = Server je pun, nemate pristup rezervisanim mestima
|
||||||
@ -72,5 +76,3 @@ DROPPED_RES = U largua për shkak të rezervimit të vendit që është plugini
|
|||||||
|
|
||||||
[pt]
|
[pt]
|
||||||
DROPPED_RES = Foste desconectado por causa da reservação de slots
|
DROPPED_RES = Foste desconectado por causa da reservação de slots
|
||||||
CVAR_RESERVATION = Quantidade de slots para reservar
|
|
||||||
CVAR_HIDESLOTS = Se tu definires isto para 1, tu podes esconder slots no teu servidor.^nSe os slots públicos e escondidos do servidor estiverem cheios, tu deverás manualmente conectar com o comando de consola "connect".
|
|
||||||
|
@ -45,10 +45,10 @@ VOTING_RES_2 = %s (erhielt "%d") (benötigt "%d")
|
|||||||
VOTING_SUCCESS = Abstimmung erfolgreich
|
VOTING_SUCCESS = Abstimmung erfolgreich
|
||||||
VOTING_RES_3 = %s (erhielt "%d") (benötigt "%d"). Ergebnis: %s
|
VOTING_RES_3 = %s (erhielt "%d") (benötigt "%d"). Ergebnis: %s
|
||||||
THE_RESULT = Das Ergebnis
|
THE_RESULT = Das Ergebnis
|
||||||
WANT_CONTINUE = Fortfahren?
|
WANT_CONTINUE = Forfahren?
|
||||||
VOTED_FOR = %s stimmte dafür
|
VOTED_FOR = %s stimmten dafür
|
||||||
VOTED_AGAINST = %s stimmte dagegen
|
VOTED_AGAINST = %s stimmten dagegen
|
||||||
VOTED_FOR_OPT = %s stimmte für Option #%d
|
VOTED_FOR_OPT = %s stimmten für Option #%d
|
||||||
ALREADY_VOTING = Abstimmung läuft bereits...
|
ALREADY_VOTING = Abstimmung läuft bereits...
|
||||||
VOTING_NOT_ALLOW = Abstimmung ist momentan nicht möglich!
|
VOTING_NOT_ALLOW = Abstimmung ist momentan nicht möglich!
|
||||||
GIVEN_NOT_VALID = %s ist unzulässig
|
GIVEN_NOT_VALID = %s ist unzulässig
|
||||||
@ -516,18 +516,18 @@ NO_VOTE_CANC = Ezzel a parancsal nem lehet visszavonni a szavazást.
|
|||||||
RES_REF = A szavazás eredménytelen.
|
RES_REF = A szavazás eredménytelen.
|
||||||
RES_ACCEPTED = A szavazás sikeres.
|
RES_ACCEPTED = A szavazás sikeres.
|
||||||
VOTING_FAILED = Szavazás sikertelen
|
VOTING_FAILED = Szavazás sikertelen
|
||||||
VOTING_RES_1 = %s (igen "%d") (nem "%d") (kell "%d")
|
VOTING_RES_1 = %s (igen "%d") (nem "%d") ("%d" szükséges)
|
||||||
VOTING_RES_2 = %s (van "%d") (kell "%d")
|
VOTING_RES_2 = %s (van "%d") ("%d" szükséges)
|
||||||
VOTING_SUCCESS = Szavazás sikeres
|
VOTING_SUCCESS = Szavazás sikeres
|
||||||
VOTING_RES_3 = %s (van "%d") (kell "%d"). Az eredmeny: %s
|
VOTING_RES_3 = %s (van "%d") ("%d" szükséges). Az eredmény: %s
|
||||||
THE_RESULT = Az eredmény
|
THE_RESULT = Az eredmény
|
||||||
WANT_CONTINUE = Folytatod?
|
WANT_CONTINUE = Folytatod?
|
||||||
VOTED_FOR = %s az igenre szavazott
|
VOTED_FOR = %s az igenre szavazott
|
||||||
VOTED_AGAINST = %s a nemre szavazott
|
VOTED_AGAINST = %s a nemre szavazott
|
||||||
VOTED_FOR_OPT = %s a #%d -re szavazott
|
VOTED_FOR_OPT = %s a #%d -re szavazott
|
||||||
ALREADY_VOTING = Már folyik 1 szavazás...
|
ALREADY_VOTING = Már folyamatban van egy szavazás...
|
||||||
VOTING_NOT_ALLOW = A szavazás most nincs engedélyezve
|
VOTING_NOT_ALLOW = A szavazás most nincs engedélyezve
|
||||||
GIVEN_NOT_VALID = Az adott %s nem helyes
|
GIVEN_NOT_VALID = A megadott %s nem helyes
|
||||||
MAP_IS = a pálya
|
MAP_IS = a pálya
|
||||||
MAPS_ARE = a pálya
|
MAPS_ARE = a pálya
|
||||||
CHOOSE_MAP = Válassz pályát
|
CHOOSE_MAP = Válassz pályát
|
||||||
|
@ -345,8 +345,8 @@ USAGE = Használat
|
|||||||
MORE_CL_MATCHT = Több játékosra is egyezik a megadott feltétel
|
MORE_CL_MATCHT = Több játékosra is egyezik a megadott feltétel
|
||||||
CL_NOT_FOUND = Nincs ilyen nevű játékos
|
CL_NOT_FOUND = Nincs ilyen nevű játékos
|
||||||
CLIENT_IMM = "%s" immunitás joggal rendelkezik
|
CLIENT_IMM = "%s" immunitás joggal rendelkezik
|
||||||
CANT_PERF_DEAD = Ezt a műveletet nem hajthatod végre "%s" játékoson mert halott
|
CANT_PERF_DEAD = Ezt a műveletet nem hajthatod végre "%s" játékoson mivel halott
|
||||||
CANT_PERF_BOT = Ezt a műveletet nem hajthatod végre "%s" játékoson mert bot
|
CANT_PERF_BOT = Ezt a műveletet nem hajthatod végre "%s" játékoson mivel bot
|
||||||
ON = BE
|
ON = BE
|
||||||
OFF = KI
|
OFF = KI
|
||||||
|
|
||||||
@ -538,9 +538,9 @@ YES = Sim
|
|||||||
NO = Não
|
NO = Não
|
||||||
BAN = banir
|
BAN = banir
|
||||||
KICK = expulsar
|
KICK = expulsar
|
||||||
NO_ACC_COM = Tu não tens acesso a esse comando
|
NO_ACC_COM = Tu nao tens acesso a esse comando
|
||||||
USAGE = Uso
|
USAGE = Uso
|
||||||
MORE_CL_MATCHT = Há mais do que um cliente a corresponder o teu argumento
|
MORE_CL_MATCHT = Tem mais do que um cliente que corresponde ao teu argumento
|
||||||
CL_NOT_FOUND = O cliente com esse nome ou userid não foi encontrado
|
CL_NOT_FOUND = O cliente com esse nome ou userid não foi encontrado
|
||||||
CLIENT_IMM = O cliente "%s" tem imunidade
|
CLIENT_IMM = O cliente "%s" tem imunidade
|
||||||
CANT_PERF_DEAD = Essa ação não pode ser executada no cliente morto "%s"
|
CANT_PERF_DEAD = Essa ação não pode ser executada no cliente morto "%s"
|
||||||
|
@ -30,7 +30,7 @@ VOTE_FAILED = Abstimmung gescheitert
|
|||||||
THE_WINNER = Der Gewinner
|
THE_WINNER = Der Gewinner
|
||||||
WANT_CONT = Willst du fortfahren?
|
WANT_CONT = Willst du fortfahren?
|
||||||
VOT_CANC = Abstimmung abgebrochen
|
VOT_CANC = Abstimmung abgebrochen
|
||||||
X_VOTED_FOR = %s stimmte für Option #%d
|
X_VOTED_FOR = %s stimmten für Option #%d
|
||||||
VOTEMAP_MENU = Menü > Mapwahl
|
VOTEMAP_MENU = Menü > Mapwahl
|
||||||
START_VOT = Starte Abstimmung
|
START_VOT = Starte Abstimmung
|
||||||
SEL_MAPS = Ausgewählte Maps
|
SEL_MAPS = Ausgewählte Maps
|
||||||
|
@ -17,10 +17,10 @@ RES_WEAP = Restrict Weapons
|
|||||||
TELE_PLAYER = Teleport Player
|
TELE_PLAYER = Teleport Player
|
||||||
|
|
||||||
[de]
|
[de]
|
||||||
KICK_PLAYER = Spieler kicken
|
KICK_PLAYER = Kick Spieler
|
||||||
BAN_PLAYER = Spieler bannen
|
BAN_PLAYER = Ban Spieler
|
||||||
SLAP_SLAY = Spieler schlagen/killen
|
SLAP_SLAY = Schlage/Kille Spieler
|
||||||
TEAM_PLAYER = Team der Spieler ändern ^n
|
TEAM_PLAYER = Team Spieler ^n
|
||||||
CHANGEL = Mapwechsel
|
CHANGEL = Mapwechsel
|
||||||
VOTE_MAPS = Map Abstimmung ^n
|
VOTE_MAPS = Map Abstimmung ^n
|
||||||
SPECH_STUFF = Soundausgabe
|
SPECH_STUFF = Soundausgabe
|
||||||
@ -32,7 +32,7 @@ LANG_SET = Spracheinstellung
|
|||||||
STATS_SET = Statistik-Einstellungen ^n
|
STATS_SET = Statistik-Einstellungen ^n
|
||||||
PAUSE_PLUG = Plugins pausieren
|
PAUSE_PLUG = Plugins pausieren
|
||||||
RES_WEAP = Waffen verbieten
|
RES_WEAP = Waffen verbieten
|
||||||
TELE_PLAYER = Spieler teleportieren
|
TELE_PLAYER = Teleport Spieler
|
||||||
|
|
||||||
[sr]
|
[sr]
|
||||||
KICK_PLAYER = Kick Igraca
|
KICK_PLAYER = Kick Igraca
|
||||||
@ -279,7 +279,7 @@ SPECH_STUFF = Beszéd menü
|
|||||||
CLIENT_COM = Játékos parancsok
|
CLIENT_COM = Játékos parancsok
|
||||||
SERVER_COM = Szerver parancsok
|
SERVER_COM = Szerver parancsok
|
||||||
CVARS_SET = Cvar Beállítások
|
CVARS_SET = Cvar Beállítások
|
||||||
CONFIG = Configuráció
|
CONFIG = Konfiguráció
|
||||||
LANG_SET = Nyelv Beállítások
|
LANG_SET = Nyelv Beállítások
|
||||||
STATS_SET = Statisztika beállítások ^n
|
STATS_SET = Statisztika beállítások ^n
|
||||||
PAUSE_PLUG = Pluginok Szüneteltetése
|
PAUSE_PLUG = Pluginok Szüneteltetése
|
||||||
@ -438,7 +438,7 @@ TEAM_PLAYER = Equipa do Jogador ^n
|
|||||||
CHANGEL = Mudar de Mapa
|
CHANGEL = Mudar de Mapa
|
||||||
VOTE_MAPS = Votação de Mapas ^n
|
VOTE_MAPS = Votação de Mapas ^n
|
||||||
SPECH_STUFF = Menu de Voz
|
SPECH_STUFF = Menu de Voz
|
||||||
CLIENT_COM = Comandos do Cliente
|
CLIENT_COM = Comandos do Client
|
||||||
SERVER_COM = Comandos do Servidor
|
SERVER_COM = Comandos do Servidor
|
||||||
CVARS_SET = Definições de Cvars
|
CVARS_SET = Definições de Cvars
|
||||||
CONFIG = Configuração
|
CONFIG = Configuração
|
||||||
|
@ -56,7 +56,7 @@ KNIFE_MSG_4 = %s messerte und verstümmelte %s
|
|||||||
LAST_MSG_1 = Nun hängt alles von dir ab!
|
LAST_MSG_1 = Nun hängt alles von dir ab!
|
||||||
LAST_MSG_2 = Hoffentlich hast du ein Medipack dabei.
|
LAST_MSG_2 = Hoffentlich hast du ein Medipack dabei.
|
||||||
LAST_MSG_3 = Deine Teamkameraden sind alle tot. Viel Glück!
|
LAST_MSG_3 = Deine Teamkameraden sind alle tot. Viel Glück!
|
||||||
LAST_MSG_4 = Nun bist du allein. Hab Spaß dabei!
|
LAST_MSG_4 = Nun bist du allein. Hab Spass dabei!
|
||||||
HE_MSG_1 = %s sendet ein kleines Geschenk an %s
|
HE_MSG_1 = %s sendet ein kleines Geschenk an %s
|
||||||
HE_MSG_2 = %s wirft ein Knallbonbon zu %s
|
HE_MSG_2 = %s wirft ein Knallbonbon zu %s
|
||||||
HE_MSG_3 = %s macht einen Präzisionswurf zu %s
|
HE_MSG_3 = %s macht einen Präzisionswurf zu %s
|
||||||
@ -70,7 +70,7 @@ HS_MSG_2 = $kn entfernte den Kopf von $vn^nmit einem Präzisionsschuss.
|
|||||||
HS_MSG_3 = $kn verwandelte den Kopf ^nvon $vn in Pudding.
|
HS_MSG_3 = $kn verwandelte den Kopf ^nvon $vn in Pudding.
|
||||||
HS_MSG_4 = $kn besiegte $vn durch einen Kopfschuss.
|
HS_MSG_4 = $kn besiegte $vn durch einen Kopfschuss.
|
||||||
HS_MSG_5 = $vn's Kopf wurde in der Gegend verteilt
|
HS_MSG_5 = $vn's Kopf wurde in der Gegend verteilt
|
||||||
HS_MSG_6 = $kn hat einen super ^nTreffer gelandet,das weiß ^n$vn nun auch.
|
HS_MSG_6 = $kn hat einen super ^nTreffer gelandet,das weiss ^n$vn nun auch.
|
||||||
HS_MSG_7 = $vn's Kopf war ein bisschen zu lange im Fadenkreuz von $kn...
|
HS_MSG_7 = $vn's Kopf war ein bisschen zu lange im Fadenkreuz von $kn...
|
||||||
DOUBLE_KILL = Wow! %s machte einen Doppelkill!!!
|
DOUBLE_KILL = Wow! %s machte einen Doppelkill!!!
|
||||||
PREPARE_FIGHT = Vorbereiten zum Kampf!^nRunde %d
|
PREPARE_FIGHT = Vorbereiten zum Kampf!^nRunde %d
|
||||||
@ -717,29 +717,29 @@ HS = hs
|
|||||||
|
|
||||||
[hu]
|
[hu]
|
||||||
WITH = eddig
|
WITH = eddig
|
||||||
KNIFE_MSG_1 = %s felvágta %s-t!
|
KNIFE_MSG_1 = %s felvágta %s játékost!
|
||||||
KNIFE_MSG_2 = %s szétszabta %s-t!
|
KNIFE_MSG_2 = %s szétszabta %s játékost!
|
||||||
KNIFE_MSG_3 = %s felnyársalta %s-t!
|
KNIFE_MSG_3 = %s felnyársalta %s játékost!
|
||||||
KNIFE_MSG_4 = %s megkéselte %s-t!
|
KNIFE_MSG_4 = %s megkéselte %s játékost!
|
||||||
LAST_MSG_1 = Mostmár minden rajtad múlik!
|
LAST_MSG_1 = Mostmár minden rajtad múlik!
|
||||||
LAST_MSG_2 = Remélem van nálad életcsomag!
|
LAST_MSG_2 = Remélem van nálad életcsomag!
|
||||||
LAST_MSG_3 = Már csak te maradtál. Hajrá!
|
LAST_MSG_3 = Már csak te maradtál. Hajrá!
|
||||||
LAST_MSG_4 = Egyedül maradtál. Sok sikert!
|
LAST_MSG_4 = Egyedül maradtál. Sok sikert!
|
||||||
HE_MSG_1 = %s megajándékozta %s egy gránáttal
|
HE_MSG_1 = %s megajándékozta %s egy gránáttal
|
||||||
HE_MSG_2 = %s felrobbantotta %s-t
|
HE_MSG_2 = %s felrobbantotta %s játékost
|
||||||
HE_MSG_3 = %s kirobbantotta %s-t
|
HE_MSG_3 = %s kirobbantotta %s játékost
|
||||||
HE_MSG_4 = %s szétrobbantotta %s-t
|
HE_MSG_4 = %s szétrobbantotta %s játékost
|
||||||
SHE_MSG_1 = %s felrobbantotta magát...
|
SHE_MSG_1 = %s felrobbantotta magát...
|
||||||
SHE_MSG_2 = %s megnézte közelebbről a gránátját...
|
SHE_MSG_2 = %s megnézte közelebbről a gránátját...
|
||||||
SHE_MSG_3 = %s azt hitte krumpli van a kezében...
|
SHE_MSG_3 = %s azt hitte krumpli van a kezében...
|
||||||
SHE_MSG_4 = %s Felrobbant!
|
SHE_MSG_4 = %s Felrobbant!
|
||||||
HS_MSG_1 = $kn megölte $vn t egy fejlövéssel!
|
HS_MSG_1 = $kn megölte $vn játékost egy fejlövéssel!
|
||||||
HS_MSG_2 = $kn eltávolíttotta $vn fejét^naz $wn-vel.
|
HS_MSG_2 = $kn eltávolíttotta $vn fejét^na(z) $wn fegyverrel.
|
||||||
HS_MSG_3 = $kn hullócsillagot csinált $vn fejéből egy $wn-vel
|
HS_MSG_3 = $kn hullócsillagot csinált $vn fejéből egy $wn fegyverrel
|
||||||
HS_MSG_4 = $kn orbalőtte $vn-t
|
HS_MSG_4 = $kn orbalőtte $vn játékost
|
||||||
HS_MSG_5 = $vn feje földkörüli pályára állt.
|
HS_MSG_5 = $vn feje földkörüli pályára állt.
|
||||||
HS_MSG_6 = $kn segítségével $wn feje már a csillagok között tündökölhet...
|
HS_MSG_6 = $kn segítségével $wn feje már a csillagok között tündökölhet...
|
||||||
HS_MSG_7 = Miaz? Talán egy repülő? Dehogy... Csak $vn-feje
|
HS_MSG_7 = Mi az? Talán egy repülő? Dehogy... Csak $vn feje
|
||||||
DOUBLE_KILL = Wow! %s: Duplagyilok!!!
|
DOUBLE_KILL = Wow! %s: Duplagyilok!!!
|
||||||
PREPARE_FIGHT = Készülj fel a harcra!^n%d. KÖR
|
PREPARE_FIGHT = Készülj fel a harcra!^n%d. KÖR
|
||||||
KILLED_ROW = Egymás utáni %d ölés.
|
KILLED_ROW = Egymás utáni %d ölés.
|
||||||
@ -1172,7 +1172,7 @@ PREPARE_FIGHT = Preparem-se para LUTAR!^nRonda %d
|
|||||||
KILLED_ROW = Tu mataste %d vezes de seguida
|
KILLED_ROW = Tu mataste %d vezes de seguida
|
||||||
DIED_ROUNDS = Cuidado! Tu morreste %d vezes de seguida...
|
DIED_ROUNDS = Cuidado! Tu morreste %d vezes de seguida...
|
||||||
KILLED_CHICKEN = Alguém matou a galinha!!!
|
KILLED_CHICKEN = Alguém matou a galinha!!!
|
||||||
BLEW_RADIO = Alguém explodiu o rádio!!!
|
BLEW_RADIO = Alguém explodiu rádio!!!
|
||||||
REACHED_TARGET = Oh meu deus! %s alcançou o objetivo!
|
REACHED_TARGET = Oh meu deus! %s alcançou o objetivo!
|
||||||
PLANT_BOMB = %s está a plantar a bomba!
|
PLANT_BOMB = %s está a plantar a bomba!
|
||||||
DEFUSING_BOMB = %s está a desarmar a bomba...
|
DEFUSING_BOMB = %s está a desarmar a bomba...
|
||||||
@ -1185,7 +1185,7 @@ CT = CT
|
|||||||
CTS = CTS
|
CTS = CTS
|
||||||
TERRORIST = TERRORISTA
|
TERRORIST = TERRORISTA
|
||||||
TERRORISTS = TERRORISTAS
|
TERRORISTS = TERRORISTAS
|
||||||
REMAINING = %d %s Restante(s)...
|
REMAINING = %d %s Restante...
|
||||||
REMAINING_ENEMY = Resta um inimigo...
|
REMAINING_ENEMY = Resta um inimigo...
|
||||||
REMAINING_ENEMIES = Restam %d inimigos...
|
REMAINING_ENEMIES = Restam %d inimigos...
|
||||||
KILLS = mortes
|
KILLS = mortes
|
||||||
|
@ -5,7 +5,7 @@ FRIEND_FIRE = Friendly fire
|
|||||||
|
|
||||||
[de]
|
[de]
|
||||||
NEXT_MAP = Nächste Map:
|
NEXT_MAP = Nächste Map:
|
||||||
PLAYED_MAP = Aktuelle Map
|
PLAYED_MAP = Gespielte Maps
|
||||||
FRIEND_FIRE = Friendly fire
|
FRIEND_FIRE = Friendly fire
|
||||||
|
|
||||||
[sr]
|
[sr]
|
||||||
|
@ -936,18 +936,18 @@ CLEAR_PAUSED = Pastro skedarin me pushime
|
|||||||
[pt]
|
[pt]
|
||||||
PAUSE_COULDNT_FIND = Não foi possível encontrar um plugin coincidindo "%s"
|
PAUSE_COULDNT_FIND = Não foi possível encontrar um plugin coincidindo "%s"
|
||||||
PAUSE_PLUGIN_MATCH = Plugin coincidindo "%s"
|
PAUSE_PLUGIN_MATCH = Plugin coincidindo "%s"
|
||||||
PAUSE_CONF_CLEARED = Ficheiro de configuração limpo. Recarrega o mapa se for necessário
|
PAUSE_CONF_CLEARED = Ficheiro de Configuração limpo. Recarrega o map se for necessário
|
||||||
PAUSE_ALR_CLEARED = A configuração já foi limpa!
|
PAUSE_ALR_CLEARED = A Configuração já foi limpa!
|
||||||
PAUSE_CONF_SAVED = Configuração guardada com sucesso
|
PAUSE_CONF_SAVED = Configuração guardada com sucesso
|
||||||
PAUSE_SAVE_FAILED = Falha ao guardar a configuração!!!
|
PAUSE_SAVE_FAILED = Falha ao guardar a Configuração!!!
|
||||||
LOCKED = BLOQUEADO
|
LOCKED = BLOQUEADO
|
||||||
PAUSE_UNPAUSE = Pausar/Despausar Plugins
|
PAUSE_UNPAUSE = Pausar/Despausar Plugins
|
||||||
CLEAR_STOPPED = Limpar ficheiro de plugins parados
|
CLEAR_STOPPED = Limpar ficheiro de plugins parados
|
||||||
SAVE_STOPPED = Guardar plugins parados
|
SAVE_STOPPED = Guardar plugins parados
|
||||||
PAUSED_PLUGIN = %d plugin foi pausado
|
PAUSED_PLUGIN = %d plugin pausado
|
||||||
PAUSED_PLUGINS = %d plugins foram pausados
|
PAUSED_PLUGINS = %d plugins pausados
|
||||||
UNPAUSED_PLUGIN = %d plugin foi despausado
|
UNPAUSED_PLUGIN = %d plugin despausado
|
||||||
UNPAUSED_PLUGINS = %d plugins foram despausados
|
UNPAUSED_PLUGINS = %d plugins despausados
|
||||||
CANT_MARK_MORE = Não é possível marcar mais plugins como não-pausáveis!
|
CANT_MARK_MORE = Não é possível marcar mais plugins como não-pausáveis!
|
||||||
PAUSE_LOADED = Pausar Plugins: Plugins carregados
|
PAUSE_LOADED = Pausar Plugins: Plugins carregados
|
||||||
STOPPED = parado
|
STOPPED = parado
|
||||||
@ -958,17 +958,17 @@ PAUSE_USE_MORE = Usa 'amx_pausecfg list %d' para mostrar mais
|
|||||||
PAUSE_USE_BEGIN = Usa 'amx_pausecfg list 1' para voltar ao início
|
PAUSE_USE_BEGIN = Usa 'amx_pausecfg list 1' para voltar ao início
|
||||||
PAUSE_USAGE = Uso: amx_pausecfg <comando> [nome]
|
PAUSE_USAGE = Uso: amx_pausecfg <comando> [nome]
|
||||||
PAUSE_COMMANDS = Comandos
|
PAUSE_COMMANDS = Comandos
|
||||||
COM_PAUSE_OFF = ^toff - pausa todos os plugins que não estão na lista
|
COM_PAUSE_OFF = ^toff - pausar todos os plugins que não estão na lista
|
||||||
COM_PAUSE_ON = ^ton - despausa todos os plugins
|
COM_PAUSE_ON = ^ton - despausar todos os plugins
|
||||||
COM_PAUSE_STOP = ^tstop <ficheiro> - para um plugin
|
COM_PAUSE_STOP = ^tstop <ficheiro> - parar um plugin
|
||||||
COM_PAUSE_PAUSE = ^tpause <ficheiro> - pausa um plugin
|
COM_PAUSE_PAUSE = ^tpause <ficheiro> - pausar um plugin
|
||||||
COM_PAUSE_ENABLE = ^tenable <ficheiro> - ativa um plugin
|
COM_PAUSE_ENABLE = ^tenable <ficheiro> - ativar um plugin
|
||||||
COM_PAUSE_SAVE = ^tsave - guarda a lista de plugins parados
|
COM_PAUSE_SAVE = ^tsave - guardar a lista de plugins parados
|
||||||
COM_PAUSE_CLEAR = ^tclear - limpa a lista de plugins parados
|
COM_PAUSE_CLEAR = ^tclear - limpar a lista de plugins parados
|
||||||
COM_PAUSE_LIST = ^tlist [id] - lista plugins
|
COM_PAUSE_LIST = ^tlist [id] - listar plugins
|
||||||
COM_PAUSE_ADD = ^tadd <título> - marca um plugin como não-pausável
|
COM_PAUSE_ADD = ^tadd <título> - marcar um plugin como não-pausável
|
||||||
SAVE_PAUSED = Guardar plugins pausados
|
SAVE_PAUSED = Guardar plugins pausados
|
||||||
COM_PAUSE_SAVE_PAUSED = ^tsave - guarda a lista de plugins pausados
|
COM_PAUSE_SAVE_PAUSED = ^tsave - guarda a lista de plugins pausados
|
||||||
COM_PAUSE_CLEAR_PAUSED = ^tclear - limpa a lista de plugins pausados
|
COM_PAUSE_CLEAR_PAUSED = ^tclear - limpa a lista de plugins pausados
|
||||||
CANT_UNPAUSE_PLUGIN = O plugin "%s" está parado e não pode ser nem pausado nem despausado.
|
CANT_UNPAUSE_PLUGIN = O Plugin "%s" está parado e não pode ser pausado nem despausado.
|
||||||
CLEAR_PAUSED = Limpar ficheiro de plugins pausados
|
CLEAR_PAUSED = Limpar ficheiro de plugins pausados
|
||||||
|
@ -293,10 +293,10 @@ SLAP_SLAY_MENU = Ütés/Ölés Menü
|
|||||||
SLAP_WITH_DMG = Megütve %d sebzéssel
|
SLAP_WITH_DMG = Megütve %d sebzéssel
|
||||||
SLAY = Megölés
|
SLAY = Megölés
|
||||||
KICK_MENU = Kick Menü
|
KICK_MENU = Kick Menü
|
||||||
ADMIN_TRANSF_1 = ADMIN: %s átállítva %s-nak
|
ADMIN_TRANSF_1 = ADMIN: %s átállítva %s csapatba
|
||||||
ADMIN_TRANSF_2 = ADMIN %s: %s átállítva %s-nak
|
ADMIN_TRANSF_2 = ADMIN %s: %s átállítva %s csapatba
|
||||||
TEAM_MENU = Csapat Menü
|
TEAM_MENU = Csapat Menü
|
||||||
TRANSF_TO = Átállítva %s-nek
|
TRANSF_TO = Átállítva %s csapatba
|
||||||
TRANSF_SILENT = Csendes Átállítás
|
TRANSF_SILENT = Csendes Átállítás
|
||||||
CL_CMD_MENU = Kliens parancsok Menü
|
CL_CMD_MENU = Kliens parancsok Menü
|
||||||
NO_CMDS = Nincs elérhető parancs
|
NO_CMDS = Nincs elérhető parancs
|
||||||
|
42
plugins/lang/restmenu.txt
Executable file → Normal file
42
plugins/lang/restmenu.txt
Executable file → Normal file
@ -87,8 +87,8 @@ ADMIN_MENU_SAVEDCFG = Menu: %N saved items restrictions in "%s"
|
|||||||
[de]
|
[de]
|
||||||
EQ_WE_RES = Ausrüstung und Waffen wurden verboten
|
EQ_WE_RES = Ausrüstung und Waffen wurden verboten
|
||||||
EQ_WE_UNRES = Ausrüstung und Waffen wurden freigegeben
|
EQ_WE_UNRES = Ausrüstung und Waffen wurden freigegeben
|
||||||
HAVE_BEEN = wurden
|
HAVE_BEEN = sind gewesen
|
||||||
HAS_BEEN = wurde
|
HAS_BEEN = ist gewesen
|
||||||
RESTRICTED = verboten
|
RESTRICTED = verboten
|
||||||
UNRESTRICTED = wieder erlaubt
|
UNRESTRICTED = wieder erlaubt
|
||||||
NO_EQ_WE = Konnte diese Ausrüstung oder Waffe nicht finden
|
NO_EQ_WE = Konnte diese Ausrüstung oder Waffe nicht finden
|
||||||
@ -105,9 +105,9 @@ REST_COULDNT_LOAD = Konfiguration konnte nicht geladen werden (Datei "%s")
|
|||||||
COM_REST_USAGE = Benutze: amx_restrict <Befehl> [Wert]
|
COM_REST_USAGE = Benutze: amx_restrict <Befehl> [Wert]
|
||||||
COM_REST_COMMANDS = Befehle:
|
COM_REST_COMMANDS = Befehle:
|
||||||
COM_REST_ON = " on - Setze Verbot auf die gesamte Ausrüstung"
|
COM_REST_ON = " on - Setze Verbot auf die gesamte Ausrüstung"
|
||||||
COM_REST_OFF = " off - Verbot für die gesamte Ausrüstung aufheben"
|
COM_REST_OFF = " off - Verbot für Ausrüstung aufheben"
|
||||||
COM_REST_ONV = " on <value> [...] - Setze spezielles Verbot"
|
COM_REST_ONV = " on <value> [...] - Setze spezielles Verbot"
|
||||||
COM_REST_OFFV = " off <value> [...] - Spezielles Verbot aufheben"
|
COM_REST_OFFV = " off <value> [...] - Spezielles Verbot aufgehoben"
|
||||||
COM_REST_LIST = " list <value> - Zeigt die Liste der verfügbaren Waffen und Ausrüstungen"
|
COM_REST_LIST = " list <value> - Zeigt die Liste der verfügbaren Waffen und Ausrüstungen"
|
||||||
COM_REST_SAVE = " save - Verbote speichern"
|
COM_REST_SAVE = " save - Verbote speichern"
|
||||||
COM_REST_LOAD = " load [file] - Lädt Verbote [aus einer Datei]"
|
COM_REST_LOAD = " load [file] - Lädt Verbote [aus einer Datei]"
|
||||||
@ -155,20 +155,14 @@ MENU_ITEM_M249 = FN M249 Para
|
|||||||
MENU_ITEM_VEST = Kevlarweste
|
MENU_ITEM_VEST = Kevlarweste
|
||||||
MENU_ITEM_VESTHELM = Kevlarweste & Helm
|
MENU_ITEM_VESTHELM = Kevlarweste & Helm
|
||||||
MENU_ITEM_FLASHBANG = Blendgranate
|
MENU_ITEM_FLASHBANG = Blendgranate
|
||||||
MENU_ITEM_HEGRENADE = HE-Granate
|
MENU_ITEM_HEGRENADE = HE Granate
|
||||||
MENU_ITEM_SMOKEGRENADE = Rauchgranate
|
MENU_ITEM_SMOKEGRENADE = Rauch Granate
|
||||||
MENU_ITEM_DEFUSER = Entschärfungskit
|
MENU_ITEM_DEFUSER = Entschärfungs Kit
|
||||||
MENU_ITEM_NVGS = Nachtsichtgerät
|
MENU_ITEM_NVGS = Nachtsichtgerät
|
||||||
MENU_ITEM_SHIELD = Tactical Shield
|
MENU_ITEM_SHIELD = Tactical Shield
|
||||||
MENU_ITEM_PRIAMMO = Primärwaffenmunition
|
MENU_ITEM_PRIAMMO = Primär Waffen Munition
|
||||||
MENU_ITEM_SECAMMO = Sekundärwaffenmunition
|
MENU_ITEM_SECAMMO = Sekundär Waffen Munition
|
||||||
CONFIG_FILE_HEADER = ; Erstellt durch %s Plugin. Nicht verändern!^n; Wert Name^n
|
CONFIG_FILE_HEADER = ; Erstellt durch %s Plugin. Nicht verändern!^n; Wert Name^n
|
||||||
ADMIN_UPD_RES_1 = ADMIN: Waffen- und Ausrüstungsverbote wurden aktualisiert.
|
|
||||||
ADMIN_UPD_RES_2 = ADMIN %s: Waffen- und Ausrüstungsverbote wurden aktualisiert.
|
|
||||||
ADMIN_CMD_UPDATEDCFG = Cmd: %N Waffen- und Ausrüstungsverbote wurden aktualisiert.
|
|
||||||
ADMIN_CMD_LOADEDCFG = Cmd: %N Waffen- und Ausrüstungsverbote wurden von "%s" geladen.
|
|
||||||
ADMIN_CMD_SAVEDCFG = Cmd: %N Waffen- und Ausrüstungsverbote wurden in "%s" gespeichert.
|
|
||||||
ADMIN_MENU_SAVEDCFG = Menu: %N Waffen- und Ausrüstungsverbote wurden in "%s" gespeichert.
|
|
||||||
|
|
||||||
[sr]
|
[sr]
|
||||||
EQ_WE_RES = Oprema i oruzje su zabranjeni
|
EQ_WE_RES = Oprema i oruzje su zabranjeni
|
||||||
@ -801,10 +795,10 @@ REST_ENTRIES_OF = Bejegyzések %i - %i összesen %i
|
|||||||
REST_USE_MORE = Írd be 'amx_restrict list %i' a többhöz
|
REST_USE_MORE = Írd be 'amx_restrict list %i' a többhöz
|
||||||
REST_USE_BEGIN = Írd be 'amx_restrict list 1' az elsőhöz
|
REST_USE_BEGIN = Írd be 'amx_restrict list 1' az elsőhöz
|
||||||
REST_USE_HOW = Írd be 'amx_restrict list <érték>' (1 -> 8)
|
REST_USE_HOW = Írd be 'amx_restrict list <érték>' (1 -> 8)
|
||||||
REST_CONF_SAVED = Beállitások elmentve (file "%s")
|
REST_CONF_SAVED = Beállítások elmentve (fájl "%s")
|
||||||
REST_COULDNT_SAVE = Mentés sikertelen (file "%s")
|
REST_COULDNT_SAVE = Mentés sikertelen (fájl "%s")
|
||||||
REST_CONF_LOADED = Beállítások betöltve (file "%s")
|
REST_CONF_LOADED = Beállítások betöltve (fájl "%s")
|
||||||
REST_COULDNT_LOAD = Nem lehet betölteni a beállításokat (file "%s")
|
REST_COULDNT_LOAD = Nem lehet betölteni a beállításokat (fájl "%s")
|
||||||
COM_REST_USAGE = Használat: amx_restrict <parancs> [érték]
|
COM_REST_USAGE = Használat: amx_restrict <parancs> [érték]
|
||||||
COM_REST_COMMANDS = Parancsok:
|
COM_REST_COMMANDS = Parancsok:
|
||||||
COM_REST_ON = " on - A teljes felszerelés tiltása"
|
COM_REST_ON = " on - A teljes felszerelés tiltása"
|
||||||
@ -813,7 +807,7 @@ COM_REST_ONV = " on <érték> [...] - Egyedi tiltás beállítás
|
|||||||
COM_REST_OFFV = " off <érték> [...] - Egyedi tiltás visszavonása"
|
COM_REST_OFFV = " off <érték> [...] - Egyedi tiltás visszavonása"
|
||||||
COM_REST_LIST = " list <érték> - Az elérhető felszerelések és fegyverek listázása
|
COM_REST_LIST = " list <érték> - Az elérhető felszerelések és fegyverek listázása
|
||||||
COM_REST_SAVE = " save - Felfüggesztések mentése"
|
COM_REST_SAVE = " save - Felfüggesztések mentése"
|
||||||
COM_REST_LOAD = " load [file] - Felfüggesztések betöltése [fájlból]"
|
COM_REST_LOAD = " load [fájl] - Felfüggesztések betöltése [fájlból]"
|
||||||
COM_REST_VALUES = Elérhető felfüggesztési értékek:^nammo, equip, pistol, shotgun, sub, rifle, sniper, machine
|
COM_REST_VALUES = Elérhető felfüggesztési értékek:^nammo, equip, pistol, shotgun, sub, rifle, sniper, machine
|
||||||
COM_REST_TYPE = Írd be 'amx_restrict list' a többi speciális értékhez
|
COM_REST_TYPE = Írd be 'amx_restrict list' a többi speciális értékhez
|
||||||
REST_WEAP = Fegyverek felfüggesztése
|
REST_WEAP = Fegyverek felfüggesztése
|
||||||
@ -1369,9 +1363,9 @@ REST_ENTRIES_OF = Entradas %i - %i de %i
|
|||||||
REST_USE_MORE = Usa 'amx_restrict list %i' para mostrar mais
|
REST_USE_MORE = Usa 'amx_restrict list %i' para mostrar mais
|
||||||
REST_USE_BEGIN = Usa 'amx_restrict list 1' para voltar ao início
|
REST_USE_BEGIN = Usa 'amx_restrict list 1' para voltar ao início
|
||||||
REST_USE_HOW = Usa 'amx_restrict list <valor>' (1 -> 8)
|
REST_USE_HOW = Usa 'amx_restrict list <valor>' (1 -> 8)
|
||||||
REST_CONF_SAVED = A configuração foi guardada (ficheiro "%s")
|
REST_CONF_SAVED = A Configuração foi guardada (ficheiro "%s")
|
||||||
REST_COULDNT_SAVE = Não foi possível guardar a configuração (ficheiro "%s")
|
REST_COULDNT_SAVE = Não foi possível guardar a configuração (ficheiro "%s")
|
||||||
REST_CONF_LOADED = A configuração foi carregada (ficheiro "%s")
|
REST_CONF_LOADED = A Configuração foi carregada (ficheiro "%s")
|
||||||
REST_COULDNT_LOAD = Não foi possível carregar a configuração (ficheiro "%s")
|
REST_COULDNT_LOAD = Não foi possível carregar a configuração (ficheiro "%s")
|
||||||
COM_REST_USAGE = Uso: amx_restrict <comando> [valor]
|
COM_REST_USAGE = Uso: amx_restrict <comando> [valor]
|
||||||
COM_REST_COMMANDS = Comandos:
|
COM_REST_COMMANDS = Comandos:
|
||||||
@ -1387,7 +1381,7 @@ COM_REST_TYPE = Escreve 'amx_restrict list' para mais valores específi
|
|||||||
REST_WEAP = Restringir Armas
|
REST_WEAP = Restringir Armas
|
||||||
SAVE_SET = Guardar definições
|
SAVE_SET = Guardar definições
|
||||||
CONF_SAV_SUC = Configuração guardada com sucesso
|
CONF_SAV_SUC = Configuração guardada com sucesso
|
||||||
CONF_SAV_FAIL = Falha ao guardar a configuração!!!
|
CONF_SAV_FAIL = Falha ao guardar a Configuração!!!
|
||||||
REG_CMD_MENU = - mostra o menu de restrição de armas
|
REG_CMD_MENU = - mostra o menu de restrição de armas
|
||||||
REG_CMD_REST = - mostra a ajuda para restrição de armas
|
REG_CMD_REST = - mostra a ajuda para restrição de armas
|
||||||
RESTRICTED_ITEM = * Este item é restrito *
|
RESTRICTED_ITEM = * Este item é restrito *
|
||||||
@ -1433,7 +1427,7 @@ MENU_ITEM_NVGS = Óculos de Visão Noturna
|
|||||||
MENU_ITEM_SHIELD = Escudo Tático
|
MENU_ITEM_SHIELD = Escudo Tático
|
||||||
MENU_ITEM_PRIAMMO = Munição da arma primária
|
MENU_ITEM_PRIAMMO = Munição da arma primária
|
||||||
MENU_ITEM_SECAMMO = Munição da arma secundária
|
MENU_ITEM_SECAMMO = Munição da arma secundária
|
||||||
CONFIG_FILE_HEADER = ; Gerado pelo Plugin %s. Não modifique!^n; nome do valor^n
|
CONFIG_FILE_HEADER = ; Gerado por %s Plugin. Não modifique!^n; nome do valor^n
|
||||||
ADMIN_UPD_RES_1 = ADMIN: atualizou a restrição de itens
|
ADMIN_UPD_RES_1 = ADMIN: atualizou a restrição de itens
|
||||||
ADMIN_UPD_RES_2 = ADMIN %s: atualizou a restrição de itens
|
ADMIN_UPD_RES_2 = ADMIN %s: atualizou a restrição de itens
|
||||||
ADMIN_CMD_UPDATEDCFG = Cmd: %N atualizou a restrição de itens
|
ADMIN_CMD_UPDATEDCFG = Cmd: %N atualizou a restrição de itens
|
||||||
|
@ -133,7 +133,7 @@ HEAD_MSG2 = $kn entfernte den Kopf von $vn^nmit einem Präzisionsschuss.
|
|||||||
HEAD_MSG3 = $kn verwandelte den Kopf ^nvon $vn in Pudding.
|
HEAD_MSG3 = $kn verwandelte den Kopf ^nvon $vn in Pudding.
|
||||||
HEAD_MSG4 = $vn killte $kn durch einen Kopfschuss.
|
HEAD_MSG4 = $vn killte $kn durch einen Kopfschuss.
|
||||||
HEAD_MSG5 = $vn's Kopf wurde in der Gegend verteilt
|
HEAD_MSG5 = $vn's Kopf wurde in der Gegend verteilt
|
||||||
HEAD_MSG6 = $kn hat einen super ^nTreffer gelandet,das weiß ^n$vn nun auch.
|
HEAD_MSG6 = $kn hat einen super ^nTreffer gelandet,das weiss ^n$vn nun auch.
|
||||||
HEAD_MSG7 = $vn's Kopf war ein bisschen zu lange im Fadenkreuz von $kn...
|
HEAD_MSG7 = $vn's Kopf war ein bisschen zu lange im Fadenkreuz von $kn...
|
||||||
DOUBLE_MSG1 = Wow! %s machte einen Doppelkill!!!
|
DOUBLE_MSG1 = Wow! %s machte einen Doppelkill!!!
|
||||||
DOUBLE_MSG2 = Unglaublich! %s macht einen dreifachen Kill !!!
|
DOUBLE_MSG2 = Unglaublich! %s macht einen dreifachen Kill !!!
|
||||||
@ -141,8 +141,8 @@ DOUBLE_MSG3 = Überraschung! %s macht %d Kills auf einmal !!!
|
|||||||
MORTAR_MSG1 = %s stellte den Mörser auf und schickte %s in den Himmel.
|
MORTAR_MSG1 = %s stellte den Mörser auf und schickte %s in den Himmel.
|
||||||
MORTAR_MSG2 = %s killte %s über eine lange Distanz.
|
MORTAR_MSG2 = %s killte %s über eine lange Distanz.
|
||||||
KILL_INFO1 = %s killte dich mit der %s^nüber eine Entfernung von %.2f Meter.^n
|
KILL_INFO1 = %s killte dich mit der %s^nüber eine Entfernung von %.2f Meter.^n
|
||||||
KILL_INFO2 = Er machte %d Schaden bei dir mit %d Treffer(n) ^nund hat noch %dHP.^n
|
KILL_INFO2 = Er machte %d Schaden bei dir mit %d Treffern ^nund hat noch %dHP.^n
|
||||||
KILL_INFO3 = Du machtest %d Schaden bei ihm mit %d Treffer(n).^n
|
KILL_INFO3 = Du machtest %d Schaden bei ihm mit %d Treffern.^n
|
||||||
KILL_INFO4 = Du hast ihn getroffen in den/das:^n%s^n
|
KILL_INFO4 = Du hast ihn getroffen in den/das:^n%s^n
|
||||||
STILL_HAS = %s hat noch %dHP
|
STILL_HAS = %s hat noch %dHP
|
||||||
NO_KILLER = Du hast keinen Killer...
|
NO_KILLER = Du hast keinen Killer...
|
||||||
@ -153,14 +153,14 @@ VICTIMS = Opfer:
|
|||||||
DMG = Schaden
|
DMG = Schaden
|
||||||
HIT_S = Treffer
|
HIT_S = Treffer
|
||||||
YOU_HIT = Du trafst %s in:
|
YOU_HIT = Du trafst %s in:
|
||||||
SERVER_STATS = Serverstatistik
|
SERVER_STATS = Server Statistik
|
||||||
SHOW_STATS = Statistik anzeigen
|
SHOW_STATS = Statistik anzeigen
|
||||||
SHOW_RANK = Rang anzeigen
|
SHOW_RANK = Rang anzeigen
|
||||||
TA_MSG = %s schießt auf einen Kameraden
|
TA_MSG = %s schiesst auf einen Kameraden
|
||||||
TK_MSG = %s killte einen Kameraden!
|
TK_MSG = %s killte einen Kameraden!
|
||||||
NADE_CAUGHT = Wow! %s fängt eine gegnerische Granate!
|
NADE_CAUGHT = Wow! %s fängt eine gegnerische Granate!
|
||||||
NADE_FAILEDTK = Oops.. %s killte dich bei dem Versuch, die Granate zurückzuwerfen..
|
NADE_FAILEDTK = Oops.. %s killte dich bei dem Versuch, die Granate zurückzuwerfen..
|
||||||
NADE_FAILED = %s konnte die feindliche Granate nicht zurückwerfen.
|
NADE_FAILED = %s konnte feindliche Granate nicht zurückwerfen.
|
||||||
NADE_MASTER = OMG! %s ist der Meister der Granaten !!!
|
NADE_MASTER = OMG! %s ist der Meister der Granaten !!!
|
||||||
DISABLED_MSG = Server hat diese Option deaktiviert.
|
DISABLED_MSG = Server hat diese Option deaktiviert.
|
||||||
MOST_KILLS = Meisten Kills
|
MOST_KILLS = Meisten Kills
|
||||||
@ -1424,98 +1424,98 @@ M_THEIR_RANK_IS = Pozitia lor este
|
|||||||
M_OF = din
|
M_OF = din
|
||||||
|
|
||||||
[hu]
|
[hu]
|
||||||
WHOLEBODY = egesz test
|
WHOLEBODY = egész test
|
||||||
HEAD = fej
|
HEAD = fej
|
||||||
CHEST = csipo
|
CHEST = csipő
|
||||||
STOMACH = has
|
STOMACH = has
|
||||||
LEFTARM = balkar
|
LEFTARM = balkar
|
||||||
RIGHTARM = jobbkar
|
RIGHTARM = jobbkar
|
||||||
LEFTLEG = ballab
|
LEFTLEG = balláb
|
||||||
RIGHTLEG = jobblab
|
RIGHTLEG = jobbláb
|
||||||
MULTI_MSG = Multi-Gyilok! %s^nwith %d oles (%d fej)
|
MULTI_MSG = Multi-Gyilok! %s^n%d ölés (%d fej)
|
||||||
ULTRA_MSG = Ultra-Gyilok!!! %s^nwith %d oles (%d fej)
|
ULTRA_MSG = Ultra-Gyilok!!! %s^n%d ölés (%d fej)
|
||||||
SPREE_MSG = %s OLDOKLESI SOROZAT!!!^nwith %d oles(%d fej)
|
SPREE_MSG = %s ÖLDÖKLÉSI SOROZAT!!!^n %d ölés(%d fej)
|
||||||
RAMPAGE_MSG = RAMPAGE!!! %s^nwith %d oles (%d fej)
|
RAMPAGE_MSG = RAMPAGE!!! %s^n%d ölés (%d fej)
|
||||||
UNSTOPPABLE_MSG = %s a MEGALLITHATATLAN!!!^nwith %d oles (%d fej)
|
UNSTOPPABLE_MSG = %s a MEGÁLLÍTHATATLAN!!!^n%d ölés (%d fej)
|
||||||
MONSTER_MSG = %s EGY GYILOKGEP!^nwith %d oles (%d fej)
|
MONSTER_MSG = %s EGY GYILOKGÉP!^n%d ölés (%d fej)
|
||||||
GODLIKE_MSG = %s AZ ISTEN!!!!^nwith %d oles (%d fej)
|
GODLIKE_MSG = %s AZ ISTEN!!!!^n%d ölés (%d fej)
|
||||||
MULTI_SMALL = %s: Multi-Gyilok!
|
MULTI_SMALL = %s: Multi-Gyilok!
|
||||||
ULTRA_SMALL = %s: Ultra-Gyilok!!!
|
ULTRA_SMALL = %s: Ultra-Gyilok!!!
|
||||||
SPREE_SMALL = %s IS ON A KILLING SPREE!!!
|
SPREE_SMALL = %s ÖLDÖKLÉSI SOROZAT!!!
|
||||||
RAMPAGE_SMALL = %s: RAMPAGE!!!
|
RAMPAGE_SMALL = %s: RAMPAGE!!!
|
||||||
UNSTOPPABLE_SMALL = %s A MEGALLITHATATLAN!!!
|
UNSTOPPABLE_SMALL = %s A MEGÁLLÍTHATATLAN!!!
|
||||||
MONSTER_SMALL = %s EGY GYILOKGEPP!
|
MONSTER_SMALL = %s EGY GYILOKGÉP!
|
||||||
GODLIKE_SMALL = %s AZ ISTEN!!!
|
GODLIKE_SMALL = %s AZ ISTEN!!!
|
||||||
KNIFE_MSG1 = %s Felvagta %s-t
|
KNIFE_MSG1 = %s Felvágta %s-t
|
||||||
KNIFE_MSG2 = %s Szetszabta%s-t
|
KNIFE_MSG2 = %s Szétszabta%s-t
|
||||||
KNIFE_MSG3 = %s szetvagta %s-t
|
KNIFE_MSG3 = %s szétvágta %s-t
|
||||||
KNIFE_MSG4 = %s megkeselte %s-t
|
KNIFE_MSG4 = %s megkéselte %s-t
|
||||||
HE_MSG1 = %s megajandekozta %s egy granattal
|
HE_MSG1 = %s megajándékozta %s egy gránáttal
|
||||||
HE_MSG2 = %s felrobbantotta %s
|
HE_MSG2 = %s felrobbantotta %s
|
||||||
HE_MSG3 = %s kirobbantotta %s
|
HE_MSG3 = %s kirobbantotta %s
|
||||||
HE_MSG4 = %s szetrobbantotta %s
|
HE_MSG4 = %s szétrobbantotta %s
|
||||||
SHE_MSG1 = %s felrobbantotta magat...
|
SHE_MSG1 = %s felrobbantotta magát...
|
||||||
SHE_MSG2 = %s megnezte kozelebrol a granatjat...
|
SHE_MSG2 = %s megnézte közelebbről a gránátját...
|
||||||
SHE_MSG3 = %s azt hitte krumpli van a kezeben...
|
SHE_MSG3 = %s azt hitte krumpli van a kezében...
|
||||||
SHE_MSG4 = %s Felrobbant!
|
SHE_MSG4 = %s Felrobbant!
|
||||||
HEAD_MSG1 = $kn megolte $vn t egy fejlovessel!
|
HEAD_MSG1 = $kn megölte $vn -t egy fejlövéssel!
|
||||||
HEAD_MSG2 = $kn eltavolittotta $vn fejet^naz $wn-vel.
|
HEAD_MSG2 = $kn eltávolyttotta $vn fejét^naz $wn-vel.
|
||||||
HEAD_MSG3 = $kn hullocsillagot csinalt $vn fejobel egy $wn-vel
|
HEAD_MSG3 = $kn hullócsillagot csinált $vn fejéből egy $wn-vel
|
||||||
HEAD_MSG4 = $vn fejen lett love $kn fegyvere altal...
|
HEAD_MSG4 = $vn fejen lett lőve $kn fegyvere által...
|
||||||
HEAD_MSG5 = $vn feje foldkoruli palyara alt.
|
HEAD_MSG5 = $vn feje földkörüli pályára állt.
|
||||||
HEAD_MSG6 = $kn segitsegevel $wn feje mar a csillagok kozott tundokolhet...
|
HEAD_MSG6 = $kn segítségével $wn feje már a csillagok között tündökölhet...
|
||||||
HEAD_MSG7 = Miaz? Talan egy repulo? Dehogy... Csak $vn-feje
|
HEAD_MSG7 = Mi az? Talan egy repülő? Dehogy... Csak $vn-feje
|
||||||
DOUBLE_MSG1 = Wow! %s duplan olt!!!
|
DOUBLE_MSG1 = Wow! %s duplán ölt!!!
|
||||||
DOUBLE_MSG2 = Hihetetlen! %s triplan olt !!!
|
DOUBLE_MSG2 = Hihetetlen! %s triplán ölt!!!
|
||||||
DOUBLE_MSG3 = Szuper! %s egyhuzamban %d embert gyilkolt meg !!!
|
DOUBLE_MSG3 = Szuper! %s egyhuzamban %d embert gyilkolt meg!!!
|
||||||
MORTAR_MSG1 = %s fel allitott egy kilovoallast, es egyszerre %s lazadod irtott ki vele
|
MORTAR_MSG1 = %s felállított egy kilövőállást és egyszerre %s lázadót irtott ki vele
|
||||||
MORTAR_MSG2 = %s egyhuzamban %s embert olt
|
MORTAR_MSG2 = %s egyhuzamban %s embert ölt
|
||||||
KILL_INFO1 = %s megolt teged egy %sel^n%.2f meterrol.^n
|
KILL_INFO1 = %s megölt téged egy %sel^n%.2f méterről.^n
|
||||||
KILL_INFO2 = O %d -et sebzett rajtad, %d talalattal^nNeki maradt %dhpja.^n
|
KILL_INFO2 = Ő %d sebzett rajtad, %d találattal^nNeki maradt %dhpja.^n
|
||||||
KILL_INFO3 = Te %d -et sebeztel rajta %d talalattal.^n
|
KILL_INFO3 = Te %d sebeztél rajta %d találattal.^n
|
||||||
KILL_INFO4 = O eltalalt teged itt:^n%s^n
|
KILL_INFO4 = Ő eltalált téged itt:^n%s^n
|
||||||
STILL_HAS = %s-nek meg van %dhpja
|
STILL_HAS = %s maradt még %dhpja
|
||||||
NO_KILLER = Nincs gyilkosod...
|
NO_KILLER = Nincs gyilkosod...
|
||||||
TOPX = Legjobb %d
|
TOPX = Legjobb %d
|
||||||
FFIRE_IS = Csapattars sebzes:
|
FFIRE_IS = Csapattárs sebzés:
|
||||||
ATTACKERS = Tamadok:
|
ATTACKERS = Támadók:
|
||||||
VICTIMS = Aldozatok:
|
VICTIMS = Áldozatok:
|
||||||
DMG = sebzes
|
DMG = sebzés
|
||||||
HIT_S = talalat
|
HIT_S = találat
|
||||||
YOU_HIT = Te eltalaltad %st itt:
|
YOU_HIT = Te eltaláltad %st itt:
|
||||||
SERVER_STATS = Szerver Sztatusz
|
SERVER_STATS = Szerver Állapot
|
||||||
SHOW_STATS = Allas mutatasa
|
SHOW_STATS = Állás mutatása
|
||||||
SHOW_RANK = Helyezes mutatasa
|
SHOW_RANK = Helyezés mutatása
|
||||||
TA_MSG = %s megtamadta a csapattarsat
|
TA_MSG = %s megtámadta a csapattársát
|
||||||
TK_MSG = %s megolte a csapattarsat!
|
TK_MSG = %s megölte a csapattársát!
|
||||||
NADE_CAUGHT = Wow! %s elkapott egy ellenseges granatot!
|
NADE_CAUGHT = Wow! %s elkapott egy ellenséges gránátot!
|
||||||
NADE_FAILEDTK = Oops.. %s megolt teged, visszaprobalta dobni az ellenseges granatot..
|
NADE_FAILEDTK = Hopsz.. %s megölt téged miközben próbálta visszadobni az ellenség gránátját..
|
||||||
NADE_FAILED = %s -nek nem sikerult visszadobni az ellenseges granatot..
|
NADE_FAILED = %s nem tudta visszadobni az ellenséges gránátot..
|
||||||
NADE_MASTER = OMG! %s egy granatmester!!!
|
NADE_MASTER = OMG! %s egy gránátmester!!!
|
||||||
DISABLED_MSG = A szerver letiltotta ezt az opciot
|
DISABLED_MSG = A szerver letiltotta ezt az opciót
|
||||||
MOST_KILLS = Legtobb gyilok
|
MOST_KILLS = Legtöbb ölés
|
||||||
KILL = oles
|
KILL = ölés
|
||||||
KILLS = oles
|
KILLS = ölés
|
||||||
HEADSHOT = fejloves
|
HEADSHOT = fejlövés
|
||||||
HEADSHOTS = vejloves
|
HEADSHOTS = fejlövések
|
||||||
BEST_SCORE = Legjobb pont
|
BEST_SCORE = Legjobb pont
|
||||||
POINTS = pont
|
POINTS = pont
|
||||||
MOST_DAMAGE = Legtobb sebzes
|
MOST_DAMAGE = Legtöbb sebzés
|
||||||
DAMAGE = sebzes
|
DAMAGE = sebzés
|
||||||
HIT = talalat
|
HIT = találat
|
||||||
HITS = talalat
|
HITS = találat
|
||||||
M_KILLS = Oles:
|
M_KILLS = Ölés:
|
||||||
M_DEATHS = Halal:
|
M_DEATHS = Halál:
|
||||||
M_SCORE = Eredmeny:
|
M_SCORE = Eredmény:
|
||||||
M_TKS = TK:
|
M_TKS = TK:
|
||||||
M_HITS = Talalat:
|
M_HITS = Találat:
|
||||||
M_SHOTS = Loves:
|
M_SHOTS = Lövés:
|
||||||
M_HS = Fejloves:
|
M_HS = Fejlövés:
|
||||||
M_WEAPON = Fegyver:
|
M_WEAPON = Fegyver:
|
||||||
M_DAMAGE = Sebzes:
|
M_DAMAGE = Sebzés:
|
||||||
M_NICK = Nick:
|
M_NICK = Becenév:
|
||||||
M_YOUR_RANK_IS = A te helyezesed
|
M_YOUR_RANK_IS = A te helyezésed
|
||||||
M_THEIR_RANK_IS = Az o helyezese
|
M_THEIR_RANK_IS = Az ő helyezése
|
||||||
M_OF = a
|
M_OF = a
|
||||||
|
|
||||||
[lt]
|
[lt]
|
||||||
|
@ -89,7 +89,7 @@ STATS_CONF_LOADED = Statistik-Konfiguration erfolgreich geladen
|
|||||||
STATS_CONF_FAIL_LOAD = Fehler beim Laden der Statistik-Konfiguration!!!
|
STATS_CONF_FAIL_LOAD = Fehler beim Laden der Statistik-Konfiguration!!!
|
||||||
STATS_CONF = Statistik-Konfiguration
|
STATS_CONF = Statistik-Konfiguration
|
||||||
STATS_ENTRIES_OF = Einträge %i - %i von %i
|
STATS_ENTRIES_OF = Einträge %i - %i von %i
|
||||||
STATS_USE_MORE = Benutze 'amx_statscfg list %i' für mehr Infos
|
STATS_USE_MORE = Benutze 'amx_statscfg list %i' für mehr Info´s
|
||||||
STATS_USE_BEGIN = Benutze 'amx_statscfg list 1' um zum Anfang zu gelangen
|
STATS_USE_BEGIN = Benutze 'amx_statscfg list 1' um zum Anfang zu gelangen
|
||||||
CANT_ADD_STATS = Kann keine Statistik mehr hinzufügen, das Limit ist erreicht!
|
CANT_ADD_STATS = Kann keine Statistik mehr hinzufügen, das Limit ist erreicht!
|
||||||
COM_STATS_USAGE = Benutze: amx_statscfg <Befehl> [Parameter] ...
|
COM_STATS_USAGE = Benutze: amx_statscfg <Befehl> [Parameter] ...
|
||||||
@ -121,7 +121,7 @@ ST_LAST_MAN = Letzter Mann
|
|||||||
ST_KNIFE_KILL = Messerkill
|
ST_KNIFE_KILL = Messerkill
|
||||||
ST_KNIFE_KILL_SOUND = Messerkill Sound
|
ST_KNIFE_KILL_SOUND = Messerkill Sound
|
||||||
ST_HE_KILL = Granatenkill
|
ST_HE_KILL = Granatenkill
|
||||||
ST_HE_SUICIDE = Granatenselbstmord
|
ST_HE_SUICIDE = Granaten Selbstmord
|
||||||
ST_HS_KILL = Headshotkill
|
ST_HS_KILL = Headshotkill
|
||||||
ST_HS_KILL_SOUND = Headshotkill Sound
|
ST_HS_KILL_SOUND = Headshotkill Sound
|
||||||
ST_ROUND_CNT = Rundenzähler
|
ST_ROUND_CNT = Rundenzähler
|
||||||
@ -144,7 +144,7 @@ ST_SHOW_MOST_DISRUPTIVE = Zeige meisten Durchschläge
|
|||||||
ST_SHOW_HUD_STATS_DEF = Standard HUD-Stats
|
ST_SHOW_HUD_STATS_DEF = Standard HUD-Stats
|
||||||
ST_SHOW_DIST_HS_HUD = Distanz&HS in HUD Liste
|
ST_SHOW_DIST_HS_HUD = Distanz&HS in HUD Liste
|
||||||
ST_STATS_PLAYER_MAP_END = Stats am Ende der Map
|
ST_STATS_PLAYER_MAP_END = Stats am Ende der Map
|
||||||
ST_STATS_TOP15_MAP_END = Top15 am Ende der Map
|
ST_STATS_TOP15_MAP_END = Top15 am ende der Map
|
||||||
ST_SAY_HP = Say /hp
|
ST_SAY_HP = Say /hp
|
||||||
ST_SAY_STATSME = Say /statsme
|
ST_SAY_STATSME = Say /statsme
|
||||||
ST_SAY_RANKSTATS = Say /rankstats
|
ST_SAY_RANKSTATS = Say /rankstats
|
||||||
@ -162,7 +162,7 @@ ST_BOMB_CD_HUD = Bomben Countdown HUD
|
|||||||
ST_LAST_MAN_SOUND = Letzter Mann Sound
|
ST_LAST_MAN_SOUND = Letzter Mann Sound
|
||||||
ST_LAST_MAN_HEALTH = Letzter Mann HP
|
ST_LAST_MAN_HEALTH = Letzter Mann HP
|
||||||
ST_HE_KILL_SOUND = Granatenkill Sound
|
ST_HE_KILL_SOUND = Granatenkill Sound
|
||||||
ST_HE_SUICIDE_SOUND = Granatenselbstmord Sound
|
ST_HE_SUICIDE_SOUND = Granaten Selbstmord Sound
|
||||||
|
|
||||||
[sr]
|
[sr]
|
||||||
NO_OPTION = Nepostoji optcija(e) sa tom promenljivom (ime "%s")
|
NO_OPTION = Nepostoji optcija(e) sa tom promenljivom (ime "%s")
|
||||||
@ -1250,8 +1250,8 @@ STATS_CONF_FAILED = Nem sikerült a mentés!!!
|
|||||||
STATS_CONF_LOADED = Beállítások sikeresen betöltve
|
STATS_CONF_LOADED = Beállítások sikeresen betöltve
|
||||||
STATS_CONF_FAIL_LOAD = Nem sikerült betölteni a beállításokat!!!
|
STATS_CONF_FAIL_LOAD = Nem sikerült betölteni a beállításokat!!!
|
||||||
STATS_CONF = Statisztika beállítások
|
STATS_CONF = Statisztika beállítások
|
||||||
STATS_ENTRIES_OF = Bejegyzések %i - %i a %i -ból/-ből
|
STATS_ENTRIES_OF = %i - %i bejegyzés az összesből (%i db)
|
||||||
STATS_USE_MORE = Írj 'amx_statscfg list %i' a többihez
|
STATS_USE_MORE = Írj 'amx_statscfg list %i' többhöz
|
||||||
STATS_USE_BEGIN = Írj 'amx_statscfg list 1' az elsőhoz
|
STATS_USE_BEGIN = Írj 'amx_statscfg list 1' az elsőhoz
|
||||||
STATS_ENABLED = Statisztika engedélyezve
|
STATS_ENABLED = Statisztika engedélyezve
|
||||||
STATS_DISABLED = Statisztika letiltva
|
STATS_DISABLED = Statisztika letiltva
|
||||||
@ -1295,28 +1295,28 @@ ST_DOUBLE_KILL = Double Kill
|
|||||||
ST_DOUBLE_KILL_SOUND = Double Kill Sound
|
ST_DOUBLE_KILL_SOUND = Double Kill Sound
|
||||||
ST_PLAYER_NAME = Player Name
|
ST_PLAYER_NAME = Player Name
|
||||||
ST_FIRST_BLOOD_SOUND = First Blood Sound
|
ST_FIRST_BLOOD_SOUND = First Blood Sound
|
||||||
ST_SHOW_KILLER_CHAT = Show Killer HP&AP
|
ST_SHOW_KILLER_CHAT = Gyilkos HP&AP mutatása
|
||||||
ST_SHOW_ATTACKERS = Show Attackers
|
ST_SHOW_ATTACKERS = Támadók mutatása
|
||||||
ST_SHOW_VICTIMS = Show Victims
|
ST_SHOW_VICTIMS = Áldozatok mutatása
|
||||||
ST_SHOW_KILLER = Show Killer
|
ST_SHOW_KILLER = Gyilkos mutatása
|
||||||
ST_SHOW_TEAM_SCORE = Show Team Score
|
ST_SHOW_TEAM_SCORE = Csapat eredmények mutatása
|
||||||
ST_SHOW_TOTAL_STATS = Show Total Stats
|
ST_SHOW_TOTAL_STATS = Összes eredmény mutatása
|
||||||
ST_SHOW_BEST_SCORE = Show Best Score
|
ST_SHOW_BEST_SCORE = Legjobb eredmény mutatása
|
||||||
ST_SHOW_MOST_DISRUPTIVE = Show Most Disruptive
|
ST_SHOW_MOST_DISRUPTIVE = Show Most Disruptive
|
||||||
ST_SHOW_HUD_STATS_DEF = Show HUD-stats default
|
ST_SHOW_HUD_STATS_DEF = Show HUD-stats default
|
||||||
ST_SHOW_DIST_HS_HUD = Dist&HS in HUD lists
|
ST_SHOW_DIST_HS_HUD = Táv & HS a HUD listában
|
||||||
ST_STATS_PLAYER_MAP_END = Stats at the end of map
|
ST_STATS_PLAYER_MAP_END = Statisztika a pálya végén
|
||||||
ST_STATS_TOP15_MAP_END = Top15 at the end of map
|
ST_STATS_TOP15_MAP_END = Top15 a pálya végén
|
||||||
ST_SAY_HP = Say /hp
|
ST_SAY_HP = Írd /hp
|
||||||
ST_SAY_STATSME = Say /statsme
|
ST_SAY_STATSME = Írd /statsme
|
||||||
ST_SAY_RANKSTATS = Say /rankstats
|
ST_SAY_RANKSTATS = Írd /rankstats
|
||||||
ST_SAY_ME = Say /me
|
ST_SAY_ME = Írd /me
|
||||||
ST_SAY_RANK = Say /rank
|
ST_SAY_RANK = Írd /rank
|
||||||
ST_SAY_REPORT = Say /report
|
ST_SAY_REPORT = Írd /report
|
||||||
ST_SAY_SCORE = Say /score
|
ST_SAY_SCORE = Írd /score
|
||||||
ST_SAY_TOP15 = Say /top15
|
ST_SAY_TOP15 = Írd /top15
|
||||||
ST_SAY_STATS = Say /stats
|
ST_SAY_STATS = Írd /stats
|
||||||
ST_SPEC_RANK = Spec. Rank Info
|
ST_SPEC_RANK = Nézelődő Rank információ
|
||||||
ST_BOMB_PLANTED_SOUND = Bomb Planted Sound
|
ST_BOMB_PLANTED_SOUND = Bomb Planted Sound
|
||||||
ST_BOMB_DEF_SUCC_SOUND = Bomb Defuse Succ. Sound
|
ST_BOMB_DEF_SUCC_SOUND = Bomb Defuse Succ. Sound
|
||||||
ST_BOMB_DEF_FAIL_SOUND = Bomb Def. Failure Sound
|
ST_BOMB_DEF_FAIL_SOUND = Bomb Def. Failure Sound
|
||||||
@ -1991,10 +1991,10 @@ ST_HE_SUICIDE_SOUND = Zëri Vetëvrasjes Granatë
|
|||||||
|
|
||||||
[pt]
|
[pt]
|
||||||
NO_OPTION = Não foi possível encontrar a(s) opção(ões) com essa variável (nome "%s")
|
NO_OPTION = Não foi possível encontrar a(s) opção(ões) com essa variável (nome "%s")
|
||||||
STATS_CONF_SAVED = A configuração das estatísticas foi guardada com sucesso
|
STATS_CONF_SAVED = A configuração das Estatísticas foi guardada com sucesso
|
||||||
STATS_CONF_FAILED = Falha ao guardar a configuração das estatísticas!!!
|
STATS_CONF_FAILED = Falha ao guardar a configuração das Estatísticas!!!
|
||||||
STATS_CONF_LOADED = A configuração das estatísticas foi carregada com sucesso
|
STATS_CONF_LOADED = A configuração das Estatísticas foi carregada com sucesso
|
||||||
STATS_CONF_FAIL_LOAD = Falha ao carregar a configuração das estatísticas!!!
|
STATS_CONF_FAIL_LOAD = Falha ao carregar a configuração das Estatísticas!!!
|
||||||
STATS_CONF = Configuração das Estatísticas
|
STATS_CONF = Configuração das Estatísticas
|
||||||
STATS_ENTRIES_OF = Entradas %i - %i de %i
|
STATS_ENTRIES_OF = Entradas %i - %i de %i
|
||||||
STATS_USE_MORE = Usa 'amx_statscfg list %i' para mostrar mais
|
STATS_USE_MORE = Usa 'amx_statscfg list %i' para mostrar mais
|
||||||
@ -2010,7 +2010,7 @@ COM_STATS_SAVE = ^tsave - guardar configuração das estatísticas
|
|||||||
COM_STATS_LOAD = ^tload - carregar configuração das estatísticas
|
COM_STATS_LOAD = ^tload - carregar configuração das estatísticas
|
||||||
COM_STATS_LIST = ^tlist [id] - listar status das estatísticas
|
COM_STATS_LIST = ^tlist [id] - listar status das estatísticas
|
||||||
COM_STATS_ADD = ^tadd <nome> <variável> - adicionar uma estatística á lista
|
COM_STATS_ADD = ^tadd <nome> <variável> - adicionar uma estatística á lista
|
||||||
NO_STATS = Os plugins de estatísticas não estão^ninstalados neste servidor^n
|
NO_STATS = Os plugins de Estatísticas não estão^ninstalados neste servidor^n
|
||||||
SAVE_CONF = Guardar configuração
|
SAVE_CONF = Guardar configuração
|
||||||
ST_MULTI_KILL = MultiKill
|
ST_MULTI_KILL = MultiKill
|
||||||
ST_MULTI_KILL_SOUND = Som do MultiKill
|
ST_MULTI_KILL_SOUND = Som do MultiKill
|
||||||
|
@ -66,8 +66,8 @@ DMG = Schaden
|
|||||||
VICTIMS = Opfer
|
VICTIMS = Opfer
|
||||||
MOST_DMG = Am meisten verursachter Schaden durch
|
MOST_DMG = Am meisten verursachter Schaden durch
|
||||||
KILLED_YOU_DIST = %s hat dich mit einer %s ^naus %0.2f Metern Entfernung gekillt.
|
KILLED_YOU_DIST = %s hat dich mit einer %s ^naus %0.2f Metern Entfernung gekillt.
|
||||||
DID_DMG_HITS = Er verursachte %d Schaden bei dir mit %d Treffer(n)^nund hat noch %dhp und %dap.
|
DID_DMG_HITS = Er verursachte %d Schaden bei dir mit %d Treffern^nund hat noch %dhp und %dap.
|
||||||
YOU_DID_DMG = Du hast bei ihm %d Schaden mit %d Treffer(n) angerichtet.
|
YOU_DID_DMG = Du hast bei ihm %d Schaden mit %d Treffern angerichtet.
|
||||||
EFF = Effizienz
|
EFF = Effizienz
|
||||||
BEST_SCORE = Die meisten Punkte
|
BEST_SCORE = Die meisten Punkte
|
||||||
KILL_S = Kill(s)
|
KILL_S = Kill(s)
|
||||||
@ -772,7 +772,7 @@ LEFTARM = balkar
|
|||||||
RIGHTARM = jobbkar
|
RIGHTARM = jobbkar
|
||||||
LEFTLEG = balláb
|
LEFTLEG = balláb
|
||||||
RIGHTLEG = jobbláb
|
RIGHTLEG = jobbláb
|
||||||
MODE_SET_TO = "amx_statsx_mode" set to "%s"
|
MODE_SET_TO = "amx_statsx_mode" átállítva "%s" értékre
|
||||||
ATTACKERS = Támadók
|
ATTACKERS = Támadók
|
||||||
ACC = Pontosság
|
ACC = Pontosság
|
||||||
HIT_S = Találat
|
HIT_S = Találat
|
||||||
@ -780,15 +780,15 @@ DMG = sebzés
|
|||||||
VICTIMS = Áldozatok
|
VICTIMS = Áldozatok
|
||||||
MOST_DMG = Legtöbb sebzés:
|
MOST_DMG = Legtöbb sebzés:
|
||||||
KILLED_YOU_DIST = %s megölt téged %s^n %0.2f méterről.
|
KILLED_YOU_DIST = %s megölt téged %s^n %0.2f méterről.
|
||||||
DID_DMG_HITS = Ő %d -t sebzett rajtad ^n találattal és maradt neki %d hp és %d ap.
|
DID_DMG_HITS = Ő %d sebzést okozott neked %d találattal ^nés maradt neki %d hp és %d ap.
|
||||||
YOU_DID_DMG = Te %d sebeztél rajta %d találattal.
|
YOU_DID_DMG = Te %d sebzést okoztál neki %d találattal.
|
||||||
EFF = Hatékonyság
|
EFF = Hatékonyság
|
||||||
BEST_SCORE = Legjobb pont
|
BEST_SCORE = Legjobb pont
|
||||||
KILL_S = Ölés
|
KILL_S = Ölés
|
||||||
TOTAL = Teljes
|
TOTAL = Teljes
|
||||||
SHOT_S = Lövések
|
SHOT_S = Lövések
|
||||||
HITS_YOU_IN = %s eltalált téged
|
HITS_YOU_IN = %s eltalált téged
|
||||||
KILLED_BY_WITH = Megölt %s, %s-el %0.0fméterről
|
KILLED_BY_WITH = Megölt %s, %s fegyverrel %0.0f méterről
|
||||||
NO_HITS = nincs találat
|
NO_HITS = nincs találat
|
||||||
YOU_NO_KILLER = Nincs gyilkosod...
|
YOU_NO_KILLER = Nincs gyilkosod...
|
||||||
YOU_HIT = Eltaláltad %s %d alkalommal, %d összes sebzés rajta
|
YOU_HIT = Eltaláltad %s %d alkalommal, %d összes sebzés rajta
|
||||||
@ -799,10 +799,10 @@ HITS = Találat
|
|||||||
SHOTS = Lövés
|
SHOTS = Lövés
|
||||||
YOUR = Te
|
YOUR = Te
|
||||||
PLAYERS = Játékosok
|
PLAYERS = Játékosok
|
||||||
RANK_IS = helyezése %d a %d -ból/ből
|
RANK_IS = helyezése %d a %d helyből
|
||||||
DAMAGE = Sebzés
|
DAMAGE = Sebzés
|
||||||
WEAPON = Fegyver
|
WEAPON = Fegyver
|
||||||
YOUR_RANK_IS = A te helyezésed %d a %d -ból %d ölessel, %d találattal, %0.2f% effel és %0.2f% accal.
|
YOUR_RANK_IS = A te helyezésed %d a %d helyből %d öléssel, %d találattal, %0.2f%% hatékonysággal és %0.2f%% pontossággal.
|
||||||
AMMO = töltény
|
AMMO = töltény
|
||||||
HEALTH = élet
|
HEALTH = élet
|
||||||
ARMOR = páncél
|
ARMOR = páncél
|
||||||
|
@ -104,10 +104,10 @@ CUR_LOC = Locatia Actuala
|
|||||||
SAVE_LOC = Salveaza Locatie
|
SAVE_LOC = Salveaza Locatie
|
||||||
|
|
||||||
[hu]
|
[hu]
|
||||||
ADMIN_TELEPORT_1 = ADMIN: %s teleport
|
ADMIN_TELEPORT_1 = ADMIN: %s teleportálva
|
||||||
ADMIN_TELEPORT_2 = ADMIN %s: %s teleport
|
ADMIN_TELEPORT_2 = ADMIN %s: %s teleportálva
|
||||||
TELE_MENU = Teleport Menu
|
TELE_MENU = Teleport Menü
|
||||||
CUR_LOC = Mostani hely
|
CUR_LOC = Jelenlegi hely
|
||||||
SAVE_LOC = Hely mentése
|
SAVE_LOC = Hely mentése
|
||||||
|
|
||||||
[lt]
|
[lt]
|
||||||
|
@ -469,7 +469,7 @@ public client_putinserver(id)
|
|||||||
|
|
||||||
public client_damage(attacker,victim,damage,wpnindex,hitplace,TA){
|
public client_damage(attacker,victim,damage,wpnindex,hitplace,TA){
|
||||||
if ( BulletDamage ) {
|
if ( BulletDamage ) {
|
||||||
if ( attacker==victim || !wpnindex || xmod_is_melee_wpn(wpnindex) ) return PLUGIN_CONTINUE
|
if ( attacker==victim || xmod_is_melee_wpn(wpnindex) ) return PLUGIN_CONTINUE
|
||||||
set_hudmessage(0, 100, 200, 0.45, 0.85, 2, 0.1, 4.0, 0.02, 0.02, -1)
|
set_hudmessage(0, 100, 200, 0.45, 0.85, 2, 0.1, 4.0, 0.02, 0.02, -1)
|
||||||
ShowSyncHudMsg(attacker,g_damage_sync,"%i",damage)
|
ShowSyncHudMsg(attacker,g_damage_sync,"%i",damage)
|
||||||
set_hudmessage(200, 0, 0, 0.55, 0.85, 2, 0.1, 4.0, 0.02, 0.02, -1)
|
set_hudmessage(200, 0, 0, 0.55, 0.85, 2, 0.1, 4.0, 0.02, 0.02, -1)
|
||||||
@ -575,7 +575,7 @@ public client_death(killer,victim,wpnindex,hitplace,TK){
|
|||||||
set_task( 4.0 + float( param[1] ) ,"checkKills",0,param,sizeof(param))
|
set_task( 4.0 + float( param[1] ) ,"checkKills",0,param,sizeof(param))
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ( KnifeKill || KnifeKillSound ) && wpnindex && xmod_is_melee_wpn(wpnindex) ){
|
if ( xmod_is_melee_wpn(wpnindex) && ( KnifeKill || KnifeKillSound ) ){
|
||||||
if ( KnifeKill ){
|
if ( KnifeKill ){
|
||||||
set_hudmessage(255, 100, 100, -1.0, 0.15, 1, 6.0, 6.0, 0.5, 0.15, -1)
|
set_hudmessage(255, 100, 100, -1.0, 0.15, 1, 6.0, 6.0, 0.5, 0.15, -1)
|
||||||
for (new i=1;i<=MaxClients;i++){
|
for (new i=1;i<=MaxClients;i++){
|
||||||
@ -598,7 +598,7 @@ public client_death(killer,victim,wpnindex,hitplace,TK){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( headshot && (HeadShotKill || HeadShotKillSound) && wpnindex && !xmod_is_melee_wpn(wpnindex) ){
|
if ( headshot && (HeadShotKill || HeadShotKillSound) && !xmod_is_melee_wpn(wpnindex) ){
|
||||||
if ( HeadShotKill ){
|
if ( HeadShotKill ){
|
||||||
new weapon[32], message[256]
|
new weapon[32], message[256]
|
||||||
xmod_get_wpnname(wpnindex,weapon,charsmax(weapon))
|
xmod_get_wpnname(wpnindex,weapon,charsmax(weapon))
|
||||||
|
@ -1 +1 @@
|
|||||||
1.9.0
|
1.10.0
|
||||||
|
@ -21,13 +21,13 @@
|
|||||||
#define AMXX_BUILD_LOCAL_REV "0"
|
#define AMXX_BUILD_LOCAL_REV "0"
|
||||||
#define AMXX_BUILD_CSET "0"
|
#define AMXX_BUILD_CSET "0"
|
||||||
#define AMXX_BUILD_MAJOR "1"
|
#define AMXX_BUILD_MAJOR "1"
|
||||||
#define AMXX_BUILD_MINOR "9"
|
#define AMXX_BUILD_MINOR "10"
|
||||||
#define AMXX_BUILD_RELEASE "0"
|
#define AMXX_BUILD_RELEASE "0"
|
||||||
|
|
||||||
#define AMXX_BUILD_UNIQUEID AMXX_BUILD_LOCAL_REV ":" AMXX_BUILD_CSET
|
#define AMXX_BUILD_UNIQUEID AMXX_BUILD_LOCAL_REV ":" AMXX_BUILD_CSET
|
||||||
|
|
||||||
#define AMXX_VERSION_STRING AMXX_BUILD_MAJOR "." AMXX_BUILD_MINOR "." AMXX_BUILD_RELEASE "-" AMXX_BUILD_TAG
|
#define AMXX_VERSION_STRING AMXX_BUILD_MAJOR "." AMXX_BUILD_MINOR "." AMXX_BUILD_RELEASE "-" AMXX_BUILD_TAG
|
||||||
#define AMXX_VERSION_FILE 1,9,0,0
|
#define AMXX_VERSION_FILE 1,10,0,0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define AMXX_BUILD_TIMESTAMP __DATE__ " " __TIME__
|
#define AMXX_BUILD_TIMESTAMP __DATE__ " " __TIME__
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#define MAX_LIGHTSTYLES 64
|
#define MAX_LIGHTSTYLES 64
|
||||||
#define MAX_PACKET_ENTITIES 256
|
#define MAX_PACKET_ENTITIES 256
|
||||||
#define MAX_PATH_LENGTH 260
|
#define MAX_PATH_LENGTH 260
|
||||||
|
#define MAX_MAPNAME_LENGTH 64
|
||||||
|
|
||||||
#define MAX_LATENT 32
|
#define MAX_LATENT 32
|
||||||
#define FRAGMENT_SIZE 1400
|
#define FRAGMENT_SIZE 1400
|
||||||
|
@ -35,6 +35,18 @@ folder_list = [
|
|||||||
'base/addons/amxmodx/data/gamedata/common.games/gamerules.games/tfc',
|
'base/addons/amxmodx/data/gamedata/common.games/gamerules.games/tfc',
|
||||||
'base/addons/amxmodx/data/gamedata/common.games/gamerules.games/gearbox',
|
'base/addons/amxmodx/data/gamedata/common.games/gamerules.games/gearbox',
|
||||||
'base/addons/amxmodx/data/gamedata/common.games/gamerules.games/valve',
|
'base/addons/amxmodx/data/gamedata/common.games/gamerules.games/valve',
|
||||||
|
'base/addons/amxmodx/data/gamedata/common.games/virtual.games',
|
||||||
|
'base/addons/amxmodx/data/gamedata/common.games/virtual.games/ag',
|
||||||
|
'base/addons/amxmodx/data/gamedata/common.games/virtual.games/cstrike',
|
||||||
|
'base/addons/amxmodx/data/gamedata/common.games/virtual.games/dod',
|
||||||
|
'base/addons/amxmodx/data/gamedata/common.games/virtual.games/esf',
|
||||||
|
'base/addons/amxmodx/data/gamedata/common.games/virtual.games/esf_openbeta',
|
||||||
|
'base/addons/amxmodx/data/gamedata/common.games/virtual.games/gearbox',
|
||||||
|
'base/addons/amxmodx/data/gamedata/common.games/virtual.games/ns',
|
||||||
|
'base/addons/amxmodx/data/gamedata/common.games/virtual.games/svencoop',
|
||||||
|
'base/addons/amxmodx/data/gamedata/common.games/virtual.games/tfc',
|
||||||
|
'base/addons/amxmodx/data/gamedata/common.games/virtual.games/ts',
|
||||||
|
'base/addons/amxmodx/data/gamedata/common.games/virtual.games/valve',
|
||||||
'base/addons/amxmodx/data/gamedata/modules.games',
|
'base/addons/amxmodx/data/gamedata/modules.games',
|
||||||
'base/addons/amxmodx/data/lang',
|
'base/addons/amxmodx/data/lang',
|
||||||
'base/addons/amxmodx/dlls',
|
'base/addons/amxmodx/dlls',
|
||||||
@ -166,7 +178,6 @@ configs = [
|
|||||||
'core.ini',
|
'core.ini',
|
||||||
'custommenuitems.cfg',
|
'custommenuitems.cfg',
|
||||||
'cvars.ini',
|
'cvars.ini',
|
||||||
'hamdata.ini',
|
|
||||||
'maps.ini',
|
'maps.ini',
|
||||||
'miscstats.ini',
|
'miscstats.ini',
|
||||||
'modules.ini',
|
'modules.ini',
|
||||||
@ -419,6 +430,72 @@ CopyFiles('gamedata/common.games', 'base/addons/amxmodx/data/gamedata/common.gam
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
CopyFiles('gamedata/common.games/virtual.games/ag', 'base/addons/amxmodx/data/gamedata/common.games/virtual.games/ag',
|
||||||
|
[
|
||||||
|
'offsets-common.txt',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
CopyFiles('gamedata/common.games/virtual.games/cstrike', 'base/addons/amxmodx/data/gamedata/common.games/virtual.games/cstrike',
|
||||||
|
[
|
||||||
|
'offsets-common.txt',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
CopyFiles('gamedata/common.games/virtual.games/dod', 'base/addons/amxmodx/data/gamedata/common.games/virtual.games/dod',
|
||||||
|
[
|
||||||
|
'offsets-common.txt',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
CopyFiles('gamedata/common.games/virtual.games/esf', 'base/addons/amxmodx/data/gamedata/common.games/virtual.games/esf',
|
||||||
|
[
|
||||||
|
'offsets-common.txt',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
CopyFiles('gamedata/common.games/virtual.games/esf_openbeta', 'base/addons/amxmodx/data/gamedata/common.games/virtual.games/esf_openbeta',
|
||||||
|
[
|
||||||
|
'offsets-common.txt',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
CopyFiles('gamedata/common.games/virtual.games/gearbox', 'base/addons/amxmodx/data/gamedata/common.games/virtual.games/gearbox',
|
||||||
|
[
|
||||||
|
'offsets-common.txt',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
CopyFiles('gamedata/common.games/virtual.games/ns', 'base/addons/amxmodx/data/gamedata/common.games/virtual.games/ns',
|
||||||
|
[
|
||||||
|
'offsets-common.txt',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
CopyFiles('gamedata/common.games/virtual.games/svencoop', 'base/addons/amxmodx/data/gamedata/common.games/virtual.games/svencoop',
|
||||||
|
[
|
||||||
|
'offsets-common.txt',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
CopyFiles('gamedata/common.games/virtual.games/tfc', 'base/addons/amxmodx/data/gamedata/common.games/virtual.games/tfc',
|
||||||
|
[
|
||||||
|
'offsets-common.txt',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
CopyFiles('gamedata/common.games/virtual.games/ts', 'base/addons/amxmodx/data/gamedata/common.games/virtual.games/ts',
|
||||||
|
[
|
||||||
|
'offsets-common.txt',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
CopyFiles('gamedata/common.games/virtual.games/valve', 'base/addons/amxmodx/data/gamedata/common.games/virtual.games/valve',
|
||||||
|
[
|
||||||
|
'offsets-common.txt',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
CopyFiles('gamedata/common.games/hostages.games/cstrike', 'base/addons/amxmodx/data/gamedata/common.games/hostages.games/cstrike',
|
CopyFiles('gamedata/common.games/hostages.games/cstrike', 'base/addons/amxmodx/data/gamedata/common.games/hostages.games/cstrike',
|
||||||
[
|
[
|
||||||
'offsets-chostageimprov.txt',
|
'offsets-chostageimprov.txt',
|
||||||
|
@ -29,12 +29,12 @@ $argn = $#ARGV + 1;
|
|||||||
print "Attempting to reconfigure...\n";
|
print "Attempting to reconfigure...\n";
|
||||||
my $conf_args = '--enable-optimize --no-color --symbol-files';
|
my $conf_args = '--enable-optimize --no-color --symbol-files';
|
||||||
if ($argn > 0 && $^O !~ /MSWin/) {
|
if ($argn > 0 && $^O !~ /MSWin/) {
|
||||||
$result = `CC=$ARGV[0] CXX=$ARGV[0] python3 ../build/configure.py $conf_args`;
|
$result = `CC=$ARGV[0] CXX=$ARGV[0] python ../build/configure.py $conf_args`;
|
||||||
} else {
|
} else {
|
||||||
if ($^O =~ /MSWin/) {
|
if ($^O =~ /MSWin/) {
|
||||||
$result = `C:\\Python38\\Python.exe ..\\build\\configure.py $conf_args`;
|
$result = `C:\\Python38\\Python.exe ..\\build\\configure.py $conf_args`;
|
||||||
} else {
|
} else {
|
||||||
$result = `CC=clang CXX=clang python3 ../build/configure.py $conf_args`;
|
$result = `CC=clang CXX=clang python ../build/configure.py $conf_args`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
print "$result\n";
|
print "$result\n";
|
||||||
|
@ -21,6 +21,9 @@ download_archive ()
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ismac=0
|
||||||
|
iswin=0
|
||||||
|
|
||||||
if [ "$1" != "--no-mysql" ]; then
|
if [ "$1" != "--no-mysql" ]; then
|
||||||
ismac=0
|
ismac=0
|
||||||
iswin=0
|
iswin=0
|
||||||
@ -89,21 +92,55 @@ repo="https://github.com/alliedmodders/hlsdk"
|
|||||||
origin=
|
origin=
|
||||||
checkout
|
checkout
|
||||||
|
|
||||||
`python -c "import ambuild2"`
|
python_cmd=`command -v python`
|
||||||
|
if [ -z "$python_cmd" ]; then
|
||||||
|
python_cmd=`command -v python3`
|
||||||
|
|
||||||
|
if [ -z "$python_cmd" ]; then
|
||||||
|
echo "No suitable installation of Python detected"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
`$python_cmd -c "import ambuild2"` 2>&1 1>/dev/null
|
||||||
if [ $? -eq 1 ]; then
|
if [ $? -eq 1 ]; then
|
||||||
|
echo "AMBuild is required to build SourceMod"
|
||||||
|
|
||||||
|
`$python_cmd -m pip --version` 2>&1 1>/dev/null
|
||||||
|
if [ $? -eq 1 ]; then
|
||||||
|
echo "The detected Python installation does not have PIP"
|
||||||
|
echo "Installing the latest version of PIP available (VIA \"get-pip.py\")"
|
||||||
|
|
||||||
|
get_pip="./get-pip.py"
|
||||||
|
get_pip_url="https://bootstrap.pypa.io/get-pip.py"
|
||||||
|
|
||||||
|
if [ `command -v wget` ]; then
|
||||||
|
wget $get_pip_url -O $get_pip
|
||||||
|
elif [ `command -v curl` ]; then
|
||||||
|
curl -o $get_pip $get_pip_url
|
||||||
|
else
|
||||||
|
echo "Failed to locate wget or curl. Install one of these programs to download 'get-pip.py'."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
$python_cmd $get_pip
|
||||||
|
if [ $? -eq 1 ]; then
|
||||||
|
echo "Installation of PIP has failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
repo="https://github.com/alliedmodders/ambuild"
|
repo="https://github.com/alliedmodders/ambuild"
|
||||||
origin=
|
origin=
|
||||||
branch=master
|
branch=master
|
||||||
name=ambuild
|
name=ambuild
|
||||||
checkout
|
checkout
|
||||||
|
|
||||||
cd ambuild
|
if [ $iswin -eq 1 ] || [ $ismac -eq 1 ]; then
|
||||||
if [ $iswin -eq 1 ]; then
|
$python_cmd -m pip install ./ambuild
|
||||||
python setup.py install
|
|
||||||
else
|
else
|
||||||
python setup.py build
|
|
||||||
echo "Installing AMBuild at the user level. Location can be: ~/.local/bin"
|
echo "Installing AMBuild at the user level. Location can be: ~/.local/bin"
|
||||||
python setup.py install --user
|
$python_cmd -m pip install --user ./ambuild
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
1096
third_party/parson/parson.c
vendored
1096
third_party/parson/parson.c
vendored
File diff suppressed because it is too large
Load Diff
26
third_party/parson/parson.h
vendored
26
third_party/parson/parson.h
vendored
@ -1,8 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
SPDX-License-Identifier: MIT
|
Parson ( http://kgabis.github.com/parson/ )
|
||||||
|
Copyright (c) 2012 - 2017 Krzysztof Gabis
|
||||||
Parson 1.2.1 ( http://kgabis.github.com/parson/ )
|
|
||||||
Copyright (c) 2012 - 2021 Krzysztof Gabis
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -31,12 +29,6 @@ extern "C"
|
|||||||
{
|
{
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define PARSON_VERSION_MAJOR 1
|
|
||||||
#define PARSON_VERSION_MINOR 2
|
|
||||||
#define PARSON_VERSION_PATCH 1
|
|
||||||
|
|
||||||
#define PARSON_VERSION_STRING "1.2.1"
|
|
||||||
|
|
||||||
#include <stddef.h> /* size_t */
|
#include <stddef.h> /* size_t */
|
||||||
|
|
||||||
/* Types and enums */
|
/* Types and enums */
|
||||||
@ -68,10 +60,6 @@ typedef void (*JSON_Free_Function)(void *);
|
|||||||
from stdlib will be used for all allocations */
|
from stdlib will be used for all allocations */
|
||||||
void json_set_allocation_functions(JSON_Malloc_Function malloc_fun, JSON_Free_Function free_fun);
|
void json_set_allocation_functions(JSON_Malloc_Function malloc_fun, JSON_Free_Function free_fun);
|
||||||
|
|
||||||
/* Sets if slashes should be escaped or not when serializing JSON. By default slashes are escaped.
|
|
||||||
This function sets a global setting and is not thread safe. */
|
|
||||||
void json_set_escape_slashes(int escape_slashes);
|
|
||||||
|
|
||||||
/* Parses first JSON value in a file, returns NULL in case of error */
|
/* Parses first JSON value in a file, returns NULL in case of error */
|
||||||
JSON_Value * json_parse_file(const char *filename);
|
JSON_Value * json_parse_file(const char *filename);
|
||||||
|
|
||||||
@ -120,7 +108,6 @@ JSON_Status json_validate(const JSON_Value *schema, const JSON_Value *value);
|
|||||||
*/
|
*/
|
||||||
JSON_Value * json_object_get_value (const JSON_Object *object, const char *name);
|
JSON_Value * json_object_get_value (const JSON_Object *object, const char *name);
|
||||||
const char * json_object_get_string (const JSON_Object *object, const char *name);
|
const char * json_object_get_string (const JSON_Object *object, const char *name);
|
||||||
size_t json_object_get_string_len(const JSON_Object *object, const char *name); /* doesn't account for last null character */
|
|
||||||
JSON_Object * json_object_get_object (const JSON_Object *object, const char *name);
|
JSON_Object * json_object_get_object (const JSON_Object *object, const char *name);
|
||||||
JSON_Array * json_object_get_array (const JSON_Object *object, const char *name);
|
JSON_Array * json_object_get_array (const JSON_Object *object, const char *name);
|
||||||
double json_object_get_number (const JSON_Object *object, const char *name); /* returns 0 on fail */
|
double json_object_get_number (const JSON_Object *object, const char *name); /* returns 0 on fail */
|
||||||
@ -132,7 +119,6 @@ int json_object_get_boolean(const JSON_Object *object, const char *nam
|
|||||||
this way. */
|
this way. */
|
||||||
JSON_Value * json_object_dotget_value (const JSON_Object *object, const char *name);
|
JSON_Value * json_object_dotget_value (const JSON_Object *object, const char *name);
|
||||||
const char * json_object_dotget_string (const JSON_Object *object, const char *name);
|
const char * json_object_dotget_string (const JSON_Object *object, const char *name);
|
||||||
size_t json_object_dotget_string_len(const JSON_Object *object, const char *name); /* doesn't account for last null character */
|
|
||||||
JSON_Object * json_object_dotget_object (const JSON_Object *object, const char *name);
|
JSON_Object * json_object_dotget_object (const JSON_Object *object, const char *name);
|
||||||
JSON_Array * json_object_dotget_array (const JSON_Object *object, const char *name);
|
JSON_Array * json_object_dotget_array (const JSON_Object *object, const char *name);
|
||||||
double json_object_dotget_number (const JSON_Object *object, const char *name); /* returns 0 on fail */
|
double json_object_dotget_number (const JSON_Object *object, const char *name); /* returns 0 on fail */
|
||||||
@ -156,7 +142,6 @@ int json_object_dothas_value_of_type(const JSON_Object *object, const char *name
|
|||||||
* json_object_set_value does not copy passed value so it shouldn't be freed afterwards. */
|
* json_object_set_value does not copy passed value so it shouldn't be freed afterwards. */
|
||||||
JSON_Status json_object_set_value(JSON_Object *object, const char *name, JSON_Value *value);
|
JSON_Status json_object_set_value(JSON_Object *object, const char *name, JSON_Value *value);
|
||||||
JSON_Status json_object_set_string(JSON_Object *object, const char *name, const char *string);
|
JSON_Status json_object_set_string(JSON_Object *object, const char *name, const char *string);
|
||||||
JSON_Status json_object_set_string_with_len(JSON_Object *object, const char *name, const char *string, size_t len); /* length shouldn't include last null character */
|
|
||||||
JSON_Status json_object_set_number(JSON_Object *object, const char *name, double number);
|
JSON_Status json_object_set_number(JSON_Object *object, const char *name, double number);
|
||||||
JSON_Status json_object_set_boolean(JSON_Object *object, const char *name, int boolean);
|
JSON_Status json_object_set_boolean(JSON_Object *object, const char *name, int boolean);
|
||||||
JSON_Status json_object_set_null(JSON_Object *object, const char *name);
|
JSON_Status json_object_set_null(JSON_Object *object, const char *name);
|
||||||
@ -165,7 +150,6 @@ JSON_Status json_object_set_null(JSON_Object *object, const char *name);
|
|||||||
* json_object_dotset_value does not copy passed value so it shouldn't be freed afterwards. */
|
* json_object_dotset_value does not copy passed value so it shouldn't be freed afterwards. */
|
||||||
JSON_Status json_object_dotset_value(JSON_Object *object, const char *name, JSON_Value *value);
|
JSON_Status json_object_dotset_value(JSON_Object *object, const char *name, JSON_Value *value);
|
||||||
JSON_Status json_object_dotset_string(JSON_Object *object, const char *name, const char *string);
|
JSON_Status json_object_dotset_string(JSON_Object *object, const char *name, const char *string);
|
||||||
JSON_Status json_object_dotset_string_with_len(JSON_Object *object, const char *name, const char *string, size_t len); /* length shouldn't include last null character */
|
|
||||||
JSON_Status json_object_dotset_number(JSON_Object *object, const char *name, double number);
|
JSON_Status json_object_dotset_number(JSON_Object *object, const char *name, double number);
|
||||||
JSON_Status json_object_dotset_boolean(JSON_Object *object, const char *name, int boolean);
|
JSON_Status json_object_dotset_boolean(JSON_Object *object, const char *name, int boolean);
|
||||||
JSON_Status json_object_dotset_null(JSON_Object *object, const char *name);
|
JSON_Status json_object_dotset_null(JSON_Object *object, const char *name);
|
||||||
@ -184,7 +168,6 @@ JSON_Status json_object_clear(JSON_Object *object);
|
|||||||
*/
|
*/
|
||||||
JSON_Value * json_array_get_value (const JSON_Array *array, size_t index);
|
JSON_Value * json_array_get_value (const JSON_Array *array, size_t index);
|
||||||
const char * json_array_get_string (const JSON_Array *array, size_t index);
|
const char * json_array_get_string (const JSON_Array *array, size_t index);
|
||||||
size_t json_array_get_string_len(const JSON_Array *array, size_t index); /* doesn't account for last null character */
|
|
||||||
JSON_Object * json_array_get_object (const JSON_Array *array, size_t index);
|
JSON_Object * json_array_get_object (const JSON_Array *array, size_t index);
|
||||||
JSON_Array * json_array_get_array (const JSON_Array *array, size_t index);
|
JSON_Array * json_array_get_array (const JSON_Array *array, size_t index);
|
||||||
double json_array_get_number (const JSON_Array *array, size_t index); /* returns 0 on fail */
|
double json_array_get_number (const JSON_Array *array, size_t index); /* returns 0 on fail */
|
||||||
@ -201,7 +184,6 @@ JSON_Status json_array_remove(JSON_Array *array, size_t i);
|
|||||||
* json_array_replace_value does not copy passed value so it shouldn't be freed afterwards. */
|
* json_array_replace_value does not copy passed value so it shouldn't be freed afterwards. */
|
||||||
JSON_Status json_array_replace_value(JSON_Array *array, size_t i, JSON_Value *value);
|
JSON_Status json_array_replace_value(JSON_Array *array, size_t i, JSON_Value *value);
|
||||||
JSON_Status json_array_replace_string(JSON_Array *array, size_t i, const char* string);
|
JSON_Status json_array_replace_string(JSON_Array *array, size_t i, const char* string);
|
||||||
JSON_Status json_array_replace_string_with_len(JSON_Array *array, size_t i, const char *string, size_t len); /* length shouldn't include last null character */
|
|
||||||
JSON_Status json_array_replace_number(JSON_Array *array, size_t i, double number);
|
JSON_Status json_array_replace_number(JSON_Array *array, size_t i, double number);
|
||||||
JSON_Status json_array_replace_boolean(JSON_Array *array, size_t i, int boolean);
|
JSON_Status json_array_replace_boolean(JSON_Array *array, size_t i, int boolean);
|
||||||
JSON_Status json_array_replace_null(JSON_Array *array, size_t i);
|
JSON_Status json_array_replace_null(JSON_Array *array, size_t i);
|
||||||
@ -213,7 +195,6 @@ JSON_Status json_array_clear(JSON_Array *array);
|
|||||||
* json_array_append_value does not copy passed value so it shouldn't be freed afterwards. */
|
* json_array_append_value does not copy passed value so it shouldn't be freed afterwards. */
|
||||||
JSON_Status json_array_append_value(JSON_Array *array, JSON_Value *value);
|
JSON_Status json_array_append_value(JSON_Array *array, JSON_Value *value);
|
||||||
JSON_Status json_array_append_string(JSON_Array *array, const char *string);
|
JSON_Status json_array_append_string(JSON_Array *array, const char *string);
|
||||||
JSON_Status json_array_append_string_with_len(JSON_Array *array, const char *string, size_t len); /* length shouldn't include last null character */
|
|
||||||
JSON_Status json_array_append_number(JSON_Array *array, double number);
|
JSON_Status json_array_append_number(JSON_Array *array, double number);
|
||||||
JSON_Status json_array_append_boolean(JSON_Array *array, int boolean);
|
JSON_Status json_array_append_boolean(JSON_Array *array, int boolean);
|
||||||
JSON_Status json_array_append_null(JSON_Array *array);
|
JSON_Status json_array_append_null(JSON_Array *array);
|
||||||
@ -224,7 +205,6 @@ JSON_Status json_array_append_null(JSON_Array *array);
|
|||||||
JSON_Value * json_value_init_object (void);
|
JSON_Value * json_value_init_object (void);
|
||||||
JSON_Value * json_value_init_array (void);
|
JSON_Value * json_value_init_array (void);
|
||||||
JSON_Value * json_value_init_string (const char *string); /* copies passed string */
|
JSON_Value * json_value_init_string (const char *string); /* copies passed string */
|
||||||
JSON_Value * json_value_init_string_with_len(const char *string, size_t length); /* copies passed string, length shouldn't include last null character */
|
|
||||||
JSON_Value * json_value_init_number (double number);
|
JSON_Value * json_value_init_number (double number);
|
||||||
JSON_Value * json_value_init_boolean(int boolean);
|
JSON_Value * json_value_init_boolean(int boolean);
|
||||||
JSON_Value * json_value_init_null (void);
|
JSON_Value * json_value_init_null (void);
|
||||||
@ -235,7 +215,6 @@ JSON_Value_Type json_value_get_type (const JSON_Value *value);
|
|||||||
JSON_Object * json_value_get_object (const JSON_Value *value);
|
JSON_Object * json_value_get_object (const JSON_Value *value);
|
||||||
JSON_Array * json_value_get_array (const JSON_Value *value);
|
JSON_Array * json_value_get_array (const JSON_Value *value);
|
||||||
const char * json_value_get_string (const JSON_Value *value);
|
const char * json_value_get_string (const JSON_Value *value);
|
||||||
size_t json_value_get_string_len(const JSON_Value *value); /* doesn't account for last null character */
|
|
||||||
double json_value_get_number (const JSON_Value *value);
|
double json_value_get_number (const JSON_Value *value);
|
||||||
int json_value_get_boolean(const JSON_Value *value);
|
int json_value_get_boolean(const JSON_Value *value);
|
||||||
JSON_Value * json_value_get_parent (const JSON_Value *value);
|
JSON_Value * json_value_get_parent (const JSON_Value *value);
|
||||||
@ -245,7 +224,6 @@ JSON_Value_Type json_type (const JSON_Value *value);
|
|||||||
JSON_Object * json_object (const JSON_Value *value);
|
JSON_Object * json_object (const JSON_Value *value);
|
||||||
JSON_Array * json_array (const JSON_Value *value);
|
JSON_Array * json_array (const JSON_Value *value);
|
||||||
const char * json_string (const JSON_Value *value);
|
const char * json_string (const JSON_Value *value);
|
||||||
size_t json_string_len(const JSON_Value *value); /* doesn't account for last null character */
|
|
||||||
double json_number (const JSON_Value *value);
|
double json_number (const JSON_Value *value);
|
||||||
int json_boolean(const JSON_Value *value);
|
int json_boolean(const JSON_Value *value);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user