Raised This Month: $ Target: $400
 0% 

Edit script Public Rules on Death & Join


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Dores
Veteran Member
Join Date: Jun 2008
Location: You really don't wanna k
Old 08-18-2008 , 19:55   Re: Edit script Public Rules on Death & Join
Reply With Quote #2

all you had to do was to add a simple cvar and to make an if statment to see if it's set to 1. if so, you check if user is alive. if not, nothing will happen. but since i had nothing better to do i did that for ya

PHP Code:
#include <amxmodx>
#include <amxmisc>
new base[] = "rules.txt"
new inumtext[127], hudmsg[440//max hudmessage length was 439 chars (?)
new DeathMsg;
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_cvar("rules_show_dead""1"// if set to 1 (default), rules will be only showed if the player is dead. (dor123)
    
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) != && get_user_team(id) != ) {
        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"idget_user_team(id))
    
console_print(0"[user %d] printing rules after %d seconds"idget_cvar_num("rules_join_timeout"))
 
    
set_task(get_cvar_float("rules_join_timeout"), "printrules"idtmp1)  // 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 20015000.020.2520.1get_cvar_float("rules_hudmessage_time"), 0.051.01)
        
format(hudmsg439"")
 
        
// read all the rules
        
for(i=0read_file(baseitext127num); i++) {
            if (
num && text[0] != ';') {
                
// display with predefined delay
                
add(hudmsg,439,text)
                
add(hudmsg,439,"^n")
            }
        }
 
        
// show hudmessages
        
show_hudmessage(idhudmsg)
 
    }
 
    return 
PLUGIN_HANDLED
}
 
public 
r_enable(idlevelcid)
{
    if (!
cmd_access(idlevelcid0)) {  // NOT ADMIN
        
return PLUGIN_HANDLED
    
}
 
    new 
arg[3]
 
    
read_argv(1arg2)
    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(2get_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(idlevelcid) {
    new 
pID[1]
    
pID[0] = id
 
    
if( get_cvar_num("rules_show_dead") ){
 
         if( !
is_user_alive ){     // Added by dor123 to make sure a player can only use the command if he's dead.
 
              
console_print(0,"[user %d]Print rules for me only",pID[0])
              
printrules(pID[0])
         }
 
         else {
 
              
client_print(pID[0], print_chat"You can only use that command when you're dead."); // if user is alive, do nothing (we DON'T need to return PLUGIN_HANDLED;).
         
}
    }
}
public 
rules(idlevelcid)
{
    new 
pID[1]
    
pID[0] = id
 
    
if (!cmd_access(idlevelcid0)) {  // 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(2get_cvar_float("rules_interval"))
            } else {
            
set_task(get_cvar_float("rules_interval"), "rules"200""0"b")
        }
    }
 
    return 
PLUGIN_HANDLED

if it doesn't work tell me. (not tested)

EDIT: BTW, if I didn't understand exactly what you wanted, also tell me .
__________________
O o
/Ż________________________
| IMMA FIRIN' MAH LAZOR!!!
\_ŻŻŻ

Last edited by Dores; 08-18-2008 at 20:00.
Dores 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 03:08.


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