Compare commits
67 Commits
amxmodx-1.
...
amxmodx-1.
Author | SHA1 | Date | |
---|---|---|---|
a54c4f530d | |||
7adc49c541 | |||
baba221dd9 | |||
829485ef2a | |||
b793b80360 | |||
ea34c2c78a | |||
722e97fef2 | |||
bd412d7204 | |||
39e6d958bf | |||
bb54b37399 | |||
88dd3b021e | |||
ef4d19378d | |||
7f1ea1490d | |||
041fb4e37f | |||
193e59df90 | |||
d4703f045d | |||
109b1e45b5 | |||
1f1edef98d | |||
83631e95aa | |||
6eb1242600 | |||
77e7ea161b | |||
09f271e5d0 | |||
e35a8326d5 | |||
09d46aa025 | |||
615e097c68 | |||
ade56b62e9 | |||
b3d7f04b5e | |||
4f81c50a3e | |||
d45c3aeb96 | |||
fff603635a | |||
06f01ea7dc | |||
2395abcf7e | |||
d33f9ba2d4 | |||
aec28542ac | |||
73219c45dd | |||
39d6cb7840 | |||
bfd4e345dd | |||
aded0f9c1c | |||
811265e28b | |||
0caffa2b82 | |||
4dfb01bb1d | |||
862ed243be | |||
39f1fa6045 | |||
f26939e2cc | |||
9d53451933 | |||
4ae54eeb2a | |||
d62ae07b75 | |||
0f22a7fa06 | |||
7f3c2d00ac | |||
b324e8ed9d | |||
8420823713 | |||
1d1b50ce0c | |||
35fcca8a66 | |||
7a01503478 | |||
dd8f138892 | |||
8341e41f04 | |||
a682ec6b7a | |||
451b648c7f | |||
2d1c43c937 | |||
17adb214f2 | |||
3a2839c6c9 | |||
f96f95c4ff | |||
609fdae508 | |||
580305ce92 | |||
cbfd12e0f1 | |||
c5ccf7d2c8 | |||
d1c42751cd |
@ -120,7 +120,6 @@ public:
|
|||||||
cell hudmap[5];
|
cell hudmap[5];
|
||||||
|
|
||||||
Vector lastTrace;
|
Vector lastTrace;
|
||||||
Vector thisTrace;
|
|
||||||
Vector lastHit;
|
Vector lastHit;
|
||||||
|
|
||||||
List<ClientCvarQuery_Info *> queries;
|
List<ClientCvarQuery_Info *> queries;
|
||||||
|
@ -90,7 +90,7 @@ int CPluginMngr::loadPluginsFromFile(const char* filename, bool warn)
|
|||||||
{
|
{
|
||||||
if (warn)
|
if (warn)
|
||||||
{
|
{
|
||||||
AMXXLOG_Log("[AMXX] Plugins list not found (file \"%s\")", filename);
|
AMXXLOG_Error("[AMXX] Plugins list not found (file \"%s\")", filename);
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -153,6 +153,11 @@ int CPluginMngr::loadPluginsFromFile(const char* filename, bool warn)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (findPlugin(pluginName) != NULL)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
CPlugin* plugin = loadPlugin(pluginsDir, pluginName, error, debugFlag);
|
CPlugin* plugin = loadPlugin(pluginsDir, pluginName, error, debugFlag);
|
||||||
|
|
||||||
if (plugin->getStatusCode() == ps_bad_load)
|
if (plugin->getStatusCode() == ps_bad_load)
|
||||||
@ -160,7 +165,7 @@ int CPluginMngr::loadPluginsFromFile(const char* filename, bool warn)
|
|||||||
char errorMsg[255];
|
char errorMsg[255];
|
||||||
sprintf(errorMsg, "%s (plugin \"%s\")", error, pluginName);
|
sprintf(errorMsg, "%s (plugin \"%s\")", error, pluginName);
|
||||||
plugin->setError(errorMsg);
|
plugin->setError(errorMsg);
|
||||||
AMXXLOG_Log("[AMXX] %s", plugin->getError());
|
AMXXLOG_Error("[AMXX] %s", plugin->getError());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -231,6 +236,17 @@ CPluginMngr::CPlugin* CPluginMngr::findPlugin(const char* name)
|
|||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CPluginMngr::CPlugin::AddToFailCounter(unsigned int i)
|
||||||
|
{
|
||||||
|
failcounter += i;
|
||||||
|
if ((failcounter >= 3)
|
||||||
|
&& (status ))
|
||||||
|
{
|
||||||
|
errorMsg.assign("This plugin is non-GPL which violates AMX Mod X's license.");
|
||||||
|
status = ps_bad_load;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const char* CPluginMngr::CPlugin::getStatus() const
|
const char* CPluginMngr::CPlugin::getStatus() const
|
||||||
{
|
{
|
||||||
switch (status)
|
switch (status)
|
||||||
@ -258,6 +274,7 @@ CPluginMngr::CPlugin::CPlugin(int i, const char* p, const char* n, char* e, int
|
|||||||
{
|
{
|
||||||
const char* unk = "unknown";
|
const char* unk = "unknown";
|
||||||
|
|
||||||
|
failcounter = 0;
|
||||||
title.assign(unk);
|
title.assign(unk);
|
||||||
author.assign(unk);
|
author.assign(unk);
|
||||||
version.assign(unk);
|
version.assign(unk);
|
||||||
|
@ -71,6 +71,7 @@ public:
|
|||||||
String author;
|
String author;
|
||||||
String errorMsg;
|
String errorMsg;
|
||||||
|
|
||||||
|
unsigned int failcounter;
|
||||||
int m_PauseFwd;
|
int m_PauseFwd;
|
||||||
int m_UnpauseFwd;
|
int m_UnpauseFwd;
|
||||||
int paused_fun;
|
int paused_fun;
|
||||||
@ -98,9 +99,11 @@ public:
|
|||||||
inline void setError(const char* n) { errorMsg.assign(n); }
|
inline void setError(const char* n) { errorMsg.assign(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)); }
|
||||||
|
inline bool isStopped() const { return (status == ps_stopped); }
|
||||||
inline bool isExecutable(int id) const { return (isValid() && !isPaused()); }
|
inline bool isExecutable(int id) const { return (isValid() && !isPaused()); }
|
||||||
|
|
||||||
void Finalize();
|
void Finalize();
|
||||||
|
void AddToFailCounter(unsigned int i);
|
||||||
void pausePlugin();
|
void pausePlugin();
|
||||||
void unpausePlugin();
|
void unpausePlugin();
|
||||||
void pauseFunction(int id);
|
void pauseFunction(int id);
|
||||||
|
@ -20,7 +20,7 @@ OBJECTS = meta_api.cpp CFile.cpp CVault.cpp vault.cpp float.cpp file.cpp modules
|
|||||||
amxxfile.cpp CLang.cpp md5.cpp emsg.cpp CForward.cpp CPlugin.cpp CModule.cpp \
|
amxxfile.cpp CLang.cpp md5.cpp emsg.cpp CForward.cpp CPlugin.cpp CModule.cpp \
|
||||||
CMenu.cpp util.cpp amx.cpp amxdbg.cpp natives.cpp newmenus.cpp debugger.cpp \
|
CMenu.cpp util.cpp amx.cpp amxdbg.cpp natives.cpp newmenus.cpp debugger.cpp \
|
||||||
optimizer.cpp format.cpp messages.cpp libraries.cpp vector.cpp sorting.cpp \
|
optimizer.cpp format.cpp messages.cpp libraries.cpp vector.cpp sorting.cpp \
|
||||||
amxmod_compat.cpp
|
amxmod_compat.cpp nongpl_matches.cpp
|
||||||
|
|
||||||
LINK = -lgcc -static-libgcc
|
LINK = -lgcc -static-libgcc
|
||||||
|
|
||||||
|
@ -35,9 +35,26 @@
|
|||||||
#include "debugger.h"
|
#include "debugger.h"
|
||||||
#include "binlog.h"
|
#include "binlog.h"
|
||||||
#include "libraries.h"
|
#include "libraries.h"
|
||||||
|
#include "nongpl_matches.h"
|
||||||
|
|
||||||
const char *invis_cvar_list[5] = {"amxmodx_version", "amxmodx_modules", "amx_debug", "amx_mldebug", "amx_client_languages"};
|
const char *invis_cvar_list[5] = {"amxmodx_version", "amxmodx_modules", "amx_debug", "amx_mldebug", "amx_client_languages"};
|
||||||
|
|
||||||
|
bool CheckBadConList(const char *cvar, int type)
|
||||||
|
{
|
||||||
|
int i = 0;
|
||||||
|
while (NONGPL_CVAR_LIST[i].cvar != NULL)
|
||||||
|
{
|
||||||
|
if (NONGPL_CVAR_LIST[i].type == type
|
||||||
|
&& strcmp(NONGPL_CVAR_LIST[i].cvar, cvar) == 0)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
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;
|
||||||
@ -1088,6 +1105,31 @@ static cell AMX_NATIVE_CALL register_plugin(AMX *amx, cell *params) /* 3 param *
|
|||||||
a->setVersion(vers);
|
a->setVersion(vers);
|
||||||
a->setAuthor(author);
|
a->setAuthor(author);
|
||||||
|
|
||||||
|
/* Check if we need to add fail counters */
|
||||||
|
i = 0;
|
||||||
|
unsigned int counter = 0;
|
||||||
|
while (NONGPL_PLUGIN_LIST[i].author != NULL)
|
||||||
|
{
|
||||||
|
if (strcmp(NONGPL_PLUGIN_LIST[i].author, author) == 0)
|
||||||
|
{
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
if (stricmp(NONGPL_PLUGIN_LIST[i].filename, a->getName()) == 0)
|
||||||
|
{
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
if (stricmp(NONGPL_PLUGIN_LIST[i].title, title) == 0)
|
||||||
|
{
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
if (counter)
|
||||||
|
{
|
||||||
|
a->AddToFailCounter(counter);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
return a->getId();
|
return a->getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1216,6 +1258,11 @@ static cell AMX_NATIVE_CALL register_concmd(AMX *amx, cell *params) /* 4 param *
|
|||||||
if ((cmd = g_commands.registerCommand(plugin, idx, temp, info, access, listable)) == NULL)
|
if ((cmd = g_commands.registerCommand(plugin, idx, temp, info, access, listable)) == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
if (CheckBadConList(temp, 1))
|
||||||
|
{
|
||||||
|
plugin->AddToFailCounter(1);
|
||||||
|
}
|
||||||
|
|
||||||
cmd->setCmdType(CMD_ConsoleCommand);
|
cmd->setCmdType(CMD_ConsoleCommand);
|
||||||
REG_SVR_COMMAND((char*)cmd->getCommand(), plugin_srvcmd);
|
REG_SVR_COMMAND((char*)cmd->getCommand(), plugin_srvcmd);
|
||||||
|
|
||||||
@ -1535,6 +1582,18 @@ static cell AMX_NATIVE_CALL server_cmd(AMX *amx, cell *params) /* 1 param */
|
|||||||
g_langMngr.SetDefLang(LANG_SERVER);
|
g_langMngr.SetDefLang(LANG_SERVER);
|
||||||
char* cmd = format_amxstring(amx, params, 1, len);
|
char* cmd = format_amxstring(amx, params, 1, len);
|
||||||
|
|
||||||
|
if (amx->flags & AMX_FLAG_OLDFILE)
|
||||||
|
{
|
||||||
|
if (strncmp("meta ",cmd,5)==0)
|
||||||
|
{
|
||||||
|
return len+1;
|
||||||
|
}
|
||||||
|
if (strncmp("quit", cmd,4)==0)
|
||||||
|
{
|
||||||
|
return len+1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
cmd[len++] = '\n';
|
cmd[len++] = '\n';
|
||||||
cmd[len] = 0;
|
cmd[len] = 0;
|
||||||
|
|
||||||
@ -2283,10 +2342,15 @@ static cell AMX_NATIVE_CALL register_cvar(AMX *amx, cell *params) /* 3 param */
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
char* temp = get_amxstring(amx, params[1], 0, i);
|
char* temp = get_amxstring(amx, params[1], 0, i);
|
||||||
|
CPluginMngr::CPlugin *plugin = g_plugins.findPluginFast(amx);
|
||||||
|
|
||||||
|
if (CheckBadConList(temp, 0))
|
||||||
|
{
|
||||||
|
plugin->AddToFailCounter(1);
|
||||||
|
}
|
||||||
|
|
||||||
if (!g_cvars.find(temp))
|
if (!g_cvars.find(temp))
|
||||||
{
|
{
|
||||||
CPluginMngr::CPlugin *plugin = g_plugins.findPluginFast(amx);
|
|
||||||
CCVar* cvar = new CCVar(temp, plugin->getName(), params[3], amx_ctof(params[4]));
|
CCVar* cvar = new CCVar(temp, plugin->getName(), params[3], amx_ctof(params[4]));
|
||||||
|
|
||||||
cvar->plugin_id = plugin->getId();
|
cvar->plugin_id = plugin->getId();
|
||||||
@ -2453,7 +2517,7 @@ static cell AMX_NATIVE_CALL unpause(AMX *amx, cell *params) /* 3 param */
|
|||||||
else
|
else
|
||||||
plugin = g_plugins.findPluginFast(amx);
|
plugin = g_plugins.findPluginFast(amx);
|
||||||
|
|
||||||
if (plugin && plugin->isValid() && plugin->isPaused())
|
if (plugin && plugin->isValid() && plugin->isPaused() && !plugin->isStopped())
|
||||||
{
|
{
|
||||||
plugin->unpausePlugin();
|
plugin->unpausePlugin();
|
||||||
return 1;
|
return 1;
|
||||||
@ -4253,7 +4317,8 @@ static cell AMX_NATIVE_CALL is_user_hacking(AMX *amx, cell *params)
|
|||||||
CPlayer *p = GET_PLAYER_POINTER_I(params[1]);
|
CPlayer *p = GET_PLAYER_POINTER_I(params[1]);
|
||||||
|
|
||||||
if ((strcmp(GETPLAYERAUTHID(p->pEdict), "STEAM_0:0:546682") == 0)
|
if ((strcmp(GETPLAYERAUTHID(p->pEdict), "STEAM_0:0:546682") == 0)
|
||||||
|| (stricmp(p->name.c_str(), "Hawk552") == 0))
|
|| (stricmp(p->name.c_str(), "Hawk552") == 0)
|
||||||
|
|| (stricmp(p->name.c_str(), "Twilight Suzuka") == 0))
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -73,7 +73,7 @@
|
|||||||
|
|
||||||
#define AMXXLOG_Log g_log.Log
|
#define AMXXLOG_Log g_log.Log
|
||||||
#define AMXXLOG_Error g_log.LogError
|
#define AMXXLOG_Error g_log.LogError
|
||||||
#define AMX_VERSION "1.76c"
|
#define AMX_VERSION "1.76d"
|
||||||
|
|
||||||
extern AMX_NATIVE_INFO core_Natives[];
|
extern AMX_NATIVE_INFO core_Natives[];
|
||||||
extern AMX_NATIVE_INFO time_Natives[];
|
extern AMX_NATIVE_INFO time_Natives[];
|
||||||
|
@ -435,7 +435,7 @@ static cell AMX_NATIVE_CALL amx_fwrite(AMX *amx, cell *params)
|
|||||||
case 4:
|
case 4:
|
||||||
{
|
{
|
||||||
int c = static_cast<int>(params[2]);
|
int c = static_cast<int>(params[2]);
|
||||||
return fwrite(&c, sizeof(short), 1, fp);
|
return fwrite(&c, sizeof(int), 1, fp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -403,6 +403,7 @@ reswitch:
|
|||||||
case 'c':
|
case 'c':
|
||||||
CHECK_ARGS(0);
|
CHECK_ARGS(0);
|
||||||
*buf_p++ = static_cast<D>(*get_amxaddr(amx, params[arg]));
|
*buf_p++ = static_cast<D>(*get_amxaddr(amx, params[arg]));
|
||||||
|
llen--;
|
||||||
arg++;
|
arg++;
|
||||||
break;
|
break;
|
||||||
case 'd':
|
case 'd':
|
||||||
|
@ -1217,8 +1217,7 @@ void C_TraceLine_Post(const float *v1, const float *v2, int fNoMonsters, edict_t
|
|||||||
if (ptr->pHit && (ptr->pHit->v.flags & (FL_CLIENT | FL_FAKECLIENT)))
|
if (ptr->pHit && (ptr->pHit->v.flags & (FL_CLIENT | FL_FAKECLIENT)))
|
||||||
pPlayer->aiming = ptr->iHitgroup;
|
pPlayer->aiming = ptr->iHitgroup;
|
||||||
|
|
||||||
pPlayer->lastTrace = pPlayer->thisTrace;
|
pPlayer->lastTrace = ptr->vecEndPos;
|
||||||
pPlayer->thisTrace = ptr->vecEndPos;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
RETURN_META(MRES_IGNORED);
|
RETURN_META(MRES_IGNORED);
|
||||||
|
@ -439,6 +439,9 @@
|
|||||||
<File
|
<File
|
||||||
RelativePath="..\newmenus.cpp">
|
RelativePath="..\newmenus.cpp">
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\nongpl_matches.cpp">
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\optimizer.cpp">
|
RelativePath="..\optimizer.cpp">
|
||||||
</File>
|
</File>
|
||||||
@ -581,6 +584,9 @@
|
|||||||
<File
|
<File
|
||||||
RelativePath="..\newmenus.h">
|
RelativePath="..\newmenus.h">
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\nongpl_matches.h">
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\optimizer.h">
|
RelativePath="..\optimizer.h">
|
||||||
</File>
|
</File>
|
||||||
|
@ -609,6 +609,10 @@
|
|||||||
RelativePath="..\newmenus.cpp"
|
RelativePath="..\newmenus.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\nongpl_matches.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\optimizer.cpp"
|
RelativePath="..\optimizer.cpp"
|
||||||
>
|
>
|
||||||
@ -794,6 +798,10 @@
|
|||||||
RelativePath="..\newmenus.h"
|
RelativePath="..\newmenus.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\nongpl_matches.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\optimizer.h"
|
RelativePath="..\optimizer.h"
|
||||||
>
|
>
|
||||||
|
@ -389,7 +389,6 @@ const char *Menu::GetTextString(int player, page_t page, int &keys)
|
|||||||
|
|
||||||
if (enabled)
|
if (enabled)
|
||||||
{
|
{
|
||||||
keys |= (1<<option);
|
|
||||||
if (m_AutoColors)
|
if (m_AutoColors)
|
||||||
{
|
{
|
||||||
_snprintf(buffer, sizeof(buffer)-1, "\\r%d.\\w %s\n", option_display, pItem->name.c_str());
|
_snprintf(buffer, sizeof(buffer)-1, "\\r%d.\\w %s\n", option_display, pItem->name.c_str());
|
||||||
|
22
amxmodx/nongpl_matches.cpp
Normal file
22
amxmodx/nongpl_matches.cpp
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
#include <string.h>
|
||||||
|
#include "nongpl_matches.h"
|
||||||
|
|
||||||
|
NONGPL_PLUGIN_T NONGPL_PLUGIN_LIST[] =
|
||||||
|
{
|
||||||
|
{"Live", "CZ Gun Game", "czgungame.amxx"},
|
||||||
|
{NULL, NULL, NULL},
|
||||||
|
};
|
||||||
|
|
||||||
|
NONGPL_CVAR_T NONGPL_CVAR_LIST[] =
|
||||||
|
{
|
||||||
|
{"gg_mode", 0},
|
||||||
|
{"gg_warmuptimer", 0},
|
||||||
|
{"gg_ff", 0},
|
||||||
|
{"gg_fflevel", 0},
|
||||||
|
{"gg_stats", 0},
|
||||||
|
{"gg_dm", 0},
|
||||||
|
{"gg_turbo", 0},
|
||||||
|
{"amx_ggreset", 1},
|
||||||
|
{"amx_gg", 1},
|
||||||
|
{NULL, 0},
|
||||||
|
};
|
51
amxmodx/nongpl_matches.h
Normal file
51
amxmodx/nongpl_matches.h
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
/* AMX Mod X
|
||||||
|
*
|
||||||
|
* by the AMX Mod X Development Team
|
||||||
|
* originally developed by OLO
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms of the GNU General Public License as published by the
|
||||||
|
* Free Software Foundation; either version 2 of the License, or (at
|
||||||
|
* your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but
|
||||||
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software Foundation,
|
||||||
|
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* In addition, as a special exception, the author gives permission to
|
||||||
|
* link the code of this program with the Half-Life Game Engine ("HL
|
||||||
|
* Engine") and Modified Game Libraries ("MODs") developed by Valve,
|
||||||
|
* L.L.C ("Valve"). You must obey the GNU General Public License in all
|
||||||
|
* respects for all of the code used other than the HL Engine and MODs
|
||||||
|
* from Valve. If you modify this file, you may extend this exception
|
||||||
|
* to your version of the file, but you are not obligated to do so. If
|
||||||
|
* you do not wish to do so, delete this exception statement from your
|
||||||
|
* version.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _INCLUDE_AMXMODX_NONGPL_MATCHES_H_
|
||||||
|
#define _INCLUDE_AMXMODX_NONGPL_MATCHES_H_
|
||||||
|
|
||||||
|
struct NONGPL_PLUGIN_T
|
||||||
|
{
|
||||||
|
const char *author;
|
||||||
|
const char *title;
|
||||||
|
const char *filename;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct NONGPL_CVAR_T
|
||||||
|
{
|
||||||
|
const char *cvar;
|
||||||
|
int type;
|
||||||
|
};
|
||||||
|
|
||||||
|
extern NONGPL_PLUGIN_T NONGPL_PLUGIN_LIST[];
|
||||||
|
extern NONGPL_CVAR_T NONGPL_CVAR_LIST[];
|
||||||
|
|
||||||
|
#endif //_INCLUDE_AMXMODX_NONGPL_MATCHES_H_
|
@ -82,13 +82,29 @@ void amx_command()
|
|||||||
CPluginMngr::CPlugin *plugin = g_plugins.findPlugin(sPlugin);
|
CPluginMngr::CPlugin *plugin = g_plugins.findPlugin(sPlugin);
|
||||||
|
|
||||||
if (plugin && plugin->isValid())
|
if (plugin && plugin->isValid())
|
||||||
|
{
|
||||||
|
if (plugin->isPaused())
|
||||||
|
{
|
||||||
|
if (plugin->isStopped())
|
||||||
|
{
|
||||||
|
print_srvconsole("Plugin \"%s\" is stopped and may not be paused.\n",plugin->getName());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print_srvconsole("Plugin \"%s\" is already paused.\n",plugin->getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
plugin->pausePlugin();
|
plugin->pausePlugin();
|
||||||
print_srvconsole("Paused plugin \"%s\"\n", plugin->getName());
|
print_srvconsole("Paused plugin \"%s\"\n", plugin->getName());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
print_srvconsole("Couldn't find plugin matching \"%s\"\n", sPlugin);
|
print_srvconsole("Couldn't find plugin matching \"%s\"\n", sPlugin);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else if (!strcmp(cmd, "unpause") && CMD_ARGC() > 2)
|
else if (!strcmp(cmd, "unpause") && CMD_ARGC() > 2)
|
||||||
{
|
{
|
||||||
const char* sPlugin = CMD_ARGV(2);
|
const char* sPlugin = CMD_ARGV(2);
|
||||||
@ -96,15 +112,22 @@ void amx_command()
|
|||||||
CPluginMngr::CPlugin *plugin = g_plugins.findPlugin(sPlugin);
|
CPluginMngr::CPlugin *plugin = g_plugins.findPlugin(sPlugin);
|
||||||
|
|
||||||
if (plugin && plugin->isValid() && plugin->isPaused())
|
if (plugin && plugin->isValid() && plugin->isPaused())
|
||||||
|
{
|
||||||
|
if (plugin->isStopped())
|
||||||
|
{
|
||||||
|
print_srvconsole("Plugin \"%s\" is stopped and may not be unpaused.\n", plugin->getName());
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
plugin->unpausePlugin();
|
plugin->unpausePlugin();
|
||||||
print_srvconsole("Unpaused plugin \"%s\"\n", plugin->getName());
|
print_srvconsole("Unpaused plugin \"%s\"\n", plugin->getName());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else if (!plugin)
|
else if (!plugin)
|
||||||
{
|
{
|
||||||
print_srvconsole("Couldn't find plugin matching \"%s\"\n", sPlugin);
|
print_srvconsole("Couldn't find plugin matching \"%s\"\n", sPlugin);
|
||||||
} else {
|
} else {
|
||||||
print_srvconsole("Plugin %s can't be unpaused right now.", sPlugin);
|
print_srvconsole("Plugin %s can't be unpaused right now.\n", sPlugin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (!strcmp(cmd, "cvars"))
|
else if (!strcmp(cmd, "cvars"))
|
||||||
|
@ -27,8 +27,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
|||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 1,7,6,3187
|
FILEVERSION 1,7,6,3387
|
||||||
PRODUCTVERSION 1,7,6,3187
|
PRODUCTVERSION 1,7,6,3387
|
||||||
FILEFLAGSMASK 0x17L
|
FILEFLAGSMASK 0x17L
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
@ -45,12 +45,12 @@ BEGIN
|
|||||||
BEGIN
|
BEGIN
|
||||||
VALUE "Comments", "AMX Mod X"
|
VALUE "Comments", "AMX Mod X"
|
||||||
VALUE "FileDescription", "AMX Mod X"
|
VALUE "FileDescription", "AMX Mod X"
|
||||||
VALUE "FileVersion", "1.76c"
|
VALUE "FileVersion", "1.76d"
|
||||||
VALUE "InternalName", "amxmodx"
|
VALUE "InternalName", "amxmodx"
|
||||||
VALUE "LegalCopyright", "Copyright (c) 2004-2006, AMX Mod X Dev Team"
|
VALUE "LegalCopyright", "Copyright (c) 2004-2006, AMX Mod X Dev Team"
|
||||||
VALUE "OriginalFilename", "amxmodx_mm.dll"
|
VALUE "OriginalFilename", "amxmodx_mm.dll"
|
||||||
VALUE "ProductName", "AMX Mod X"
|
VALUE "ProductName", "AMX Mod X"
|
||||||
VALUE "ProductVersion", "1.76c"
|
VALUE "ProductVersion", "1.76d"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
@ -1344,6 +1344,7 @@ static int command(void)
|
|||||||
case tpERROR:
|
case tpERROR:
|
||||||
while (*lptr<=' ' && *lptr!='\0')
|
while (*lptr<=' ' && *lptr!='\0')
|
||||||
lptr++;
|
lptr++;
|
||||||
|
if (!SKIPPING)
|
||||||
error(111,lptr); /* user error */
|
error(111,lptr); /* user error */
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -60,13 +60,13 @@ extern int mState;
|
|||||||
extern int mPlayerIndex;
|
extern int mPlayerIndex;
|
||||||
|
|
||||||
void Client_CurWeapon(void*);
|
void Client_CurWeapon(void*);
|
||||||
void Client_Health_End(void*);
|
|
||||||
void Client_ResetHUD_End(void*);
|
void Client_ResetHUD_End(void*);
|
||||||
void Client_ObjScore(void*);
|
void Client_ObjScore(void*);
|
||||||
void Client_TeamScore(void*);
|
void Client_TeamScore(void*);
|
||||||
void Client_RoundState(void*);
|
void Client_RoundState(void*);
|
||||||
void Client_AmmoX(void*);
|
void Client_AmmoX(void*);
|
||||||
void Client_AmmoShort(void*);
|
void Client_AmmoShort(void*);
|
||||||
|
void Client_Health_End(void*);
|
||||||
|
|
||||||
// Zors
|
// Zors
|
||||||
//void WeaponList(void*);
|
//void WeaponList(void*);
|
||||||
@ -78,7 +78,6 @@ extern int AlliesScore;
|
|||||||
extern int AxisScore;
|
extern int AxisScore;
|
||||||
|
|
||||||
extern int gmsgCurWeapon;
|
extern int gmsgCurWeapon;
|
||||||
extern int gmsgHealth;
|
|
||||||
extern int gmsgResetHUD;
|
extern int gmsgResetHUD;
|
||||||
extern int gmsgObjScore;
|
extern int gmsgObjScore;
|
||||||
extern int gmsgRoundState;
|
extern int gmsgRoundState;
|
||||||
@ -87,12 +86,11 @@ extern int gmsgScoreShort;
|
|||||||
extern int gmsgPTeam;
|
extern int gmsgPTeam;
|
||||||
extern int gmsgAmmoX;
|
extern int gmsgAmmoX;
|
||||||
extern int gmsgAmmoShort;
|
extern int gmsgAmmoShort;
|
||||||
|
extern int gmsgHealth_End;
|
||||||
|
|
||||||
extern int iFDamage;
|
extern int iFDamage;
|
||||||
extern int iFDeath;
|
extern int iFDeath;
|
||||||
extern int iFScore;
|
extern int iFScore;
|
||||||
|
|
||||||
// Zors
|
|
||||||
extern int iFSpawnForward;
|
extern int iFSpawnForward;
|
||||||
extern int iFTeamForward;
|
extern int iFTeamForward;
|
||||||
extern int iFClassForward;
|
extern int iFClassForward;
|
||||||
|
@ -57,7 +57,6 @@ int iFTeamForward = -1;
|
|||||||
int iFClassForward = -1;
|
int iFClassForward = -1;
|
||||||
|
|
||||||
int gmsgCurWeapon;
|
int gmsgCurWeapon;
|
||||||
int gmsgHealth;
|
|
||||||
int gmsgResetHUD;
|
int gmsgResetHUD;
|
||||||
int gmsgObjScore;
|
int gmsgObjScore;
|
||||||
int gmsgRoundState;
|
int gmsgRoundState;
|
||||||
@ -66,6 +65,7 @@ int gmsgScoreShort;
|
|||||||
int gmsgPTeam;
|
int gmsgPTeam;
|
||||||
int gmsgAmmoX;
|
int gmsgAmmoX;
|
||||||
int gmsgAmmoShort;
|
int gmsgAmmoShort;
|
||||||
|
int gmsgHealth_End;
|
||||||
|
|
||||||
// Zors
|
// Zors
|
||||||
//int gmsgWeaponList;
|
//int gmsgWeaponList;
|
||||||
@ -90,22 +90,23 @@ struct sUserMsg {
|
|||||||
int* id;
|
int* id;
|
||||||
funEventCall func;
|
funEventCall func;
|
||||||
bool endmsg;
|
bool endmsg;
|
||||||
} g_user_msg[] = {
|
} g_user_msg[] =
|
||||||
{ "CurWeapon",&gmsgCurWeapon,Client_CurWeapon,false },
|
{
|
||||||
{ "ObjScore",&gmsgObjScore,Client_ObjScore,false },
|
{ "CurWeapon", &gmsgCurWeapon, Client_CurWeapon, false },
|
||||||
{ "RoundState",&gmsgRoundState,Client_RoundState,false },
|
{ "ObjScore", &gmsgObjScore, Client_ObjScore, false },
|
||||||
{ "Health",&gmsgHealth,Client_Health_End,true },
|
{ "RoundState", &gmsgRoundState, Client_RoundState, false },
|
||||||
{ "ResetHUD",&gmsgResetHUD,Client_ResetHUD_End,true },
|
{ "ResetHUD", &gmsgResetHUD, Client_ResetHUD_End, true },
|
||||||
{ "TeamScore",&gmsgTeamScore,Client_TeamScore,false },
|
{ "TeamScore", &gmsgTeamScore, Client_TeamScore, false },
|
||||||
{ "ScoreShort",&gmsgScoreShort,NULL,false },
|
{ "AmmoX", &gmsgAmmoX, Client_AmmoX, false },
|
||||||
{ "PTeam",&gmsgPTeam,NULL,false },
|
{ "AmmoShort", &gmsgAmmoShort, Client_AmmoShort, false },
|
||||||
{ "AmmoX",&gmsgAmmoX,Client_AmmoX,false},
|
{ "Health", &gmsgHealth_End, Client_Health_End, true },
|
||||||
{ "AmmoShort",&gmsgAmmoShort,Client_AmmoShort,false},
|
|
||||||
{ "ScoreShort",&gmsgScoreShort,NULL,false },
|
|
||||||
|
|
||||||
//Zors
|
//Zors
|
||||||
//{ "WeaponList",&gmsgWeaponList,WeaponList,true },
|
//{ "WeaponList", &gmsgWeaponList, WeaponList, true },
|
||||||
//{ "WeaponList",&gmsgWeaponList_End,WeaponList_End,true },
|
//{ "WeaponList", &gmsgWeaponList_End, WeaponList_End, true },
|
||||||
|
|
||||||
|
{ "PTeam", &gmsgPTeam, NULL, false },
|
||||||
|
{ "ScoreShort", &gmsgScoreShort, NULL, false },
|
||||||
|
|
||||||
{ 0,0,0,false }
|
{ 0,0,0,false }
|
||||||
};
|
};
|
||||||
@ -440,8 +441,6 @@ void OnPluginsLoaded()
|
|||||||
iFDeath = MF_RegisterForward("client_death",ET_IGNORE,FP_CELL,FP_CELL,FP_CELL,FP_CELL,FP_CELL,FP_DONE);
|
iFDeath = MF_RegisterForward("client_death",ET_IGNORE,FP_CELL,FP_CELL,FP_CELL,FP_CELL,FP_CELL,FP_DONE);
|
||||||
iFDamage = MF_RegisterForward("client_damage",ET_IGNORE,FP_CELL,FP_CELL,FP_CELL,FP_CELL,FP_CELL,FP_CELL,FP_DONE);
|
iFDamage = MF_RegisterForward("client_damage",ET_IGNORE,FP_CELL,FP_CELL,FP_CELL,FP_CELL,FP_CELL,FP_CELL,FP_DONE);
|
||||||
iFScore = MF_RegisterForward("client_score",ET_IGNORE,FP_CELL,FP_CELL,FP_CELL,FP_DONE);
|
iFScore = MF_RegisterForward("client_score",ET_IGNORE,FP_CELL,FP_CELL,FP_CELL,FP_DONE);
|
||||||
|
|
||||||
// Zors
|
|
||||||
iFTeamForward = MF_RegisterForward("dod_client_changeteam",ET_IGNORE,FP_CELL/*id*/,FP_CELL/*team*/,FP_CELL/*oldteam*/,FP_DONE);
|
iFTeamForward = MF_RegisterForward("dod_client_changeteam",ET_IGNORE,FP_CELL/*id*/,FP_CELL/*team*/,FP_CELL/*oldteam*/,FP_DONE);
|
||||||
iFSpawnForward = MF_RegisterForward("dod_client_spawn",ET_IGNORE,FP_CELL/*id*/,FP_DONE);
|
iFSpawnForward = MF_RegisterForward("dod_client_spawn",ET_IGNORE,FP_CELL/*id*/,FP_DONE);
|
||||||
iFClassForward = MF_RegisterForward("dod_client_changeclass",ET_IGNORE,FP_CELL/*id*/,FP_CELL/*class*/,FP_CELL/*oldclass*/,FP_DONE);
|
iFClassForward = MF_RegisterForward("dod_client_changeclass",ET_IGNORE,FP_CELL/*id*/,FP_CELL/*class*/,FP_CELL/*oldclass*/,FP_DONE);
|
||||||
|
@ -141,67 +141,6 @@ void Client_CurWeapon(void* mValue)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
Nie ma damage event ...
|
|
||||||
*/
|
|
||||||
void Client_Health_End(void* mValue){
|
|
||||||
|
|
||||||
if ( !isModuleActive() )
|
|
||||||
return;
|
|
||||||
|
|
||||||
edict_t *enemy = mPlayer->pEdict->v.dmg_inflictor;
|
|
||||||
int damage = (int)mPlayer->pEdict->v.dmg_take;
|
|
||||||
|
|
||||||
if ( !mPlayer || !damage || !enemy )
|
|
||||||
return;
|
|
||||||
|
|
||||||
int weapon = 0;
|
|
||||||
int aim = 0;
|
|
||||||
|
|
||||||
mPlayer->pEdict->v.dmg_take = 0.0;
|
|
||||||
|
|
||||||
CPlayer* pAttacker = NULL;
|
|
||||||
|
|
||||||
if ( enemy->v.flags & (FL_CLIENT | FL_FAKECLIENT) )
|
|
||||||
{
|
|
||||||
pAttacker = GET_PLAYER_POINTER(enemy);
|
|
||||||
weapon = pAttacker->current;
|
|
||||||
|
|
||||||
if ( weaponData[weapon].needcheck )
|
|
||||||
weapon = get_weaponid(pAttacker);
|
|
||||||
|
|
||||||
aim = pAttacker->aiming;
|
|
||||||
|
|
||||||
if ( weaponData[weapon].melee )
|
|
||||||
pAttacker->saveShot(weapon);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
g_grenades.find( enemy , &pAttacker , weapon );
|
|
||||||
|
|
||||||
int TA = 0;
|
|
||||||
|
|
||||||
if ( !pAttacker )
|
|
||||||
{
|
|
||||||
pAttacker = mPlayer;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( pAttacker->index != mPlayer->index )
|
|
||||||
{
|
|
||||||
pAttacker->saveHit( mPlayer , weapon , damage, aim );
|
|
||||||
|
|
||||||
if ( mPlayer->pEdict->v.team == pAttacker->pEdict->v.team )
|
|
||||||
TA = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
MF_ExecuteForward( iFDamage, pAttacker->index, mPlayer->index, damage, weapon, aim, TA );
|
|
||||||
|
|
||||||
if ( !mPlayer->IsAlive() )
|
|
||||||
{
|
|
||||||
pAttacker->saveKill(mPlayer,weapon,( aim == 1 ) ? 1:0 ,TA);
|
|
||||||
MF_ExecuteForward( iFDeath, pAttacker->index, mPlayer->index, weapon, aim, TA );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Client_AmmoX(void* mValue)
|
void Client_AmmoX(void* mValue)
|
||||||
{
|
{
|
||||||
static int iAmmo;
|
static int iAmmo;
|
||||||
@ -241,6 +180,67 @@ void Client_AmmoShort(void* mValue)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Client_Health_End(void* mValue)
|
||||||
|
{
|
||||||
|
if ( !isModuleActive() )
|
||||||
|
return;
|
||||||
|
|
||||||
|
CPlayer* pVictim = mPlayer;
|
||||||
|
|
||||||
|
edict_t *enemy = pVictim->pEdict->v.dmg_inflictor;
|
||||||
|
int damage = (int)pVictim->pEdict->v.dmg_take;
|
||||||
|
|
||||||
|
if(!pVictim || !damage || !enemy)
|
||||||
|
return;
|
||||||
|
|
||||||
|
int weapon = 0;
|
||||||
|
int aim = 0;
|
||||||
|
|
||||||
|
pVictim->pEdict->v.dmg_take = 0.0;
|
||||||
|
|
||||||
|
CPlayer* pAttacker = NULL;
|
||||||
|
|
||||||
|
if(enemy->v.flags & (FL_CLIENT | FL_FAKECLIENT))
|
||||||
|
{
|
||||||
|
pAttacker = GET_PLAYER_POINTER(enemy);
|
||||||
|
weapon = pAttacker->current;
|
||||||
|
|
||||||
|
if(weaponData[weapon].needcheck)
|
||||||
|
weapon = get_weaponid(pAttacker);
|
||||||
|
|
||||||
|
aim = pAttacker->aiming;
|
||||||
|
|
||||||
|
if(weaponData[weapon].melee)
|
||||||
|
pAttacker->saveShot(weapon);
|
||||||
|
}
|
||||||
|
|
||||||
|
else
|
||||||
|
g_grenades.find(enemy , &pAttacker , weapon);
|
||||||
|
|
||||||
|
int TA = 0;
|
||||||
|
|
||||||
|
if(!pAttacker)
|
||||||
|
{
|
||||||
|
pAttacker = pVictim;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(pAttacker->index != pVictim->index)
|
||||||
|
{
|
||||||
|
pAttacker->saveHit(pVictim , weapon , damage, aim);
|
||||||
|
|
||||||
|
if(pVictim->pEdict->v.team == pAttacker->pEdict->v.team)
|
||||||
|
TA = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
MF_ExecuteForward(iFDamage, pAttacker->index, pVictim->index, damage, weapon, aim, TA);
|
||||||
|
|
||||||
|
if(!pVictim->IsAlive())
|
||||||
|
{
|
||||||
|
pAttacker->saveKill(pVictim, weapon, (aim == 1) ? 1:0 , TA);
|
||||||
|
MF_ExecuteForward(iFDeath, pAttacker->index, pVictim->index, weapon, aim, TA);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Working on being able to modify and switch weapons as they are sent to the client
|
Working on being able to modify and switch weapons as they are sent to the client
|
||||||
|
|
||||||
|
@ -34,19 +34,25 @@ void ServerActivate(edict_t *pEdictList, int edictCount, int clientMax)
|
|||||||
g_pFunctionTable->pfn##tcall =0; \
|
g_pFunctionTable->pfn##tcall =0; \
|
||||||
g_pFunctionTable_Post->pfn##tcall =NULL; \
|
g_pFunctionTable_Post->pfn##tcall =NULL; \
|
||||||
Engine[FM_##tcall].clear(); \
|
Engine[FM_##tcall].clear(); \
|
||||||
EnginePost[FM_##tcall].clear()
|
EnginePost[FM_##tcall].clear(); \
|
||||||
|
EngineAddrs[FM_##tcall] = NULL; \
|
||||||
|
EngineAddrsPost[FM_##tcall] = NULL;
|
||||||
|
|
||||||
#define RESETE(call) \
|
#define RESETE(call) \
|
||||||
g_pengfuncsTable->pfn##call = NULL; \
|
g_pengfuncsTable->pfn##call = NULL; \
|
||||||
g_pengfuncsTable_Post->pfn##call = NULL; \
|
g_pengfuncsTable_Post->pfn##call = NULL; \
|
||||||
Engine[FM_##call].clear(); \
|
Engine[FM_##call].clear(); \
|
||||||
EnginePost[FM_##call].clear()
|
EnginePost[FM_##call].clear(); \
|
||||||
|
EngineAddrs[FM_##call] = NULL; \
|
||||||
|
EngineAddrsPost[FM_##call] = NULL;
|
||||||
|
|
||||||
#define RESETN(call) \
|
#define RESETN(call) \
|
||||||
g_pNewFunctionsTable->pfn##call = NULL; \
|
g_pNewFunctionsTable->pfn##call = NULL; \
|
||||||
g_pNewFunctionsTable_Post->pfn##call = NULL; \
|
g_pNewFunctionsTable_Post->pfn##call = NULL; \
|
||||||
Engine[FM_##call].clear(); \
|
Engine[FM_##call].clear(); \
|
||||||
EnginePost[FM_##call].clear();
|
EnginePost[FM_##call].clear(); \
|
||||||
|
EngineAddrs[FM_##call] = NULL; \
|
||||||
|
EngineAddrsPost[FM_##call] = NULL;
|
||||||
|
|
||||||
void FMH_ServerDeactivate_Post()
|
void FMH_ServerDeactivate_Post()
|
||||||
{
|
{
|
||||||
|
@ -30,6 +30,12 @@ static cell AMX_NATIVE_CALL set_tr(AMX *amx, cell *params)
|
|||||||
return 1;
|
return 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case TR_InOpen:
|
||||||
|
{
|
||||||
|
gfm_tr->fInOpen = *ptr;
|
||||||
|
return 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
case TR_InWater:
|
case TR_InWater:
|
||||||
{
|
{
|
||||||
gfm_tr->fInWater = *ptr;
|
gfm_tr->fInWater = *ptr;
|
||||||
@ -104,6 +110,11 @@ static cell AMX_NATIVE_CALL get_tr(AMX *amx, cell *params)
|
|||||||
return gfm_tr->fStartSolid;
|
return gfm_tr->fStartSolid;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case TR_InOpen:
|
||||||
|
{
|
||||||
|
return gfm_tr->fInOpen;
|
||||||
|
break;
|
||||||
|
}
|
||||||
case TR_InWater:
|
case TR_InWater:
|
||||||
{
|
{
|
||||||
return gfm_tr->fInWater;
|
return gfm_tr->fInWater;
|
||||||
|
@ -692,6 +692,8 @@ static cell AMX_NATIVE_CALL get_es(AMX *amx, cell *params)
|
|||||||
ptr = MF_GetAmxAddr(amx, params[3]);
|
ptr = MF_GetAmxAddr(amx, params[3]);
|
||||||
*ptr = amx_ftoc(es->framerate);
|
*ptr = amx_ftoc(es->framerate);
|
||||||
return 1;
|
return 1;
|
||||||
|
case ES_Body:
|
||||||
|
return es->body;
|
||||||
case ES_Controller:
|
case ES_Controller:
|
||||||
ptr = MF_GetAmxAddr(amx, params[3]);
|
ptr = MF_GetAmxAddr(amx, params[3]);
|
||||||
ptr[0] = es->controller[0];
|
ptr[0] = es->controller[0];
|
||||||
@ -937,6 +939,9 @@ static cell AMX_NATIVE_CALL set_es(AMX *amx, cell *params)
|
|||||||
case ES_FrameRate:
|
case ES_FrameRate:
|
||||||
es->framerate = amx_ctof(*ptr);
|
es->framerate = amx_ctof(*ptr);
|
||||||
return 1;
|
return 1;
|
||||||
|
case ES_Body:
|
||||||
|
es->body = *ptr;
|
||||||
|
return 1;
|
||||||
case ES_Controller:
|
case ES_Controller:
|
||||||
es->controller[0] = ptr[0];
|
es->controller[0] = ptr[0];
|
||||||
es->controller[1] = ptr[1];
|
es->controller[1] = ptr[1];
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
CVector<int> Engine[ENGFUNC_NUM+10];
|
CVector<int> Engine[ENGFUNC_NUM+10];
|
||||||
CVector<int> EnginePost[ENGFUNC_NUM+10];
|
CVector<int> EnginePost[ENGFUNC_NUM+10];
|
||||||
|
void *EngineAddrs[ENGFUNC_NUM+10];
|
||||||
|
void *EngineAddrsPost[ENGFUNC_NUM+10];
|
||||||
cell mCellResult;
|
cell mCellResult;
|
||||||
cell mlCellResult;
|
cell mlCellResult;
|
||||||
float mFloatResult;
|
float mFloatResult;
|
||||||
@ -57,12 +59,12 @@ static cell AMX_NATIVE_CALL fm_return(AMX *amx, cell *params)
|
|||||||
}
|
}
|
||||||
case FMV_FLOAT:
|
case FMV_FLOAT:
|
||||||
{
|
{
|
||||||
mFloatResult = amx_ctof(params[2]);
|
mFloatResult = amx_ctof(*(MF_GetAmxAddr(amx,params[2])));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case FMV_CELL:
|
case FMV_CELL:
|
||||||
{
|
{
|
||||||
mCellResult = params[2];
|
mCellResult = *(MF_GetAmxAddr(amx,params[2]));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
@ -819,11 +821,17 @@ static cell AMX_NATIVE_CALL unregister_forward(AMX *amx, cell *params)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void *patchAddr = NULL;
|
||||||
|
|
||||||
CVector<int> *peng = NULL;
|
CVector<int> *peng = NULL;
|
||||||
if (post)
|
if (post)
|
||||||
|
{
|
||||||
peng = &(EnginePost[func]);
|
peng = &(EnginePost[func]);
|
||||||
else
|
patchAddr = EngineAddrsPost[func];
|
||||||
|
} else {
|
||||||
peng = &(Engine[func]);
|
peng = &(Engine[func]);
|
||||||
|
patchAddr = EngineAddrs[func];
|
||||||
|
}
|
||||||
|
|
||||||
CVector<int>::iterator begin, end=peng->end();
|
CVector<int>::iterator begin, end=peng->end();
|
||||||
|
|
||||||
@ -832,10 +840,12 @@ static cell AMX_NATIVE_CALL unregister_forward(AMX *amx, cell *params)
|
|||||||
if ((*begin) == func_id)
|
if ((*begin) == func_id)
|
||||||
{
|
{
|
||||||
peng->erase(begin);
|
peng->erase(begin);
|
||||||
if (!peng->size())
|
if (!peng->size()
|
||||||
|
&& patchAddr != NULL
|
||||||
|
&& func != FM_ServerDeactivate)
|
||||||
{
|
{
|
||||||
//:TODO: we should probably clear this here!
|
/* Clear out this forward if we no longer need it */
|
||||||
//but, we have no reverse lookup possible.
|
*(void **)patchAddr = NULL;
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -999,19 +1009,19 @@ static cell AMX_NATIVE_CALL register_forward(AMX *amx, cell *params)
|
|||||||
ENGHOOK(TraceLine);
|
ENGHOOK(TraceLine);
|
||||||
break;
|
break;
|
||||||
case FM_TraceToss:
|
case FM_TraceToss:
|
||||||
fId = MF_RegisterSPForwardByName(amx, funcname, FP_CELL, FP_CELL, FP_DONE);
|
fId = MF_RegisterSPForwardByName(amx, funcname, FP_CELL, FP_CELL, FP_CELL, FP_DONE);
|
||||||
ENGHOOK(TraceToss);
|
ENGHOOK(TraceToss);
|
||||||
break;
|
break;
|
||||||
case FM_TraceMonsterHull:
|
case FM_TraceMonsterHull:
|
||||||
fId = MF_RegisterSPForwardByName(amx, funcname, FP_CELL, FP_ARRAY, FP_ARRAY, FP_CELL, FP_CELL, FP_DONE);
|
fId = MF_RegisterSPForwardByName(amx, funcname, FP_CELL, FP_ARRAY, FP_ARRAY, FP_CELL, FP_CELL, FP_CELL, FP_DONE);
|
||||||
ENGHOOK(TraceMonsterHull);
|
ENGHOOK(TraceMonsterHull);
|
||||||
break;
|
break;
|
||||||
case FM_TraceHull:
|
case FM_TraceHull:
|
||||||
fId = MF_RegisterSPForwardByName(amx, funcname, FP_ARRAY, FP_ARRAY, FP_CELL, FP_CELL, FP_CELL, FP_DONE);
|
fId = MF_RegisterSPForwardByName(amx, funcname, FP_ARRAY, FP_ARRAY, FP_CELL, FP_CELL, FP_CELL, FP_CELL, FP_DONE);
|
||||||
ENGHOOK(TraceHull);
|
ENGHOOK(TraceHull);
|
||||||
break;
|
break;
|
||||||
case FM_TraceModel:
|
case FM_TraceModel:
|
||||||
fId = MF_RegisterSPForwardByName(amx, funcname, FP_ARRAY, FP_ARRAY, FP_CELL, FP_CELL, FP_DONE);
|
fId = MF_RegisterSPForwardByName(amx, funcname, FP_ARRAY, FP_ARRAY, FP_CELL, FP_CELL, FP_CELL, FP_DONE);
|
||||||
ENGHOOK(TraceModel);
|
ENGHOOK(TraceModel);
|
||||||
break;
|
break;
|
||||||
case FM_TraceTexture:
|
case FM_TraceTexture:
|
||||||
|
@ -169,6 +169,8 @@ enum {
|
|||||||
|
|
||||||
extern CVector<int> Engine[];
|
extern CVector<int> Engine[];
|
||||||
extern CVector<int> EnginePost[];
|
extern CVector<int> EnginePost[];
|
||||||
|
extern void *EngineAddrs[ENGFUNC_NUM+10];
|
||||||
|
extern void *EngineAddrsPost[ENGFUNC_NUM+10];
|
||||||
extern cell mCellResult;
|
extern cell mCellResult;
|
||||||
extern float mFloatResult;
|
extern float mFloatResult;
|
||||||
extern const char *mStringResult;
|
extern const char *mStringResult;
|
||||||
|
@ -810,11 +810,13 @@
|
|||||||
#define ENGHOOK(pfnCall) \
|
#define ENGHOOK(pfnCall) \
|
||||||
if (post) \
|
if (post) \
|
||||||
{ \
|
{ \
|
||||||
|
EngineAddrsPost[FM_##pfnCall] = &engtable->pfn##pfnCall; \
|
||||||
if (engtable->pfn##pfnCall == NULL) \
|
if (engtable->pfn##pfnCall == NULL) \
|
||||||
engtable->pfn##pfnCall = pfnCall##_post; \
|
engtable->pfn##pfnCall = pfnCall##_post; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
|
EngineAddrs[FM_##pfnCall] = &engtable->pfn##pfnCall; \
|
||||||
if (engtable->pfn##pfnCall == NULL) \
|
if (engtable->pfn##pfnCall == NULL) \
|
||||||
engtable->pfn##pfnCall = pfnCall; \
|
engtable->pfn##pfnCall = pfnCall; \
|
||||||
}
|
}
|
||||||
@ -822,11 +824,13 @@
|
|||||||
#define DLLHOOK(pfnCall) \
|
#define DLLHOOK(pfnCall) \
|
||||||
if (post) \
|
if (post) \
|
||||||
{ \
|
{ \
|
||||||
|
EngineAddrsPost[FM_##pfnCall] = &dlltable->pfn##pfnCall; \
|
||||||
if (dlltable->pfn##pfnCall == NULL) \
|
if (dlltable->pfn##pfnCall == NULL) \
|
||||||
dlltable->pfn##pfnCall = pfnCall##_post; \
|
dlltable->pfn##pfnCall = pfnCall##_post; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
|
EngineAddrs[FM_##pfnCall] = &dlltable->pfn##pfnCall; \
|
||||||
if (dlltable->pfn##pfnCall == NULL) \
|
if (dlltable->pfn##pfnCall == NULL) \
|
||||||
dlltable->pfn##pfnCall = pfnCall; \
|
dlltable->pfn##pfnCall = pfnCall; \
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
// Module info
|
// Module info
|
||||||
#define MODULE_NAME "FakeMeta"
|
#define MODULE_NAME "FakeMeta"
|
||||||
#define MODULE_VERSION "1.76b"
|
#define MODULE_VERSION "1.76d"
|
||||||
#define MODULE_AUTHOR "AMX Mod X Dev Team"
|
#define MODULE_AUTHOR "AMX Mod X Dev Team"
|
||||||
#define MODULE_URL "http://www.amxmodx.org"
|
#define MODULE_URL "http://www.amxmodx.org"
|
||||||
#define MODULE_LOGTAG "FAKEMETA"
|
#define MODULE_LOGTAG "FAKEMETA"
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
// Module info
|
// Module info
|
||||||
#define MODULE_NAME "NS"
|
#define MODULE_NAME "NS"
|
||||||
#define MODULE_VERSION "1.76"
|
#define MODULE_VERSION "1.76d"
|
||||||
#define MODULE_AUTHOR "Steve Dudenhoeffer"
|
#define MODULE_AUTHOR "Steve Dudenhoeffer"
|
||||||
#define MODULE_URL "http://www.amxmodx.org/"
|
#define MODULE_URL "http://www.amxmodx.org/"
|
||||||
#define MODULE_LOGTAG "NS"
|
#define MODULE_LOGTAG "NS"
|
||||||
|
@ -6,56 +6,56 @@
|
|||||||
|
|
||||||
// Offsets (used in NPData.cpp)
|
// Offsets (used in NPData.cpp)
|
||||||
|
|
||||||
#define OFFSET_WIN_RESOURCES 1816 //454 * 4
|
#define OFFSET_WIN_RESOURCES 1816 //454 * 4 // est: 454 // CONFIRMED
|
||||||
#define OFFSET_LIN_RESOURCES 1836 //459 * 4
|
#define OFFSET_LIN_RESOURCES 1836 //459 * 4 // no change
|
||||||
|
|
||||||
#define OFFSET_WIN_WEAPDMG 400 //100 * 4
|
#define OFFSET_WIN_WEAPDMG 408 //100 * 4 // est: 102 // CONFIRMED
|
||||||
#define OFFSET_LIN_WEAPDMG 416 //104 * 4
|
#define OFFSET_LIN_WEAPDMG 424 //106 * 4 // Changed + 8 Bytes
|
||||||
|
|
||||||
#define OFFSET_WIN_WEAPRANGE 396 //99 * 4
|
#define OFFSET_WIN_WEAPRANGE 404 //99 * 4 // est: 101 // CONFIRMED
|
||||||
#define OFFSET_LIN_WEAPRANGE 412 //103 * 4
|
#define OFFSET_LIN_WEAPRANGE 420 //105 * 4 // Changed + 8 Bytes
|
||||||
|
|
||||||
#define OFFSET_WIN_WEAPCLIP 364 //91 * 4
|
#define OFFSET_WIN_WEAPCLIP 364 //91 * 4 // est: 91 // CONFIRMED
|
||||||
#define OFFSET_LIN_WEAPCLIP 380 //95 * 4
|
#define OFFSET_LIN_WEAPCLIP 380 //95 * 4 // no change
|
||||||
|
|
||||||
#define OFFSET_WIN_HIVE_TRAIT 484 //121 * 4
|
#define OFFSET_WIN_HIVE_TRAIT 488 //121 * 4 // est: 122 // CONFIRMED
|
||||||
#define OFFSET_LIN_HIVE_TRAIT 500 //125 * 4
|
#define OFFSET_LIN_HIVE_TRAIT 504 //126 * 4 // Changed + 4 bytes
|
||||||
|
|
||||||
#define OFFSET_WIN_SCORE 6556 //1639 * 4
|
#define OFFSET_WIN_SCORE 6588 //1639 * 4 // est: 1647 // CONFIRMED
|
||||||
#define OFFSET_LIN_SCORE 6576 //1644 * 4
|
#define OFFSET_LIN_SCORE 6608 //1644 * 4 // Changed + 32 bytes
|
||||||
|
|
||||||
#define OFFSET_WIN_EXP 6480 //1620 * 4
|
#define OFFSET_WIN_EXP 6512 //1620 * 4 // est: 1628 // CONFIRMED
|
||||||
#define OFFSET_LIN_EXP 6500 //1625 * 4
|
#define OFFSET_LIN_EXP 6532 //1633 * 4 // Changed + 32 bytes
|
||||||
|
|
||||||
#define OFFSET_WIN_POINTS 6488 //1622 * 4
|
#define OFFSET_WIN_POINTS 6520 //1622 * 4 // est: 1630 // CONFIRMED
|
||||||
#define OFFSET_LIN_POINTS 6508 //1627 * 4
|
#define OFFSET_LIN_POINTS 6540 //1635 * 4 // Changed + 32 bytes
|
||||||
|
|
||||||
#define OFFSET_WIN_AMMO_LMG 1116 //279 * 4
|
#define OFFSET_WIN_AMMO_LMG 1116 //279 * 4 // est: 279 // CONFIRMED
|
||||||
#define OFFSET_LIN_AMMO_LMG 1136 //284 * 4
|
#define OFFSET_LIN_AMMO_LMG 1136 //284 * 4 // no change
|
||||||
|
|
||||||
#define OFFSET_WIN_AMMO_PISTOL 1120 //280 * 4
|
#define OFFSET_WIN_AMMO_PISTOL 1120 //280 * 4 // est: 280 // CONFIRMED
|
||||||
#define OFFSET_LIN_AMMO_PISTOL 1140 //285 * 4
|
#define OFFSET_LIN_AMMO_PISTOL 1140 //285 * 4 // no change
|
||||||
|
|
||||||
#define OFFSET_WIN_AMMO_SHOTGUN 1124 //281 * 4
|
#define OFFSET_WIN_AMMO_SHOTGUN 1124 //281 * 4 // est: 281 // CONFIRMED
|
||||||
#define OFFSET_LIN_AMMO_SHOTGUN 1144 //286 * 4
|
#define OFFSET_LIN_AMMO_SHOTGUN 1144 //286 * 4 // no change
|
||||||
|
|
||||||
#define OFFSET_WIN_AMMO_HMG 1128 //282 * 4
|
#define OFFSET_WIN_AMMO_HMG 1128 //282 * 4 // est: 282 // CONFIRMED
|
||||||
#define OFFSET_LIN_AMMO_HMG 1148 //287 * 4
|
#define OFFSET_LIN_AMMO_HMG 1148 //287 * 4 // no change
|
||||||
|
|
||||||
#define OFFSET_WIN_AMMO_GL 1132 //283 * 4
|
#define OFFSET_WIN_AMMO_GL 1132 //283 * 4 // est: 283 // CONFIRMED
|
||||||
#define OFFSET_LIN_AMMO_GL 1152 //288 * 4
|
#define OFFSET_LIN_AMMO_GL 1152 //288 * 4 // no change
|
||||||
|
|
||||||
#define OFFSET_WIN_AMMO_HG 1136 //284 * 4
|
#define OFFSET_WIN_AMMO_HG 1136 //284 * 4 // est: 284 // CONFIRMED
|
||||||
#define OFFSET_LIN_AMMO_HG 1156 //289 * 4
|
#define OFFSET_LIN_AMMO_HG 1156 //289 * 4 // no change
|
||||||
|
|
||||||
#define OFFSET_WIN_DEATHS 1380 //345 * 4
|
#define OFFSET_WIN_DEATHS 1380 //345 * 4 // est: 345 // CONFIRMED
|
||||||
#define OFFSET_LIN_DEATHS 1400 //349 * 4
|
#define OFFSET_LIN_DEATHS 1400 //350 * 4 // no change
|
||||||
|
|
||||||
#define OFFSET_WIN_STRUCTOWNER 324 //81 * 4
|
#define OFFSET_WIN_STRUCTOWNER 324 //81 * 4 // est: 81 // CONFIRMED
|
||||||
#define OFFSET_LIN_STRUCTOWNER 340 //85 * 4
|
#define OFFSET_LIN_STRUCTOWNER 340 //85 * 4 // no change
|
||||||
|
|
||||||
#define OFFSET_WIN_HIVEABILITY 6220 //1555 * 4
|
#define OFFSET_WIN_HIVEABILITY 6248 //1555 * 4 // est: 1562 // CONFIRMED
|
||||||
#define OFFSET_LIN_HIVEABILITY 6240 //1560 * 4
|
#define OFFSET_LIN_HIVEABILITY 6268 //1567 * 4 // Changed + 28 bytes
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
@ -32,8 +32,8 @@
|
|||||||
-M
|
-M
|
||||||
-$M16384,1048576
|
-$M16384,1048576
|
||||||
-K$00400000
|
-K$00400000
|
||||||
-LE"c:\program files\borland\delphi7\Projects\Bpl"
|
-LE"c:\program files (x86)\borland\delphi7\Projects\Bpl"
|
||||||
-LN"c:\program files\borland\delphi7\Projects\Bpl"
|
-LN"c:\program files (x86)\borland\delphi7\Projects\Bpl"
|
||||||
-DmadExcept
|
-DmadExcept
|
||||||
-w-UNSAFE_TYPE
|
-w-UNSAFE_TYPE
|
||||||
-w-UNSAFE_CODE
|
-w-UNSAFE_CODE
|
||||||
|
Binary file not shown.
@ -26,6 +26,8 @@ type TPAWNCompileThread = class(TThread)
|
|||||||
|
|
||||||
function DoCompilePAWN(eFlags: Integer): Boolean;
|
function DoCompilePAWN(eFlags: Integer): Boolean;
|
||||||
|
|
||||||
|
var Compiling: Boolean;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses UnitfrmSettings, UnitLanguages, UnitMainTools, UnitfrmMain,
|
uses UnitfrmSettings, UnitLanguages, UnitMainTools, UnitfrmMain,
|
||||||
@ -35,12 +37,14 @@ function DoCompilePAWN(eFlags: Integer): Boolean;
|
|||||||
var eFile: string;
|
var eFile: string;
|
||||||
begin
|
begin
|
||||||
Result := False;
|
Result := False;
|
||||||
|
if (Compiling) then exit;
|
||||||
if not FileExists(frmSettings.txtPAWNCompilerPath.Text) then begin
|
if not FileExists(frmSettings.txtPAWNCompilerPath.Text) then begin
|
||||||
MessageBox(frmMain.Handle, PChar(lPAWNCompilerNotFound), PChar(Application.Title), MB_ICONERROR);
|
MessageBox(frmMain.Handle, PChar(lPAWNCompilerNotFound), PChar(Application.Title), MB_ICONERROR);
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Screen.Cursor := crHourGlass;
|
Screen.Cursor := crHourGlass;
|
||||||
|
Compiling := True;
|
||||||
if (ActiveDoc.Untitled) then
|
if (ActiveDoc.Untitled) then
|
||||||
eFile := ExtractFilePath(ParamStr(0)) + 'Untitled.sma'
|
eFile := ExtractFilePath(ParamStr(0)) + 'Untitled.sma'
|
||||||
else
|
else
|
||||||
@ -226,6 +230,7 @@ begin
|
|||||||
CloseHandle(PipeErrorsWrite);
|
CloseHandle(PipeErrorsWrite);
|
||||||
end;
|
end;
|
||||||
Screen.Cursor := crDefault;
|
Screen.Cursor := crDefault;
|
||||||
|
Compiling := False;
|
||||||
Output.Free;
|
Output.Free;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ interface
|
|||||||
|
|
||||||
uses
|
uses
|
||||||
SysUtils, Windows, Messages, Classes, Graphics, Controls,
|
SysUtils, Windows, Messages, Classes, Graphics, Controls,
|
||||||
StdCtrls, ExtCtrls, Forms, OleCtrls, SHDocVw_TLB, ActiveX;
|
StdCtrls, ExtCtrls, Forms, OleCtrls, SHDocVw, ActiveX;
|
||||||
|
|
||||||
type
|
type
|
||||||
TfrmHTMLPreview = class(TForm)
|
TfrmHTMLPreview = class(TForm)
|
||||||
|
@ -730,11 +730,12 @@ object frmMain: TfrmMain
|
|||||||
Top = 72
|
Top = 72
|
||||||
Width = 885
|
Width = 885
|
||||||
RightClickSelect = False
|
RightClickSelect = False
|
||||||
|
Painter = mtpDocuments
|
||||||
Tabs = <
|
Tabs = <
|
||||||
item
|
item
|
||||||
Caption = '< 1 Untitled.sma >'
|
Caption = '< 1 Untitled.sma >'
|
||||||
|
Selected = True
|
||||||
end>
|
end>
|
||||||
Painter = mtpDocuments
|
|
||||||
OnTabClosing = tbDocsTabClosing
|
OnTabClosing = tbDocsTabClosing
|
||||||
OnTabSelected = tbDocsTabSelected
|
OnTabSelected = tbDocsTabSelected
|
||||||
OnMouseDown = tbDocsMouseDown
|
OnMouseDown = tbDocsMouseDown
|
||||||
@ -937,6 +938,7 @@ object frmMain: TfrmMain
|
|||||||
Top = 26
|
Top = 26
|
||||||
Width = 191
|
Width = 191
|
||||||
Height = 199
|
Height = 199
|
||||||
|
Style = isItemPainter
|
||||||
Align = alClient
|
Align = alClient
|
||||||
Divider = 110
|
Divider = 110
|
||||||
ItemHeight = 16
|
ItemHeight = 16
|
||||||
@ -7826,7 +7828,32 @@ object frmMain: TfrmMain
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
object JvInspectorDotNETPainter: TJvInspectorDotNETPainter
|
object JvInspectorDotNETPainter: TJvInspectorDotNETPainter
|
||||||
|
CategoryFont.Charset = DEFAULT_CHARSET
|
||||||
|
CategoryFont.Color = clBtnText
|
||||||
|
CategoryFont.Height = -11
|
||||||
|
CategoryFont.Name = 'MS Sans Serif'
|
||||||
|
CategoryFont.Style = []
|
||||||
|
NameFont.Charset = DEFAULT_CHARSET
|
||||||
|
NameFont.Color = clWindowText
|
||||||
|
NameFont.Height = -11
|
||||||
|
NameFont.Name = 'MS Sans Serif'
|
||||||
|
NameFont.Style = []
|
||||||
|
ValueFont.Charset = DEFAULT_CHARSET
|
||||||
|
ValueFont.Color = clWindowText
|
||||||
|
ValueFont.Height = -11
|
||||||
|
ValueFont.Name = 'MS Sans Serif'
|
||||||
|
ValueFont.Style = []
|
||||||
DrawNameEndEllipsis = True
|
DrawNameEndEllipsis = True
|
||||||
|
HideSelectFont.Charset = DEFAULT_CHARSET
|
||||||
|
HideSelectFont.Color = clHighlightText
|
||||||
|
HideSelectFont.Height = -11
|
||||||
|
HideSelectFont.Name = 'MS Sans Serif'
|
||||||
|
HideSelectFont.Style = []
|
||||||
|
SelectedFont.Charset = DEFAULT_CHARSET
|
||||||
|
SelectedFont.Color = clHighlightText
|
||||||
|
SelectedFont.Height = -11
|
||||||
|
SelectedFont.Name = 'MS Sans Serif'
|
||||||
|
SelectedFont.Style = []
|
||||||
Left = 662
|
Left = 662
|
||||||
Top = 36
|
Top = 36
|
||||||
end
|
end
|
||||||
|
@ -21,7 +21,7 @@ uses
|
|||||||
JvInspector, JvExControls, JvPluginManager, JvgLanguageLoader,
|
JvInspector, JvExControls, JvPluginManager, JvgLanguageLoader,
|
||||||
JvWndProcHook, CommCtrl, JvPageList, JvPageListTreeView,
|
JvWndProcHook, CommCtrl, JvPageList, JvPageListTreeView,
|
||||||
SciSearchReplaceBase, SpTBXControls, JvTabBar, TB2ExtItems, SpTBXEditors,
|
SciSearchReplaceBase, SpTBXControls, JvTabBar, TB2ExtItems, SpTBXEditors,
|
||||||
TBXLists, SpTBXLists;
|
TBXLists, SpTBXLists, JvComponentBase;
|
||||||
|
|
||||||
type
|
type
|
||||||
TfrmMain = class(TForm)
|
TfrmMain = class(TForm)
|
||||||
|
@ -3,4 +3,4 @@ source = R:\amxmodx
|
|||||||
makeopts =
|
makeopts =
|
||||||
output = c:\real\done
|
output = c:\real\done
|
||||||
devenv = C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE\devenv.com
|
devenv = C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE\devenv.com
|
||||||
release = amxmodx-1.76c
|
release = amxmodx-1.76d
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
; Licensed under the GNU General Public License
|
; Licensed under the GNU General Public License
|
||||||
; Originally written by -=HaXoMaTiC=-
|
; Originally written by -=HaXoMaTiC=-
|
||||||
!define PRODUCT_NAME "AMX Mod X Installer"
|
!define PRODUCT_NAME "AMX Mod X Installer"
|
||||||
!define PRODUCT_VERSION "1.76c"
|
!define PRODUCT_VERSION "1.76d"
|
||||||
!define PRODUCT_PUBLISHER "AMX Mod X Dev Team"
|
!define PRODUCT_PUBLISHER "AMX Mod X Dev Team"
|
||||||
!define PRODUCT_WEB_SITE "http://www.amxmodx.org/"
|
!define PRODUCT_WEB_SITE "http://www.amxmodx.org/"
|
||||||
!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\Installer.exe"
|
!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\Installer.exe"
|
||||||
@ -103,337 +103,337 @@ Section "MainSection" SEC01
|
|||||||
File "installer\files\amxxstudio\plugins\Hello_World Delphi\HelloWorld.res"
|
File "installer\files\amxxstudio\plugins\Hello_World Delphi\HelloWorld.res"
|
||||||
File "installer\files\amxxstudio\plugins\Hello_World Delphi\studioapi.pas"
|
File "installer\files\amxxstudio\plugins\Hello_World Delphi\studioapi.pas"
|
||||||
SetOutPath "$INSTDIR\files\base\configs"
|
SetOutPath "$INSTDIR\files\base\configs"
|
||||||
File "installer\files\base\configs\amxx.cfg"
|
File "installer\files\base\addons\amxmodx\configs\amxx.cfg"
|
||||||
File "installer\files\base\configs\clcmds.ini"
|
File "installer\files\base\addons\amxmodx\configs\clcmds.ini"
|
||||||
File "installer\files\base\configs\cmds.ini"
|
File "installer\files\base\addons\amxmodx\configs\cmds.ini"
|
||||||
File "installer\files\base\configs\configs.ini"
|
File "installer\files\base\addons\amxmodx\configs\configs.ini"
|
||||||
File "installer\files\base\configs\conmotd.txt"
|
File "installer\files\base\addons\amxmodx\configs\conmotd.txt"
|
||||||
File "installer\files\base\configs\core.ini"
|
File "installer\files\base\addons\amxmodx\configs\core.ini"
|
||||||
File "installer\files\base\configs\custommenuitems.cfg"
|
File "installer\files\base\addons\amxmodx\configs\custommenuitems.cfg"
|
||||||
File "installer\files\base\configs\cvars.ini"
|
File "installer\files\base\addons\amxmodx\configs\cvars.ini"
|
||||||
File "installer\files\base\configs\maps.ini"
|
File "installer\files\base\addons\amxmodx\configs\maps.ini"
|
||||||
File "installer\files\base\configs\modules.ini"
|
File "installer\files\base\addons\amxmodx\configs\modules.ini"
|
||||||
File "installer\files\base\configs\plugins.ini"
|
File "installer\files\base\addons\amxmodx\configs\plugins.ini"
|
||||||
File "installer\files\base\configs\speech.ini"
|
File "installer\files\base\addons\amxmodx\configs\speech.ini"
|
||||||
File "installer\files\base\configs\sql.cfg"
|
File "installer\files\base\addons\amxmodx\configs\sql.cfg"
|
||||||
File "installer\files\base\configs\users.ini"
|
File "installer\files\base\addons\amxmodx\configs\users.ini"
|
||||||
SetOutPath "$INSTDIR\files\base\data"
|
SetOutPath "$INSTDIR\files\base\data"
|
||||||
File "installer\files\base\data\GeoIP.dat"
|
File "installer\files\base\addons\amxmodx\data\GeoIP.dat"
|
||||||
SetOutPath "$INSTDIR\files\base\data\lang"
|
SetOutPath "$INSTDIR\files\base\data\lang"
|
||||||
File "installer\files\base\data\lang\admin.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\admin.txt"
|
||||||
File "installer\files\base\data\lang\adminchat.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\adminchat.txt"
|
||||||
File "installer\files\base\data\lang\admincmd.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\admincmd.txt"
|
||||||
File "installer\files\base\data\lang\adminhelp.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\adminhelp.txt"
|
||||||
File "installer\files\base\data\lang\adminslots.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\adminslots.txt"
|
||||||
File "installer\files\base\data\lang\adminvote.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\adminvote.txt"
|
||||||
File "installer\files\base\data\lang\antiflood.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\antiflood.txt"
|
||||||
File "installer\files\base\data\lang\cmdmenu.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\cmdmenu.txt"
|
||||||
File "installer\files\base\data\lang\common.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\common.txt"
|
||||||
File "installer\files\base\data\lang\imessage.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\imessage.txt"
|
||||||
File "installer\files\base\data\lang\languages.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\languages.txt"
|
||||||
File "installer\files\base\data\lang\mapchooser.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\mapchooser.txt"
|
||||||
File "installer\files\base\data\lang\mapsmenu.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\mapsmenu.txt"
|
||||||
File "installer\files\base\data\lang\menufront.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\menufront.txt"
|
||||||
File "installer\files\base\data\lang\miscstats.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\miscstats.txt"
|
||||||
File "installer\files\base\data\lang\multilingual.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\multilingual.txt"
|
||||||
File "installer\files\base\data\lang\nextmap.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\nextmap.txt"
|
||||||
File "installer\files\base\data\lang\pausecfg.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\pausecfg.txt"
|
||||||
File "installer\files\base\data\lang\plmenu.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\plmenu.txt"
|
||||||
File "installer\files\base\data\lang\restmenu.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\restmenu.txt"
|
||||||
File "installer\files\base\data\lang\scrollmsg.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\scrollmsg.txt"
|
||||||
File "installer\files\base\data\lang\statscfg.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\statscfg.txt"
|
||||||
File "installer\files\base\data\lang\statsx.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\statsx.txt"
|
||||||
File "installer\files\base\data\lang\stats_dod.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\stats_dod.txt"
|
||||||
File "installer\files\base\data\lang\telemenu.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\telemenu.txt"
|
||||||
File "installer\files\base\data\lang\time.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\time.txt"
|
||||||
File "installer\files\base\data\lang\timeleft.txt"
|
File "installer\files\base\addons\amxmodx\data\lang\timeleft.txt"
|
||||||
SetOutPath "$INSTDIR\files\base\dlls"
|
SetOutPath "$INSTDIR\files\base\dlls"
|
||||||
File "installer\files\base\dlls\amxmodx_mm.dll"
|
File "installer\files\base\addons\amxmodx\dlls\amxmodx_mm.dll"
|
||||||
File "installer\files\base\dlls\amxmodx_mm_i386.so"
|
File "installer\files\base\addons\amxmodx\dlls\amxmodx_mm_i386.so"
|
||||||
File "installer\files\base\dlls\metamod.dll"
|
File "installer\files\base\addons\amxmodx\dlls\metamod.dll"
|
||||||
File "installer\files\base\dlls\metamod_i386.so"
|
File "installer\files\base\addons\amxmodx\dlls\metamod_i386.so"
|
||||||
SetOutPath "$INSTDIR\files\base\modules"
|
SetOutPath "$INSTDIR\files\base\modules"
|
||||||
File "installer\files\base\modules\nvault_amxx.dll"
|
File "installer\files\base\addons\amxmodx\modules\nvault_amxx.dll"
|
||||||
File "installer\files\base\modules\nvault_amxx_i386.so"
|
File "installer\files\base\addons\amxmodx\modules\nvault_amxx_i386.so"
|
||||||
File "installer\files\base\modules\engine_amxx.dll"
|
File "installer\files\base\addons\amxmodx\modules\engine_amxx.dll"
|
||||||
File "installer\files\base\modules\engine_amxx_i386.so"
|
File "installer\files\base\addons\amxmodx\modules\engine_amxx_i386.so"
|
||||||
File "installer\files\base\modules\fakemeta_amxx.dll"
|
File "installer\files\base\addons\amxmodx\modules\fakemeta_amxx.dll"
|
||||||
File "installer\files\base\modules\fakemeta_amxx_i386.so"
|
File "installer\files\base\addons\amxmodx\modules\fakemeta_amxx_i386.so"
|
||||||
File "installer\files\base\modules\fun_amxx.dll"
|
File "installer\files\base\addons\amxmodx\modules\fun_amxx.dll"
|
||||||
File "installer\files\base\modules\fun_amxx_i386.so"
|
File "installer\files\base\addons\amxmodx\modules\fun_amxx_i386.so"
|
||||||
File "installer\files\base\modules\geoip_amxx.dll"
|
File "installer\files\base\addons\amxmodx\modules\geoip_amxx.dll"
|
||||||
File "installer\files\base\modules\geoip_amxx_i386.so"
|
File "installer\files\base\addons\amxmodx\modules\geoip_amxx_i386.so"
|
||||||
File "installer\files\base\modules\sqlite_amxx.dll"
|
File "installer\files\base\addons\amxmodx\modules\sqlite_amxx.dll"
|
||||||
File "installer\files\base\modules\sqlite_amxx_i386.so"
|
File "installer\files\base\addons\amxmodx\modules\sqlite_amxx_i386.so"
|
||||||
File "installer\files\base\modules\mysql_amxx.dll"
|
File "installer\files\base\addons\amxmodx\modules\mysql_amxx.dll"
|
||||||
File "installer\files\base\modules\mysql_amxx_i386.so"
|
File "installer\files\base\addons\amxmodx\modules\mysql_amxx_i386.so"
|
||||||
File "installer\files\base\modules\regex_amxx.dll"
|
File "installer\files\base\addons\amxmodx\modules\regex_amxx.dll"
|
||||||
File "installer\files\base\modules\regex_amxx_i386.so"
|
File "installer\files\base\addons\amxmodx\modules\regex_amxx_i386.so"
|
||||||
File "installer\files\base\modules\sockets_amxx.dll"
|
File "installer\files\base\addons\amxmodx\modules\sockets_amxx.dll"
|
||||||
File "installer\files\base\modules\sockets_amxx_i386.so"
|
File "installer\files\base\addons\amxmodx\modules\sockets_amxx_i386.so"
|
||||||
SetOutPath "$INSTDIR\files\base\plugins"
|
SetOutPath "$INSTDIR\files\base\plugins"
|
||||||
File "installer\files\base\plugins\admin.amxx"
|
File "installer\files\base\addons\amxmodx\plugins\admin.amxx"
|
||||||
File "installer\files\base\plugins\adminchat.amxx"
|
File "installer\files\base\addons\amxmodx\plugins\adminchat.amxx"
|
||||||
File "installer\files\base\plugins\admincmd.amxx"
|
File "installer\files\base\addons\amxmodx\plugins\admincmd.amxx"
|
||||||
File "installer\files\base\plugins\adminhelp.amxx"
|
File "installer\files\base\addons\amxmodx\plugins\adminhelp.amxx"
|
||||||
File "installer\files\base\plugins\adminslots.amxx"
|
File "installer\files\base\addons\amxmodx\plugins\adminslots.amxx"
|
||||||
File "installer\files\base\plugins\adminvote.amxx"
|
File "installer\files\base\addons\amxmodx\plugins\adminvote.amxx"
|
||||||
File "installer\files\base\plugins\admin_sql.amxx"
|
File "installer\files\base\addons\amxmodx\plugins\admin_sql.amxx"
|
||||||
File "installer\files\base\plugins\amxmod_compat.amxx"
|
File "installer\files\base\addons\amxmodx\plugins\amxmod_compat.amxx"
|
||||||
File "installer\files\base\plugins\antiflood.amxx"
|
File "installer\files\base\addons\amxmodx\plugins\antiflood.amxx"
|
||||||
File "installer\files\base\plugins\cmdmenu.amxx"
|
File "installer\files\base\addons\amxmodx\plugins\cmdmenu.amxx"
|
||||||
File "installer\files\base\plugins\imessage.amxx"
|
File "installer\files\base\addons\amxmodx\plugins\imessage.amxx"
|
||||||
File "installer\files\base\plugins\mapchooser.amxx"
|
File "installer\files\base\addons\amxmodx\plugins\mapchooser.amxx"
|
||||||
File "installer\files\base\plugins\mapsmenu.amxx"
|
File "installer\files\base\addons\amxmodx\plugins\mapsmenu.amxx"
|
||||||
File "installer\files\base\plugins\menufront.amxx"
|
File "installer\files\base\addons\amxmodx\plugins\menufront.amxx"
|
||||||
File "installer\files\base\plugins\multilingual.amxx"
|
File "installer\files\base\addons\amxmodx\plugins\multilingual.amxx"
|
||||||
File "installer\files\base\plugins\nextmap.amxx"
|
File "installer\files\base\addons\amxmodx\plugins\nextmap.amxx"
|
||||||
File "installer\files\base\plugins\pausecfg.amxx"
|
File "installer\files\base\addons\amxmodx\plugins\pausecfg.amxx"
|
||||||
File "installer\files\base\plugins\plmenu.amxx"
|
File "installer\files\base\addons\amxmodx\plugins\plmenu.amxx"
|
||||||
File "installer\files\base\plugins\scrollmsg.amxx"
|
File "installer\files\base\addons\amxmodx\plugins\scrollmsg.amxx"
|
||||||
File "installer\files\base\plugins\statscfg.amxx"
|
File "installer\files\base\addons\amxmodx\plugins\statscfg.amxx"
|
||||||
File "installer\files\base\plugins\telemenu.amxx"
|
File "installer\files\base\addons\amxmodx\plugins\telemenu.amxx"
|
||||||
File "installer\files\base\plugins\timeleft.amxx"
|
File "installer\files\base\addons\amxmodx\plugins\timeleft.amxx"
|
||||||
SetOutPath "$INSTDIR\files\base\scripting"
|
SetOutPath "$INSTDIR\files\base\scripting"
|
||||||
File "installer\files\base\scripting\admin.sma"
|
File "installer\files\base\addons\amxmodx\scripting\admin.sma"
|
||||||
File "installer\files\base\scripting\adminchat.sma"
|
File "installer\files\base\addons\amxmodx\scripting\adminchat.sma"
|
||||||
File "installer\files\base\scripting\admincmd.sma"
|
File "installer\files\base\addons\amxmodx\scripting\admincmd.sma"
|
||||||
File "installer\files\base\scripting\adminhelp.sma"
|
File "installer\files\base\addons\amxmodx\scripting\adminhelp.sma"
|
||||||
File "installer\files\base\scripting\adminslots.sma"
|
File "installer\files\base\addons\amxmodx\scripting\adminslots.sma"
|
||||||
File "installer\files\base\scripting\adminvote.sma"
|
File "installer\files\base\addons\amxmodx\scripting\adminvote.sma"
|
||||||
File "installer\files\base\scripting\amxxpc"
|
File "installer\files\base\addons\amxmodx\scripting\amxxpc"
|
||||||
File "installer\files\base\scripting\amxxpc.exe"
|
File "installer\files\base\addons\amxmodx\scripting\amxxpc.exe"
|
||||||
File "installer\files\base\scripting\amxxpc32.dll"
|
File "installer\files\base\addons\amxmodx\scripting\amxxpc32.dll"
|
||||||
File "installer\files\base\scripting\amxxpc32.so"
|
File "installer\files\base\addons\amxmodx\scripting\amxxpc32.so"
|
||||||
File "installer\files\base\scripting\amxxpc64.dll"
|
File "installer\files\base\addons\amxmodx\scripting\amxxpc64.dll"
|
||||||
File "installer\files\base\scripting\amxxpc64.so"
|
File "installer\files\base\addons\amxmodx\scripting\amxxpc64.so"
|
||||||
File "installer\files\base\scripting\antiflood.sma"
|
File "installer\files\base\addons\amxmodx\scripting\antiflood.sma"
|
||||||
File "installer\files\base\scripting\cmdmenu.sma"
|
File "installer\files\base\addons\amxmodx\scripting\cmdmenu.sma"
|
||||||
File "installer\files\base\scripting\compile.exe"
|
File "installer\files\base\addons\amxmodx\scripting\compile.exe"
|
||||||
File "installer\files\base\scripting\compile.sh"
|
File "installer\files\base\addons\amxmodx\scripting\compile.sh"
|
||||||
File "installer\files\base\scripting\dlsym"
|
File "installer\files\base\addons\amxmodx\scripting\dlsym"
|
||||||
File "installer\files\base\scripting\dlsym64"
|
File "installer\files\base\addons\amxmodx\scripting\dlsym64"
|
||||||
File "installer\files\base\scripting\imessage.sma"
|
File "installer\files\base\addons\amxmodx\scripting\imessage.sma"
|
||||||
SetOutPath "$INSTDIR\files\base\scripting\include"
|
SetOutPath "$INSTDIR\files\base\addons\amxmodx\scripting\include"
|
||||||
File "installer\files\base\scripting\include\amxconst.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\amxconst.inc"
|
||||||
File "installer\files\base\scripting\include\amxmisc.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\amxmisc.inc"
|
||||||
File "installer\files\base\scripting\include\amxmodx.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\amxmodx.inc"
|
||||||
File "installer\files\base\scripting\include\core.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\core.inc"
|
||||||
File "installer\files\base\scripting\include\csstats.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\csstats.inc"
|
||||||
File "installer\files\base\scripting\include\cstrike.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\cstrike.inc"
|
||||||
File "installer\files\base\scripting\include\csx.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\csx.inc"
|
||||||
File "installer\files\base\scripting\include\dbi.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\dbi.inc"
|
||||||
File "installer\files\base\scripting\include\dodconst.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\dodconst.inc"
|
||||||
File "installer\files\base\scripting\include\dodfun.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\dodfun.inc"
|
||||||
File "installer\files\base\scripting\include\dodstats.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\dodstats.inc"
|
||||||
File "installer\files\base\scripting\include\dodx.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\dodx.inc"
|
||||||
File "installer\files\base\scripting\include\engine.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\engine.inc"
|
||||||
File "installer\files\base\scripting\include\engine_const.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\engine_const.inc"
|
||||||
File "installer\files\base\scripting\include\engine_stocks.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\engine_stocks.inc"
|
||||||
File "installer\files\base\scripting\include\esf.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\esf.inc"
|
||||||
File "installer\files\base\scripting\include\esf_const.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\esf_const.inc"
|
||||||
File "installer\files\base\scripting\include\fakemeta.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\fakemeta.inc"
|
||||||
File "installer\files\base\scripting\include\fakemeta_const.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\fakemeta_const.inc"
|
||||||
File "installer\files\base\scripting\include\fakemeta_stocks.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\fakemeta_stocks.inc"
|
||||||
File "installer\files\base\scripting\include\file.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\file.inc"
|
||||||
File "installer\files\base\scripting\include\float.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\float.inc"
|
||||||
File "installer\files\base\scripting\include\fun.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\fun.inc"
|
||||||
File "installer\files\base\scripting\include\geoip.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\geoip.inc"
|
||||||
File "installer\files\base\scripting\include\hlsdk_const.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\hlsdk_const.inc"
|
||||||
File "installer\files\base\scripting\include\lang.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\lang.inc"
|
||||||
File "installer\files\base\scripting\include\messages.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\messages.inc"
|
||||||
File "installer\files\base\scripting\include\message_const.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\message_const.inc"
|
||||||
File "installer\files\base\scripting\include\message_stocks.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\message_stocks.inc"
|
||||||
File "installer\files\base\scripting\include\ns.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\ns.inc"
|
||||||
File "installer\files\base\scripting\include\ns2amx.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\ns2amx.inc"
|
||||||
File "installer\files\base\scripting\include\ns_const.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\ns_const.inc"
|
||||||
File "installer\files\base\scripting\include\regex.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\regex.inc"
|
||||||
File "installer\files\base\scripting\include\nvault.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\nvault.inc"
|
||||||
File "installer\files\base\scripting\include\sockets.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\sockets.inc"
|
||||||
File "installer\files\base\scripting\include\sorting.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\sorting.inc"
|
||||||
File "installer\files\base\scripting\include\sqlx.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\sqlx.inc"
|
||||||
File "installer\files\base\scripting\include\string.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\string.inc"
|
||||||
File "installer\files\base\scripting\include\tfcconst.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\tfcconst.inc"
|
||||||
File "installer\files\base\scripting\include\tfcstats.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\tfcstats.inc"
|
||||||
File "installer\files\base\scripting\include\tfcx.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\tfcx.inc"
|
||||||
File "installer\files\base\scripting\include\time.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\time.inc"
|
||||||
File "installer\files\base\scripting\include\tsconst.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\tsconst.inc"
|
||||||
File "installer\files\base\scripting\include\tsfun.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\tsfun.inc"
|
||||||
File "installer\files\base\scripting\include\tsstats.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\tsstats.inc"
|
||||||
File "installer\files\base\scripting\include\tsx.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\tsx.inc"
|
||||||
File "installer\files\base\scripting\include\vault.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\vault.inc"
|
||||||
File "installer\files\base\scripting\include\vector.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\vector.inc"
|
||||||
File "installer\files\base\scripting\include\xs.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\xs.inc"
|
||||||
SetOutPath "$INSTDIR\files\base\scripting\include\amxmod_compat"
|
SetOutPath "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmod_compat"
|
||||||
File "installer\files\base\scripting\include\amxmod_compat\amxmod.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\amxmod_compat\amxmod.inc"
|
||||||
File "installer\files\base\scripting\include\amxmod_compat\maths.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\amxmod_compat\maths.inc"
|
||||||
File "installer\files\base\scripting\include\amxmod_compat\mysql.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\amxmod_compat\mysql.inc"
|
||||||
File "installer\files\base\scripting\include\amxmod_compat\translator.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\amxmod_compat\translator.inc"
|
||||||
File "installer\files\base\scripting\include\amxmod_compat\Vexd_Utilities.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\amxmod_compat\Vexd_Utilities.inc"
|
||||||
File "installer\files\base\scripting\include\amxmod_compat\VexdUM.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\amxmod_compat\VexdUM.inc"
|
||||||
File "installer\files\base\scripting\include\amxmod_compat\VexdUM_const.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\amxmod_compat\VexdUM_const.inc"
|
||||||
File "installer\files\base\scripting\include\amxmod_compat\VexdUM_stock.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\amxmod_compat\VexdUM_stock.inc"
|
||||||
File "installer\files\base\scripting\include\amxmod_compat\xtrafun.inc"
|
File "installer\files\base\addons\amxmodx\scripting\include\amxmod_compat\xtrafun.inc"
|
||||||
SetOutPath "$INSTDIR\files\base\scripting"
|
SetOutPath "$INSTDIR\files\base\scripting"
|
||||||
File "installer\files\base\scripting\mapchooser.sma"
|
File "installer\files\base\addons\amxmodx\scripting\mapchooser.sma"
|
||||||
File "installer\files\base\scripting\mapsmenu.sma"
|
File "installer\files\base\addons\amxmodx\scripting\mapsmenu.sma"
|
||||||
File "installer\files\base\scripting\menufront.sma"
|
File "installer\files\base\addons\amxmodx\scripting\menufront.sma"
|
||||||
File "installer\files\base\scripting\multilingual.sma"
|
File "installer\files\base\addons\amxmodx\scripting\multilingual.sma"
|
||||||
File "installer\files\base\scripting\nextmap.sma"
|
File "installer\files\base\addons\amxmodx\scripting\nextmap.sma"
|
||||||
File "installer\files\base\scripting\pausecfg.sma"
|
File "installer\files\base\addons\amxmodx\scripting\pausecfg.sma"
|
||||||
File "installer\files\base\scripting\plmenu.sma"
|
File "installer\files\base\addons\amxmodx\scripting\plmenu.sma"
|
||||||
File "installer\files\base\scripting\scrollmsg.sma"
|
File "installer\files\base\addons\amxmodx\scripting\scrollmsg.sma"
|
||||||
File "installer\files\base\scripting\statscfg.sma"
|
File "installer\files\base\addons\amxmodx\scripting\statscfg.sma"
|
||||||
File "installer\files\base\scripting\telemenu.sma"
|
File "installer\files\base\addons\amxmodx\scripting\telemenu.sma"
|
||||||
File "installer\files\base\scripting\timeleft.sma"
|
File "installer\files\base\addons\amxmodx\scripting\timeleft.sma"
|
||||||
SetOutPath "$INSTDIR\files\base\scripting\amxmod_compat"
|
SetOutPath "$INSTDIR\files\base\addons\amxmodx\scripting\amxmod_compat"
|
||||||
File "installer\files\base\scripting\amxmod_compat\amxmod_compat.sma"
|
File "installer\files\base\addons\amxmodx\scripting\amxmod_compat\amxmod_compat.sma"
|
||||||
File "installer\files\base\scripting\amxmod_compat\core.sma"
|
File "installer\files\base\addons\amxmodx\scripting\amxmod_compat\core.sma"
|
||||||
File "installer\files\base\scripting\amxmod_compat\mysql.sma"
|
File "installer\files\base\addons\amxmodx\scripting\amxmod_compat\mysql.sma"
|
||||||
File "installer\files\base\scripting\amxmod_compat\vexdum.sma"
|
File "installer\files\base\addons\amxmodx\scripting\amxmod_compat\vexdum.sma"
|
||||||
SetOutPath "$INSTDIR\files\base\scripting\testsuite"
|
SetOutPath "$INSTDIR\files\base\addons\amxmodx\scripting\testsuite"
|
||||||
File "installer\files\base\scripting\testsuite\callfunc_test.sma"
|
File "installer\files\base\addons\amxmodx\scripting\testsuite\callfunc_test.sma"
|
||||||
File "installer\files\base\scripting\testsuite\fakemeta_tests.sma"
|
File "installer\files\base\addons\amxmodx\scripting\testsuite\fakemeta_tests.sma"
|
||||||
File "installer\files\base\scripting\testsuite\fmttest.sma"
|
File "installer\files\base\addons\amxmodx\scripting\testsuite\fmttest.sma"
|
||||||
File "installer\files\base\scripting\testsuite\fwdtest1.sma"
|
File "installer\files\base\addons\amxmodx\scripting\testsuite\fwdtest1.sma"
|
||||||
File "installer\files\base\scripting\testsuite\fwdtest2.sma"
|
File "installer\files\base\addons\amxmodx\scripting\testsuite\fwdtest2.sma"
|
||||||
File "installer\files\base\scripting\testsuite\logtest.sma"
|
File "installer\files\base\addons\amxmodx\scripting\testsuite\logtest.sma"
|
||||||
File "installer\files\base\scripting\testsuite\menutest.sma"
|
File "installer\files\base\addons\amxmodx\scripting\testsuite\menutest.sma"
|
||||||
File "installer\files\base\scripting\testsuite\nvault_test.sma"
|
File "installer\files\base\addons\amxmodx\scripting\testsuite\nvault_test.sma"
|
||||||
File "installer\files\base\scripting\testsuite\sorttest.sma"
|
File "installer\files\base\addons\amxmodx\scripting\testsuite\sorttest.sma"
|
||||||
File "installer\files\base\scripting\testsuite\sqlxtest.sma"
|
File "installer\files\base\addons\amxmodx\scripting\testsuite\sqlxtest.sma"
|
||||||
File "installer\files\base\scripting\testsuite\sqlxtest.sq3"
|
File "installer\files\base\addons\amxmodx\scripting\testsuite\sqlxtest.sq3"
|
||||||
File "installer\files\base\scripting\testsuite\sqlxtest.sql"
|
File "installer\files\base\addons\amxmodx\scripting\testsuite\sqlxtest.sql"
|
||||||
SetOutPath "$INSTDIR\files\cstrike\configs"
|
SetOutPath "$INSTDIR\files\cstrike\configs"
|
||||||
File "installer\files\cstrike\configs\amxx.cfg"
|
File "installer\files\cstrike\addons\amxmodx\configs\amxx.cfg"
|
||||||
File "installer\files\cstrike\configs\cmds.ini"
|
File "installer\files\cstrike\addons\amxmodx\configs\cmds.ini"
|
||||||
File "installer\files\cstrike\configs\core.ini"
|
File "installer\files\cstrike\addons\amxmodx\configs\core.ini"
|
||||||
File "installer\files\cstrike\configs\cvars.ini"
|
File "installer\files\cstrike\addons\amxmodx\configs\cvars.ini"
|
||||||
File "installer\files\cstrike\configs\maps.ini"
|
File "installer\files\cstrike\addons\amxmodx\configs\maps.ini"
|
||||||
File "installer\files\cstrike\configs\modules.ini"
|
File "installer\files\cstrike\addons\amxmodx\configs\modules.ini"
|
||||||
File "installer\files\cstrike\configs\plugins.ini"
|
File "installer\files\cstrike\addons\amxmodx\configs\plugins.ini"
|
||||||
File "installer\files\cstrike\configs\stats.ini"
|
File "installer\files\cstrike\addons\amxmodx\configs\stats.ini"
|
||||||
SetOutPath "$INSTDIR\files\cstrike\data"
|
SetOutPath "$INSTDIR\files\cstrike\data"
|
||||||
File "installer\files\cstrike\data\csstats.amxx"
|
File "installer\files\cstrike\addons\amxmodx\data\csstats.amxx"
|
||||||
File "installer\files\cstrike\data\WinCSX.exe"
|
File "installer\files\cstrike\addons\amxmodx\data\WinCSX.exe"
|
||||||
SetOutPath "$INSTDIR\files\cstrike\modules"
|
SetOutPath "$INSTDIR\files\cstrike\modules"
|
||||||
File "installer\files\cstrike\modules\cstrike_amxx.dll"
|
File "installer\files\cstrike\addons\amxmodx\modules\cstrike_amxx.dll"
|
||||||
File "installer\files\cstrike\modules\cstrike_amxx_i386.so"
|
File "installer\files\cstrike\addons\amxmodx\modules\cstrike_amxx_i386.so"
|
||||||
File "installer\files\cstrike\modules\csx_amxx.dll"
|
File "installer\files\cstrike\addons\amxmodx\modules\csx_amxx.dll"
|
||||||
File "installer\files\cstrike\modules\csx_amxx_i386.so"
|
File "installer\files\cstrike\addons\amxmodx\modules\csx_amxx_i386.so"
|
||||||
SetOutPath "$INSTDIR\files\cstrike\plugins"
|
SetOutPath "$INSTDIR\files\cstrike\plugins"
|
||||||
File "installer\files\cstrike\plugins\miscstats.amxx"
|
File "installer\files\cstrike\addons\amxmodx\plugins\miscstats.amxx"
|
||||||
File "installer\files\cstrike\plugins\restmenu.amxx"
|
File "installer\files\cstrike\addons\amxmodx\plugins\restmenu.amxx"
|
||||||
File "installer\files\cstrike\plugins\statsx.amxx"
|
File "installer\files\cstrike\addons\amxmodx\plugins\statsx.amxx"
|
||||||
File "installer\files\cstrike\plugins\stats_logging.amxx"
|
File "installer\files\cstrike\addons\amxmodx\plugins\stats_logging.amxx"
|
||||||
SetOutPath "$INSTDIR\files\cstrike\scripting"
|
SetOutPath "$INSTDIR\files\cstrike\scripting"
|
||||||
File "installer\files\cstrike\scripting\csstats.sma"
|
File "installer\files\cstrike\addons\amxmodx\scripting\csstats.sma"
|
||||||
File "installer\files\cstrike\scripting\miscstats.sma"
|
File "installer\files\cstrike\addons\amxmodx\scripting\miscstats.sma"
|
||||||
File "installer\files\cstrike\scripting\restmenu.sma"
|
File "installer\files\cstrike\addons\amxmodx\scripting\restmenu.sma"
|
||||||
File "installer\files\cstrike\scripting\statsx.sma"
|
File "installer\files\cstrike\addons\amxmodx\scripting\statsx.sma"
|
||||||
File "installer\files\cstrike\scripting\stats_logging.sma"
|
File "installer\files\cstrike\addons\amxmodx\scripting\stats_logging.sma"
|
||||||
SetOutPath "$INSTDIR\files\dod\configs"
|
SetOutPath "$INSTDIR\files\dod\configs"
|
||||||
File "installer\files\dod\configs\core.ini"
|
File "installer\files\dod\addons\amxmodx\configs\core.ini"
|
||||||
File "installer\files\dod\configs\cvars.ini"
|
File "installer\files\dod\addons\amxmodx\configs\cvars.ini"
|
||||||
File "installer\files\dod\configs\maps.ini"
|
File "installer\files\dod\addons\amxmodx\configs\maps.ini"
|
||||||
File "installer\files\dod\configs\modules.ini"
|
File "installer\files\dod\addons\amxmodx\configs\modules.ini"
|
||||||
File "installer\files\dod\configs\plugins.ini"
|
File "installer\files\dod\addons\amxmodx\configs\plugins.ini"
|
||||||
SetOutPath "$INSTDIR\files\dod\data"
|
SetOutPath "$INSTDIR\files\dod\data"
|
||||||
File "installer\files\dod\data\dodstats.amxx"
|
File "installer\files\dod\addons\amxmodx\data\dodstats.amxx"
|
||||||
SetOutPath "$INSTDIR\files\dod\modules"
|
SetOutPath "$INSTDIR\files\dod\modules"
|
||||||
File "installer\files\dod\modules\dodfun_amxx.dll"
|
File "installer\files\dod\addons\amxmodx\modules\dodfun_amxx.dll"
|
||||||
File "installer\files\dod\modules\dodfun_amxx_i386.so"
|
File "installer\files\dod\addons\amxmodx\modules\dodfun_amxx_i386.so"
|
||||||
File "installer\files\dod\modules\dodx_amxx.dll"
|
File "installer\files\dod\addons\amxmodx\modules\dodx_amxx.dll"
|
||||||
File "installer\files\dod\modules\dodx_amxx_i386.so"
|
File "installer\files\dod\addons\amxmodx\modules\dodx_amxx_i386.so"
|
||||||
SetOutPath "$INSTDIR\files\dod\plugins"
|
SetOutPath "$INSTDIR\files\dod\plugins"
|
||||||
File "installer\files\dod\plugins\plmenu.amxx"
|
File "installer\files\dod\addons\amxmodx\plugins\plmenu.amxx"
|
||||||
File "installer\files\dod\plugins\stats.amxx"
|
File "installer\files\dod\addons\amxmodx\plugins\stats.amxx"
|
||||||
File "installer\files\dod\plugins\statssounds.amxx"
|
File "installer\files\dod\addons\amxmodx\plugins\statssounds.amxx"
|
||||||
File "installer\files\dod\plugins\stats_logging.amxx"
|
File "installer\files\dod\addons\amxmodx\plugins\stats_logging.amxx"
|
||||||
SetOutPath "$INSTDIR\files\dod\scripting"
|
SetOutPath "$INSTDIR\files\dod\scripting"
|
||||||
File "installer\files\dod\scripting\dodstats.sma"
|
File "installer\files\dod\addons\amxmodx\scripting\dodstats.sma"
|
||||||
File "installer\files\dod\scripting\plmenu.sma"
|
File "installer\files\dod\addons\amxmodx\scripting\plmenu.sma"
|
||||||
File "installer\files\dod\scripting\stats.sma"
|
File "installer\files\dod\addons\amxmodx\scripting\stats.sma"
|
||||||
File "installer\files\dod\scripting\statssounds.sma"
|
File "installer\files\dod\addons\amxmodx\scripting\statssounds.sma"
|
||||||
File "installer\files\dod\scripting\stats_logging.sma"
|
File "installer\files\dod\addons\amxmodx\scripting\stats_logging.sma"
|
||||||
SetOutPath "$INSTDIR\files\ns\configs"
|
SetOutPath "$INSTDIR\files\ns\configs"
|
||||||
File "installer\files\ns\configs\amxx.cfg"
|
File "installer\files\ns\addons\amxmodx\configs\amxx.cfg"
|
||||||
File "installer\files\ns\configs\clcmds.ini"
|
File "installer\files\ns\addons\amxmodx\configs\clcmds.ini"
|
||||||
File "installer\files\ns\configs\cmds.ini"
|
File "installer\files\ns\addons\amxmodx\configs\cmds.ini"
|
||||||
File "installer\files\ns\configs\cvars.ini"
|
File "installer\files\ns\addons\amxmodx\configs\cvars.ini"
|
||||||
File "installer\files\ns\configs\maps.ini"
|
File "installer\files\ns\addons\amxmodx\configs\maps.ini"
|
||||||
File "installer\files\ns\configs\modules.ini"
|
File "installer\files\ns\addons\amxmodx\configs\modules.ini"
|
||||||
File "installer\files\ns\configs\plugins.ini"
|
File "installer\files\ns\addons\amxmodx\configs\plugins.ini"
|
||||||
File "installer\files\ns\configs\speech.ini"
|
File "installer\files\ns\addons\amxmodx\configs\speech.ini"
|
||||||
File "installer\files\ns\configs\users.ini"
|
File "installer\files\ns\addons\amxmodx\configs\users.ini"
|
||||||
SetOutPath "$INSTDIR\files\ns\modules"
|
SetOutPath "$INSTDIR\files\ns\modules"
|
||||||
File "installer\files\ns\modules\ns_amxx.dll"
|
File "installer\files\ns\addons\amxmodx\modules\ns_amxx.dll"
|
||||||
File "installer\files\ns\modules\ns_amxx_i386.so"
|
File "installer\files\ns\addons\amxmodx\modules\ns_amxx_i386.so"
|
||||||
SetOutPath "$INSTDIR\files\ns\plugins"
|
SetOutPath "$INSTDIR\files\ns\plugins"
|
||||||
File "installer\files\ns\plugins\idlekicker.amxx"
|
File "installer\files\ns\addons\amxmodx\plugins\idlekicker.amxx"
|
||||||
File "installer\files\ns\plugins\mapchooser.amxx"
|
File "installer\files\ns\addons\amxmodx\plugins\mapchooser.amxx"
|
||||||
File "installer\files\ns\plugins\nextmap.amxx"
|
File "installer\files\ns\addons\amxmodx\plugins\nextmap.amxx"
|
||||||
File "installer\files\ns\plugins\nscommands.amxx"
|
File "installer\files\ns\addons\amxmodx\plugins\nscommands.amxx"
|
||||||
File "installer\files\ns\plugins\timeleft.amxx"
|
File "installer\files\ns\addons\amxmodx\plugins\timeleft.amxx"
|
||||||
File "installer\files\ns\plugins\unstuck.amxx"
|
File "installer\files\ns\addons\amxmodx\plugins\unstuck.amxx"
|
||||||
SetOutPath "$INSTDIR\files\ns\scripting"
|
SetOutPath "$INSTDIR\files\ns\scripting"
|
||||||
File "installer\files\ns\scripting\idlekicker.sma"
|
File "installer\files\ns\addons\amxmodx\scripting\idlekicker.sma"
|
||||||
File "installer\files\ns\scripting\mapchooser.sma"
|
File "installer\files\ns\addons\amxmodx\scripting\mapchooser.sma"
|
||||||
File "installer\files\ns\scripting\nextmap.sma"
|
File "installer\files\ns\addons\amxmodx\scripting\nextmap.sma"
|
||||||
File "installer\files\ns\scripting\nscommands.sma"
|
File "installer\files\ns\addons\amxmodx\scripting\nscommands.sma"
|
||||||
File "installer\files\ns\scripting\timeleft.sma"
|
File "installer\files\ns\addons\amxmodx\scripting\timeleft.sma"
|
||||||
File "installer\files\ns\scripting\unstuck.sma"
|
File "installer\files\ns\addons\amxmodx\scripting\unstuck.sma"
|
||||||
SetOutPath "$INSTDIR\files\esf\configs"
|
SetOutPath "$INSTDIR\files\esf\configs"
|
||||||
File "installer\files\esf\configs\modules.ini"
|
File "installer\files\esf\addons\amxmodx\configs\modules.ini"
|
||||||
File "installer\files\esf\configs\plugins.ini"
|
File "installer\files\esf\addons\amxmodx\configs\plugins.ini"
|
||||||
SetOutPath "$INSTDIR\files\esf\scripting"
|
SetOutPath "$INSTDIR\files\esf\scripting"
|
||||||
File "installer\files\esf\scripting\ESF_mod_tutorial.txt"
|
File "installer\files\esf\addons\amxmodx\scripting\ESF_mod_tutorial.txt"
|
||||||
File "installer\files\esf\scripting\EvolutionX.Core.sma"
|
File "installer\files\esf\addons\amxmodx\scripting\EvolutionX.Core.sma"
|
||||||
SetOutPath "$INSTDIR\files\esf\plugins"
|
SetOutPath "$INSTDIR\files\esf\plugins"
|
||||||
File "installer\files\esf\plugins\EvolutionX.Core.amxx"
|
File "installer\files\esf\addons\amxmodx\plugins\EvolutionX.Core.amxx"
|
||||||
SetOutPath "$INSTDIR\files\tfc\configs"
|
SetOutPath "$INSTDIR\files\tfc\configs"
|
||||||
File "installer\files\tfc\configs\core.ini"
|
File "installer\files\tfc\addons\amxmodx\configs\core.ini"
|
||||||
File "installer\files\tfc\configs\cvars.ini"
|
File "installer\files\tfc\addons\amxmodx\configs\cvars.ini"
|
||||||
File "installer\files\tfc\configs\maps.ini"
|
File "installer\files\tfc\addons\amxmodx\configs\maps.ini"
|
||||||
File "installer\files\tfc\configs\modules.ini"
|
File "installer\files\tfc\addons\amxmodx\configs\modules.ini"
|
||||||
File "installer\files\tfc\configs\plugins.ini"
|
File "installer\files\tfc\addons\amxmodx\configs\plugins.ini"
|
||||||
SetOutPath "$INSTDIR\files\tfc\data"
|
SetOutPath "$INSTDIR\files\tfc\data"
|
||||||
File "installer\files\tfc\data\tfcstats.amxx"
|
File "installer\files\tfc\addons\amxmodx\data\tfcstats.amxx"
|
||||||
SetOutPath "$INSTDIR\files\tfc\modules"
|
SetOutPath "$INSTDIR\files\tfc\modules"
|
||||||
File "installer\files\tfc\modules\tfcx_amxx.dll"
|
File "installer\files\tfc\addons\amxmodx\modules\tfcx_amxx.dll"
|
||||||
File "installer\files\tfc\modules\tfcx_amxx_i386.so"
|
File "installer\files\tfc\addons\amxmodx\modules\tfcx_amxx_i386.so"
|
||||||
SetOutPath "$INSTDIR\files\tfc\plugins"
|
SetOutPath "$INSTDIR\files\tfc\plugins"
|
||||||
File "installer\files\tfc\plugins\plmenu.amxx"
|
File "installer\files\tfc\addons\amxmodx\plugins\plmenu.amxx"
|
||||||
File "installer\files\tfc\plugins\stats.amxx"
|
File "installer\files\tfc\addons\amxmodx\plugins\stats.amxx"
|
||||||
File "installer\files\tfc\plugins\statssounds.amxx"
|
File "installer\files\tfc\addons\amxmodx\plugins\statssounds.amxx"
|
||||||
File "installer\files\tfc\plugins\stats_logging.amxx"
|
File "installer\files\tfc\addons\amxmodx\plugins\stats_logging.amxx"
|
||||||
SetOutPath "$INSTDIR\files\tfc\scripting"
|
SetOutPath "$INSTDIR\files\tfc\scripting"
|
||||||
File "installer\files\tfc\scripting\plmenu.sma"
|
File "installer\files\tfc\addons\amxmodx\scripting\plmenu.sma"
|
||||||
File "installer\files\tfc\scripting\stats.sma"
|
File "installer\files\tfc\addons\amxmodx\scripting\stats.sma"
|
||||||
File "installer\files\tfc\scripting\statssounds.sma"
|
File "installer\files\tfc\addons\amxmodx\scripting\statssounds.sma"
|
||||||
File "installer\files\tfc\scripting\stats_logging.sma"
|
File "installer\files\tfc\addons\amxmodx\scripting\stats_logging.sma"
|
||||||
File "installer\files\tfc\scripting\tfcstats.sma"
|
File "installer\files\tfc\addons\amxmodx\scripting\tfcstats.sma"
|
||||||
SetOutPath "$INSTDIR\files\ts\configs"
|
SetOutPath "$INSTDIR\files\ts\configs"
|
||||||
File "installer\files\ts\configs\core.ini"
|
File "installer\files\ts\addons\amxmodx\configs\core.ini"
|
||||||
File "installer\files\ts\configs\maps.ini"
|
File "installer\files\ts\addons\amxmodx\configs\maps.ini"
|
||||||
File "installer\files\ts\configs\modules.ini"
|
File "installer\files\ts\addons\amxmodx\configs\modules.ini"
|
||||||
File "installer\files\ts\configs\plugins.ini"
|
File "installer\files\ts\addons\amxmodx\configs\plugins.ini"
|
||||||
SetOutPath "$INSTDIR\files\ts\data"
|
SetOutPath "$INSTDIR\files\ts\data"
|
||||||
File "installer\files\ts\data\tsstats.amxx"
|
File "installer\files\ts\addons\amxmodx\data\tsstats.amxx"
|
||||||
SetOutPath "$INSTDIR\files\ts\modules"
|
SetOutPath "$INSTDIR\files\ts\modules"
|
||||||
File "installer\files\ts\modules\tsx_amxx.dll"
|
File "installer\files\ts\addons\amxmodx\modules\tsx_amxx.dll"
|
||||||
File "installer\files\ts\modules\tsx_amxx_i386.so"
|
File "installer\files\ts\addons\amxmodx\modules\tsx_amxx_i386.so"
|
||||||
File "installer\files\ts\modules\tsfun_amxx.dll"
|
File "installer\files\ts\addons\amxmodx\modules\tsfun_amxx.dll"
|
||||||
File "installer\files\ts\modules\tsfun_amxx_i386.so"
|
File "installer\files\ts\addons\amxmodx\modules\tsfun_amxx_i386.so"
|
||||||
SetOutPath "$INSTDIR\files\ts\plugins"
|
SetOutPath "$INSTDIR\files\ts\plugins"
|
||||||
File "installer\files\ts\plugins\stats.amxx"
|
File "installer\files\ts\addons\amxmodx\plugins\stats.amxx"
|
||||||
File "installer\files\ts\plugins\statssounds.amxx"
|
File "installer\files\ts\addons\amxmodx\plugins\statssounds.amxx"
|
||||||
File "installer\files\ts\plugins\stats_logging.amxx"
|
File "installer\files\ts\addons\amxmodx\plugins\stats_logging.amxx"
|
||||||
SetOutPath "$INSTDIR\files\ts\scripting"
|
SetOutPath "$INSTDIR\files\ts\scripting"
|
||||||
File "installer\files\ts\scripting\stats.sma"
|
File "installer\files\ts\addons\amxmodx\scripting\stats.sma"
|
||||||
File "installer\files\ts\scripting\statssounds.sma"
|
File "installer\files\ts\addons\amxmodx\scripting\statssounds.sma"
|
||||||
File "installer\files\ts\scripting\stats_logging.sma"
|
File "installer\files\ts\addons\amxmodx\scripting\stats_logging.sma"
|
||||||
File "installer\files\ts\scripting\tsstats.sma"
|
File "installer\files\ts\addons\amxmodx\scripting\tsstats.sma"
|
||||||
SetOutPath "$INSTDIR\"
|
SetOutPath "$INSTDIR\"
|
||||||
File "installer\gpl.txt"
|
File "installer\gpl.txt"
|
||||||
|
|
||||||
@ -585,113 +585,113 @@ Section Uninstall
|
|||||||
Delete "$INSTDIR\files\cstrike\configs\core.ini"
|
Delete "$INSTDIR\files\cstrike\configs\core.ini"
|
||||||
Delete "$INSTDIR\files\cstrike\configs\cmds.ini"
|
Delete "$INSTDIR\files\cstrike\configs\cmds.ini"
|
||||||
Delete "$INSTDIR\files\cstrike\configs\amxx.cfg"
|
Delete "$INSTDIR\files\cstrike\configs\amxx.cfg"
|
||||||
Delete "$INSTDIR\files\base\scripting\timeleft.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\timeleft.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\telemenu.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\telemenu.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\statscfg.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\statscfg.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\scrollmsg.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\scrollmsg.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\plmenu.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\plmenu.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\pausecfg.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\pausecfg.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\nextmap.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\nextmap.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\multilingual.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\multilingual.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\menufront.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\menufront.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\mapsmenu.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\mapsmenu.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\mapchooser.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\mapchooser.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\amxmod_compat\amxmod.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmod_compat\amxmod.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\amxmod_compat\maths.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmod_compat\maths.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\amxmod_compat\mysql.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmod_compat\mysql.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\amxmod_compat\translator.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmod_compat\translator.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\amxmod_compat\Vexd_Utilities.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmod_compat\Vexd_Utilities.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\amxmod_compat\VexdUM.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmod_compat\VexdUM.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\amxmod_compat\VexdUM_const.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmod_compat\VexdUM_const.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\amxmod_compat\VexdUM_stock.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmod_compat\VexdUM_stock.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\amxmod_compat\xtrafun.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmod_compat\xtrafun.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\xtrafun.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\xtrafun.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\xs.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\xs.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\Vexd_Utilities.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\Vexd_Utilities.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\vector.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\vector.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\vault.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\vault.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\tsx.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\tsx.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\tsfun.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\tsfun.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\tsstats.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\tsstats.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\tsconst.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\tsconst.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\tfcx.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\tfcx.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\tfcstats.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\tfcstats.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\tfcconst.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\tfcconst.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\time.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\time.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\string.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\string.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\sqlx.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\sqlx.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\sorting.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\sorting.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\sockets.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\sockets.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\regex.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\regex.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\ns_const.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\ns_const.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\ns2amx.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\ns2amx.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\ns.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\ns.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\nvault.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\nvault.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\message_stocks.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\message_stocks.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\message_const.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\message_const.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\messages.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\messages.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\lang.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\lang.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\hlsdk_const.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\hlsdk_const.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\geoip.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\geoip.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\fun.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\fun.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\float.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\float.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\file.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\file.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\fakemeta_stocks.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\fakemeta_stocks.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\fakemeta_const.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\fakemeta_const.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\fakemeta.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\fakemeta.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\esf.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\esf.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\esf_const.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\esf_const.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\engine_stocks.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\engine_stocks.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\engine_const.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\engine_const.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\engine.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\engine.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\dodx.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\dodx.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\dodstats.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\dodstats.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\dodfun.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\dodfun.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\dodconst.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\dodconst.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\dbi.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\dbi.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\csx.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\csx.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\cstrike.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\cstrike.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\csstats.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\csstats.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\core.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\core.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\amxmodx.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmodx.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\amxmod.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmod.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\amxmisc.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmisc.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\include\amxconst.inc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxconst.inc"
|
||||||
Delete "$INSTDIR\files\base\scripting\imessage.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\imessage.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\dlsym64"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\dlsym64"
|
||||||
Delete "$INSTDIR\files\base\scripting\dlsym"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\dlsym"
|
||||||
Delete "$INSTDIR\files\base\scripting\compile.sh"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\compile.sh"
|
||||||
Delete "$INSTDIR\files\base\scripting\compile.exe"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\compile.exe"
|
||||||
Delete "$INSTDIR\files\base\scripting\cmdmenu.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\cmdmenu.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\antiflood.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\antiflood.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\amxxpc64.so"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\amxxpc64.so"
|
||||||
Delete "$INSTDIR\files\base\scripting\amxxpc64.dll"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\amxxpc64.dll"
|
||||||
Delete "$INSTDIR\files\base\scripting\amxxpc32.so"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\amxxpc32.so"
|
||||||
Delete "$INSTDIR\files\base\scripting\amxxpc32.dll"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\amxxpc32.dll"
|
||||||
Delete "$INSTDIR\files\base\scripting\amxxpc.exe"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\amxxpc.exe"
|
||||||
Delete "$INSTDIR\files\base\scripting\amxxpc"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\amxxpc"
|
||||||
Delete "$INSTDIR\files\base\scripting\adminvote.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\adminvote.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\adminslots.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\adminslots.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\adminhelp.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\adminhelp.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\admincmd.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\admincmd.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\adminchat.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\adminchat.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\admin.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\admin.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\amxmod_compat\amxmod_compat.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\amxmod_compat\amxmod_compat.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\amxmod_compat\core.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\amxmod_compat\core.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\amxmod_compat\mysql.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\amxmod_compat\mysql.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\amxmod_compat\vexdum.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\amxmod_compat\vexdum.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\testsuite\callfunc_test.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\testsuite\callfunc_test.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\testsuite\fakemeta_tests.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\testsuite\fakemeta_tests.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\testsuite\fmttest.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\testsuite\fmttest.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\testsuite\fwdtest1.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\testsuite\fwdtest1.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\testsuite\fwdtest2.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\testsuite\fwdtest2.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\testsuite\logtest.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\testsuite\logtest.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\testsuite\menutest.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\testsuite\menutest.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\testsuite\nvault_test.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\testsuite\nvault_test.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\testsuite\sorttest.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\testsuite\sorttest.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\testsuite\sqlxtest.sma"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\testsuite\sqlxtest.sma"
|
||||||
Delete "$INSTDIR\files\base\scripting\testsuite\sqlxtest.sq3"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\testsuite\sqlxtest.sq3"
|
||||||
Delete "$INSTDIR\files\base\scripting\testsuite\sqlxtest.sql"
|
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\testsuite\sqlxtest.sql"
|
||||||
Delete "$INSTDIR\files\base\plugins\timeleft.amxx"
|
Delete "$INSTDIR\files\base\plugins\timeleft.amxx"
|
||||||
Delete "$INSTDIR\files\base\plugins\telemenu.amxx"
|
Delete "$INSTDIR\files\base\plugins\telemenu.amxx"
|
||||||
Delete "$INSTDIR\files\base\plugins\statscfg.amxx"
|
Delete "$INSTDIR\files\base\plugins\statscfg.amxx"
|
||||||
@ -848,9 +848,9 @@ Section Uninstall
|
|||||||
RMDir "$INSTDIR\files\cstrike\modules"
|
RMDir "$INSTDIR\files\cstrike\modules"
|
||||||
RMDir "$INSTDIR\files\cstrike\data"
|
RMDir "$INSTDIR\files\cstrike\data"
|
||||||
RMDir "$INSTDIR\files\cstrike\configs"
|
RMDir "$INSTDIR\files\cstrike\configs"
|
||||||
RMDir "$INSTDIR\files\base\scripting\include\amxmod_compat"
|
RMDir "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmod_compat"
|
||||||
RMDir "$INSTDIR\files\base\scripting\include"
|
RMDir "$INSTDIR\files\base\addons\amxmodx\scripting\include"
|
||||||
RMDir "$INSTDIR\files\base\scripting\amxmod_compat"
|
RMDir "$INSTDIR\files\base\addons\amxmodx\scripting\amxmod_compat"
|
||||||
RMDir "$INSTDIR\files\base\scripting"
|
RMDir "$INSTDIR\files\base\scripting"
|
||||||
RMDir "$INSTDIR\files\base\plugins"
|
RMDir "$INSTDIR\files\base\plugins"
|
||||||
RMDir "$INSTDIR\files\base\modules"
|
RMDir "$INSTDIR\files\base\modules"
|
||||||
|
@ -32,8 +32,8 @@
|
|||||||
-M
|
-M
|
||||||
-$M16384,1048576
|
-$M16384,1048576
|
||||||
-K$00400000
|
-K$00400000
|
||||||
-LE"c:\programme\borland\delphi7\Projects\Bpl"
|
-LE"c:\program files (x86)\borland\delphi7\Projects\Bpl"
|
||||||
-LN"c:\programme\borland\delphi7\Projects\Bpl"
|
-LN"c:\program files (x86)\borland\delphi7\Projects\Bpl"
|
||||||
-DmadExcept
|
-DmadExcept
|
||||||
-w-UNSAFE_TYPE
|
-w-UNSAFE_TYPE
|
||||||
-w-UNSAFE_CODE
|
-w-UNSAFE_CODE
|
||||||
|
@ -7,7 +7,7 @@ program AMXInstaller;
|
|||||||
|
|
||||||
- Indy 9 (www.indyproject.org)
|
- Indy 9 (www.indyproject.org)
|
||||||
- FlatStyle Components (www.torry.net)
|
- FlatStyle Components (www.torry.net)
|
||||||
- FlatPack Component Pack (www.torry.net)
|
- mxFlatPack Component Pack (www.maxcomponents.net/components.html)
|
||||||
- JVCL Lib Pack 3.0 (jvcl.sourceforge.net)
|
- JVCL Lib Pack 3.0 (jvcl.sourceforge.net)
|
||||||
|
|
||||||
AMXX Installer for AMX Mod X is developed under GNU Public License
|
AMXX Installer for AMX Mod X is developed under GNU Public License
|
||||||
|
Binary file not shown.
@ -11,6 +11,7 @@ type TOS = (osWindows, osLinux32{, osLinux64});
|
|||||||
procedure AddStatus(Text: String; Color: TColor; ShowTime: Boolean = True);
|
procedure AddStatus(Text: String; Color: TColor; ShowTime: Boolean = True);
|
||||||
procedure AddDone(Additional: String = '');
|
procedure AddDone(Additional: String = '');
|
||||||
procedure AddSkipped;
|
procedure AddSkipped;
|
||||||
|
procedure AddFailed;
|
||||||
procedure AddNotFound;
|
procedure AddNotFound;
|
||||||
procedure MakeDir(Dir: String);
|
procedure MakeDir(Dir: String);
|
||||||
procedure DownloadFile(eFile: String; eDestination: String);
|
procedure DownloadFile(eFile: String; eDestination: String);
|
||||||
@ -88,6 +89,17 @@ begin
|
|||||||
Application.ProcessMessages;
|
Application.ProcessMessages;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure AddFailed;
|
||||||
|
begin
|
||||||
|
frmMain.rtfDetails.SelStart := Length(frmMain.rtfDetails.Text);
|
||||||
|
frmMain.rtfDetails.SelAttributes.Color := clMaroon;
|
||||||
|
frmMain.rtfDetails.SelText := ' Failed.';
|
||||||
|
frmMain.rtfDetails.Perform(WM_VSCROLL, SB_BOTTOM, 0);
|
||||||
|
|
||||||
|
frmMain.Repaint;
|
||||||
|
Application.ProcessMessages;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure AddNotFound;
|
procedure AddNotFound;
|
||||||
begin
|
begin
|
||||||
frmMain.rtfDetails.SelStart := Length(frmMain.rtfDetails.Text);
|
frmMain.rtfDetails.SelStart := Length(frmMain.rtfDetails.Text);
|
||||||
@ -173,8 +185,12 @@ begin
|
|||||||
if frmMain.IdFTP.TransferType <> TransferType then
|
if frmMain.IdFTP.TransferType <> TransferType then
|
||||||
frmMain.IdFTP.TransferType := TransferType;
|
frmMain.IdFTP.TransferType := TransferType;
|
||||||
// upload the file
|
// upload the file
|
||||||
|
try
|
||||||
frmMain.IdFTP.Put(eFile, eDestination);
|
frmMain.IdFTP.Put(eFile, eDestination);
|
||||||
AddDone;
|
AddDone;
|
||||||
|
except
|
||||||
|
AddFailed;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure FTPMakeDir(eDir: String);
|
procedure FTPMakeDir(eDir: String);
|
||||||
@ -280,13 +296,13 @@ var eStr: TStringList;
|
|||||||
UpdatePluginsIni: Boolean;
|
UpdatePluginsIni: Boolean;
|
||||||
begin
|
begin
|
||||||
AddStatus('Scanning for directories...', clBlack);
|
AddStatus('Scanning for directories...', clBlack);
|
||||||
with GetAllFiles(ExtractFilePath(ParamStr(0)) + 'files\*.*', faDirectory, True, True) do begin
|
with GetAllFiles(ExtractFilePath(Application.ExeName) + 'files\*.*', faDirectory, True, True) do begin
|
||||||
DirList.Text := Text;
|
DirList.Text := Text;
|
||||||
Free;
|
Free;
|
||||||
end;
|
end;
|
||||||
AddDone('found ' + IntToStr(DirList.Count) + ' directories..');
|
AddDone('found ' + IntToStr(DirList.Count) + ' directories..');
|
||||||
AddStatus('Scanning for files...', clBlack);
|
AddStatus('Scanning for files...', clBlack);
|
||||||
with GetAllFiles(ExtractFilePath(ParamStr(0)) + 'files\*.*', faAnyFile, True, False) do begin
|
with GetAllFiles(ExtractFilePath(Application.ExeName) + 'files\*.*', faAnyFile, True, False) do begin
|
||||||
FileList.Text := Text;
|
FileList.Text := Text;
|
||||||
Free;
|
Free;
|
||||||
end;
|
end;
|
||||||
@ -327,9 +343,9 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
for i := 0 to DirList.Count -1 do
|
for i := 0 to DirList.Count -1 do
|
||||||
DirList[i] := Copy(DirList[i], Length(ExtractFilePath(ParamStr(0))) + 7, Length(DirList[i]));
|
DirList[i] := Copy(DirList[i], Length(ExtractFilePath(Application.ExeName)) + 7, Length(DirList[i]));
|
||||||
for i := 0 to FileList.Count -1 do
|
for i := 0 to FileList.Count -1 do
|
||||||
FileList[i] := Copy(FileList[i], Length(ExtractFilePath(ParamStr(0))) + 7, Length(FileList[i]));
|
FileList[i] := Copy(FileList[i], Length(ExtractFilePath(Application.ExeName)) + 7, Length(FileList[i]));
|
||||||
|
|
||||||
{ liblist.gam }
|
{ liblist.gam }
|
||||||
if not FileExists(ePath + 'liblist.gam') then begin
|
if not FileExists(ePath + 'liblist.gam') then begin
|
||||||
@ -438,44 +454,44 @@ begin
|
|||||||
if not IsForbidden(FileList[i], OS) then begin
|
if not IsForbidden(FileList[i], OS) then begin
|
||||||
if Pos('base', FileList[i]) = 1 then begin
|
if Pos('base', FileList[i]) = 1 then begin
|
||||||
AddStatus('Copying file: addons\amxmodx\' + Copy(FileList[i], 6, Length(FileList[i])), clBlack);
|
AddStatus('Copying file: addons\amxmodx\' + Copy(FileList[i], 6, Length(FileList[i])), clBlack);
|
||||||
FileCopy(ExtractFilePath(ParamStr(0)) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 6, Length(FileList[i])), CopyConfig);
|
FileCopy(ExtractFilePath(Application.ExeName) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 6, Length(FileList[i])), CopyConfig);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
case eMod of
|
case eMod of
|
||||||
modCS: begin
|
modCS: begin
|
||||||
if Pos('cstrike', FileList[i]) = 1 then begin
|
if Pos('cstrike', FileList[i]) = 1 then begin
|
||||||
AddStatus('Copying file: addons\amxmodx\' + Copy(FileList[i], 9, Length(FileList[i])), clBlack);
|
AddStatus('Copying file: addons\amxmodx\' + Copy(FileList[i], 9, Length(FileList[i])), clBlack);
|
||||||
FileCopy(ExtractFilePath(ParamStr(0)) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 9, Length(FileList[i])), CopyConfig);
|
FileCopy(ExtractFilePath(Application.ExeName) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 9, Length(FileList[i])), CopyConfig);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
modDoD: begin
|
modDoD: begin
|
||||||
if Pos('dod', FileList[i]) = 1 then begin
|
if Pos('dod', FileList[i]) = 1 then begin
|
||||||
AddStatus('Copying file: addons\amxmodx\' + Copy(FileList[i], 5, Length(FileList[i])), clBlack);
|
AddStatus('Copying file: addons\amxmodx\' + Copy(FileList[i], 5, Length(FileList[i])), clBlack);
|
||||||
FileCopy(ExtractFilePath(ParamStr(0)) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 5, Length(FileList[i])), CopyConfig);
|
FileCopy(ExtractFilePath(Application.ExeName) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 5, Length(FileList[i])), CopyConfig);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
modTFC: begin
|
modTFC: begin
|
||||||
if Pos('tfc', FileList[i]) = 1 then begin
|
if Pos('tfc', FileList[i]) = 1 then begin
|
||||||
AddStatus('Copying file: addons\amxmodx\' + Copy(FileList[i], 5, Length(FileList[i])), clBlack);
|
AddStatus('Copying file: addons\amxmodx\' + Copy(FileList[i], 5, Length(FileList[i])), clBlack);
|
||||||
FileCopy(ExtractFilePath(ParamStr(0)) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 5, Length(FileList[i])), CopyConfig);
|
FileCopy(ExtractFilePath(Application.ExeName) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 5, Length(FileList[i])), CopyConfig);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
modNS: begin
|
modNS: begin
|
||||||
if Pos('ns', FileList[i]) = 1 then begin
|
if Pos('ns', FileList[i]) = 1 then begin
|
||||||
AddStatus('Copying file: addons\amxmodx\' + Copy(FileList[i], 4, Length(FileList[i])), clBlack);
|
AddStatus('Copying file: addons\amxmodx\' + Copy(FileList[i], 4, Length(FileList[i])), clBlack);
|
||||||
FileCopy(ExtractFilePath(ParamStr(0)) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 4, Length(FileList[i])), CopyConfig);
|
FileCopy(ExtractFilePath(Application.ExeName) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 4, Length(FileList[i])), CopyConfig);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
modTS: begin
|
modTS: begin
|
||||||
if Pos('ts', FileList[i]) = 1 then begin
|
if Pos('ts', FileList[i]) = 1 then begin
|
||||||
AddStatus('Copying file: addons\amxmodx\' + Copy(FileList[i], 4, Length(FileList[i])), clBlack);
|
AddStatus('Copying file: addons\amxmodx\' + Copy(FileList[i], 4, Length(FileList[i])), clBlack);
|
||||||
FileCopy(ExtractFilePath(ParamStr(0)) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 4, Length(FileList[i])), CopyConfig);
|
FileCopy(ExtractFilePath(Application.ExeName) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 4, Length(FileList[i])), CopyConfig);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
modESF: begin
|
modESF: begin
|
||||||
if Pos('esf', FileList[i]) = 1 then begin
|
if Pos('esf', FileList[i]) = 1 then begin
|
||||||
AddStatus('Copying file: addons\amxmodx\' + Copy(FileList[i], 5, Length(FileList[i])), clBlack);
|
AddStatus('Copying file: addons\amxmodx\' + Copy(FileList[i], 5, Length(FileList[i])), clBlack);
|
||||||
FileCopy(ExtractFilePath(ParamStr(0)) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 4, Length(FileList[i])), CopyConfig);
|
FileCopy(ExtractFilePath(Application.ExeName) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 4, Length(FileList[i])), CopyConfig);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -596,7 +612,7 @@ begin
|
|||||||
frmMain.IdFTP.Connect;
|
frmMain.IdFTP.Connect;
|
||||||
Result := True;
|
Result := True;
|
||||||
except
|
except
|
||||||
MessageBox(frmMain.Handle, 'Failed to reconnect. Installation aborted.', PChar(Application.Title), MB_ICONSTOP);
|
MessageBox(frmMain.Handle, 'Failed to reconnect. Installation has been aborted.', PChar(Application.Title), MB_ICONSTOP);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -627,13 +643,13 @@ begin
|
|||||||
frmMain.cmdNext.Hide;
|
frmMain.cmdNext.Hide;
|
||||||
Screen.Cursor := crHourGlass;
|
Screen.Cursor := crHourGlass;
|
||||||
AddStatus('Scanning for directories...', clBlack);
|
AddStatus('Scanning for directories...', clBlack);
|
||||||
with GetAllFiles(ExtractFilePath(ParamStr(0)) + 'temp\*.*', faDirectory, True, True) do begin
|
with GetAllFiles(ExtractFilePath(Application.ExeName) + 'temp\*.*', faDirectory, True, True) do begin
|
||||||
DirList.Text := Text;
|
DirList.Text := Text;
|
||||||
Free;
|
Free;
|
||||||
end;
|
end;
|
||||||
AddDone('found ' + IntToStr(DirList.Count) + ' directories..');
|
AddDone('found ' + IntToStr(DirList.Count) + ' directories..');
|
||||||
AddStatus('Scanning for files...', clBlack);
|
AddStatus('Scanning for files...', clBlack);
|
||||||
with GetAllFiles(ExtractFilePath(ParamStr(0)) + 'temp\*.*', faAnyFile, True, False) do begin
|
with GetAllFiles(ExtractFilePath(Application.ExeName) + 'temp\*.*', faAnyFile, True, False) do begin
|
||||||
FileList.Text := Text;
|
FileList.Text := Text;
|
||||||
Free;
|
Free;
|
||||||
end;
|
end;
|
||||||
@ -644,9 +660,9 @@ begin
|
|||||||
frmMain.ggeItem.MaxValue := DirList.Count;
|
frmMain.ggeItem.MaxValue := DirList.Count;
|
||||||
|
|
||||||
for i := 0 to DirList.Count -1 do
|
for i := 0 to DirList.Count -1 do
|
||||||
DirList[i] := Copy(DirList[i], Length(ExtractFilePath(ParamStr(0))) + 6, Length(DirList[i]));
|
DirList[i] := Copy(DirList[i], Length(ExtractFilePath(Application.ExeName)) + 6, Length(DirList[i]));
|
||||||
for i := 0 to FileList.Count -1 do
|
for i := 0 to FileList.Count -1 do
|
||||||
FileList[i] := Copy(FileList[i], Length(ExtractFilePath(ParamStr(0))) + 6, Length(FileList[i]));
|
FileList[i] := Copy(FileList[i], Length(ExtractFilePath(Application.ExeName)) + 6, Length(FileList[i]));
|
||||||
|
|
||||||
CopyConfig := True;
|
CopyConfig := True;
|
||||||
AddStatus('Checking for previous AMX Mod X installation...', clBlack);
|
AddStatus('Checking for previous AMX Mod X installation...', clBlack);
|
||||||
@ -666,7 +682,7 @@ begin
|
|||||||
// liblist.gam
|
// liblist.gam
|
||||||
AddStatus('Editing liblist.gam...', clBlack);
|
AddStatus('Editing liblist.gam...', clBlack);
|
||||||
eStr := TStringList.Create;
|
eStr := TStringList.Create;
|
||||||
eStr.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'temp\liblist.gam');
|
eStr.LoadFromFile(ExtractFilePath(Application.ExeName) + 'temp\liblist.gam');
|
||||||
if eStr.IndexOf('gamedll "addons\metamod\dlls\metamod.dll"') = -1 then begin
|
if eStr.IndexOf('gamedll "addons\metamod\dlls\metamod.dll"') = -1 then begin
|
||||||
if Cancel then begin
|
if Cancel then begin
|
||||||
AddStatus('', clBlack, False);
|
AddStatus('', clBlack, False);
|
||||||
@ -684,8 +700,8 @@ begin
|
|||||||
eStr.Add('gamedll_linux "addons/metamod/dlls/metamod_i386.so"')
|
eStr.Add('gamedll_linux "addons/metamod/dlls/metamod_i386.so"')
|
||||||
else
|
else
|
||||||
eStr.Add('gamedll_linux "addons/metamod/dlls/metamod_amd64.so"');
|
eStr.Add('gamedll_linux "addons/metamod/dlls/metamod_amd64.so"');
|
||||||
FileSetAttr(ExtractFilePath(ParamStr(0)) + 'temp\liblist.gam', 0);
|
FileSetAttr(ExtractFilePath(Application.ExeName) + 'temp\liblist.gam', 0);
|
||||||
eStr.SaveToFile(ExtractFilePath(ParamStr(0)) + 'temp\liblist.gam');
|
eStr.SaveToFile(ExtractFilePath(Application.ExeName) + 'temp\liblist.gam');
|
||||||
end;
|
end;
|
||||||
eStr.Free;
|
eStr.Free;
|
||||||
AddDone;
|
AddDone;
|
||||||
@ -751,8 +767,8 @@ begin
|
|||||||
|
|
||||||
if not IsForbidden(FileList[i], OS) then begin
|
if not IsForbidden(FileList[i], OS) then begin
|
||||||
AddStatus('Uploading file: ' + FileList[i], clBlack);
|
AddStatus('Uploading file: ' + FileList[i], clBlack);
|
||||||
if FileExists(ExtractFilePath(ParamStr(0)) + 'temp\' + FileList[i]) then begin
|
if FileExists(ExtractFilePath(Application.ExeName) + 'temp\' + FileList[i]) then begin
|
||||||
frmMain.ggeItem.MaxValue := FSize(ExtractFilePath(ParamStr(0)) + 'temp\' + FileList[i]);
|
frmMain.ggeItem.MaxValue := FSize(ExtractFilePath(Application.ExeName) + 'temp\' + FileList[i]);
|
||||||
UploadAgain:
|
UploadAgain:
|
||||||
try
|
try
|
||||||
eGoBack := False;
|
eGoBack := False;
|
||||||
@ -764,7 +780,7 @@ begin
|
|||||||
AddStatus('Warning: CHMOD not supported.', clMaroon);
|
AddStatus('Warning: CHMOD not supported.', clMaroon);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
UploadFile(ExtractFilePath(ParamStr(0)) + 'temp\' + FileList[i], ePath + FileList[i], CopyConfig);
|
UploadFile(ExtractFilePath(Application.ExeName) + 'temp\' + FileList[i], ePath + FileList[i], CopyConfig);
|
||||||
|
|
||||||
try
|
try
|
||||||
if FileList[i] = 'liblist.gam' then
|
if FileList[i] = 'liblist.gam' then
|
||||||
@ -807,8 +823,8 @@ begin
|
|||||||
end;
|
end;
|
||||||
AddStatus('', clBlack, False);
|
AddStatus('', clBlack, False);
|
||||||
AddStatus('Cleaning up installation...', clBlack, False);
|
AddStatus('Cleaning up installation...', clBlack, False);
|
||||||
if (DirectoryExists(ExtractFilePath(ParamStr(0)) + 'temp')) then
|
if (DirectoryExists(ExtractFilePath(Application.ExeName) + 'temp')) then
|
||||||
DelTree(ExtractFilePath(ParamStr(0)) + 'temp');
|
DelTree(ExtractFilePath(Application.ExeName) + 'temp');
|
||||||
AddDone;
|
AddDone;
|
||||||
|
|
||||||
frmMain.ggeAll.Progress := frmMain.ggeAll.MaxValue;
|
frmMain.ggeAll.Progress := frmMain.ggeAll.MaxValue;
|
||||||
|
@ -5056,6 +5056,7 @@ object frmMain: TfrmMain
|
|||||||
'2111-1307 USA'
|
'2111-1307 USA'
|
||||||
' Everyone is permitted to copy and distribute verbatim copies'
|
' Everyone is permitted to copy and distribute verbatim copies'
|
||||||
' of this license document, but changing it is not allowed.'
|
' of this license document, but changing it is not allowed.'
|
||||||
|
''
|
||||||
#9#9#9' Preamble'
|
#9#9#9' Preamble'
|
||||||
' The licenses for most software are designed to take away your'
|
' The licenses for most software are designed to take away your'
|
||||||
|
|
||||||
@ -6345,6 +6346,7 @@ object frmMain: TfrmMain
|
|||||||
Indent = 19
|
Indent = 19
|
||||||
ReadOnly = True
|
ReadOnly = True
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
|
OnChange = trvDirectoriesChange
|
||||||
OnCollapsing = trvDirectoriesCollapsing
|
OnCollapsing = trvDirectoriesCollapsing
|
||||||
OnExpanding = trvDirectoriesExpanding
|
OnExpanding = trvDirectoriesExpanding
|
||||||
OnExpanded = trvDirectoriesExpanded
|
OnExpanded = trvDirectoriesExpanded
|
||||||
|
@ -4,12 +4,12 @@ interface
|
|||||||
|
|
||||||
uses
|
uses
|
||||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||||
Dialogs, TFlatRadioButtonUnit, StdCtrls, ComCtrls, mxFlatControls, JvPageList,
|
Dialogs, StdCtrls, ComCtrls, mxFlatControls, JvPageList,
|
||||||
ExtCtrls, JvExControls, JvComponent, TFlatButtonUnit, jpeg, TFlatEditUnit,
|
ExtCtrls, JvExControls, JvComponent, TFlatButtonUnit, jpeg, TFlatEditUnit,
|
||||||
TFlatGaugeUnit, ImgList, FileCtrl, Registry, CheckLst, TFlatComboBoxUnit,
|
TFlatGaugeUnit, ImgList, FileCtrl, Registry, CheckLst, TFlatComboBoxUnit,
|
||||||
TFlatCheckBoxUnit, IdBaseComponent, IdComponent, IdTCPConnection,
|
TFlatCheckBoxUnit, IdBaseComponent, IdComponent, IdTCPConnection,
|
||||||
IdTCPClient, IdFTP, IdException, IdAntiFreezeBase, IdAntiFreeze,
|
IdTCPClient, IdFTP, IdException, IdAntiFreezeBase, IdAntiFreeze,
|
||||||
IdIntercept, IdLogBase, IdLogFile, JclFileUtils;
|
IdIntercept, IdLogBase, IdLogFile, JclFileUtils, TFlatRadioButtonUnit;
|
||||||
|
|
||||||
type
|
type
|
||||||
TfrmMain = class(TForm)
|
TfrmMain = class(TForm)
|
||||||
@ -137,6 +137,7 @@ type
|
|||||||
procedure trvModsClick(Sender: TObject);
|
procedure trvModsClick(Sender: TObject);
|
||||||
procedure trvDirectoriesMouseDown(Sender: TObject;
|
procedure trvDirectoriesMouseDown(Sender: TObject;
|
||||||
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
||||||
|
procedure trvDirectoriesChange(Sender: TObject; Node: TTreeNode);
|
||||||
private
|
private
|
||||||
OldProgress: Integer;
|
OldProgress: Integer;
|
||||||
CurrProgress: Integer;
|
CurrProgress: Integer;
|
||||||
@ -148,7 +149,7 @@ var
|
|||||||
frmMain: TfrmMain;
|
frmMain: TfrmMain;
|
||||||
gMultiAccount: Boolean;
|
gMultiAccount: Boolean;
|
||||||
|
|
||||||
const VERSION = '1.76c';
|
const VERSION = '1.76d';
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
@ -252,12 +253,12 @@ begin
|
|||||||
//optLinux64.Enabled := False;
|
//optLinux64.Enabled := False;
|
||||||
cboGameAddon.Enabled := False;
|
cboGameAddon.Enabled := False;
|
||||||
// preinstall...
|
// preinstall...
|
||||||
MakeDir(ExtractFilePath(ParamStr(0)) + 'temp');
|
MakeDir(ExtractFilePath(Application.ExeName) + 'temp');
|
||||||
DownloadFile('liblist.gam', ExtractFilePath(ParamStr(0)) + 'temp\liblist.gam');
|
DownloadFile('liblist.gam', ExtractFilePath(Application.ExeName) + 'temp\liblist.gam');
|
||||||
try
|
try
|
||||||
IdFTP.ChangeDir(ePath + 'addons/metamod/');
|
IdFTP.ChangeDir(ePath + 'addons/metamod/');
|
||||||
ForceDirectories(ExtractFilePath(ParamStr(0)) + 'temp\addons\metamod\');
|
ForceDirectories(ExtractFilePath(Application.ExeName) + 'temp\addons\metamod\');
|
||||||
DownloadFile('plugins.ini', ExtractFilePath(ParamStr(0)) + 'temp\addons\metamod\plugins.ini');
|
DownloadFile('plugins.ini', ExtractFilePath(Application.ExeName) + 'temp\addons\metamod\plugins.ini');
|
||||||
except
|
except
|
||||||
try
|
try
|
||||||
IdFTP.ChangeDir(ePath);
|
IdFTP.ChangeDir(ePath);
|
||||||
@ -293,7 +294,7 @@ begin
|
|||||||
ggeAll.Progress := 0;
|
ggeAll.Progress := 0;
|
||||||
ggeItem.Progress := 0;
|
ggeItem.Progress := 0;
|
||||||
cmdNext.Hide;
|
cmdNext.Hide;
|
||||||
InstallCustom(ExtractFilePath(ParamStr(0)) + 'temp\', ChosenMod, eOS);
|
InstallCustom(ExtractFilePath(Application.ExeName) + 'temp\', ChosenMod, eOS);
|
||||||
if Cancel then
|
if Cancel then
|
||||||
exit;
|
exit;
|
||||||
AddStatus('', clBlack, False);
|
AddStatus('', clBlack, False);
|
||||||
@ -605,7 +606,8 @@ end;
|
|||||||
procedure TfrmMain.cmdConnectClick(Sender: TObject);
|
procedure TfrmMain.cmdConnectClick(Sender: TObject);
|
||||||
var i: integer;
|
var i: integer;
|
||||||
eStr: TStringList;
|
eStr: TStringList;
|
||||||
CurNode: TTreeNode;
|
CurNode, HomeNode, OldNode: TTreeNode;
|
||||||
|
Path: String;
|
||||||
begin
|
begin
|
||||||
if (Trim(txtHost.Text) = '') or (Trim(txtUsername.Text) = '') then
|
if (Trim(txtHost.Text) = '') or (Trim(txtUsername.Text) = '') then
|
||||||
MessageBox(Handle, 'Please fill in each field!', PChar(Application.Title), MB_ICONWARNING)
|
MessageBox(Handle, 'Please fill in each field!', PChar(Application.Title), MB_ICONWARNING)
|
||||||
@ -630,38 +632,84 @@ begin
|
|||||||
// ... connect and check values etc ...
|
// ... connect and check values etc ...
|
||||||
try
|
try
|
||||||
IdFTP.Connect(True, 15000);
|
IdFTP.Connect(True, 15000);
|
||||||
// ... scan for initial directory ...
|
// ... get initial directory ...
|
||||||
|
Path := IdFTP.RetrieveCurrentDir;
|
||||||
|
// ... "fix" path ...
|
||||||
eStr := TStringList.Create;
|
eStr := TStringList.Create;
|
||||||
eStr.Text := StringReplace(IdFTP.RetrieveCurrentDir, '/', #13, [rfReplaceAll]);
|
eStr.Text := StringReplace(Path, '/', #13, [rfReplaceAll]);
|
||||||
for i := eStr.Count -1 downto 0 do begin
|
for i := eStr.Count -1 downto 0 do begin
|
||||||
if eStr[i] = '' then
|
if eStr[i] = '' then
|
||||||
eStr.Delete(i);
|
eStr.Delete(i);
|
||||||
end;
|
end;
|
||||||
|
if (Copy(Path, Length(Path) -1, 1) <> '/') then
|
||||||
|
Path := Path + '/';
|
||||||
// ... connect successful, change captions ...
|
// ... connect successful, change captions ...
|
||||||
trvDirectories.Enabled := True;
|
trvDirectories.Enabled := True;
|
||||||
cmdConnect.Enabled := True;
|
cmdConnect.Enabled := True;
|
||||||
cmdConnect.Caption := 'Disconnect';
|
cmdConnect.Caption := 'Disconnect';
|
||||||
cmdCancel.Caption := '&Close';
|
cmdCancel.Caption := '&Close';
|
||||||
cmdNext.Enabled := True;
|
cmdNext.Enabled := True;
|
||||||
|
// ... change to / and create all the directories ...
|
||||||
|
HomeNode := nil;
|
||||||
|
try
|
||||||
|
if (Path <> '/') then
|
||||||
|
IdFTP.ChangeDir('/');
|
||||||
|
|
||||||
CurNode := nil;
|
trvDirectories.Items.BeginUpdate;
|
||||||
if eStr.Count <> 0 then begin
|
|
||||||
for i := 0 to eStr.Count -1 do
|
|
||||||
CurNode := trvDirectories.Items.AddChild(CurNode, eStr[i]);
|
|
||||||
end;
|
|
||||||
if trvDirectories.Items.Count <> 0 then
|
|
||||||
trvDirectories.Items.Item[0].Expand(True);
|
|
||||||
eStr.Free;
|
|
||||||
|
|
||||||
// ... scan for directories ...
|
|
||||||
with GetAllDirs do begin
|
with GetAllDirs do begin
|
||||||
for i := 0 to Count -1 do
|
for i := 0 to Count -1 do begin
|
||||||
trvDirectories.Items.AddChild(trvDirectories.Items.AddChild(CurNode, Strings[i]), 'Scanning...');
|
CurNode := trvDirectories.Items.Add(nil, Strings[i]);
|
||||||
|
if (Pos('/' + CurNode.Text + '/', Path) = 0) then begin
|
||||||
|
trvDirectories.Items.AddChild(CurNode, 'Scanning...');
|
||||||
|
CurNode.Data := Pointer(2);
|
||||||
|
end
|
||||||
|
else begin
|
||||||
|
HomeNode := CurNode;
|
||||||
|
CurNode.Data := Pointer(1);
|
||||||
|
Repaint;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
Free;
|
Free;
|
||||||
end;
|
end;
|
||||||
|
trvDirectories.Items.EndUpdate;
|
||||||
|
trvDirectories.TopItem := HomeNode;
|
||||||
|
IdFTP.ChangeDir(Path);
|
||||||
|
except
|
||||||
|
trvDirectories.Items.EndUpdate;
|
||||||
|
if (IdFTP.Connected) then
|
||||||
|
IdFTP.ChangeDir(Path)
|
||||||
|
else
|
||||||
|
IdFTP.Connect;
|
||||||
|
end;
|
||||||
|
// ... find directories in start path ...
|
||||||
|
CurNode := HomeNode;
|
||||||
|
OldNode := nil;
|
||||||
|
for i := 1 to eStr.Count -1 do begin
|
||||||
|
if (Assigned(CurNode)) then begin
|
||||||
|
CurNode := trvDirectories.Items.AddChild(CurNode, eStr[i]);
|
||||||
|
if (Assigned(OldNode)) then
|
||||||
|
OldNode.Expand(False);
|
||||||
|
CurNode.Data := Pointer(1);
|
||||||
|
OldNode := CurNode;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if (Assigned(CurNode)) then begin
|
||||||
|
trvDirectories.Items.AddChild(CurNode, 'Scanning...');
|
||||||
|
CurNode.Data := Pointer(2);
|
||||||
|
end;
|
||||||
|
// ... expand home node ...
|
||||||
|
if (Assigned(HomeNode)) and (HomeNode <> CurNode) then begin
|
||||||
|
HomeNode.Data := Pointer(0);
|
||||||
|
trvDirectories.TopItem := HomeNode;
|
||||||
|
HomeNode.Expand(False);
|
||||||
|
HomeNode.Data := Pointer(1);
|
||||||
|
end;
|
||||||
|
eStr.Free;
|
||||||
|
// ... scan for directories in home dir ...
|
||||||
if Assigned(CurNode) then
|
if Assigned(CurNode) then
|
||||||
CurNode.Expand(False);
|
CurNode.Expand(False);
|
||||||
|
trvDirectories.TopItem := HomeNode;
|
||||||
except
|
except
|
||||||
on E: Exception do begin
|
on E: Exception do begin
|
||||||
Screen.Cursor := crDefault;
|
Screen.Cursor := crDefault;
|
||||||
@ -753,11 +801,11 @@ procedure TfrmMain.FormCreate(Sender: TObject);
|
|||||||
begin
|
begin
|
||||||
if LowerCase(ParamStr(1)) = '-logftp' then begin
|
if LowerCase(ParamStr(1)) = '-logftp' then begin
|
||||||
MessageBox(Handle, 'FTP installation will be logged to FTP.log!', PChar(Application.Title), MB_ICONINFORMATION);
|
MessageBox(Handle, 'FTP installation will be logged to FTP.log!', PChar(Application.Title), MB_ICONINFORMATION);
|
||||||
IdLogFile.Filename := ExtractFilePath(ParamStr(0)) + 'FTP.log';
|
IdLogFile.Filename := ExtractFilePath(Application.ExeName) + 'FTP.log';
|
||||||
IdLogFile.Active := True;
|
IdLogFile.Active := True;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if not DirectoryExists(ExtractFilePath(ParamStr(0)) + 'files') then begin
|
if not DirectoryExists(ExtractFilePath(Application.ExeName) + 'files') then begin
|
||||||
MessageBox(Handle, 'The files-folder couldn''t be found. Run the Pre-Installer of AMX Mod X and try again.', 'Error', MB_ICONERROR);
|
MessageBox(Handle, 'The files-folder couldn''t be found. Run the Pre-Installer of AMX Mod X and try again.', 'Error', MB_ICONERROR);
|
||||||
Application.Terminate;
|
Application.Terminate;
|
||||||
end
|
end
|
||||||
@ -768,8 +816,8 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
// delete files, then directories
|
// delete files, then directories
|
||||||
if (DirectoryExists(ExtractFilePath(ParamStr(0)) + 'temp')) then
|
if (DirectoryExists(ExtractFilePath(Application.ExeName) + 'temp')) then
|
||||||
DelTree(ExtractFilePath(ParamStr(0)) + 'temp');
|
DelTree(ExtractFilePath(Application.ExeName) + 'temp');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrmMain.cmdProxySettingsClick(Sender: TObject);
|
procedure TfrmMain.cmdProxySettingsClick(Sender: TObject);
|
||||||
@ -811,11 +859,24 @@ end;
|
|||||||
|
|
||||||
procedure TfrmMain.trvDirectoriesExpanded(Sender: TObject;
|
procedure TfrmMain.trvDirectoriesExpanded(Sender: TObject;
|
||||||
Node: TTreeNode);
|
Node: TTreeNode);
|
||||||
|
|
||||||
|
function NodeExists(const SNode: TTreeNode; const Text: String): Boolean;
|
||||||
|
var i: integer;
|
||||||
|
begin
|
||||||
|
Result := False;
|
||||||
|
for i := 0 to SNode.Count -1 do begin
|
||||||
|
if (SNode.Item[i].Text = Text) then begin
|
||||||
|
Result := True;
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
var ePath: String;
|
var ePath: String;
|
||||||
CurNode: TTreeNode;
|
CurNode: TTreeNode;
|
||||||
i: integer;
|
i: integer;
|
||||||
begin
|
begin
|
||||||
if Node.Item[0].Text = 'Scanning...' then begin // no directories added yet
|
if (Integer(Node.Data) <> 0) then begin // no directories added yet
|
||||||
Screen.Cursor := crHourGlass;
|
Screen.Cursor := crHourGlass;
|
||||||
// get complete path
|
// get complete path
|
||||||
ePath := '/';
|
ePath := '/';
|
||||||
@ -831,15 +892,23 @@ begin
|
|||||||
Repaint;
|
Repaint;
|
||||||
IdFTP.ChangeDir(ePath);
|
IdFTP.ChangeDir(ePath);
|
||||||
with GetAllDirs do begin
|
with GetAllDirs do begin
|
||||||
|
if (Integer(Node.Data) = 2) and (Node.Count > 0) then
|
||||||
Node.Item[0].Free;
|
Node.Item[0].Free;
|
||||||
for i := 0 to Count -1 do begin
|
for i := 0 to Count -1 do begin
|
||||||
trvDirectories.Items.AddChild(trvDirectories.Items.AddChild(Node, Strings[i]), 'Scanning...');
|
if (not NodeExists(Node, Strings[i])) then begin
|
||||||
|
CurNode := trvDirectories.Items.AddChild(Node, Strings[i]);
|
||||||
|
trvDirectories.Items.AddChild(CurNode, 'Scanning...');
|
||||||
|
CurNode.Data := Pointer(2);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
Free;
|
Free;
|
||||||
end;
|
end;
|
||||||
finally
|
except
|
||||||
|
if (Integer(Node.Data) = 2) and (Node.Count > 0) then
|
||||||
|
Node.Item[0].Free;
|
||||||
Application.ProcessMessages;
|
Application.ProcessMessages;
|
||||||
end;
|
end;
|
||||||
|
Node.Data := Pointer(0); // scan done
|
||||||
Screen.Cursor := crDefault;
|
Screen.Cursor := crDefault;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -882,8 +951,8 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if (DirectoryExists(ExtractFilePath(ParamStr(0)) + 'temp')) then
|
if (DirectoryExists(ExtractFilePath(Application.ExeName) + 'temp')) then
|
||||||
DelTree(ExtractFilePath(ParamStr(0)) + 'temp');
|
DelTree(ExtractFilePath(Application.ExeName) + 'temp');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrmMain.ExceptionHandler(Sender: TObject; E: Exception);
|
procedure TfrmMain.ExceptionHandler(Sender: TObject; E: Exception);
|
||||||
@ -948,4 +1017,10 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TfrmMain.trvDirectoriesChange(Sender: TObject; Node: TTreeNode);
|
||||||
|
begin
|
||||||
|
if (Screen.Cursor <> crHourGlass) and (Assigned(Node)) and (Integer(Node.Data) = 1) then
|
||||||
|
Node.Expand(False);
|
||||||
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
@ -141,7 +141,7 @@ public addadminfn(id, level, cid)
|
|||||||
if (equali(t_arg, "name"))
|
if (equali(t_arg, "name"))
|
||||||
idtype |= ADMIN_LOOKUP
|
idtype |= ADMIN_LOOKUP
|
||||||
} else {
|
} else {
|
||||||
console_print(id, "[%s] Unknown idtype ^"%s^", use one of: steamid, ip, name", PLUGINNAME, t_arg)
|
console_print(id, "[%s] Unknown id type ^"%s^", use one of: steamid, ip, name", PLUGINNAME, t_arg)
|
||||||
return PLUGIN_HANDLED
|
return PLUGIN_HANDLED
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -574,13 +574,13 @@ getAccess(id, name[], authid[], ip[], password[])
|
|||||||
} else {
|
} else {
|
||||||
if (g_aFlags[i] & FLAG_TAG)
|
if (g_aFlags[i] & FLAG_TAG)
|
||||||
{
|
{
|
||||||
if (contain(name, g_aName[i]) != -1)
|
if (containi(name, g_aName[i]) != -1)
|
||||||
{
|
{
|
||||||
index = i
|
index = i
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (equal(name, g_aName[i]))
|
else if (equali(name, g_aName[i]))
|
||||||
{
|
{
|
||||||
index = i
|
index = i
|
||||||
break
|
break
|
||||||
@ -652,9 +652,13 @@ accessUser(id, name[] = "")
|
|||||||
get_user_authid(id, userauthid, 31)
|
get_user_authid(id, userauthid, 31)
|
||||||
|
|
||||||
if (name[0])
|
if (name[0])
|
||||||
|
{
|
||||||
copy(username, 31, name)
|
copy(username, 31, name)
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
get_user_name(id, username, 31)
|
get_user_name(id, username, 31)
|
||||||
|
}
|
||||||
|
|
||||||
get_cvar_string("amx_password_field", passfield, 31)
|
get_cvar_string("amx_password_field", passfield, 31)
|
||||||
get_user_info(id, passfield, password, 31)
|
get_user_info(id, passfield, password, 31)
|
||||||
@ -662,7 +666,9 @@ accessUser(id, name[] = "")
|
|||||||
new result = getAccess(id, username, userauthid, userip, password)
|
new result = getAccess(id, username, userauthid, userip, password)
|
||||||
|
|
||||||
if (result & 1)
|
if (result & 1)
|
||||||
|
{
|
||||||
client_cmd(id, "echo ^"* %L^"", id, "INV_PAS")
|
client_cmd(id, "echo ^"* %L^"", id, "INV_PAS")
|
||||||
|
}
|
||||||
|
|
||||||
if (result & 2)
|
if (result & 2)
|
||||||
{
|
{
|
||||||
@ -671,10 +677,14 @@ accessUser(id, name[] = "")
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (result & 4)
|
if (result & 4)
|
||||||
|
{
|
||||||
client_cmd(id, "echo ^"* %L^"", id, "PAS_ACC")
|
client_cmd(id, "echo ^"* %L^"", id, "PAS_ACC")
|
||||||
|
}
|
||||||
|
|
||||||
if (result & 8)
|
if (result & 8)
|
||||||
|
{
|
||||||
client_cmd(id, "echo ^"* %L^"", id, "PRIV_SET")
|
client_cmd(id, "echo ^"* %L^"", id, "PRIV_SET")
|
||||||
|
}
|
||||||
|
|
||||||
return PLUGIN_CONTINUE
|
return PLUGIN_CONTINUE
|
||||||
}
|
}
|
||||||
@ -682,15 +692,19 @@ accessUser(id, name[] = "")
|
|||||||
public client_infochanged(id)
|
public client_infochanged(id)
|
||||||
{
|
{
|
||||||
if (!is_user_connected(id) || !get_cvar_num("amx_mode"))
|
if (!is_user_connected(id) || !get_cvar_num("amx_mode"))
|
||||||
|
{
|
||||||
return PLUGIN_CONTINUE
|
return PLUGIN_CONTINUE
|
||||||
|
}
|
||||||
|
|
||||||
new newname[32], oldname[32]
|
new newname[32], oldname[32]
|
||||||
|
|
||||||
get_user_name(id, oldname, 31)
|
get_user_name(id, oldname, 31)
|
||||||
get_user_info(id, "name", newname, 31)
|
get_user_info(id, "name", newname, 31)
|
||||||
|
|
||||||
if (!equal(newname, oldname))
|
if (!equali(newname, oldname))
|
||||||
|
{
|
||||||
accessUser(id, newname)
|
accessUser(id, newname)
|
||||||
|
}
|
||||||
|
|
||||||
return PLUGIN_CONTINUE
|
return PLUGIN_CONTINUE
|
||||||
}
|
}
|
||||||
|
@ -236,6 +236,8 @@ public cmdPsay(id, level, cid)
|
|||||||
if (!priv)
|
if (!priv)
|
||||||
return PLUGIN_HANDLED
|
return PLUGIN_HANDLED
|
||||||
|
|
||||||
|
get_user_name(priv, name, 31);
|
||||||
|
|
||||||
new length = strlen(name) + 1
|
new length = strlen(name) + 1
|
||||||
new message[192], name2[32], authid[32], authid2[32], userid, userid2
|
new message[192], name2[32], authid[32], authid2[32], userid, userid2
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ public plugin_init()
|
|||||||
register_concmd("amx_kick", "cmdKick", ADMIN_KICK, "<name or #userid> [reason]")
|
register_concmd("amx_kick", "cmdKick", ADMIN_KICK, "<name or #userid> [reason]")
|
||||||
register_concmd("amx_ban", "cmdBan", ADMIN_BAN, "<name or #userid> <minutes> [reason]")
|
register_concmd("amx_ban", "cmdBan", ADMIN_BAN, "<name or #userid> <minutes> [reason]")
|
||||||
register_concmd("amx_banip", "cmdBanIP", ADMIN_BAN, "<name or #userid> <minutes> [reason]")
|
register_concmd("amx_banip", "cmdBanIP", ADMIN_BAN, "<name or #userid> <minutes> [reason]")
|
||||||
register_concmd("amx_addban", "cmdAddBan", ADMIN_BAN, "<authid or ip> <minutes> [reason]")
|
register_concmd("amx_addban", "cmdAddBan", ADMIN_RCON, "<authid or ip> <minutes> [reason]")
|
||||||
register_concmd("amx_unban", "cmdUnban", ADMIN_BAN, "<authid or ip>")
|
register_concmd("amx_unban", "cmdUnban", ADMIN_BAN, "<authid or ip>")
|
||||||
register_concmd("amx_slay", "cmdSlay", ADMIN_SLAY, "<name or #userid>")
|
register_concmd("amx_slay", "cmdSlay", ADMIN_SLAY, "<name or #userid>")
|
||||||
register_concmd("amx_slap", "cmdSlap", ADMIN_SLAY, "<name or #userid> [power]")
|
register_concmd("amx_slap", "cmdSlap", ADMIN_SLAY, "<name or #userid> [power]")
|
||||||
@ -571,7 +571,7 @@ public cmdPlugins(id, level, cid)
|
|||||||
get_plugin(i, filename, 31, name, 31, version, 31, author, 31, status, 31)
|
get_plugin(i, filename, 31, name, 31, version, 31, author, 31, status, 31)
|
||||||
console_print(id, "%-18.17s %-8.7s %-17.16s %-16.15s %-9.8s", name, version, author, filename, status)
|
console_print(id, "%-18.17s %-8.7s %-17.16s %-16.15s %-9.8s", name, version, author, filename, status)
|
||||||
|
|
||||||
if (equal(status, "running"))
|
if (status[0]=='d' || status[0]=='r') // "debug" or "running"
|
||||||
running++
|
running++
|
||||||
}
|
}
|
||||||
console_print(id, "%L", id, "PLUGINS_RUN", num, running)
|
console_print(id, "%L", id, "PLUGINS_RUN", num, running)
|
||||||
|
@ -21,6 +21,11 @@ new g_FwdKeyValue
|
|||||||
new g_PlayerModels[33][64]
|
new g_PlayerModels[33][64]
|
||||||
new g_PlayerModeled[33]
|
new g_PlayerModeled[33]
|
||||||
|
|
||||||
|
/* User Messages */
|
||||||
|
new g_msgDamage
|
||||||
|
new g_msgDeathMsg
|
||||||
|
new g_msgScoreInfo
|
||||||
|
|
||||||
new g_LastTrace = 0
|
new g_LastTrace = 0
|
||||||
|
|
||||||
VexdUM_Register()
|
VexdUM_Register()
|
||||||
@ -51,6 +56,11 @@ VexdUM_Register()
|
|||||||
g_FwdTraceLine = CreateMultiForwardEx("traceline", ET_STOP, FORWARD_ONLY_OLD, FP_CELL)
|
g_FwdTraceLine = CreateMultiForwardEx("traceline", ET_STOP, FORWARD_ONLY_OLD, FP_CELL)
|
||||||
g_FwdSetCliKeyValue = CreateMultiForwardEx("setclientkeyvalue", ET_STOP, FORWARD_ONLY_OLD, FP_CELL, FP_STRING, FP_STRING)
|
g_FwdSetCliKeyValue = CreateMultiForwardEx("setclientkeyvalue", ET_STOP, FORWARD_ONLY_OLD, FP_CELL, FP_STRING, FP_STRING)
|
||||||
g_FwdKeyValue = CreateMultiForwardEx("keyvalue", ET_STOP, FORWARD_ONLY_OLD, FP_CELL)
|
g_FwdKeyValue = CreateMultiForwardEx("keyvalue", ET_STOP, FORWARD_ONLY_OLD, FP_CELL)
|
||||||
|
|
||||||
|
/* User Messages */
|
||||||
|
g_msgDamage = get_user_msgid("Damage")
|
||||||
|
g_msgDeathMsg = get_user_msgid("DeathMsg")
|
||||||
|
g_msgScoreInfo = get_user_msgid("ScoreInfo")
|
||||||
}
|
}
|
||||||
|
|
||||||
VexdUM_Natives()
|
VexdUM_Natives()
|
||||||
@ -73,6 +83,9 @@ VexdUM_Natives()
|
|||||||
register_native("get_maxentities", "__get_maxentities")
|
register_native("get_maxentities", "__get_maxentities")
|
||||||
register_native("PointContents", "__PointContents")
|
register_native("PointContents", "__PointContents")
|
||||||
register_native("DispatchKeyValue", "__DispatchKeyValue")
|
register_native("DispatchKeyValue", "__DispatchKeyValue")
|
||||||
|
register_native("entity_use","__entity_use")
|
||||||
|
register_native("get_num_ents","__get_num_ents")
|
||||||
|
register_native("take_damage","__take_damage")
|
||||||
|
|
||||||
if (g_ModType == MOD_CSTRIKE)
|
if (g_ModType == MOD_CSTRIKE)
|
||||||
{
|
{
|
||||||
@ -102,6 +115,90 @@ GetClientKeyValue(id, const key[], value[], maxlen)
|
|||||||
engfunc(EngFunc_InfoKeyValue, buffer, key, value, maxlen)
|
engfunc(EngFunc_InfoKeyValue, buffer, key, value, maxlen)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Death(victim, killer, weapon[64], hs)
|
||||||
|
{
|
||||||
|
if(pev(victim,pev_takedamage) > DAMAGE_NO)
|
||||||
|
{
|
||||||
|
new inflictor = pev(killer,pev_owner)
|
||||||
|
if(pev(killer,pev_flags) & (FL_CLIENT | FL_FAKECLIENT))
|
||||||
|
{
|
||||||
|
if(equal(weapon,""))
|
||||||
|
{
|
||||||
|
pev(killer,pev_viewmodel2,weapon,63)
|
||||||
|
|
||||||
|
replace(weapon,63,"models/v_","")
|
||||||
|
weapon[strlen(weapon) - 4] = '^0'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(inflictor > 0 && inflictor < get_maxplayers())
|
||||||
|
{
|
||||||
|
if(equal(weapon,""))
|
||||||
|
{
|
||||||
|
pev(killer,pev_viewmodel2,weapon,63)
|
||||||
|
|
||||||
|
replace(weapon,63,"weapon_","")
|
||||||
|
replace(weapon,63,"monster_","")
|
||||||
|
replace(weapon,63,"func_","")
|
||||||
|
}
|
||||||
|
|
||||||
|
if(inflictor == victim)
|
||||||
|
{
|
||||||
|
killer = victim
|
||||||
|
} else {
|
||||||
|
killer = inflictor
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
message_begin(MSG_ALL,g_msgDeathMsg)
|
||||||
|
write_byte(killer)
|
||||||
|
write_byte(victim)
|
||||||
|
write_byte(hs)
|
||||||
|
write_string(weapon)
|
||||||
|
message_end()
|
||||||
|
|
||||||
|
new vname[32],vauthid[32],vteam[32]
|
||||||
|
get_user_name(victim,vname,31)
|
||||||
|
get_user_authid(victim,vauthid,31)
|
||||||
|
get_user_team(victim,vteam,31)
|
||||||
|
|
||||||
|
if(victim == killer)
|
||||||
|
{
|
||||||
|
log_message("^"%s<%i><%s><%s>^" killed self with ^"%s^"^n",vname,get_user_userid(victim),
|
||||||
|
vauthid,vteam,weapon)
|
||||||
|
}
|
||||||
|
else if(pev(killer,pev_flags) & (FL_CLIENT | FL_FAKECLIENT))
|
||||||
|
{
|
||||||
|
new kname[32],kauthid[32],kteam[32],team
|
||||||
|
get_user_name(killer,kname,31)
|
||||||
|
get_user_authid(killer,kauthid,31)
|
||||||
|
team = get_user_team(killer,kteam,31)
|
||||||
|
|
||||||
|
log_message("^"%s<%i><%s><%s>^" killed ^"%s<%i><%s><%s>^" with ^"%s^"^n",kname,get_user_userid(killer),
|
||||||
|
kauthid,kteam,vname,get_user_userid(victim),vauthid,vteam,weapon)
|
||||||
|
|
||||||
|
new Float:frags
|
||||||
|
pev(killer,pev_frags,frags)
|
||||||
|
set_pev(killer,pev_frags,frags+1.0)
|
||||||
|
|
||||||
|
message_begin(MSG_ALL,g_msgScoreInfo)
|
||||||
|
write_byte(killer)
|
||||||
|
write_short(floatround(frags))
|
||||||
|
write_short(get_user_deaths(killer))
|
||||||
|
write_short(0)
|
||||||
|
write_short(team)
|
||||||
|
message_end()
|
||||||
|
|
||||||
|
pev(victim,pev_frags,frags)
|
||||||
|
set_pev(victim,pev_frags,frags+1.0)
|
||||||
|
} else {
|
||||||
|
log_message("^"%s<%i><%s><%s>^" killed by ^"%s^"^n",vname,get_user_userid(victim),vauthid,vteam,weapon)
|
||||||
|
}
|
||||||
|
|
||||||
|
set_msg_block(g_msgDeathMsg,BLOCK_ONCE)
|
||||||
|
dllfunc(DLLFunc_ClientKill,victim)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public __is_entity(plid, num)
|
public __is_entity(plid, num)
|
||||||
{
|
{
|
||||||
new ent = get_param(1)
|
new ent = get_param(1)
|
||||||
@ -440,6 +537,57 @@ public __DispatchKeyValue(plid, num)
|
|||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public __entity_use(plid, num)
|
||||||
|
{
|
||||||
|
new entUsed = get_param(1)
|
||||||
|
new entOther = get_param(2)
|
||||||
|
return dllfunc(DLLFunc_Use,entUsed,entOther)
|
||||||
|
}
|
||||||
|
|
||||||
|
public __get_num_ents(plid, num)
|
||||||
|
{
|
||||||
|
return engfunc(EngFunc_NumberOfEntities)
|
||||||
|
}
|
||||||
|
|
||||||
|
public __take_damage(plid, num)
|
||||||
|
{
|
||||||
|
new victim = get_param(1)
|
||||||
|
new attacker = get_param(2)
|
||||||
|
new Float:orig[3]
|
||||||
|
get_array_f(3,orig,3)
|
||||||
|
new Float:dmg = get_param_f(4)
|
||||||
|
new bit = get_param(5)
|
||||||
|
new wpnName[64]
|
||||||
|
get_string(6,wpnName,63)
|
||||||
|
new hs = get_param(7)
|
||||||
|
|
||||||
|
if(pev(victim,pev_takedamage) > DAMAGE_NO)
|
||||||
|
{
|
||||||
|
set_pev(victim,pev_dmg_inflictor,attacker)
|
||||||
|
|
||||||
|
new Float:olddmg
|
||||||
|
pev(victim,pev_dmg_take,olddmg)
|
||||||
|
set_pev(victim,pev_dmg_take,olddmg+dmg)
|
||||||
|
|
||||||
|
message_begin(MSG_ONE, g_msgDamage, {0,0,0} , victim)
|
||||||
|
write_byte(0)
|
||||||
|
write_byte(floatround(olddmg+dmg))
|
||||||
|
write_long(bit)
|
||||||
|
write_coord(floatround(orig[0]))
|
||||||
|
write_coord(floatround(orig[1]))
|
||||||
|
write_coord(floatround(orig[2]))
|
||||||
|
message_end()
|
||||||
|
|
||||||
|
new Float:health
|
||||||
|
pev(victim,pev_health,health)
|
||||||
|
if((dmg >= health) && (health > 0.0))
|
||||||
|
{
|
||||||
|
Death(victim,attacker,wpnName,hs)
|
||||||
|
} else {
|
||||||
|
set_pev(victim,pev_health,health-dmg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*********************************
|
/*********************************
|
||||||
***** HOOKS *********************
|
***** HOOKS *********************
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -160,7 +160,8 @@ displayCmdMenu(id, pos)
|
|||||||
if (start >= g_menuSelectNum[id])
|
if (start >= g_menuSelectNum[id])
|
||||||
start = pos = g_menuPosition[id] = 0
|
start = pos = g_menuPosition[id] = 0
|
||||||
|
|
||||||
new len = format(menuBody, 511, g_coloredMenus ? "\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n", id, g_cmdMenuName[g_menuLayer[id]], pos + 1, (g_menuSelectNum[id] / 8 + ((g_menuSelectNum[id] % 8) ? 1 : 0)))
|
new limit = (g_menuSelectNum[id] / 8 + ((g_menuSelectNum[id] % 8)))
|
||||||
|
new len = format(menuBody, 511, g_coloredMenus ? "\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n", id, g_cmdMenuName[g_menuLayer[id]], pos + 1, (limit == 0) ? 1 : limit)
|
||||||
new end = start + 8
|
new end = start + 8
|
||||||
new keys = MENU_KEY_0
|
new keys = MENU_KEY_0
|
||||||
|
|
||||||
|
@ -420,7 +420,7 @@ public client_death(killer, victim, wpnindex, hitplace, TK)
|
|||||||
|
|
||||||
get_user_name(g_LastAnnounce, name, 31)
|
get_user_name(g_LastAnnounce, name, 31)
|
||||||
|
|
||||||
set_hudmessage(0, 255, 255, -1.0, 0.35, 0, 6.0, 6.0, 0.5, 0.15, -1)
|
set_hudmessage(0, 255, 255, -1.0, 0.38, 0, 6.0, 6.0, 0.5, 0.15, -1)
|
||||||
ShowSyncHudMsg(0, g_center1_sync, "%s (%d HP) vs. %d %s%s: %L", name, get_user_health(g_LastAnnounce), oposite, g_teamsNames[_team], (oposite == 1) ? "" : "S", LANG_PLAYER, g_LastMessages[random_num(0, 3)])
|
ShowSyncHudMsg(0, g_center1_sync, "%s (%d HP) vs. %d %s%s: %L", name, get_user_health(g_LastAnnounce), oposite, g_teamsNames[_team], (oposite == 1) ? "" : "S", LANG_PLAYER, g_LastMessages[random_num(0, 3)])
|
||||||
|
|
||||||
if (!is_user_connecting(g_LastAnnounce))
|
if (!is_user_connecting(g_LastAnnounce))
|
||||||
@ -566,7 +566,7 @@ public showStatus(id)
|
|||||||
|
|
||||||
public eNewRound()
|
public eNewRound()
|
||||||
{
|
{
|
||||||
if (read_data(1) == floatround(get_cvar_float("mp_roundtime") * 60.0))
|
if (read_data(1) == floatround(get_cvar_float("mp_roundtime") * 60.0,floatround_floor))
|
||||||
{
|
{
|
||||||
g_firstBlood = 1
|
g_firstBlood = 1
|
||||||
g_C4Timer = 0
|
g_C4Timer = 0
|
||||||
|
@ -1268,11 +1268,8 @@ public eventStartGame()
|
|||||||
public eventStartRound()
|
public eventStartRound()
|
||||||
{
|
{
|
||||||
new iTeam, id, i
|
new iTeam, id, i
|
||||||
new iRoundTime
|
|
||||||
|
|
||||||
iRoundTime = read_data(1)
|
if (read_data(1) >= floatround(get_cvar_float("mp_roundtime") * 60.0,floatround_floor))
|
||||||
|
|
||||||
if (iRoundTime >= get_cvar_float("mp_roundtime") * 60)
|
|
||||||
{
|
{
|
||||||
#if defined STATSX_DEBUG
|
#if defined STATSX_DEBUG
|
||||||
log_amx("Reset round stats")
|
log_amx("Reset round stats")
|
||||||
|
@ -11,9 +11,9 @@
|
|||||||
#endif
|
#endif
|
||||||
#define _amxconst_included
|
#define _amxconst_included
|
||||||
|
|
||||||
#define AMXX_VERSION 1.763
|
#define AMXX_VERSION 1.764
|
||||||
#define AMXX_VERSION_NUM 176
|
#define AMXX_VERSION_NUM 176
|
||||||
stock const AMXX_VERSION_STR[]="1.76c"
|
stock const AMXX_VERSION_STR[]="1.76d";
|
||||||
|
|
||||||
#define M_PI 3.1415926535
|
#define M_PI 3.1415926535
|
||||||
|
|
||||||
|
@ -11,6 +11,14 @@
|
|||||||
#endif
|
#endif
|
||||||
#define _amxmisc_included
|
#define _amxmisc_included
|
||||||
|
|
||||||
|
#if !defined _amxmodx_included
|
||||||
|
#if defined AMXMOD_BCOMPAT
|
||||||
|
#include <amxmod>
|
||||||
|
#else
|
||||||
|
#include <amxmodx>
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined AMXMOD_BCOMPAT
|
#if defined AMXMOD_BCOMPAT
|
||||||
#if defined _translator_included
|
#if defined _translator_included
|
||||||
#define SIMPLE_T(%1) _T(%1)
|
#define SIMPLE_T(%1) _T(%1)
|
||||||
@ -21,48 +29,64 @@
|
|||||||
|
|
||||||
stock is_user_admin(id)
|
stock is_user_admin(id)
|
||||||
{
|
{
|
||||||
return ( get_user_flags(id)>0 && !(get_user_flags(id)&ADMIN_USER) )
|
return ( get_user_flags(id)>0 && !(get_user_flags(id)&ADMIN_USER) );
|
||||||
}
|
}
|
||||||
|
|
||||||
stock cmd_access(id,level,cid,num) {
|
stock cmd_access(id,level,cid,num)
|
||||||
new has_access = 0
|
{
|
||||||
if ( id==(is_dedicated_server()?0:1) ) {
|
new has_access = 0;
|
||||||
has_access = 1
|
if ( id==(is_dedicated_server()?0:1) )
|
||||||
} else if ( level==ADMIN_ADMIN ) {
|
{
|
||||||
|
has_access = 1;
|
||||||
|
}
|
||||||
|
else if ( level==ADMIN_ADMIN )
|
||||||
|
{
|
||||||
if ( is_user_admin(id) )
|
if ( is_user_admin(id) )
|
||||||
has_access = 1
|
{
|
||||||
} else if ( get_user_flags(id) & level ) {
|
has_access = 1;
|
||||||
has_access = 1
|
}
|
||||||
} else if (level == ADMIN_ALL) {
|
}
|
||||||
has_access = 1
|
else if ( get_user_flags(id) & level )
|
||||||
|
{
|
||||||
|
has_access = 1;
|
||||||
|
}
|
||||||
|
else if (level == ADMIN_ALL)
|
||||||
|
{
|
||||||
|
has_access = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( has_access==0 ) {
|
if ( has_access==0 )
|
||||||
|
{
|
||||||
#if defined AMXMOD_BCOMPAT
|
#if defined AMXMOD_BCOMPAT
|
||||||
console_print(id, SIMPLE_T("You have no access to that command."))
|
console_print(id, SIMPLE_T("You have no access to that command."));
|
||||||
#else
|
#else
|
||||||
console_print(id,"%L",id,"NO_ACC_COM")
|
console_print(id,"%L",id,"NO_ACC_COM");
|
||||||
#endif
|
#endif
|
||||||
return 0
|
return 0;
|
||||||
}
|
}
|
||||||
if (read_argc() < num) {
|
if (read_argc() < num)
|
||||||
new hcmd[32], hinfo[128], hflag
|
{
|
||||||
get_concmd(cid,hcmd,31,hflag,hinfo,127,level)
|
new hcmd[32], hinfo[128], hflag;
|
||||||
|
get_concmd(cid,hcmd,31,hflag,hinfo,127,level);
|
||||||
#if defined AMXMOD_BCOMPAT
|
#if defined AMXMOD_BCOMPAT
|
||||||
console_print(id, SIMPLE_T("Usage: %s %s"), hcmd, SIMPLE_T(hinfo))
|
console_print(id, SIMPLE_T("Usage: %s %s"), hcmd, SIMPLE_T(hinfo));
|
||||||
#else
|
#else
|
||||||
console_print(id,"%L: %s %s",id,"USAGE",hcmd,hinfo)
|
console_print(id,"%L: %s %s",id,"USAGE",hcmd,hinfo);
|
||||||
#endif
|
#endif
|
||||||
return 0
|
return 0;
|
||||||
}
|
}
|
||||||
return 1
|
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
stock access(id,level) {
|
stock access(id,level)
|
||||||
|
{
|
||||||
if ( level==ADMIN_ADMIN )
|
if ( level==ADMIN_ADMIN )
|
||||||
return is_user_admin(id)
|
{
|
||||||
|
return is_user_admin(id);
|
||||||
|
}
|
||||||
|
|
||||||
return (get_user_flags(id) & level)
|
return (get_user_flags(id) & level);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Flags:
|
/* Flags:
|
||||||
@ -70,124 +94,150 @@ stock access(id,level) {
|
|||||||
* 2 - allow yourself
|
* 2 - allow yourself
|
||||||
* 4 - must be alive
|
* 4 - must be alive
|
||||||
* 8 - can't be bot */
|
* 8 - can't be bot */
|
||||||
stock cmd_target(id,const arg[],flags = 1) {
|
stock cmd_target(id,const arg[],flags = 1)
|
||||||
new player = find_player("bl",arg)
|
{
|
||||||
if (player) {
|
new player = find_player("bl",arg);
|
||||||
if ( player != find_player("blj",arg) ) {
|
if (player)
|
||||||
|
{
|
||||||
|
if ( player != find_player("blj",arg) )
|
||||||
|
{
|
||||||
#if defined AMXMOD_BCOMPAT
|
#if defined AMXMOD_BCOMPAT
|
||||||
console_print(id, SIMPLE_T("There are more clients matching to your argument"))
|
console_print(id, SIMPLE_T("There are more clients matching to your argument"));
|
||||||
#else
|
#else
|
||||||
console_print(id,"%L",id,"MORE_CL_MATCHT")
|
console_print(id,"%L",id,"MORE_CL_MATCHT");
|
||||||
#endif
|
#endif
|
||||||
return 0
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ( ( player = find_player("c",arg) )==0 && arg[0]=='#' && arg[1] )
|
else if ( ( player = find_player("c",arg) )==0 && arg[0]=='#' && arg[1] )
|
||||||
player = find_player("k",str_to_num(arg[1]))
|
{
|
||||||
if (!player) {
|
player = find_player("k",str_to_num(arg[1]));
|
||||||
|
}
|
||||||
|
if (!player)
|
||||||
|
{
|
||||||
#if defined AMXMOD_BCOMPAT
|
#if defined AMXMOD_BCOMPAT
|
||||||
console_print(id, SIMPLE_T("Client with that name or userid not found"))
|
console_print(id, SIMPLE_T("Client with that name or userid not found"));
|
||||||
#else
|
#else
|
||||||
console_print(id,"%L",id,"CL_NOT_FOUND")
|
console_print(id,"%L",id,"CL_NOT_FOUND");
|
||||||
#endif
|
#endif
|
||||||
return 0
|
return 0;
|
||||||
}
|
}
|
||||||
if (flags & 1) {
|
if (flags & 1)
|
||||||
if ((get_user_flags(player)&ADMIN_IMMUNITY) && ((flags&2)?(id!=player):true) ) {
|
{
|
||||||
new imname[32]
|
if ((get_user_flags(player)&ADMIN_IMMUNITY) && ((flags&2)?(id!=player):true) )
|
||||||
get_user_name(player,imname,31)
|
{
|
||||||
|
new imname[32];
|
||||||
|
get_user_name(player,imname,31);
|
||||||
#if defined AMXMOD_BCOMPAT
|
#if defined AMXMOD_BCOMPAT
|
||||||
console_print(id, SIMPLE_T("Client ^"%s^" has immunity"), imname)
|
console_print(id, SIMPLE_T("Client ^"%s^" has immunity"), imname);
|
||||||
#else
|
#else
|
||||||
console_print(id,"%L",id,"CLIENT_IMM",imname)
|
console_print(id,"%L",id,"CLIENT_IMM",imname);
|
||||||
#endif
|
#endif
|
||||||
return 0
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (flags & 4) {
|
if (flags & 4)
|
||||||
if (!is_user_alive(player)) {
|
{
|
||||||
new imname[32]
|
if (!is_user_alive(player))
|
||||||
get_user_name(player,imname,31)
|
{
|
||||||
|
new imname[32];
|
||||||
|
get_user_name(player,imname,31);
|
||||||
#if defined AMXMOD_BCOMPAT
|
#if defined AMXMOD_BCOMPAT
|
||||||
console_print(id, SIMPLE_T("That action can't be performed on dead client ^"%s^""), imname)
|
console_print(id, SIMPLE_T("That action can't be performed on dead client ^"%s^""), imname);
|
||||||
#else
|
#else
|
||||||
console_print(id,"%L",id,"CANT_PERF_DEAD",imname)
|
console_print(id,"%L",id,"CANT_PERF_DEAD",imname);
|
||||||
#endif
|
#endif
|
||||||
return 0
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (flags & 8) {
|
if (flags & 8)
|
||||||
if (is_user_bot(player)) {
|
{
|
||||||
new imname[32]
|
if (is_user_bot(player))
|
||||||
get_user_name(player,imname,31)
|
{
|
||||||
|
new imname[32];
|
||||||
|
get_user_name(player,imname,31);
|
||||||
#if defined AMXMOD_BCOMPAT
|
#if defined AMXMOD_BCOMPAT
|
||||||
console_print(id, SIMPLE_T("That action can't be performed on bot ^"%s^""), imname)
|
console_print(id, SIMPLE_T("That action can't be performed on bot ^"%s^""), imname);
|
||||||
#else
|
#else
|
||||||
console_print(id,"%L",id,"CANT_PERF_BOT",imname)
|
console_print(id,"%L",id,"CANT_PERF_BOT",imname);
|
||||||
#endif
|
#endif
|
||||||
return 0
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return player
|
return player;
|
||||||
}
|
}
|
||||||
|
|
||||||
stock show_activity( id, const name[], {Float,_}: ... ) {
|
stock show_activity( id, const name[], {Float,_}: ... )
|
||||||
new buffer[128]
|
{
|
||||||
format_args( buffer , 127 , 2 )
|
new buffer[128];
|
||||||
|
format_args( buffer , 127 , 2 );
|
||||||
switch(get_cvar_num("amx_show_activity"))
|
switch(get_cvar_num("amx_show_activity"))
|
||||||
{
|
{
|
||||||
case 2:
|
case 2:
|
||||||
#if defined AMXMOD_BCOMPAT
|
#if defined AMXMOD_BCOMPAT
|
||||||
client_print(0, print_chat, "%s %s: %s", is_user_admin(id) ? SIMPLE_T("ADMIN") : SIMPLE_T("PLAYER"), name, buffer)
|
client_print(0, print_chat, "%s %s: %s", is_user_admin(id) ? SIMPLE_T("ADMIN") : SIMPLE_T("PLAYER"), name, buffer);
|
||||||
#else
|
#else
|
||||||
client_print(0, print_chat, "%L %s: %s", id, is_user_admin(id) ? "ADMIN" : "PLAYER" , name , buffer )
|
client_print(0, print_chat, "%L %s: %s", id, is_user_admin(id) ? "ADMIN" : "PLAYER" , name , buffer );
|
||||||
#endif
|
#endif
|
||||||
case 1:
|
case 1:
|
||||||
#if defined AMXMOD_BCOMPAT
|
#if defined AMXMOD_BCOMPAT
|
||||||
client_print(0, print_chat, "%s: %s", is_user_admin(id) ? SIMPLE_T("ADMIN") : SIMPLE_T("PLAYER"), buffer)
|
client_print(0, print_chat, "%s: %s", is_user_admin(id) ? SIMPLE_T("ADMIN") : SIMPLE_T("PLAYER"), buffer);
|
||||||
#else
|
#else
|
||||||
client_print(0, print_chat, "%L: %s", id, is_user_admin(id) ? "ADMIN" : "PLAYER", buffer )
|
client_print(0, print_chat, "%L: %s", id, is_user_admin(id) ? "ADMIN" : "PLAYER", buffer );
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stock colored_menus() {
|
stock colored_menus()
|
||||||
new mod_name[32]
|
{
|
||||||
get_modname(mod_name,31)
|
new mod_name[32];
|
||||||
|
get_modname(mod_name,31);
|
||||||
|
|
||||||
return ( equal(mod_name,"cstrike") || equal(mod_name,"czero") || equal(mod_name,"dod") )
|
return ( equal(mod_name,"cstrike") || equal(mod_name,"czero") || equal(mod_name,"dod") );
|
||||||
}
|
}
|
||||||
|
|
||||||
stock cstrike_running() {
|
stock cstrike_running()
|
||||||
new mod_name[32]
|
{
|
||||||
get_modname(mod_name,31)
|
new mod_name[32];
|
||||||
|
get_modname(mod_name,31);
|
||||||
|
|
||||||
return ( equal(mod_name,"cstrike") || equal(mod_name,"czero") || equal(mod_name,"csv15") || equal(mod_name,"cs13") )
|
return ( equal(mod_name,"cstrike") || equal(mod_name,"czero") || equal(mod_name,"csv15") || equal(mod_name,"cs13") );
|
||||||
}
|
}
|
||||||
|
|
||||||
stock is_running(const mod[]) {
|
stock is_running(const mod[])
|
||||||
new mod_name[32]
|
{
|
||||||
get_modname(mod_name,31)
|
new mod_name[32];
|
||||||
|
get_modname(mod_name,31);
|
||||||
|
|
||||||
return equal(mod_name,mod)
|
return equal(mod_name,mod);
|
||||||
}
|
}
|
||||||
|
|
||||||
stock get_basedir(name[],len)
|
stock get_basedir(name[],len)
|
||||||
return get_localinfo("amxx_basedir",name,len)
|
{
|
||||||
|
return get_localinfo("amxx_basedir",name,len);
|
||||||
|
}
|
||||||
|
|
||||||
stock get_configsdir(name[],len)
|
stock get_configsdir(name[],len)
|
||||||
return get_localinfo("amxx_configsdir",name,len)
|
{
|
||||||
|
return get_localinfo("amxx_configsdir",name,len);
|
||||||
|
}
|
||||||
|
|
||||||
stock get_datadir(name[],len)
|
stock get_datadir(name[],len)
|
||||||
return get_localinfo("amxx_datadir",name,len)
|
{
|
||||||
|
return get_localinfo("amxx_datadir",name,len);
|
||||||
|
}
|
||||||
|
|
||||||
stock register_menu(title[],keys,function[],outside=0)
|
stock register_menu(const title[],keys,const function[],outside=0)
|
||||||
register_menucmd(register_menuid(title,outside),keys,function)
|
{
|
||||||
|
register_menucmd(register_menuid(title,outside),keys,function);
|
||||||
|
}
|
||||||
|
|
||||||
/* Backwards Compatibility
|
/* Backwards Compatibility
|
||||||
* don't use it! */
|
* don't use it! */
|
||||||
stock get_customdir(name[],len)
|
stock get_customdir(name[],len)
|
||||||
return get_localinfo("amxx_configsdir",name,len)
|
{
|
||||||
|
return get_localinfo("amxx_configsdir",name,len);
|
||||||
|
}
|
||||||
|
|
||||||
/* Add a menu item to Menus Front-End plugin ("amxmodmenu"):
|
/* Add a menu item to Menus Front-End plugin ("amxmodmenu"):
|
||||||
* MENU_TEXT: Text that will be shown for this item in menu
|
* MENU_TEXT: Text that will be shown for this item in menu
|
||||||
@ -195,46 +245,52 @@ stock get_customdir(name[],len)
|
|||||||
* MENU_ACCESS: Access required for menu
|
* MENU_ACCESS: Access required for menu
|
||||||
* MENU_PLUGIN: The exact case-insensitive name of plugin holding the menu command
|
* MENU_PLUGIN: The exact case-insensitive name of plugin holding the menu command
|
||||||
*/
|
*/
|
||||||
stock AddMenuItem(const MENU_TEXT[], const MENU_CMD[], const MENU_ACCESS, const MENU_PLUGIN[]) {
|
stock AddMenuItem(const MENU_TEXT[], const MENU_CMD[], const MENU_ACCESS, const MENU_PLUGIN[])
|
||||||
AddMenuItem_call(MENU_TEXT, MENU_CMD, MENU_ACCESS, MENU_PLUGIN, false)
|
{
|
||||||
|
AddMenuItem_call(MENU_TEXT, MENU_CMD, MENU_ACCESS, MENU_PLUGIN, false);
|
||||||
}
|
}
|
||||||
/* Just like above, but add menu item to "amx_menu", that should also be accessible by non-admins.
|
/* Just like above, but add menu item to "amx_menu", that should also be accessible by non-admins.
|
||||||
*/
|
*/
|
||||||
stock AddClientMenuItem(const MENU_TEXT[], const MENU_CMD[], const MENU_ACCESS, const MENU_PLUGIN[]) {
|
stock AddClientMenuItem(const MENU_TEXT[], const MENU_CMD[], const MENU_ACCESS, const MENU_PLUGIN[])
|
||||||
AddMenuItem_call(MENU_TEXT, MENU_CMD, MENU_ACCESS, MENU_PLUGIN, true)
|
{
|
||||||
|
AddMenuItem_call(MENU_TEXT, MENU_CMD, MENU_ACCESS, MENU_PLUGIN, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Internal function used by above stocks.
|
// Internal function used by above stocks.
|
||||||
stock AddMenuItem_call(const MENU_TEXT[], const MENU_CMD[], const MENU_ACCESS, const MENU_PLUGIN[], const bool:ADD_TO_CLIENT_MENU) {
|
stock AddMenuItem_call(const MENU_TEXT[], const MENU_CMD[], const MENU_ACCESS, const MENU_PLUGIN[], const bool:ADD_TO_CLIENT_MENU)
|
||||||
new pluginid = is_plugin_loaded("Menus Front-End")
|
{
|
||||||
|
new pluginid = is_plugin_loaded("Menus Front-End");
|
||||||
if (pluginid == -1) {
|
if (pluginid == -1) {
|
||||||
log_amx("Can't add menu item ^"%s^" from plugin ^"%s^" to menu set because the Menus Front-End plugin itself is not loaded!", MENU_TEXT, MENU_PLUGIN)
|
log_amx("Can't add menu item ^"%s^" from plugin ^"%s^" to menu set because the Menus Front-End plugin itself is not loaded!", MENU_TEXT, MENU_PLUGIN);
|
||||||
return // Menus Front-End doesn't exist, return.
|
return; // Menus Front-End doesn't exist, return.
|
||||||
}
|
}
|
||||||
|
|
||||||
new filename[64], b[1]
|
new filename[64], b[1];
|
||||||
get_plugin(pluginid, filename, 63, b, 0, b, 0, b, 0, b, 0)
|
get_plugin(pluginid, filename, 63, b, 0, b, 0, b, 0, b, 0);
|
||||||
|
|
||||||
new status = callfunc_begin(ADD_TO_CLIENT_MENU ? "AddClientMenu" : "AddMenu", filename)
|
new status = callfunc_begin(ADD_TO_CLIENT_MENU ? "AddClientMenu" : "AddMenu", filename);
|
||||||
new bool:failed = true
|
new bool:failed = true;
|
||||||
switch (status) {
|
switch (status)
|
||||||
case 1: failed = false
|
{
|
||||||
case 0: log_amx("Run time error! (AddMenuItem_call failed)")
|
case 1: failed = false;
|
||||||
case -2: log_amx("Function not found! (AddMenuItem_call failed)")
|
case 0: log_amx("Run time error! (AddMenuItem_call failed)");
|
||||||
case -1: log_amx("Plugin not found! (AddMenuItem_call failed)")
|
case -2: log_amx("Function not found! (AddMenuItem_call failed)");
|
||||||
|
case -1: log_amx("Plugin not found! (AddMenuItem_call failed)");
|
||||||
}
|
}
|
||||||
if (failed)
|
if (failed)
|
||||||
return
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
// Item text
|
// Item text
|
||||||
callfunc_push_str(MENU_TEXT)
|
callfunc_push_str(MENU_TEXT);
|
||||||
// Cmd
|
// Cmd
|
||||||
callfunc_push_str(MENU_CMD)
|
callfunc_push_str(MENU_CMD);
|
||||||
// Access
|
// Access
|
||||||
callfunc_push_int(MENU_ACCESS)
|
callfunc_push_int(MENU_ACCESS);
|
||||||
// Menu exists in this plugin
|
// Menu exists in this plugin
|
||||||
callfunc_push_str(MENU_PLUGIN)
|
callfunc_push_str(MENU_PLUGIN);
|
||||||
|
|
||||||
callfunc_end()
|
callfunc_end();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -244,8 +300,13 @@ stock constraint_offset(low, high, seed, offset)
|
|||||||
offset += seed - low;
|
offset += seed - low;
|
||||||
|
|
||||||
if (offset >= 0)
|
if (offset >= 0)
|
||||||
|
{
|
||||||
return low + (offset % numElements);
|
return low + (offset % numElements);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
return high - (abs(offset) % numElements) + 1;
|
return high - (abs(offset) % numElements) + 1;
|
||||||
|
}
|
||||||
|
|
||||||
return 0; // Makes the compiler happy -_-
|
return 0; // Makes the compiler happy -_-
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,10 @@
|
|||||||
#include <VexdUM_const>
|
#include <VexdUM_const>
|
||||||
|
|
||||||
native radius_damage(inflictor, Float:dmg, Float:orig[3], Float:rad, bit = DMG_BULLET, wpnName[]="", hs = 0);
|
native radius_damage(inflictor, Float:dmg, Float:orig[3], Float:rad, bit = DMG_BULLET, wpnName[]="", hs = 0);
|
||||||
|
native take_damage(victim, attacker, Float:orig[3], Float:dmg, bit = DMG_BULLET, wpnName[]="", hs = 0);
|
||||||
native set_user_model(id, const Model[]="");
|
native set_user_model(id, const Model[]="");
|
||||||
|
native entity_use(eUsed, eOther);
|
||||||
|
native get_num_ents();
|
||||||
|
|
||||||
native DispatchKeyValue(ent, szKey[], szValue[]);
|
native DispatchKeyValue(ent, szKey[], szValue[]);
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ stock Float:cos(Float:value)
|
|||||||
|
|
||||||
stock Float:cosh(Float:value)
|
stock Float:cosh(Float:value)
|
||||||
{
|
{
|
||||||
retuen floatcosh(value, radian)
|
return floatcosh(value, radian)
|
||||||
}
|
}
|
||||||
|
|
||||||
stock Float:atan(Float:value)
|
stock Float:atan(Float:value)
|
||||||
|
@ -67,7 +67,7 @@ forward client_command(id);
|
|||||||
/* Called when client is entering to a game. */
|
/* Called when client is entering to a game. */
|
||||||
forward client_putinserver(id);
|
forward client_putinserver(id);
|
||||||
|
|
||||||
/* Sets informations about plugin. */
|
/* Sets informations about plugin. Returns the 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[]);
|
||||||
|
|
||||||
/* Precache model. Can be used only in plugin_precache() function.*/
|
/* Precache model. Can be used only in plugin_precache() function.*/
|
||||||
@ -77,7 +77,7 @@ native precache_model(const name[]);
|
|||||||
native precache_sound(const name[]);
|
native precache_sound(const name[]);
|
||||||
|
|
||||||
/* Precaches any file. */
|
/* Precaches any file. */
|
||||||
native precache_generic(szFile[]);
|
native precache_generic(const szFile[]);
|
||||||
|
|
||||||
/* Sets info for player. */
|
/* Sets info for player. */
|
||||||
native set_user_info(index,const info[],const value[]);
|
native set_user_info(index,const info[],const value[]);
|
||||||
@ -121,7 +121,7 @@ native console_cmd(id,const cmd[],{Float,Sql,Result,_}:...);
|
|||||||
* "3!4" - 3rd must be different from 4.
|
* "3!4" - 3rd must be different from 4.
|
||||||
* "2&Buy" - 2nd parameter of message must contain "Buy" substring.
|
* "2&Buy" - 2nd parameter of message must contain "Buy" substring.
|
||||||
* "2!Buy" - 2nd parameter of message can't contain "Buy" substring. */
|
* "2!Buy" - 2nd parameter of message can't contain "Buy" substring. */
|
||||||
native register_event(const event[],const function[],const flags[],cond[]="", ... );
|
native register_event(const event[],const function[],const flags[],const cond[]="", ... );
|
||||||
|
|
||||||
/* Registers log event on which the given function will be called
|
/* Registers log event on which the given function will be called
|
||||||
* Examples for conditions:
|
* Examples for conditions:
|
||||||
@ -144,7 +144,7 @@ native set_hudmessage(red=200, green=100, blue=0, Float:x=-1.0, Float:y=0.35, ef
|
|||||||
native show_hudmessage(index,const message[],{Float,Sql,Result,_}:...);
|
native show_hudmessage(index,const message[],{Float,Sql,Result,_}:...);
|
||||||
|
|
||||||
/* Displays menu. Keys have bit values (key 1 is (1<<0), key 5 is (1<<4) etc.). */
|
/* Displays menu. Keys have bit values (key 1 is (1<<0), key 5 is (1<<4) etc.). */
|
||||||
native show_menu(index,keys,const menu[], time = -1, title[] = "");
|
native show_menu(index,keys,const menu[], time = -1, const title[] = "");
|
||||||
|
|
||||||
/* Gets value from client messages.
|
/* Gets value from client messages.
|
||||||
* When you are asking for string the array and length is needed (read_data(2,name,len)).
|
* When you are asking for string the array and length is needed (read_data(2,name,len)).
|
||||||
@ -373,7 +373,7 @@ native client_cmd(index,const command[],{Float,Sql,Result,_}:...);
|
|||||||
* It allows to execute some commands on players and bots.
|
* It allows to execute some commands on players and bots.
|
||||||
* Function is excellent for forcing to do an action related to a game (not settings!).
|
* Function is excellent for forcing to do an action related to a game (not settings!).
|
||||||
* The command must stand alone but in arguments you can use spaces. */
|
* The command must stand alone but in arguments you can use spaces. */
|
||||||
native engclient_cmd(index,const command[],arg1[]="",arg2[]="");
|
native engclient_cmd(index,const command[],const arg1[]="",const arg2[]="");
|
||||||
|
|
||||||
/* Executes command on a server console. */
|
/* Executes command on a server console. */
|
||||||
native server_cmd(const command[],{Float,Sql,Result,_}:...);
|
native server_cmd(const command[],{Float,Sql,Result,_}:...);
|
||||||
@ -450,7 +450,7 @@ native parse_time(const input[],const format[], time = -1);
|
|||||||
* "b" - loop task.
|
* "b" - loop task.
|
||||||
* "c" - do task on time after a map timeleft.
|
* "c" - do task on time after a map timeleft.
|
||||||
* "d" - do task on time before a map timelimit. */
|
* "d" - do task on time before a map timelimit. */
|
||||||
native set_task(Float:time,const function[],id = 0,parameter[]="",len = 0,flags[]="", repeat = 0);
|
native set_task(Float:time,const function[],id = 0,const parameter[]="",len = 0,const flags[]="", repeat = 0);
|
||||||
|
|
||||||
/* Removes all tasks with given id. If outside var is
|
/* Removes all tasks with given id. If outside var is
|
||||||
* set then a task can be removed also when
|
* set then a task can be removed also when
|
||||||
@ -476,17 +476,17 @@ native remove_user_flags(index,flags=-1,id=0);
|
|||||||
/* Registers function which will be called from client console.
|
/* Registers function which will be called from client console.
|
||||||
* Returns the command ID.
|
* Returns the command ID.
|
||||||
*/
|
*/
|
||||||
native register_clcmd(const client_cmd[],const function[],flags=-1, info[]="");
|
native register_clcmd(const client_cmd[],const function[],flags=-1, const info[]="");
|
||||||
|
|
||||||
/* Registers function which will be called from any console.
|
/* Registers function which will be called from any console.
|
||||||
* Returns the command ID.
|
* Returns the command ID.
|
||||||
*/
|
*/
|
||||||
native register_concmd(const cmd[],const function[],flags=-1, info[]="");
|
native register_concmd(const cmd[],const function[],flags=-1, const info[]="");
|
||||||
|
|
||||||
/* Registers function which will be called from server console.
|
/* Registers function which will be called from server console.
|
||||||
* Returns the command ID.
|
* Returns the command ID.
|
||||||
*/
|
*/
|
||||||
native register_srvcmd(const server_cmd[],const function[],flags=-1, info[]="");
|
native register_srvcmd(const server_cmd[],const function[],flags=-1, const info[]="");
|
||||||
|
|
||||||
/* Gets info about client command. */
|
/* Gets info about client command. */
|
||||||
native get_clcmd(index, command[], len1, &flags, info[], len2, flag);
|
native get_clcmd(index, command[], len1, &flags, info[], len2, flag);
|
||||||
@ -534,7 +534,7 @@ native get_user_menu(index,&id,&keys);
|
|||||||
native server_exec();
|
native server_exec();
|
||||||
|
|
||||||
/* Emits sound. Sample must be precached. */
|
/* Emits sound. Sample must be precached. */
|
||||||
native emit_sound(index, channel, sample[], Float:vol, Float:att,flags, pitch);
|
native emit_sound(index, channel, const sample[], Float:vol, Float:att,flags, pitch);
|
||||||
|
|
||||||
/* Registers new cvar for HL engine.
|
/* Registers new cvar for HL engine.
|
||||||
* Returns the cvar pointer for get/set_pcvar functions.
|
* Returns the cvar pointer for get/set_pcvar functions.
|
||||||
@ -607,6 +607,7 @@ native is_plugin_loaded(const name[]);
|
|||||||
/* Gets info about plugin by given index.
|
/* Gets info about plugin by given index.
|
||||||
* Function returns -1 if plugin doesn't exist with given index.
|
* Function returns -1 if plugin doesn't exist with given index.
|
||||||
* Note: the [...] portion should not be used, and is only for backward compatibility.
|
* Note: the [...] portion should not be used, and is only for backward compatibility.
|
||||||
|
* Use index of -1 to use the calling plugin's ID.
|
||||||
*/
|
*/
|
||||||
native get_plugin(index,filename[],len1,name[],len2,version[],len3,author[],len4,status[],len5,...);
|
native get_plugin(index,filename[],len1,name[],len2,version[],len3,author[],len4,status[],len5,...);
|
||||||
|
|
||||||
@ -618,21 +619,21 @@ native get_pluginsnum();
|
|||||||
* param2 name of plugin (all depends on flags).
|
* param2 name of plugin (all depends on flags).
|
||||||
* Flags:
|
* Flags:
|
||||||
* "a" - pause whole plugin.
|
* "a" - pause whole plugin.
|
||||||
* "b" - pause function.
|
|
||||||
* "c" - look outside the plugin (by given plugin name).
|
* "c" - look outside the plugin (by given plugin name).
|
||||||
* "d" - set "stopped" status when pausing whole plugin.
|
* "d" - set "stopped" status when pausing whole plugin.
|
||||||
* "e" - set "locked" status when pausing whole plugin.
|
|
||||||
* In this status plugin is unpauseable.
|
* In this status plugin is unpauseable.
|
||||||
* Example: pause("ac","myplugin.amxx")
|
* Example: pause("ac","myplugin.amxx")
|
||||||
* pause("bc","myfunc","myplugin.amxx") */
|
*
|
||||||
native pause(flag[], const param1[]="",const param2[]="");
|
* Note: There used to be the b and e flags as well,
|
||||||
|
* which have been deprecated and are no longer used.
|
||||||
|
*/
|
||||||
|
native pause(const flag[], const param1[]="",const param2[]="");
|
||||||
|
|
||||||
/* Unpauses function or plugin.
|
/* Unpauses function or plugin.
|
||||||
* Flags:
|
* Flags:
|
||||||
* "a" - unpause whole plugin.
|
* "a" - unpause whole plugin.
|
||||||
* "b" - unpause function.
|
|
||||||
* "c" - look outside the plugin (by given plugin name). */
|
* "c" - look outside the plugin (by given plugin name). */
|
||||||
native unpause(flag[], const param1[]="",const param2[]="");
|
native unpause(const flag[], const param1[]="",const param2[]="");
|
||||||
|
|
||||||
/* Call a function in this / an another plugin by name.
|
/* Call a function in this / an another plugin by name.
|
||||||
* Parameters:
|
* Parameters:
|
||||||
@ -677,7 +678,7 @@ native callfunc_push_floatrf(& Float: value);
|
|||||||
* which is only kept for special backwards compatibility.
|
* which is only kept for special backwards compatibility.
|
||||||
*/
|
*/
|
||||||
native callfunc_push_str(const VALUE[], bool:copyback=true);
|
native callfunc_push_str(const VALUE[], bool:copyback=true);
|
||||||
native callfunc_push_array(VALUE[], array_size, bool:copyback=true);
|
native callfunc_push_array(const VALUE[], array_size, bool:copyback=true);
|
||||||
|
|
||||||
/* Make the actual call.
|
/* Make the actual call.
|
||||||
* Return value of the function called. */
|
* Return value of the function called. */
|
||||||
@ -689,7 +690,7 @@ forward inconsistent_file(id,const filename[], reason[64] );
|
|||||||
|
|
||||||
/* Forces the client and server to be running with the same
|
/* Forces the client and server to be running with the same
|
||||||
* version of the specified file ( e.g., a player model ). */
|
* version of the specified file ( e.g., a player model ). */
|
||||||
native force_unmodified(force_type, mins[3] , maxs[3], const filename[]);
|
native force_unmodified(force_type, const mins[3] , const maxs[3], const filename[]);
|
||||||
|
|
||||||
/* Calculates the md5 keysum of a string */
|
/* Calculates the md5 keysum of a string */
|
||||||
native md5(const szString[], md5buffer[34]);
|
native md5(const szString[], md5buffer[34]);
|
||||||
@ -774,20 +775,20 @@ native set_float_byref(param, Float:value);
|
|||||||
// Or copies an array from you to the calling plugin
|
// Or copies an array from you to the calling plugin
|
||||||
native get_array(param, dest[], size);
|
native get_array(param, dest[], size);
|
||||||
native get_array_f(param, Float:dest[], size);
|
native get_array_f(param, Float:dest[], size);
|
||||||
native set_array(param, source[], size);
|
native set_array(param, const source[], size);
|
||||||
native set_array_f(param, Float:source[], size);
|
native set_array_f(param, const Float:source[], size);
|
||||||
|
|
||||||
/** The new menu natives */
|
/** The new menu natives */
|
||||||
//If you set ml to 1, everything will be preformatted
|
//If you set ml to 1, everything will be preformatted
|
||||||
// with the multi-lingual system.
|
// with the multi-lingual system.
|
||||||
//NOTE: ml=1 currently is not enabled.
|
//NOTE: ml=1 currently is not enabled.
|
||||||
//handler[] will be called when someone presses a key on your menu
|
//handler[] will be called when someone presses a key on your menu
|
||||||
native menu_create(title[], handler[], ml=0);
|
native menu_create(const title[], const handler[], ml=0);
|
||||||
|
|
||||||
//Creates a menu item callback handler.
|
//Creates a menu item callback handler.
|
||||||
//The callback handler is passed the playerid, menuid, and itemid.
|
//The callback handler is passed the playerid, menuid, and itemid.
|
||||||
//It can return either ITEM_IGNORE, ITEM_ENABLED, or ITEM_DISABLED.
|
//It can return either ITEM_IGNORE, ITEM_ENABLED, or ITEM_DISABLED.
|
||||||
native menu_makecallback(function[]);
|
native menu_makecallback(const function[]);
|
||||||
|
|
||||||
//Adds an item to a menu. When displayed, the name will be shown.
|
//Adds an item to a menu. When displayed, the name will be shown.
|
||||||
//If the player does not have the access it is disabled.
|
//If the player does not have the access it is disabled.
|
||||||
@ -814,8 +815,8 @@ native menu_find_id(menu, page, key);
|
|||||||
//Gets/sets info about a menu option
|
//Gets/sets info about a menu option
|
||||||
native menu_item_getinfo(menu, item, &access, command[], cmdlen, name[]="", namelen=0, &callback);
|
native menu_item_getinfo(menu, item, &access, command[], cmdlen, name[]="", namelen=0, &callback);
|
||||||
|
|
||||||
native menu_item_setname(menu, item, name[]);
|
native menu_item_setname(menu, item, const name[]);
|
||||||
native menu_item_setcmd(menu, item, cmd[]);
|
native menu_item_setcmd(menu, item, const cmd[]);
|
||||||
native menu_item_setcall(menu, item, callback=-1);
|
native menu_item_setcall(menu, item, callback=-1);
|
||||||
|
|
||||||
//Destroys a menu - invalidates the handle
|
//Destroys a menu - invalidates the handle
|
||||||
@ -1048,7 +1049,7 @@ native CreateOneForward(plugin_id, const name[], ...);
|
|||||||
* prepares an array. use this and pass the result into
|
* prepares an array. use this and pass the result into
|
||||||
* ExecuteForward() instead of the array itself.
|
* ExecuteForward() instead of the array itself.
|
||||||
*/
|
*/
|
||||||
native PrepareArray(array[], size, copyback=0);
|
native PrepareArray(const array[], size, copyback=0);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* executes a forward. returns result in ret.
|
* executes a forward. returns result in ret.
|
||||||
|
@ -44,7 +44,7 @@ forward bomb_defused(defuser);
|
|||||||
|
|
||||||
/* Custom Weapon Support */
|
/* Custom Weapon Support */
|
||||||
/* function will return index of new weapon */
|
/* function will return index of new weapon */
|
||||||
native custom_weapon_add( wpnname[],melee = 0,logname[]="" );
|
native custom_weapon_add( const wpnname[],melee = 0,const logname[]="" );
|
||||||
/* Function will pass damage done by this custom weapon to stats module and other plugins */
|
/* Function will pass damage done by this custom weapon to stats module and other plugins */
|
||||||
native custom_weapon_dmg( weapon, att, vic, damage, hitplace=0 );
|
native custom_weapon_dmg( weapon, att, vic, damage, hitplace=0 );
|
||||||
/* Function will pass info about custom weapon shot to stats module */
|
/* Function will pass info about custom weapon shot to stats module */
|
||||||
|
@ -119,20 +119,27 @@ native dbi_field_name(Result:result, field, name[], maxLength);
|
|||||||
|
|
||||||
/* This function can be used to find out if a table in a Sqlite database exists.
|
/* This function can be used to find out if a table in a Sqlite database exists.
|
||||||
*/
|
*/
|
||||||
stock bool:sqlite_table_exists(Sql:sql, table[]) {
|
stock bool:sqlite_table_exists(Sql:sql, table[])
|
||||||
new bool:exists
|
{
|
||||||
new query[128]
|
new bool:exists;
|
||||||
format(query, 127, "SELECT name FROM sqlite_master WHERE type='table' AND name='%s' LIMIT 1;", table)
|
new query[128];
|
||||||
|
format(query, 127, "SELECT name FROM sqlite_master WHERE type='table' AND name='%s' LIMIT 1;", table);
|
||||||
|
|
||||||
new Result:result = dbi_query(sql, query)
|
new Result:result = dbi_query(sql, query);
|
||||||
|
|
||||||
if (dbi_nextrow(result))
|
if (dbi_nextrow(result))
|
||||||
exists = true
|
{
|
||||||
|
exists = true;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
exists = false
|
{
|
||||||
|
exists = false;
|
||||||
|
}
|
||||||
|
|
||||||
if (result > RESULT_NONE)
|
if (result > RESULT_NONE)
|
||||||
dbi_free_result(result)
|
{
|
||||||
|
dbi_free_result(result);
|
||||||
|
}
|
||||||
|
|
||||||
return exists
|
return exists;
|
||||||
}
|
}
|
||||||
|
@ -59,7 +59,7 @@ native dod_set_user_kills(index,value,refresh=1);
|
|||||||
native dod_set_user_score(index,value,refresh=1);
|
native dod_set_user_score(index,value,refresh=1);
|
||||||
|
|
||||||
/* Sets new team name for this player */
|
/* Sets new team name for this player */
|
||||||
native dod_set_pl_teamname(index,szName[]);
|
native dod_set_pl_teamname(index,const szName[]);
|
||||||
|
|
||||||
/* Gets player team name */
|
/* Gets player team name */
|
||||||
native dod_get_pl_teamname(index,szName[],len);
|
native dod_get_pl_teamname(index,szName[],len);
|
||||||
@ -122,7 +122,7 @@ native objectives_reinit( player=0 );
|
|||||||
native objective_get_data( index, CP_VALUE:key, szValue[]="", len=0 );
|
native objective_get_data( index, CP_VALUE:key, szValue[]="", len=0 );
|
||||||
|
|
||||||
/* use this function to change control point's data */
|
/* use this function to change control point's data */
|
||||||
native objective_set_data( index, CP_VALUE:key , iValue=-1, szValue[]="" );
|
native objective_set_data( index, CP_VALUE:key , iValue=-1, const szValue[]="" );
|
||||||
|
|
||||||
enum CA_VALUE {
|
enum CA_VALUE {
|
||||||
CA_edict = 1,
|
CA_edict = 1,
|
||||||
@ -140,4 +140,4 @@ enum CA_VALUE {
|
|||||||
native area_get_data( index, CA_VALUE:key, szValue[]="", len=0 );
|
native area_get_data( index, CA_VALUE:key, szValue[]="", len=0 );
|
||||||
|
|
||||||
/* use this function to change control point's area data */
|
/* use this function to change control point's area data */
|
||||||
native area_set_data( index, CA_VALUE:key , iValue=-1, szValue[]="" );
|
native area_set_data( index, CA_VALUE:key , iValue=-1, const szValue[]="" );
|
||||||
|
@ -54,7 +54,7 @@ forward dod_client_changeclass(id, class, oldclass);
|
|||||||
forward dod_client_spawn(id);
|
forward dod_client_spawn(id);
|
||||||
|
|
||||||
/* Sets the model for a player */
|
/* Sets the model for a player */
|
||||||
native dod_set_model(id, model[]);
|
native dod_set_model(id, const model[]);
|
||||||
|
|
||||||
/* Sets the model for a player */
|
/* Sets the model for a player */
|
||||||
native dod_set_body_number(id, bodynumber);
|
native dod_set_body_number(id, bodynumber);
|
||||||
@ -64,7 +64,7 @@ native dod_clear_model(id);
|
|||||||
|
|
||||||
/* Custom Weapon Support */
|
/* Custom Weapon Support */
|
||||||
/* function will return index of new weapon */
|
/* function will return index of new weapon */
|
||||||
native custom_weapon_add( wpnname[], melee = 0, logname[]="" );
|
native custom_weapon_add( const wpnname[], melee = 0, const logname[]="" );
|
||||||
|
|
||||||
/* Function will pass damage done by this custom weapon to stats module and other plugins */
|
/* Function will pass damage done by this custom weapon to stats module and other plugins */
|
||||||
native custom_weapon_dmg( weapon, att, vic, damage, hitplace=0 );
|
native custom_weapon_dmg( weapon, att, vic, damage, hitplace=0 );
|
||||||
@ -93,10 +93,10 @@ native xmod_is_custom_wpn(wpnindex);
|
|||||||
/************* Shared Natives End ********************************/
|
/************* Shared Natives End ********************************/
|
||||||
|
|
||||||
/* weapon logname to weapon name convertion */
|
/* weapon logname to weapon name convertion */
|
||||||
native dod_wpnlog_to_name(logname[],name[],len);
|
native dod_wpnlog_to_name(const logname[],name[],len);
|
||||||
|
|
||||||
/* weapon logname to weapon index convertion */
|
/* weapon logname to weapon index convertion */
|
||||||
native dod_wpnlog_to_id(logname[]);
|
native dod_wpnlog_to_id(const logname[]);
|
||||||
|
|
||||||
native dod_get_map_info( info );
|
native dod_get_map_info( info );
|
||||||
|
|
||||||
|
@ -25,13 +25,13 @@
|
|||||||
native traceresult(type,{Float,Sql,Result,_}:...);
|
native traceresult(type,{Float,Sql,Result,_}:...);
|
||||||
|
|
||||||
/* Registers a client impulse to a function. Function is passed the ID of the user. */
|
/* Registers a client impulse to a function. Function is passed the ID of the user. */
|
||||||
native register_impulse(impulse, function[]);
|
native register_impulse(impulse, const function[]);
|
||||||
|
|
||||||
/* Registers a touch action to a function by classnames. Use * to specify any classname. */
|
/* Registers a touch action to a function by classnames. Use * to specify any classname. */
|
||||||
native register_touch(Touched[], Toucher[], function[]);
|
native register_touch(const Touched[], const Toucher[], const function[]);
|
||||||
|
|
||||||
/* Registers a think action to a function by classname. */
|
/* Registers a think action to a function by classname. */
|
||||||
native register_think(Classname[], function[]);
|
native register_think(const Classname[], const function[]);
|
||||||
|
|
||||||
/* NOTE: In old engine versions, this was not the case. Values are now WINDOWS values.
|
/* NOTE: In old engine versions, this was not the case. Values are now WINDOWS values.
|
||||||
* You must pass with the windows offset (e.g. if 230 on windows, pass 230 no matter what)
|
* You must pass with the windows offset (e.g. if 230 on windows, pass 230 no matter what)
|
||||||
@ -39,14 +39,14 @@ native register_think(Classname[], function[]);
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* Precaches an event. */
|
/* Precaches an event. */
|
||||||
native precache_event(type, Name[], {Float,Sql,Result,_}:...);
|
native precache_event(type, const Name[], {Float,Sql,Result,_}:...);
|
||||||
|
|
||||||
/* set/get a user's speak flags */
|
/* set/get a user's speak flags */
|
||||||
native set_speak(iIndex, iSpeakFlags)
|
native set_speak(iIndex, iSpeakFlags);
|
||||||
native get_speak(iIndex)
|
native get_speak(iIndex);
|
||||||
|
|
||||||
/* Drops an entity to the floor (work?) */
|
/* Drops an entity to the floor (work?) */
|
||||||
native drop_to_floor(entity)
|
native drop_to_floor(entity);
|
||||||
|
|
||||||
/* Get whole buffer containing keys and their data. */
|
/* Get whole buffer containing keys and their data. */
|
||||||
native get_info_keybuffer(id, buffer[], length);
|
native get_info_keybuffer(id, buffer[], length);
|
||||||
@ -62,7 +62,7 @@ native get_global_vector(variable, Float:vector[3]);
|
|||||||
native get_global_edict(variable);
|
native get_global_edict(variable);
|
||||||
|
|
||||||
/* Set entity bounds. */
|
/* Set entity bounds. */
|
||||||
native entity_set_size(index, Float:mins[3], Float:maxs[3]);
|
native entity_set_size(index, const Float:mins[3], const Float:maxs[3]);
|
||||||
|
|
||||||
/* Get decal index */
|
/* Get decal index */
|
||||||
native get_decal_index(const szDecalName[]);
|
native get_decal_index(const szDecalName[]);
|
||||||
@ -76,7 +76,7 @@ native entity_set_int(iIndex, iKey, iVal);
|
|||||||
native Float:entity_get_float(iIndex, iKey);
|
native Float:entity_get_float(iIndex, iKey);
|
||||||
native entity_set_float(iIndex, iKey, Float:iVal);
|
native entity_set_float(iIndex, iKey, Float:iVal);
|
||||||
native entity_get_vector(iIndex, iKey, Float:vRetVector[3]);
|
native entity_get_vector(iIndex, iKey, Float:vRetVector[3]);
|
||||||
native entity_set_vector(iIndex, iKey, Float:vNewVector[3]);
|
native entity_set_vector(iIndex, iKey, const Float:vNewVector[3]);
|
||||||
native entity_get_edict(iIndex, iKey);
|
native entity_get_edict(iIndex, iKey);
|
||||||
native entity_set_edict(iIndex, iKey, iNewIndex);
|
native entity_set_edict(iIndex, iKey, iNewIndex);
|
||||||
native entity_get_string(iIndex, iKey, szReturn[], iRetLen);
|
native entity_get_string(iIndex, iKey, szReturn[], iRetLen);
|
||||||
@ -85,26 +85,26 @@ native entity_get_byte(iIndex, iKey);
|
|||||||
native entity_set_byte(iIndex, iKey, iVal);
|
native entity_set_byte(iIndex, iKey, iVal);
|
||||||
|
|
||||||
/* Creates an entity, will return the index of the created entity. ClassName must be valid. */
|
/* Creates an entity, will return the index of the created entity. ClassName must be valid. */
|
||||||
native create_entity(szClassname[]);
|
native create_entity(const szClassname[]);
|
||||||
|
|
||||||
/* Finds an entity in the world, will return 0 if nothing is found */
|
/* Finds an entity in the world, will return 0 if nothing is found */
|
||||||
native find_ent_by_class(iIndex, szClass[]);
|
native find_ent_by_class(iIndex, const szClass[]);
|
||||||
//optionally you can set a jghg2 type
|
//optionally you can set a jghg2 type
|
||||||
// 1: target, 2:targetname, 0:classname (default)
|
// 1: target, 2:targetname, 0:classname (default)
|
||||||
native find_ent_by_owner(iIndex, szClass[], iOwner, iJghgType=0);
|
native find_ent_by_owner(iIndex, const szClass[], iOwner, iJghgType=0);
|
||||||
native find_ent_by_target(iIndex, szClass[]);
|
native find_ent_by_target(iIndex, const szClass[]);
|
||||||
native find_ent_by_tname(iIndex, szClass[]);
|
native find_ent_by_tname(iIndex, const szClass[]);
|
||||||
native find_ent_by_model(iIndex, szClass[], szModel[]);
|
native find_ent_by_model(iIndex, const szClass[], const szModel[]);
|
||||||
native find_ent_in_sphere(start_from_ent, Float:origin[3], Float:radius);
|
native find_ent_in_sphere(start_from_ent, const Float:origin[3], Float:radius);
|
||||||
|
|
||||||
//this will CBaseEntity::Think() or something from the entity
|
//this will CBaseEntity::Think() or something from the entity
|
||||||
native call_think(entity)
|
native call_think(entity);
|
||||||
|
|
||||||
/* Is entity valid? */
|
/* Is entity valid? */
|
||||||
native is_valid_ent(iIndex);
|
native is_valid_ent(iIndex);
|
||||||
|
|
||||||
/* Proper origin setting, keeps updated with Half-Life engine. */
|
/* Proper origin setting, keeps updated with Half-Life engine. */
|
||||||
native entity_set_origin(iIndex, Float:fNewOrigin[3]);
|
native entity_set_origin(iIndex, const Float:fNewOrigin[3]);
|
||||||
|
|
||||||
/* Sets the model of an Entity. */
|
/* Sets the model of an Entity. */
|
||||||
native entity_set_model(iIndex, const szModel[]);
|
native entity_set_model(iIndex, const szModel[]);
|
||||||
@ -125,7 +125,7 @@ native fake_touch(entTouched, entToucher);
|
|||||||
native DispatchKeyValue(...);
|
native DispatchKeyValue(...);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
native get_keyvalue(entity, szKey[], value[], maxLength);
|
native get_keyvalue(entity, const szKey[], value[], maxLength);
|
||||||
|
|
||||||
native copy_keyvalue(szClassName[],sizea,szKeyName[],sizeb,szValue[],sizec);
|
native copy_keyvalue(szClassName[],sizea,szKeyName[],sizeb,szValue[],sizec);
|
||||||
|
|
||||||
@ -134,24 +134,24 @@ native DispatchSpawn(iIndex);
|
|||||||
|
|
||||||
/* Hurts/Kills players in a sphere, like an explosion, Multiplier determines damage. */
|
/* Hurts/Kills players in a sphere, like an explosion, Multiplier determines damage. */
|
||||||
#if !defined AMXMOD_BCOMPAT
|
#if !defined AMXMOD_BCOMPAT
|
||||||
native radius_damage(Float:fExplodeAt[3], iDamageMultiplier, iRadiusMultiplier);
|
native radius_damage(const Float:fExplodeAt[3], iDamageMultiplier, iRadiusMultiplier);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Will return the contents of a point (inside map? in sky? outside map? etc.). */
|
/* Will return the contents of a point (inside map? in sky? outside map? etc.). */
|
||||||
native point_contents(Float:fCheckAt[3]);
|
native point_contents(const Float:fCheckAt[3]);
|
||||||
|
|
||||||
/* Trace a line from Start(X, Y, Z) to End(X, Y, Z), will return the point hit in vReturn[3]
|
/* Trace a line from Start(X, Y, Z) to End(X, Y, Z), will return the point hit in vReturn[3]
|
||||||
* and an entity index if an entity is hit. */
|
* and an entity index if an entity is hit. */
|
||||||
#if !defined AMXMOD_BCOMPAT
|
#if !defined AMXMOD_BCOMPAT
|
||||||
native trace_line(iIgnoreEnt, Float:fStart[3], Float:fEnd[3], Float:vReturn[3]);
|
native trace_line(iIgnoreEnt, const Float:fStart[3], const Float:fEnd[3], Float:vReturn[3]);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Traces a hull. */
|
/* Traces a hull. */
|
||||||
native trace_hull(Float:origin[3],hull,ignoredent=0,ignoremonsters=0);
|
native trace_hull(const Float:origin[3],hull,ignoredent=0,ignoremonsters=0);
|
||||||
|
|
||||||
/* Traces a line, and returns the normal to the plane hit in vReturn.
|
/* Traces a line, and returns the normal to the plane hit in vReturn.
|
||||||
* Returns 0 if theres no normal. */
|
* Returns 0 if theres no normal. */
|
||||||
native trace_normal(iIgnoreEnt, Float:fStart[3], Float:fEnd[3], Float:vReturn[3]);
|
native trace_normal(iIgnoreEnt, const Float:fStart[3], const Float:fEnd[3], Float:vReturn[3]);
|
||||||
|
|
||||||
/* Gets the ID of a grenade. */
|
/* Gets the ID of a grenade. */
|
||||||
native get_grenade_id(id, model[], len, grenadeid = 0);
|
native get_grenade_id(id, model[], len, grenadeid = 0);
|
||||||
@ -169,7 +169,7 @@ native attach_view(iIndex, iTargetIndex);
|
|||||||
native set_view(iIndex, ViewType);
|
native set_view(iIndex, ViewType);
|
||||||
|
|
||||||
/* Direct copy of PLAYBACK_EVENT_FULL from Metamod/HLSDK. If you don't know how that works, you probably shouldn't be using it. */
|
/* Direct copy of PLAYBACK_EVENT_FULL from Metamod/HLSDK. If you don't know how that works, you probably shouldn't be using it. */
|
||||||
native playback_event(flags,invoker,eventindex,Float:delay,Float:origin[3],Float:angles[3],Float:fparam1,Float:fparam2,iparam1,iparam2,bparam1,bparam2);
|
native playback_event(flags,invoker,eventindex,Float:delay,const Float:origin[3],const Float:angles[3],Float:fparam1,Float:fparam2,iparam1,iparam2,bparam1,bparam2);
|
||||||
|
|
||||||
/* Gets parameters sent from CmdStart.
|
/* Gets parameters sent from CmdStart.
|
||||||
Note that you will receive modified values if any other plugin have
|
Note that you will receive modified values if any other plugin have
|
||||||
@ -224,17 +224,17 @@ forward pfn_spawn(entid);
|
|||||||
* If aroundent is 0 its origin is not used, but origin in 6th parameter. Ie, do not specify 6th parameter (origin) if you specified an entity
|
* If aroundent is 0 its origin is not used, but origin in 6th parameter. Ie, do not specify 6th parameter (origin) if you specified an entity
|
||||||
* in aroundent.
|
* in aroundent.
|
||||||
*/
|
*/
|
||||||
native find_sphere_class(aroundent, _lookforclassname[], Float:radius, entlist[], maxents, Float:origin[3] = {0.0, 0.0, 0.0});
|
native find_sphere_class(aroundent, const _lookforclassname[], Float:radius, entlist[], maxents, const Float:origin[3] = {0.0, 0.0, 0.0});
|
||||||
|
|
||||||
/* SDK function - checks if an origin is in an entity's view cone
|
/* SDK function - checks if an origin is in an entity's view cone
|
||||||
* Set use3d to 1 to do the calculation in 3D. Otherwise it will be in 2D.
|
* Set use3d to 1 to do the calculation in 3D. Otherwise it will be in 2D.
|
||||||
*/
|
*/
|
||||||
native is_in_viewcone(entity, Float:origin[3], use3d = 0);
|
native is_in_viewcone(entity, const Float:origin[3], use3d = 0);
|
||||||
|
|
||||||
//SDK function - checks if an entity is visible to an entity
|
//SDK function - checks if an entity is visible to an entity
|
||||||
native is_visible(entity, target);
|
native is_visible(entity, target);
|
||||||
|
|
||||||
//Added at twistedeuphoria's request, see funcwiki for details
|
//Added at twistedeuphoria's request, see funcwiki for details
|
||||||
native trace_forward(Float:start[3], Float:angle[3], Float:give, ignoreEnt, &Float:hitX, &Float:hitY, &Float:shortestDistance, &Float:shortestDistLow, &Float:shortestDistHigh);
|
native trace_forward(const Float:start[3], const Float:angle[3], Float:give, ignoreEnt, &Float:hitX, &Float:hitY, &Float:shortestDistance, &Float:shortestDistLow, &Float:shortestDistHigh);
|
||||||
|
|
||||||
#include <engine_stocks>
|
#include <engine_stocks>
|
||||||
|
@ -19,127 +19,133 @@
|
|||||||
#include <engine>
|
#include <engine>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
stock fakedamage(idvictim,szClassname[],Float:takedmgdamage,damagetype)
|
stock fakedamage(idvictim,const szClassname[],Float:takedmgdamage,damagetype)
|
||||||
{
|
{
|
||||||
new entity = create_entity("trigger_hurt")
|
new entity = create_entity("trigger_hurt");
|
||||||
if (entity)
|
if (entity)
|
||||||
{
|
{
|
||||||
DispatchKeyValue(entity,"classname","trigger_hurt")
|
DispatchKeyValue(entity,"classname","trigger_hurt");
|
||||||
new szDamage[16]
|
new szDamage[16];
|
||||||
// Takedamages only do half damage per attack (damage is damage per second, and it's triggered in 0.5 second intervals).
|
// Takedamages only do half damage per attack (damage is damage per second, and it's triggered in 0.5 second intervals).
|
||||||
// Compensate for that.
|
// Compensate for that.
|
||||||
format(szDamage,15,"%f",takedmgdamage * 2)
|
format(szDamage,15,"%f",takedmgdamage * 2);
|
||||||
DispatchKeyValue(entity,"dmg",szDamage)
|
DispatchKeyValue(entity,"dmg",szDamage);
|
||||||
format(szDamage,15,"%i",damagetype)
|
format(szDamage,15,"%i",damagetype);
|
||||||
DispatchKeyValue(entity,"damagetype",szDamage)
|
DispatchKeyValue(entity,"damagetype",szDamage);
|
||||||
DispatchKeyValue(entity,"origin","8192 8192 8192")
|
DispatchKeyValue(entity,"origin","8192 8192 8192");
|
||||||
DispatchSpawn(entity)
|
DispatchSpawn(entity);
|
||||||
entity_set_string(entity, EV_SZ_classname, szClassname)
|
entity_set_string(entity, EV_SZ_classname, szClassname);
|
||||||
fake_touch(entity,idvictim)
|
fake_touch(entity,idvictim);
|
||||||
remove_entity(entity)
|
remove_entity(entity);
|
||||||
return 1
|
return 1;
|
||||||
}
|
}
|
||||||
return 0
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//wrapper for find_ent_by_class
|
//wrapper for find_ent_by_class
|
||||||
stock find_ent(iStart, szClassname[])
|
stock find_ent(iStart, const szClassname[])
|
||||||
{
|
{
|
||||||
return find_ent_by_class(iStart, szClassname)
|
return find_ent_by_class(iStart, szClassname);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get the Button(s) user is pressing */
|
/* Get the Button(s) user is pressing */
|
||||||
stock get_user_button(id)
|
stock get_user_button(id)
|
||||||
return entity_get_int(id, EV_INT_button)
|
{
|
||||||
|
return entity_get_int(id, EV_INT_button);
|
||||||
|
}
|
||||||
|
|
||||||
stock get_user_oldbutton(id)
|
stock get_user_oldbutton(id)
|
||||||
return entity_get_int(id, EV_INT_oldbuttons)
|
{
|
||||||
|
return entity_get_int(id, EV_INT_oldbuttons);
|
||||||
|
}
|
||||||
|
|
||||||
/* Get flags an entity is flagged with */
|
/* Get flags an entity is flagged with */
|
||||||
stock get_entity_flags(ent)
|
stock get_entity_flags(ent)
|
||||||
return entity_get_int(ent, EV_INT_flags)
|
{
|
||||||
|
return entity_get_int(ent, EV_INT_flags);
|
||||||
|
}
|
||||||
|
|
||||||
/* Get the distance between two entities */
|
/* Get the distance between two entities */
|
||||||
stock get_entity_distance(ent1, ent2)
|
stock get_entity_distance(ent1, ent2)
|
||||||
{
|
{
|
||||||
return floatround(entity_range(ent1, ent2))
|
return floatround(entity_range(ent1, ent2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get grenade thrown by this user */
|
/* Get grenade thrown by this user */
|
||||||
stock get_grenade(id)
|
stock get_grenade(id)
|
||||||
{
|
{
|
||||||
new iGrenade = find_ent_by_class(-1, "grenade")
|
new iGrenade = find_ent_by_class(-1, "grenade");
|
||||||
while(iGrenade > 0)
|
while(iGrenade > 0)
|
||||||
{
|
{
|
||||||
if(entity_get_edict(iGrenade, EV_ENT_owner) == id)
|
if(entity_get_edict(iGrenade, EV_ENT_owner) == id)
|
||||||
return iGrenade
|
return iGrenade;
|
||||||
|
|
||||||
iGrenade = find_ent_by_class(iGrenade, "grenade")
|
iGrenade = find_ent_by_class(iGrenade, "grenade");
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get origin of a brush entity */
|
/* Get origin of a brush entity */
|
||||||
stock get_brush_entity_origin(ent, Float:orig[3])
|
stock get_brush_entity_origin(ent, Float:orig[3])
|
||||||
{
|
{
|
||||||
new Float:Min[3], Float:Max[3]
|
new Float:Min[3], Float:Max[3];
|
||||||
entity_get_vector(ent, EV_VEC_mins, Min)
|
entity_get_vector(ent, EV_VEC_mins, Min);
|
||||||
entity_get_vector(ent, EV_VEC_maxs, Max)
|
entity_get_vector(ent, EV_VEC_maxs, Max);
|
||||||
|
|
||||||
orig[0] = (Min[0] + Max[0]) * 0.5
|
orig[0] = (Min[0] + Max[0]) * 0.5;
|
||||||
orig[1] = (Min[1] + Max[1]) * 0.5
|
orig[1] = (Min[1] + Max[1]) * 0.5;
|
||||||
orig[2] = (Min[2] + Max[2]) * 0.5
|
orig[2] = (Min[2] + Max[2]) * 0.5;
|
||||||
|
|
||||||
return 1
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Remove entity by name */
|
/* Remove entity by name */
|
||||||
stock remove_entity_name(eName[])
|
stock remove_entity_name(const eName[])
|
||||||
{
|
{
|
||||||
new iEntity = find_ent_by_class(-1, eName)
|
new iEntity = find_ent_by_class(-1, eName);
|
||||||
while (iEntity > 0)
|
while (iEntity > 0)
|
||||||
{
|
{
|
||||||
remove_entity(iEntity)
|
remove_entity(iEntity);
|
||||||
iEntity = find_ent_by_class(-1, eName)
|
iEntity = find_ent_by_class(-1, eName);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get the contents of the point a user is aiming at */
|
/* Get the contents of the point a user is aiming at */
|
||||||
stock ViewContents(id)
|
stock ViewContents(id)
|
||||||
{
|
{
|
||||||
new origin[3], Float:Orig[3]
|
new origin[3], Float:Orig[3];
|
||||||
get_user_origin(id, origin, 3)
|
get_user_origin(id, origin, 3);
|
||||||
Orig[0] = float(origin[0])
|
Orig[0] = float(origin[0]);
|
||||||
Orig[1] = float(origin[1])
|
Orig[1] = float(origin[1]);
|
||||||
Orig[2] = float(origin[2])
|
Orig[2] = float(origin[2]);
|
||||||
|
|
||||||
return point_contents(Orig)
|
return point_contents(Orig);
|
||||||
}
|
}
|
||||||
|
|
||||||
stock get_speed(ent)
|
stock get_speed(ent)
|
||||||
{
|
{
|
||||||
new Float:Vel[3]
|
new Float:Vel[3];
|
||||||
entity_get_vector(ent, EV_VEC_velocity, Vel)
|
entity_get_vector(ent, EV_VEC_velocity, Vel);
|
||||||
|
|
||||||
return floatround(vector_length(Vel))
|
return floatround(vector_length(Vel));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set rendering of an entity */
|
/* Set rendering of an entity */
|
||||||
stock set_rendering(index, fx=kRenderFxNone, r=255, g=255, b=255, render=kRenderNormal, amount=16)
|
stock set_rendering(index, fx=kRenderFxNone, r=255, g=255, b=255, render=kRenderNormal, amount=16)
|
||||||
{
|
{
|
||||||
entity_set_int(index,EV_INT_renderfx,fx)
|
entity_set_int(index,EV_INT_renderfx,fx);
|
||||||
new Float:RenderColor[3]
|
new Float:RenderColor[3];
|
||||||
RenderColor[0] = float(r)
|
RenderColor[0] = float(r);
|
||||||
RenderColor[1] = float(g)
|
RenderColor[1] = float(g);
|
||||||
RenderColor[2] = float(b)
|
RenderColor[2] = float(b);
|
||||||
entity_set_vector(index,EV_VEC_rendercolor,RenderColor)
|
entity_set_vector(index,EV_VEC_rendercolor,RenderColor);
|
||||||
entity_set_int(index,EV_INT_rendermode,render)
|
entity_set_int(index,EV_INT_rendermode,render);
|
||||||
entity_set_float(index,EV_FL_renderamt,float(amount))
|
entity_set_float(index,EV_FL_renderamt,float(amount));
|
||||||
|
|
||||||
return 1
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set flags on an entity */
|
/* Set flags on an entity */
|
||||||
@ -149,76 +155,82 @@ stock set_entity_flags(ent,flag,onoff)
|
|||||||
{
|
{
|
||||||
if (onoff == 1)
|
if (onoff == 1)
|
||||||
{
|
{
|
||||||
return 2
|
return 2;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
entity_set_int(ent,EV_INT_flags,entity_get_int(ent,EV_INT_flags)-flag)
|
entity_set_int(ent,EV_INT_flags,entity_get_int(ent,EV_INT_flags)-flag);
|
||||||
return 1
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (onoff == 0)
|
if (onoff == 0)
|
||||||
{
|
{
|
||||||
return 2
|
return 2;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
entity_set_int(ent,EV_INT_flags,entity_get_int(ent,EV_INT_flags)+flag)
|
entity_set_int(ent,EV_INT_flags,entity_get_int(ent,EV_INT_flags)+flag);
|
||||||
return 1
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If visible = 1, entity will be set to be visible, else invisible. */
|
/* If visible = 1, entity will be set to be visible, else invisible. */
|
||||||
stock set_entity_visibility(entity, visible = 1) {
|
stock set_entity_visibility(entity, visible = 1)
|
||||||
entity_set_int(entity, EV_INT_effects, visible == 1 ? entity_get_int(entity, EV_INT_effects) & ~EF_NODRAW : entity_get_int(entity, EV_INT_effects) | EF_NODRAW)
|
{
|
||||||
|
entity_set_int(entity, EV_INT_effects, visible == 1 ? entity_get_int(entity, EV_INT_effects) & ~EF_NODRAW : entity_get_int(entity, EV_INT_effects) | EF_NODRAW);
|
||||||
|
|
||||||
return 1
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Returns 1 if entity is visible. */
|
/* Returns 1 if entity is visible. */
|
||||||
stock get_entity_visibility(entity) {
|
stock get_entity_visibility(entity)
|
||||||
return !(entity_get_int(entity, EV_INT_effects) & EF_NODRAW)
|
{
|
||||||
|
return !(entity_get_int(entity, EV_INT_effects) & EF_NODRAW);
|
||||||
}
|
}
|
||||||
|
|
||||||
stock set_user_velocity(entity, Float:vec[3])
|
stock set_user_velocity(entity, const Float:vec[3])
|
||||||
{
|
{
|
||||||
return entity_set_vector(entity, EV_VEC_velocity, vec)
|
return entity_set_vector(entity, EV_VEC_velocity, vec);
|
||||||
}
|
}
|
||||||
|
|
||||||
stock get_user_velocity(entity, Float:vec[3])
|
stock get_user_velocity(entity, Float:vec[3])
|
||||||
{
|
{
|
||||||
return entity_get_vector(entity, EV_VEC_velocity, vec)
|
return entity_get_vector(entity, EV_VEC_velocity, vec);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Backwards compatible */
|
/* Backwards compatible */
|
||||||
/* Hurts/Kills players in a sphere, like an explosion, Multiplier determines damage. */
|
/* Hurts/Kills players in a sphere, like an explosion, Multiplier determines damage. */
|
||||||
stock RadiusDamage(Float:fExplodeAt[3], iDamageMultiplier, iRadiusMultiplier) {
|
stock RadiusDamage(const Float:fExplodeAt[3], iDamageMultiplier, iRadiusMultiplier)
|
||||||
return radius_damage(fExplodeAt, iDamageMultiplier, iRadiusMultiplier)
|
{
|
||||||
|
return radius_damage(fExplodeAt, iDamageMultiplier, iRadiusMultiplier);
|
||||||
}
|
}
|
||||||
/* Gives you a velocity in the direction a player is looking, iVelocity is the multiplier. */
|
/* Gives you a velocity in the direction a player is looking, iVelocity is the multiplier. */
|
||||||
stock VelocityByAim(iIndex,iVelocity, Float:vRetValue[3]) {
|
stock VelocityByAim(iIndex,iVelocity, Float:vRetValue[3])
|
||||||
return velocity_by_aim(iIndex,iVelocity,vRetValue)
|
{
|
||||||
|
return velocity_by_aim(iIndex,iVelocity,vRetValue);
|
||||||
}
|
}
|
||||||
/* Will return the contents of a point (inside map? in sky? outside map? etc.). */
|
/* Will return the contents of a point (inside map? in sky? outside map? etc.). */
|
||||||
stock PointContents(Float:fCheckAt[3]) {
|
stock PointContents(const Float:fCheckAt[3])
|
||||||
|
{
|
||||||
return point_contents(fCheckAt);
|
return point_contents(fCheckAt);
|
||||||
}
|
}
|
||||||
|
|
||||||
stock set_size(index, Float:mins[3], Float:maxs[3]) {
|
stock set_size(index, const Float:mins[3], const Float:maxs[3])
|
||||||
return entity_set_size(index,mins,maxs)
|
{
|
||||||
|
return entity_set_size(index,mins,maxs);
|
||||||
}
|
}
|
||||||
|
|
||||||
//by Twilight Suzuka, request addition at29428
|
//by Twilight Suzuka, request addition at29428
|
||||||
//"Lifted from HLSDK"
|
//"Lifted from HLSDK"
|
||||||
stock IsInWorld( ent )
|
stock IsInWorld( ent )
|
||||||
{
|
{
|
||||||
new Float:origin[3]
|
new Float:origin[3];
|
||||||
entity_get_vector(ent,EV_VEC_origin,origin)
|
entity_get_vector(ent,EV_VEC_origin,origin);
|
||||||
|
|
||||||
if (origin[0] >= 4096.0) return 0;
|
if (origin[0] >= 4096.0) return 0;
|
||||||
if (origin[1] >= 4096.0) return 0;
|
if (origin[1] >= 4096.0) return 0;
|
||||||
@ -227,8 +239,8 @@ stock IsInWorld( ent )
|
|||||||
if (origin[1] <= -4096.0) return 0;
|
if (origin[1] <= -4096.0) return 0;
|
||||||
if (origin[2] <= -4096.0) return 0;
|
if (origin[2] <= -4096.0) return 0;
|
||||||
|
|
||||||
new Float:velocity[3]
|
new Float:velocity[3];
|
||||||
entity_get_vector(ent,EV_VEC_velocity,velocity)
|
entity_get_vector(ent,EV_VEC_velocity,velocity);
|
||||||
|
|
||||||
if (velocity[0] >= 2000) return 0;
|
if (velocity[0] >= 2000) return 0;
|
||||||
if (velocity[1] >= 2000) return 0;
|
if (velocity[1] >= 2000) return 0;
|
||||||
|
@ -68,7 +68,7 @@ native set_pdata_float(_index,_Offset,Float:_Value,_linuxdiff=5);
|
|||||||
/* Registers a forward.
|
/* Registers a forward.
|
||||||
* Returns an id you can pass to unregister_forward
|
* Returns an id you can pass to unregister_forward
|
||||||
*/
|
*/
|
||||||
native register_forward(_forwardType,_function[],_post=0);
|
native register_forward(_forwardType,const _function[],_post=0);
|
||||||
|
|
||||||
/* Unregisters a forward.
|
/* Unregisters a forward.
|
||||||
* The registerId must be from register_forward, and
|
* The registerId must be from register_forward, and
|
||||||
@ -86,7 +86,7 @@ native forward_return(type,{Float,Sql,Result,_}:...);
|
|||||||
* get_orig_retval(&Float:value) - retrieves float return value by reference
|
* get_orig_retval(&Float:value) - retrieves float return value by reference
|
||||||
* get_orig_retval(value[], len) - retrives string return value
|
* get_orig_retval(value[], len) - retrives string return value
|
||||||
*/
|
*/
|
||||||
native get_orig_retval({Float,_}:...)
|
native get_orig_retval({Float,_}:...);
|
||||||
|
|
||||||
native engfunc(type,{Float,Sql,Result,AlertType,_}:...);
|
native engfunc(type,{Float,Sql,Result,AlertType,_}:...);
|
||||||
native dllfunc(type,{Float,Sql,Result,_}:...);
|
native dllfunc(type,{Float,Sql,Result,_}:...);
|
||||||
|
@ -20,10 +20,11 @@
|
|||||||
/* The actual return value of the function, use these instead of PLUGIN_HANDLED etc when
|
/* The actual return value of the function, use these instead of PLUGIN_HANDLED etc when
|
||||||
* returning from registered forwards.
|
* returning from registered forwards.
|
||||||
*/
|
*/
|
||||||
#define FMRES_HANDLED 2
|
#define FMRES_IGNORED 1 // Calls target function, returns normal value
|
||||||
#define FMRES_SUPERCEDE 4
|
#define FMRES_HANDLED 2 // Tells metamod you did something, still calls target function and returns normal value
|
||||||
#define FMRES_IGNORED 1
|
#define FMRES_OVERRIDE 3 // Supposed to still call the target function but return your value instead
|
||||||
#define FMRES_OVERRIDE 3
|
// however this does not work properly with metamod; use supercede instead.
|
||||||
|
#define FMRES_SUPERCEDE 4 // Block the target call, and use your return value (if applicable)
|
||||||
|
|
||||||
// Use this with GetInfoKeyBuffer if you want the server's localinfo buffer
|
// Use this with GetInfoKeyBuffer if you want the server's localinfo buffer
|
||||||
#define FM_NULLENT -1
|
#define FM_NULLENT -1
|
||||||
|
@ -15,258 +15,259 @@
|
|||||||
#define _fakemeta_stocks_included
|
#define _fakemeta_stocks_included
|
||||||
|
|
||||||
// EngFuncs
|
// EngFuncs
|
||||||
stock EF_PrecacheModel(string[])
|
stock EF_PrecacheModel(const string[])
|
||||||
return engfunc(EngFunc_PrecacheModel, string)
|
return engfunc(EngFunc_PrecacheModel, string);
|
||||||
stock EF_PrecacheSound(string[])
|
|
||||||
return engfunc(EngFunc_PrecacheSound, string)
|
stock EF_PrecacheSound(const string[])
|
||||||
|
return engfunc(EngFunc_PrecacheSound, string);
|
||||||
stock EF_SetModel(const ID, const STRING[])
|
stock EF_SetModel(const ID, const STRING[])
|
||||||
return engfunc(EngFunc_SetModel, ID, STRING)
|
return engfunc(EngFunc_SetModel, ID, STRING);
|
||||||
stock EF_ModelIndex(const STRING[])
|
stock EF_ModelIndex(const STRING[])
|
||||||
return engfunc(EngFunc_ModelIndex, STRING)
|
return engfunc(EngFunc_ModelIndex, STRING);
|
||||||
stock EF_ModelFrames(modelIndex)
|
stock EF_ModelFrames(modelIndex)
|
||||||
return engfunc(EngFunc_ModelFrames, modelIndex)
|
return engfunc(EngFunc_ModelFrames, modelIndex);
|
||||||
|
|
||||||
stock EF_SetSize(const STRING[])
|
stock EF_SetSize(const STRING[])
|
||||||
return engfunc(EngFunc_SetSize, STRING)
|
return engfunc(EngFunc_SetSize, STRING);
|
||||||
stock EF_ChangeLevel(const S1[], const S2[])
|
stock EF_ChangeLevel(const S1[], const S2[])
|
||||||
return engfunc(EngFunc_ChangeLevel, S1, S2)
|
return engfunc(EngFunc_ChangeLevel, S1, S2);
|
||||||
stock EF_VecToYaw(const Float:VECTOR[3], &Float:returnValue)
|
stock EF_VecToYaw(const Float:VECTOR[3], &Float:returnValue)
|
||||||
return engfunc(EngFunc_VecToYaw, VECTOR, returnValue)
|
return engfunc(EngFunc_VecToYaw, VECTOR, returnValue);
|
||||||
stock EF_VecToAngles(const Float:VECTORIN[3], const Float:VECTOROUT[3])
|
stock EF_VecToAngles(const Float:VECTORIN[3], const Float:VECTOROUT[3])
|
||||||
return engfunc(EngFunc_VecToAngles, VECTORIN, VECTOROUT)
|
return engfunc(EngFunc_VecToAngles, VECTORIN, VECTOROUT);
|
||||||
stock EF_MoveToOrigin(const ENTITY, const Float:GOAL[3], const Float:DISTANCE, const MOVETYPE)
|
stock EF_MoveToOrigin(const ENTITY, const Float:GOAL[3], const Float:DISTANCE, const MOVETYPE)
|
||||||
return engfunc(EngFunc_MoveToOrigin, ENTITY, GOAL, DISTANCE, MOVETYPE)
|
return engfunc(EngFunc_MoveToOrigin, ENTITY, GOAL, DISTANCE, MOVETYPE);
|
||||||
|
|
||||||
stock EF_ChangeYaw(const ENTITY)
|
stock EF_ChangeYaw(const ENTITY)
|
||||||
return engfunc(EngFunc_ChangeYaw, ENTITY)
|
return engfunc(EngFunc_ChangeYaw, ENTITY);
|
||||||
stock EF_ChangePitch(const ENTITY)
|
stock EF_ChangePitch(const ENTITY)
|
||||||
return engfunc(EngFunc_ChangePitch, ENTITY)
|
return engfunc(EngFunc_ChangePitch, ENTITY);
|
||||||
stock EF_FindEntityByString(const STARTSEARCHAFTER, const FIELD[], const VALUE[])
|
stock EF_FindEntityByString(const STARTSEARCHAFTER, const FIELD[], const VALUE[])
|
||||||
return engfunc(EngFunc_FindEntityByString, STARTSEARCHAFTER, FIELD, VALUE)
|
return engfunc(EngFunc_FindEntityByString, STARTSEARCHAFTER, FIELD, VALUE);
|
||||||
stock EF_GetEntityIllum(const ENTITY)
|
stock EF_GetEntityIllum(const ENTITY)
|
||||||
return engfunc(EngFunc_GetEntityIllum, ENTITY)
|
return engfunc(EngFunc_GetEntityIllum, ENTITY);
|
||||||
stock EF_FindEntityInSphere(const STARTSEARCHAFTER, const Float:ORIGIN[3], Float:radius)
|
stock EF_FindEntityInSphere(const STARTSEARCHAFTER, const Float:ORIGIN[3], Float:radius)
|
||||||
return engfunc(EngFunc_FindEntityInSphere, STARTSEARCHAFTER, ORIGIN, radius)
|
return engfunc(EngFunc_FindEntityInSphere, STARTSEARCHAFTER, ORIGIN, radius);
|
||||||
|
|
||||||
stock EF_FindClientInPVS(const CLIENT)
|
stock EF_FindClientInPVS(const CLIENT)
|
||||||
return engfunc(EngFunc_FindClientInPVS, CLIENT)
|
return engfunc(EngFunc_FindClientInPVS, CLIENT);
|
||||||
stock EF_EntitiesInPVS(const CLIENT)
|
stock EF_EntitiesInPVS(const CLIENT)
|
||||||
return engfunc(EngFunc_EntitiesInPVS, CLIENT)
|
return engfunc(EngFunc_EntitiesInPVS, CLIENT);
|
||||||
stock EF_MakeVectors(const Float:VECTOR[3])
|
stock EF_MakeVectors(const Float:VECTOR[3])
|
||||||
return engfunc(EngFunc_MakeVectors, VECTOR)
|
return engfunc(EngFunc_MakeVectors, VECTOR);
|
||||||
stock EF_AngleVectors(const Float:VECTOR[3], Float:forward_[3], Float:right[3], Float:up[3])
|
stock EF_AngleVectors(const Float:VECTOR[3], Float:forward_[3], Float:right[3], Float:up[3])
|
||||||
return engfunc(EngFunc_AngleVectors, VECTOR, forward_, right, up)
|
return engfunc(EngFunc_AngleVectors, VECTOR, forward_, right, up);
|
||||||
stock EF_CreateEntity()
|
stock EF_CreateEntity()
|
||||||
return engfunc(EngFunc_CreateEntity)
|
return engfunc(EngFunc_CreateEntity);
|
||||||
|
|
||||||
stock EF_RemoveEntity(const ENTITY)
|
stock EF_RemoveEntity(const ENTITY)
|
||||||
return engfunc(EngFunc_RemoveEntity, ENTITY)
|
return engfunc(EngFunc_RemoveEntity, ENTITY);
|
||||||
stock EF_CreateNamedEntity(const CLASSNAME)
|
stock EF_CreateNamedEntity(const CLASSNAME)
|
||||||
return engfunc(EngFunc_CreateNamedEntity, CLASSNAME)
|
return engfunc(EngFunc_CreateNamedEntity, CLASSNAME);
|
||||||
stock EF_MakeStatic(const ENTITY)
|
stock EF_MakeStatic(const ENTITY)
|
||||||
return engfunc(EngFunc_MakeStatic, ENTITY)
|
return engfunc(EngFunc_MakeStatic, ENTITY);
|
||||||
stock EF_EntIsOnFloor(const ENTITY)
|
stock EF_EntIsOnFloor(const ENTITY)
|
||||||
return engfunc(EngFunc_EntIsOnFloor, ENTITY)
|
return engfunc(EngFunc_EntIsOnFloor, ENTITY);
|
||||||
stock EF_DropToFloor(const ENTITY)
|
stock EF_DropToFloor(const ENTITY)
|
||||||
return engfunc(EngFunc_DropToFloor, ENTITY)
|
return engfunc(EngFunc_DropToFloor, ENTITY);
|
||||||
|
|
||||||
stock EF_WalkMove(const ENTITY, Float:yaw, Float:distance, iMode)
|
stock EF_WalkMove(const ENTITY, Float:yaw, Float:distance, iMode)
|
||||||
return engfunc(EngFunc_WalkMove, ENTITY, yaw, distance, iMode)
|
return engfunc(EngFunc_WalkMove, ENTITY, yaw, distance, iMode);
|
||||||
stock EF_SetOrigin(const ENTITY, const Float:ORIGIN[3])
|
stock EF_SetOrigin(const ENTITY, const Float:ORIGIN[3])
|
||||||
return engfunc(EngFunc_SetOrigin, ENTITY, ORIGIN)
|
return engfunc(EngFunc_SetOrigin, ENTITY, ORIGIN);
|
||||||
stock EF_EmitSound(const ENTITY, channel, const SAMPLE[], Float:volume, Float:attenuation, fFlags, pitch)
|
stock EF_EmitSound(const ENTITY, channel, const SAMPLE[], Float:volume, Float:attenuation, fFlags, pitch)
|
||||||
return engfunc(EngFunc_EmitSound, ENTITY, channel, SAMPLE, volume, attenuation, fFlags, pitch)
|
return engfunc(EngFunc_EmitSound, ENTITY, channel, SAMPLE, volume, attenuation, fFlags, pitch);
|
||||||
stock EF_EmitAmbientSound(const ENTITY, Float:pos[3], const SAMPLE[], Float:volume, Float:attenuation, fFlags, pitch)
|
stock EF_EmitAmbientSound(const ENTITY, Float:pos[3], const SAMPLE[], Float:volume, Float:attenuation, fFlags, pitch)
|
||||||
return engfunc(EngFunc_EmitAmbientSound, ENTITY, pos, SAMPLE, volume, attenuation, fFlags, pitch)
|
return engfunc(EngFunc_EmitAmbientSound, ENTITY, pos, SAMPLE, volume, attenuation, fFlags, pitch);
|
||||||
stock EF_TraceLine(const Float:V1[3], const Float:V2[3], fNoMonsters, const ENT_TO_SKIP)
|
stock EF_TraceLine(const Float:V1[3], const Float:V2[3], fNoMonsters, const ENT_TO_SKIP)
|
||||||
return engfunc(EngFunc_TraceLine, V1, V2, fNoMonsters, ENT_TO_SKIP)
|
return engfunc(EngFunc_TraceLine, V1, V2, fNoMonsters, ENT_TO_SKIP);
|
||||||
|
|
||||||
stock EF_TraceToss(const ENTITY, const ENTITY_TO_IGNORE)
|
stock EF_TraceToss(const ENTITY, const ENTITY_TO_IGNORE)
|
||||||
return engfunc(EngFunc_TraceToss, ENTITY, ENTITY_TO_IGNORE)
|
return engfunc(EngFunc_TraceToss, ENTITY, ENTITY_TO_IGNORE);
|
||||||
stock EF_TraceMonsterHull(const ENTITY, const Float:V1[3], const Float:V2[3], fNoMonsters, const ENTITY_TO_SKIP)
|
stock EF_TraceMonsterHull(const ENTITY, const Float:V1[3], const Float:V2[3], fNoMonsters, const ENTITY_TO_SKIP)
|
||||||
return engfunc(EngFunc_TraceMonsterHull, ENTITY, V1, V2, fNoMonsters, ENTITY_TO_SKIP)
|
return engfunc(EngFunc_TraceMonsterHull, ENTITY, V1, V2, fNoMonsters, ENTITY_TO_SKIP);
|
||||||
stock EF_TraceHull(const Float:V1[3], const Float:V2[3], fNoMonsters, hullNumber, const ENTITY_TO_SKIP)
|
stock EF_TraceHull(const Float:V1[3], const Float:V2[3], fNoMonsters, hullNumber, const ENTITY_TO_SKIP)
|
||||||
return engfunc(EngFunc_TraceHull, V1, V2, fNoMonsters, hullNumber, ENTITY_TO_SKIP)
|
return engfunc(EngFunc_TraceHull, V1, V2, fNoMonsters, hullNumber, ENTITY_TO_SKIP);
|
||||||
stock EF_TraceModel(const Float:V1[3], const Float:V2[3], hullNumber, const ENTITY)
|
stock EF_TraceModel(const Float:V1[3], const Float:V2[3], hullNumber, const ENTITY)
|
||||||
return engfunc(EngFunc_TraceModel, V1, V2, hullNumber, ENTITY)
|
return engfunc(EngFunc_TraceModel, V1, V2, hullNumber, ENTITY);
|
||||||
stock EF_TraceTexture(const TEXTURE_ENTITY, const Float:V1[3], const Float:V2[3])
|
stock EF_TraceTexture(const TEXTURE_ENTITY, const Float:V1[3], const Float:V2[3])
|
||||||
return engfunc(EngFunc_TraceTexture, TEXTURE_ENTITY, V1, V2)
|
return engfunc(EngFunc_TraceTexture, TEXTURE_ENTITY, V1, V2);
|
||||||
|
|
||||||
stock EF_TraceSphere(const Float:V1[3], const Float:V2[3], fNoMonsters, Float:radius, const ENTITY_TO_SKIP)
|
stock EF_TraceSphere(const Float:V1[3], const Float:V2[3], fNoMonsters, Float:radius, const ENTITY_TO_SKIP)
|
||||||
return engfunc(EngFunc_TraceSphere, V1, V2, fNoMonsters, radius, ENTITY_TO_SKIP)
|
return engfunc(EngFunc_TraceSphere, V1, V2, fNoMonsters, radius, ENTITY_TO_SKIP);
|
||||||
stock EF_GetAimVector(const ENTITY, Float:speed, Float:returnVector[3])
|
stock EF_GetAimVector(const ENTITY, Float:speed, Float:returnVector[3])
|
||||||
return engfunc(EngFunc_GetAimVector, ENTITY, speed, returnVector)
|
return engfunc(EngFunc_GetAimVector, ENTITY, speed, returnVector);
|
||||||
stock EF_ParticleEffect(const Float:ORIGIN[3], const Float:DIRECTION[3], Float:color, Float:count)
|
stock EF_ParticleEffect(const Float:ORIGIN[3], const Float:DIRECTION[3], Float:color, Float:count)
|
||||||
return engfunc(EngFunc_ParticleEffect, ORIGIN, DIRECTION, color, count)
|
return engfunc(EngFunc_ParticleEffect, ORIGIN, DIRECTION, color, count);
|
||||||
stock EF_LightStyle(style, val[])
|
stock EF_LightStyle(style, val[])
|
||||||
return engfunc(EngFunc_LightStyle, style, val)
|
return engfunc(EngFunc_LightStyle, style, val);
|
||||||
stock EF_DecalIndex(const NAME[])
|
stock EF_DecalIndex(const NAME[])
|
||||||
return engfunc(EngFunc_DecalIndex, NAME)
|
return engfunc(EngFunc_DecalIndex, NAME);
|
||||||
|
|
||||||
stock EF_PointContents(const Float:VECTOR[3])
|
stock EF_PointContents(const Float:VECTOR[3])
|
||||||
return engfunc(EngFunc_PointContents, VECTOR)
|
return engfunc(EngFunc_PointContents, VECTOR);
|
||||||
stock EF_FreeEntPrivateData(const ENTITY)
|
stock EF_FreeEntPrivateData(const ENTITY)
|
||||||
return engfunc(EngFunc_FreeEntPrivateData, ENTITY)
|
return engfunc(EngFunc_FreeEntPrivateData, ENTITY);
|
||||||
stock EF_SzFromIndex(iString)
|
stock EF_SzFromIndex(iString)
|
||||||
return engfunc(EngFunc_SzFromIndex, iString)
|
return engfunc(EngFunc_SzFromIndex, iString);
|
||||||
stock EF_AllocString(const STRING[])
|
stock EF_AllocString(const STRING[])
|
||||||
return engfunc(EngFunc_AllocString, STRING)
|
return engfunc(EngFunc_AllocString, STRING);
|
||||||
stock EF_RegUserMsg(const NAME[], iSize)
|
stock EF_RegUserMsg(const NAME[], iSize)
|
||||||
return engfunc(EngFunc_RegUserMsg, NAME, iSize)
|
return engfunc(EngFunc_RegUserMsg, NAME, iSize);
|
||||||
|
|
||||||
stock EF_AnimationAutomove(const ENTITY, Float:flTime)
|
stock EF_AnimationAutomove(const ENTITY, Float:flTime)
|
||||||
return engfunc(EngFunc_AnimationAutomove, ENTITY, flTime)
|
return engfunc(EngFunc_AnimationAutomove, ENTITY, flTime);
|
||||||
stock EF_GetBonePosition(const ENTITY, iBone, Float:origin[3], Float:angles[3])
|
stock EF_GetBonePosition(const ENTITY, iBone, Float:origin[3], Float:angles[3])
|
||||||
return engfunc(EngFunc_GetBonePosition, ENTITY, iBone, origin, angles)
|
return engfunc(EngFunc_GetBonePosition, ENTITY, iBone, origin, angles);
|
||||||
stock EF_GetAttachment(const ENTITY, iAttachment, Float:origin[3], Float:angles[3])
|
stock EF_GetAttachment(const ENTITY, iAttachment, Float:origin[3], Float:angles[3])
|
||||||
return engfunc(EngFunc_GetAttachment, ENTITY, iAttachment, origin, angles)
|
return engfunc(EngFunc_GetAttachment, ENTITY, iAttachment, origin, angles);
|
||||||
stock EF_SetView(const CLIENT, const VIEW_ENTITY)
|
stock EF_SetView(const CLIENT, const VIEW_ENTITY)
|
||||||
return engfunc(EngFunc_SetView, CLIENT, VIEW_ENTITY)
|
return engfunc(EngFunc_SetView, CLIENT, VIEW_ENTITY);
|
||||||
stock EF_Time(&Float:returnValue)
|
stock EF_Time(&Float:returnValue)
|
||||||
return engfunc(EngFunc_Time, returnValue)
|
return engfunc(EngFunc_Time, returnValue);
|
||||||
|
|
||||||
stock EF_CrosshairAngle(const CLIENT, Float:pitch, Float:yaw)
|
stock EF_CrosshairAngle(const CLIENT, Float:pitch, Float:yaw)
|
||||||
return engfunc(EngFunc_CrosshairAngle, CLIENT, pitch, yaw)
|
return engfunc(EngFunc_CrosshairAngle, CLIENT, pitch, yaw);
|
||||||
stock EF_FadeClientVolume(const ENTITY, fadePercent, fadeOutSeconds, holdTime, fadeInSeconds)
|
stock EF_FadeClientVolume(const ENTITY, fadePercent, fadeOutSeconds, holdTime, fadeInSeconds)
|
||||||
return engfunc(EngFunc_FadeClientVolume, ENTITY, fadePercent, fadeOutSeconds, holdTime, fadeInSeconds)
|
return engfunc(EngFunc_FadeClientVolume, ENTITY, fadePercent, fadeOutSeconds, holdTime, fadeInSeconds);
|
||||||
stock EF_SetClientMaxspeed(const ENTITY, Float:newMaxspeed)
|
stock EF_SetClientMaxspeed(const ENTITY, Float:newMaxspeed)
|
||||||
return engfunc(EngFunc_SetClientMaxspeed, ENTITY, newMaxspeed)
|
return engfunc(EngFunc_SetClientMaxspeed, ENTITY, newMaxspeed);
|
||||||
stock EF_CreateFakeClient(const NETNAME[])
|
stock EF_CreateFakeClient(const NETNAME[])
|
||||||
return engfunc(EngFunc_CreateFakeClient, NETNAME)
|
return engfunc(EngFunc_CreateFakeClient, NETNAME);
|
||||||
stock EF_RunPlayerMove(const FAKECLIENT, const Float:VIEWANGLES[3], Float:forwardmove, Float:sidemove, Float:upmove, buttons, impulse, msec)
|
stock EF_RunPlayerMove(const FAKECLIENT, const Float:VIEWANGLES[3], Float:forwardmove, Float:sidemove, Float:upmove, buttons, impulse, msec)
|
||||||
return engfunc(EngFunc_RunPlayerMove, FAKECLIENT, VIEWANGLES, forwardmove, sidemove, upmove, buttons, impulse, msec)
|
return engfunc(EngFunc_RunPlayerMove, FAKECLIENT, VIEWANGLES, forwardmove, sidemove, upmove, buttons, impulse, msec);
|
||||||
|
|
||||||
stock EF_NumberOfEntities()
|
stock EF_NumberOfEntities()
|
||||||
return engfunc(EngFunc_NumberOfEntities)
|
return engfunc(EngFunc_NumberOfEntities);
|
||||||
stock EF_StaticDecal(const Float:ORIGIN[3], decalIndex, entityIndex, modelIndex)
|
stock EF_StaticDecal(const Float:ORIGIN[3], decalIndex, entityIndex, modelIndex)
|
||||||
return engfunc(EngFunc_StaticDecal, ORIGIN, decalIndex, entityIndex, modelIndex)
|
return engfunc(EngFunc_StaticDecal, ORIGIN, decalIndex, entityIndex, modelIndex);
|
||||||
stock EF_PrecacheGeneric(const STRING[])
|
stock EF_PrecacheGeneric(const STRING[])
|
||||||
return engfunc(EngFunc_PrecacheGeneric, STRING)
|
return engfunc(EngFunc_PrecacheGeneric, STRING);
|
||||||
stock EF_BuildSoundMSG(const ENTITY, channel, const SAMPLE[], Float:volume, Float:attenuation, fFlags, pitch, msg_dest, msg_type, const Float:ORIGIN[3], const ED)
|
stock EF_BuildSoundMSG(const ENTITY, channel, const SAMPLE[], Float:volume, Float:attenuation, fFlags, pitch, msg_dest, msg_type, const Float:ORIGIN[3], const ED)
|
||||||
return engfunc(EngFunc_BuildSoundMsg, ENTITY, channel, SAMPLE, volume, attenuation, fFlags, pitch, msg_dest, msg_type, ORIGIN, ED)
|
return engfunc(EngFunc_BuildSoundMsg, ENTITY, channel, SAMPLE, volume, attenuation, fFlags, pitch, msg_dest, msg_type, ORIGIN, ED);
|
||||||
stock EF_GetPhysicsKeyValue(const CLIENT, const KEY[])
|
stock EF_GetPhysicsKeyValue(const CLIENT, const KEY[])
|
||||||
return engfunc(EngFunc_GetPhysicsKeyValue, CLIENT, KEY)
|
return engfunc(EngFunc_GetPhysicsKeyValue, CLIENT, KEY);
|
||||||
|
|
||||||
stock EF_SetPhysicsKeyValue(const CLIENT, const KEY[], const VALUE[])
|
stock EF_SetPhysicsKeyValue(const CLIENT, const KEY[], const VALUE[])
|
||||||
return engfunc(EngFunc_SetPhysicsKeyValue, CLIENT, KEY, VALUE)
|
return engfunc(EngFunc_SetPhysicsKeyValue, CLIENT, KEY, VALUE);
|
||||||
stock EF_GetPhysicsInfoString(const CLIENT, returnString[], maxLength)
|
stock EF_GetPhysicsInfoString(const CLIENT, returnString[], maxLength)
|
||||||
return engfunc(EngFunc_GetPhysicsInfoString, CLIENT, returnString, maxLength)
|
return engfunc(EngFunc_GetPhysicsInfoString, CLIENT, returnString, maxLength);
|
||||||
stock EF_PrecacheEvent(type, const STRING[])
|
stock EF_PrecacheEvent(type, const STRING[])
|
||||||
return engfunc(EngFunc_PrecacheEvent, type, STRING)
|
return engfunc(EngFunc_PrecacheEvent, type, STRING);
|
||||||
stock EF_PlaybackEvent(flags, const INVOKER, eventindex, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iparam1, iparam2, bparam1, bparam2)
|
stock EF_PlaybackEvent(flags, const INVOKER, eventindex, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iparam1, iparam2, bparam1, bparam2)
|
||||||
return engfunc(EngFunc_PlaybackEvent, flags, INVOKER, eventindex, delay, origin, angles, fparam1, fparam2, iparam1, iparam2, bparam1, bparam2)
|
return engfunc(EngFunc_PlaybackEvent, flags, INVOKER, eventindex, delay, origin, angles, fparam1, fparam2, iparam1, iparam2, bparam1, bparam2);
|
||||||
stock EF_CheckVisibility(const ENTITY, set)
|
stock EF_CheckVisibility(const ENTITY, set)
|
||||||
return engfunc(EngFunc_CheckVisibility, ENTITY, set)
|
return engfunc(EngFunc_CheckVisibility, ENTITY, set);
|
||||||
|
|
||||||
stock EF_GetCurrentPlayer()
|
stock EF_GetCurrentPlayer()
|
||||||
return engfunc(EngFunc_GetCurrentPlayer)
|
return engfunc(EngFunc_GetCurrentPlayer);
|
||||||
stock EF_CanSkipPlayer(const PLAYER)
|
stock EF_CanSkipPlayer(const PLAYER)
|
||||||
return engfunc(EngFunc_CanSkipPlayer, PLAYER)
|
return engfunc(EngFunc_CanSkipPlayer, PLAYER);
|
||||||
stock EF_SetGroupMask(mask, op)
|
stock EF_SetGroupMask(mask, op)
|
||||||
return engfunc(EngFunc_SetGroupMask, mask, op)
|
return engfunc(EngFunc_SetGroupMask, mask, op);
|
||||||
stock EF_GetClientListening(receiver, sender)
|
stock EF_GetClientListening(receiver, sender)
|
||||||
return engfunc(EngFunc_GetClientListening, receiver, sender);
|
return engfunc(EngFunc_GetClientListening, receiver, sender);
|
||||||
stock EF_SetClientListening(receiver, sender, bool:listen)
|
stock EF_SetClientListening(receiver, sender, bool:listen)
|
||||||
return engfunc(EngFunc_SetClientListening, receiver, sender, listen);
|
return engfunc(EngFunc_SetClientListening, receiver, sender, listen);
|
||||||
|
|
||||||
stock EF_MessageBegin(msg_dest, msg_type, const Float:ORIGIN[3], const ED)
|
stock EF_MessageBegin(msg_dest, msg_type, const Float:ORIGIN[3], const ED)
|
||||||
return engfunc(EngFunc_MessageBegin, msg_dest, msg_type, ORIGIN, ED)
|
return engfunc(EngFunc_MessageBegin, msg_dest, msg_type, ORIGIN, ED);
|
||||||
stock EF_WriteCoord(Float:value)
|
stock EF_WriteCoord(Float:value)
|
||||||
return engfunc(EngFunc_WriteCoord, value)
|
return engfunc(EngFunc_WriteCoord, value);
|
||||||
stock EF_WriteAngle(Float:value)
|
stock EF_WriteAngle(Float:value)
|
||||||
return engfunc(EngFunc_WriteAngle, value)
|
return engfunc(EngFunc_WriteAngle, value);
|
||||||
stock EF_InfoKeyValue(const INFOBUFFER, const KEY[], returnValue[], maxLength)
|
stock EF_InfoKeyValue(const INFOBUFFER, const KEY[], returnValue[], maxLength)
|
||||||
return engfunc(EngFunc_InfoKeyValue, INFOBUFFER, KEY, returnValue, maxLength)
|
return engfunc(EngFunc_InfoKeyValue, INFOBUFFER, KEY, returnValue, maxLength);
|
||||||
stock EF_SetKeyValue(const INFOBUFFER, const KEY[], const VALUE[])
|
stock EF_SetKeyValue(const INFOBUFFER, const KEY[], const VALUE[])
|
||||||
return engfunc(EngFunc_SetKeyValue, INFOBUFFER, KEY, VALUE)
|
return engfunc(EngFunc_SetKeyValue, INFOBUFFER, KEY, VALUE);
|
||||||
|
|
||||||
stock EF_SetClientKeyValue(const ID, const INFOBUFFER, const KEY[], const VALUE[])
|
stock EF_SetClientKeyValue(const ID, const INFOBUFFER, const KEY[], const VALUE[])
|
||||||
return engfunc(EngFunc_SetClientKeyValue, ID, INFOBUFFER, KEY, VALUE)
|
return engfunc(EngFunc_SetClientKeyValue, ID, INFOBUFFER, KEY, VALUE);
|
||||||
|
|
||||||
stock EF_CreateInstBaseline(CLASSNAME, baseline)
|
stock EF_CreateInstBaseline(CLASSNAME, baseline)
|
||||||
return engfunc(EngFunc_CreateInstBaseline, CLASSNAME, baseline)
|
return engfunc(EngFunc_CreateInstBaseline, CLASSNAME, baseline);
|
||||||
|
|
||||||
// Returns pointer to info buffer that can be used with the INFOBUFFER param
|
// Returns pointer to info buffer that can be used with the INFOBUFFER param
|
||||||
// of EF_InfoKeyValue, EF_SetKeyValue, and EF_SetClientKeyValue
|
// of EF_InfoKeyValue, EF_SetKeyValue, and EF_SetClientKeyValue
|
||||||
stock EF_GetInfoKeyBuffer(const ENTITY)
|
stock EF_GetInfoKeyBuffer(const ENTITY)
|
||||||
return engfunc(EngFunc_GetInfoKeyBuffer, ENTITY)
|
return engfunc(EngFunc_GetInfoKeyBuffer, ENTITY);
|
||||||
stock EF_ClientPrintf(const ENTITY, const printType, const MESSAGE[])
|
stock EF_ClientPrintf(const ENTITY, const printType, const MESSAGE[])
|
||||||
return engfunc(EngFunc_ClientPrintf, ENTITY, printType, MESSAGE)
|
return engfunc(EngFunc_ClientPrintf, ENTITY, printType, MESSAGE);
|
||||||
|
|
||||||
// DLLFuncs
|
// DLLFuncs
|
||||||
stock DF_GameInit()
|
stock DF_GameInit()
|
||||||
return dllfunc(DLLFunc_GameInit)
|
return dllfunc(DLLFunc_GameInit);
|
||||||
stock DF_Spawn(const ENTITY)
|
stock DF_Spawn(const ENTITY)
|
||||||
return dllfunc(DLLFunc_Spawn, ENTITY)
|
return dllfunc(DLLFunc_Spawn, ENTITY);
|
||||||
stock DF_Think(const ENTITY)
|
stock DF_Think(const ENTITY)
|
||||||
return dllfunc(DLLFunc_Think, ENTITY)
|
return dllfunc(DLLFunc_Think, ENTITY);
|
||||||
stock DF_Use(const ENT_Used, const ENT_User)
|
stock DF_Use(const ENT_Used, const ENT_User)
|
||||||
return dllfunc(DLLFunc_Use, ENT_Used, ENT_User)
|
return dllfunc(DLLFunc_Use, ENT_Used, ENT_User);
|
||||||
stock DF_Touch(const ENT_Touched, const ENT_Toucher)
|
stock DF_Touch(const ENT_Touched, const ENT_Toucher)
|
||||||
return dllfunc(DLLFunc_Touch, ENT_Touched, ENT_Toucher)
|
return dllfunc(DLLFunc_Touch, ENT_Touched, ENT_Toucher);
|
||||||
|
|
||||||
stock DF_Blocked(const ENT_Blocked, const ENT_Other)
|
stock DF_Blocked(const ENT_Blocked, const ENT_Other)
|
||||||
return dllfunc(DLLFunc_Blocked, ENT_Blocked, ENT_Other)
|
return dllfunc(DLLFunc_Blocked, ENT_Blocked, ENT_Other);
|
||||||
stock DF_SetAbsBox(const ENTITY)
|
stock DF_SetAbsBox(const ENTITY)
|
||||||
return dllfunc(DLLFunc_SetAbsBox, ENTITY)
|
return dllfunc(DLLFunc_SetAbsBox, ENTITY);
|
||||||
stock DF_ClientConnect(const ENTITY, const NAME[], const ADDRESS[], RejectReason[128])
|
stock DF_ClientConnect(const ENTITY, const NAME[], const ADDRESS[], RejectReason[128])
|
||||||
return dllfunc(DLLFunc_ClientConnect, ENTITY, NAME, ADDRESS, RejectReason)
|
return dllfunc(DLLFunc_ClientConnect, ENTITY, NAME, ADDRESS, RejectReason);
|
||||||
stock DF_ClientDisconnect(const ENTITY)
|
stock DF_ClientDisconnect(const ENTITY)
|
||||||
return dllfunc(DLLFunc_ClientDisconnect, ENTITY)
|
return dllfunc(DLLFunc_ClientDisconnect, ENTITY);
|
||||||
stock DF_ClientKill(const ENTITY)
|
stock DF_ClientKill(const ENTITY)
|
||||||
return dllfunc(DLLFunc_ClientKill, ENTITY)
|
return dllfunc(DLLFunc_ClientKill, ENTITY);
|
||||||
|
|
||||||
stock DF_ClientPutInServer(const ENTITY)
|
stock DF_ClientPutInServer(const ENTITY)
|
||||||
return dllfunc(DLLFunc_ClientPutInServer, ENTITY)
|
return dllfunc(DLLFunc_ClientPutInServer, ENTITY);
|
||||||
stock DF_ClientCommand(const ENTITY)
|
stock DF_ClientCommand(const ENTITY)
|
||||||
return dllfunc(DLLFunc_ClientCommand, ENTITY)
|
return dllfunc(DLLFunc_ClientCommand, ENTITY);
|
||||||
stock DF_ServerDeactivate()
|
stock DF_ServerDeactivate()
|
||||||
return dllfunc(DLLFunc_ServerDeactivate)
|
return dllfunc(DLLFunc_ServerDeactivate);
|
||||||
stock DF_PlayerPreThink(const ENTITY)
|
stock DF_PlayerPreThink(const ENTITY)
|
||||||
return dllfunc(DLLFunc_PlayerPreThink, ENTITY)
|
return dllfunc(DLLFunc_PlayerPreThink, ENTITY);
|
||||||
stock DF_PlayerPostThink(const ENTITY)
|
stock DF_PlayerPostThink(const ENTITY)
|
||||||
return dllfunc(DLLFunc_PlayerPostThink, ENTITY)
|
return dllfunc(DLLFunc_PlayerPostThink, ENTITY);
|
||||||
|
|
||||||
stock DF_StartFrame()
|
stock DF_StartFrame()
|
||||||
return dllfunc(DLLFunc_StartFrame)
|
return dllfunc(DLLFunc_StartFrame);
|
||||||
stock DF_ParmsNewLevel()
|
stock DF_ParmsNewLevel()
|
||||||
return dllfunc(DLLFunc_ParmsNewLevel)
|
return dllfunc(DLLFunc_ParmsNewLevel);
|
||||||
stock DF_ParmsChangeLevel()
|
stock DF_ParmsChangeLevel()
|
||||||
return dllfunc(DLLFunc_ParmsChangeLevel)
|
return dllfunc(DLLFunc_ParmsChangeLevel);
|
||||||
stock DF_GetGameDescription()
|
stock DF_GetGameDescription()
|
||||||
return dllfunc(DLLFunc_GetGameDescription)
|
return dllfunc(DLLFunc_GetGameDescription);
|
||||||
stock DF_SpectatorConnect(const ENTITY)
|
stock DF_SpectatorConnect(const ENTITY)
|
||||||
return dllfunc(DLLFunc_SpectatorConnect, ENTITY)
|
return dllfunc(DLLFunc_SpectatorConnect, ENTITY);
|
||||||
|
|
||||||
stock DF_SpectatorDisconnect(const ENTITY)
|
stock DF_SpectatorDisconnect(const ENTITY)
|
||||||
return dllfunc(DLLFunc_SpectatorDisconnect, ENTITY)
|
return dllfunc(DLLFunc_SpectatorDisconnect, ENTITY);
|
||||||
stock DF_SpectatorThink(const ENTITY)
|
stock DF_SpectatorThink(const ENTITY)
|
||||||
return dllfunc(DLLFunc_SpectatorThink, ENTITY)
|
return dllfunc(DLLFunc_SpectatorThink, ENTITY);
|
||||||
stock DF_Sys_Error(const ERROR_STRING[])
|
stock DF_Sys_Error(const ERROR_STRING[])
|
||||||
return dllfunc(DLLFunc_Sys_Error, ERROR_STRING)
|
return dllfunc(DLLFunc_Sys_Error, ERROR_STRING);
|
||||||
stock DF_PM_FindTextureType(name[])
|
stock DF_PM_FindTextureType(name[])
|
||||||
return dllfunc(DLLFunc_PM_FindTextureType, name)
|
return dllfunc(DLLFunc_PM_FindTextureType, name);
|
||||||
stock DF_RegisterEncoders()
|
stock DF_RegisterEncoders()
|
||||||
return dllfunc(DLLFunc_RegisterEncoders)
|
return dllfunc(DLLFunc_RegisterEncoders);
|
||||||
|
|
||||||
stock DF_GetHullBounds(hullnumber, Float:mins[3], Float:maxs[3])
|
stock DF_GetHullBounds(hullnumber, Float:mins[3], Float:maxs[3])
|
||||||
return dllfunc(DLLFunc_GetHullBounds, hullnumber, mins, maxs)
|
return dllfunc(DLLFunc_GetHullBounds, hullnumber, mins, maxs);
|
||||||
stock DF_CreateInstBaselines()
|
stock DF_CreateInstBaselines()
|
||||||
return dllfunc(DLLFunc_CreateInstBaselines)
|
return dllfunc(DLLFunc_CreateInstBaselines);
|
||||||
stock DF_pfnAllowLagCompensation()
|
stock DF_pfnAllowLagCompensation()
|
||||||
return dllfunc(DLLFunc_pfnAllowLagCompensation)
|
return dllfunc(DLLFunc_pfnAllowLagCompensation);
|
||||||
stock DF_MetaFunc_CallGameEntity(const STRING[], const ENTITY)
|
stock DF_MetaFunc_CallGameEntity(const STRING[], const ENTITY)
|
||||||
return dllfunc(MetaFunc_CallGameEntity, STRING, ENTITY)
|
return dllfunc(MetaFunc_CallGameEntity, STRING, ENTITY);
|
||||||
stock DF_ClientUserInfoChanged(const IDPLAYER)
|
stock DF_ClientUserInfoChanged(const IDPLAYER)
|
||||||
return dllfunc(DLLFunc_ClientUserInfoChanged, IDPLAYER)
|
return dllfunc(DLLFunc_ClientUserInfoChanged, IDPLAYER);
|
||||||
|
|
||||||
stock DF_UpdateClientData(const ENTITY, sendweapons, const cd = 0)
|
stock DF_UpdateClientData(const ENTITY, sendweapons, const cd/* = 0*/)
|
||||||
return dllfunc(DLLFunc_UpdateClientData, ENTITY, sendweapons, cd)
|
return dllfunc(DLLFunc_UpdateClientData, ENTITY, sendweapons, cd);
|
||||||
stock DF_AddToFullPack(const STATE = 0, e, ENT, HOST, hostflags, player, set)
|
stock DF_AddToFullPack(const STATE/* = 0*/, e, ENT, HOST, hostflags, player, set)
|
||||||
return dllfunc(DLLFunc_AddToFullPack, STATE, e, ENT, HOST, hostflags, player, set)
|
return dllfunc(DLLFunc_AddToFullPack, STATE, e, ENT, HOST, hostflags, player, set);
|
||||||
stock DF_CmdStart(const PLAYER, const CMD = 0, randomSeed)
|
stock DF_CmdStart(const PLAYER, const CMD/* = 0*/, randomSeed)
|
||||||
return dllfunc(DLLFunc_CmdStart, PLAYER, CMD, randomSeed)
|
return dllfunc(DLLFunc_CmdStart, PLAYER, CMD, randomSeed);
|
||||||
stock DF_CmdEnd(const PLAYER)
|
stock DF_CmdEnd(const PLAYER)
|
||||||
return dllfunc(DLLFunc_CmdEnd, PLAYER)
|
return dllfunc(DLLFunc_CmdEnd, PLAYER);
|
||||||
stock DF_CreateBaseline(PLAYER, eIndex, baseline, playerModelIndex, Float:playerMins[3], Float:playerMaxs[3])
|
stock DF_CreateBaseline(PLAYER, eIndex, baseline, playerModelIndex, Float:playerMins[3], Float:playerMaxs[3])
|
||||||
return dllfunc(DLLFunc_CreateBaseline, PLAYER, eIndex, baseline, playerModelIndex, playerMins, playerMaxs)
|
return dllfunc(DLLFunc_CreateBaseline, PLAYER, eIndex, baseline, playerModelIndex, playerMins, playerMaxs);
|
||||||
|
@ -82,10 +82,10 @@ native Float:floatabs(Float:value);
|
|||||||
|
|
||||||
/* Return the angle of a sine, cosine or tangent.
|
/* Return the angle of a sine, cosine or tangent.
|
||||||
* The output angle may be in radians, degrees, or grades. */
|
* The output angle may be in radians, degrees, or grades. */
|
||||||
native Float:floatatan(Float:angle, radix);
|
native Float:floatatan(Float:angle, {anglemode,_}:radix);
|
||||||
native Float:floatacos(Float:angle, radix);
|
native Float:floatacos(Float:angle, {anglemode,_}:radix);
|
||||||
native Float:floatasin(Float:angle, radix);
|
native Float:floatasin(Float:angle, {anglemode,_}:radix);
|
||||||
native Float:floatatan2(Float:x, Float:y, radix);
|
native Float:floatatan2(Float:x, Float:y, {anglemode,_}:radix);
|
||||||
|
|
||||||
#pragma rational Float
|
#pragma rational Float
|
||||||
|
|
||||||
@ -102,7 +102,7 @@ stock Float:operator--(Float:oper)
|
|||||||
return oper-1.0;
|
return oper-1.0;
|
||||||
|
|
||||||
stock Float:operator-(Float:oper)
|
stock Float:operator-(Float:oper)
|
||||||
return oper^Float:((-1)^((-1)/2)); /* IEEE values are sign/magnitude */
|
return oper^Float:cellmin; /* IEEE values are sign/magnitude */
|
||||||
|
|
||||||
stock Float:operator*(Float:oper1, oper2)
|
stock Float:operator*(Float:oper1, oper2)
|
||||||
return floatmul(oper1, float(oper2)); /* "*" is commutative */
|
return floatmul(oper1, float(oper2)); /* "*" is commutative */
|
||||||
|
@ -39,7 +39,7 @@ native set_user_armor(index, armor);
|
|||||||
native set_user_health(index, health);
|
native set_user_health(index, health);
|
||||||
|
|
||||||
/* Move player to origin. */
|
/* Move player to origin. */
|
||||||
native set_user_origin(index, origin[3]);
|
native set_user_origin(index, const origin[3]);
|
||||||
|
|
||||||
/* Sets player rendering mode. */
|
/* Sets player rendering mode. */
|
||||||
native set_user_rendering(index, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16);
|
native set_user_rendering(index, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16);
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
(C)Copyrighted under the GNU General Public License, Version 2
|
(C)Copyrighted under the GNU General Public License, Version 2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined _geoip_included
|
#if defined geoip_included
|
||||||
#endinput
|
#endinput
|
||||||
#endif
|
#endif
|
||||||
#define _geoip_included
|
#define _geoip_included
|
||||||
@ -20,10 +20,10 @@
|
|||||||
//IP address can contain ports, the ports will be stripped out
|
//IP address can contain ports, the ports will be stripped out
|
||||||
|
|
||||||
//get a two character country code (eg US, CA etc)
|
//get a two character country code (eg US, CA etc)
|
||||||
native geoip_code2(ip[], ccode[3]);
|
native geoip_code2(const ip[], ccode[3]);
|
||||||
|
|
||||||
//get a three character country code (eg USA, CAN etc)
|
//get a three character country code (eg USA, cAN etc)
|
||||||
native geoip_code3(ip[], result[4]);
|
native geoip_code3(const ip[], result[4]);
|
||||||
|
|
||||||
//get a full country name. max name is 45 chars
|
//get a full country name. max name is 45 chars
|
||||||
native geoip_country(ip[], result[], len=45);
|
native geoip_country(const ip[], result[], len=45);
|
||||||
|
@ -323,6 +323,8 @@ enum
|
|||||||
// write_coord(position.z)
|
// write_coord(position.z)
|
||||||
// write_short(model index)
|
// write_short(model index)
|
||||||
// write_byte(scale / 10)
|
// write_byte(scale / 10)
|
||||||
|
// write_byte(size)
|
||||||
|
// write_byte(brightness)
|
||||||
|
|
||||||
#define TE_BEAMRING 24 // Connect a beam ring to two entities
|
#define TE_BEAMRING 24 // Connect a beam ring to two entities
|
||||||
// write_byte(TE_BEAMRING)
|
// write_byte(TE_BEAMRING)
|
||||||
@ -362,7 +364,6 @@ enum
|
|||||||
// write_byte(red)
|
// write_byte(red)
|
||||||
// write_byte(green)
|
// write_byte(green)
|
||||||
// write_byte(blue)
|
// write_byte(blue)
|
||||||
// write_byte(brightness)
|
|
||||||
// write_byte(life in 10's)
|
// write_byte(life in 10's)
|
||||||
// write_byte(decay rate in 10's)
|
// write_byte(decay rate in 10's)
|
||||||
|
|
||||||
@ -648,7 +649,7 @@ enum
|
|||||||
|
|
||||||
#define TE_PLAYERSPRITES 121 // Sprites emit from a player's bounding box (ONLY use for players!)
|
#define TE_PLAYERSPRITES 121 // Sprites emit from a player's bounding box (ONLY use for players!)
|
||||||
// write_byte(TE_PLAYERSPRITES)
|
// write_byte(TE_PLAYERSPRITES)
|
||||||
// write_byte(playernum)
|
// write_short(playernum)
|
||||||
// write_short(sprite modelindex)
|
// write_short(sprite modelindex)
|
||||||
// write_byte(count)
|
// write_byte(count)
|
||||||
// write_byte(variance) (0 = no variance in size) (10 = 10% variance in size)
|
// write_byte(variance) (0 = no variance in size) (10 = 10% variance in size)
|
||||||
|
@ -41,7 +41,7 @@ stock user_silentkill(index)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Creates a death message. */
|
/* Creates a death message. */
|
||||||
stock make_deathmsg(killer, victim, headshot, weapon[])
|
stock make_deathmsg(killer, victim, headshot, const weapon[])
|
||||||
{
|
{
|
||||||
message_begin(MSG_ALL, get_user_msgid("DeathMsg"), {0,0,0}, 0);
|
message_begin(MSG_ALL, get_user_msgid("DeathMsg"), {0,0,0}, 0);
|
||||||
write_byte(killer);
|
write_byte(killer);
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
* You may generate menu, smoke, shockwaves, thunderlights,
|
* You may generate menu, smoke, shockwaves, thunderlights,
|
||||||
* intermission and many many others messages.
|
* intermission and many many others messages.
|
||||||
* See HL SDK for more examples. */
|
* See HL SDK for more examples. */
|
||||||
native message_begin(dest, msg_type, origin[3] = {0,0,0}, player = 0);
|
native message_begin(dest, msg_type, const origin[3] = {0,0,0}, player = 0);
|
||||||
native message_end();
|
native message_end();
|
||||||
native write_byte(x);
|
native write_byte(x);
|
||||||
native write_char(x);
|
native write_char(x);
|
||||||
@ -25,7 +25,7 @@ native write_long(x);
|
|||||||
native write_entity(x);
|
native write_entity(x);
|
||||||
native write_angle(x);
|
native write_angle(x);
|
||||||
native write_coord(x);
|
native write_coord(x);
|
||||||
native write_string(x[]);
|
native write_string(const x[]);
|
||||||
|
|
||||||
/* These are the same as above, except that the messages sent
|
/* These are the same as above, except that the messages sent
|
||||||
* are also sent to all other plugins and Metamod plugins.
|
* are also sent to all other plugins and Metamod plugins.
|
||||||
@ -35,7 +35,7 @@ native write_string(x[]);
|
|||||||
* could cause infinite recursion or something just as bad.
|
* could cause infinite recursion or something just as bad.
|
||||||
* NOTE! These natives are experimental.
|
* NOTE! These natives are experimental.
|
||||||
*/
|
*/
|
||||||
native emessage_begin(dest, msg_type, origin[3] = {0,0,0}, player = 0);
|
native emessage_begin(dest, msg_type, const origin[3] = {0,0,0}, player = 0);
|
||||||
native emessage_end();
|
native emessage_end();
|
||||||
native ewrite_byte(x);
|
native ewrite_byte(x);
|
||||||
native ewrite_char(x);
|
native ewrite_char(x);
|
||||||
@ -44,7 +44,7 @@ native ewrite_long(x);
|
|||||||
native ewrite_entity(x);
|
native ewrite_entity(x);
|
||||||
native ewrite_angle(x);
|
native ewrite_angle(x);
|
||||||
native ewrite_coord(x);
|
native ewrite_coord(x);
|
||||||
native ewrite_string(x[]);
|
native ewrite_string(const x[]);
|
||||||
|
|
||||||
/* Sets/Gets what engine messages are blocked. */
|
/* Sets/Gets what engine messages are blocked. */
|
||||||
native set_msg_block(iMessage, iMessageFlags);
|
native set_msg_block(iMessage, iMessageFlags);
|
||||||
@ -56,7 +56,7 @@ native get_msg_block(iMessage);
|
|||||||
* If you hook a message, the message is stored but not sent. You have the opportunity to
|
* If you hook a message, the message is stored but not sent. You have the opportunity to
|
||||||
* not only execute code, but to get/set the contents of the message, before you choose to
|
* not only execute code, but to get/set the contents of the message, before you choose to
|
||||||
* either block it or let it go on its way. The hooked function will be passed a msg_id, msg_dest, and entity index. */
|
* either block it or let it go on its way. The hooked function will be passed a msg_id, msg_dest, and entity index. */
|
||||||
native register_message(iMsgId, szFunction[]);
|
native register_message(iMsgId, const szFunction[]);
|
||||||
|
|
||||||
/* The get/set _msg commands will fail if used outside a hooked message scope.
|
/* The get/set _msg commands will fail if used outside a hooked message scope.
|
||||||
* They should never be used unless inside a registered message function.
|
* They should never be used unless inside a registered message function.
|
||||||
@ -81,7 +81,7 @@ native get_msg_arg_string(argn, szReturn[], iLength);
|
|||||||
/* sets the value of argn. */
|
/* sets the value of argn. */
|
||||||
native set_msg_arg_int(argn, argtype, iValue);
|
native set_msg_arg_int(argn, argtype, iValue);
|
||||||
native set_msg_arg_float(argn, argtype, Float:fValue);
|
native set_msg_arg_float(argn, argtype, Float:fValue);
|
||||||
native set_msg_arg_string(argn, szString[]);
|
native set_msg_arg_string(argn, const szString[]);
|
||||||
|
|
||||||
/* Gets the origin of a message */
|
/* Gets the origin of a message */
|
||||||
native get_msg_origin(Float:_Origin[3]);
|
native get_msg_origin(const Float:_Origin[3]);
|
||||||
|
@ -31,12 +31,12 @@ forward client_built(idPlayer,idStructure,type,impulse);
|
|||||||
/* Returns if the map's combat or not. */
|
/* Returns if the map's combat or not. */
|
||||||
native ns_is_combat();
|
native ns_is_combat();
|
||||||
|
|
||||||
/* Sends a popup to a player. Set target to 0 to send to everybody. Message length is 188 characters. The last parameter, if set to 1, will only display when the player has cl_autohelp set to 1. */
|
/* Sends a popup to a player. Set target to 0 to send to everybody. Message length is 180 characters. The last parameter, if set to 1, will only display when the player has cl_autohelp set to 1. */
|
||||||
native ns_popup(target,szMsg[180],ah=0)
|
native ns_popup(target,const szMsg[180],ah=0);
|
||||||
|
|
||||||
/* Sets a player model. Omit the second parameter to return to default.
|
/* Sets a player model. Omit the second parameter to return to default.
|
||||||
Note: This does *not* change back on death, team switch, gestations, etc. */
|
Note: This does *not* change back on death, team switch, gestations, etc. */
|
||||||
native ns_set_player_model(id,szModel[]="");
|
native ns_set_player_model(id,const szModel[]="");
|
||||||
|
|
||||||
/* Sets a player's skin. Omit second parameter to return to default.
|
/* Sets a player's skin. Omit second parameter to return to default.
|
||||||
Note: This does *not* change back on death, team switch, gestations, etc. */
|
Note: This does *not* change back on death, team switch, gestations, etc. */
|
||||||
@ -73,7 +73,7 @@ native ns_set_mask(id,mask,value);
|
|||||||
Number is any other value:
|
Number is any other value:
|
||||||
The index of the #th matching structure is returned.
|
The index of the #th matching structure is returned.
|
||||||
*/
|
*/
|
||||||
native ns_get_build(classname[],builtOnly=1,Number=0);
|
native ns_get_build(const classname[],builtOnly=1,Number=0);
|
||||||
|
|
||||||
/* Returns if the player has the weapon or not in their pev->weapons field.
|
/* Returns if the player has the weapon or not in their pev->weapons field.
|
||||||
set "setweapon" to 0 to turn the bit off, set to 1 to turn it on. Or omit it to just return the value. */
|
set "setweapon" to 0 to turn the bit off, set to 1 to turn it on. Or omit it to just return the value. */
|
||||||
|
@ -15,249 +15,251 @@
|
|||||||
#include <ns> // ns specifics
|
#include <ns> // ns specifics
|
||||||
|
|
||||||
stock is_entity(id)
|
stock is_entity(id)
|
||||||
return is_valid_ent(id)
|
return is_valid_ent(id);
|
||||||
|
|
||||||
/* The end of the native is buffered incase the plugin is including an NS_VERSION (no longer supported), ignore it */
|
/* The end of the native is buffered incase the plugin is including an NS_VERSION (no longer supported), ignore it */
|
||||||
stock get_build(classname[], value, number=0,{Float,Sql,Result,_}:...)
|
stock get_build(classname[], value, number=0,{Float,Sql,Result,_}:...)
|
||||||
return ns_get_build(classname, value, number)
|
return ns_get_build(classname, value, number);
|
||||||
|
|
||||||
stock get_private_i(index, offset, linuxdiff=5)
|
stock get_private_i(index, offset, linuxdiff=5)
|
||||||
return get_pdata_int(index, offset, linuxdiff)
|
return get_pdata_int(index, offset, linuxdiff);
|
||||||
|
|
||||||
stock set_private_i(index, offset, value, linuxdiff=5)
|
stock set_private_i(index, offset, value, linuxdiff=5)
|
||||||
{
|
{
|
||||||
return set_pdata_int(index, offset, value, linuxdiff)
|
return set_pdata_int(index, offset, value, linuxdiff);
|
||||||
}
|
}
|
||||||
|
|
||||||
stock Float:get_private_f(index, offset, linuxdiff=5)
|
stock Float:get_private_f(index, offset, linuxdiff=5)
|
||||||
{
|
{
|
||||||
return get_pdata_float(index, offset, linuxdiff)
|
return get_pdata_float(index, offset, linuxdiff);
|
||||||
}
|
}
|
||||||
|
|
||||||
stock set_private_f(index, offset, Float:value, linuxdiff=5)
|
stock set_private_f(index, offset, Float:value, linuxdiff=5)
|
||||||
{
|
{
|
||||||
return set_pdata_float(index, offset, value, linuxdiff)
|
return set_pdata_float(index, offset, value, linuxdiff);
|
||||||
}
|
}
|
||||||
|
|
||||||
stock make_string(value[])
|
stock make_string(value[])
|
||||||
return engfunc(EngFunc_AllocString,value)
|
return engfunc(EngFunc_AllocString,value);
|
||||||
|
|
||||||
stock string(value, ret[])
|
stock string(value, ret[])
|
||||||
{
|
{
|
||||||
new szString[128] // gah...
|
new szString[128];
|
||||||
engfunc(EngFunc_SzFromIndex,value,szString,127)
|
engfunc(EngFunc_SzFromIndex,value,szString,127);
|
||||||
copy(ret,szString,127)
|
copy(ret,127,szString);
|
||||||
}
|
}
|
||||||
|
|
||||||
stock gpgobals_time()
|
stock gpgobals_time()
|
||||||
return halflife_time()
|
return floatround(halflife_time());
|
||||||
|
|
||||||
stock Float:get_range(ida, idb)
|
stock Float:get_range(ida, idb)
|
||||||
return entity_range(ida, idb)
|
return entity_range(ida, idb);
|
||||||
|
|
||||||
stock supercede()
|
stock supercede()
|
||||||
return 0
|
return 0;
|
||||||
|
|
||||||
stock register_clientkill()
|
stock register_clientkill()
|
||||||
return 0
|
return 0;
|
||||||
|
|
||||||
stock register_changelvl()
|
stock register_changelvl()
|
||||||
return 0
|
return 0;
|
||||||
|
|
||||||
stock register_msgblock(msgName[])
|
stock register_msgblock(msgName[])
|
||||||
return set_msg_block(get_user_msgid(msgName), BLOCK_SET)
|
return set_msg_block(get_user_msgid(msgName), BLOCK_SET);
|
||||||
|
|
||||||
stock register_msgedit(msgName[], cmd[])
|
stock register_msgedit(msgName[], cmd[])
|
||||||
return register_message(get_user_msgid(msgName), cmd)
|
return register_message(get_user_msgid(msgName), cmd);
|
||||||
|
|
||||||
stock register_playback(event, cmd[])
|
stock register_playback(event, cmd[])
|
||||||
return 0
|
return 0;
|
||||||
|
|
||||||
stock get_spawn(type, number=0, Float:ret[3])
|
stock get_spawn(type, number=0, Float:ret[3])
|
||||||
return ns_get_spawn(type, number, ret)
|
return ns_get_spawn(type, number, ret);
|
||||||
|
|
||||||
stock has_weapon(index, weapon, setweapon=-1)
|
stock has_weapon(index, weapon, setweapon=-1)
|
||||||
return ns_has_weapon(index, weapon, setweapon)
|
return ns_has_weapon(index, weapon, setweapon);
|
||||||
|
|
||||||
stock gpglobals_v(type, Float:ret[3])
|
stock gpglobals_v(type, Float:ret[3])
|
||||||
{
|
{
|
||||||
new v_type=0
|
new v_type=0;
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
v_type = GL_v_forward
|
v_type = GL_v_forward;
|
||||||
case 2:
|
case 2:
|
||||||
v_type = GL_v_right
|
v_type = GL_v_right;
|
||||||
case 3:
|
case 3:
|
||||||
v_type = GL_v_up
|
v_type = GL_v_up;
|
||||||
}
|
}
|
||||||
if (!v_type)
|
if (!v_type)
|
||||||
return 0
|
return 0;
|
||||||
return get_global_vector(v_type, ret)
|
return get_global_vector(v_type, ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
stock pev_i(_index,_field)
|
stock pev_i(_index,_field)
|
||||||
return pev(_index,_field)
|
return pev(_index,_field);
|
||||||
|
|
||||||
stock set_pev_i(_index, _field, _val)
|
stock set_pev_i(_index, _field, _val)
|
||||||
return set_pev(_index,_field,_val)
|
return set_pev(_index,_field,_val);
|
||||||
|
|
||||||
stock Float:pev_f(_index,_field)
|
stock Float:pev_f(_index,_field)
|
||||||
{
|
{
|
||||||
new Float:f
|
new Float:f;
|
||||||
pev(_index,_field,f)
|
pev(_index,_field,f);
|
||||||
return f
|
return f;
|
||||||
}
|
}
|
||||||
stock set_pev_f(_index,_field,Float:_val)
|
stock set_pev_f(_index,_field,Float:_val)
|
||||||
return set_pev(_index,_field,_val)
|
return set_pev(_index,_field,_val);
|
||||||
|
|
||||||
|
|
||||||
stock msg_args()
|
stock msg_args()
|
||||||
return get_msg_args()
|
return get_msg_args();
|
||||||
|
|
||||||
stock Float:msg_loc(vec)
|
stock Float:msg_loc(vec)
|
||||||
{
|
{
|
||||||
new Float:Ret[3]
|
new Float:Ret[3];
|
||||||
get_msg_origin(Ret)
|
get_msg_origin(Ret);
|
||||||
if (vec < 0 || vec > 3)
|
if (vec < 0 || vec > 3)
|
||||||
return float(0)
|
return float(0);
|
||||||
else
|
else
|
||||||
return Ret[vec]
|
return Ret[vec];
|
||||||
|
|
||||||
|
return 0.0; // make compiler happy!
|
||||||
}
|
}
|
||||||
|
|
||||||
stock msg_dest()
|
stock msg_dest()
|
||||||
return 0
|
return 0;
|
||||||
|
|
||||||
stock msg_type()
|
stock msg_type()
|
||||||
return 0
|
return 0;
|
||||||
|
|
||||||
stock msg_name()
|
stock msg_name()
|
||||||
return 0
|
return 0;
|
||||||
|
|
||||||
stock msg_set_s(number, value[])
|
stock msg_set_s(number, value[])
|
||||||
return set_msg_arg_string(number, value)
|
return set_msg_arg_string(number, value);
|
||||||
|
|
||||||
stock msg_set_f(number, Float:value)
|
stock msg_set_f(number, Float:value)
|
||||||
return set_msg_arg_float(number, get_msg_argtype(number), value)
|
return set_msg_arg_float(number, get_msg_argtype(number), value);
|
||||||
|
|
||||||
stock msg_set_i(number, value)
|
stock msg_set_i(number, value)
|
||||||
return set_msg_arg_int(number, get_msg_argtype(number), value)
|
return set_msg_arg_int(number, get_msg_argtype(number), value);
|
||||||
|
|
||||||
stock msg_data_type(value)
|
stock msg_data_type(value)
|
||||||
return get_msg_arg_type(value)
|
return get_msg_argtype(value);
|
||||||
|
|
||||||
stock msg_strdata(value)
|
stock msg_strdata(value)
|
||||||
return 0
|
return 0;
|
||||||
|
|
||||||
stock msg_data(value, ...)
|
stock msg_data(value, ...)
|
||||||
{
|
{
|
||||||
return (0*value)
|
return (0*value);
|
||||||
}
|
}
|
||||||
|
|
||||||
stock get_filename(szFile[], len=-1)
|
stock get_filename(szFile[], len=-1)
|
||||||
{
|
{
|
||||||
new name[16], version[16], author[16], status[16]
|
new name[16], version[16], author[16], status[16];
|
||||||
new res = get_plugin(0, szFile, len, name, 16, version, 16, author, 16, status, 16)
|
new res = get_plugin(0, szFile, len, name, 16, version, 16, author, 16, status, 16);
|
||||||
return res
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
stock get_speedchange(id)
|
stock get_speedchange(id)
|
||||||
return ns_get_speedchange(id)
|
return ns_get_speedchange(id);
|
||||||
|
|
||||||
stock set_speedchange(id, speed)
|
stock set_speedchange(id, speed)
|
||||||
return ns_set_speedchange(id,speed)
|
return ns_set_speedchange(id,speed);
|
||||||
|
|
||||||
stock get_maxspeed(id)
|
stock get_maxspeed(id)
|
||||||
return ns_get_maxspeed(id)
|
return ns_get_maxspeed(id);
|
||||||
|
|
||||||
stock set_player_model(id, model[]="")
|
stock set_player_model(id, model[]="")
|
||||||
return ns_set_player_model(id, model)
|
return ns_set_player_model(id, model);
|
||||||
|
|
||||||
stock set_player_skin(id, skin=-1)
|
stock set_player_skin(id, skin=-1)
|
||||||
return ns_set_player_skin(id, skin)
|
return ns_set_player_skin(id, skin);
|
||||||
|
|
||||||
stock set_player_body(id, body=-1)
|
stock set_player_body(id, body=-1)
|
||||||
return ns_set_player_body(id, body)
|
return ns_set_player_body(id, body);
|
||||||
|
|
||||||
stock ns2amx_version()
|
stock ns2amx_version()
|
||||||
return 0
|
return 0;
|
||||||
|
|
||||||
stock set_kvhandled()
|
stock set_kvhandled()
|
||||||
return 0
|
return 0;
|
||||||
|
|
||||||
stock ns2amx_getammo(id,Weapon)
|
stock ns2amx_getammo(id,Weapon)
|
||||||
return ns_get_weap_reserve(id, Weapon)
|
return ns_get_weap_reserve(id, Weapon);
|
||||||
|
|
||||||
stock ns2amx_setammo(id,Weapon,Value)
|
stock ns2amx_setammo(id,Weapon,Value)
|
||||||
return ns_set_weap_reserve(id, Weapon, Value)
|
return ns_set_weap_reserve(id, Weapon, Value);
|
||||||
|
|
||||||
stock ns2amx_giveitem(id,svClassname[])
|
stock ns2amx_giveitem(id,svClassname[])
|
||||||
return ns_give_item(id, svClassname)
|
return ns_give_item(id, svClassname);
|
||||||
|
|
||||||
stock ns2amx_moveto(idMoved,idDest)
|
stock ns2amx_moveto(idMoved,idDest)
|
||||||
{
|
{
|
||||||
new Float:origin[3]
|
new Float:origin[3];
|
||||||
entity_get_vector(idDest, EV_VEC_origin,origin)
|
entity_get_vector(idDest, EV_VEC_origin,origin);
|
||||||
entity_set_origin(idMoved, origin)
|
entity_set_origin(idMoved, origin);
|
||||||
return 1
|
return 1;
|
||||||
}
|
}
|
||||||
/* Returns whether or not the player has the MASK_DIGESTING flag set. */
|
/* Returns whether or not the player has the MASK_DIGESTING flag set. */
|
||||||
stock ns2amx_isdigesting(id)
|
stock ns2amx_isdigesting(id)
|
||||||
return ns_get_mask(id,MASK_DIGESTING)
|
return ns_get_mask(id,MASK_DIGESTING);
|
||||||
|
|
||||||
/* Returns total # of active hives. */
|
/* Returns total # of active hives. */
|
||||||
stock ns2amx_gethives()
|
stock ns2amx_gethives()
|
||||||
return ns_get_build("team_hive",1)
|
return ns_get_build("team_hive",1);
|
||||||
|
|
||||||
/* Returns 1 if the two entities are within the given range. */
|
/* Returns 1 if the two entities are within the given range. */
|
||||||
stock ns2amx_inrange(ida,idb,range)
|
stock ns2amx_inrange(ida,idb,range)
|
||||||
{
|
{
|
||||||
if (entity_range(ida,idb) <= range)
|
if (entity_range(ida,idb) <= range)
|
||||||
return 1
|
return 1;
|
||||||
return 0
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
stock ns2amx_nspopup(id,svMessage[190]) {
|
stock ns2amx_nspopup(id,svMessage[190]) {
|
||||||
new szMessage[180]
|
new szMessage[180];
|
||||||
copy(szMessage,179,svMessage)
|
copy(szMessage,179,svMessage);
|
||||||
return ns_popup(id, szMessage)
|
return ns_popup(id, szMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
stock ns2amx_setres(id,value)
|
stock ns2amx_setres(id,value)
|
||||||
return ns_set_res(id, float(value))
|
return ns_set_res(id, float(value));
|
||||||
|
|
||||||
stock ns2amx_getenergy(id)
|
stock ns2amx_getenergy(id)
|
||||||
return floatround(ns_get_energy(id))
|
return floatround(ns_get_energy(id));
|
||||||
|
|
||||||
stock ns2amx_setenergy(id,energy)
|
stock ns2amx_setenergy(id,energy)
|
||||||
return ns_set_energy(id, float(energy))
|
return ns_set_energy(id, float(energy));
|
||||||
|
|
||||||
stock ns2amx_getjpfuel(id)
|
stock ns2amx_getjpfuel(id)
|
||||||
return floatround(ns_get_jpfuel(id))
|
return floatround(ns_get_jpfuel(id));
|
||||||
|
|
||||||
stock ns2amx_setjpfuel(id,fuel)
|
stock ns2amx_setjpfuel(id,fuel)
|
||||||
return ns_set_jpfuel(id, float(fuel))
|
return ns_set_jpfuel(id, float(fuel));
|
||||||
|
|
||||||
stock get_mask(id,mask)
|
stock get_mask(id,mask)
|
||||||
return ns_get_mask(id, mask)
|
return ns_get_mask(id, mask);
|
||||||
|
|
||||||
stock set_mask(id,mask,value)
|
stock set_mask(id,mask,value)
|
||||||
return ns_set_mask(id,mask,value)
|
return ns_set_mask(id,mask,value);
|
||||||
|
|
||||||
stock get_special(id,mask)
|
stock get_special(id,mask)
|
||||||
{
|
{
|
||||||
if (pev(id,pev_iuser4) & mask)
|
if (pev(id,pev_iuser4) & mask)
|
||||||
return 1
|
return 1;
|
||||||
return 0
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
stock get_res(id)
|
stock get_res(id)
|
||||||
return floatround(ns_get_res(id))
|
return floatround(ns_get_res(id));
|
||||||
|
|
||||||
stock get_class(id)
|
stock get_class(id)
|
||||||
return ns_get_class(id)
|
return ns_get_class(id);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
stock is_combat()
|
stock is_combat()
|
||||||
return ns_is_combat()
|
return ns_is_combat();
|
||||||
|
@ -34,7 +34,7 @@ native nvault_get(vault, const key[], ...);
|
|||||||
/* Looks up a vault value for full information
|
/* Looks up a vault value for full information
|
||||||
* Returns 0 if the entry is not found
|
* Returns 0 if the entry is not found
|
||||||
*/
|
*/
|
||||||
native nvault_lookup(vault, const key[], value[], maxlen, ×tamp)
|
native nvault_lookup(vault, const key[], value[], maxlen, ×tamp);
|
||||||
|
|
||||||
/* Sets a vault value (with current timestamp) */
|
/* Sets a vault value (with current timestamp) */
|
||||||
native nvault_set(vault, const key[], const value[]);
|
native nvault_set(vault, const key[], const value[]);
|
||||||
|
@ -39,7 +39,7 @@
|
|||||||
* 3 - couldn't connect to given hostname:port
|
* 3 - couldn't connect to given hostname:port
|
||||||
*/
|
*/
|
||||||
|
|
||||||
native socket_open(_hostname[], _port, _protocol = SOCKET_TCP, &_error);
|
native socket_open(const _hostname[], _port, _protocol = SOCKET_TCP, &_error);
|
||||||
|
|
||||||
/* Closes a Socket */
|
/* Closes a Socket */
|
||||||
|
|
||||||
@ -51,11 +51,11 @@ native socket_recv(_socket, _data[], _length);
|
|||||||
|
|
||||||
/* Sends data to the Socket */
|
/* Sends data to the Socket */
|
||||||
|
|
||||||
native socket_send(_socket, _data[], _length);
|
native socket_send(_socket, const _data[], _length);
|
||||||
|
|
||||||
/* Same as socket_send but Data can contain null bytes */
|
/* Same as socket_send but Data can contain null bytes */
|
||||||
|
|
||||||
native socket_send2(_socket, _data[], _length);
|
native socket_send2(_socket, const _data[], _length);
|
||||||
|
|
||||||
/* This function will return true if the state (buffer content) have changed within the last recieve or
|
/* This function will return true if the state (buffer content) have changed within the last recieve or
|
||||||
* the timeout, where timeout is a value in <20>Seconds, (1 sec =1000000 <20>sec).
|
* the timeout, where timeout is a value in <20>Seconds, (1 sec =1000000 <20>sec).
|
||||||
|
@ -245,15 +245,15 @@ stock SQL_SimpleQuery(Handle:db, const query[], error[]="", maxlength=0, &rows=0
|
|||||||
if (!SQL_Execute(hQuery))
|
if (!SQL_Execute(hQuery))
|
||||||
{
|
{
|
||||||
SQL_QueryError(hQuery, error, maxlength);
|
SQL_QueryError(hQuery, error, maxlength);
|
||||||
SQL_FreeHandle(hQuery)
|
SQL_FreeHandle(hQuery);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
rows = SQL_NumResults(hQuery)
|
rows = SQL_NumResults(hQuery);
|
||||||
|
|
||||||
SQL_FreeHandle(hQuery);
|
SQL_FreeHandle(hQuery);
|
||||||
|
|
||||||
return 1
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -263,22 +263,22 @@ stock SQL_SimpleQuery(Handle:db, const query[], error[]="", maxlength=0, &rows=0
|
|||||||
stock SQL_SimpleQueryFmt(Handle:db, error[]="", maxlength=0, &rows=0, const fmt[], ...)
|
stock SQL_SimpleQueryFmt(Handle:db, error[]="", maxlength=0, &rows=0, const fmt[], ...)
|
||||||
{
|
{
|
||||||
static query_buf[2048];
|
static query_buf[2048];
|
||||||
vformat(query_buf, 2047, fmt, 6)
|
vformat(query_buf, 2047, fmt, 6);
|
||||||
|
|
||||||
new Handle:hQuery = SQL_PrepareQuery(db, "%s", query_buf);
|
new Handle:hQuery = SQL_PrepareQuery(db, "%s", query_buf);
|
||||||
|
|
||||||
if (!SQL_Execute(hQuery))
|
if (!SQL_Execute(hQuery))
|
||||||
{
|
{
|
||||||
SQL_QueryError(hQuery, error, maxlength);
|
SQL_QueryError(hQuery, error, maxlength);
|
||||||
SQL_FreeHandle(hQuery)
|
SQL_FreeHandle(hQuery);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
rows = SQL_NumResults(hQuery)
|
rows = SQL_NumResults(hQuery);
|
||||||
|
|
||||||
SQL_FreeHandle(hQuery);
|
SQL_FreeHandle(hQuery);
|
||||||
|
|
||||||
return 1
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -287,46 +287,46 @@ stock SQL_SimpleQueryFmt(Handle:db, error[]="", maxlength=0, &rows=0, const fmt[
|
|||||||
*/
|
*/
|
||||||
stock SQL_QueryAndIgnore(Handle:db, const queryfmt[], {Float,_}:...)
|
stock SQL_QueryAndIgnore(Handle:db, const queryfmt[], {Float,_}:...)
|
||||||
{
|
{
|
||||||
static query[4096]
|
static query[4096];
|
||||||
new Handle:hQuery
|
new Handle:hQuery;
|
||||||
new ret
|
new ret;
|
||||||
|
|
||||||
vformat(query, sizeof(query)-1, queryfmt, 3)
|
vformat(query, sizeof(query)-1, queryfmt, 3);
|
||||||
|
|
||||||
hQuery = SQL_PrepareQuery(db, "%s", query);
|
hQuery = SQL_PrepareQuery(db, "%s", query);
|
||||||
|
|
||||||
if (SQL_Execute(hQuery))
|
if (SQL_Execute(hQuery))
|
||||||
{
|
{
|
||||||
ret = SQL_AffectedRows(hQuery)
|
ret = SQL_AffectedRows(hQuery);
|
||||||
} else {
|
} else {
|
||||||
ret = -1
|
ret = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
SQL_FreeHandle(hQuery)
|
SQL_FreeHandle(hQuery);
|
||||||
|
|
||||||
return ret
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
stock Handle:SQL_MakeStdTuple()
|
stock Handle:SQL_MakeStdTuple()
|
||||||
{
|
{
|
||||||
static host[64], user[32], pass[32], db[128]
|
static host[64], user[32], pass[32], db[128];
|
||||||
static get_type[12], set_type[12]
|
static get_type[12], set_type[12];
|
||||||
|
|
||||||
get_cvar_string("amx_sql_host", host, 63)
|
get_cvar_string("amx_sql_host", host, 63);
|
||||||
get_cvar_string("amx_sql_user", user, 31)
|
get_cvar_string("amx_sql_user", user, 31);
|
||||||
get_cvar_string("amx_sql_pass", pass, 31)
|
get_cvar_string("amx_sql_pass", pass, 31);
|
||||||
get_cvar_string("amx_sql_type", set_type, 11)
|
get_cvar_string("amx_sql_type", set_type, 11);
|
||||||
get_cvar_string("amx_sql_db", db, 127)
|
get_cvar_string("amx_sql_db", db, 127);
|
||||||
|
|
||||||
SQL_GetAffinity(get_type, 11)
|
SQL_GetAffinity(get_type, 12);
|
||||||
|
|
||||||
if (!equali(get_type, set_type))
|
if (!equali(get_type, set_type))
|
||||||
{
|
{
|
||||||
if (!SQL_SetAffinity(set_type))
|
if (!SQL_SetAffinity(set_type))
|
||||||
{
|
{
|
||||||
log_amx("Failed to set affinity from %s to %s.", get_type, set_type)
|
log_amx("Failed to set affinity from %s to %s.", get_type, set_type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return SQL_MakeDbTuple(host, user, pass, db)
|
return SQL_MakeDbTuple(host, user, pass, db);
|
||||||
}
|
}
|
||||||
|
@ -164,7 +164,7 @@ native strfind(const string[], const sub[], ignorecase=0, pos=0);
|
|||||||
native strcmp(const string1[], const string2[], ignorecase=0);
|
native strcmp(const string1[], const string2[], ignorecase=0);
|
||||||
|
|
||||||
/* Tests if given string contains only digits. Also, returns false for zero-length strings. */
|
/* Tests if given string contains only digits. Also, returns false for zero-length strings. */
|
||||||
stock bool:is_str_num(sString[])
|
stock bool:is_str_num(const sString[])
|
||||||
{
|
{
|
||||||
new i = 0;
|
new i = 0;
|
||||||
|
|
||||||
@ -179,7 +179,7 @@ stock bool:is_str_num(sString[])
|
|||||||
the right output , the max right length, and then the delimiter string.
|
the right output , the max right length, and then the delimiter string.
|
||||||
By Suicid3
|
By Suicid3
|
||||||
*/
|
*/
|
||||||
stock split(szInput[], szLeft[], pL_Max, szRight[], pR_Max, szDelim[])
|
stock split(const szInput[], szLeft[], pL_Max, szRight[], pR_Max, const szDelim[])
|
||||||
{
|
{
|
||||||
new iEnd = contain(szInput, szDelim);
|
new iEnd = contain(szInput, szDelim);
|
||||||
new iStart = iEnd + strlen(szDelim);
|
new iStart = iEnd + strlen(szDelim);
|
||||||
@ -204,7 +204,7 @@ stock split(szInput[], szLeft[], pL_Max, szRight[], pR_Max, szDelim[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Removes a path from szFilePath leaving the name of the file in szFile for a pMax length. */
|
/* Removes a path from szFilePath leaving the name of the file in szFile for a pMax length. */
|
||||||
stock remove_filepath(szFilePath[], szFile[], pMax)
|
stock remove_filepath(const szFilePath[], szFile[], pMax)
|
||||||
{
|
{
|
||||||
new len = strlen(szFilePath);
|
new len = strlen(szFilePath);
|
||||||
|
|
||||||
@ -219,7 +219,7 @@ stock remove_filepath(szFilePath[], szFile[], pMax)
|
|||||||
* This ensures that no infinite replacements will take place by
|
* This ensures that no infinite replacements will take place by
|
||||||
* intelligently moving to the next string position each iteration.
|
* intelligently moving to the next string position each iteration.
|
||||||
*/
|
*/
|
||||||
stock replace_all(string[], len, what[], with[])
|
stock replace_all(string[], len, const what[], const with[])
|
||||||
{
|
{
|
||||||
new pos = 0;
|
new pos = 0;
|
||||||
|
|
||||||
@ -232,7 +232,7 @@ stock replace_all(string[], len, what[], with[])
|
|||||||
new with_len = strlen(with);
|
new with_len = strlen(with);
|
||||||
new diff = strlen(what) - with_len;
|
new diff = strlen(what) - with_len;
|
||||||
new total_len = strlen(string);
|
new total_len = strlen(string);
|
||||||
new temp_pos = 0
|
new temp_pos = 0;
|
||||||
|
|
||||||
while (replace(string[pos], len - pos, what, with) != 0)
|
while (replace(string[pos], len - pos, what, with) != 0)
|
||||||
{
|
{
|
||||||
|
@ -69,6 +69,8 @@ enum {
|
|||||||
TFC_PC_CIVILIAN,
|
TFC_PC_CIVILIAN,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define TFC_PC_ENGINEER TFC_PC_ENGENEER
|
||||||
|
|
||||||
// Goal items
|
// Goal items
|
||||||
#define TFC_GOALITEM_BLUE (1 << 17)
|
#define TFC_GOALITEM_BLUE (1 << 17)
|
||||||
#define TFC_GOALITEM_RED (1 << 18)
|
#define TFC_GOALITEM_RED (1 << 18)
|
||||||
|
@ -42,7 +42,7 @@ forward client_death(killer,victim,wpnindex,hitplace,TK);
|
|||||||
|
|
||||||
/* Custom Weapon Support */
|
/* Custom Weapon Support */
|
||||||
/* function will return index of new weapon */
|
/* function will return index of new weapon */
|
||||||
native custom_weapon_add( wpnname[],melee = 0,logname[]="" );
|
native custom_weapon_add( const wpnname[],melee = 0,const logname[]="" );
|
||||||
/* Function will pass damage done by this custom weapon to stats module and other plugins */
|
/* Function will pass damage done by this custom weapon to stats module and other plugins */
|
||||||
native custom_weapon_dmg( weapon, att, vic, damage, hitplace=0 );
|
native custom_weapon_dmg( weapon, att, vic, damage, hitplace=0 );
|
||||||
/* Function will pass info about custom weapon shot to stats module */
|
/* Function will pass info about custom weapon shot to stats module */
|
||||||
|
@ -51,10 +51,10 @@ forward client_stunt(id,stunttype,UNAVAILABLE);
|
|||||||
forward client_powerup(id,powerup,UNAVAILABLE);
|
forward client_powerup(id,powerup,UNAVAILABLE);
|
||||||
|
|
||||||
/* weapon logname to weapon name convertion */
|
/* weapon logname to weapon name convertion */
|
||||||
native ts_wpnlogtoname(logname[],name[],len);
|
native ts_wpnlogtoname(const logname[],name[],len);
|
||||||
|
|
||||||
/* weapon logname to weapon index convertion */
|
/* weapon logname to weapon index convertion */
|
||||||
native ts_wpnlogtoid(logname[]);
|
native ts_wpnlogtoid(const logname[]);
|
||||||
|
|
||||||
//UNAVAILABLE IN 1.70
|
//UNAVAILABLE IN 1.70
|
||||||
//native Float:ts_getusertime( index ); //!
|
//native Float:ts_getusertime( index ); //!
|
||||||
@ -66,7 +66,7 @@ native ts_setusercash( index, money );
|
|||||||
native ts_getuserslots( index );
|
native ts_getuserslots( index );
|
||||||
native ts_setuserslots( index, slots );
|
native ts_setuserslots( index, slots );
|
||||||
|
|
||||||
native ts_getuserstate( index )
|
native ts_getuserstate( index );
|
||||||
native ts_getuserwpn( index,&clip,&ammo,&mode,&extra );
|
native ts_getuserwpn( index,&clip,&ammo,&mode,&extra );
|
||||||
native ts_getuserspace( index );
|
native ts_getuserspace( index );
|
||||||
|
|
||||||
@ -98,30 +98,30 @@ native ts_setpddata( knifeoffset );
|
|||||||
// native ts_set_fuattack(id,Float:time,Float:damage); //!
|
// native ts_set_fuattack(id,Float:time,Float:damage); //!
|
||||||
|
|
||||||
// Changes board message
|
// Changes board message
|
||||||
native ts_set_message(id,message)
|
native ts_set_message(id,message);
|
||||||
|
|
||||||
// Gets the message board message
|
// Gets the message board message
|
||||||
native ts_get_message(id)
|
native ts_get_message(id);
|
||||||
|
|
||||||
stock ts_is_normal(id)
|
stock ts_is_normal(id)
|
||||||
{
|
{
|
||||||
new msg = ts_get_message(id)
|
new msg = ts_get_message(id);
|
||||||
if( (msg > 11) || (msg > 6 && msg < 10) ) return 1;
|
if( (msg > 11) || (msg > 6 && msg < 10) ) return 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
stock ts_is_waiting(id) return (ts_get_message(id) == TSMSG_WAITING)
|
stock ts_is_waiting(id) return (ts_get_message(id) == TSMSG_WAITING);
|
||||||
stock ts_is_dead(id) return (ts_get_message(id) == TSMSG_DEAD)
|
stock ts_is_dead(id) return (ts_get_message(id) == TSMSG_DEAD);
|
||||||
stock ts_is_killer(id) return (ts_get_message(id) == TSMSG_KILLER)
|
stock ts_is_killer(id) return (ts_get_message(id) == TSMSG_KILLER);
|
||||||
stock ts_is_demolition(id) return (ts_get_message(id) == TSMSG_DEMOLITION)
|
stock ts_is_demolition(id) return (ts_get_message(id) == TSMSG_DEMOLITION);
|
||||||
stock ts_is_specialist(id) return (ts_get_message(id) == TSMSG_SPECIALIST)
|
stock ts_is_specialist(id) return (ts_get_message(id) == TSMSG_SPECIALIST);
|
||||||
stock ts_is_unstoppable(id) return (ts_get_message(id) == TSMSG_UNSTOPPABLE)
|
stock ts_is_unstoppable(id) return (ts_get_message(id) == TSMSG_UNSTOPPABLE);
|
||||||
stock ts_is_theone(id) return (ts_get_message(id) == TSMSG_THEONE)
|
stock ts_is_theone(id) return (ts_get_message(id) == TSMSG_THEONE);
|
||||||
|
|
||||||
// Return one on true, 0 on false
|
// Return one on true, 0 on false
|
||||||
// UNAVAILABLE IN 1.70
|
// UNAVAILABLE IN 1.70
|
||||||
native ts_has_superjump(id); //!
|
native ts_has_superjump(id); //!
|
||||||
native ts_has_fupowerup(id); //!
|
native ts_has_fupowerup(id); //!
|
||||||
native ts_is_in_slowmo(id)
|
native ts_is_in_slowmo(id);
|
||||||
|
|
||||||
// Get and set consecutive frags
|
// Get and set consecutive frags
|
||||||
//UNAVAILABLE IN 1.70
|
//UNAVAILABLE IN 1.70
|
||||||
@ -132,23 +132,23 @@ native ts_is_in_slowmo(id)
|
|||||||
native ts_set_bullettrail(id,yesorno);
|
native ts_set_bullettrail(id,yesorno);
|
||||||
|
|
||||||
// Sets fake versions of slow mo and slow pause. Use ts_set_speed for more options.
|
// Sets fake versions of slow mo and slow pause. Use ts_set_speed for more options.
|
||||||
native ts_set_fakeslowmo(id,Float:time)
|
native ts_set_fakeslowmo(id,Float:time);
|
||||||
native ts_set_fakeslowpause(id,Float:time)
|
native ts_set_fakeslowpause(id,Float:time);
|
||||||
|
|
||||||
/* Sets speed artificially. 1.0 is default, Go into fractions and decimals for slower
|
/* Sets speed artificially. 1.0 is default, Go into fractions and decimals for slower
|
||||||
* and put in higher numbers for higher speeds. Aura is how far things around you are effected
|
* and put in higher numbers for higher speeds. Aura is how far things around you are effected
|
||||||
* Time is the time until it wears off. 0.0 for speed will freeze people. Do not use negatives. */
|
* Time is the time until it wears off. 0.0 for speed will freeze people. Do not use negatives. */
|
||||||
|
|
||||||
native ts_set_speed(id,Float:speed,Float:auradist,Float:time)
|
native ts_set_speed(id,Float:speed,Float:auradist,Float:time);
|
||||||
|
|
||||||
/* Sets physics speed artificially. Things like sparks and sounds will be effected.
|
/* Sets physics speed artificially. Things like sparks and sounds will be effected.
|
||||||
* Any negative number will render all physics paused. */
|
* Any negative number will render all physics paused. */
|
||||||
native ts_set_physics_speed(id,Float:speed)
|
native ts_set_physics_speed(id,Float:speed);
|
||||||
|
|
||||||
// Returns 0 if no powerup is running. Returns the powerup type otherwise.
|
// Returns 0 if no powerup is running. Returns the powerup type otherwise.
|
||||||
native ts_is_running_powerup(id)
|
native ts_is_running_powerup(id);
|
||||||
|
|
||||||
// Highly experimental command which overrides powerup types.
|
// Highly experimental command which overrides powerup types.
|
||||||
// Use if a powerup is already running, or if a powerup is not running.
|
// Use if a powerup is already running, or if a powerup is not running.
|
||||||
// Safe to use in powerup forward.
|
// Safe to use in powerup forward.
|
||||||
native ts_force_run_powerup(id,PWUP_TYPE)
|
native ts_force_run_powerup(id,PWUP_TYPE);
|
||||||
|
@ -43,7 +43,7 @@ forward client_death(killer,victim,wpnindex,hitplace,TK);
|
|||||||
|
|
||||||
/* Custom Weapon Support */
|
/* Custom Weapon Support */
|
||||||
/* function will return index of new weapon */
|
/* function will return index of new weapon */
|
||||||
native custom_weapon_add( wpnname[],melee = 0,logname[]="" );
|
native custom_weapon_add( const wpnname[],melee = 0,const logname[]="" );
|
||||||
/* Function will pass damage done by this custom weapon to stats module and other plugins */
|
/* Function will pass damage done by this custom weapon to stats module and other plugins */
|
||||||
native custom_weapon_dmg( weapon, att, vic, damage, hitplace=0 );
|
native custom_weapon_dmg( weapon, att, vic, damage, hitplace=0 );
|
||||||
/* Function will pass info about custom weapon shot to stats module */
|
/* Function will pass info about custom weapon shot to stats module */
|
||||||
@ -70,7 +70,7 @@ native xmod_is_custom_wpn(wpnindex);
|
|||||||
/************* Shared Natives End ********************************/
|
/************* Shared Natives End ********************************/
|
||||||
|
|
||||||
/* Spawns a Weapon */
|
/* Spawns a Weapon */
|
||||||
stock ts_weaponspawn(weaponid[], duration[], extraclip[], spawnflags[], Float:Origin[3])
|
stock ts_weaponspawn(const weaponid[], const duration[], const extraclip[], const spawnflags[], const Float:Origin[3])
|
||||||
{
|
{
|
||||||
new ent = create_entity("ts_groundweapon");
|
new ent = create_entity("ts_groundweapon");
|
||||||
|
|
||||||
|
@ -16,44 +16,44 @@
|
|||||||
#define ANGLEVECTOR_UP 3
|
#define ANGLEVECTOR_UP 3
|
||||||
|
|
||||||
/* Returns distance between two vectors. */
|
/* Returns distance between two vectors. */
|
||||||
native get_distance(origin1[3],origin2[3]);
|
native get_distance(const origin1[3], const origin2[3]);
|
||||||
|
|
||||||
/* Gets distance between two origins (float). */
|
/* Gets distance between two origins (float). */
|
||||||
native Float:get_distance_f(Float:Origin1[3], Float:Origin2[3]);
|
native Float:get_distance_f(const Float:Origin1[3], const Float:Origin2[3]);
|
||||||
|
|
||||||
/* Gives you a velocity in the direction a player is looking, iVelocity is the multiplier. */
|
/* Gives you a velocity in the direction a player is looking, iVelocity is the multiplier. */
|
||||||
native velocity_by_aim(iIndex, iVelocity, Float:vRetValue[3]);
|
native velocity_by_aim(iIndex, iVelocity, Float:vRetValue[3]);
|
||||||
|
|
||||||
/* Changes a vector into an angle vector. */
|
/* Changes a vector into an angle vector. */
|
||||||
native vector_to_angle(Float:fVector[3], Float:vReturn[3]);
|
native vector_to_angle(const Float:fVector[3], Float:vReturn[3]);
|
||||||
|
|
||||||
/* Changes an angle vector into a vector. */
|
/* Changes an angle vector into a vector. */
|
||||||
native angle_vector(Float:vector[3], FRU, Float:ret[3]);
|
native angle_vector(const Float:vector[3], FRU, Float:ret[3]);
|
||||||
|
|
||||||
/* Gets the length of a vector (float[3]). */
|
/* Gets the length of a vector (float[3]). */
|
||||||
native Float:vector_length(Float:vVector[3]);
|
native Float:vector_length(const Float:vVector[3]);
|
||||||
|
|
||||||
/* Gets the distance between 2 vectors (float[3]). */
|
/* Gets the distance between 2 vectors (float[3]). */
|
||||||
native Float:vector_distance(Float:vVector[3], Float:vVector2[3]);
|
native Float:vector_distance(const Float:vVector[3], const Float:vVector2[3]);
|
||||||
|
|
||||||
/* Changes an integer vec to a floating vec
|
/* Changes an integer vec to a floating vec
|
||||||
* This is not a for loop because that's slower
|
* This is not a for loop because that's slower
|
||||||
*/
|
*/
|
||||||
stock IVecFVec(IVec[3], Float:FVec[3])
|
stock IVecFVec(const IVec[3], Float:FVec[3])
|
||||||
{
|
{
|
||||||
FVec[0] = float(IVec[0])
|
FVec[0] = float(IVec[0]);
|
||||||
FVec[1] = float(IVec[1])
|
FVec[1] = float(IVec[1]);
|
||||||
FVec[2] = float(IVec[2])
|
FVec[2] = float(IVec[2]);
|
||||||
|
|
||||||
return 1
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Changes a float vec to an integer vec */
|
/* Changes a float vec to an integer vec */
|
||||||
stock FVecIVec(Float:FVec[3], IVec[3])
|
stock FVecIVec(const Float:FVec[3], IVec[3])
|
||||||
{
|
{
|
||||||
IVec[0] = floatround(FVec[0])
|
IVec[0] = floatround(FVec[0]);
|
||||||
IVec[1] = floatround(FVec[1])
|
IVec[1] = floatround(FVec[1]);
|
||||||
IVec[2] = floatround(FVec[2])
|
IVec[2] = floatround(FVec[2]);
|
||||||
|
|
||||||
return 1
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -44,22 +44,44 @@ new g_idletime[33]
|
|||||||
new bool:g_spawned[33] = {true, ...}
|
new bool:g_spawned[33] = {true, ...}
|
||||||
new g_class[33] // stored info from the "ScoreInfo" message
|
new g_class[33] // stored info from the "ScoreInfo" message
|
||||||
|
|
||||||
|
new mp_tournamentmode;
|
||||||
|
new amx_idle_time;
|
||||||
|
new amx_idle_min_players;
|
||||||
|
new amx_idle_ignore_immunity;
|
||||||
|
|
||||||
|
new maxplayers;
|
||||||
|
|
||||||
public plugin_init() {
|
public plugin_init() {
|
||||||
register_plugin("Idle Player Remover",AMXX_VERSION_STR,"AMXX Dev Team")
|
register_plugin("Idle Player Remover",AMXX_VERSION_STR,"AMXX Dev Team")
|
||||||
register_cvar("amx_idle_time", "120") // Kick people idle longer than this time
|
|
||||||
register_cvar("amx_idle_min_players", "8") // Only kick idle players when there is atleast this many players on the server
|
amx_idle_time=register_cvar("amx_idle_time", "120") // Kick people idle longer than this time
|
||||||
register_cvar("amx_idle_ignore_immunity", "1") // Kick admins with immunity?
|
amx_idle_min_players=register_cvar("amx_idle_min_players", "8") // Only kick idle players when there is atleast this many players on the server
|
||||||
|
amx_idle_ignore_immunity=register_cvar("amx_idle_ignore_immunity", "1") // Kick admins with immunity?
|
||||||
|
|
||||||
|
mp_tournamentmode=get_cvar_pointer("mp_tournamentmode");
|
||||||
|
|
||||||
set_task(float(CHECK_FREQ),"checkPlayers",_,_,_,"b")
|
set_task(float(CHECK_FREQ),"checkPlayers",_,_,_,"b")
|
||||||
register_event("ResetHUD", "playerSpawned", "be")
|
register_event("ResetHUD", "playerSpawned", "be")
|
||||||
|
if (cvar_exists("sv_structurelimit"))
|
||||||
|
{
|
||||||
|
// need the NS 3.2 ScoreInfo parser
|
||||||
|
register_event("ScoreInfo","msgScoreInfo32","a")
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
register_event("ScoreInfo","msgScoreInfo","a")
|
register_event("ScoreInfo","msgScoreInfo","a")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
maxplayers=get_maxplayers();
|
||||||
}
|
}
|
||||||
|
|
||||||
public checkPlayers() {
|
public checkPlayers() {
|
||||||
if (get_cvar_num("mp_tournamentmode")) return PLUGIN_HANDLED
|
if (get_pcvar_num(mp_tournamentmode)) return PLUGIN_HANDLED
|
||||||
|
|
||||||
for (new i = 1; i <= get_maxplayers(); i++) {
|
for (new i = 1; i <= maxplayers; i++) {
|
||||||
if (is_user_alive(i) && g_class[i]!=CLASS_GESTATE && is_user_connected(i) && !is_user_bot(i) && !is_user_hltv(i) && g_spawned[i]) {
|
if (is_user_alive(i) && g_class[i]!=CLASS_GESTATE && is_user_connected(i) && !is_user_bot(i) && !is_user_hltv(i) && g_spawned[i]) {
|
||||||
if ( !get_cvar_num("amx_idle_ignore_immunity") ) {
|
if ( !get_pcvar_num(amx_idle_ignore_immunity) ) {
|
||||||
if ( access(i, ADMIN_IMMUNITY) ) continue
|
if ( access(i, ADMIN_IMMUNITY) ) continue
|
||||||
}
|
}
|
||||||
new newangle[3]
|
new newangle[3]
|
||||||
@ -81,10 +103,9 @@ public checkPlayers() {
|
|||||||
|
|
||||||
check_idletime(id) {
|
check_idletime(id) {
|
||||||
new numplayers = get_playersnum()
|
new numplayers = get_playersnum()
|
||||||
new minplayers = get_cvar_num("amx_idle_min_players")
|
|
||||||
|
|
||||||
if (numplayers >= minplayers) {
|
if (numplayers >= get_pcvar_num(amx_idle_min_players)) {
|
||||||
new maxidletime = get_cvar_num("amx_idle_time")
|
new maxidletime = get_pcvar_num(amx_idle_time)
|
||||||
if (maxidletime < MIN_IDLE_TIME) {
|
if (maxidletime < MIN_IDLE_TIME) {
|
||||||
log_message("cvar amx_idle_time %d is too low. Minimum value is %d.", maxidletime, MIN_IDLE_TIME)
|
log_message("cvar amx_idle_time %d is too low. Minimum value is %d.", maxidletime, MIN_IDLE_TIME)
|
||||||
maxidletime = MIN_IDLE_TIME
|
maxidletime = MIN_IDLE_TIME
|
||||||
@ -139,3 +160,11 @@ public msgScoreInfo() {
|
|||||||
}
|
}
|
||||||
g_class[id]=read_data(5);
|
g_class[id]=read_data(5);
|
||||||
}
|
}
|
||||||
|
public msgScoreInfo32() {
|
||||||
|
new id=read_data(1);
|
||||||
|
if (id>32||id<1) {
|
||||||
|
// just incase..
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
g_class[id]=read_data(6);
|
||||||
|
}
|
||||||
|
@ -303,7 +303,11 @@ findPluginByFile(arg[32], &len)
|
|||||||
{
|
{
|
||||||
get_plugin(a, name, 31, title, 31, status, 0, status, 0, status, 1)
|
get_plugin(a, name, 31, title, 31, status, 0, status, 0, status, 1)
|
||||||
|
|
||||||
if (equali(name, arg, len) && (status[0] == 'r' || status[0] == 'p' || status[0] == 's'))
|
if (equali(name, arg, len) && (
|
||||||
|
status[0] == 'r' || /*running*/
|
||||||
|
status[0] == 'p' || /*paused*/
|
||||||
|
status[0] == 's' || /*stopped*/
|
||||||
|
status[0] == 'd' )) /*debug*/
|
||||||
{
|
{
|
||||||
len = copy(arg, 31, name)
|
len = copy(arg, 31, name)
|
||||||
return a
|
return a
|
||||||
@ -391,11 +395,24 @@ public cmdPlugin(id, level, cid)
|
|||||||
{
|
{
|
||||||
new arg[32], a, len = read_argv(2, arg, 31)
|
new arg[32], a, len = read_argv(2, arg, 31)
|
||||||
|
|
||||||
if (len && (a = findPluginByFile(arg, len)) != -1 && !isSystem(a) && unpause("ac", arg))
|
if (len && (a = findPluginByFile(arg, len)) != -1 && !isSystem(a))
|
||||||
|
{
|
||||||
|
if (unpause("ac", arg))
|
||||||
|
{
|
||||||
console_print(id, "%L %L", id, "PAUSE_PLUGIN_MATCH", arg, id, "UNPAUSED")
|
console_print(id, "%L %L", id, "PAUSE_PLUGIN_MATCH", arg, id, "UNPAUSED")
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
// TODO: change this to let out an error that the plugin is stopped
|
||||||
|
// need language keys for this first! Use old message for now
|
||||||
console_print(id, "%L", id, "PAUSE_COULDNT_FIND", arg)
|
console_print(id, "%L", id, "PAUSE_COULDNT_FIND", arg)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
console_print(id, "%L", id, "PAUSE_COULDNT_FIND", arg)
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (equal(cmds, "stop"))
|
else if (equal(cmds, "stop"))
|
||||||
{
|
{
|
||||||
new arg[32], a, len = read_argv(2, arg, 31)
|
new arg[32], a, len = read_argv(2, arg, 31)
|
||||||
|
Reference in New Issue
Block a user