Raised This Month: $51 Target: $400
 12% 

[Req] Small edit in a plugin


Post New Thread Reply   
 
Thread Tools Display Modes
sigerman
Senior Member
Join Date: Aug 2013
Location: Argentina, Bs.As.
Old 09-28-2016 , 18:13   Re: [Req] Small edit in a plugin: Admin Expired Date
Reply With Quote #11

Quote:
Originally Posted by Napoleon_be View Post
Lol why was i making it harder for myself while it could be done so easy, should work properly now

PHP Code:
#include <amxmodx>
#include <amxmisc>

enum data
{
    
szadmin[40],
    
iaccess,
    
szvencimiento[12]
}
new 
g_iSayText
new AdminData[32][data]

public 
plugin_init()
{
    
register_plugin("Admin Vencimiento""0.2""N!K")

    
register_clcmd("say /vencimiento""cmdVencimiento")
    
g_iSayText get_user_msgid("SayText")
    
CargarVencimientos()
}

public 
plugin_cfg()
{
    
server_cmd("amx_pausecfg add ^"Admin Vencimiento^"")
}

public 
client_putinserver(id) {
    
set_task(10.0"cmdVencimiento"id)
}

public 
cmdVencimiento(id)
{
    if (!
is_user_admin(id))
        return 
PLUGIN_CONTINUE

    
new auth[32]
    for(new 
0admins_num(); i++)
    {
        
console_print(id"%s - %d - %s",AdminData[i][szadmin], AdminData[i][iaccess], AdminData[i][szvencimiento])

        switch(
AdminData[i][iaccess])
        {
            case 
1get_user_name(idauth31)
            case 
2get_user_authid(idauth31)
            case 
3get_user_ip(idauth311)
        }

        if(
containi(AdminData[i][szadmin], auth) != 1)
        {
            if(
AdminData[i][szvencimiento][0])
                
ChatColor(id"[AMXX] Tu administrador vence el dia: %s"AdminData[i][szvencimiento])
            break
        }    
    }
    return 
PLUGIN_HANDLED
}

