PHP Code:
#include <amxmodx>
#include <amxmisc>
#define TASK_GENERAL 100
#define TASK_KICK 200
new const rules[] = "rules.txt";
public plugin_init()
{
register_plugin("Terms and Agreements","0.20","DahVid/Avalanche");
register_menucmd(register_menuid("rules_menu"),1023,"RulesMenu");
set_task(1.0,"checkforfiles");
}
public checkforfiles()
{
if(!file_exists(rules)) write_file(rules,"Erase this line and add your rules here. HTML can be used.")
}
public client_putinserver(id)
{
remove_task(TASK_GENERAL+id);
remove_task(TASK_KICK+id);
if(is_user_bot(id)) return;
new szData[3][32], line, k;
static szPAuthid[32], szLine[256];
get_user_authid(id,szPAuthid,31);
while((line = read_file(agreedfile,line,szLine,255,k)) != 0)
{
if(szLine[0] == ';' || !k) continue;
parse(szLine,szData[0],31,szData[1],31,szData[2],31);
if(equal(szPAuthid,szData[0])) return; // user has agreed before
}
set_task(5.0,"DisplayRulesMenu",TASK_GENERAL+id);
}
public client_disconnect(id)
{
remove_task(TASK_GENERAL+id);
remove_task(TASK_KICK+id);
}
public DisplayRulesMenu(taskid)
{
new id = taskid-TASK_GENERAL;
static szMenuBody[256];
if(!szMenuBody[0])
{
new len = format(szMenuBody,255,"Terms and Agreements:^n");
len += format(szMenuBody[len],255-len,"^n7. Agree");
len += format(szMenuBody[len],255-len,"^n8. Decline");
len += format(szMenuBody[len],255-len,"^n^n9. Show Rules");
}
new keys = MENU_KEY_7|MENU_KEY_8|MENU_KEY_9;
show_menu(id,keys,szMenuBody,-1,"rules_menu");
}
public RulesMenu(id,key)
{
switch(key)
{
case 6:
{
client_print(id,print_chat,"* Thanks, have a fun time playing!");
}
case 7:
{
server_cmd("kick #%i ^"You declined the rules!^"",get_user_userid(id));
}
case 8:
{
client_print(id,print_chat,"* Please read the rules more diligently to risk being banned!");
show_motd(id,rules,"SERVER RULES");
set_task(5.0,"DisplayRulesMenu",TASK_GENERAL+id);
}
}
}