Ok. Tôi thấy vài scripters sử dụng chức năng này vì vậy tôi quyết định thực hiện hướng dẫn.
GIới Thiệu.
? và : có thể là một chức năng rất hữu ích ... Tôi sẽ giải thích một chút:
Code:
condition ? expresion1 : expresion2
2. Nếu condition là False, Thì sẽ thực hiện biểu thức expresion2
Ví Dụ:
PHP Code:
// Toán tử điều kiệnis_user_alive(index) ? /* Sống */ : /* Chết */
// Câu lệnh Ifif(is_user_alive(index))
/* Sống */else
/* Chết */
Làm thế nào để sử dụng chức năng này trong mã
1 Một ví dụ để in một giết / chết:
PHP Code:
new g_Kills[33];
public plugin_init()
register_event("DeathMsg","hook_death","a");
public hook_death()
{
new k = read_data( 1 );
g_Kills[k]++;
static kname[32];
get_user_name(k, kname, sizeof kname - 1);
// Biểu thức điều kiện
server_print("%s: %d kill%s", kname, g_Kills[k] == 1 ? "" : "s");
// Câu lệnh If
if(g_Kills[k] == 1)
server_print("%s: %d kill", kname, g_Kills[k]);
else
server_print("%s: %d kills", kname, g_Kills[k]);
}
2. Tùy thuộc vào hoạt động quản trị viên cvar:
PHP Code:
new pointer;
public plugin_init()
{
register_concmd("amx_example","example", ADMIN_BAN);
pointer = get_cvar_pointer("amx_show_activity");
}
public example(id)
{
if(!access(id,ADMIN_BAN))
return PLUGIN_HANDLED;
new name[32];
get_user_name(id, name, sizeof name - 1);
// condition operator
client_print(0, print_chat,"ADMIN %s: Shows an example",get_pcvar_num(pointer) == 2 ? name : "");
// if statement
if(get_pcvar_num(pointer) == 2)
client_print(0, print_chat,"ADMIN %s: Shows an example",name);
else if(get_pcvar_num(pointer) == 1)
client_print(0, print_chat,"ADMIN : Shows an example");
// switch statement
switch(get_pcvar_num(pointer))
{
case 2: client_print(0, print_chat,"ADMIN %s: Shows an example",name);
case 1: client_print(0, print_chat,"ADMIN : Shows an example");
}
return PLUGIN_HANDLED;
}
3. Tôi thấy kịch bản được đăng khoảng một tuần trước đây mà sẽ không cho phép một người chơi sử dụng 'say' lệnh:
PHP Code:
new bool:g_Gag[33];
public plugin_init()
register_clcmd("say","hook_say");
public hook_say(id)
{
if(g_Gag[id])
return PLUGIN_HANDLED;
return PLUGIN_CONTINUE;
}
PHP Code:
new bool:g_Gag[33];
public plugin_init()
register_clcmd("say","hook_say");
public hook_say(id)
return g_Gag[id] ? PLUGIN_HANDLED : PLUGIN_CONTINUE;
0 nhận xét:
Post a Comment