Senior Member
Join Date: Oct 2020
Location: Philippines from South K
|
04-21-2021
, 14:00
Loading plugins from disabled-map.ini
|
#1
|
Hello, i'm just wondering if this possible? I've seen this done in CS:BTE (CSNZ version of 1.6).
I look around in CS:BTE plugins and I found this plugin named "BTE_ChangeMode.amxx". I decompiled it and this is the result.
I don't know how he loads plugins from disabled.ini files.
PHP Code:
#pragma semicolon 1
#pragma ctrlchar '\'
new bte_mode[13][16] =
{
"none",
"td",
"dm",
"ze",
"zb1",
"zb3",
"zb4",
"ghost",
"zse",
"gd",
"zbexter",
"zg",
"zb2"
};
get_configsdir(String:name[], len)
{
return get_localinfo("amxx_configsdir", name, len);
}
public plugin_init()
{
register_plugin("BTE Choose Mode", "1.0", "NN");
register_srvcmd("bte_change_mode", "cmd_change_mode", -1, "");
return 0;
}
public cmd_change_mode(id)
{
new sCmd[32];
read_argv(1, sCmd, 31);
if (!sCmd[0])
{
server_print("usage: bte_change_mode < mode >");
return 1;
}
change_mode(sCmd);
return 1;
}
public change_mode(String:mode[])
{
new config_dir[64];
new url_new[64];
new url_new2[64];
get_configsdir(config_dir, 63);
format(url_new, 63, "%s/plugins-%s.ini", config_dir, mode);
format(url_new2, 63, "%s/disabled-%s.ini", config_dir, mode);
if (file_exists(url_new))
{
server_print("Current mode already is %s", mode);
return 0;
}
if (!file_exists(url_new2))
{
server_print("NOT exist %s", mode);
return 0;
}
new i = 0;
while (i < 13)
{
new url[64];
new url2[64];
format(url, 63, "%s/plugins-%s.ini", config_dir, bte_mode[i][0][0]);
format(url2, 63, "%s/disabled-%s.ini", config_dir, bte_mode[i][0][0]);
if (file_exists(url))
{
rename(url, url2);
i++;
}
i++;
}
rename(url_new2, url_new);
client_print(0, print_chat, "[Server] game mode changed to %s", mode);
return 0;
}
public rename(String:old_name[], String:new_name[])
{
new game[32];
game[0] = 1888;
new old_name_furl[200];
new new_name_furl[200];
format(old_name_furl, 199, "%s/%s", game, old_name);
format(new_name_furl, 199, "%s/%s", game, new_name);
rename_file(old_name_furl, new_name_furl, 0);
return 0;
}
Fixed version (rewrite):
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include "inc/BTE_API.inc"
new bte_mode[][16] = {"none", "td", "dm", "ze", "zb1" , "zb3", "zb4", "ghost", "zse", "gd"};
public plugin_init()
{
register_plugin("BTE Choose Mode", "1.0", "NN");
register_srvcmd("bte_change_mode", "cmd_change_mode");
}
public cmd_change_mode(id)
{
new sCmd[32];
read_argv(1, sCmd, 31);
if (!sCmd[0])
{
server_print("usage: bte_change_mode < mode >");
return PLUGIN_HANDLED;
}
change_mode(sCmd);
return PLUGIN_HANDLED;
}
public change_mode(mode[])
{
new config_dir[64], url_new[64], url_new2[64];
get_configsdir(config_dir, charsmax(config_dir));
format(url_new, charsmax(url_new), "%s/plugins-%s.ini", config_dir, mode);
format(url_new2, charsmax(url_new2), "%s/disabled-%s.ini", config_dir, mode);
if (file_exists(url_new))
{
server_print("Current mode already is %s", mode);
return;
}
if (!file_exists(url_new2))
{
server_print("NOT exist %s", mode);
return;
}
for (new i=0; i<sizeof(bte_mode); i++)
{
new url[64], url2[64];
format(url, charsmax(url), "%s/plugins-%s.ini", config_dir, bte_mode[i]);
format(url2, charsmax(url2), "%s/disabled-%s.ini", config_dir, bte_mode[i]);
if (file_exists(url))
rename(url, url2);
}
rename(url_new2, url_new);
//server_print("Mode changed, please change map or restart server.");
client_print(0, print_chat, "[Server] game mode changed to %s", mode);
}
public rename(old_name[], new_name[])
{
new game[32] = "cstrike"
new old_name_furl[200], new_name_furl[200]
format(old_name_furl, 199, "%s/%s", game, old_name)
format(new_name_furl, 199, "%s/%s", game, new_name)
rename_file(old_name_furl, new_name_furl, 0);
}
__________________
Last edited by nG_getwreck; 04-21-2021 at 14:05.
|
|