.ini writing dont works :/
hi, sorry for my bad english, i have a problem, when I give ban the user, not stored in the. ini
PHP Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <celltrie>
#define PLUGIN "Ban by Name e ip"
#define VERSION "1.0"
#define AUTHOR "Roccoxx + rak(code del .ini)"
new Trie:g_trie
const ADMIN_FLAG = ADMIN_BAN // acceso al menu de ban
new g_maxplayers
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
g_trie = TrieCreate( )
g_maxplayers = get_maxplayers()
register_clcmd("say /banmm", "show_menu_banear_jugador")
}
public plugin_cfg() {
new ConfigDir[256]
get_configsdir(ConfigDir, charsmax(ConfigDir))
format(ConfigDir, charsmax(ConfigDir), "%s/amx_banbyroccoxx.ini", ConfigDir)
if(!file_exists(ConfigDir)) create_file(ConfigDir)
new Data[37], File = fopen(ConfigDir, "rt")
while (!feof(File)) {
fgets(File, Data, charsmax(Data))
trim(Data)
if (Data[0] == ';' || !Data[0])
continue;
rak_remove_quotes(Data)
TrieSetCell(g_trie,Data,1)
}
fclose(File)
}
create_file(ConfigDir[]) {
new File = fopen(ConfigDir, "wt")
fprintf(File, "; Lista de pts baneados^n; File location: $moddir/addons/amxmodx/configs/amx_banbyroccoxx.ini^n^n;Enjoy")
fclose(File)
}
public plugin_end( )
{
TrieDestroy( g_trie )
}
public client_connect(id){
new name[32], ip[40]
get_user_name(id, name, charsmax(name))
get_user_ip(id, ip, charsmax(ip))
if(TrieKeyExists(g_trie, name) || TrieKeyExists(g_trie, name)){
server_cmd("kick %s", name)
}
}
public show_menu_banear_jugador(id){
static flags; flags = get_user_flags(id)
if(flags & ADMIN_FLAG){
new menu = menu_create("Menu banear hacks", "banear_jugador")
new pos[3], name[32]
for(new i = 1; i <= g_maxplayers; i++){
if(is_user_connected(i)){
get_user_name(i, name, charsmax(name))
num_to_str(i, pos, charsmax(pos))
menu_additem(menu, name, pos)
}
}
menu_display(id, menu, 0)
}
else{
client_print(id, print_chat, "No tienes acceso")
}
return PLUGIN_HANDLED
}
public banear_jugador(id, menu, item){
if(item == MENU_EXIT || !is_user_connected(id)){
menu_destroy(menu)
return PLUGIN_HANDLED
}
new iData[6];
new iAccess;
new ip[40]
new iCallback;
new iName[64];
new name[33]
get_user_name(id, name, charsmax(name))
menu_item_getinfo(menu, item, iAccess, iData, 5, iName, 63, iCallback)
new iTarget = str_to_num(iData);
get_user_ip(iTarget, ip, charsmax(ip))
TrieSetCell(g_trie, iName, 1)
TrieSetCell(g_trie, ip, 1)
aniadir_ini(iName)
aniadir_ini(ip)
server_cmd("kick %s", iName)
client_print(0, print_chat, "%s ha sido baneado por el admin %s", iName, name)
menu_destroy(menu)
return PLUGIN_HANDLED
}
public aniadir_ini(const nombre[]){
new ConfigDir[256]
get_configsdir(ConfigDir, charsmax(ConfigDir))
format(ConfigDir, charsmax(ConfigDir), "%s/amx_banbyroccoxx.ini", ConfigDir)
new File, Line, Data[256]
File = fopen(ConfigDir , "rt")
while(!feof(File)) {
fgets(File, Data, charsmax(Data))
trim(Data)
Line++
if (Data[0] == ';' || !Data[0])
continue;
write_file(ConfigDir, nombre, Line - 1)
break;
}
fclose(File)
}
stock rak_remove_quotes(Args[]) {
static n
if(!Args[0])
return
else if(Args[0] == 34) {
for(n = 1;/* nothing */; n++) {
if(!Args[n] || Args[n] == 34 && !Args[n+1]) {
Args[n] = 0
break;
}
Args[n-1] = Args[n]
}
}
else {
for(n = 1;/* nothing */; n++) {
if(!Args[n] || Args[n] == 34 && !Args[n+1]) {
Args[n] = 0
break;
}
}
}
}
|