CargarVencimientos()
{
    new 
szFile[64]
    
get_localinfo("amxx_configsdir"szFilecharsmax(szFile))
    
formatex(szFilecharsmax(szFile), "%s/users.ini"szFile)

    new 
file fopen(szFile"rt")
    if(!
file)
    {
        
log_amx("no se si alguna vez se ejecutara esta linea pero es por seguridad (?")
        return 
PLUGIN_HANDLED
    
}

    new 
auxaccess[6], szLine[256], contador 0bool:adminsvencidos false
    
new szaux[12], szdia[5], szmes[5], szanio[5], diamesanio
    get_time
("%d"szdiacharsmax(szdia))
    
dia str_to_num(szdia)
    
get_time("%m"szmescharsmax(szmes))
    
mes str_to_num(szmes)
    
get_time("%Y"szaniocharsmax(szanio))
    
anio str_to_num(szanio)

    while(!
feof(file))
    {
        
fgets(fileszLinecharsmax(szLine))
        
trim(szLine)

        if (!
szLine[0] || szLine[0] == ';')
            continue

        if(
parse(szLineAdminData[contador][szadmin], 39szLinecharsmax(szLine), szLinecharsmax(szLine), auxaccess5AdminData[contador][szvencimiento], 11) < 5)
            continue

        
remove_quotes(AdminData[contador][szadmin])
        
remove_quotes(auxaccess)
        
remove_quotes(AdminData[contador][szvencimiento])
        
copy(szaux11AdminData[contador][szvencimiento])
        
replace_all(szaux11"/"" ")
        
parse(szauxszdia4szmes4szanio4)
        if(
str_to_num(szanio) <= anio && str_to_num(szmes) <= mes && str_to_num(szdia) <= dia)
        {
            
adminsvencidos true
            log_amx
("1 admin vencido detected (?")
            continue
        }
        
//-------------------------- esta parte de aca no anda D: --------------------------
        
if(containi(auxaccess"b") != -1)    // b: admin por tag
            
AdminData[contador][iaccess] = 1
        
if(containi(auxaccess"c") != -1)    // c: admin por steam
            
AdminData[contador][iaccess] = 2
        
if(containi(auxaccess"d") != -1)    // d: admin por ip
            
AdminData[contador][iaccess] = 3
        
//----------------------------------------------------------------------------------
        
contador++
    }

    if(!
adminsvencidos)
    {
        
fclose(file)
        return 
PLUGIN_HANDLED
    
}

    
fseek(file0SEEK_SET)
    new 
szFile2[64], auxvenc[12], dummy1[32], dummy2[32], dummy3[32], dummy4[32]
    
formatex(szFile2charsmax(szFile2), "%s2"szFile)
    new 
file2 fopen(szFile2"wt")
    if(!
file2)
    {
        
log_amx("no se si alguna vez se ejecutara esta linea pero es por seguridad (?")
        return 
PLUGIN_HANDLED
    
}

    while(!
feof(file))
    {
        
fgets(fileszLinecharsmax(szLine))
        
trim(szLine)

        if(
szLine[0] && szLine[0] != ';' && parse(szLinedummy131dummy231dummy331dummy431auxvenc11) > 4)
        {
            
copy(szaux11auxvenc)
            
replace_all(szaux11"/"" ")
            
parse(szauxszdia4szmes4szanio4)
            if(
str_to_num(szanio) <= anio && str_to_num(szmes) <= mes && str_to_num(szdia) <= dia)
            {
                
formatex(szLinecharsmax(szLine), ";^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^" -- ADMINISTRADOR VENCIDO --"dummy1dummy2dummy3dummy4auxvenc)
            }
        }
        
formatex(szLinecharsmax(szLine), "%s^n"szLine)
        
fputs(file2szLine)
    }

    
fclose(file)
    
fclose(file2)
    
delete_file(szFile)
    
rename_file(szFile2szFile1)
    
server_cmd("amx_reloadadmins")
    
log_amx("Admins deshabilitados con exito e.e (?")
    return 
PLUGIN_HANDLED
}

stock ChatColor(const id, const input[], any:...)
{
    new 
count 1players[32];
    static 
msg[191];
    
vformat(msg190input3);
 
    
replace_all(msg190"!g""^4"); // Green Color
    
replace_all(msg190"!y""^1"); // Default Color
    
replace_all(msg190"!team""^3"); // Team Color
    
replace_all(msg190"!team2""^0"); // Team2 Color
 
    
new iPlayer;
     
    if (
idplayers[0] = id; else get_players(playerscount"ch");
    {
        for (new 
0counti++)
        {
            
iPlayer players[i];
            if (
is_user_connected(iPlayer))
            {
                
message_begin(MSG_ONE_UNRELIABLEg_iSayText_iPlayer);
                
write_byte(iPlayer);
                
write_string(msg);
                
message_end();
            }
        }
    }

XD

The text is fine now.

I've found something wrong, I'll give you some examples

in users.ini:
PHP Code:
1"STEAM_0:1:21116" "xx3" "abcdefgijmou" "c" "18/10/2016"
2"STEAM_0:1:21117" "xx1" "abcdefgijmu" "c" "17/11/2016"
3"STEAM_0:1:21118" "xx2" "abcdefgijmu" "c" "7/10/2016"
*4"STEAM_0:1:21119" "xx2" "abcdefgijmu" "c" "" 
When you type /vencimiento (/expire) in say, only the first date in users.ini is shown to every admin, instead of showing properly
_____________________________________________

So, for example, if you are admin number one in users.ini, the text will be fine

_____________________________________________

But, if you are admin number two, the same date of admin number one appears

_____________________________________________

With admin three and on, happens the same thing, all with the same date, the first one in users.ini
_____________________________________________

*Note: Admin number four is without date, maybe useful for modifying the plugin, that admin will be
unexpired

Last edited by sigerman; 09-28-2016 at 18:25.
sigerman is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 19:04.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode