Raised This Month: $ Target: $400
 0% 

[AMXX] Getting the mapname


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Popeye
Junior Member
Join Date: Nov 2006
Old 06-30-2009 , 13:53   Re: [AMXX] Getting the mapname
Reply With Quote #7

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

new base[] = "rules.txt"

new i, num, text[127], hudmsg[440] //max hudmessage length was 439 chars (?)

public plugin_init()
{
    
    register_plugin("AMXX Public server rules", "1.20", "Priski")
    
    // register command
    
    register_concmd("rules_show", "rules", ADMIN_KICK, "- show rules to everybody")
    register_concmd("rules_enable", "r_enable", ADMIN_KICK, "- <1|0> set automessagin on/off")
    register_cvar("rules_admin_only", "0")
    register_cvar("rules_join", "1")
    register_cvar("rules_join_timeout", "5")
    register_cvar("rules_hudmessage_time", "10")
    register_cvar("rules_interval", "600")
    register_clcmd("say /rules", "clientrules", ADMIN_ALL, "- show rules")
} 

public plugin_cfg() {
    
    if (!file_exists(base)) {
        write_file(base, "; This is the public rules file, put your rules below")
        write_file(base, "; Remember, max amount of characters is 439")
        console_print(0, "%s file not found. creating new ...", base)
    }
    
}

public client_authorized ( id ) {
    // on join display rules
    
    if (get_cvar_num("rules_join")) {
        new tmp[1]
        tmp[0] = id
        set_task(1.0, "showrules",id,tmp,1)
        console_print(0, "[user %d] client auth!", tmp[0])
    }
    
    return PLUGIN_HANDLED
}


public showrules (pid[]) {
    new id = pid[0]
    
    if ( get_user_team(id) != 1 && get_user_team(id) != 2 ) {
        if (id) {
            new tmp[1]
            tmp[0] = id
            set_task(2.0, "showrules",id,tmp,1)  // not yet in server
            console_print(0, "[user %d] wait for joining team ...", id)
        }
        return PLUGIN_HANDLED
    }
    
    new tmp[1]
    tmp[0] = id
    
    console_print(0, "[user %d] joined team : %d", id, get_user_team(id))
    console_print(0, "[user %d] printing rules after %d seconds", id, get_cvar_num("rules_join_timeout"))
    
    set_task(get_cvar_float("rules_join_timeout"), "printrules", id, tmp, 1)  // not yet in server
    
    return PLUGIN_HANDLED
}

public printrules(pid[])
{
    new id = pid[0]
    if (file_exists(base))
        {
        
        console_print(0, "[user] printing rules for user %d", id)
        
        set_hudmessage ( 200, 150, 0, 0.02, 0.25, 2, 0.1, get_cvar_float("rules_hudmessage_time"), 0.05, 1.0, 1)
        format(hudmsg, 439, "")
        
        // read all the rules
        for(i=0; read_file(base, i, text, 127, num); i++) {
            if (num > 0 && text[0] != ';') {
                // display with predefined delay
                add(hudmsg,439,text)
                add(hudmsg,439,"^n")
            }
        }
        
        // show hudmessages
        show_hudmessage(id, hudmsg)
        
    }
    
    return PLUGIN_HANDLED
}


public r_enable(id, level, cid)
{
    if (!cmd_access(id, level, cid, 0)) {  // NOT ADMIN
        return PLUGIN_HANDLED
    }
    
    new arg[3]
    
    read_argv(1, arg, 2)
    new value = str_to_num(arg)
    
    if (!isalnum(arg[0]))
        value = -1
    
    if (value == 0) {
        
        if (task_exists(2)) // close task
            remove_task(2)    
        
        console_print(id, "You have disabled automatic messages")
        return PLUGIN_HANDLED
        
    }
    if (value == 1) {
        // activate task, reload if already exist
        if (task_exists(2)) {
            change_task(2, get_cvar_float("rules_interval"))
            } else {
            set_task(get_cvar_float("rules_interval"), "rules", 2, "", 0, "b")
        }    
        console_print(id, "You have enabled automatic messages")
        return PLUGIN_HANDLED        
    }
    if (task_exists(2)) {
        console_print(id, "automessages is ON.")
        } else {
        console_print(id, "automessages is OFF.")
    }
    console_print(id, "rules_enable <1|0> (1 = ON, 0 = OFF)")
    return PLUGIN_HANDLED        
    
}

public clientrules(id, level, cid) {
    new pID[1]
    pID[0] = id
    
    console_print(0,"[user %d]Print rules for me only",pID[0])
    printrules(pID[0])
}

public rules(id, level, cid)
{
    new pID[1]
    pID[0] = id
            
    if (!cmd_access(id, level, cid, 0)) {  // NOT ADMIN
        return PLUGIN_HANDLED
    }
    
    // read file to all users
    pID[0] = 0
    console_print(0,"[user %d]Print rules for all",id)
    printrules(pID[0])
    
    // Reset scheduled task after display
    if (get_cvar_float("rules_interval") > 0) {
        if (task_exists(2)) {
            change_task(2, get_cvar_float("rules_interval"))
            } else {
            set_task(get_cvar_float("rules_interval"), "rules", 200, "", 0, "b")
        }
    }
    
    return PLUGIN_HANDLED
}
Popeye is offline
 



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 15:31.


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