- Код: Выделить всё
#include <amxmodx>
#include <cstrike> // used for "cs_get_user_team"
#include <dhudmessage>
//Defines
#define TASK_TIME 1.0
#define dir "addons/amxmodx/configs/Anti_Camper.txt"
#define ACCESS ADMIN_LEVEL_A
new CAMPER_id[32]
//const TASK_event = 10002;
const TASK_Free_Jumps = 13332;
const TASK_Camper = 14442;
new Array:g_a_data;
new gs_PlusSize[][] = {"[+1]", "[+5]", "[+20]", "[+50]"}
new gi_nextSize, gi_CubeSize = 1, check_point = 1, Plus_minus = 1, Dev_draw_line = 1
new YXZ[3], X, Y, Z, X_1, X_2, Y_1, Y_2, Z_1, Z_2
//check_all_point() check_Camper(id)
new Origin_X[50],Origin_Y[50],Origin_Z[50],Origin_X_1[50],Origin_Y_1[50],Origin_Z_1[50]
new Origin_X_2[50],Origin_Y_2[50],Origin_Z_2[50]
new Player_message[32], one_cube[32]
new i_POINT
//radar()
new gmsgHostagePos, gmsgHostageK
new id_all[32]
new Max_Players
//check_Free_Jumps(id)
new Free_Jumps[32]
new distance, user_distance[32]
new origin_CT[3], origin_T[3]
new size_z = 1000, size_xy = 300 // ---------------------
new color_R = 0
new color_G = 190
new color_B = 250
new light = 950 //650
new time_line = 8
new g_iSprite
public plugin_precache()
{
g_iSprite = precache_model("sprites/laserbeam.spr");
}
public plugin_init()
{
register_plugin("Anti-Camper-Hns","1.0","RSO")
register_cvar("Line", "4"); // 7
register_cvar("Amplitude", "0");
gmsgHostagePos = get_user_msgid("HostagePos")
gmsgHostageK = get_user_msgid("HostageK")
set_task(TASK_TIME, "radar", 1111, _, _, "b")
register_clcmd("menu_point", "check_menu_point")
register_clcmd("Dev_point", "Dev_point", ACCESS, "<0/1> - Admin Commands")
check_all_point()
}
public client_putinserver(id) {event(id);}
public client_disconnect(id) {
remove_task(id + TASK_Free_Jumps); remove_task(id + TASK_Camper); remove_task(id); }
public event(id)
{
if(is_user_alive(id))
{
set_task(0.5,"check_Free_Jumps", id+TASK_Free_Jumps); // check_Free_Jumps(id)
set_task(1.0,"check_Camper", id+TASK_Camper); // check_Camper(id)
}
if(!task_exists(id)) {set_task(5.0,"event",id,_,_,"b");}
}
public Dev_point()
{
if(Dev_draw_line != 2) {Dev_draw_line++;}
else {Dev_draw_line = 1;}
}
//==================================================================================================
public check_Camper(id)
{
id -= TASK_Camper;
if(!file_exists(dir)) {return PLUGIN_HANDLED;}
new Org_YXZ[3]
new X1, X2, Y1, Y2, Z1, Z2 // XX, YY, ZZ,
time_line = 50; //50
new random = random_num(1,16)
switch(random)
{
case 1: color_R=237, color_G=255, color_B=208; case 2: color_R=206, color_G=18, color_B=6;
case 3: color_R=242, color_G=50, color_B=0; case 4: color_R=6, color_G=222, color_B=33;
case 5: color_R=7, color_G=120, color_B=76; case 6: color_R=47, color_G=254, color_B=47;
case 7: color_R=149, color_G=194, color_B=1; case 8: color_R=11, color_G=32, color_B=210;
case 9: color_R=87, color_G=42, color_B=228; case 10: color_R=56, color_G=253, color_B=55;
case 11: color_R=190, color_G=34, color_B=1; case 12: color_R=230, color_G=58, color_B=10;
case 13: color_R=129, color_G=94, color_B=204; case 14: color_R=17, color_G=136, color_B=43;
case 16: color_R=170, color_G=37, color_B=202; case 15: color_R=5, color_G=191, color_B=123;
}
for (new i = 0; i < i_POINT; i++)
{
//XX = Origin_X[i];YY = Origin_Y[i];ZZ = Origin_Z[i]
X1 = Origin_X_1[i]; X2 = Origin_X_2[i]
Y1 = Origin_Y_1[i]; Y2 = Origin_Y_2[i]
Z1 = Origin_Z_1[i]; Z2 = Origin_Z_2[i]
get_user_origin(id, Org_YXZ, 0);
if((Org_YXZ[0] <= X1)&&(Org_YXZ[0] >= X2)&&((Org_YXZ[1] <= Y1)&&(Org_YXZ[1] >= Y2))&&
((Org_YXZ[2] <= Z1)&&(Org_YXZ[2] >= Z2)))
{
if(Player_message[id] != 0)
{
if(one_cube[id] == i+1) {Player_message[id]++;}
else {Player_message[id] = 0;}
}
else{Player_message[id]++;}
one_cube[id] = i+1;
//Dev //client_print(id, print_chat, "RGB %d %d %d", color_R, color_G, color_B)
draw_line(X2, Y2, Z2, X2, Y2, Z1); draw_line(X2, Y1, Z2, X2, Y1, Z1);
draw_line(X1, Y1, Z2, X1, Y1, Z1); draw_line(X1, Y2, Z2, X1, Y2, Z1);
draw_line(X2, Y2, Z1, X2, Y1, Z1); draw_line(X2, Y1, Z1, X1, Y1, Z1);
draw_line(X1, Y1, Z1, X1, Y2, Z1); draw_line(X1, Y2, Z1, X2, Y2, Z1);
draw_line(X2, Y2, Z2, X2, Y1, Z2); draw_line(X2, Y1, Z2, X1, Y1, Z2);
draw_line(X1, Y1, Z2, X1, Y2, Z2); draw_line(X1, Y2, Z2, X2, Y2, Z2);
if(Player_message[id] == 5) {user_kill(id,1); Player_message[id] = 0;}
}
else
{
if(one_cube[id] == i+1) {Player_message[id] = 0;}
}
}
if(Player_message[id] == 1) {
set_dhudmessage(190, 190, 190, -1.0, 0.915, 1, 0.0, 1.5, 4.0, 0.0)
show_dhudmessage(id, "Camper ")
//set_hudmessage(190, 190, 190, 0.02, 0.91, 0, 1.0, 5.0)
//show_hudmessage(id, "Camper")
}
else if(Player_message[id] == 2) {
set_dhudmessage(102, 255, 0, -1.0, 0.915, 1, 0.0, 1.5, 4.0, 0.0)
show_dhudmessage(id, "Camper ")
}
else if(Player_message[id] == 3) {
set_dhudmessage(0, 195, 255, -1.0, 0.915, 1, 0.0, 1.5, 4.0, 0.0)
show_dhudmessage(id, "Camper ")
}
else if(Player_message[id] == 4) {
set_dhudmessage(255, 0, 0, -1.0, 0.915, 2, 0.0, 0.0, 0.7, 0.0) //0, 150, 255,
show_dhudmessage(id, "Camper ")
}
//Dev //client_print(id, print_chat, "Org_YXZ %d", Org_YXZ[0])
return PLUGIN_CONTINUE;
}
public check_Free_Jumps(id)
{
id -= TASK_Free_Jumps;
new id_P[32]//, Players_T[32]
new MaxPlayers//, Count_T
get_players(id_P, MaxPlayers, "ah") // Skip bot "c"
//get_players(Players_T, Count_T, "ahe", "TERRORIST")
for(new i = 1; i <= MaxPlayers; i++)
{
if(!is_user_alive(i) || i == id) continue;
if(cs_get_user_team(i) == CS_TEAM_T) {get_user_origin(i, origin_T);}
else {get_user_origin(i, origin_CT);}
distance = get_distance(origin_CT, origin_T)
//Dev client_print(id, print_chat, "distance %d", distance)
if( distance < 600 || origin_CT[1] == 0 || origin_T[1] == 0 ) {user_distance[id] = 0; break;}
else{user_distance[id] = 1;}
}
if(!is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_CT) {return PLUGIN_HANDLED;}
new USER_YXZ[3]
static CUBE_YXZ[3]
static XX, YY, ZZ, X1, X2, Y1, Y2, Z1, Z2
if(Free_Jumps[id] == 0)
{
get_user_origin(id, CUBE_YXZ, 0);
XX = CUBE_YXZ[0], YY = CUBE_YXZ[1], ZZ = CUBE_YXZ[2]
X1 = XX + size_xy, X2 = XX - size_xy, Y1 = YY + size_xy, Y2 = YY - size_xy,
Z1 = ZZ + size_z, Z2 = ZZ - size_z //Z2 = ZZ - 36
}
if(Dev_draw_line == 2) // off on
{
color_R = 0; color_G = 250; color_B = 190; time_line = 45; // 50 - 45
draw_line(X2, Y2, Z2, X2, Y2, Z1); draw_line(X2, Y1, Z2, X2, Y1, Z1);
draw_line(X1, Y1, Z2, X1, Y1, Z1); draw_line(X1, Y2, Z2, X1, Y2, Z1);
draw_line(X2, Y2, Z1, X2, Y1, Z1); draw_line(X2, Y1, Z1, X1, Y1, Z1);
draw_line(X1, Y1, Z1, X1, Y2, Z1); draw_line(X1, Y2, Z1, X2, Y2, Z1);
draw_line(X2, Y2, Z2, X2, Y1, Z2); draw_line(X2, Y1, Z2, X1, Y1, Z2);
draw_line(X1, Y1, Z2, X1, Y2, Z2); draw_line(X1, Y2, Z2, X2, Y2, Z2);
}
get_user_origin(id, USER_YXZ, 0);
if((USER_YXZ[0] <= X1)&&(USER_YXZ[0] >= X2)&&((USER_YXZ[1] <= Y1)&&(USER_YXZ[1] >= Y2))&&
((USER_YXZ[2] <= Z1)&&(USER_YXZ[2] >= Z2))&&(user_distance[id] == 1))
{
Free_Jumps[id]++
if(Free_Jumps[id] == 2)
{
set_hudmessage(190, 190, 190, 0.02, 0.91, 0, 1.0, 5.0)
show_hudmessage(id, "Free-Jumps")
}
if(Free_Jumps[id] > 3)
{
set_hudmessage(255, 0, 0, 0.02, 0.91, 0, 1.0, 5.0)
show_hudmessage(id, "Free-Jumps")
CAMPER_id[id] = id
}
}
else { Free_Jumps[id] = 0; CAMPER_id[id] = 0; }
return PLUGIN_CONTINUE;
}
public radar()
{
get_players(id_all, Max_Players, "ah") // Skip bot "c"
//get_players(Players_T, Count_T, "ahe", "TERRORIST")
if(Max_Players < 2) {return PLUGIN_HANDLED;}
new id, i;
new TEAM_T_list[32], Coords_T[3], count_T;
for (new id = 1; id <= Max_Players; id++)
{
if( (is_user_alive(id)) && (cs_get_user_team(id) == CS_TEAM_T) && (id == CAMPER_id[id]) )
{
count_T++; TEAM_T_list[count_T]=id;
}
}
for (id=1; id <= Max_Players; id++)
{
if(!is_user_alive(id)) {continue;}
for (i=1;i <= count_T;i++)
{
if(!is_user_alive(i)) {continue;}
get_user_origin(TEAM_T_list[i], Coords_T)
message_begin(MSG_ONE_UNRELIABLE, gmsgHostagePos, {0,0,0}, id)
write_byte(id)
write_byte(i) //cs_get_user_team(id) == CS_TEAM_T
write_coord(Coords_T[0])
write_coord(Coords_T[1])
write_coord(Coords_T[2])
message_end()
message_begin(MSG_ONE_UNRELIABLE, gmsgHostageK, {0,0,0}, id)
write_byte(i) //cs_get_user_team(id) == CS_TEAM_T
message_end()
}
}
return PLUGIN_CONTINUE;
}
public check_menu_point(id)
{
if(check_point == 1)
{
check_point = 0
get_user_origin(id, YXZ, 0);
client_print(id, print_chat,"X:[%d] Y:[%d] Z:[%d]", YXZ[0], YXZ[1], YXZ[2])
X = YXZ[0], Y = YXZ[1], Z = YXZ[2]
X_1 = X + 40, X_2 = X - 40, Y_1 = Y + 40, Y_2 = Y - 40, Z_1 = Z + 24, Z_2 = Z - 36
}
if (!task_exists(id)) {set_task(0.2,"line",id,_,_,"b");} //if (!task_exists(1112)) {set_task(0.2,"line",1112,_,_,"b");} // 8 = 0.2
server_menu(id)
}
public line(id)
{
Dev_draw_line = 1
if(Dev_draw_line == 1) // of on
{
time_line = 8; color_R = 0; color_G = 190; color_B = 250;
draw_line(X_2, Y_2, Z_2, X_2, Y_2, Z_1); draw_line(X_2, Y_1, Z_2, X_2, Y_1, Z_1);
draw_line(X_1, Y_1, Z_2, X_1, Y_1, Z_1); draw_line(X_1, Y_2, Z_2, X_1, Y_2, Z_1);
draw_line(X_2, Y_2, Z_1, X_2, Y_1, Z_1); draw_line(X_2, Y_1, Z_1, X_1, Y_1, Z_1);
draw_line(X_1, Y_1, Z_1, X_1, Y_2, Z_1); draw_line(X_1, Y_2, Z_1, X_2, Y_2, Z_1);
draw_line(X_2, Y_2, Z_2, X_2, Y_1, Z_2); draw_line(X_2, Y_1, Z_2, X_1, Y_1, Z_2);
draw_line(X_1, Y_1, Z_2, X_1, Y_2, Z_2); draw_line(X_1, Y_2, Z_2, X_2, Y_2, Z_2);
}
get_user_origin(id,YXZ,0);
if((YXZ[0] <= X_1)&&(YXZ[0] >= X_2)&&((YXZ[1] <= Y_1)&&(YXZ[1] >= Y_2))&&((YXZ[2] <= Z_1)&&(YXZ[2] >= Z_2)))
{
client_print(id, print_chat,"+")
}
}
//==================================================================================================
public server_menu(id)
{
new i_Menu = menu_create("\r[\wНазвание меню\r]", "menu_handler")
if(Plus_minus == 1)
{
menu_additem(i_Menu, "\d[\y+X\d]", "1", 0) // pravo
menu_additem(i_Menu, "\d[\y+Y\d]", "2", 0) // pered
menu_additem(i_Menu, "\d[\y+Z\d]", "3", 0) // verh
menu_additem(i_Menu, "\d[\y+xx\d]", "4", 0)
menu_additem(i_Menu, "\d[\y+yy\d]", "5", 0)
menu_additem(i_Menu, "\d[\y+zz\d]", "6", 0)
menu_additem(i_Menu, "\d[\y+\d]", "7", 0)
menu_additem(i_Menu, "\d[\ysave\d]", "8", 0)
}
if(Plus_minus == 0)
{
menu_additem(i_Menu, "\d[\y-X\d]", "1", 0) // levo
menu_additem(i_Menu, "\d[\y-Y\d]", "2", 0) // nazad
menu_additem(i_Menu, "\d[\y-Z\d]", "3", 0) // niz
menu_additem(i_Menu, "\d[\y-xx\d]", "4", 0)
menu_additem(i_Menu, "\d[\y-yy\d]", "5", 0)
menu_additem(i_Menu, "\d[\y-zz\d]", "6", 0)
menu_additem(i_Menu, "\d[\y-\d]", "7", 0)
menu_additem(i_Menu, "\d[\rdel\d]", "8", 0)
}
menu_additem(i_Menu, gs_PlusSize[gi_nextSize], "9", 0) //gi_next
menu_additem(i_Menu, "\wВыход", "0", 0)
menu_addblank(i_Menu, 0)
menu_setprop(i_Menu, MPROP_PERPAGE, 0)
menu_display(id, i_Menu, 0)
}
public menu_handler(id, menu, item)
{
if (item == MENU_EXIT) {menu_destroy(menu); return PLUGIN_HANDLED;}
new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new i_Key = str_to_num(s_Data)
switch(i_Key)
{
case 1:
{
if(Plus_minus == 1) {X_1 += gi_CubeSize; X_2 -= gi_CubeSize;}
if(Plus_minus == 0) {X_1 -= gi_CubeSize; X_2 += gi_CubeSize;}
server_menu(id)
}
case 2:
{
if(Plus_minus == 1) {Y_1 += gi_CubeSize; Y_2 -= gi_CubeSize;}
if(Plus_minus == 0) {Y_1 -= gi_CubeSize; Y_2 += gi_CubeSize;}
server_menu(id)
}
case 3:
{
if(Plus_minus == 1) {Z_1 += gi_CubeSize; Z_2 -= gi_CubeSize;}
if(Plus_minus == 0) {Z_1 -= gi_CubeSize; Z_2 += gi_CubeSize;}
server_menu(id)
}
case 4:
{
if(Plus_minus == 1) {X_1 += gi_CubeSize; X_2 += gi_CubeSize;}
if(Plus_minus == 0) {X_1 -= gi_CubeSize; X_2 -= gi_CubeSize;}
server_menu(id)
}
case 5:
{
if(Plus_minus == 1) {Y_1 += gi_CubeSize; Y_2 += gi_CubeSize;}
if(Plus_minus == 0) {Y_1 -= gi_CubeSize; Y_2 -= gi_CubeSize;}
server_menu(id)
}
case 6:
{
if(Plus_minus == 1) { Z_1 += gi_CubeSize; Z_2 += gi_CubeSize;}
if(Plus_minus == 0) { Z_1 -= gi_CubeSize; Z_2 -= gi_CubeSize;}
server_menu(id)
}
case 7:
{
if(Plus_minus == 1) {Plus_minus = 0;}
else {Plus_minus = 1;}
server_menu(id)
}
case 8:
{
if(Plus_minus == 1) {save_point();} //save
else {del_point(); X = 0, Y = 0, Z = 0, X_1 = 0, X_2 = 0, Y_1 = 0, Y_2 = 0, Z_1 = 0, Z_2 = 0;}
check_point = 1
remove_task(id) //1112
}
case 9:
{
if(gi_nextSize == 0) {gi_nextSize = 1; gi_CubeSize = 5;}
else if(gi_nextSize == 1) {gi_nextSize = 2; gi_CubeSize = 20;}
else if(gi_nextSize == 2) {gi_nextSize = 3; gi_CubeSize = 50;}
else if(gi_nextSize == 3) {gi_nextSize = 0; gi_CubeSize = 1;}
server_menu(id)
/*if(gi_next != 3) {gi_next++;}
else { gi_next = 0;}*/
}
case 0: {remove_task(id);} //1112
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public check_all_point()
{
if(!file_exists(dir)) {return PLUGIN_HANDLED;}
new file = fopen(dir,"r") // "rt"
new s_buffer[50]; //[1024]
new org_x_1[17], org_y_1[17], org_z_1[17], org_x_2[17], org_y_2[17], org_z_2[17],
org_x[17], org_y[17], org_z[17];
i_POINT = 0
while(!feof(file))
{
fgets(file, s_buffer, charsmax(s_buffer)); // считывает одну строку из файла
parse(s_buffer, org_x, charsmax(org_x), org_y, charsmax(org_y), org_z, charsmax(org_z),
org_x_1, charsmax(org_x_1), org_y_1, charsmax(org_y_1), org_z_1, charsmax(org_z_1),
org_x_2, charsmax(org_x_2), org_y_2, charsmax(org_y_2), org_z_2, charsmax(org_z_2));
i_POINT++
Origin_X[i_POINT] = str_to_num(org_x);
Origin_Y[i_POINT] = str_to_num(org_y);
Origin_Z[i_POINT] = str_to_num(org_z);
Origin_X_1[i_POINT] = str_to_num(org_x_1);
Origin_Y_1[i_POINT] = str_to_num(org_y_1);
Origin_Z_1[i_POINT] = str_to_num(org_z_1);
Origin_X_2[i_POINT] = str_to_num(org_x_2);
Origin_Y_2[i_POINT] = str_to_num(org_y_2);
Origin_Z_2[i_POINT] = str_to_num(org_z_2);
//fclose(file)
//Dev //client_print(0, print_chat,"X:[%d] Y:[%d] Z:[%d] X1:[%d] Y1:[%d] Z1:[%d] X2:[%d] Y2:[%d] Z2:[%d]",
//X, Y, Z, X_1, Y_1, Z_1, X_2, Y_2, Z_2)
}
return PLUGIN_CONTINUE;
}
public draw_line(X_1, Y_1, Z_1, X_2, Y_2, Z_2)
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_BEAMPOINTS);
write_coord(X_1); // Стартовая точка x
write_coord(Y_1); // Стартовая точка y
write_coord(Z_1); // Стартовая точка z
write_coord(X_2); // Конечная точка x2
write_coord(Y_2); // Конечная точка y2
write_coord(Z_2); // Конечная точка z2
write_short(g_iSprite); // Индекс спрайта
write_byte(1); // Стартовый кадр
write_byte(1); // Скорость анимации
write_byte(time_line); // Время существования 1000
write_byte(get_cvar_num("Line")); // Толщина луча
write_byte(get_cvar_num("Amplitude")); // Искажение
write_byte(color_R); // Цвет красный
write_byte(color_G); // Цвет зеленый
write_byte(color_B); // Цвет синий
write_byte(light); // Яркость
write_byte(0); // ...
message_end();
}
public save_point()
{
new i_file = fopen(dir,"at")
if(!i_file) {return PLUGIN_HANDLED;} //Если ошибка открытии файла
new buffer[50]
formatex(buffer, 49, "%d%s%d%s%d%s%d%s%d%s%d%s%d%s%d%s%d", X, " ", Y, " ", Z, " ", X_1, " ", Y_1,
" ", Z_1, " ", X_2, " ", Y_2, " ", Z_2);
write_file(dir, buffer, -1)
fclose(i_file)
client_print(0, print_chat,"X:{%d} Y:{%d} Z:{%d} X1:{%d} Y1:{%d} Z1:{%d} X2:{%d} Y2:{%d} Z2:{%d}",
X, Y, Z, X_1, Y_1, Z_1, X_2, Y_2, Z_2)
return PLUGIN_CONTINUE;
}
public del_point() { write_file(dir, "", -1); Delete_Null_String();}
public Delete_Null_String()
{
g_a_data=ArrayCreate(50) //1024
new i_file = fopen(dir,"rt")
new s_buffer[50] //1024
if(!i_file) {return PLUGIN_HANDLED;} // Если произошла ошибка открытии файла
while(!feof(i_file)) // Цикл выполнятся пока файл не достигнет конца "конца файла не путать с хреном"
{
fgets(i_file,s_buffer,49) //1023 // Получаем строку из файла в s_buffer
trim(s_buffer) // Очищаем строку от каретки
ArrayPushString(g_a_data,s_buffer) // Добавляем строку в массив
}
fclose(i_file) // Закрываем файл по индексу
delete_file(dir) // Удаляем файл
//----------------------------------------------------------------------------------------------
fopen(dir,"rt")
new i_size=ArraySize(g_a_data)
if(!i_size) {return PLUGIN_HANDLED;} // Если размер нулевой - прекращаем работу
new s_2buffer[50], index = 0 //1024
for(new a; a < i_size; a++)
{
ArrayGetString(g_a_data, a, s_2buffer, 50) //1023
if(strlen(s_2buffer) != 0) {write_file(dir, s_2buffer, index); index++;} // самое главное
//!equal(s2_buffer, player_name)
}
fclose(i_file)
ArrayClear(g_a_data)
return PLUGIN_CONTINUE;
}
таймер
- Код: Выделить всё
public event(id)
{
if(is_user_alive(id))
{
check_Free_Jumps(id)//if(!task_exists(13332+id)) {set_task(0.5,"check_Free_Jumps", 13332+id);} //
check_Camper(id)//if(!task_exists(14442+id)) {set_task(1.0,"check_Camper", 14442+id);} //
}
//else {remove_task(13332+id); remove_task(14442+id);}
if(!task_exists(id)) {set_task(5.0,"event",id,_,_,"b");} //if(!task_exists(10002+id)) {set_task(5.0,"event",10002+id,_,_,"b");} //
}
return
- Код: Выделить всё
//if( (!is_user_alive(id)) && (cs_get_user_team(id) != CS_TEAM_T) ) {return PLUGIN_HANDLED;}
if( (is_user_alive(id)) && (cs_get_user_team(id) == CS_TEAM_T) )
Добавлено спустя 2 минуты 19 секунд:
приветствую все замечания по коду