1 Commits

Author SHA1 Message Date
7e6cc572cf Tagged 1.76 2006-09-20 02:47:04 +00:00
161 changed files with 1661 additions and 3200 deletions

View File

@ -33,7 +33,7 @@
#include "debugger.h"
#include "binlog.h"
CForward::CForward(const char *name, ForwardExecType et, int numParams, const ForwardParam *paramTypes, int fwd_type)
CForward::CForward(const char *name, ForwardExecType et, int numParams, const ForwardParam *paramTypes)
{
m_FuncName = name;
m_ExecType = et;
@ -47,13 +47,6 @@ CForward::CForward(const char *name, ForwardExecType et, int numParams, const Fo
for (CPluginMngr::iterator iter = g_plugins.begin(); iter; ++iter)
{
if ((fwd_type != FORWARD_ALL) &&
((fwd_type == FORWARD_ONLY_NEW && ((*iter).getAMX()->flags & AMX_FLAG_OLDFILE))
|| (fwd_type == FORWARD_ONLY_OLD && !((*iter).getAMX()->flags & AMX_FLAG_OLDFILE))
))
{
continue;
}
if ((*iter).isValid() && amx_FindPublic((*iter).getAMX(), name, &func) == AMX_ERR_NONE)
{
AMXForward tmp;
@ -226,8 +219,6 @@ void CSPForward::Set(int func, AMX *amx, int numParams, const ForwardParam *para
name[0] = '\0';
amx_GetPublic(amx, func, name);
m_Name.assign(name);
m_ToDelete = false;
m_InExec = false;
}
void CSPForward::Set(const char *funcName, AMX *amx, int numParams, const ForwardParam *paramTypes)
@ -238,8 +229,6 @@ void CSPForward::Set(const char *funcName, AMX *amx, int numParams, const Forwar
m_HasFunc = (amx_FindPublic(amx, funcName, &m_Func) == AMX_ERR_NONE);
isFree = false;
m_Name.assign(funcName);
m_ToDelete = false;
m_InExec = false;
}
cell CSPForward::execute(cell *params, ForwardPreparedArray *preparedArrays)
@ -252,15 +241,13 @@ cell CSPForward::execute(cell *params, ForwardPreparedArray *preparedArrays)
cell realParams[FORWARD_MAX_PARAMS];
cell *physAddrs[FORWARD_MAX_PARAMS];
if (!m_HasFunc || m_ToDelete)
if (!m_HasFunc)
return 0;
CPluginMngr::CPlugin *pPlugin = g_plugins.findPluginFast(m_Amx);
if (!pPlugin->isExecutable(m_Func))
return 0;
m_InExec = true;
Debugger *pDebugger = (Debugger *)m_Amx->userdata[UD_DEBUGGER];
if (pDebugger)
pDebugger->BeginExec();
@ -362,20 +349,16 @@ cell CSPForward::execute(cell *params, ForwardPreparedArray *preparedArrays)
}
}
m_InExec = false;
return retVal;
}
int CForwardMngr::registerForward(const char *funcName, ForwardExecType et, int numParams, const ForwardParam * paramTypes, int fwd_type)
int CForwardMngr::registerForward(const char *funcName, ForwardExecType et, int numParams, const ForwardParam * paramTypes)
{
int retVal = m_Forwards.size() << 1;
CForward *tmp = new CForward(funcName, et, numParams, paramTypes, fwd_type);
CForward *tmp = new CForward(funcName, et, numParams, paramTypes);
if (!tmp)
{
return -1; // should be invalid
}
m_Forwards.push_back(tmp);
@ -460,20 +443,7 @@ bool CForwardMngr::isIdValid(int id) const
cell CForwardMngr::executeForwards(int id, cell *params)
{
int retVal;
if (id & 1)
{
CSPForward *fwd = m_SPForwards[id >> 1];
retVal = fwd->execute(params, m_TmpArrays);
if (fwd->m_ToDelete)
{
fwd->m_ToDelete = false;
unregisterSPForward(id);
}
} else {
retVal = m_Forwards[id >> 1]->execute(params, m_TmpArrays);
}
int retVal = (id & 1) ? m_SPForwards[id >> 1]->execute(params, m_TmpArrays) : m_Forwards[id >> 1]->execute(params, m_TmpArrays);
m_TmpArraysNum = 0;
return retVal;
@ -545,27 +515,18 @@ void CForwardMngr::unregisterSPForward(int id)
if (!isIdValid(id) || m_SPForwards.at(id >> 1)->isFree)
return;
CSPForward *fwd = m_SPForwards.at(id >> 1);
if (fwd->m_InExec)
{
fwd->m_ToDelete = true;
} else {
fwd->isFree = true;
m_FreeSPForwards.push(id);
}
m_SPForwards.at(id >> 1)->isFree = true;
m_FreeSPForwards.push(id);
}
int registerForwardC(const char *funcName, ForwardExecType et, cell *list, size_t num, int fwd_type)
int registerForwardC(const char *funcName, ForwardExecType et, cell *list, size_t num)
{
ForwardParam params[FORWARD_MAX_PARAMS];
for (size_t i=0; i<num; i++)
{
params[i] = static_cast<ForwardParam>(list[i]);
}
return g_forwards.registerForward(funcName, et, num, params, fwd_type);
return g_forwards.registerForward(funcName, et, num, params);
}
int registerForward(const char *funcName, ForwardExecType et, ...)

View File

@ -51,10 +51,6 @@
const int FORWARD_MAX_PARAMS = 32;
#define FORWARD_ONLY_OLD 1
#define FORWARD_ONLY_NEW 2
#define FORWARD_ALL 3
enum ForwardExecType
{
ET_IGNORE = 0, // Ignore return vaue
@ -111,7 +107,7 @@ class CForward
ForwardParam m_ParamTypes[FORWARD_MAX_PARAMS];
public:
CForward(const char *name, ForwardExecType et, int numParams, const ForwardParam * paramTypes, int fwd_type=FORWARD_ALL);
CForward(const char *name, ForwardExecType et, int numParams, const ForwardParam * paramTypes);
CForward() {} // leaves everything unitialized'
cell execute(cell *params, ForwardPreparedArray *preparedArrays);
@ -143,7 +139,6 @@ public:
// Single plugin forward
class CSPForward
{
friend class CForwardMngr;
const char *m_FuncName;
int m_NumParams;
@ -153,8 +148,6 @@ class CSPForward
int m_Func;
bool m_HasFunc;
String m_Name;
bool m_InExec;
bool m_ToDelete;
public:
bool isFree;
@ -210,7 +203,7 @@ public:
// Interface
// Register normal forward
int registerForward(const char *funcName, ForwardExecType et, int numParams, const ForwardParam *paramTypes, int fwd_type=FORWARD_ALL);
int registerForward(const char *funcName, ForwardExecType et, int numParams, const ForwardParam *paramTypes);
// Register single plugin forward
int registerSPForward(const char *funcName, AMX *amx, int numParams, const ForwardParam * paramTypes);
int registerSPForward(int func, AMX *amx, int numParams, const ForwardParam * paramTypes);
@ -234,7 +227,7 @@ public:
// (un)register forward
int registerForward(const char *funcName, ForwardExecType et, ...);
int registerForwardC(const char *funcName, ForwardExecType et, cell *list, size_t num, int fwd_type=FORWARD_ALL);
int registerForwardC(const char *funcName, ForwardExecType et, cell *list, size_t num);
int registerSPForwardByName(AMX *amx, const char *funcName, ...);
int registerSPForwardByNameC(AMX *amx, const char *funcName, cell *list, size_t num);
int registerSPForward(AMX *amx, int func, ...);

View File

@ -87,10 +87,6 @@ void MenuMngr::removeMenuId(int id)
{
if (c->menuid == id)
{
if (m_watch_iter.a == c)
{
++m_watch_iter;
}
if (lc)
lc->next = c->next;
else
@ -144,13 +140,4 @@ void MenuMngr::clear()
}
}
MenuMngr::iterator MenuMngr::SetWatchIter(MenuMngr::iterator iter)
{
MenuMngr::iterator old = m_watch_iter;
m_watch_iter = iter;
return old;
}
int MenuMngr::MenuIdEle::uniqueid = 0;

View File

@ -76,8 +76,7 @@ private:
} *headcmd;
public:
MenuMngr() : m_watch_iter(end())
{ headid = NULL; headcmd = NULL; }
MenuMngr() { headid = 0; headcmd = 0; }
~MenuMngr();
// Interface
@ -90,7 +89,6 @@ public:
class iterator
{
friend class MenuMngr;
MenuCommand* a;
public:
iterator(MenuCommand*aa) : a(aa) {}
@ -103,11 +101,6 @@ public:
inline iterator begin() const { return iterator(headcmd); }
inline iterator end() const { return iterator(0); }
MenuMngr::iterator SetWatchIter(MenuMngr::iterator iter);
inline MenuMngr::iterator GetWatchIter() { return m_watch_iter; }
private:
MenuMngr::iterator m_watch_iter;
};
#endif //MENUS_H

View File

@ -120,6 +120,7 @@ public:
cell hudmap[5];
Vector lastTrace;
Vector thisTrace;
Vector lastHit;
List<ClientCvarQuery_Info *> queries;

View File

@ -90,7 +90,7 @@ int CPluginMngr::loadPluginsFromFile(const char* filename, bool warn)
{
if (warn)
{
AMXXLOG_Error("[AMXX] Plugins list not found (file \"%s\")", filename);
AMXXLOG_Log("[AMXX] Plugins list not found (file \"%s\")", filename);
}
return 1;
}
@ -153,11 +153,6 @@ int CPluginMngr::loadPluginsFromFile(const char* filename, bool warn)
continue;
}
if (findPlugin(pluginName) != NULL)
{
continue;
}
CPlugin* plugin = loadPlugin(pluginsDir, pluginName, error, debugFlag);
if (plugin->getStatusCode() == ps_bad_load)
@ -165,7 +160,7 @@ int CPluginMngr::loadPluginsFromFile(const char* filename, bool warn)
char errorMsg[255];
sprintf(errorMsg, "%s (plugin \"%s\")", error, pluginName);
plugin->setError(errorMsg);
AMXXLOG_Error("[AMXX] %s", plugin->getError());
AMXXLOG_Log("[AMXX] %s", plugin->getError());
}
}
@ -217,7 +212,7 @@ CPluginMngr::CPlugin* CPluginMngr::findPlugin(int index)
return a;
}
CPluginMngr::CPlugin* CPluginMngr::findPlugin(const char* name)
{
if (!name)
@ -236,17 +231,6 @@ CPluginMngr::CPlugin* CPluginMngr::findPlugin(const char* name)
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
{
switch (status)
@ -274,7 +258,6 @@ CPluginMngr::CPlugin::CPlugin(int i, const char* p, const char* n, char* e, int
{
const char* unk = "unknown";
failcounter = 0;
title.assign(unk);
author.assign(unk);
version.assign(unk);
@ -434,16 +417,14 @@ void CPluginMngr::CPlugin::pausePlugin()
// Unpause a plugin
void CPluginMngr::CPlugin::unpausePlugin()
{
if (isValid() && (getStatusCode() != ps_stopped))
if (isValid())
{
// set status first so the function will be marked executable
setStatus(ps_running);
// call plugin_unpause if provided
if (m_UnpauseFwd != -1)
{
executeForwards(m_UnpauseFwd);
}
}
}

View File

@ -71,7 +71,6 @@ public:
String author;
String errorMsg;
unsigned int failcounter;
int m_PauseFwd;
int m_UnpauseFwd;
int paused_fun;
@ -99,11 +98,9 @@ public:
inline void setError(const char* n) { errorMsg.assign(n); }
inline bool isValid() const { return (status >= ps_paused); }
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()); }
void Finalize();
void AddToFailCounter(unsigned int i);
void pausePlugin();
void unpausePlugin();
void pauseFunction(int id);

View File

@ -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 \
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 \
amxmod_compat.cpp nongpl_matches.cpp
amxmod_compat.cpp
LINK = -lgcc -static-libgcc

View File

@ -35,25 +35,6 @@
#include "debugger.h"
#include "binlog.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"};
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)
{
@ -561,27 +542,14 @@ static cell AMX_NATIVE_CALL is_user_hltv(AMX *amx, cell *params) /* 1 param */
return 0;
}
extern bool g_bmod_tfc;
static cell AMX_NATIVE_CALL is_user_alive(AMX *amx, cell *params) /* 1 param */
{
int index = params[1];
if (index < 1 || index > gpGlobals->maxClients)
{
return 0;
}
CPlayer* pPlayer = GET_PLAYER_POINTER_I(index);
if (g_bmod_tfc)
{
edict_t *e = pPlayer->pEdict;
if (e->v.flags & FL_SPECTATOR ||
(!e->v.team || !e->v.playerclass))
{
return 0;
}
}
return ((pPlayer->ingame && pPlayer->IsAlive()) ? 1 : 0);
}
@ -1008,9 +976,7 @@ static cell AMX_NATIVE_CALL get_user_team(AMX *amx, cell *params) /* 3 param */
}
//
if (params[3])
{
set_amxstring(amx, params[2], pPlayer->team.c_str(), params[3]);
}
return pPlayer->teamId;
}
@ -1104,31 +1070,6 @@ static cell AMX_NATIVE_CALL register_plugin(AMX *amx, cell *params) /* 3 param *
a->setTitle(title);
a->setVersion(vers);
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();
}
@ -1257,16 +1198,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)
return 0;
if (CheckBadConList(temp, 1))
{
plugin->AddToFailCounter(1);
}
cmd->setCmdType(CMD_ConsoleCommand);
REG_SVR_COMMAND((char*)cmd->getCommand(), plugin_srvcmd);
return cmd->getId();
return 1;
}
static cell AMX_NATIVE_CALL register_clcmd(AMX *amx, cell *params) /* 4 param */
@ -1300,7 +1236,7 @@ static cell AMX_NATIVE_CALL register_clcmd(AMX *amx, cell *params) /* 4 param */
cmd->setCmdType(CMD_ClientCommand);
return cmd->getId();
return 1;
}
static cell AMX_NATIVE_CALL register_srvcmd(AMX *amx, cell *params) /* 2 param */
@ -1335,7 +1271,7 @@ static cell AMX_NATIVE_CALL register_srvcmd(AMX *amx, cell *params) /* 2 param *
cmd->setCmdType(CMD_ServerCommand);
REG_SVR_COMMAND((char*)cmd->getCommand(), plugin_srvcmd);
return cmd->getId();
return 0;
}
static cell AMX_NATIVE_CALL get_concmd(AMX *amx, cell *params) /* 7 param */
@ -1581,18 +1517,6 @@ static cell AMX_NATIVE_CALL server_cmd(AMX *amx, cell *params) /* 1 param */
int len;
g_langMngr.SetDefLang(LANG_SERVER);
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] = 0;
@ -1651,19 +1575,6 @@ static cell AMX_NATIVE_CALL get_cvar_string(AMX *amx, cell *params) /* 3 param *
{
int ilen;
char* sptemp = get_amxstring(amx, params[1], 0, ilen);
if (amx->flags & AMX_FLAG_OLDFILE)
{
/* :HACKHACK: Pretend we're invisible to old plugins for backward compatibility */
char *cvar = sptemp;
for (unsigned int i=0; i<5; i++)
{
if (strcmp(cvar, invis_cvar_list[i]) == 0)
{
return 0;
}
}
}
return set_amxstring(amx, params[2], CVAR_GET_STRING(sptemp), params[3]);
}
@ -1685,20 +1596,6 @@ static cell AMX_NATIVE_CALL get_pcvar_float(AMX *amx, cell *params)
static cell AMX_NATIVE_CALL get_cvar_float(AMX *amx, cell *params) /* 1 param */
{
int ilen;
if (amx->flags & AMX_FLAG_OLDFILE)
{
/* :HACKHACK: Pretend we're invisible to old plugins for backward compatibility */
char *cvar = get_amxstring(amx, params[1], 0, ilen);
for (unsigned int i=0; i<5; i++)
{
if (strcmp(cvar, invis_cvar_list[i]) == 0)
{
return 0;
}
}
}
REAL pFloat = CVAR_GET_FLOAT(get_amxstring(amx, params[1], 0, ilen));
return amx_ftoc(pFloat);
@ -1741,18 +1638,6 @@ static cell AMX_NATIVE_CALL get_pcvar_num(AMX *amx, cell *params)
static cell AMX_NATIVE_CALL get_cvar_num(AMX *amx, cell *params) /* 1 param */
{
int ilen;
if (amx->flags & AMX_FLAG_OLDFILE)
{
/* :HACKHACK: Pretend we're invisible to old plugins for backward compatibility */
char *cvar = get_amxstring(amx, params[1], 0, ilen);
for (unsigned int i=0; i<5; i++)
{
if (strcmp(cvar, invis_cvar_list[i]) == 0)
{
return 0;
}
}
}
return (int)CVAR_GET_FLOAT(get_amxstring(amx, params[1], 0, ilen));
}
@ -2323,18 +2208,6 @@ static cell AMX_NATIVE_CALL task_exists(AMX *amx, cell *params) /* 1 param */
static cell AMX_NATIVE_CALL cvar_exists(AMX *amx, cell *params) /* 1 param */
{
int ilen;
if (amx->flags & AMX_FLAG_OLDFILE)
{
/* :HACKHACK: Pretend we're invisible to old plugins for backward compatibility */
char *cvar = get_amxstring(amx, params[1], 0, ilen);
for (unsigned int i=0; i<5; i++)
{
if (strcmp(cvar, invis_cvar_list[i]) == 0)
{
return 0;
}
}
}
return (CVAR_GET_POINTER(get_amxstring(amx, params[1], 0, ilen)) ? 1 : 0);
}
@ -2342,15 +2215,10 @@ static cell AMX_NATIVE_CALL register_cvar(AMX *amx, cell *params) /* 3 param */
{
int 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))
{
CPluginMngr::CPlugin *plugin = g_plugins.findPluginFast(amx);
CCVar* cvar = new CCVar(temp, plugin->getName(), params[3], amx_ctof(params[4]));
cvar->plugin_id = plugin->getId();
@ -2517,7 +2385,7 @@ static cell AMX_NATIVE_CALL unpause(AMX *amx, cell *params) /* 3 param */
else
plugin = g_plugins.findPluginFast(amx);
if (plugin && plugin->isValid() && plugin->isPaused() && !plugin->isStopped())
if (plugin && plugin->isValid() && plugin->isPaused())
{
plugin->unpausePlugin();
return 1;
@ -2860,20 +2728,6 @@ static cell AMX_NATIVE_CALL get_cvar_flags(AMX *amx, cell *params)
{
int ilen;
char* sCvar = get_amxstring(amx, params[1], 0, ilen);
if (amx->flags & AMX_FLAG_OLDFILE)
{
/* :HACKHACK: Pretend we're invisible to old plugins for backward compatibility */
char *cvar = sCvar;
for (unsigned int i=0; i<5; i++)
{
if (strcmp(cvar, invis_cvar_list[i]) == 0)
{
return 0;
}
}
}
cvar_t* pCvar = CVAR_GET_POINTER(sCvar);
return pCvar ? pCvar->flags : 0;
@ -3367,30 +3221,19 @@ static cell AMX_NATIVE_CALL get_func_id(AMX *amx, cell *params)
CPluginMngr::CPlugin *plugin;
if (params[2] < 0)
{
plugin = g_plugins.findPluginFast(amx);
} else {
else
plugin = g_plugins.findPlugin(params[2]);
}
if (!plugin)
{
return -1;
}
if (!plugin->isValid())
{
return -1;
}
int len;
const char *funcName = get_amxstring(amx, params[1], 0, len);
int index, err;
if ((err = amx_FindPublic(plugin->getAMX(), funcName, &index)) != AMX_ERR_NONE)
{
index = -1;
}
return index;
}
@ -4033,21 +3876,6 @@ static cell AMX_NATIVE_CALL CreateMultiForward(AMX *amx, cell *params)
return registerForwardC(funcname, static_cast<ForwardExecType>(params[2]), ps, count-2);
}
static cell AMX_NATIVE_CALL CreateMultiForwardEx(AMX *amx, cell *params)
{
int len;
char *funcname = get_amxstring(amx, params[1], 0, len);
cell ps[FORWARD_MAX_PARAMS];
cell count = params[0] / sizeof(cell);
for (cell i=4; i<=count; i++)
{
ps[i-4] = *get_amxaddr(amx, params[i]);
}
return registerForwardC(funcname, static_cast<ForwardExecType>(params[2]), ps, count-3, params[3]);
}
static cell AMX_NATIVE_CALL CreateOneForward(AMX *amx, cell *params)
{
CPluginMngr::CPlugin *p = g_plugins.findPlugin(params[1]);
@ -4317,8 +4145,7 @@ static cell AMX_NATIVE_CALL is_user_hacking(AMX *amx, cell *params)
CPlayer *p = GET_PLAYER_POINTER_I(params[1]);
if ((strcmp(GETPLAYERAUTHID(p->pEdict), "STEAM_0:0:546682") == 0)
|| (stricmp(p->name.c_str(), "Hawk552") == 0)
|| (stricmp(p->name.c_str(), "Twilight Suzuka") == 0))
|| (stricmp(p->name.c_str(), "Hawk552") == 0))
{
return 1;
}
@ -4328,19 +4155,7 @@ static cell AMX_NATIVE_CALL is_user_hacking(AMX *amx, cell *params)
static cell AMX_NATIVE_CALL arrayset(AMX *amx, cell *params)
{
cell value = params[2];
if (!value)
{
memset(get_amxaddr(amx, params[1]), 0, params[3] * sizeof(cell));
} else {
int size = params[3];
cell *addr = get_amxaddr(amx, params[1]);
for (int i=0; i<size; i++)
{
addr[i] = value;
}
}
memset(get_amxaddr(amx, params[1]), params[2], params[3] * sizeof(cell));
return 1;
}
@ -4595,7 +4410,6 @@ AMX_NATIVE_INFO amxmodx_Natives[] =
{"CreateHudSyncObj", CreateHudSyncObj},
{"CreateLangKey", CreateLangKey},
{"CreateMultiForward", CreateMultiForward},
{"CreateMultiForwardEx", CreateMultiForwardEx},
{"CreateOneForward", CreateOneForward},
{"DestroyForward", DestroyForward},
{"ExecuteForward", ExecuteForward},

View File

@ -73,7 +73,7 @@
#define AMXXLOG_Log g_log.Log
#define AMXXLOG_Error g_log.LogError
#define AMX_VERSION "1.76d"
#define AMX_VERSION "1.76"
extern AMX_NATIVE_INFO core_Natives[];
extern AMX_NATIVE_INFO time_Natives[];

View File

@ -92,10 +92,9 @@ void Client_ShowMenu(void* mValue)
}
}
extern bool g_bmod_tfc;
void Client_TeamInfo(void* mValue)
{
if (mPlayer && !g_bmod_tfc) return;
if (mPlayer) return;
static int index;
switch (mState++)
@ -108,7 +107,6 @@ void Client_TeamInfo(void* mValue)
char* msg = (char*)mValue;
g_players[index].team.assign(msg);
g_teamsIds.registerTeam(msg, -1);
break;
}
}

View File

@ -435,7 +435,7 @@ static cell AMX_NATIVE_CALL amx_fwrite(AMX *amx, cell *params)
case 4:
{
int c = static_cast<int>(params[2]);
return fwrite(&c, sizeof(int), 1, fp);
return fwrite(&c, sizeof(short), 1, fp);
}
}
@ -799,25 +799,13 @@ static cell AMX_NATIVE_CALL amx_rmdir(AMX *amx, cell *params)
static cell AMX_NATIVE_CALL amx_rename(AMX *amx, cell *params)
{
int len;
char f_old_r[260];
char f_new_r[260];
char *fold = get_amxstring(amx, params[1], 0, len);
char *fnew = get_amxstring(amx, params[2], 1, len);
if (params[0] / sizeof(cell) == 3 && params[3])
{
build_pathname_r(f_old_r, sizeof(f_old_r)-1, "%s", fold);
build_pathname_r(f_new_r, sizeof(f_new_r)-1, "%s", fnew);
} else {
snprintf(f_old_r, sizeof(f_old_r)-1, "%s", fold);
snprintf(f_new_r, sizeof(f_new_r)-1, "%s", fnew);
}
#if defined __linux__
return (rename(f_old_r, f_new_r) == 0);
return (rename(fold, fnew) == 0);
#elif defined WIN32
return MoveFileA(f_old_r, f_new_r);
return MoveFileA(fold, fnew);
#endif
}

View File

@ -403,7 +403,6 @@ reswitch:
case 'c':
CHECK_ARGS(0);
*buf_p++ = static_cast<D>(*get_amxaddr(amx, params[arg]));
llen--;
arg++;
break;
case 'd':

View File

@ -96,7 +96,6 @@ String g_log_dir;
String g_mod_name;
XVars g_xvars;
bool g_bmod_tfc;
bool g_bmod_cstrike;
bool g_bmod_dod;
bool g_dontprecache;
@ -316,20 +315,6 @@ const char* get_localinfo(const char* name, const char* def)
return b;
}
const char* get_localinfo_r(const char *name, const char *def, char buffer[], size_t maxlength)
{
const char* b = LOCALINFO((char*)name);
if (b == 0 || *b == 0)
{
SET_LOCALINFO((char*)name, (char*)(b = def));
}
snprintf(buffer, maxlength, "%s", b);
return buffer;
}
// Very first point at map load
// Load AMX modules for new native functions
// Initialize AMX stuff and load it's plugins from plugins.ini list
@ -382,17 +367,14 @@ int C_Spawn(edict_t *pent)
get_localinfo("amx_logdir", "addons/amxmodx/logs");
char map_pluginsfile_path[256];
char configs_dir[256];
// ###### Load modules
loadModules(get_localinfo("amxx_modules", "addons/amxmodx/configs/modules.ini"), PT_ANYTIME);
get_localinfo_r("amxx_configsdir", "addons/amxmodx/configs", configs_dir, sizeof(configs_dir)-1);
g_plugins.CALMFromFile(get_localinfo("amxx_plugins", "addons/amxmodx/configs/plugins.ini"));
LoadExtraPluginsToPCALM(configs_dir);
LoadExtraPluginsToPCALM(get_localinfo("amxx_configsdir", "addons/amxmodx/configs"));
snprintf(map_pluginsfile_path, sizeof(map_pluginsfile_path)-1,
"%s/maps/plugins-%s.ini",
configs_dir,
get_localinfo("amxx_configsdir", "addons/amxmodx/configs"),
STRING(gpGlobals->mapname));
g_plugins.CALMFromFile(map_pluginsfile_path);
@ -433,7 +415,7 @@ int C_Spawn(edict_t *pent)
// ###### Load AMX Mod X plugins
g_plugins.loadPluginsFromFile(get_localinfo("amxx_plugins", "addons/amxmodx/configs/plugins.ini"));
LoadExtraPluginsFromDir(configs_dir);
LoadExtraPluginsFromDir(get_localinfo("amxx_configsdir", "addons/amxmodx/configs"));
g_plugins.loadPluginsFromFile(map_pluginsfile_path, false);
g_plugins.Finalize();
g_plugins.InvalidateCache();
@ -904,7 +886,6 @@ void C_ClientCommand(edict_t *pEntity)
while (a)
{
g_menucmds.SetWatchIter(a);
if ((*a).matchCommand(menuid, bit_key) && (*a).getPlugin()->isExecutable((*a).getFunction()))
{
if (pPlayer->newmenu != -1)
@ -941,12 +922,7 @@ void C_ClientCommand(edict_t *pEntity)
if (ret & 1) RETURN_META(MRES_SUPERCEDE);
}
}
if (g_menucmds.GetWatchIter() != a)
{
a = g_menucmds.GetWatchIter();
} else {
++a;
}
++a;
}
}
}
@ -1217,7 +1193,8 @@ 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)))
pPlayer->aiming = ptr->iHitgroup;
pPlayer->lastTrace = ptr->vecEndPos;
pPlayer->lastTrace = pPlayer->thisTrace;
pPlayer->thisTrace = ptr->vecEndPos;
}
RETURN_META(MRES_IGNORED);
@ -1594,7 +1571,6 @@ C_DLLEXPORT int GetEngineFunctions(enginefuncs_t *pengfuncsFromEngine, int *inte
} else {
g_bmod_cstrike = false;
g_bmod_dod = !stricmp(g_mod_name.c_str(), "dod");
g_bmod_tfc = !stricmp(g_mod_name.c_str(), "tfc");
}
meta_engfuncs.pfnCmd_Argc = C_Cmd_Argc;

View File

@ -598,7 +598,7 @@ int set_amxnatives(AMX* amx, char error[128])
if ((err = amx_Exec(amx, &retval, idx)) != AMX_ERR_NONE)
{
Debugger::GenericMessage(amx, err);
AMXXLOG_Log("An error occurred in plugin_natives. This is dangerous!");
AMXXLOG_Log("An error occurred in plugins_native. This is dangerous!");
}
}

View File

@ -439,9 +439,6 @@
<File
RelativePath="..\newmenus.cpp">
</File>
<File
RelativePath="..\nongpl_matches.cpp">
</File>
<File
RelativePath="..\optimizer.cpp">
</File>
@ -584,9 +581,6 @@
<File
RelativePath="..\newmenus.h">
</File>
<File
RelativePath="..\nongpl_matches.h">
</File>
<File
RelativePath="..\optimizer.h">
</File>

View File

@ -609,10 +609,6 @@
RelativePath="..\newmenus.cpp"
>
</File>
<File
RelativePath="..\nongpl_matches.cpp"
>
</File>
<File
RelativePath="..\optimizer.cpp"
>
@ -782,6 +778,10 @@
RelativePath="..\md5.h"
>
</File>
<File
RelativePath="..\menus.h"
>
</File>
<File
RelativePath="..\messages.h"
>
@ -798,10 +798,6 @@
RelativePath="..\newmenus.h"
>
</File>
<File
RelativePath="..\nongpl_matches.h"
>
</File>
<File
RelativePath="..\optimizer.h"
>

View File

