|
Veteran Member
Join Date: Jun 2008
Location: You really don't wanna k
|

08-22-2008
, 07:46
Re: Edit script Public Rules on Death & Join
|
#4
|
Fixed
PHP 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_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) != 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 if( get_cvar_num("rules_show_dead") ){ if( is_user_alive(pID[0]) ){ // Added by dor123 to make sure a player can only use the command if he's dead. 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;). } } else { 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 }
Note that I only changed it so when a player uses the client command that shows the rules, he will only see them if he's dead. Everything else is left as before. If you want me to change something else or I mis-understood you, tell me
__________________
O o
/Ż________________________
| IMMA FIRIN' MAH LAZOR!!!
\_ŻŻŻ
Last edited by Dores; 08-22-2008 at 07:52.
|
|