Chronic:
Not necessarily a much more efficient way to detect if someone has the appropriate admin flags but it is much cleaner and will allow people using your plugin to specify as many admin flags as they'd like.
Instead of this:
Code:
public team_select(id)
{
new flag
new cvarstring[1]
get_pcvar_string(pcvar,cvarstring,1)
switch(cvarstring[0])
{
case 'a': flag = 1
case 'b': flag = 2
case 'c': flag = 4
case 'd': flag = 8
case 'e': flag = 16
case 'f': flag = 32
case 'g': flag = 64
case 'h': flag = 128
case 'i': flag = 256
case 'j': flag = 512
case 'k': flag = 1024
case 'l': flag = 2048
case 'm': flag = 4096
case 'n': flag = 8192
case 'o': flag = 16384
case 'p': flag = 32768
case 'q': flag = 65536
case 'r': flag = 131072
case 's': flag = 262144
case 't': flag = 524288
case 'u': flag = 1048576
case 'y': flag = 16777216
case 'z': flag = 33554432
}
if(get_user_flags(id) & flag)
{
if(task_exists(id)) remove_task(id)
}
else if(!task_exists(id))
{
set_task(2.0,"check_team",id,"",0,"b")
}
}
You can do this:
Code:
public team_select(id)
{
new adminFlags[32];
get_pcvar_string(pcvar, adminFlags, 31);
if (get_user_flags(id) & read_flags(adminFlags))
{
if(task_exists(id)) remove_task(id)
}
else if(!task_exists(id))
{
set_task(2.0,"check_team",id,"",0,"b")
}
}
__________________