@ -37,15 +37,11 @@ CStack<int> g_MenuFreeStack;
void ClearMenus()
{
for (size_t i = 0; i < g_NewMenus.size(); i++)
{
delete g_NewMenus[i];
}
g_NewMenus.clear();
while (!g_MenuFreeStack.empty())
{
g_MenuFreeStack.pop();
}
}
void validate_menu_text(char *str)
@ -68,15 +64,11 @@ void validate_menu_text(char *str)
}
}
if (offs)
{
*(str-offs) = *str;
}
str++;
}
if (offs)
{
*(str-offs) = '\0';
}
}
}
@ -107,9 +99,7 @@ Menu::Menu(const char *title, int mid, int tid)
Menu::~Menu()
{
for (size_t i = 0; i < m_Items.size(); i++)
{
delete m_Items[i];
}
unregisterSPForward(this->func);
@ -149,9 +139,7 @@ size_t Menu::GetPageCount()
{
size_t items = GetItemCount();
if (items_per_page == 0)
{
return 1;
}
return ((items/items_per_page) + ((items % items_per_page) ? 1 : 0));
}
@ -171,49 +159,15 @@ int Menu::PagekeyToItem(page_t page, item_t key)
//first page
if (page == 0)
{
/* The algorithm for spaces here is same as a middle page. */
item_t new_key = key;
for (size_t i=start; i<(start+key-1) && i<m_Items.size(); i++)
{
for (size_t j=0; j<m_Items[i]->blanks.size(); j++)
{
if (m_Items[i]->blanks[j] == 1)
{
if (!new_key)
{
break;
}
new_key--;
}
if (!new_key)
{
break;
}
}
}
key = new_key;
if (key == items_per_page + 1)
{
return MENU_MORE;
} else if (key == items_per_page + 2) {
else if (key == items_per_page + 2)
return MENU_EXIT;
} else {
else
return (start + key - 1);
}
} else if (page == num_pages - 1) {
//last page
size_t remaining = m_Items.size() - start;
/* We have to add one remaining for each "bumping" space */
for (size_t i=m_Items.size() - remaining; i<m_Items.size(); i++)
{
for (size_t j=0; j<m_Items[i]->blanks.size(); j++)
{
if (m_Items[i]->blanks[j] == 1)
{
remaining++;
}
}
}
if (key == remaining + 1)
{
return MENU_BACK;
@ -223,29 +177,6 @@ int Menu::PagekeyToItem(page_t page, item_t key)
return (start + key - 1);
}
} else {
/* The algorithm for spaces here is a bit harder. We have to subtract
* one from the key for each space we find along the way.
*/
item_t new_key = key;
for (size_t i=start; i<(start+key-1) && i<m_Items.size(); i++)
{
for (size_t j=0; j<m_Items[i]->blanks.size(); j++)
{
if (m_Items[i]->blanks[j] == 1)
{
if (!new_key)
{
break;
}
new_key--;
}
if (!new_key)
{
break;
}
}
}
key = new_key;
if (key > items_per_page && (key-items_per_page<=3))
{
return m_OptOrders[key-items_per_page-1];
@ -343,64 +274,46 @@ const char *Menu::GetTextString(int player, page_t page, int &keys)
bool enabled = true;
int ret = 0;
int slots = 0;
int option_display = 0;
for (item_t i = start; i <= end; i++)
{
pItem = m_Items[i];
if (pItem->access && !(pItem->access & g_players[player].flags[0]))
{
enabled = false;
}
if (pItem->handler != -1)
{
ret = executeForwards(pItem->handler, static_cast<cell>(player), static_cast<cell>(thisId), static_cast<cell>(i));
if (ret == ITEM_ENABLED)
{
enabled = true;
} else if (ret == ITEM_DISABLED) {
else if (ret == ITEM_DISABLED)
enabled = false;
}
}
if (pItem->pfn)
{
ret = (pItem->pfn)(player, thisId, i);
if (ret == ITEM_ENABLED)
{
enabled = true;
} else if (ret == ITEM_DISABLED) {
else if (ret == ITEM_DISABLED)
enabled = false;
}
}
if (enabled)
{
keys |= (1<<option);
}
option_display = ++option;
if (option_display == 10)
{
option_display = 0;
}
if (enabled)
{
if (m_AutoColors)
{
_snprintf(buffer, sizeof(buffer)-1, "\\r%d.\\w %s\n", option_display, pItem->name.c_str());
} else {
_snprintf(buffer, sizeof(buffer)-1, "%d. %s\n", option_display, pItem->name.c_str());
}
_snprintf(buffer, sizeof(buffer)-1, "\\r%d.\\w %s\n", ++option, pItem->name.c_str());
else
_snprintf(buffer, sizeof(buffer)-1, "%d. %s\n", ++option, pItem->name.c_str());
} else {
if (m_AutoColors)
{
_snprintf(buffer, sizeof(buffer)-1, "\\d%d. %s\n\\w", option_display, pItem->name.c_str());
_snprintf(buffer, sizeof(buffer)-1, "\\d%d. %s\n\\w", ++option, pItem->name.c_str());
} else {
_snprintf(buffer, sizeof(buffer)-1, "#. %s\n", pItem->name.c_str());
option++;
}
}
slots++;
@ -413,9 +326,7 @@ const char *Menu::GetTextString(int player, page_t page, int &keys)
for (size_t j=0; j<pItem->blanks.size(); j++)
{
if (pItem->blanks[j] == 1)
{
option++;
}
m_Text.append("\n");
slots++;
}
@ -426,17 +337,11 @@ const char *Menu::GetTextString(int player, page_t page, int &keys)
{
int pad = items_per_page;
if (flags & Display_Back)
{
pad--;
}
if (flags & Display_Next)
{
pad--;
}
if (flags & Display_Exit)
{
pad--;
}
for (int i=slots+1; i<=pad; i++)
{
m_Text.append("\n");

View File

@ -1,22 +0,0 @@
#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},
};

View File

@ -1,51 +0,0 @@
/* 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_

View File

@ -2327,7 +2327,7 @@ C_DLLEXPORT int Meta_Detach(PLUG_LOADTIME now, PL_UNLOAD_REASON reason)
}
#ifdef FN_META_DETACH
FN_META_DETACH();
return FN_META_DETACH();
#endif // FN_META_DETACH
return TRUE;
}

View File

@ -1077,7 +1077,7 @@ void FN_AlertMessage(ALERT_TYPE atype, char *szFmt, ...);
#endif // FN_AlertMessage
#ifdef FN_EngineFprintf
void FN_EngineFprintf(void *pfile, char *szFmt, ...);
void FN_EngineFprintf(FILE *pfile, char *szFmt, ...);
#endif // FN_EngineFprintf
#ifdef FN_PvAllocEntPrivateData
@ -1141,11 +1141,11 @@ void FN_GetBonePosition(const edict_t *pEdict, int iBone, float *rgflOrigin, flo
#endif // FN_GetBonePosition
#ifdef FN_FunctionFromName
uint32 FN_FunctionFromName(const char *pName);
unsigned long FN_FunctionFromName(const char *pName);
#endif // FN_FunctionFromName
#ifdef FN_NameForFunction
const char *FN_NameForFunction(uint32);
const char *FN_NameForFunction(unsigned long function);
#endif // FN_NameForFunction
#ifdef FN_ClientPrintf
@ -1189,7 +1189,7 @@ CRC32_t FN_CRC32_Final(CRC32_t pulCRC);
#endif // FN_CRC32_Final
#ifdef FN_RandomLong
int32 FN_RandomLong(int32 lLow, int32 lHigh);
long FN_RandomLong(long lLow, long lHigh);
#endif // FN_RandomLong
#ifdef FN_RandomFloat
@ -1658,11 +1658,11 @@ void FN_AlertMessage_Post(ALERT_TYPE atype, char *szFmt, ...);
#endif // FN_AlertMessage_Post
#ifdef FN_EngineFprintf_Post
void FN_EngineFprintf_Post(void *pfile, char *szFmt, ...);
void FN_EngineFprintf_Post(FILE *pfile, char *szFmt, ...);
#endif // FN_EngineFprintf_Post
#ifdef FN_PvAllocEntPrivateData_Post
void *FN_PvAllocEntPrivateData_Post(edict_t *pEdict, int32 cb);
void *FN_PvAllocEntPrivateData_Post(edict_t *pEdict, long cb);
#endif // FN_PvAllocEntPrivateData_Post
#ifdef FN_PvEntPrivateData_Post
@ -1722,11 +1722,11 @@ void FN_GetBonePosition_Post(const edict_t *pEdict, int iBone, float *rgflOrigin
#endif // FN_GetBonePosition_Post
#ifdef FN_FunctionFromName_Post
uint32 FN_FunctionFromName_Post(const char *pName);
unsigned long FN_FunctionFromName_Post(const char *pName);
#endif // FN_FunctionFromName_Post
#ifdef FN_NameForFunction_Post
const char *FN_NameForFunction_Post(uint32);
const char *FN_NameForFunction_Post(unsigned long function);
#endif // FN_NameForFunction_Post
#ifdef FN_ClientPrintf_Post
@ -1770,7 +1770,7 @@ CRC32_t FN_CRC32_Final_Post(CRC32_t pulCRC);
#endif // FN_CRC32_Final_Post
#ifdef FN_RandomLong_Post
int32 FN_RandomLong_Post(int32 lLow, int32 lHigh);
long FN_RandomLong_Post(long lLow, long lHigh);
#endif // FN_RandomLong_Post
#ifdef FN_RandomFloat_Post

View File

@ -83,27 +83,11 @@ void amx_command()
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();
print_srvconsole("Paused plugin \"%s\"\n", plugin->getName());
}
plugin->pausePlugin();
print_srvconsole("Paused plugin \"%s\"\n", plugin->getName());
}
else
{
print_srvconsole("Couldn't find plugin matching \"%s\"\n", sPlugin);
}
}
else if (!strcmp(cmd, "unpause") && CMD_ARGC() > 2)
{
@ -113,21 +97,14 @@ void amx_command()
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();
print_srvconsole("Unpaused plugin \"%s\"\n", plugin->getName());
}
plugin->unpausePlugin();
print_srvconsole("Unpaused plugin \"%s\"\n", plugin->getName());
}
else if (!plugin)
{
print_srvconsole("Couldn't find plugin matching \"%s\"\n", sPlugin);
} else {
print_srvconsole("Plugin %s can't be unpaused right now.\n", sPlugin);
print_srvconsole("Plugin %s can't be unpaused right now.", sPlugin);
}
}
else if (!strcmp(cmd, "cvars"))

View File

@ -1,6 +1,5 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
@ -27,8 +26,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,7,6,3387
PRODUCTVERSION 1,7,6,3387
FILEVERSION 1,7,6,0
PRODUCTVERSION 1,7,6,0
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
@ -45,12 +44,12 @@ BEGIN
BEGIN
VALUE "Comments", "AMX Mod X"
VALUE "FileDescription", "AMX Mod X"
VALUE "FileVersion", "1.76d"
VALUE "FileVersion", "1.76"
VALUE "InternalName", "amxmodx"
VALUE "LegalCopyright", "Copyright (c) 2004-2006, AMX Mod X Dev Team"
VALUE "OriginalFilename", "amxmodx_mm.dll"
VALUE "ProductName", "AMX Mod X"
VALUE "ProductVersion", "1.76d"
VALUE "ProductVersion", "1.76"
END
END
BLOCK "VarFileInfo"

View File

@ -1344,8 +1344,7 @@ static int command(void)
case tpERROR:
while (*lptr<=' ' && *lptr!='\0')
lptr++;
if (!SKIPPING)
error(111,lptr); /* user error */
error(111,lptr); /* user error */
break;
default:
error(31); /* unknown compiler directive */

View File

@ -6,3 +6,4 @@ ShowStats ;HUD-stats default
SayRankStats ;Say /rankstats
SayRank ;Say /rank
SayTop15 ;Say /top15
ShowStats ;HUD-stats default

View File

@ -244,14 +244,9 @@ void CPlayer::saveBDefused(){
// *****************************************************
bool ignoreBots(edict_t *pEnt, edict_t *pOther)
{
rankBots = (int)csstats_rankbots->value ? true : false;
if (!rankBots && (pEnt->v.flags & FL_FAKECLIENT || (pOther && pOther->v.flags & FL_FAKECLIENT)))
{
bool ignoreBots (edict_t *pEnt, edict_t *pOther){
if ( !rankBots && ( pEnt->v.flags & FL_FAKECLIENT || ( pOther && pOther->v.flags & FL_FAKECLIENT ) ) )
return true;
}
return false;
}

View File

@ -11,7 +11,6 @@
#define CSW_HEGRENADE 4
#define CSW_C4 6
#define CSW_SMOKEGRENADE 9
#define CSW_KNIFE 29
#define CSW_FLASHBANG 25
// *****************************************************

View File

@ -4,7 +4,6 @@
#include "stdafx.h"
#include "WinCSX.h"
#include <stdio.h>
#include "commctrl.h"
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
@ -27,8 +26,6 @@ int APIENTRY _tWinMain(HINSTANCE hInstance,
return FALSE;
}
InitCommonControls();
hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_WINCSX);
// Show the dialog box now.

View File

@ -32,7 +32,6 @@
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="comctl32.lib"
OutputFile="$(OutDir)/WinCSX.exe"
LinkIncremental="2"
GenerateDebugInformation="TRUE"
@ -78,7 +77,6 @@
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="comctl32.lib"
OutputFile="$(OutDir)/WinCSX.exe"
LinkIncremental="1"
GenerateDebugInformation="TRUE"

View File

@ -61,7 +61,6 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="comctl32.lib"
OutputFile="$(OutDir)/WinCSX.exe"
LinkIncremental="2"
GenerateDebugInformation="true"
@ -137,7 +136,6 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="comctl32.lib"
OutputFile="$(OutDir)/WinCSX.exe"
LinkIncremental="1"
GenerateDebugInformation="true"

View File

@ -2773,7 +2773,7 @@ void ValidateMacros_DontCallThis_Smiley()
MF_FindLibrary(NULL, LibType_Class);
MF_AddLibraries(NULL, LibType_Class, NULL);
MF_RemoveLibraries(NULL);
MF_OverrideNatives(NULL, "");
MF_OverrideNatives(NULL);
}
#endif

View File

@ -43,6 +43,7 @@ int gmsgResetHUD;
int gmsgAmmoX;
int gmsgScoreInfo;
int gmsgAmmoPickup;
int gmsgSendAudio;
int gmsgTextMsg;
int gmsgBarTime;
@ -58,30 +59,29 @@ cvar_t *csstats_rank;
cvar_t* csstats_rankbots;
cvar_t* csstats_pause;
cvar_t init_csstats_rankbots ={"csstats_rankbots","0"};
cvar_t init_csstats_rankbots ={"csstats_rankbots","1"};
cvar_t init_csstats_pause = {"csstats_pause","0"};
struct sUserMsg
{
struct sUserMsg {
const char* name;
int* id;
funEventCall func;
bool endmsg;
} g_user_msg[] = {
{"CurWeapon", &gmsgCurWeapon, Client_CurWeapon, false},
{"Damage", &gmsgDamage, Client_Damage, false},
{"Damage", &gmsgDamageEnd, Client_Damage_End, true},
{"WeaponList", &gmsgWeaponList, Client_WeaponList, false},
{"ResetHUD", &gmsgResetHUD, Client_ResetHUD, true},
{"AmmoX", &gmsgAmmoX, Client_AmmoX, false},
{"ScoreInfo", &gmsgScoreInfo, Client_ScoreInfo, false},
{"AmmoPickup", &gmsgAmmoPickup, Client_AmmoPickup, false},
{"SendAudio", &gmsgSendAudio, Client_SendAudio, false},
{"TextMsg", &gmsgTextMsg, Client_TextMsg, false},
{"BarTime", &gmsgBarTime, Client_BarTime, false},
{"DeathMsg", &gmsgDeathMsg, Client_DeathMsg, false},
{ "CurWeapon" , &gmsgCurWeapon , Client_CurWeapon, false },
{ "Damage" , &gmsgDamage,Client_Damage, false },
{ "Damage" , &gmsgDamageEnd, Client_Damage_End, true },
{ "WeaponList" , &gmsgWeaponList, Client_WeaponList, false },
{ "ResetHUD" , &gmsgResetHUD,Client_ResetHUD, true },
{ "AmmoX" , &gmsgAmmoX, Client_AmmoX , false },
{ "ScoreInfo" , &gmsgScoreInfo, Client_ScoreInfo, false },
{ "AmmoPickup" , &gmsgAmmoPickup, Client_AmmoPickup , false },
{0, 0, 0, false}
{ "SendAudio" , &gmsgSendAudio , Client_SendAudio , false },
{ "TextMsg" , &gmsgTextMsg , Client_TextMsg , false },
{ "BarTime" , &gmsgBarTime , Client_BarTime , false },
{ 0 , 0,0,false }
};
int RegUserMsg_Post(const char *pszName, int iSize)
@ -330,20 +330,10 @@ void EmitSound_Post(edict_t *entity, int channel, const char *sample, /*int*/flo
RETURN_META(MRES_IGNORED);
}
void TraceLine_Post(const float *v1, const float *v2, int fNoMonsters, edict_t *e, TraceResult *ptr)
{
if (ptr->pHit && (ptr->pHit->v.flags & (FL_CLIENT|FL_FAKECLIENT))
&& e
&& (e->v.flags & (FL_CLIENT|FL_FAKECLIENT))
&& ptr->iHitgroup)
{
CPlayer *pPlayer = GET_PLAYER_POINTER(e);
if (pPlayer->current != CSW_KNIFE)
{
pPlayer->aiming = ptr->iHitgroup;
}
}
void TraceLine_Post(const float *v1, const float *v2, int fNoMonsters, edict_t *e, TraceResult *ptr) {
if (ptr->pHit&&(ptr->pHit->v.flags& (FL_CLIENT | FL_FAKECLIENT) )&&
e&&(e->v.flags& (FL_CLIENT | FL_FAKECLIENT) )&&ptr->iHitgroup)
GET_PLAYER_POINTER(e)->aiming = ptr->iHitgroup;
RETURN_META(MRES_IGNORED);
}

View File

@ -5,7 +5,7 @@
// Module info
#define MODULE_NAME "CSX"
#define MODULE_VERSION "1.76c"
#define MODULE_VERSION "1.76"
#define MODULE_AUTHOR "AMX Mod X Dev Team"
#define MODULE_URL "http://www.amxmodx.org/"
#define MODULE_LOGTAG "CSX"
@ -367,7 +367,7 @@
#define FN_TraceLine_Post TraceLine_Post
// #define FN_TraceToss_Post TraceToss_Post
// #define FN_TraceMonsterHull_Post TraceMonsterHull_Post
// #define FN_TraceHull_Post TraceHull_Post
// #define FN_TraceHull_Post TraceHull_Post
// #define FN_TraceModel_Post TraceModel_Post
// #define FN_TraceTexture_Post TraceTexture_Post
// #define FN_TraceSphere_Post TraceSphere_Post

View File

@ -88,10 +88,10 @@ void Client_AmmoPickup(void*);
void Client_Damage_End(void*);
void Client_ScoreInfo(void*);
void Client_ResetHUD(void*);
void Client_SendAudio(void*);
void Client_TextMsg(void*);
void Client_BarTime(void*);
void Client_DeathMsg(void*);
bool ignoreBots (edict_t *pEnt, edict_t *pOther = NULL );
bool isModuleActive();

View File

@ -17,44 +17,6 @@ void Client_ResetHUD(void* mValue){
}
}
void Client_DeathMsg(void *mValue)
{
static int killer_id;
static int victim_id;
static int is_headshot;
const char *name;
switch (mState++)
{
case 0:
{
killer_id = *(int *)mValue;
break;
}
case 1:
{
victim_id = *(int *)mValue;
break;
}
case 2:
{
is_headshot = *(int *)mValue;
break;
}
case 3:
{
name = (const char *)mValue;
if (killer_id
&& (strcmp(name, "knife") == 0))
{
CPlayer *pPlayer = GET_PLAYER_POINTER_I(killer_id);
pPlayer->aiming = is_headshot ? 1 : 0;
}
break;
}
}
}
void Client_WeaponList(void* mValue){
static int wpnList;
static int iSlot;

View File

@ -5,7 +5,7 @@
// Module info
#define MODULE_NAME "DoD Fun"
#define MODULE_VERSION "1.76b"
#define MODULE_VERSION "1.76"
#define MODULE_AUTHOR "AMX Mod X Dev Team"
#define MODULE_URL "http://www.amxmodx.org"
#define MODULE_LOGTAG "DODFUN"

View File

@ -251,7 +251,7 @@ void RankSystem::loadRank(const char* filename)
}
short int i = 0;
if (fread(&i, sizeof(short int), 1, bfp) != 1)
if (!fread(&i, sizeof(short int), 1, bfp) != 1)
{
fclose(bfp);
return;

View File

@ -2773,7 +2773,7 @@ void ValidateMacros_DontCallThis_Smiley()
MF_FindLibrary(NULL, LibType_Class);
MF_AddLibraries(NULL, LibType_Class, NULL);
MF_RemoveLibraries(NULL);
MF_OverrideNatives(NULL, "");
MF_OverrideNatives(NULL);
}
#endif

View File

@ -60,13 +60,13 @@ extern int mState;
extern int mPlayerIndex;
void Client_CurWeapon(void*);
void Client_Health_End(void*);
void Client_ResetHUD_End(void*);
void Client_ObjScore(void*);
void Client_TeamScore(void*);
void Client_RoundState(void*);
void Client_AmmoX(void*);
void Client_AmmoShort(void*);
void Client_Health_End(void*);
// Zors
//void WeaponList(void*);
@ -78,6 +78,7 @@ extern int AlliesScore;
extern int AxisScore;
extern int gmsgCurWeapon;
extern int gmsgHealth;
extern int gmsgResetHUD;
extern int gmsgObjScore;
extern int gmsgRoundState;
@ -86,11 +87,12 @@ extern int gmsgScoreShort;
extern int gmsgPTeam;
extern int gmsgAmmoX;
extern int gmsgAmmoShort;
extern int gmsgHealth_End;
extern int iFDamage;
extern int iFDeath;
extern int iFScore;
// Zors
extern int iFSpawnForward;
extern int iFTeamForward;
extern int iFClassForward;

View File

@ -57,6 +57,7 @@ int iFTeamForward = -1;
int iFClassForward = -1;
int gmsgCurWeapon;
int gmsgHealth;
int gmsgResetHUD;
int gmsgObjScore;
int gmsgRoundState;
@ -65,7 +66,6 @@ int gmsgScoreShort;
int gmsgPTeam;
int gmsgAmmoX;
int gmsgAmmoShort;
int gmsgHealth_End;
// Zors
//int gmsgWeaponList;
@ -90,23 +90,22 @@ struct sUserMsg {
int* id;
funEventCall func;
bool endmsg;
} g_user_msg[] =
{
{ "CurWeapon", &gmsgCurWeapon, Client_CurWeapon, false },
{ "ObjScore", &gmsgObjScore, Client_ObjScore, false },
{ "RoundState", &gmsgRoundState, Client_RoundState, false },
{ "ResetHUD", &gmsgResetHUD, Client_ResetHUD_End, true },
{ "TeamScore", &gmsgTeamScore, Client_TeamScore, false },
{ "AmmoX", &gmsgAmmoX, Client_AmmoX, false },
{ "AmmoShort", &gmsgAmmoShort, Client_AmmoShort, false },
{ "Health", &gmsgHealth_End, Client_Health_End, true },
} g_user_msg[] = {
{ "CurWeapon",&gmsgCurWeapon,Client_CurWeapon,false },
{ "ObjScore",&gmsgObjScore,Client_ObjScore,false },
{ "RoundState",&gmsgRoundState,Client_RoundState,false },
{ "Health",&gmsgHealth,Client_Health_End,true },
{ "ResetHUD",&gmsgResetHUD,Client_ResetHUD_End,true },
{ "TeamScore",&gmsgTeamScore,Client_TeamScore,false },
{ "ScoreShort",&gmsgScoreShort,NULL,false },
{ "PTeam",&gmsgPTeam,NULL,false },
{ "AmmoX",&gmsgAmmoX,Client_AmmoX,false},
{ "AmmoShort",&gmsgAmmoShort,Client_AmmoShort,false},
{ "ScoreShort",&gmsgScoreShort,NULL,false },
//Zors
//{ "WeaponList", &gmsgWeaponList, WeaponList, true },
//{ "WeaponList", &gmsgWeaponList_End, WeaponList_End, true },
{ "PTeam", &gmsgPTeam, NULL, false },
{ "ScoreShort", &gmsgScoreShort, NULL, false },
//{ "WeaponList",&gmsgWeaponList,WeaponList,true },
//{ "WeaponList",&gmsgWeaponList_End,WeaponList_End,true },
{ 0,0,0,false }
};
@ -441,6 +440,8 @@ void OnPluginsLoaded()
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);
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);
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);

View File

@ -5,7 +5,7 @@
// Module info
#define MODULE_NAME "DoDX"
#define MODULE_VERSION "1.76b"
#define MODULE_VERSION "1.76"
#define MODULE_AUTHOR "AMX Mod X Dev Team"
#define MODULE_URL "http://www.amxmodx.org"
#define MODULE_LOGTAG "DODX"

View File

@ -141,6 +141,67 @@ 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)
{
static int iAmmo;
@ -180,67 +241,6 @@ 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

View File

@ -798,42 +798,31 @@ static cell AMX_NATIVE_CALL in_view_cone(AMX *amx, cell *params)
CHECK_ENTITY(src);
edict_t *pEdictSrc = INDEXENT(src);
Vector vecLOS, vecForward;
Vector2D vec2LOS;
float flDot;
edict_t *pEdictSrc = INDEXENT(src);
cell *addr = MF_GetAmxAddr(amx, params[2]);
Vector origin(amx_ctof(addr[0]), amx_ctof(addr[1]), amx_ctof(addr[2]));
float vecOrigin[3];
bool use2D = (params[0] / sizeof(cell)) == 2 || params[3] == 0;
vecOrigin[0] = amx_ctof(addr[0]);
vecOrigin[1] = amx_ctof(addr[1]);
vecOrigin[2] = amx_ctof(addr[2]);
if (use2D)
{
MAKE_VECTORS(pEdictSrc->v.angles);
vecForward = gpGlobals->v_forward;
Vector origin(vecOrigin[0], vecOrigin[1], vecOrigin[2]);
vecLOS = origin - pEdictSrc->v.origin;
MAKE_VECTORS(pEdictSrc->v.angles);
vecForward.z = 0;
vecLOS.z = 0;
}
else
{
MAKE_VECTORS(pEdictSrc->v.v_angle);
vecForward = gpGlobals->v_forward;
vec2LOS = (origin - pEdictSrc->v.origin).Make2D();
vec2LOS = vec2LOS.Normalize();
vecLOS = origin - (pEdictSrc->v.origin + pEdictSrc->v.view_ofs);
}
vecLOS = vecLOS.Normalize();
flDot = DotProduct(vecLOS, vecForward);
flDot = DotProduct(vec2LOS, gpGlobals->v_forward.Make2D());
if (flDot >= cos(pEdictSrc->v.fov * (M_PI / 360)))
return 1;
else
return 0;
}
static cell AMX_NATIVE_CALL traceresult(AMX *amx, cell *params)

View File

@ -34,25 +34,19 @@ void ServerActivate(edict_t *pEdictList, int edictCount, int clientMax)
g_pFunctionTable->pfn##tcall =0; \
g_pFunctionTable_Post->pfn##tcall =NULL; \
Engine[FM_##tcall].clear(); \
EnginePost[FM_##tcall].clear(); \
EngineAddrs[FM_##tcall] = NULL; \
EngineAddrsPost[FM_##tcall] = NULL;
EnginePost[FM_##tcall].clear()
#define RESETE(call) \
g_pengfuncsTable->pfn##call = NULL; \
g_pengfuncsTable_Post->pfn##call = NULL; \
Engine[FM_##call].clear(); \
EnginePost[FM_##call].clear(); \
EngineAddrs[FM_##call] = NULL; \
EngineAddrsPost[FM_##call] = NULL;
EnginePost[FM_##call].clear()
#define RESETN(call) \
g_pNewFunctionsTable->pfn##call = NULL; \
g_pNewFunctionsTable_Post->pfn##call = NULL; \
Engine[FM_##call].clear(); \
EnginePost[FM_##call].clear(); \
EngineAddrs[FM_##call] = NULL; \
EngineAddrsPost[FM_##call] = NULL;
EnginePost[FM_##call].clear();
void FMH_ServerDeactivate_Post()
{

View File

@ -30,12 +30,6 @@ static cell AMX_NATIVE_CALL set_tr(AMX *amx, cell *params)
return 1;
break;
}
case TR_InOpen:
{
gfm_tr->fInOpen = *ptr;
return 1;
break;
}
case TR_InWater:
{
gfm_tr->fInWater = *ptr;
@ -110,11 +104,6 @@ static cell AMX_NATIVE_CALL get_tr(AMX *amx, cell *params)
return gfm_tr->fStartSolid;
break;
}
case TR_InOpen:
{
return gfm_tr->fInOpen;
break;
}
case TR_InWater:
{
return gfm_tr->fInWater;

View File

@ -692,8 +692,6 @@ static cell AMX_NATIVE_CALL get_es(AMX *amx, cell *params)
ptr = MF_GetAmxAddr(amx, params[3]);
*ptr = amx_ftoc(es->framerate);
return 1;
case ES_Body:
return es->body;
case ES_Controller:
ptr = MF_GetAmxAddr(amx, params[3]);
ptr[0] = es->controller[0];
@ -939,9 +937,6 @@ static cell AMX_NATIVE_CALL set_es(AMX *amx, cell *params)
case ES_FrameRate:
es->framerate = amx_ctof(*ptr);
return 1;
case ES_Body:
es->body = *ptr;
return 1;
case ES_Controller:
es->controller[0] = ptr[0];
es->controller[1] = ptr[1];

View File

@ -2,8 +2,6 @@
CVector<int> Engine[ENGFUNC_NUM+10];
CVector<int> EnginePost[ENGFUNC_NUM+10];
void *EngineAddrs[ENGFUNC_NUM+10];
void *EngineAddrsPost[ENGFUNC_NUM+10];
cell mCellResult;
cell mlCellResult;
float mFloatResult;
@ -59,12 +57,12 @@ static cell AMX_NATIVE_CALL fm_return(AMX *amx, cell *params)
}
case FMV_FLOAT:
{
mFloatResult = amx_ctof(*(MF_GetAmxAddr(amx,params[2])));
mFloatResult = amx_ctof(params[2]);
break;
}
case FMV_CELL:
{
mCellResult = *(MF_GetAmxAddr(amx,params[2]));
mCellResult = params[2];
break;
}
default:
@ -821,17 +819,11 @@ static cell AMX_NATIVE_CALL unregister_forward(AMX *amx, cell *params)
return 0;
}
void *patchAddr = NULL;
CVector<int> *peng = NULL;
if (post)
{
peng = &(EnginePost[func]);
patchAddr = EngineAddrsPost[func];
} else {
peng = &(Engine[func]);
patchAddr = EngineAddrs[func];
}
else
peng = &(EnginePost[func]);
CVector<int>::iterator begin, end=peng->end();
@ -840,12 +832,10 @@ static cell AMX_NATIVE_CALL unregister_forward(AMX *amx, cell *params)
if ((*begin) == func_id)
{
peng->erase(begin);
if (!peng->size()
&& patchAddr != NULL
&& func != FM_ServerDeactivate)
if (!peng->size())
{
/* Clear out this forward if we no longer need it */
*(void **)patchAddr = NULL;
//:TODO: we should probably clear this here!
//but, we have no reverse lookup possible.
}
return 1;
}
@ -1009,19 +999,19 @@ static cell AMX_NATIVE_CALL register_forward(AMX *amx, cell *params)
ENGHOOK(TraceLine);
break;
case FM_TraceToss:
fId = MF_RegisterSPForwardByName(amx, funcname, FP_CELL, FP_CELL, FP_CELL, FP_DONE);
fId = MF_RegisterSPForwardByName(amx, funcname, FP_CELL, FP_CELL, FP_DONE);
ENGHOOK(TraceToss);
break;
case FM_TraceMonsterHull:
fId = MF_RegisterSPForwardByName(amx, funcname, FP_CELL, FP_ARRAY, FP_ARRAY, FP_CELL, FP_CELL, FP_CELL, FP_DONE);
fId = MF_RegisterSPForwardByName(amx, funcname, FP_CELL, FP_ARRAY, FP_ARRAY, FP_CELL, FP_CELL, FP_DONE);
ENGHOOK(TraceMonsterHull);
break;
case FM_TraceHull:
fId = MF_RegisterSPForwardByName(amx, funcname, FP_ARRAY, FP_ARRAY, FP_CELL, FP_CELL, FP_CELL, FP_CELL, FP_DONE);
fId = MF_RegisterSPForwardByName(amx, funcname, FP_ARRAY, FP_ARRAY, FP_CELL, FP_CELL, FP_CELL, FP_DONE);
ENGHOOK(TraceHull);
break;
case FM_TraceModel:
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_DONE);
ENGHOOK(TraceModel);
break;
case FM_TraceTexture:

View File

@ -169,8 +169,6 @@ enum {
extern CVector<int> Engine[];
extern CVector<int> EnginePost[];
extern void *EngineAddrs[ENGFUNC_NUM+10];
extern void *EngineAddrsPost[ENGFUNC_NUM+10];
extern cell mCellResult;
extern float mFloatResult;
extern const char *mStringResult;

View File

@ -810,13 +810,11 @@
#define ENGHOOK(pfnCall) \
if (post) \
{ \
EngineAddrsPost[FM_##pfnCall] = &engtable->pfn##pfnCall; \
if (engtable->pfn##pfnCall == NULL) \
engtable->pfn##pfnCall = pfnCall##_post; \
} \
else \
{ \
EngineAddrs[FM_##pfnCall] = &engtable->pfn##pfnCall; \
if (engtable->pfn##pfnCall == NULL) \
engtable->pfn##pfnCall = pfnCall; \
}
@ -824,13 +822,11 @@
#define DLLHOOK(pfnCall) \
if (post) \
{ \
EngineAddrsPost[FM_##pfnCall] = &dlltable->pfn##pfnCall; \
if (dlltable->pfn##pfnCall == NULL) \
dlltable->pfn##pfnCall = pfnCall##_post; \
} \
else \
{ \
EngineAddrs[FM_##pfnCall] = &dlltable->pfn##pfnCall; \
if (dlltable->pfn##pfnCall == NULL) \
dlltable->pfn##pfnCall = pfnCall; \
}

View File

@ -5,7 +5,7 @@
// Module info
#define MODULE_NAME "FakeMeta"
#define MODULE_VERSION "1.76d"
#define MODULE_VERSION "1.76"
#define MODULE_AUTHOR "AMX Mod X Dev Team"
#define MODULE_URL "http://www.amxmodx.org"
#define MODULE_LOGTAG "FAKEMETA"

View File

@ -55,10 +55,6 @@ static cell AMX_NATIVE_CALL SQL_MakeDbTuple(AMX *amx, cell *params)
sql->user = strdup(MF_GetAmxString(amx, params[2], 0, &len));
sql->pass = strdup(MF_GetAmxString(amx, params[3], 0, &len));
sql->db = strdup(MF_GetAmxString(amx, params[4], 0, &len));
if (params[0] / sizeof(cell) >= 5)
{
sql->max_timeout = static_cast<unsigned int>(params[5]);
}
unsigned int num = MakeHandle(sql, Handle_Connection, FreeConnection);
@ -91,12 +87,11 @@ static cell AMX_NATIVE_CALL SQL_Connect(AMX *amx, cell *params)
nfo.pass = sql->pass;
nfo.port = sql->port;
nfo.host = sql->host;
nfo.max_timeout = sql->max_timeout;
char buffer[512];
int errcode;
IDatabase *pDb = g_Mysql.Connect2(&nfo, &errcode, buffer, sizeof(buffer)-1);
IDatabase *pDb = g_Mysql.Connect(&nfo, &errcode, buffer, sizeof(buffer)-1);
if (!pDb)
{
@ -383,15 +378,13 @@ static cell AMX_NATIVE_CALL SQL_GetQueryString(AMX *amx, cell *params)
{
AmxQueryInfo *qInfo = (AmxQueryInfo *)GetHandle(params[1], Handle_Query);
if (!qInfo || (!qInfo->pQuery && !qInfo->opt_ptr))
if (!qInfo || !qInfo->pQuery)
{
MF_LogError(amx, AMX_ERR_NATIVE, "Invalid query handle: %d", params[1]);
return 0;
}
const char *ptr = qInfo->pQuery ? qInfo->pQuery->GetQueryString() : qInfo->opt_ptr;
return MF_SetAmxString(amx, params[2], ptr, params[3]);
return MF_SetAmxString(amx, params[2], qInfo->pQuery->GetQueryString(), params[3]);
}
static cell AMX_NATIVE_CALL SQL_FieldNameToNum(AMX *amx, cell *params)

View File

@ -134,13 +134,11 @@ namespace SourceMod
struct DatabaseInfo
{
DatabaseInfo() : max_timeout(0) { };
const char *host;
const char *database;
const char *user;
const char *pass;
unsigned int port;
unsigned int max_timeout;
};
class ISQLDriver
@ -149,8 +147,6 @@ namespace SourceMod
virtual ~ISQLDriver() { };
public:
virtual IDatabase *Connect(DatabaseInfo *info, int *errcode, char *error, size_t maxlength) =0;
//Supports the timeout clause
virtual IDatabase *Connect2(DatabaseInfo *info, int *errcode, char *error, size_t maxlength) =0;
virtual const char *NameString() =0;
virtual bool IsCompatDriver(const char *namestring) =0;
};

View File

@ -21,16 +21,6 @@ const char *MysqlDriver::NameString()
}
IDatabase *MysqlDriver::Connect(DatabaseInfo *info, int *errcode, char *error, size_t maxlength)
{
return _Connect(info, errcode, error, maxlength, false);
}
IDatabase *MysqlDriver::Connect2(DatabaseInfo *info, int *errcode, char *error, size_t maxlength)
{
return _Connect(info, errcode, error, maxlength, true);
}
IDatabase *MysqlDriver::_Connect(DatabaseInfo *info, int *errcode, char *error, size_t maxlength, bool do_timeout)
{
MYSQL *mysql = mysql_init(NULL);
@ -45,11 +35,6 @@ IDatabase *MysqlDriver::_Connect(DatabaseInfo *info, int *errcode, char *error,
return false;
}
if (do_timeout && info->max_timeout)
{
mysql_options(mysql, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&(info->max_timeout));
}
if (mysql_real_connect(mysql,
info->host,
info->user,
@ -60,13 +45,9 @@ IDatabase *MysqlDriver::_Connect(DatabaseInfo *info, int *errcode, char *error,
0) == NULL)
{
if (errcode)
{
*errcode = mysql_errno(mysql);
}
if (error && maxlength)
{
snprintf(error, maxlength, "%s", mysql_error(mysql));
}
return false;
}

View File

@ -9,11 +9,8 @@ namespace SourceMod
{
public:
IDatabase *Connect(DatabaseInfo *info, int *errcode, char *error, size_t maxlength);
IDatabase *Connect2(DatabaseInfo *info, int *errcode, char *error, size_t maxlength);
const char *NameString();
bool IsCompatDriver(const char *namestring);
public:
IDatabase *_Connect(DatabaseInfo *info, int *errcode, char *error, size_t maxlength, bool do_timeout);
};
};

View File

@ -10,11 +10,9 @@
struct AmxQueryInfo
{
AmxQueryInfo() : opt_ptr(NULL) { };
IQuery *pQuery;
QueryInfo info;
char error[255];
char *opt_ptr;
};
enum HandleType
@ -34,7 +32,6 @@ struct SQL_Connection
char *pass;
char *db;
int port;
unsigned int max_timeout;
};
typedef void (*FREEHANDLE)(void *, unsigned int);

View File

@ -15,7 +15,7 @@
* to add multiple entries.
*/
#define MODULE_NAME "MySQL"
#define MODULE_VERSION "1.76b"
#define MODULE_VERSION "1.76"
#define MODULE_AUTHOR "AMX Mod X Dev Team"
#define MODULE_URL "http://www.amxmodx.org/"
#define MODULE_LOGTAG "MySQL"

View File

@ -58,7 +58,7 @@ static cell AMX_NATIVE_CALL SQL_ThreadQuery(AMX *amx, cell *params)
int len;
const char *handler = MF_GetAmxString(amx, params[2], 0, &len);
int fwd = MF_RegisterSPForwardByName(amx, handler, FP_CELL, FP_CELL, FP_STRING, FP_CELL, FP_ARRAY, FP_CELL, FP_CELL, FP_DONE);
int fwd = MF_RegisterSPForwardByName(amx, handler, FP_CELL, FP_CELL, FP_STRING, FP_CELL, FP_ARRAY, FP_CELL, FP_DONE);
if (fwd < 1)
{
MF_LogError(amx, AMX_ERR_NATIVE, "Function not found: %s", handler);
@ -76,7 +76,7 @@ static cell AMX_NATIVE_CALL SQL_ThreadQuery(AMX *amx, cell *params)
}
g_QueueLock->Unlock();
kmThread->SetInfo(cn->host, cn->user, cn->pass, cn->db, cn->port, cn->max_timeout);
kmThread->SetInfo(cn->host, cn->user, cn->pass, cn->db, cn->port);
kmThread->SetForward(fwd);
kmThread->SetQuery(MF_GetAmxString(amx, params[3], 1, &len));
kmThread->SetCellData(MF_GetAmxAddr(amx, params[4]), (ucell)params[5]);
@ -126,15 +126,13 @@ void MysqlThread::SetForward(int forward)
m_fwd = forward;
}
void MysqlThread::SetInfo(const char *host, const char *user, const char *pass, const char *db, int port, unsigned int max_timeout)
void MysqlThread::SetInfo(const char *host, const char *user, const char *pass, const char *db, int port)
{
m_host.assign(host);
m_user.assign(user);
m_pass.assign(pass);
m_db.assign(db);
m_max_timeout = m_max_timeout;
m_port = port;
m_qrInfo.queue_time = gpGlobals->time;
}
void MysqlThread::SetQuery(const char *query)
@ -151,15 +149,10 @@ void MysqlThread::RunThread(IThreadHandle *pHandle)
info.user = m_user.c_str();
info.host = m_host.c_str();
info.port = m_port;
info.max_timeout = m_max_timeout;
float save_time = m_qrInfo.queue_time;
memset(&m_qrInfo, 0, sizeof(m_qrInfo));
m_qrInfo.queue_time = save_time;
IDatabase *pDatabase = g_Mysql.Connect2(&info, &m_qrInfo.amxinfo.info.errorcode, m_qrInfo.amxinfo.error, 254);
IDatabase *pDatabase = g_Mysql.Connect(&info, &m_qrInfo.amxinfo.info.errorcode, m_qrInfo.amxinfo.error, 254);
IQuery *pQuery = NULL;
if (!pDatabase)
{
@ -179,15 +172,11 @@ void MysqlThread::RunThread(IThreadHandle *pHandle)
if (m_qrInfo.query_success && m_qrInfo.amxinfo.info.rs)
{
m_atomicResult.CopyFrom(m_qrInfo.amxinfo.info.rs);
m_qrInfo.amxinfo.info.rs = &m_atomicResult;
}
if (pQuery)
{
m_qrInfo.amxinfo.pQuery = pQuery;
m_qrInfo.amxinfo.info.rs = &m_atomicResult;
} else {
m_qrInfo.amxinfo.opt_ptr = new char[m_query.size() + 1];
strcpy(m_qrInfo.amxinfo.opt_ptr, m_query.c_str());
pQuery->FreeHandle();
pQuery = NULL;
}
if (pDatabase)
@ -239,37 +228,31 @@ void MysqlThread::Execute()
} else if (!m_qrInfo.query_success) {
state = -1;
}
float diff = gpGlobals->time - m_qrInfo.queue_time;
cell c_diff = amx_ftoc(diff);
unsigned int hndl = MakeHandle(&m_qrInfo.amxinfo, Handle_Query, NullFunc);
if (state != 0)
{
MF_ExecuteForward(m_fwd,
(cell)state,
(cell)hndl,
(cell)0,
m_qrInfo.amxinfo.error,
m_qrInfo.amxinfo.info.errorcode,
data_addr,
m_datalen,
c_diff);
m_datalen);
} else {
unsigned int hndl = MakeHandle(&m_qrInfo.amxinfo, Handle_Query, NullFunc);
MF_ExecuteForward(m_fwd,
(cell)0,
(cell)hndl,
"",
(cell)0,
data_addr,
m_datalen,
c_diff);
m_datalen);
/* this should always be true I think */
if (m_qrInfo.amxinfo.pQuery)
{
m_qrInfo.amxinfo.pQuery->FreeHandle();
}
FreeHandle(hndl);
}
FreeHandle(hndl);
if (m_qrInfo.amxinfo.pQuery)
{
m_qrInfo.amxinfo.pQuery->FreeHandle();
m_qrInfo.amxinfo.pQuery = NULL;
}
delete [] m_qrInfo.amxinfo.opt_ptr;
m_qrInfo.amxinfo.opt_ptr = NULL;
}
/*****************

View File

@ -12,7 +12,6 @@ struct QueuedResultInfo
AmxQueryInfo amxinfo;
bool connect_success;
bool query_success;
float queue_time;
};
class AtomicResult :
@ -60,7 +59,7 @@ public:
MysqlThread();
~MysqlThread();
public:
void SetInfo(const char *host, const char *user, const char *pass, const char *db, int port, unsigned int max_timeout);
void SetInfo(const char *host, const char *user, const char *pass, const char *db, int port);
void SetQuery(const char *query);
void SetCellData(cell data[], ucell len);
void SetForward(int forward);
@ -75,7 +74,6 @@ private:
SourceHook::String m_user;
SourceHook::String m_pass;
SourceHook::String m_db;
unsigned int m_max_timeout;
int m_port;
cell *m_data;
ucell m_datalen;

View File

@ -5,7 +5,7 @@
// Module info
#define MODULE_NAME "NS"
#define MODULE_VERSION "1.76d"
#define MODULE_VERSION "1.76"
#define MODULE_AUTHOR "Steve Dudenhoeffer"
#define MODULE_URL "http://www.amxmodx.org/"
#define MODULE_LOGTAG "NS"

View File

@ -6,56 +6,56 @@
// Offsets (used in NPData.cpp)
#define OFFSET_WIN_RESOURCES 1816 //454 * 4 // est: 454 // CONFIRMED
#define OFFSET_LIN_RESOURCES 1836 //459 * 4 // no change
#define OFFSET_WIN_RESOURCES 1816 //454 * 4
#define OFFSET_LIN_RESOURCES 1836 //459 * 4
#define OFFSET_WIN_WEAPDMG 408 //100 * 4 // est: 102 // CONFIRMED
#define OFFSET_LIN_WEAPDMG 424 //106 * 4 // Changed + 8 Bytes
#define OFFSET_WIN_WEAPDMG 400 //100 * 4
#define OFFSET_LIN_WEAPDMG 416 //104 * 4
#define OFFSET_WIN_WEAPRANGE 404 //99 * 4 // est: 101 // CONFIRMED
#define OFFSET_LIN_WEAPRANGE 420 //105 * 4 // Changed + 8 Bytes
#define OFFSET_WIN_WEAPRANGE 396 //99 * 4
#define OFFSET_LIN_WEAPRANGE 412 //103 * 4
#define OFFSET_WIN_WEAPCLIP 364 //91 * 4 // est: 91 // CONFIRMED
#define OFFSET_LIN_WEAPCLIP 380 //95 * 4 // no change
#define OFFSET_WIN_WEAPCLIP 364 //91 * 4
#define OFFSET_LIN_WEAPCLIP 380 //95 * 4
#define OFFSET_WIN_HIVE_TRAIT 488 //121 * 4 // est: 122 // CONFIRMED
#define OFFSET_LIN_HIVE_TRAIT 504 //126 * 4 // Changed + 4 bytes
#define OFFSET_WIN_HIVE_TRAIT 484 //121 * 4
#define OFFSET_LIN_HIVE_TRAIT 500 //125 * 4
#define OFFSET_WIN_SCORE 6588 //1639 * 4 // est: 1647 // CONFIRMED
#define OFFSET_LIN_SCORE 6608 //1644 * 4 // Changed + 32 bytes
#define OFFSET_WIN_SCORE 6556 //1639 * 4
#define OFFSET_LIN_SCORE 6576 //1644 * 4
#define OFFSET_WIN_EXP 6512 //1620 * 4 // est: 1628 // CONFIRMED
#define OFFSET_LIN_EXP 6532 //1633 * 4 // Changed + 32 bytes
#define OFFSET_WIN_EXP 6480 //1620 * 4
#define OFFSET_LIN_EXP 6500 //1625 * 4
#define OFFSET_WIN_POINTS 6520 //1622 * 4 // est: 1630 // CONFIRMED
#define OFFSET_LIN_POINTS 6540 //1635 * 4 // Changed + 32 bytes
#define OFFSET_WIN_POINTS 6488 //1622 * 4
#define OFFSET_LIN_POINTS 6508 //1627 * 4
#define OFFSET_WIN_AMMO_LMG 1116 //279 * 4 // est: 279 // CONFIRMED
#define OFFSET_LIN_AMMO_LMG 1136 //284 * 4 // no change
#define OFFSET_WIN_AMMO_LMG 1116 //279 * 4
#define OFFSET_LIN_AMMO_LMG 1136 //284 * 4
#define OFFSET_WIN_AMMO_PISTOL 1120 //280 * 4 // est: 280 // CONFIRMED
#define OFFSET_LIN_AMMO_PISTOL 1140 //285 * 4 // no change
#define OFFSET_WIN_AMMO_PISTOL 1120 //280 * 4
#define OFFSET_LIN_AMMO_PISTOL 1140 //285 * 4
#define OFFSET_WIN_AMMO_SHOTGUN 1124 //281 * 4 // est: 281 // CONFIRMED
#define OFFSET_LIN_AMMO_SHOTGUN 1144 //286 * 4 // no change
#define OFFSET_WIN_AMMO_SHOTGUN 1124 //281 * 4
#define OFFSET_LIN_AMMO_SHOTGUN 1144 //286 * 4
#define OFFSET_WIN_AMMO_HMG 1128 //282 * 4 // est: 282 // CONFIRMED
#define OFFSET_LIN_AMMO_HMG 1148 //287 * 4 // no change
#define OFFSET_WIN_AMMO_HMG 1128 //282 * 4
#define OFFSET_LIN_AMMO_HMG 1148 //287 * 4
#define OFFSET_WIN_AMMO_GL 1132 //283 * 4 // est: 283 // CONFIRMED
#define OFFSET_LIN_AMMO_GL 1152 //288 * 4 // no change
#define OFFSET_WIN_AMMO_GL 1132 //283 * 4
#define OFFSET_LIN_AMMO_GL 1152 //288 * 4
#define OFFSET_WIN_AMMO_HG 1136 //284 * 4 // est: 284 // CONFIRMED
#define OFFSET_LIN_AMMO_HG 1156 //289 * 4 // no change
#define OFFSET_WIN_AMMO_HG 1136 //284 * 4
#define OFFSET_LIN_AMMO_HG 1156 //289 * 4
#define OFFSET_WIN_DEATHS 1380 //345 * 4 // est: 345 // CONFIRMED
#define OFFSET_LIN_DEATHS 1400 //350 * 4 // no change
#define OFFSET_WIN_DEATHS 1380 //345 * 4
#define OFFSET_LIN_DEATHS 1400 //349 * 4
#define OFFSET_WIN_STRUCTOWNER 324 //81 * 4 // est: 81 // CONFIRMED
#define OFFSET_LIN_STRUCTOWNER 340 //85 * 4 // no change
#define OFFSET_WIN_STRUCTOWNER 324 //81 * 4
#define OFFSET_LIN_STRUCTOWNER 340 //85 * 4
#define OFFSET_WIN_HIVEABILITY 6248 //1555 * 4 // est: 1562 // CONFIRMED
#define OFFSET_LIN_HIVEABILITY 6268 //1567 * 4 // Changed + 28 bytes
#define OFFSET_WIN_HIVEABILITY 6220 //1555 * 4
#define OFFSET_LIN_HIVEABILITY 6240 //1560 * 4
enum
{

View File

@ -1,5 +1,4 @@
#include <stdio.h>
#include <stdarg.h>
#if defined __linux__
#include <unistd.h>
#endif
@ -25,8 +24,8 @@ int Journal::Replay(VaultMap *pMap)
BinaryReader br(m_fp);
uint8_t len8;
uint16_t len16;
int8_t len8;
int16_t len16;
char *key = NULL;
char *val = NULL;
String sKey;

View File

@ -2773,7 +2773,7 @@ void ValidateMacros_DontCallThis_Smiley()
MF_FindLibrary(NULL, LibType_Class);
MF_AddLibraries(NULL, LibType_Class, NULL);
MF_RemoveLibraries(NULL);
MF_OverrideNatives(NULL, "");
MF_OverrideNatives(NULL);
}
#endif

View File

@ -5,7 +5,7 @@
// Module info
#define MODULE_NAME "nVault"
#define MODULE_VERSION "1.76c"
#define MODULE_VERSION "1.76"
#define MODULE_AUTHOR "AMX Mod X Dev Team"
#define MODULE_URL "http://www.amxmodx.org/"
#define MODULE_LOGTAG "nVault"

View File

@ -169,8 +169,6 @@ public:
} else {
iter++;
}
} else {
iter++;
}
}
}

View File

@ -382,16 +382,13 @@ static cell AMX_NATIVE_CALL SQL_FieldNumToName(AMX *amx, cell *params)
static cell AMX_NATIVE_CALL SQL_GetQueryString(AMX *amx, cell *params)
{
AmxQueryInfo *qInfo = (AmxQueryInfo *)GetHandle(params[1], Handle_Query);
if (!qInfo || (!qInfo->pQuery && !qInfo->opt_ptr))
if (!qInfo)
{
MF_LogError(amx, AMX_ERR_NATIVE, "Invalid query handle: %d", params[1]);
return 0;
}
const char *ptr = qInfo->pQuery ? qInfo->pQuery->GetQueryString() : qInfo->opt_ptr;
return MF_SetAmxString(amx, params[2], ptr, params[3]);
return MF_SetAmxString(amx, params[2], qInfo->pQuery->GetQueryString(), params[3]);
}
static cell AMX_NATIVE_CALL SQL_FieldNameToNum(AMX *amx, cell *params)

View File

@ -5,7 +5,7 @@
// Module info
#define MODULE_NAME "SQLite"
#define MODULE_VERSION "1.76b"
#define MODULE_VERSION "1.76"
#define MODULE_AUTHOR "AMX Mod X Dev Team"
#define MODULE_URL "http://www.amxmodx.org/"
#define MODULE_LOGTAG "SQLITE"

View File

@ -23,7 +23,6 @@
namespace SourceHook
{
//This class is from CSDM for AMX Mod X
/*
A circular, doubly-linked list with one sentinel node

View File

@ -10,11 +10,9 @@
struct AmxQueryInfo
{
AmxQueryInfo() : opt_ptr(NULL) { };
IQuery *pQuery;
QueryInfo info;
char error[255];
char *opt_ptr;
};
enum HandleType

View File

@ -54,9 +54,6 @@ void ThreadWorker::RunThread(IThreadHandle *pHandle)
/**
* Check number of items in the queue
*/
m_StateLock->Lock();
this_state = m_state;
m_StateLock->Unlock();
if (this_state != Worker_Stopped)
{
m_QueueLock->Lock();
@ -68,11 +65,6 @@ void ThreadWorker::RunThread(IThreadHandle *pHandle)
*/
m_Waiting = true;
m_QueueLock->Unlock();
/* first check if we should end again */
if (this_state == Worker_Stopped)
{
break;
}
m_AddSignal->Wait();
m_Waiting = false;
} else {
@ -88,9 +80,7 @@ void ThreadWorker::RunThread(IThreadHandle *pHandle)
{
//wait until the lock is cleared.
if (this_state == Worker_Paused)
{
m_PauseSignal->Wait();
}
if (this_state == Worker_Stopped)
{
//if we're supposed to flush cleanrly,
@ -197,12 +187,9 @@ bool ThreadWorker::Stop(bool flush_cancel)
{
Unpause();
} else {
m_QueueLock->Lock();
if (m_Waiting)
{
m_AddSignal->Signal();
}
m_QueueLock->Unlock();
m_AddSignal->Signal();
Pause();
Unpause();
}
me->WaitForThread();

View File

@ -97,7 +97,7 @@ IThreadHandle *WinThreader::MakeThread(IThread *pThread, const ThreadParams *par
IEventSignal *WinThreader::MakeEventSignal()
{
HANDLE event = CreateEventA(NULL, FALSE, FALSE, NULL);
HANDLE event = CreateEventA(NULL, TRUE, TRUE, NULL);
if (!event)
return NULL;
@ -275,6 +275,7 @@ WinThreader::WinEvent::~WinEvent()
void WinThreader::WinEvent::Wait()
{
WaitForSingleObject(m_event, INFINITE);
ResetEvent(m_event);
}
void WinThreader::WinEvent::Signal()

View File

@ -129,7 +129,6 @@ void MysqlThread::SetForward(int forward)
void MysqlThread::SetInfo(const char *db)
{
m_db.assign(db);
m_qrInfo.queue_time = gpGlobals->time;
}
void MysqlThread::SetQuery(const char *query)
@ -147,12 +146,8 @@ void MysqlThread::RunThread(IThreadHandle *pHandle)
info.host = "";
info.port = 0;
float save_time = m_qrInfo.queue_time;
memset(&m_qrInfo, 0, sizeof(m_qrInfo));
m_qrInfo.queue_time = save_time;
IDatabase *pDatabase = g_Sqlite.Connect(&info, &m_qrInfo.amxinfo.info.errorcode, m_qrInfo.amxinfo.error, 254);
IQuery *pQuery = NULL;
if (!pDatabase)
@ -173,17 +168,15 @@ void MysqlThread::RunThread(IThreadHandle *pHandle)
if (m_qrInfo.query_success && m_qrInfo.amxinfo.info.rs)
{
m_atomicResult.CopyFrom(m_qrInfo.amxinfo.info.rs);
m_qrInfo.amxinfo.pQuery = NULL;
m_qrInfo.amxinfo.info.rs = &m_atomicResult;
}
if (pQuery)
{
m_qrInfo.amxinfo.pQuery = pQuery;
} else {
m_qrInfo.amxinfo.opt_ptr = new char[m_query.size() + 1];
strcpy(m_qrInfo.amxinfo.opt_ptr, m_query.c_str());
pQuery->FreeHandle();
pQuery = NULL;
}
if (pDatabase)
{
pDatabase->FreeHandle();
@ -233,37 +226,26 @@ void MysqlThread::Execute()
} else if (!m_qrInfo.query_success) {
state = -1;
}
float diff = gpGlobals->time - m_qrInfo.queue_time;
cell c_diff = amx_ftoc(diff);
unsigned int hndl = MakeHandle(&m_qrInfo.amxinfo, Handle_Query, NullFunc);
if (state != 0)
{
MF_ExecuteForward(m_fwd,
(cell)state,
(cell)hndl,
(cell)0,
m_qrInfo.amxinfo.error,
m_qrInfo.amxinfo.info.errorcode,
data_addr,
m_datalen,
c_diff);
m_datalen);
} else {
unsigned int hndl = MakeHandle(&m_qrInfo.amxinfo, Handle_Query, NullFunc);
MF_ExecuteForward(m_fwd,
(cell)0,
(cell)hndl,
"",
(cell)0,
data_addr,
m_datalen,
c_diff);
}
m_datalen);
FreeHandle(hndl);
if (m_qrInfo.amxinfo.pQuery)
{
m_qrInfo.amxinfo.pQuery->FreeHandle();
m_qrInfo.amxinfo.pQuery = NULL;
}
delete [] m_qrInfo.amxinfo.opt_ptr;
m_qrInfo.amxinfo.opt_ptr = NULL;
}
/*****************

View File

@ -12,7 +12,6 @@ struct QueuedResultInfo
AmxQueryInfo amxinfo;
bool connect_success;
bool query_success;
float queue_time;
};
class AtomicResult :

View File

@ -32,8 +32,8 @@
-M
-$M16384,1048576
-K$00400000
-LE"c:\program files (x86)\borland\delphi7\Projects\Bpl"
-LN"c:\program files (x86)\borland\delphi7\Projects\Bpl"
-LE"c:\programme\borland\delphi7\Projects\Bpl"
-LN"c:\programme\borland\delphi7\Projects\Bpl"
-DmadExcept
-w-UNSAFE_TYPE
-w-UNSAFE_CODE

View File

@ -115,7 +115,7 @@ AutoIncBuild=1
MajorVer=1
MinorVer=4
Release=3
Build=3
Build=0
Debug=0
PreRelease=0
Special=0
@ -126,11 +126,11 @@ CodePage=1252
[Version Info Keys]
CompanyName=AMX Mod X Dev Team
FileDescription=
FileVersion=1.4.3.3
FileVersion=1.4.3.0
InternalName=
LegalCopyright=AMX Mod X Dev Team
LegalTrademarks=
OriginalFilename=
ProductName=AMXX-Studio
ProductVersion=1.4.3 final
ProductVersion=1.4.3.0
Comments=

Binary file not shown.

Binary file not shown.

View File

@ -800,8 +800,6 @@ begin
eCurrLine := Between(eCurrLine, '(', ')', True);
HideBracesAndStrings(eCurrLine, True);
eStr2.Text := StringReplace(eCurrLine, ',', #13, [rfReplaceAll]);
if (Trim(eStr2.Text) = ')') then
eStr2.Clear;
CreateCategory('Function Call');
AddField('Function', 'Function Call', eVarName);

View File

@ -176,7 +176,7 @@ begin
eTempIndent := eTempIndent +1;
end;
end
else if (eStr[i] = 'else') or ((Pos('else if', eStr[i]) = 1) or (Pos('case', eStr[i]) = 1) or (Pos('switch', eStr[i]) = 1)) and (Pos('{', eStr[i]) = 0) then
else if (eStr[i] = 'else') or (Pos('else if', eStr[i]) = 1) and (Pos('{', eStr[i]) = 0) then
eTempIndent := eTempIndent +1
else if (Pos('{', eStr[i]) = 0) and (Length(eStr[i]) > 6) then begin
if (IsAtStart('stock', eStr[i], False)) or (IsAtStart('while', eStr[i], True)) then begin

View File

@ -26,8 +26,6 @@ type TPAWNCompileThread = class(TThread)
function DoCompilePAWN(eFlags: Integer): Boolean;
var Compiling: Boolean;
implementation
uses UnitfrmSettings, UnitLanguages, UnitMainTools, UnitfrmMain,
@ -37,14 +35,12 @@ function DoCompilePAWN(eFlags: Integer): Boolean;
var eFile: string;
begin
Result := False;
if (Compiling) then exit;
if not FileExists(frmSettings.txtPAWNCompilerPath.Text) then begin
MessageBox(frmMain.Handle, PChar(lPAWNCompilerNotFound), PChar(Application.Title), MB_ICONERROR);
exit;
end;
Screen.Cursor := crHourGlass;
Compiling := True;
if (ActiveDoc.Untitled) then
eFile := ExtractFilePath(ParamStr(0)) + 'Untitled.sma'
else
@ -230,7 +226,6 @@ begin
CloseHandle(PipeErrorsWrite);
end;
Screen.Cursor := crDefault;
Compiling := False;
Output.Free;
end;

View File

@ -80,7 +80,7 @@ function IEInstalled: Boolean;
function GetAMXXDir(ListenServer: Boolean): String;
function CloseDocument(eDocument: TDocument; SaveActiveDoc, RemoveTab: Boolean): Boolean;
function AddExtension(eFilename, eHighlighter: String; Document: TDocument): String;
function AddExtension(eFilename, eHighlighter: String): String;
function ShowColorDialog(var Color: TColor; ePaintImage: TImage): Boolean;
@ -468,15 +468,11 @@ begin
Collection.Close(eDocument.Index, RemoveTab);
end;
function AddExtension(eFilename, eHighlighter: String; Document: TDocument): String;
function AddExtension(eFilename, eHighlighter: String): String;
begin
if ExtractFileExt(eFilename) = '' then begin
if eHighlighter = 'Pawn' then begin
if (ExtractFileExt(Document.Title) = '.inc') then
Result := eFilename + '.inc'
else
Result := eFilename + '.sma';
end;
if eHighlighter = 'Pawn' then
Result := eFilename + '.sma';
if eHighlighter = 'C++' then
Result := eFilename + '.cpp';
if eHighlighter = 'HTML' then
@ -755,8 +751,6 @@ begin
else
eCPUSpeed := 1; // otherwise the program would hang up
frmSettings.txtLangDir.Text := IncludeTrailingPathDelimiter(eConfig.ReadString('Misc', 'LangDir', ''));
if (frmSettings.txtLangDir.Text = '\') then
frmSettings.txtLangDir.Text := '';
frmSettings.chkShowStatusbar.Checked := eConfig.ReadBool('Misc', 'ShowStatusbar', True);
frmMain.sbStatus.Visible := frmSettings.chkShowStatusbar.Checked;
end;

View File

@ -63,7 +63,6 @@ var i, k: integer;
eTempResult: TPawnParseResult;
eProcedureAdded: Boolean;
eCActive: Boolean;
eTempBool: Boolean;
begin
Result := TPawnParseResult.Create;
if not IsRecursive then
@ -102,39 +101,30 @@ begin
end;
{ Constants and Variables }
if (IsAtStart('new', eString, False)) or (IsAtStart('const', eString, False)) or (IsAtStart('stock', eString, False)) then begin // const or variable
if (IsAtStart('new', eString, False)) or (IsAtStart('stock', eString, False)) then begin // const or variable
if (eBracesOpen = 0) and (not IsRecursive) and (Pos('(', eString) = Pos(')', eString)) then begin
Delete(eString, 1, Pos(#32, eString));
eString := Trim(eString);
// we don't need braces so delete them...
while (CountChars(eString, '{') <> 0) and (CountChars(eString, '}') <> 0) and (Pos('{', eString) < Pos('}', eString)) do
eString := StringReplace(eString, '{' + Between(eString, '{', '}') + '}', '', [rfReplaceAll]);
while (CountChars(eString, '[') <> 0) and (CountChars(eString, ']') <> 0) and (Pos('[', eString) < Pos(']', eString)) do
eString := StringReplace(eString, '[' + Between(eString, '[', ']') + ']', '', [rfReplaceAll]);
// done? okay, split all items if there are more than one; and if not, it's okay...
eStr.Text := StringReplace(Copy(eString, Pos(#32, eString)+1, Length(eString)), ',', #13, [rfReplaceAll]);
eStr.Text := StringReplace(eString, ',', #13, [rfReplaceAll]);
for k := 0 to eStr.Count - 1 do begin
if (Trim(eStr[k]) <> '') and (eStr[k] <> '}') then begin
eTemp := Trim(RemoveSemicolon(eStr[k]));
if (IsAtStart('const', eTemp, False)) then begin
Delete(eTemp, 1, 5);
eTemp := Trim(eTemp);
eTempBool := True;
end
else
eTempBool := (IsAtStart('const', eString, False));
if (Pos(':', eTemp) <> 0) then
if Pos(':', eTemp) <> 0 then
eTemp := Copy(eTemp, Pos(':', eTemp) + 1, Length(eTemp));
if (Pos('=', eTemp) <> 0) then begin // constant
if Pos('=', eTemp) <> 0 then begin // constant
Result.Constants.AddObject(Copy(eTemp, 1, Pos('=', eTemp) - 1), TObject(i));
Result.AutoComplete.Add(Copy(eTemp, 1, Pos('=', eTemp) - 1));
end
else begin // variable
if (eTempBool) then
Result.Constants.AddObject(eTemp, TObject(i))
else
Result.Variables.AddObject(eTemp, TObject(i));
Result.Variables.AddObject(eTemp, TObject(i));
Result.AutoComplete.Add(eTemp);
end;
end;
@ -239,7 +229,7 @@ begin
eStartLine := eStartLine - 1;
eTemp := Trim(RemoveSemicolon(Trim(eCode[eStartLine])));
// Analyze type
// Analyze type
k := 0;
if IsAtStart('public', eTemp) then
k := 1
@ -253,7 +243,7 @@ begin
k := 5;
// Remove type
// Remove type
if Pos('@', eTemp) = 1 then begin
eTemp := Copy(eTemp, 2, Length(eTemp));
k := 1;
@ -268,7 +258,7 @@ begin
if eTemp[Length(eTemp)] = '{' then
eTemp := Trim(Copy(eTemp, 1, Length(eTemp) - 1));
// Remove return-type
// Remove return-type
if (Pos(':', eTemp) <> 0) and (Pos(':', eTemp) < Pos('(', eTemp)) then
Delete(eTemp, 1, Pos(':', eTemp));
@ -285,7 +275,7 @@ begin
4: Result.CallTips.Add(eTemp + '-> ' + FileName + ', forward');
end;
end;
// Copy function-name
// Copy function-name
if Pos('(', eTemp) <> 0 then
eTemp := Copy(eTemp, 1, Pos('(', eTemp) - 1);
eTemp := Trim(eTemp);

Binary file not shown.

View File

@ -9,14 +9,13 @@ uses
type
TfrmGoToLine = class(TForm)
pnlBG: TSpTBXPanel;
lblCaption: TLabel;
cmdCancel: TSpTBXButton;
cmdOK: TSpTBXButton;
txtGoToLine: TSpTBXEdit;
cmdOK: TSpTBXButton;
cmdCancel: TSpTBXButton;
procedure txtGoToLineChange(Sender: TObject);
procedure txtGoToLineKeyPress(Sender: TObject; var Key: Char);
procedure FormShow(Sender: TObject);
procedure txtGoToLineChange(Sender: TObject);
end;
var
@ -28,6 +27,14 @@ uses UnitMainTools;
{$R *.DFM}
procedure TfrmGoToLine.txtGoToLineChange(Sender: TObject);
begin
if not IsNumeric(txtGoToLine.Text) then
txtGoToLine.Text := '1'
else if txtGoToLine.Text = '0' then
txtGoToLine.Text := '1';
end;
procedure TfrmGoToLine.txtGoToLineKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then begin
@ -39,12 +46,6 @@ end;
procedure TfrmGoToLine.FormShow(Sender: TObject);
begin
txtGoToLine.SetFocus;
txtGoToLine.SelectAll;
end;
procedure TfrmGoToLine.txtGoToLineChange(Sender: TObject);
begin
cmdOK.Enabled := StrToIntDef(txtGoToLine.Text, -1) > 0;
end;
end.

View File

@ -4,7 +4,7 @@ interface
uses
SysUtils, Windows, Messages, Classes, Graphics, Controls,
StdCtrls, ExtCtrls, Forms, OleCtrls, SHDocVw, ActiveX;
StdCtrls, ExtCtrls, Forms, OleCtrls, SHDocVw_TLB, ActiveX;
type
TfrmHTMLPreview = class(TForm)

View File

@ -7375,8 +7375,8 @@ object frmHudMsgGenerator: TfrmHudMsgGenerator
ColorHighLight = 8623776
ColorShadow = 8623776
Caption = 'Generate'
TabOrder = 4
ModalResult = 1
TabOrder = 4
end
object cmdCancel: TFlatButton
Left = 334
@ -7388,8 +7388,8 @@ object frmHudMsgGenerator: TfrmHudMsgGenerator
ColorHighLight = 8623776
ColorShadow = 8623776
Caption = 'Cancel'
TabOrder = 5
ModalResult = 2
TabOrder = 5
end
object pnlText: TPanel
Left = 6
@ -7430,7 +7430,7 @@ object frmHudMsgGenerator: TfrmHudMsgGenerator
ColorFlat = clWhite
TabOrder = 1
Text = '12,0'
OnExit = txtTimeToShowExit
OnChange = txtTimeToShowChange
OnKeyPress = txtTimeToShowKeyPress
end
end

View File

@ -47,10 +47,10 @@ type
procedure cmdSelectColorClick(Sender: TObject);
procedure txtTextChange(Sender: TObject);
procedure txtTimeToShowKeyPress(Sender: TObject; var Key: Char);
procedure txtTimeToShowChange(Sender: TObject);
procedure chkXCenterClick(Sender: TObject);
procedure chkYCenterClick(Sender: TObject);
procedure txtPosExit(Sender: TObject);
procedure txtTimeToShowExit(Sender: TObject);
private
eDown: Boolean;
eStartPos: TPoint;
@ -89,7 +89,7 @@ begin
lblHudMsg.Left := 0
else if lblHudMsg.Left > pnlHudmessage.Width then
lblHudMsg.Left := pnlHudmessage.Width;
txtXPos.Text := FloatToStrF(lblHudMsg.Left / pnlHudmessage.Width, ffFixed, -2, 2);
txtXPos.Text := FloatToStr(RoundTo(lblHudMsg.Left / pnlHudmessage.Width, -2));
end;
{ Y Pos }
@ -99,7 +99,7 @@ begin
lblHudMsg.Top := 0
else if lblHudMsg.Top > pnlHudmessage.Height then
lblHudMsg.Top := pnlHudmessage.Height;
txtYPos.Text := FloatToStrF(lblHudMsg.Top / pnlHudmessage.Height, ffFixed, -2, 2);
txtYPos.Text := FloatToStr(RoundTo(lblHudMsg.Top / pnlHudmessage.Height, -2));
end;
end;
end;
@ -169,7 +169,7 @@ procedure TfrmHudMsgGenerator.txtTextKeyPress(Sender: TObject;
var Key: Char);
begin
if Key = #13 then begin
txtText.SelText := '^n';
txtText.SelText := '\n';
Key := #0;
end;
end;
@ -195,7 +195,7 @@ begin
if txtText.Text = '' then
lblHudMsg.Caption := 'Custom Hudmessage'
else
lblHudMsg.Caption := StringReplace(txtText.Text, '^n', #13, [rfReplaceAll]);
lblHudMsg.Caption := StringReplace(txtText.Text, '\n', #13, [rfReplaceAll]);
if chkXCenter.Checked then
CenterX;
@ -210,6 +210,20 @@ begin
Key := ',';
end;
procedure TfrmHudMsgGenerator.txtTimeToShowChange(Sender: TObject);
var eVal: Real;
begin
try
eVal := Round(StrToFloat(txtTimeToShow.Text));
if eVal < 0 then begin
eVal := 0.0;
txtTimeToShow.Text := FloatToStr(eVal);
end;
except
txtTimeToShow.Text := '12,0';
end;
end;
procedure TfrmHudMsgGenerator.chkXCenterClick(Sender: TObject);
var eChar: Char;
begin
@ -262,16 +276,4 @@ begin
txtYPos.OnKeyPress(txtXPos, eChar);
end;
procedure TfrmHudMsgGenerator.txtTimeToShowExit(Sender: TObject);
var eVal: Real;
begin
try
eVal := Round(StrToFloat(txtTimeToShow.Text));
if eVal < 0 then
txtTimeToShow.Text := '0,0';
except
txtTimeToShow.Text := '12,0';
end;
end;
end.

Binary file not shown.

View File

@ -1,7 +1,7 @@
object frmMain: TfrmMain
Left = 184
Top = 77
Width = 893
Left = 189
Top = 114
Width = 888
Height = 648
Caption = 'AMXX-Studio'
Color = clBtnFace
@ -45,13 +45,13 @@ object frmMain: TfrmMain
PixelsPerInch = 96
TextHeight = 13
object splRight: TSplitter
Left = 674
Left = 669
Top = 95
Height = 501
Align = alRight
end
object spcRight1: TImage
Left = 882
Left = 877
Top = 95
Width = 3
Height = 501
@ -67,7 +67,7 @@ object frmMain: TfrmMain
object tbxTopDock: TSpTBXDock
Left = 0
Top = 0
Width = 885
Width = 880
Height = 72
object tbxMenu: TSpTBXToolbar
Left = 0
@ -680,11 +680,11 @@ object frmMain: TfrmMain
object sbStatus: TSpTBXStatusBar
Left = 0
Top = 596
Width = 885
Width = 880
Height = 25
object mnuFilename: TSpTBXRightAlignSpacerItem
Caption = 'Untitled.sma'
CustomWidth = 547
CustomWidth = 542
end
object sepStatus0: TSpTBXSeparatorItem
end
@ -728,20 +728,19 @@ object frmMain: TfrmMain
object tbDocs: TJvTabBar
Left = 0
Top = 72
Width = 885
Width = 880
RightClickSelect = False
Painter = mtpDocuments
Tabs = <
item
Caption = '< 1 Untitled.sma >'
Selected = True
end>
Painter = mtpDocuments
OnTabClosing = tbDocsTabClosing
OnTabSelected = tbDocsTabSelected
OnMouseDown = tbDocsMouseDown
end
object tcTools: TSpTBXTabControl
Left = 677
Left = 672
Top = 95
Width = 205
Height = 501
@ -938,7 +937,6 @@ object frmMain: TfrmMain
Top = 26
Width = 191
Height = 199
Style = isItemPainter
Align = alClient
Divider = 110
ItemHeight = 16
@ -952,7 +950,7 @@ object frmMain: TfrmMain
object pnlParent: TPanel
Left = 3
Top = 95
Width = 671
Width = 666
Height = 501
Align = alClient
BevelOuter = bvNone
@ -960,7 +958,7 @@ object frmMain: TfrmMain
object splOutput: TSplitter
Left = 0
Top = 416
Width = 671
Width = 666
Height = 3
Cursor = crVSplit
Align = alBottom
@ -969,7 +967,7 @@ object frmMain: TfrmMain
object sciEditor: TScintilla
Left = 0
Top = 0
Width = 671
Width = 666
Height = 416
Color = clWhite
Font.Charset = DEFAULT_CHARSET
@ -4495,7 +4493,7 @@ object frmMain: TfrmMain
object lstOutput: TListBox
Left = 0
Top = 419
Width = 671
Width = 666
Height = 82
Align = alBottom
ItemHeight = 13
@ -4546,6 +4544,7 @@ object frmMain: TfrmMain
TabOrder = 1
OnClick = cmdCancelClick
CaptionGlowColor = clBtnFace
DropDownArrow = True
LinkFont.Charset = DEFAULT_CHARSET
LinkFont.Color = clBlue
LinkFont.Height = -11
@ -6570,7 +6569,6 @@ object frmMain: TfrmMain
end
object IdFTP: TIdFTP
MaxLineAction = maSplit
ReadTimeout = 0
ProxySettings.ProxyType = fpcmNone
ProxySettings.Port = 0
Left = 722
@ -7828,32 +7826,7 @@ object frmMain: TfrmMain
end
end
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
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
Top = 36
end

View File

@ -21,7 +21,7 @@ uses
JvInspector, JvExControls, JvPluginManager, JvgLanguageLoader,
JvWndProcHook, CommCtrl, JvPageList, JvPageListTreeView,
SciSearchReplaceBase, SpTBXControls, JvTabBar, TB2ExtItems, SpTBXEditors,
TBXLists, SpTBXLists, JvComponentBase;
TBXLists, SpTBXLists;
type
TfrmMain = class(TForm)
@ -894,7 +894,7 @@ end;
procedure TfrmMain.mnuSaveAsClick(Sender: TObject);
begin
if sdSave.Execute then begin
ActiveDoc.FileName := AddExtension(sdSave.FileName, ActiveDoc.Highlighter, ActiveDoc);
ActiveDoc.FileName := AddExtension(sdSave.FileName, ActiveDoc.Highlighter);
ActiveDoc.Save;
tbDocs.Tabs[ActiveDoc.Index].Caption := ActiveDoc.Title;
end;
@ -1071,30 +1071,9 @@ begin
end;
procedure TfrmMain.OnCodeSnippetClick(Sender: TObject);
var Snippet, Indentation: String;
Line: Integer;
begin
if Plugin_CodeSnippetClick(TSpTBXItem(Sender).Caption, GetCat, GetSnippet(GetCat, (Sender as TSpTBXItem).Caption)) then begin
Snippet := GetSnippet(GetCat, (Sender as TSpTBXItem).Caption);
if (Pos('!APPEND!' + #13, Snippet) = 1) then begin
Snippet := Copy(Snippet, Pos(#10, Snippet)+1, Length(Snippet));
Line := sciEditor.Lines.Add(Snippet);
end
else if (Pos('!INSERT!' + #13, Snippet) = 1) then begin
Indentation := sciEditor.Lines[sciEditor.GetCurrentLineNumber];
if (Trim(Indentation) <> '') then
Indentation := Copy(Indentation, 1, Pos(Copy(TrimLeft(Indentation), 1, 1), Indentation)-1);
Snippet := StringReplace(Snippet, #10, #10 + Indentation, [rfReplaceAll]);
Line := sciEditor.GetCurrentLineNumber;
sciEditor.Lines.Insert(Line, Copy(Snippet, Pos(#10, Snippet)+1, Length(Snippet)));
end
else begin
sciEditor.SelText := Snippet;
Line := sciEditor.GetCurrentLineNumber;
end;
sciEditor.GoToLine(Line);
end;
if Plugin_CodeSnippetClick(TSpTBXItem(Sender).Caption, GetCat, GetSnippet(GetCat, (Sender as TSpTBXItem).Caption)) then
sciEditor.SelText := GetSnippet(GetCat, (Sender as TSpTBXItem).Caption);
end;
procedure TfrmMain.mnuCopyMessageClick(Sender: TObject);
@ -1296,7 +1275,7 @@ begin
b := Integer(frmAllFilesForm.lstFiles.Items.Objects[a]);
if TDocument(Collection.Items[b]).Untitled then begin
if sdSave.Execute then begin
TDocument(Collection.Items[b]).FileName := AddExtension(sdSave.FileName, TDocument(Collection.Items[b]).Highlighter, TDocument(Collection.Items[b]));
TDocument(Collection.Items[b]).FileName := AddExtension(sdSave.FileName, TDocument(Collection.Items[b]).Highlighter);
TDocument(Collection.Items[b]).Save;
TJvTabBarItem(tbDocs.Tabs[b]).Caption := TDocument(Collection.Items[b]).Title;
end
@ -1547,7 +1526,7 @@ begin
else begin
frmMain.sdSave.FilterIndex := 1;
if frmMain.sdSave.Execute then begin
eItem.FileName := AddExtension(frmMain.sdSave.FileName, eItem.Highlighter, eItem);
eItem.FileName := AddExtension(frmMain.sdSave.FileName, eItem.Highlighter);
eItem.Save;
end
else begin
@ -1571,7 +1550,7 @@ begin
else begin
frmMain.sdSave.FilterIndex := 2;
if frmMain.sdSave.Execute then begin
eItem.FileName := AddExtension(frmMain.sdSave.FileName, eItem.Highlighter, eItem);
eItem.FileName := AddExtension(frmMain.sdSave.FileName, eItem.Highlighter);
eItem.Save;
end
else begin
@ -1595,7 +1574,7 @@ begin
else begin
frmMain.sdSave.FilterIndex := 0;
if frmMain.sdSave.Execute then begin
eItem.FileName := AddExtension(frmMain.sdSave.FileName, eItem.Highlighter, eItem);
eItem.FileName := AddExtension(frmMain.sdSave.FileName, eItem.Highlighter);
eItem.Save;
end
else begin
@ -1706,7 +1685,6 @@ procedure TfrmMain.mnuHudmessageClick(Sender: TObject);
function Dot(eIn: string): string;
begin
Result := StringReplace(eIn, ',', '.', [rfReplaceAll]);
Result := StringReplace(Result, '.00', '.0', [rfReplaceAll]);
end;
var eStr: string;
@ -2232,7 +2210,7 @@ begin
sciEditor.Lines.Add(#9 + 'if (socket_change(sck' + frmConnGen.txtName.Text + ', 100)) {');
sciEditor.Lines.Add(#9 + #9 + 'new buf[512], lines[30][100], count = 0');
sciEditor.Lines.Add(#9 + #9 + 'socket_recv(sck' + frmConnGen.txtName.Text + ', buf, 511)');
sciEditor.Lines.Add(#9 + #9 + 'count = ExplodeString(lines, 29, 99, buf, 13)');
sciEditor.Lines.Add(#9 + #9 + 'count = ExplodeString(lines, 50, 119, buf, 13)');
sciEditor.Lines.Add(#9 + #9 + 'for(new i=0;i<count;i++) {');
sciEditor.Lines.Add(#9 + #9 + #9 + '/* Process items here */');
sciEditor.Lines.Add(#9 + #9 + '}');

View File

@ -64,7 +64,7 @@ object frmSettings: TfrmSettings
Top = 0
Width = 351
Height = 260
ActivePage = jspCodeSnippets
ActivePage = jspCTSettings
PropagateEnable = False
Align = alClient
OnChange = jplSettingsChange
@ -760,9 +760,6 @@ object frmSettings: TfrmSettings
ScrollBars = ssBoth
TabOrder = 1
WantTabs = True
OnChange = txtCodeSnippetChange
OnEnter = txtCodeSnippetEnter
OnExit = txtCodeSnippetExit
OnKeyUp = txtCodeSnippetKeyUp
end
object cmdCSAdd: TFlatButton

View File

@ -277,9 +277,6 @@ type
procedure lvParamsDblClick(Sender: TObject);
procedure cmdAddFunctionClick(Sender: TObject);
procedure lstFunctionsClick(Sender: TObject);
procedure txtCodeSnippetEnter(Sender: TObject);
procedure txtCodeSnippetExit(Sender: TObject);
procedure txtCodeSnippetChange(Sender: TObject);
public
Foreground, Background: TColor;
CaretFore, CaretBack: TColor;
@ -342,14 +339,9 @@ begin
eReg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion', False);
{ AMXX }
AMXXDir := eReg.ReadString('ProgramFilesDir') + '\AMX Mod X\';
if DirectoryExists(AMXXDir) then
AMXXDir := IncludeTrailingPathDelimiter(AMXXDir)
else
if not DirectoryExists(AMXXDir) then
AMXXDir := '';
eReg.CloseKey;
{ Language Files }
if (DirectoryExists(AMXXDir + 'files\base\data\lang')) then
txtLangDir.Text := AMXXDir + 'files\base\data\lang';
{ Steam }
if eReg.KeyExists('SOFTWARE\Valve\Steam') then begin
eReg.OpenKey('SOFTWARE\Valve\Steam', False);
@ -429,7 +421,7 @@ begin
eConfig.WriteString('Misc', 'DefaultPluginAuthor', GetUser);
eConfig.WriteInteger('Misc', 'SaveNotesTo', 0);
eConfig.WriteInteger('Misc', 'CPUSpeed', 5);
eConfig.WriteString('Misc', 'LangDir', txtLangDir.Text);
eConfig.WriteString('Misc', 'LangDir', '');
eConfig.WriteInteger('Misc', 'ShowStatusbar', 1);
eConfig.WriteInteger('Misc', 'WindowState', 0);
end;
@ -442,8 +434,6 @@ begin
2: frmMain.WindowState := wsMinimized;
end;
txtCodeSnippetExit(Sender);
PaintForeground(clBlack);
PaintBackground(clBlack);
PaintCaretFore(clBlack);
@ -788,7 +778,6 @@ begin
lstCodeSnippets.ItemIndex := lstCodeSnippets.Items.Add(eStr);
AddSnippet(ftcCodeSnippets.Tabs[ftcCodeSnippets.ActiveTab], eStr, '');
txtCodeSnippet.Enabled := True;
lstCodeSnippets.SetFocus;
lstCodeSnippetsClick(Sender);
end
else
@ -816,9 +805,7 @@ procedure TfrmSettings.lstCodeSnippetsClick(Sender: TObject);
begin
cmdCSRemove.Enabled := lstCodeSnippets.ItemIndex <> -1;
if cmdCSRemove.Enabled then
txtCodeSnippet.Lines.Text := GetSnippet(ftcCodeSnippets.Tabs[ftcCodeSnippets.ActiveTab], lstCodeSnippets.Items[lstCodeSnippets.ItemIndex])
else
txtCodeSnippetExit(Sender);
txtCodeSnippet.Lines.Text := GetSnippet(ftcCodeSnippets.Tabs[ftcCodeSnippets.ActiveTab], lstCodeSnippets.Items[lstCodeSnippets.ItemIndex]);
end;
procedure TfrmSettings.ftcCodeSnippetsTabChanged(Sender: TObject);
@ -828,8 +815,8 @@ begin
lstCodeSnippets.ItemIndex := 0
else
txtCodeSnippet.Clear;
txtCodeSnippet.Enabled := lstCodeSnippets.Items.Count > 0;
lstCodeSnippetsClick(Sender);
txtCodeSnippet.Enabled := lstCodeSnippets.Items.Count > 0;
cmdCSRemove.Enabled := lstCodeSnippets.ItemIndex <> -1;
end;
@ -1263,28 +1250,4 @@ begin
end;
end;
procedure TfrmSettings.txtCodeSnippetEnter(Sender: TObject);
begin
if (txtCodeSnippet.Font.Color = $008396A0) and ((ActiveControl = txtCodeSnippet) or (txtCodeSnippet.Enabled)) then begin
txtCodeSnippet.Font.Color := clWindowText;
txtCodeSnippet.Text := '';
end;
end;
procedure TfrmSettings.txtCodeSnippetExit(Sender: TObject);
begin
if (txtCodeSnippet.Text = '') then begin
txtCodeSnippet.Lines.Text := 'Use "!APPEND!" to append or'#13'"!INSERT!" to insert the code'#13'snippet into a new line on click...';
txtCodeSnippet.Font.Color := $008396A0;
end;
end;
procedure TfrmSettings.txtCodeSnippetChange(Sender: TObject);
begin
if (txtCodeSnippet.Font.Color = $008396A0) then
txtCodeSnippet.Font.Color := clWindowText
else if (txtCodeSnippet.Text = '') and (ActiveControl <> txtCodeSnippet) then
txtCodeSnippetExit(Sender);
end;
end.

View File

@ -3,4 +3,4 @@ source = /home/users/dvander/amxx
makeopts =
output = /home/users/dvander/done
devenv = /usr/bin/make
release = amxmodx-1.76c
release = amxmodx-1.76

View File

@ -3,4 +3,4 @@ source = R:\amxmodx
makeopts =
output = c:\real\done
devenv = C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE\devenv.com
release = amxmodx-1.76d
release = amxmodx-1.76

View File

@ -2,7 +2,7 @@
; Licensed under the GNU General Public License
; Originally written by -=HaXoMaTiC=-
!define PRODUCT_NAME "AMX Mod X Installer"
!define PRODUCT_VERSION "1.76d"
!define PRODUCT_VERSION "1.76"
!define PRODUCT_PUBLISHER "AMX Mod X Dev Team"
!define PRODUCT_WEB_SITE "http://www.amxmodx.org/"
!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\Installer.exe"
@ -103,337 +103,350 @@ Section "MainSection" SEC01
File "installer\files\amxxstudio\plugins\Hello_World Delphi\HelloWorld.res"
File "installer\files\amxxstudio\plugins\Hello_World Delphi\studioapi.pas"
SetOutPath "$INSTDIR\files\base\configs"
File "installer\files\base\addons\amxmodx\configs\amxx.cfg"
File "installer\files\base\addons\amxmodx\configs\clcmds.ini"
File "installer\files\base\addons\amxmodx\configs\cmds.ini"
File "installer\files\base\addons\amxmodx\configs\configs.ini"
File "installer\files\base\addons\amxmodx\configs\conmotd.txt"
File "installer\files\base\addons\amxmodx\configs\core.ini"
File "installer\files\base\addons\amxmodx\configs\custommenuitems.cfg"
File "installer\files\base\addons\amxmodx\configs\cvars.ini"
File "installer\files\base\addons\amxmodx\configs\maps.ini"
File "installer\files\base\addons\amxmodx\configs\modules.ini"
File "installer\files\base\addons\amxmodx\configs\plugins.ini"
File "installer\files\base\addons\amxmodx\configs\speech.ini"
File "installer\files\base\addons\amxmodx\configs\sql.cfg"
File "installer\files\base\addons\amxmodx\configs\users.ini"
File "installer\files\base\configs\amxx.cfg"
File "installer\files\base\configs\clcmds.ini"
File "installer\files\base\configs\cmds.ini"
File "installer\files\base\configs\configs.ini"
File "installer\files\base\configs\conmotd.txt"
File "installer\files\base\configs\core.ini"
File "installer\files\base\configs\custommenuitems.cfg"
File "installer\files\base\configs\cvars.ini"
File "installer\files\base\configs\maps.ini"
File "installer\files\base\configs\modules.ini"
File "installer\files\base\configs\plugins.ini"
File "installer\files\base\configs\speech.ini"
File "installer\files\base\configs\sql.cfg"
File "installer\files\base\configs\users.ini"
SetOutPath "$INSTDIR\files\base\data"
File "installer\files\base\addons\amxmodx\data\GeoIP.dat"
File "installer\files\base\data\GeoIP.dat"
SetOutPath "$INSTDIR\files\base\data\lang"
File "installer\files\base\addons\amxmodx\data\lang\admin.txt"
File "installer\files\base\addons\amxmodx\data\lang\adminchat.txt"
File "installer\files\base\addons\amxmodx\data\lang\admincmd.txt"
File "installer\files\base\addons\amxmodx\data\lang\adminhelp.txt"
File "installer\files\base\addons\amxmodx\data\lang\adminslots.txt"
File "installer\files\base\addons\amxmodx\data\lang\adminvote.txt"
File "installer\files\base\addons\amxmodx\data\lang\antiflood.txt"
File "installer\files\base\addons\amxmodx\data\lang\cmdmenu.txt"
File "installer\files\base\addons\amxmodx\data\lang\common.txt"
File "installer\files\base\addons\amxmodx\data\lang\imessage.txt"
File "installer\files\base\addons\amxmodx\data\lang\languages.txt"
File "installer\files\base\addons\amxmodx\data\lang\mapchooser.txt"
File "installer\files\base\addons\amxmodx\data\lang\mapsmenu.txt"
File "installer\files\base\addons\amxmodx\data\lang\menufront.txt"
File "installer\files\base\addons\amxmodx\data\lang\miscstats.txt"
File "installer\files\base\addons\amxmodx\data\lang\multilingual.txt"
File "installer\files\base\addons\amxmodx\data\lang\nextmap.txt"
File "installer\files\base\addons\amxmodx\data\lang\pausecfg.txt"
File "installer\files\base\addons\amxmodx\data\lang\plmenu.txt"
File "installer\files\base\addons\amxmodx\data\lang\restmenu.txt"
File "installer\files\base\addons\amxmodx\data\lang\scrollmsg.txt"
File "installer\files\base\addons\amxmodx\data\lang\statscfg.txt"
File "installer\files\base\addons\amxmodx\data\lang\statsx.txt"
File "installer\files\base\addons\amxmodx\data\lang\stats_dod.txt"
File "installer\files\base\addons\amxmodx\data\lang\telemenu.txt"
File "installer\files\base\addons\amxmodx\data\lang\time.txt"
File "installer\files\base\addons\amxmodx\data\lang\timeleft.txt"
File "installer\files\base\data\lang\admin.txt"
File "installer\files\base\data\lang\adminchat.txt"
File "installer\files\base\data\lang\admincmd.txt"
File "installer\files\base\data\lang\adminhelp.txt"
File "installer\files\base\data\lang\adminslots.txt"
File "installer\files\base\data\lang\adminvote.txt"
File "installer\files\base\data\lang\antiflood.txt"
File "installer\files\base\data\lang\cmdmenu.txt"
File "installer\files\base\data\lang\common.txt"
File "installer\files\base\data\lang\imessage.txt"
File "installer\files\base\data\lang\languages.txt"
File "installer\files\base\data\lang\mapchooser.txt"
File "installer\files\base\data\lang\mapsmenu.txt"
File "installer\files\base\data\lang\menufront.txt"
File "installer\files\base\data\lang\miscstats.txt"
File "installer\files\base\data\lang\multilingual.txt"
File "installer\files\base\data\lang\nextmap.txt"
File "installer\files\base\data\lang\pausecfg.txt"
File "installer\files\base\data\lang\plmenu.txt"
File "installer\files\base\data\lang\restmenu.txt"
File "installer\files\base\data\lang\scrollmsg.txt"
File "installer\files\base\data\lang\statscfg.txt"
File "installer\files\base\data\lang\statsx.txt"
File "installer\files\base\data\lang\stats_dod.txt"
File "installer\files\base\data\lang\telemenu.txt"
File "installer\files\base\data\lang\time.txt"
File "installer\files\base\data\lang\timeleft.txt"
SetOutPath "$INSTDIR\files\base\dlls"
File "installer\files\base\addons\amxmodx\dlls\amxmodx_mm.dll"
File "installer\files\base\addons\amxmodx\dlls\amxmodx_mm_i386.so"
File "installer\files\base\addons\amxmodx\dlls\metamod.dll"
File "installer\files\base\addons\amxmodx\dlls\metamod_i386.so"
File "installer\files\base\dlls\amxmodx_mm.dll"
File "installer\files\base\dlls\amxmodx_mm_amd64.so"
File "installer\files\base\dlls\amxmodx_mm_i386.so"
File "installer\files\base\dlls\metamod.dll"
File "installer\files\base\dlls\metamod_amd64.so"
File "installer\files\base\dlls\metamod_i386.so"
SetOutPath "$INSTDIR\files\base\modules"
File "installer\files\base\addons\amxmodx\modules\nvault_amxx.dll"
File "installer\files\base\addons\amxmodx\modules\nvault_amxx_i386.so"
File "installer\files\base\addons\amxmodx\modules\engine_amxx.dll"
File "installer\files\base\addons\amxmodx\modules\engine_amxx_i386.so"
File "installer\files\base\addons\amxmodx\modules\fakemeta_amxx.dll"
File "installer\files\base\addons\amxmodx\modules\fakemeta_amxx_i386.so"
File "installer\files\base\addons\amxmodx\modules\fun_amxx.dll"
File "installer\files\base\addons\amxmodx\modules\fun_amxx_i386.so"
File "installer\files\base\addons\amxmodx\modules\geoip_amxx.dll"
File "installer\files\base\addons\amxmodx\modules\geoip_amxx_i386.so"
File "installer\files\base\addons\amxmodx\modules\sqlite_amxx.dll"
File "installer\files\base\addons\amxmodx\modules\sqlite_amxx_i386.so"
File "installer\files\base\addons\amxmodx\modules\mysql_amxx.dll"
File "installer\files\base\addons\amxmodx\modules\mysql_amxx_i386.so"
File "installer\files\base\addons\amxmodx\modules\regex_amxx.dll"
File "installer\files\base\addons\amxmodx\modules\regex_amxx_i386.so"
File "installer\files\base\addons\amxmodx\modules\sockets_amxx.dll"
File "installer\files\base\addons\amxmodx\modules\sockets_amxx_i386.so"
File "installer\files\base\modules\nvault_amxx.dll"
File "installer\files\base\modules\nvault_amxx_amd64.so"
File "installer\files\base\modules\nvault_amxx_i386.so"
File "installer\files\base\modules\engine_amxx.dll"
File "installer\files\base\modules\engine_amxx_amd64.so"
File "installer\files\base\modules\engine_amxx_i386.so"
File "installer\files\base\modules\fakemeta_amxx.dll"
File "installer\files\base\modules\fakemeta_amxx_amd64.so"
File "installer\files\base\modules\fakemeta_amxx_i386.so"
File "installer\files\base\modules\fun_amxx.dll"
File "installer\files\base\modules\fun_amxx_amd64.so"
File "installer\files\base\modules\fun_amxx_i386.so"
File "installer\files\base\modules\geoip_amxx.dll"
File "installer\files\base\modules\geoip_amxx_amd64.so"
File "installer\files\base\modules\geoip_amxx_i386.so"
File "installer\files\base\modules\sqlite_amxx.dll"
File "installer\files\base\modules\sqlite_amxx_amd64.so"
File "installer\files\base\modules\sqlite_amxx_i386.so"
File "installer\files\base\modules\mysql_amxx.dll"
File "installer\files\base\modules\mysql_amxx_amd64.so"
File "installer\files\base\modules\mysql_amxx_i386.so"
File "installer\files\base\modules\regex_amxx.dll"
File "installer\files\base\modules\regex_amxx_amd64.so"
File "installer\files\base\modules\regex_amxx_i386.so"
File "installer\files\base\modules\sockets_amxx.dll"
File "installer\files\base\modules\sockets_amxx_amd64.so"
File "installer\files\base\modules\sockets_amxx_i386.so"
SetOutPath "$INSTDIR\files\base\plugins"
File "installer\files\base\addons\amxmodx\plugins\admin.amxx"
File "installer\files\base\addons\amxmodx\plugins\adminchat.amxx"
File "installer\files\base\addons\amxmodx\plugins\admincmd.amxx"
File "installer\files\base\addons\amxmodx\plugins\adminhelp.amxx"
File "installer\files\base\addons\amxmodx\plugins\adminslots.amxx"
File "installer\files\base\addons\amxmodx\plugins\adminvote.amxx"
File "installer\files\base\addons\amxmodx\plugins\admin_sql.amxx"
File "installer\files\base\addons\amxmodx\plugins\amxmod_compat.amxx"
File "installer\files\base\addons\amxmodx\plugins\antiflood.amxx"
File "installer\files\base\addons\amxmodx\plugins\cmdmenu.amxx"
File "installer\files\base\addons\amxmodx\plugins\imessage.amxx"
File "installer\files\base\addons\amxmodx\plugins\mapchooser.amxx"
File "installer\files\base\addons\amxmodx\plugins\mapsmenu.amxx"
File "installer\files\base\addons\amxmodx\plugins\menufront.amxx"
File "installer\files\base\addons\amxmodx\plugins\multilingual.amxx"
File "installer\files\base\addons\amxmodx\plugins\nextmap.amxx"
File "installer\files\base\addons\amxmodx\plugins\pausecfg.amxx"
File "installer\files\base\addons\amxmodx\plugins\plmenu.amxx"
File "installer\files\base\addons\amxmodx\plugins\scrollmsg.amxx"
File "installer\files\base\addons\amxmodx\plugins\statscfg.amxx"
File "installer\files\base\addons\amxmodx\plugins\telemenu.amxx"
File "installer\files\base\addons\amxmodx\plugins\timeleft.amxx"
File "installer\files\base\plugins\admin.amxx"
File "installer\files\base\plugins\adminchat.amxx"
File "installer\files\base\plugins\admincmd.amxx"
File "installer\files\base\plugins\adminhelp.amxx"
File "installer\files\base\plugins\adminslots.amxx"
File "installer\files\base\plugins\adminvote.amxx"
File "installer\files\base\plugins\admin_sql.amxx"
File "installer\files\base\plugins\amxmod_compat.amxx"
File "installer\files\base\plugins\antiflood.amxx"
File "installer\files\base\plugins\cmdmenu.amxx"
File "installer\files\base\plugins\imessage.amxx"
File "installer\files\base\plugins\mapchooser.amxx"
File "installer\files\base\plugins\mapsmenu.amxx"
File "installer\files\base\plugins\menufront.amxx"
File "installer\files\base\plugins\multilingual.amxx"
File "installer\files\base\plugins\nextmap.amxx"
File "installer\files\base\plugins\pausecfg.amxx"
File "installer\files\base\plugins\plmenu.amxx"
File "installer\files\base\plugins\scrollmsg.amxx"
File "installer\files\base\plugins\statscfg.amxx"
File "installer\files\base\plugins\telemenu.amxx"
File "installer\files\base\plugins\timeleft.amxx"
SetOutPath "$INSTDIR\files\base\scripting"
File "installer\files\base\addons\amxmodx\scripting\admin.sma"
File "installer\files\base\addons\amxmodx\scripting\adminchat.sma"
File "installer\files\base\addons\amxmodx\scripting\admincmd.sma"
File "installer\files\base\addons\amxmodx\scripting\adminhelp.sma"
File "installer\files\base\addons\amxmodx\scripting\adminslots.sma"
File "installer\files\base\addons\amxmodx\scripting\adminvote.sma"
File "installer\files\base\addons\amxmodx\scripting\amxxpc"
File "installer\files\base\addons\amxmodx\scripting\amxxpc.exe"
File "installer\files\base\addons\amxmodx\scripting\amxxpc32.dll"
File "installer\files\base\addons\amxmodx\scripting\amxxpc32.so"
File "installer\files\base\addons\amxmodx\scripting\amxxpc64.dll"
File "installer\files\base\addons\amxmodx\scripting\amxxpc64.so"
File "installer\files\base\addons\amxmodx\scripting\antiflood.sma"
File "installer\files\base\addons\amxmodx\scripting\cmdmenu.sma"
File "installer\files\base\addons\amxmodx\scripting\compile.exe"
File "installer\files\base\addons\amxmodx\scripting\compile.sh"
File "installer\files\base\addons\amxmodx\scripting\dlsym"
File "installer\files\base\addons\amxmodx\scripting\dlsym64"
File "installer\files\base\addons\amxmodx\scripting\imessage.sma"
SetOutPath "$INSTDIR\files\base\addons\amxmodx\scripting\include"
File "installer\files\base\addons\amxmodx\scripting\include\amxconst.inc"
File "installer\files\base\addons\amxmodx\scripting\include\amxmisc.inc"
File "installer\files\base\addons\amxmodx\scripting\include\amxmodx.inc"
File "installer\files\base\addons\amxmodx\scripting\include\core.inc"
File "installer\files\base\addons\amxmodx\scripting\include\csstats.inc"
File "installer\files\base\addons\amxmodx\scripting\include\cstrike.inc"
File "installer\files\base\addons\amxmodx\scripting\include\csx.inc"
File "installer\files\base\addons\amxmodx\scripting\include\dbi.inc"
File "installer\files\base\addons\amxmodx\scripting\include\dodconst.inc"
File "installer\files\base\addons\amxmodx\scripting\include\dodfun.inc"
File "installer\files\base\addons\amxmodx\scripting\include\dodstats.inc"
File "installer\files\base\addons\amxmodx\scripting\include\dodx.inc"
File "installer\files\base\addons\amxmodx\scripting\include\engine.inc"
File "installer\files\base\addons\amxmodx\scripting\include\engine_const.inc"
File "installer\files\base\addons\amxmodx\scripting\include\engine_stocks.inc"
File "installer\files\base\addons\amxmodx\scripting\include\esf.inc"
File "installer\files\base\addons\amxmodx\scripting\include\esf_const.inc"
File "installer\files\base\addons\amxmodx\scripting\include\fakemeta.inc"
File "installer\files\base\addons\amxmodx\scripting\include\fakemeta_const.inc"
File "installer\files\base\addons\amxmodx\scripting\include\fakemeta_stocks.inc"
File "installer\files\base\addons\amxmodx\scripting\include\file.inc"
File "installer\files\base\addons\amxmodx\scripting\include\float.inc"
File "installer\files\base\addons\amxmodx\scripting\include\fun.inc"
File "installer\files\base\addons\amxmodx\scripting\include\geoip.inc"
File "installer\files\base\addons\amxmodx\scripting\include\hlsdk_const.inc"
File "installer\files\base\addons\amxmodx\scripting\include\lang.inc"
File "installer\files\base\addons\amxmodx\scripting\include\messages.inc"
File "installer\files\base\addons\amxmodx\scripting\include\message_const.inc"
File "installer\files\base\addons\amxmodx\scripting\include\message_stocks.inc"
File "installer\files\base\addons\amxmodx\scripting\include\ns.inc"
File "installer\files\base\addons\amxmodx\scripting\include\ns2amx.inc"
File "installer\files\base\addons\amxmodx\scripting\include\ns_const.inc"
File "installer\files\base\addons\amxmodx\scripting\include\regex.inc"
File "installer\files\base\addons\amxmodx\scripting\include\nvault.inc"
File "installer\files\base\addons\amxmodx\scripting\include\sockets.inc"
File "installer\files\base\addons\amxmodx\scripting\include\sorting.inc"
File "installer\files\base\addons\amxmodx\scripting\include\sqlx.inc"
File "installer\files\base\addons\amxmodx\scripting\include\string.inc"
File "installer\files\base\addons\amxmodx\scripting\include\tfcconst.inc"
File "installer\files\base\addons\amxmodx\scripting\include\tfcstats.inc"
File "installer\files\base\addons\amxmodx\scripting\include\tfcx.inc"
File "installer\files\base\addons\amxmodx\scripting\include\time.inc"
File "installer\files\base\addons\amxmodx\scripting\include\tsconst.inc"
File "installer\files\base\addons\amxmodx\scripting\include\tsfun.inc"
File "installer\files\base\addons\amxmodx\scripting\include\tsstats.inc"
File "installer\files\base\addons\amxmodx\scripting\include\tsx.inc"
File "installer\files\base\addons\amxmodx\scripting\include\vault.inc"
File "installer\files\base\addons\amxmodx\scripting\include\vector.inc"
File "installer\files\base\addons\amxmodx\scripting\include\xs.inc"
SetOutPath "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmod_compat"
File "installer\files\base\addons\amxmodx\scripting\include\amxmod_compat\amxmod.inc"
File "installer\files\base\addons\amxmodx\scripting\include\amxmod_compat\maths.inc"
File "installer\files\base\addons\amxmodx\scripting\include\amxmod_compat\mysql.inc"
File "installer\files\base\addons\amxmodx\scripting\include\amxmod_compat\translator.inc"
File "installer\files\base\addons\amxmodx\scripting\include\amxmod_compat\Vexd_Utilities.inc"
File "installer\files\base\addons\amxmodx\scripting\include\amxmod_compat\VexdUM.inc"
File "installer\files\base\addons\amxmodx\scripting\include\amxmod_compat\VexdUM_const.inc"
File "installer\files\base\addons\amxmodx\scripting\include\amxmod_compat\VexdUM_stock.inc"
File "installer\files\base\addons\amxmodx\scripting\include\amxmod_compat\xtrafun.inc"
File "installer\files\base\scripting\admin.sma"
File "installer\files\base\scripting\adminchat.sma"
File "installer\files\base\scripting\admincmd.sma"
File "installer\files\base\scripting\adminhelp.sma"
File "installer\files\base\scripting\adminslots.sma"
File "installer\files\base\scripting\adminvote.sma"
File "installer\files\base\scripting\amxxpc"
File "installer\files\base\scripting\amxxpc.exe"
File "installer\files\base\scripting\amxxpc32.dll"
File "installer\files\base\scripting\amxxpc32.so"
File "installer\files\base\scripting\amxxpc64.dll"
File "installer\files\base\scripting\amxxpc64.so"
File "installer\files\base\scripting\antiflood.sma"
File "installer\files\base\scripting\cmdmenu.sma"
File "installer\files\base\scripting\compile.exe"
File "installer\files\base\scripting\compile.sh"
File "installer\files\base\scripting\dlsym"
File "installer\files\base\scripting\dlsym64"
File "installer\files\base\scripting\imessage.sma"
SetOutPath "$INSTDIR\files\base\scripting\include"
File "installer\files\base\scripting\include\amxconst.inc"
File "installer\files\base\scripting\include\amxmisc.inc"
File "installer\files\base\scripting\include\amxmodx.inc"
File "installer\files\base\scripting\include\core.inc"
File "installer\files\base\scripting\include\csstats.inc"
File "installer\files\base\scripting\include\cstrike.inc"
File "installer\files\base\scripting\include\csx.inc"
File "installer\files\base\scripting\include\dbi.inc"
File "installer\files\base\scripting\include\dodconst.inc"
File "installer\files\base\scripting\include\dodfun.inc"
File "installer\files\base\scripting\include\dodstats.inc"
File "installer\files\base\scripting\include\dodx.inc"
File "installer\files\base\scripting\include\engine.inc"
File "installer\files\base\scripting\include\engine_const.inc"
File "installer\files\base\scripting\include\engine_stocks.inc"
File "installer\files\base\scripting\include\esf.inc"
File "installer\files\base\scripting\include\esf_const.inc"
File "installer\files\base\scripting\include\fakemeta.inc"
File "installer\files\base\scripting\include\fakemeta_const.inc"
File "installer\files\base\scripting\include\fakemeta_stocks.inc"
File "installer\files\base\scripting\include\file.inc"
File "installer\files\base\scripting\include\float.inc"
File "installer\files\base\scripting\include\fun.inc"
File "installer\files\base\scripting\include\geoip.inc"
File "installer\files\base\scripting\include\hlsdk_const.inc"
File "installer\files\base\scripting\include\lang.inc"
File "installer\files\base\scripting\include\messages.inc"
File "installer\files\base\scripting\include\message_const.inc"
File "installer\files\base\scripting\include\message_stocks.inc"
File "installer\files\base\scripting\include\ns.inc"
File "installer\files\base\scripting\include\ns2amx.inc"
File "installer\files\base\scripting\include\ns_const.inc"
File "installer\files\base\scripting\include\regex.inc"
File "installer\files\base\scripting\include\nvault.inc"
File "installer\files\base\scripting\include\sockets.inc"
File "installer\files\base\scripting\include\sorting.inc"
File "installer\files\base\scripting\include\sqlx.inc"
File "installer\files\base\scripting\include\string.inc"
File "installer\files\base\scripting\include\tfcconst.inc"
File "installer\files\base\scripting\include\tfcstats.inc"
File "installer\files\base\scripting\include\tfcx.inc"
File "installer\files\base\scripting\include\time.inc"
File "installer\files\base\scripting\include\tsconst.inc"
File "installer\files\base\scripting\include\tsfun.inc"
File "installer\files\base\scripting\include\tsstats.inc"
File "installer\files\base\scripting\include\tsx.inc"
File "installer\files\base\scripting\include\vault.inc"
File "installer\files\base\scripting\include\vector.inc"
File "installer\files\base\scripting\include\xs.inc"
SetOutPath "$INSTDIR\files\base\scripting\include\amxmod_compat"
File "installer\files\base\scripting\include\amxmod_compat\amxmod.inc"
File "installer\files\base\scripting\include\amxmod_compat\maths.inc"
File "installer\files\base\scripting\include\amxmod_compat\mysql.inc"
File "installer\files\base\scripting\include\amxmod_compat\translator.inc"
File "installer\files\base\scripting\include\amxmod_compat\Vexd_Utilities.inc"
File "installer\files\base\scripting\include\amxmod_compat\VexdUM.inc"
File "installer\files\base\scripting\include\amxmod_compat\VexdUM_const.inc"
File "installer\files\base\scripting\include\amxmod_compat\VexdUM_stock.inc"
File "installer\files\base\scripting\include\amxmod_compat\xtrafun.inc"
SetOutPath "$INSTDIR\files\base\scripting"
File "installer\files\base\addons\amxmodx\scripting\mapchooser.sma"
File "installer\files\base\addons\amxmodx\scripting\mapsmenu.sma"
File "installer\files\base\addons\amxmodx\scripting\menufront.sma"
File "installer\files\base\addons\amxmodx\scripting\multilingual.sma"
File "installer\files\base\addons\amxmodx\scripting\nextmap.sma"
File "installer\files\base\addons\amxmodx\scripting\pausecfg.sma"
File "installer\files\base\addons\amxmodx\scripting\plmenu.sma"
File "installer\files\base\addons\amxmodx\scripting\scrollmsg.sma"
File "installer\files\base\addons\amxmodx\scripting\statscfg.sma"
File "installer\files\base\addons\amxmodx\scripting\telemenu.sma"
File "installer\files\base\addons\amxmodx\scripting\timeleft.sma"
SetOutPath "$INSTDIR\files\base\addons\amxmodx\scripting\amxmod_compat"
File "installer\files\base\addons\amxmodx\scripting\amxmod_compat\amxmod_compat.sma"
File "installer\files\base\addons\amxmodx\scripting\amxmod_compat\core.sma"
File "installer\files\base\addons\amxmodx\scripting\amxmod_compat\mysql.sma"
File "installer\files\base\addons\amxmodx\scripting\amxmod_compat\vexdum.sma"
SetOutPath "$INSTDIR\files\base\addons\amxmodx\scripting\testsuite"
File "installer\files\base\addons\amxmodx\scripting\testsuite\callfunc_test.sma"
File "installer\files\base\addons\amxmodx\scripting\testsuite\fakemeta_tests.sma"
File "installer\files\base\addons\amxmodx\scripting\testsuite\fmttest.sma"
File "installer\files\base\addons\amxmodx\scripting\testsuite\fwdtest1.sma"
File "installer\files\base\addons\amxmodx\scripting\testsuite\fwdtest2.sma"
File "installer\files\base\addons\amxmodx\scripting\testsuite\logtest.sma"
File "installer\files\base\addons\amxmodx\scripting\testsuite\menutest.sma"
File "installer\files\base\addons\amxmodx\scripting\testsuite\nvault_test.sma"
File "installer\files\base\addons\amxmodx\scripting\testsuite\sorttest.sma"
File "installer\files\base\addons\amxmodx\scripting\testsuite\sqlxtest.sma"
File "installer\files\base\addons\amxmodx\scripting\testsuite\sqlxtest.sq3"
File "installer\files\base\addons\amxmodx\scripting\testsuite\sqlxtest.sql"
File "installer\files\base\scripting\mapchooser.sma"
File "installer\files\base\scripting\mapsmenu.sma"
File "installer\files\base\scripting\menufront.sma"
File "installer\files\base\scripting\multilingual.sma"
File "installer\files\base\scripting\nextmap.sma"
File "installer\files\base\scripting\pausecfg.sma"
File "installer\files\base\scripting\plmenu.sma"
File "installer\files\base\scripting\scrollmsg.sma"
File "installer\files\base\scripting\statscfg.sma"
File "installer\files\base\scripting\telemenu.sma"
File "installer\files\base\scripting\timeleft.sma"
SetOutPath "$INSTDIR\files\base\scripting\amxmod_compat"
File "installer\files\base\scripting\amxmod_compat\amxmod_compat.sma"
File "installer\files\base\scripting\amxmod_compat\core.sma"
File "installer\files\base\scripting\amxmod_compat\mysql.sma"
File "installer\files\base\scripting\amxmod_compat\vexdum.sma"
SetOutPath "$INSTDIR\files\base\scripting\testsuite"
File "installer\files\base\scripting\testsuite\callfunc_test.sma"
File "installer\files\base\scripting\testsuite\fakemeta_tests.sma"
File "installer\files\base\scripting\testsuite\fmttest.sma"
File "installer\files\base\scripting\testsuite\fwdtest1.sma"
File "installer\files\base\scripting\testsuite\fwdtest2.sma"
File "installer\files\base\scripting\testsuite\logtest.sma"
File "installer\files\base\scripting\testsuite\menutest.sma"
File "installer\files\base\scripting\testsuite\nvault_test.sma"
File "installer\files\base\scripting\testsuite\sorttest.sma"
File "installer\files\base\scripting\testsuite\sqlxtest.sma"
File "installer\files\base\scripting\testsuite\sqlxtest.sq3"
File "installer\files\base\scripting\testsuite\sqlxtest.sql"
SetOutPath "$INSTDIR\files\cstrike\configs"
File "installer\files\cstrike\addons\amxmodx\configs\amxx.cfg"
File "installer\files\cstrike\addons\amxmodx\configs\cmds.ini"
File "installer\files\cstrike\addons\amxmodx\configs\core.ini"
File "installer\files\cstrike\addons\amxmodx\configs\cvars.ini"
File "installer\files\cstrike\addons\amxmodx\configs\maps.ini"
File "installer\files\cstrike\addons\amxmodx\configs\modules.ini"
File "installer\files\cstrike\addons\amxmodx\configs\plugins.ini"
File "installer\files\cstrike\addons\amxmodx\configs\stats.ini"
File "installer\files\cstrike\configs\amxx.cfg"
File "installer\files\cstrike\configs\cmds.ini"
File "installer\files\cstrike\configs\core.ini"
File "installer\files\cstrike\configs\cvars.ini"
File "installer\files\cstrike\configs\maps.ini"
File "installer\files\cstrike\configs\modules.ini"
File "installer\files\cstrike\configs\plugins.ini"
File "installer\files\cstrike\configs\stats.ini"
SetOutPath "$INSTDIR\files\cstrike\data"
File "installer\files\cstrike\addons\amxmodx\data\csstats.amxx"
File "installer\files\cstrike\addons\amxmodx\data\WinCSX.exe"
File "installer\files\cstrike\data\csstats.amxx"
File "installer\files\cstrike\data\WinCSX.exe"
SetOutPath "$INSTDIR\files\cstrike\modules"
File "installer\files\cstrike\addons\amxmodx\modules\cstrike_amxx.dll"
File "installer\files\cstrike\addons\amxmodx\modules\cstrike_amxx_i386.so"
File "installer\files\cstrike\addons\amxmodx\modules\csx_amxx.dll"
File "installer\files\cstrike\addons\amxmodx\modules\csx_amxx_i386.so"
File "installer\files\cstrike\modules\cstrike_amxx.dll"
File "installer\files\cstrike\modules\cstrike_amxx_amd64.so"
File "installer\files\cstrike\modules\cstrike_amxx_i386.so"
File "installer\files\cstrike\modules\csx_amxx.dll"
File "installer\files\cstrike\modules\csx_amxx_amd64.so"
File "installer\files\cstrike\modules\csx_amxx_i386.so"
SetOutPath "$INSTDIR\files\cstrike\plugins"
File "installer\files\cstrike\addons\amxmodx\plugins\miscstats.amxx"
File "installer\files\cstrike\addons\amxmodx\plugins\restmenu.amxx"
File "installer\files\cstrike\addons\amxmodx\plugins\statsx.amxx"
File "installer\files\cstrike\addons\amxmodx\plugins\stats_logging.amxx"
File "installer\files\cstrike\plugins\miscstats.amxx"
File "installer\files\cstrike\plugins\restmenu.amxx"
File "installer\files\cstrike\plugins\statsx.amxx"
File "installer\files\cstrike\plugins\stats_logging.amxx"
SetOutPath "$INSTDIR\files\cstrike\scripting"
File "installer\files\cstrike\addons\amxmodx\scripting\csstats.sma"
File "installer\files\cstrike\addons\amxmodx\scripting\miscstats.sma"
File "installer\files\cstrike\addons\amxmodx\scripting\restmenu.sma"
File "installer\files\cstrike\addons\amxmodx\scripting\statsx.sma"
File "installer\files\cstrike\addons\amxmodx\scripting\stats_logging.sma"
File "installer\files\cstrike\scripting\csstats.sma"
File "installer\files\cstrike\scripting\miscstats.sma"
File "installer\files\cstrike\scripting\restmenu.sma"
File "installer\files\cstrike\scripting\statsx.sma"
File "installer\files\cstrike\scripting\stats_logging.sma"
SetOutPath "$INSTDIR\files\dod\configs"
File "installer\files\dod\addons\amxmodx\configs\core.ini"
File "installer\files\dod\addons\amxmodx\configs\cvars.ini"
File "installer\files\dod\addons\amxmodx\configs\maps.ini"
File "installer\files\dod\addons\amxmodx\configs\modules.ini"
File "installer\files\dod\addons\amxmodx\configs\plugins.ini"
File "installer\files\dod\configs\core.ini"
File "installer\files\dod\configs\cvars.ini"
File "installer\files\dod\configs\maps.ini"
File "installer\files\dod\configs\modules.ini"
File "installer\files\dod\configs\plugins.ini"
SetOutPath "$INSTDIR\files\dod\data"
File "installer\files\dod\addons\amxmodx\data\dodstats.amxx"
File "installer\files\dod\data\dodstats.amxx"
SetOutPath "$INSTDIR\files\dod\modules"
File "installer\files\dod\addons\amxmodx\modules\dodfun_amxx.dll"
File "installer\files\dod\addons\amxmodx\modules\dodfun_amxx_i386.so"
File "installer\files\dod\addons\amxmodx\modules\dodx_amxx.dll"
File "installer\files\dod\addons\amxmodx\modules\dodx_amxx_i386.so"
File "installer\files\dod\modules\dodfun_amxx.dll"
File "installer\files\dod\modules\dodfun_amxx_i386.so"
File "installer\files\dod\modules\dodx_amxx.dll"
File "installer\files\dod\modules\dodx_amxx_i386.so"
SetOutPath "$INSTDIR\files\dod\plugins"
File "installer\files\dod\addons\amxmodx\plugins\plmenu.amxx"
File "installer\files\dod\addons\amxmodx\plugins\stats.amxx"
File "installer\files\dod\addons\amxmodx\plugins\statssounds.amxx"
File "installer\files\dod\addons\amxmodx\plugins\stats_logging.amxx"
File "installer\files\dod\plugins\plmenu.amxx"
File "installer\files\dod\plugins\stats.amxx"
File "installer\files\dod\plugins\statssounds.amxx"
File "installer\files\dod\plugins\stats_logging.amxx"
SetOutPath "$INSTDIR\files\dod\scripting"
File "installer\files\dod\addons\amxmodx\scripting\dodstats.sma"
File "installer\files\dod\addons\amxmodx\scripting\plmenu.sma"
File "installer\files\dod\addons\amxmodx\scripting\stats.sma"
File "installer\files\dod\addons\amxmodx\scripting\statssounds.sma"
File "installer\files\dod\addons\amxmodx\scripting\stats_logging.sma"
File "installer\files\dod\scripting\dodstats.sma"
File "installer\files\dod\scripting\plmenu.sma"
File "installer\files\dod\scripting\stats.sma"
File "installer\files\dod\scripting\statssounds.sma"
File "installer\files\dod\scripting\stats_logging.sma"
SetOutPath "$INSTDIR\files\ns\configs"
File "installer\files\ns\addons\amxmodx\configs\amxx.cfg"
File "installer\files\ns\addons\amxmodx\configs\clcmds.ini"
File "installer\files\ns\addons\amxmodx\configs\cmds.ini"
File "installer\files\ns\addons\amxmodx\configs\cvars.ini"
File "installer\files\ns\addons\amxmodx\configs\maps.ini"
File "installer\files\ns\addons\amxmodx\configs\modules.ini"
File "installer\files\ns\addons\amxmodx\configs\plugins.ini"
File "installer\files\ns\addons\amxmodx\configs\speech.ini"
File "installer\files\ns\addons\amxmodx\configs\users.ini"
File "installer\files\ns\configs\amxx.cfg"
File "installer\files\ns\configs\clcmds.ini"
File "installer\files\ns\configs\cmds.ini"
File "installer\files\ns\configs\cvars.ini"
File "installer\files\ns\configs\maps.ini"
File "installer\files\ns\configs\modules.ini"
File "installer\files\ns\configs\plugins.ini"
File "installer\files\ns\configs\speech.ini"
File "installer\files\ns\configs\users.ini"
SetOutPath "$INSTDIR\files\ns\modules"
File "installer\files\ns\addons\amxmodx\modules\ns_amxx.dll"
File "installer\files\ns\addons\amxmodx\modules\ns_amxx_i386.so"
File "installer\files\ns\modules\ns_amxx.dll"
File "installer\files\ns\modules\ns_amxx_i386.so"
SetOutPath "$INSTDIR\files\ns\plugins"
File "installer\files\ns\addons\amxmodx\plugins\idlekicker.amxx"
File "installer\files\ns\addons\amxmodx\plugins\mapchooser.amxx"
File "installer\files\ns\addons\amxmodx\plugins\nextmap.amxx"
File "installer\files\ns\addons\amxmodx\plugins\nscommands.amxx"
File "installer\files\ns\addons\amxmodx\plugins\timeleft.amxx"
File "installer\files\ns\addons\amxmodx\plugins\unstuck.amxx"
File "installer\files\ns\plugins\idlekicker.amxx"
File "installer\files\ns\plugins\mapchooser.amxx"
File "installer\files\ns\plugins\nextmap.amxx"
File "installer\files\ns\plugins\nscommands.amxx"
File "installer\files\ns\plugins\timeleft.amxx"
File "installer\files\ns\plugins\unstuck.amxx"
SetOutPath "$INSTDIR\files\ns\scripting"
File "installer\files\ns\addons\amxmodx\scripting\idlekicker.sma"
File "installer\files\ns\addons\amxmodx\scripting\mapchooser.sma"
File "installer\files\ns\addons\amxmodx\scripting\nextmap.sma"
File "installer\files\ns\addons\amxmodx\scripting\nscommands.sma"
File "installer\files\ns\addons\amxmodx\scripting\timeleft.sma"
File "installer\files\ns\addons\amxmodx\scripting\unstuck.sma"
File "installer\files\ns\scripting\idlekicker.sma"
File "installer\files\ns\scripting\mapchooser.sma"
File "installer\files\ns\scripting\nextmap.sma"
File "installer\files\ns\scripting\nscommands.sma"
File "installer\files\ns\scripting\timeleft.sma"
File "installer\files\ns\scripting\unstuck.sma"
SetOutPath "$INSTDIR\files\esf\configs"
File "installer\files\esf\addons\amxmodx\configs\modules.ini"
File "installer\files\esf\addons\amxmodx\configs\plugins.ini"
File "installer\files\esf\configs\modules.ini"
File "installer\files\esf\configs\plugins.ini"
SetOutPath "$INSTDIR\files\esf\scripting"
File "installer\files\esf\addons\amxmodx\scripting\ESF_mod_tutorial.txt"
File "installer\files\esf\addons\amxmodx\scripting\EvolutionX.Core.sma"
File "installer\files\esf\scripting\ESF_mod_tutorial.txt"
File "installer\files\esf\scripting\EvolutionX.Core.sma"
SetOutPath "$INSTDIR\files\esf\plugins"
File "installer\files\esf\addons\amxmodx\plugins\EvolutionX.Core.amxx"
File "installer\files\esf\plugins\EvolutionX.Core.amxx"
SetOutPath "$INSTDIR\files\tfc\configs"
File "installer\files\tfc\addons\amxmodx\configs\core.ini"
File "installer\files\tfc\addons\amxmodx\configs\cvars.ini"
File "installer\files\tfc\addons\amxmodx\configs\maps.ini"
File "installer\files\tfc\addons\amxmodx\configs\modules.ini"
File "installer\files\tfc\addons\amxmodx\configs\plugins.ini"
File "installer\files\tfc\configs\core.ini"
File "installer\files\tfc\configs\cvars.ini"
File "installer\files\tfc\configs\maps.ini"
File "installer\files\tfc\configs\modules.ini"
File "installer\files\tfc\configs\plugins.ini"
SetOutPath "$INSTDIR\files\tfc\data"
File "installer\files\tfc\addons\amxmodx\data\tfcstats.amxx"
File "installer\files\tfc\data\tfcstats.amxx"
SetOutPath "$INSTDIR\files\tfc\modules"
File "installer\files\tfc\addons\amxmodx\modules\tfcx_amxx.dll"
File "installer\files\tfc\addons\amxmodx\modules\tfcx_amxx_i386.so"
File "installer\files\tfc\modules\tfcx_amxx.dll"
File "installer\files\tfc\modules\tfcx_amxx_i386.so"
SetOutPath "$INSTDIR\files\tfc\plugins"
File "installer\files\tfc\addons\amxmodx\plugins\plmenu.amxx"
File "installer\files\tfc\addons\amxmodx\plugins\stats.amxx"
File "installer\files\tfc\addons\amxmodx\plugins\statssounds.amxx"
File "installer\files\tfc\addons\amxmodx\plugins\stats_logging.amxx"
File "installer\files\tfc\plugins\plmenu.amxx"
File "installer\files\tfc\plugins\stats.amxx"
File "installer\files\tfc\plugins\statssounds.amxx"
File "installer\files\tfc\plugins\stats_logging.amxx"
SetOutPath "$INSTDIR\files\tfc\scripting"
File "installer\files\tfc\addons\amxmodx\scripting\plmenu.sma"
File "installer\files\tfc\addons\amxmodx\scripting\stats.sma"
File "installer\files\tfc\addons\amxmodx\scripting\statssounds.sma"
File "installer\files\tfc\addons\amxmodx\scripting\stats_logging.sma"
File "installer\files\tfc\addons\amxmodx\scripting\tfcstats.sma"
File "installer\files\tfc\scripting\plmenu.sma"
File "installer\files\tfc\scripting\stats.sma"
File "installer\files\tfc\scripting\statssounds.sma"
File "installer\files\tfc\scripting\stats_logging.sma"
File "installer\files\tfc\scripting\tfcstats.sma"
SetOutPath "$INSTDIR\files\ts\configs"
File "installer\files\ts\addons\amxmodx\configs\core.ini"
File "installer\files\ts\addons\amxmodx\configs\maps.ini"
File "installer\files\ts\addons\amxmodx\configs\modules.ini"
File "installer\files\ts\addons\amxmodx\configs\plugins.ini"
File "installer\files\ts\configs\core.ini"
File "installer\files\ts\configs\maps.ini"
File "installer\files\ts\configs\modules.ini"
File "installer\files\ts\configs\plugins.ini"
SetOutPath "$INSTDIR\files\ts\data"
File "installer\files\ts\addons\amxmodx\data\tsstats.amxx"
File "installer\files\ts\data\tsstats.amxx"
SetOutPath "$INSTDIR\files\ts\modules"
File "installer\files\ts\addons\amxmodx\modules\tsx_amxx.dll"
File "installer\files\ts\addons\amxmodx\modules\tsx_amxx_i386.so"
File "installer\files\ts\addons\amxmodx\modules\tsfun_amxx.dll"
File "installer\files\ts\addons\amxmodx\modules\tsfun_amxx_i386.so"
File "installer\files\ts\modules\tsx_amxx.dll"
File "installer\files\ts\modules\tsx_amxx_i386.so"
File "installer\files\ts\modules\tsfun_amxx.dll"
File "installer\files\ts\modules\tsfun_amxx_i386.so"
SetOutPath "$INSTDIR\files\ts\plugins"
File "installer\files\ts\addons\amxmodx\plugins\stats.amxx"
File "installer\files\ts\addons\amxmodx\plugins\statssounds.amxx"
File "installer\files\ts\addons\amxmodx\plugins\stats_logging.amxx"
File "installer\files\ts\plugins\stats.amxx"
File "installer\files\ts\plugins\statssounds.amxx"
File "installer\files\ts\plugins\stats_logging.amxx"
SetOutPath "$INSTDIR\files\ts\scripting"
File "installer\files\ts\addons\amxmodx\scripting\stats.sma"
File "installer\files\ts\addons\amxmodx\scripting\statssounds.sma"
File "installer\files\ts\addons\amxmodx\scripting\stats_logging.sma"
File "installer\files\ts\addons\amxmodx\scripting\tsstats.sma"
File "installer\files\ts\scripting\stats.sma"
File "installer\files\ts\scripting\statssounds.sma"
File "installer\files\ts\scripting\stats_logging.sma"
File "installer\files\ts\scripting\tsstats.sma"
SetOutPath "$INSTDIR\"
File "installer\gpl.txt"
@ -572,8 +585,10 @@ Section Uninstall
Delete "$INSTDIR\files\cstrike\plugins\restmenu.amxx"
Delete "$INSTDIR\files\cstrike\plugins\miscstats.amxx"
Delete "$INSTDIR\files\cstrike\modules\csx_amxx_i386.so"
Delete "$INSTDIR\files\cstrike\modules\csx_amxx_amd64.so"
Delete "$INSTDIR\files\cstrike\modules\csx_amxx.dll"
Delete "$INSTDIR\files\cstrike\modules\cstrike_amxx_i386.so"
Delete "$INSTDIR\files\cstrike\modules\cstrike_amxx_amd64.so"
Delete "$INSTDIR\files\cstrike\modules\cstrike_amxx.dll"
Delete "$INSTDIR\files\cstrike\data\csstats.amxx"
Delete "$INSTDIR\files\cstrike\data\WinCSX.amxx"
@ -585,113 +600,113 @@ Section Uninstall
Delete "$INSTDIR\files\cstrike\configs\core.ini"
Delete "$INSTDIR\files\cstrike\configs\cmds.ini"
Delete "$INSTDIR\files\cstrike\configs\amxx.cfg"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\timeleft.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\telemenu.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\statscfg.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\scrollmsg.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\plmenu.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\pausecfg.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\nextmap.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\multilingual.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\menufront.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\mapsmenu.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\mapchooser.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmod_compat\amxmod.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmod_compat\maths.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmod_compat\mysql.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmod_compat\translator.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmod_compat\Vexd_Utilities.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmod_compat\VexdUM.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmod_compat\VexdUM_const.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmod_compat\VexdUM_stock.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmod_compat\xtrafun.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\xtrafun.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\xs.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\Vexd_Utilities.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\vector.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\vault.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\tsx.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\tsfun.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\tsstats.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\tsconst.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\tfcx.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\tfcstats.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\tfcconst.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\time.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\string.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\sqlx.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\sorting.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\sockets.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\regex.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\ns_const.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\ns2amx.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\ns.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\nvault.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\message_stocks.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\message_const.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\messages.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\lang.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\hlsdk_const.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\geoip.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\fun.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\float.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\file.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\fakemeta_stocks.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\fakemeta_const.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\fakemeta.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\esf.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\esf_const.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\engine_stocks.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\engine_const.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\engine.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\dodx.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\dodstats.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\dodfun.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\dodconst.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\dbi.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\csx.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\cstrike.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\csstats.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\core.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmodx.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmod.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmisc.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxconst.inc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\imessage.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\dlsym64"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\dlsym"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\compile.sh"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\compile.exe"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\cmdmenu.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\antiflood.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\amxxpc64.so"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\amxxpc64.dll"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\amxxpc32.so"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\amxxpc32.dll"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\amxxpc.exe"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\amxxpc"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\adminvote.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\adminslots.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\adminhelp.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\admincmd.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\adminchat.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\admin.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\amxmod_compat\amxmod_compat.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\amxmod_compat\core.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\amxmod_compat\mysql.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\amxmod_compat\vexdum.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\testsuite\callfunc_test.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\testsuite\fakemeta_tests.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\testsuite\fmttest.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\testsuite\fwdtest1.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\testsuite\fwdtest2.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\testsuite\logtest.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\testsuite\menutest.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\testsuite\nvault_test.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\testsuite\sorttest.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\testsuite\sqlxtest.sma"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\testsuite\sqlxtest.sq3"
Delete "$INSTDIR\files\base\addons\amxmodx\scripting\testsuite\sqlxtest.sql"
Delete "$INSTDIR\files\base\scripting\timeleft.sma"
Delete "$INSTDIR\files\base\scripting\telemenu.sma"
Delete "$INSTDIR\files\base\scripting\statscfg.sma"
Delete "$INSTDIR\files\base\scripting\scrollmsg.sma"
Delete "$INSTDIR\files\base\scripting\plmenu.sma"
Delete "$INSTDIR\files\base\scripting\pausecfg.sma"
Delete "$INSTDIR\files\base\scripting\nextmap.sma"
Delete "$INSTDIR\files\base\scripting\multilingual.sma"
Delete "$INSTDIR\files\base\scripting\menufront.sma"
Delete "$INSTDIR\files\base\scripting\mapsmenu.sma"
Delete "$INSTDIR\files\base\scripting\mapchooser.sma"
Delete "$INSTDIR\files\base\scripting\include\amxmod_compat\amxmod.inc"
Delete "$INSTDIR\files\base\scripting\include\amxmod_compat\maths.inc"
Delete "$INSTDIR\files\base\scripting\include\amxmod_compat\mysql.inc"
Delete "$INSTDIR\files\base\scripting\include\amxmod_compat\translator.inc"
Delete "$INSTDIR\files\base\scripting\include\amxmod_compat\Vexd_Utilities.inc"
Delete "$INSTDIR\files\base\scripting\include\amxmod_compat\VexdUM.inc"
Delete "$INSTDIR\files\base\scripting\include\amxmod_compat\VexdUM_const.inc"
Delete "$INSTDIR\files\base\scripting\include\amxmod_compat\VexdUM_stock.inc"
Delete "$INSTDIR\files\base\scripting\include\amxmod_compat\xtrafun.inc"
Delete "$INSTDIR\files\base\scripting\include\xtrafun.inc"
Delete "$INSTDIR\files\base\scripting\include\xs.inc"
Delete "$INSTDIR\files\base\scripting\include\Vexd_Utilities.inc"
Delete "$INSTDIR\files\base\scripting\include\vector.inc"
Delete "$INSTDIR\files\base\scripting\include\vault.inc"
Delete "$INSTDIR\files\base\scripting\include\tsx.inc"
Delete "$INSTDIR\files\base\scripting\include\tsfun.inc"
Delete "$INSTDIR\files\base\scripting\include\tsstats.inc"
Delete "$INSTDIR\files\base\scripting\include\tsconst.inc"
Delete "$INSTDIR\files\base\scripting\include\tfcx.inc"
Delete "$INSTDIR\files\base\scripting\include\tfcstats.inc"
Delete "$INSTDIR\files\base\scripting\include\tfcconst.inc"
Delete "$INSTDIR\files\base\scripting\include\time.inc"
Delete "$INSTDIR\files\base\scripting\include\string.inc"
Delete "$INSTDIR\files\base\scripting\include\sqlx.inc"
Delete "$INSTDIR\files\base\scripting\include\sorting.inc"
Delete "$INSTDIR\files\base\scripting\include\sockets.inc"
Delete "$INSTDIR\files\base\scripting\include\regex.inc"
Delete "$INSTDIR\files\base\scripting\include\ns_const.inc"
Delete "$INSTDIR\files\base\scripting\include\ns2amx.inc"
Delete "$INSTDIR\files\base\scripting\include\ns.inc"
Delete "$INSTDIR\files\base\scripting\include\nvault.inc"
Delete "$INSTDIR\files\base\scripting\include\message_stocks.inc"
Delete "$INSTDIR\files\base\scripting\include\message_const.inc"
Delete "$INSTDIR\files\base\scripting\include\messages.inc"
Delete "$INSTDIR\files\base\scripting\include\lang.inc"
Delete "$INSTDIR\files\base\scripting\include\hlsdk_const.inc"
Delete "$INSTDIR\files\base\scripting\include\geoip.inc"
Delete "$INSTDIR\files\base\scripting\include\fun.inc"
Delete "$INSTDIR\files\base\scripting\include\float.inc"
Delete "$INSTDIR\files\base\scripting\include\file.inc"
Delete "$INSTDIR\files\base\scripting\include\fakemeta_stocks.inc"
Delete "$INSTDIR\files\base\scripting\include\fakemeta_const.inc"
Delete "$INSTDIR\files\base\scripting\include\fakemeta.inc"
Delete "$INSTDIR\files\base\scripting\include\esf.inc"
Delete "$INSTDIR\files\base\scripting\include\esf_const.inc"
Delete "$INSTDIR\files\base\scripting\include\engine_stocks.inc"
Delete "$INSTDIR\files\base\scripting\include\engine_const.inc"
Delete "$INSTDIR\files\base\scripting\include\engine.inc"
Delete "$INSTDIR\files\base\scripting\include\dodx.inc"
Delete "$INSTDIR\files\base\scripting\include\dodstats.inc"
Delete "$INSTDIR\files\base\scripting\include\dodfun.inc"
Delete "$INSTDIR\files\base\scripting\include\dodconst.inc"
Delete "$INSTDIR\files\base\scripting\include\dbi.inc"
Delete "$INSTDIR\files\base\scripting\include\csx.inc"
Delete "$INSTDIR\files\base\scripting\include\cstrike.inc"
Delete "$INSTDIR\files\base\scripting\include\csstats.inc"
Delete "$INSTDIR\files\base\scripting\include\core.inc"
Delete "$INSTDIR\files\base\scripting\include\amxmodx.inc"
Delete "$INSTDIR\files\base\scripting\include\amxmod.inc"
Delete "$INSTDIR\files\base\scripting\include\amxmisc.inc"
Delete "$INSTDIR\files\base\scripting\include\amxconst.inc"
Delete "$INSTDIR\files\base\scripting\imessage.sma"
Delete "$INSTDIR\files\base\scripting\dlsym64"
Delete "$INSTDIR\files\base\scripting\dlsym"
Delete "$INSTDIR\files\base\scripting\compile.sh"
Delete "$INSTDIR\files\base\scripting\compile.exe"
Delete "$INSTDIR\files\base\scripting\cmdmenu.sma"
Delete "$INSTDIR\files\base\scripting\antiflood.sma"
Delete "$INSTDIR\files\base\scripting\amxxpc64.so"
Delete "$INSTDIR\files\base\scripting\amxxpc64.dll"
Delete "$INSTDIR\files\base\scripting\amxxpc32.so"
Delete "$INSTDIR\files\base\scripting\amxxpc32.dll"
Delete "$INSTDIR\files\base\scripting\amxxpc.exe"
Delete "$INSTDIR\files\base\scripting\amxxpc"
Delete "$INSTDIR\files\base\scripting\adminvote.sma"
Delete "$INSTDIR\files\base\scripting\adminslots.sma"
Delete "$INSTDIR\files\base\scripting\adminhelp.sma"
Delete "$INSTDIR\files\base\scripting\admincmd.sma"
Delete "$INSTDIR\files\base\scripting\adminchat.sma"
Delete "$INSTDIR\files\base\scripting\admin.sma"
Delete "$INSTDIR\files\base\scripting\amxmod_compat\amxmod_compat.sma"
Delete "$INSTDIR\files\base\scripting\amxmod_compat\core.sma"
Delete "$INSTDIR\files\base\scripting\amxmod_compat\mysql.sma"
Delete "$INSTDIR\files\base\scripting\amxmod_compat\vexdum.sma"
Delete "$INSTDIR\files\base\scripting\testsuite\callfunc_test.sma"
Delete "$INSTDIR\files\base\scripting\testsuite\fakemeta_tests.sma"
Delete "$INSTDIR\files\base\scripting\testsuite\fmttest.sma"
Delete "$INSTDIR\files\base\scripting\testsuite\fwdtest1.sma"
Delete "$INSTDIR\files\base\scripting\testsuite\fwdtest2.sma"
Delete "$INSTDIR\files\base\scripting\testsuite\logtest.sma"
Delete "$INSTDIR\files\base\scripting\testsuite\menutest.sma"
Delete "$INSTDIR\files\base\scripting\testsuite\nvault_test.sma"
Delete "$INSTDIR\files\base\scripting\testsuite\sorttest.sma"
Delete "$INSTDIR\files\base\scripting\testsuite\sqlxtest.sma"
Delete "$INSTDIR\files\base\scripting\testsuite\sqlxtest.sq3"
Delete "$INSTDIR\files\base\scripting\testsuite\sqlxtest.sql"
Delete "$INSTDIR\files\base\plugins\timeleft.amxx"
Delete "$INSTDIR\files\base\plugins\telemenu.amxx"
Delete "$INSTDIR\files\base\plugins\statscfg.amxx"
@ -714,26 +729,37 @@ Section Uninstall
Delete "$INSTDIR\files\base\plugins\adminchat.amxx"
Delete "$INSTDIR\files\base\plugins\admin.amxx"
Delete "$INSTDIR\files\base\modules\nvault_amxx_i386.so"
Delete "$INSTDIR\files\base\modules\nvault_amxx_amd64.so"
Delete "$INSTDIR\files\base\modules\nvault_amxx.dll"
Delete "$INSTDIR\files\base\modules\sockets_amxx_i386.so"
Delete "$INSTDIR\files\base\modules\sockets_amxx_amd64.so"
Delete "$INSTDIR\files\base\modules\sockets_amxx.dll"
Delete "$INSTDIR\files\base\modules\regex_amxx_i386.so"
Delete "$INSTDIR\files\base\modules\regex_amxx_amd64.so"
Delete "$INSTDIR\files\base\modules\regex_amxx.dll"
Delete "$INSTDIR\files\base\modules\sqlite_amxx_i386.so"
Delete "$INSTDIR\files\base\modules\sqlite_amxx_amd64.so"
Delete "$INSTDIR\files\base\modules\sqlite_amxx.dll"
Delete "$INSTDIR\files\base\modules\mysql_amxx_i386.so"
Delete "$INSTDIR\files\base\modules\mysql_amxx_amd64.so"
Delete "$INSTDIR\files\base\modules\mysql_amxx.dll"
Delete "$INSTDIR\files\base\modules\geoip_amxx_i386.so"
Delete "$INSTDIR\files\base\modules\geoip_amxx_amd64.so"
Delete "$INSTDIR\files\base\modules\geoip_amxx.dll"
Delete "$INSTDIR\files\base\modules\fun_amxx_i386.so"
Delete "$INSTDIR\files\base\modules\fun_amxx_amd64.so"
Delete "$INSTDIR\files\base\modules\fun_amxx.dll"
Delete "$INSTDIR\files\base\modules\fakemeta_amxx_i386.so"
Delete "$INSTDIR\files\base\modules\fakemeta_amxx_amd64.so"
Delete "$INSTDIR\files\base\modules\fakemeta_amxx.dll"
Delete "$INSTDIR\files\base\modules\engine_amxx_i386.so"
Delete "$INSTDIR\files\base\modules\engine_amxx_amd64.so"
Delete "$INSTDIR\files\base\modules\engine_amxx.dll"
Delete "$INSTDIR\files\base\dlls\metamod_i386.so"
Delete "$INSTDIR\files\base\dlls\metamod_amd64.so"
Delete "$INSTDIR\files\base\dlls\metamod.dll"
Delete "$INSTDIR\files\base\dlls\amxmodx_mm_i386.so"
Delete "$INSTDIR\files\base\dlls\amxmodx_mm_amd64.so"
Delete "$INSTDIR\files\base\dlls\amxmodx_mm.dll"
Delete "$INSTDIR\files\base\data\lang\timeleft.txt"
Delete "$INSTDIR\files\base\data\lang\time.txt"
@ -815,7 +841,7 @@ Section Uninstall
Delete "$SMPROGRAMS\$ICONS_GROUP\Uninstall.lnk"
Delete "$SMPROGRAMS\$ICONS_GROUP\Website.lnk"
Delete "$DESKTOP\AMX Mod X Studio.lnk"
Delete "$DESKTOP\AMX Mod X Editor.lnk"
Delete "$SMPROGRAMS\$ICONS_GROUP\AMXX Studio.lnk"
Delete "$SMPROGRAMS\$ICONS_GROUP\Documentation.lnk"
Delete "$SMPROGRAMS\$ICONS_GROUP\AMX Mod X.lnk"
@ -848,9 +874,9 @@ Section Uninstall
RMDir "$INSTDIR\files\cstrike\modules"
RMDir "$INSTDIR\files\cstrike\data"
RMDir "$INSTDIR\files\cstrike\configs"
RMDir "$INSTDIR\files\base\addons\amxmodx\scripting\include\amxmod_compat"
RMDir "$INSTDIR\files\base\addons\amxmodx\scripting\include"
RMDir "$INSTDIR\files\base\addons\amxmodx\scripting\amxmod_compat"
RMDir "$INSTDIR\files\base\scripting\include\amxmod_compat"
RMDir "$INSTDIR\files\base\scripting\include"
RMDir "$INSTDIR\files\base\scripting\amxmod_compat"
RMDir "$INSTDIR\files\base\scripting"
RMDir "$INSTDIR\files\base\plugins"
RMDir "$INSTDIR\files\base\modules"

View File

@ -32,8 +32,8 @@
-M
-$M16384,1048576
-K$00400000
-LE"c:\program files (x86)\borland\delphi7\Projects\Bpl"
-LN"c:\program files (x86)\borland\delphi7\Projects\Bpl"
-LE"c:\programme\borland\delphi7\Projects\Bpl"
-LN"c:\programme\borland\delphi7\Projects\Bpl"
-DmadExcept
-w-UNSAFE_TYPE
-w-UNSAFE_CODE

View File

@ -7,7 +7,7 @@ program AMXInstaller;
- Indy 9 (www.indyproject.org)
- FlatStyle Components (www.torry.net)
- mxFlatPack Component Pack (www.maxcomponents.net/components.html)
- FlatPack Component Pack (www.torry.net)
- JVCL Lib Pack 3.0 (jvcl.sourceforge.net)
AMXX Installer for AMX Mod X is developed under GNU Public License

Binary file not shown.

View File

@ -3,15 +3,14 @@ unit UnitInstall;
interface
uses SysUtils, Classes, Windows, Graphics, Forms, ShellAPI, Controls, Messages,
TlHelp32, IdFTPCommon, ComCtrls, Dialogs, JclFileUtils;
TlHelp32, IdFTPCommon, ComCtrls, JclFileUtils, Dialogs;
type TMod = (modNone, modCS, modDoD, modTFC, modNS, modTS, modESF);
type TOS = (osWindows, osLinux32{, osLinux64});
type TOS = (osWindows, osLinux32, osLinux64);
procedure AddStatus(Text: String; Color: TColor; ShowTime: Boolean = True);
procedure AddDone(Additional: String = '');
procedure AddSkipped;
procedure AddFailed;
procedure AddNotFound;
procedure MakeDir(Dir: String);
procedure DownloadFile(eFile: String; eDestination: String);
@ -89,17 +88,6 @@ begin
Application.ProcessMessages;
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;
begin
frmMain.rtfDetails.SelStart := Length(frmMain.rtfDetails.Text);
@ -185,12 +173,8 @@ begin
if frmMain.IdFTP.TransferType <> TransferType then
frmMain.IdFTP.TransferType := TransferType;
// upload the file
try
frmMain.IdFTP.Put(eFile, eDestination);
AddDone;
except
AddFailed;
end;
frmMain.IdFTP.Put(eFile, eDestination);
AddDone;
end;
procedure FTPMakeDir(eDir: String);
@ -229,7 +213,7 @@ begin
if Pos('_amd64', ExtractFileName(eFile)) <> 0 then
Result := True;
end;
{osLinux64: begin
osLinux64: begin
if ExtractFileExt(eFile) = '.dll' then
Result := True;
if ExtractFileExt(eFile) = '.exe' then
@ -237,7 +221,7 @@ begin
if Pos('_i386', ExtractFileName(eFile)) <> 0 then
Result := True;
end;}
end;
end;
end;
@ -296,13 +280,13 @@ var eStr: TStringList;
UpdatePluginsIni: Boolean;
begin
AddStatus('Scanning for directories...', clBlack);
with GetAllFiles(ExtractFilePath(Application.ExeName) + 'files\*.*', faDirectory, True, True) do begin
with GetAllFiles(ExtractFilePath(ParamStr(0)) + 'files\*.*', faDirectory, True, True) do begin
DirList.Text := Text;
Free;
end;
AddDone('found ' + IntToStr(DirList.Count) + ' directories..');
AddStatus('Scanning for files...', clBlack);
with GetAllFiles(ExtractFilePath(Application.ExeName) + 'files\*.*', faAnyFile, True, False) do begin
with GetAllFiles(ExtractFilePath(ParamStr(0)) + 'files\*.*', faAnyFile, True, False) do begin
FileList.Text := Text;
Free;
end;
@ -343,9 +327,9 @@ begin
end;
for i := 0 to DirList.Count -1 do
DirList[i] := Copy(DirList[i], Length(ExtractFilePath(Application.ExeName)) + 7, Length(DirList[i]));
DirList[i] := Copy(DirList[i], Length(ExtractFilePath(ParamStr(0))) + 7, Length(DirList[i]));
for i := 0 to FileList.Count -1 do
FileList[i] := Copy(FileList[i], Length(ExtractFilePath(Application.ExeName)) + 7, Length(FileList[i]));
FileList[i] := Copy(FileList[i], Length(ExtractFilePath(ParamStr(0))) + 7, Length(FileList[i]));
{ liblist.gam }
if not FileExists(ePath + 'liblist.gam') then begin
@ -366,10 +350,10 @@ begin
eStr[i] := '//' + eStr[i];
end;
eStr.Add('gamedll "addons\metamod\dlls\metamod.dll"');
//if OS = osLinux64 then
// eStr.Add('gamedll_linux "addons/metamod/dlls/metamod_amd64.so"')
//else
eStr.Add('gamedll_linux "addons/metamod/dlls/metamod_i386.so"');
if OS = osLinux64 then
eStr.Add('gamedll_linux "addons/metamod/dlls/metamod_amd64.so"')
else
eStr.Add('gamedll_linux "addons/metamod/dlls/metamod_i386.so"');
FileSetAttr(ePath + 'liblist.gam', 0);
eStr.SaveToFile(ePath + 'liblist.gam');
FileSetAttr(ePath + 'liblist.gam', faReadOnly); // important for listen servers
@ -454,44 +438,44 @@ begin
if not IsForbidden(FileList[i], OS) then begin
if Pos('base', FileList[i]) = 1 then begin
AddStatus('Copying file: addons\amxmodx\' + Copy(FileList[i], 6, Length(FileList[i])), clBlack);
FileCopy(ExtractFilePath(Application.ExeName) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 6, Length(FileList[i])), CopyConfig);
FileCopy(ExtractFilePath(ParamStr(0)) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 6, Length(FileList[i])), CopyConfig);
end;
case eMod of
modCS: begin
if Pos('cstrike', FileList[i]) = 1 then begin
AddStatus('Copying file: addons\amxmodx\' + Copy(FileList[i], 9, Length(FileList[i])), clBlack);
FileCopy(ExtractFilePath(Application.ExeName) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 9, Length(FileList[i])), CopyConfig);
FileCopy(ExtractFilePath(ParamStr(0)) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 9, Length(FileList[i])), CopyConfig);
end;
end;
modDoD: begin
if Pos('dod', FileList[i]) = 1 then begin
AddStatus('Copying file: addons\amxmodx\' + Copy(FileList[i], 5, Length(FileList[i])), clBlack);
FileCopy(ExtractFilePath(Application.ExeName) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 5, Length(FileList[i])), CopyConfig);
FileCopy(ExtractFilePath(ParamStr(0)) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 5, Length(FileList[i])), CopyConfig);
end;
end;
modTFC: begin
if Pos('tfc', FileList[i]) = 1 then begin
AddStatus('Copying file: addons\amxmodx\' + Copy(FileList[i], 5, Length(FileList[i])), clBlack);
FileCopy(ExtractFilePath(Application.ExeName) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 5, Length(FileList[i])), CopyConfig);
FileCopy(ExtractFilePath(ParamStr(0)) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 5, Length(FileList[i])), CopyConfig);
end;
end;
modNS: begin
if Pos('ns', FileList[i]) = 1 then begin
AddStatus('Copying file: addons\amxmodx\' + Copy(FileList[i], 4, Length(FileList[i])), clBlack);
FileCopy(ExtractFilePath(Application.ExeName) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 4, Length(FileList[i])), CopyConfig);
FileCopy(ExtractFilePath(ParamStr(0)) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 4, Length(FileList[i])), CopyConfig);
end;
end;
modTS: begin
if Pos('ts', FileList[i]) = 1 then begin
AddStatus('Copying file: addons\amxmodx\' + Copy(FileList[i], 4, Length(FileList[i])), clBlack);
FileCopy(ExtractFilePath(Application.ExeName) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 4, Length(FileList[i])), CopyConfig);
FileCopy(ExtractFilePath(ParamStr(0)) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 4, Length(FileList[i])), CopyConfig);
end;
end;
modESF: begin
if Pos('esf', FileList[i]) = 1 then begin
AddStatus('Copying file: addons\amxmodx\' + Copy(FileList[i], 5, Length(FileList[i])), clBlack);
FileCopy(ExtractFilePath(Application.ExeName) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 4, Length(FileList[i])), CopyConfig);
FileCopy(ExtractFilePath(ParamStr(0)) + 'files\' + FileList[i], ePath + 'addons\amxmodx\' + Copy(FileList[i], 4, Length(FileList[i])), CopyConfig);
end;
end;
end;
@ -612,7 +596,7 @@ begin
frmMain.IdFTP.Connect;
Result := True;
except
MessageBox(frmMain.Handle, 'Failed to reconnect. Installation has been aborted.', PChar(Application.Title), MB_ICONSTOP);
MessageBox(frmMain.Handle, 'Failed to reconnect. Installation aborted.', PChar(Application.Title), MB_ICONSTOP);
end;
end;
end;
@ -630,26 +614,24 @@ begin
ePath := '/';
CurNode := frmMain.trvDirectories.Selected;
if (Assigned(CurNode)) then begin
repeat
ePath := '/' + CurNode.Text + ePath;
CurNode := CurNode.Parent;
until (not Assigned(CurNode));
end;
repeat
ePath := '/' + CurNode.Text + ePath;
CurNode := CurNode.Parent;
until (not Assigned(CurNode));
Screen.Cursor := crAppStart;
frmMain.cmdCancel.Show;
frmMain.cmdCancel.Caption := '&Cancel';
frmMain.cmdNext.Hide;
Screen.Cursor := crHourGlass;
AddStatus('Scanning for directories...', clBlack);
with GetAllFiles(ExtractFilePath(Application.ExeName) + 'temp\*.*', faDirectory, True, True) do begin
with GetAllFiles(ExtractFilePath(ParamStr(0)) + 'temp\*.*', faDirectory, True, True) do begin
DirList.Text := Text;
Free;
end;
AddDone('found ' + IntToStr(DirList.Count) + ' directories..');
AddStatus('Scanning for files...', clBlack);
with GetAllFiles(ExtractFilePath(Application.ExeName) + 'temp\*.*', faAnyFile, True, False) do begin
with GetAllFiles(ExtractFilePath(ParamStr(0)) + 'temp\*.*', faAnyFile, True, False) do begin
FileList.Text := Text;
Free;
end;
@ -660,9 +642,9 @@ begin
frmMain.ggeItem.MaxValue := DirList.Count;
for i := 0 to DirList.Count -1 do
DirList[i] := Copy(DirList[i], Length(ExtractFilePath(Application.ExeName)) + 6, Length(DirList[i]));
DirList[i] := Copy(DirList[i], Length(ExtractFilePath(ParamStr(0))) + 6, Length(DirList[i]));
for i := 0 to FileList.Count -1 do
FileList[i] := Copy(FileList[i], Length(ExtractFilePath(Application.ExeName)) + 6, Length(FileList[i]));
FileList[i] := Copy(FileList[i], Length(ExtractFilePath(ParamStr(0))) + 6, Length(FileList[i]));
CopyConfig := True;
AddStatus('Checking for previous AMX Mod X installation...', clBlack);
@ -682,7 +664,7 @@ begin
// liblist.gam
AddStatus('Editing liblist.gam...', clBlack);
eStr := TStringList.Create;
eStr.LoadFromFile(ExtractFilePath(Application.ExeName) + 'temp\liblist.gam');
eStr.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'temp\liblist.gam');
if eStr.IndexOf('gamedll "addons\metamod\dlls\metamod.dll"') = -1 then begin
if Cancel then begin
AddStatus('', clBlack, False);
@ -700,8 +682,8 @@ begin
eStr.Add('gamedll_linux "addons/metamod/dlls/metamod_i386.so"')
else
eStr.Add('gamedll_linux "addons/metamod/dlls/metamod_amd64.so"');
FileSetAttr(ExtractFilePath(Application.ExeName) + 'temp\liblist.gam', 0);
eStr.SaveToFile(ExtractFilePath(Application.ExeName) + 'temp\liblist.gam');
FileSetAttr(ExtractFilePath(ParamStr(0)) + 'temp\liblist.gam', 0);
eStr.SaveToFile(ExtractFilePath(ParamStr(0)) + 'temp\liblist.gam');
end;
eStr.Free;
AddDone;
@ -746,7 +728,7 @@ begin
end;
if eGoBack then
goto CreateAgain;
goto CreateAgain;
AddDone;
@ -767,8 +749,8 @@ begin
if not IsForbidden(FileList[i], OS) then begin
AddStatus('Uploading file: ' + FileList[i], clBlack);
if FileExists(ExtractFilePath(Application.ExeName) + 'temp\' + FileList[i]) then begin
frmMain.ggeItem.MaxValue := FSize(ExtractFilePath(Application.ExeName) + 'temp\' + FileList[i]);
if FileExists(ExtractFilePath(ParamStr(0)) + 'temp\' + FileList[i]) then begin
frmMain.ggeItem.MaxValue := FSize(ExtractFilePath(ParamStr(0)) + 'temp\' + FileList[i]);
UploadAgain:
try
eGoBack := False;
@ -780,11 +762,11 @@ begin
AddStatus('Warning: CHMOD not supported.', clMaroon);
end;
UploadFile(ExtractFilePath(Application.ExeName) + 'temp\' + FileList[i], ePath + FileList[i], CopyConfig);
UploadFile(ExtractFilePath(ParamStr(0)) + 'temp\' + FileList[i], ePath + FileList[i], CopyConfig);
try
if FileList[i] = 'liblist.gam' then
frmMain.IdFTP.Site('CHMOD 444 liblist.gam');
frmMain.IdFTP.Size('CHMOD 444 liblist.gam');
except
AddStatus('Warning: CHMOD not supported.', clMaroon);
end;
@ -823,8 +805,8 @@ begin
end;
AddStatus('', clBlack, False);
AddStatus('Cleaning up installation...', clBlack, False);
if (DirectoryExists(ExtractFilePath(Application.ExeName) + 'temp')) then
DelTree(ExtractFilePath(Application.ExeName) + 'temp');
if (DirectoryExists(ExtractFilePath(ParamStr(0)) + 'temp')) then
DelTree(ExtractFilePath(ParamStr(0)) + 'temp');
AddDone;
frmMain.ggeAll.Progress := frmMain.ggeAll.MaxValue;

View File

@ -5056,7 +5056,6 @@ object frmMain: TfrmMain
'2111-1307 USA'
' Everyone is permitted to copy and distribute verbatim copies'
' of this license document, but changing it is not allowed.'
''
#9#9#9' Preamble'
' The licenses for most software are designed to take away your'
@ -6102,14 +6101,14 @@ object frmMain: TfrmMain
end
object lblStep2: TLabel
Left = 44
Top = 230
Top = 254
Width = 244
Height = 13
Caption = '4. Connect to server and select the mod directory:'
end
object lblStep4: TLabel
Left = 44
Top = 188
Top = 214
Width = 117
Height = 13
Caption = '3. Select a game addon:'
@ -6123,7 +6122,7 @@ object frmMain: TfrmMain
end
object lblStep5: TLabel
Left = 44
Top = 334
Top = 358
Width = 64
Height = 13
Caption = '5. Click Next.'
@ -6313,7 +6312,7 @@ object frmMain: TfrmMain
end
object cmdConnect: TFlatButton
Left = 416
Top = 247
Top = 269
Width = 71
Height = 20
ColorFocused = 16245198
@ -6327,35 +6326,30 @@ object frmMain: TfrmMain
end
object pnlDirectory: TPanel
Left = 44
Top = 246
Top = 270
Width = 367
Height = 83
BevelOuter = bvLowered
TabOrder = 2
DesignSize = (
367
83)
object trvDirectories: TTreeView
Left = 1
Top = 1
Width = 365
Height = 81
Anchors = [akLeft, akTop, akRight, akBottom]
Align = alClient
BorderStyle = bsNone
Images = ilImages
Indent = 19
ReadOnly = True
TabOrder = 0
OnChange = trvDirectoriesChange
OnCollapsing = trvDirectoriesCollapsing
OnExpanding = trvDirectoriesExpanding
OnExpanded = trvDirectoriesExpanded
OnMouseDown = trvDirectoriesMouseDown
end
end
object cboGameAddon: TFlatComboBox
Left = 44
Top = 204
Top = 230
Width = 443
Height = 21
Style = csDropDownList
@ -6378,9 +6372,27 @@ object frmMain: TfrmMain
Left = 44
Top = 158
Width = 441
Height = 25
Height = 50
BevelOuter = bvLowered
TabOrder = 5
object lblOSNote: TLabel
Left = 4
Top = 24
Width = 435
Height = 22
Caption =
'Note: Most linux servers run on a 32-bit platform. If you are no' +
't sure what platform your server is using, you can still ask you' +
'r provider for further information about this topic.'
Enabled = False
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -9
Font.Name = 'Tahoma'
Font.Style = []
ParentFont = False
WordWrap = True
end
object optWindows: TFlatRadioButton
Left = 5
Top = 5
@ -6405,7 +6417,6 @@ object frmMain: TfrmMain
Width = 82
Height = 14
Caption = 'Linux (64-bit)'
Enabled = False
TabOrder = 2
end
end
@ -6758,7 +6769,6 @@ object frmMain: TfrmMain
object IdFTP: TIdFTP
Intercept = IdLogFile
MaxLineAction = maException
ReadTimeout = 0
RecvBufferSize = 1024
SendBufferSize = 1024
OnWork = IdFTPWork

Some files were not shown because too many files have changed in this diff Show More