ЗАКРЫТЬ
Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

^Место доступно для покупки - 3500 руб/мес^

Наши новости:

02-дек
17-апр
30-дек
29-дек

История благодарностей участнику ncux0Zz ::: Спасибо сказали: 11
Дата поста: В теме: За сообщение: Спасибо сказали:
16.4.2019, 19:19 Есть ли что-то подозрительное у игрока?
Цитата(wcg @ 14.4.2019, 3:49) *
google.bsk,
Надо его пов-демку!!! А не с наблюдателей


Да, нет смысла смотреть демку из наблюдателей.
Нужно POV только его личный, предлагаю выдать ему "Бан" с просьбой предоставить POV демо.
Но бан надо давать тогда, когда играть будет жёстко.
google.bsk
25.1.2019, 8:22 menufront - скрыть пункты меню
csparena, вообще необходимо написать 2 полноценных плагина на заказ, они не совсем простые. Таких нет. По цене договоримся.
А вот менюшку эту отредактировать это мелочь, по сравнению с заказом 2ух плагинов )
csparena
3.6.2018, 7:49 fps controller
d3m37r4, да я сервера собираю давно и достаточно неплохо, просто язык программирования не знаю, а чисто логически и с небольшим знанием английского иногда удается отредактировать плагины минимально. А так, есть вопросы, где нужно прям отредактировать плагин и выскакивает ряд ошибок при компиляции, я в этом не силен. Поэтому и прошу помощи.

Спасибо, сейчас попробую
ThreeTimes
4.12.2016, 7:26 amxbans for ReHLDS
gudaus, ssban неактуален потому что антискрин сейчас ставят?
Я знаю, что ReHLDS ни как не относится к компиляции плагинов, а amx относится, и версия у меня reamxmodx.
И если я скомпилирую на 1.8.2, он не встанет на reamxmodx полноценно!?
mOdest
23.3.2016, 9:07 Как удалить квадратики из commandmenu.txt
Эти квадраты возникают из-за того, что ты в commandmenu сразу пишешь на русском языке. А нужно через файл resource/cstrike_english.txt
В самом файле пишешь названия на английском через "#Cstrike_<название>" и потом добавляешь эту строчку в файл cstrike_english.txt без "#", пробел и в кавычках уже на русском пишешь перевод. Он и будет отображаться вместо "#Cstrike_<название>" в commandmenu. Не будет квадратов + русский текст ты сможешь писать больше по длине без ограничений.
cstriker
18.3.2016, 14:27 Плагин / мод для CW сервера
Привет всем! Собираю CW сервера и нужен плагин для amxx, а лучше всего для metamod'a, тогда было бы проще сделать сервер без amxx.
Суть плагина блокировать ряд консольных команд, например: fps_overide 1 и т.д.
Чтобы при изменении значения, например, данной команды на "1" игроку автоматически сразу (или через пару секунд) восстанавливалось значение на "0".
Либо, если так нельзя, то кикало игрока сразу при изменении значения, или еще при заходе на сервер ему не давало зайти и выдавало сообщение о команде, якобы данное значение команды запрещено!

P.S. не стоит писать о том, зачем мне это, если ищу, значит надо! Хочу сделать, чтобы все играли на одинаковом fps, и т.д.

Есть ли еще плагин, с помощью которого можно управлять cw сервером без amxx?
Например, что-то подобное серверам fastcup'a, чтобы игроки могли в чате писать !r для начала игры и т.д.
В целом, хочу сделать управление всего процесса сервера без amxx.
Буду очень благодарен за помощь!
google.bsk
15.9.2015, 5:46 HackDetector Lite
Еще раз проверю и отпишусь
ssx
7.9.2015, 8:04 Fake client
Привет всем, возникла такая проблема, когда я захожу на какой-нибудь сервер в интернете, то меня выкидывает с ошибкой "Fake client", либо "Fake client. Connection was in idle state.".
Пробовал искать в подобных темах и в Google, в итоге не нашел решения. Единственное понял, что это проблема связана с настройкой dproto на сервере. Раньше такой ошибки не было. Как я понял, dproto считает, что я ненастоящий клиент и выкидывает меня с сервера. Так вот проблема такая стала возникать часто при заходе на большинство серверов. Ни кто не подскажет, как можно обойти этот баг или исправить его? У меня Steam CS 1.6 !
Заранее спасибо derisive.gif !
ssx
2.8.2015, 4:01 Dproto 0.9.582
(((_CYBORG_))),
dproto.cfg
Код
# ========================================================
#         DPROTO CONFIGURATION
# ========================================================

#
# General rule for modifying this file:
#    DONT CHANGE ANYTHING IF YOU DONT KNOW WHAT IT MEANS!
#


# ========================================================
#         Управление AuthID'ами пользователей
# ========================================================

# ClientIDs (для cid_* опций)
# 1: Реальный (или сгенерированный HW) steam (STEAM_xx:xx:xx)
# 2: Реальный (или сгенерированный HW) valve (VALVE_xx:xx:xx)
# 3: STEAM_ сгенерированный по IP-адресу
# 4: VALVE_ сгенерированный по IP-адресу
# 5: Запрещен - клиент будет отключен
# 6: Зарезервировано для будущего использования
# 7: HLTV
# 8: STEAM_ID_LAN
# 9: STEAM_ID_PENDING
# 10: VALVE_ID_LAN
# 11: VALVE_ID_PENDING
# 12: STEAM_666:88:666

# Установки AUthID для клиентов

# Для HLTV (стандарт HLTV [7])
cid_HLTV = 5

# Для клиентов 47 протокол, которые не поддерживают уникальные идентификаторы: (стандарт STEAM_ID_LAN [8])
cid_NoSteam47 = 3

# Для клиентов 48 протокол, которые не поддерживают уникальные идентификаторы: (стандарт VALVE_ID_LAN [10])
cid_NoSteam48 = 3

# Для легальных Steam-игроков: (стандарт STEAM_xx:xx:xx [1])
cid_Steam = 1

# Клиент успешно авторизирован, но не получает SteamID:
# Замечание: На самом деле, он получил SteamID, но это бесполезно (STEAM_0:0:0 например).
# по умолчанию STEAM_ID_PENDING [9]
cid_SteamPending = 5

# Для игроков имеющих эмулятор revEmu версии 9.74 или выше:
# по умолчанию real STEAM_xx:xx:xx [1]
cid_RevEmu = 1

# Для игроков имеющих эмулятор revEmu версии 2013 на клинтской стороне:
# по умолчанию STEAM_xx:xx:xx [1]
cid_RevEmu2013 = 1

# Для игроков имеющих эмулятор SteamClient 2009 или revEmu выше версии 9.82:
# по умолчанию STEAM_xx:xx:xx [1]
cid_SC2009 = 1

# Для игроков имеющих старую версию эмулятора revEmu:
# по умолчанию STEAM_xx:xx:xx [1]
cid_OldRevEmu = 1

# Для игроков имеющих эмулятор hCupa's SteamEmu:
# по умолчанию STEAM_xx:xx:xx [1]
cid_SteamEmu = 1

# Для игроков имеющих AVSMP (Взломанный Steam)
# по умолчанию STEAM_xx:xx:xx [1]
cid_AVSMP = 1

# Для сканера серверов SETTI:
# по умолчанию STEAM_xx:xx:xx сгенерированный по IP [3]
cid_Setti = 3

# Для SXEI клиентов:
# по умолчанию реальный STEAM_xx:xx:xx [1]
cid_SXEI = 1




# EnableSXEIdGeneration (0 / 1)
# Включает генерацию SteamID на основе присланной информации клиентом sXeI.
# Включайте только если у вас установлена серверная часть sXeI!
EnableSXEIdGeneration = 0

# SC2009_RevCompatMode (0 / 1)
# Включить исправление SteamID'ов сгенерированных эмулятором Steamclient 2009 на совместимость с эмулятором revEmu.
SC2009_RevCompatMode = 1

# SteamEmuCompatMode (0 / 1)
# Аналог для параметра EnforceSteamEmuCompatIDMode в eSTEAMATiON.
# Влияет только на старые RevEmu и SteamEmu эмуляторы.
SteamEmuCompatMode = 1

# OldEstCompatMode (0 / 1)
# Включает/Выключает исправление SteamID'ов сгенерированных eST в версии 0.3.1.
# Установите 1, если Вы хотите сделать SteamID'ы сгенерированные eST как в версии ниже 0.3.0.
OldEstCompatMode = 0

# SteamIdHashSalt (строка)
# Строка соли для хеширования SteamID. Необратимо меняет SteamID. Применяется только к SteamID сгенерированных эмуляторами.
# Строка должна быть заполненна более чем 16 символами. Если строка остается пустой, хеширование не применяется.
SteamIdHashSalt = Kdf00Vqwlp1287m7avVmKRT8741zXe


# ========================================================
#         Префиксы для AuthID
# ========================================================

# IPGen_Prefix1 (int)
# STEAM_a:b:c
# Первый префикс (a) для AuthID, сгенерированных по IP-адресу.
# По умолчанию (0)
IPGen_Prefix1 = 1

# IPGen_Prefix2 (int)
# STEAM_a:b:c
# Второй префикс (b) для AuthID, сгенерированных по IP-адресу.
# Данный префикс будет у всех, кроме легального клиента Steam.
# По умолчанию (4)
IPGen_Prefix2 = 3

# Native_Prefix1 (int)
# STEAM_a:b:c
# Первый префикс (a) для AuthID, сгенерированных легальной системой авторизации (Steam)
# По умолчанию (0)
Native_Prefix1 = 0;

# RevEmu_Prefix1 (int)
# STEAM_a:b:c
# Первый префикс (a) для AuthID, сгенерированных эмулятором Steamclient 2009
# По умолчанию (0)
SC2009_Prefix1 = 2;

# RevEmu_Prefix1 (int)
# STEAM_a:b:c
# Первый префикс (a) для AuthID, сгенерированных эмулятором RevEmu
# По умолчанию (0)
RevEmu_Prefix1 = 4;

# RevEmu2013_Prefix1 (int)
# STEAM_a:b:c
# Первый префикс (a) для AuthID, сгенерированных эмулятором RevEmu2013
# По умолчанию (0)
RevEmu2013_Prefix1 = 5;

# OldRevEmu_Prefix1 (int)
# STEAM_a:b:c
# Первый префикс (a) для AuthID, сгенерированных старым эмулятором RevEmu
# По умолчанию (0)
OldRevEmu_Prefix1 = 6;

# SteamEmu_Prefix1 (int)
# STEAM_a:b:c
# Первый префикс (a) для AuthID, сгенерированных эмулятором SteamEmu
# По умолчанию (0)
SteamEmu_Prefix1 = 3;

# SteamEmu_Prefix1 (int)
# STEAM_a:b:c
# Первый префикс (a) для AuthID, назначенного для клиентов AVSMP (Взломанный Steam)
# По умолчанию (0)
AVSMP_Prefix1 = 7;

# Setti_Prefix1 (int)
# STEAM_a:b:c
# Первый префикс (a) для AuthID отображаемых в сканере серверов Setti
# По умолчанию (0)
Setti_Prefix1 = 8;

# SXEI_Prefix1 (int)
# STEAM_a:b:c
# Первый префикс (a) для AuthID, назначенного клиенту sXeI
# По умолчанию (0)
SXEI_Prefix1 = 9;


# Стоит отметить, что banid будет использовать SteamID без каких-либо приставок!


# ========================================================
#         ATTACKS SUPRESSION
# ========================================================

# FakePlayers_ConnectInitiationCheck (в секундах)
# Устанавливает время в секундах, в которой клиент должен инициировать
# Игра сессии (другими словами, отправить "новой" команды) после того, как
# Был связан. Если клиент не инициировал сеанс игры, то он будет помечен как
# Поддельные и ногами.
# По умолчанию 6 секунд.
# Используйте 0, чтобы отключить эту проверку.
FakePlayers_ConnectInitiationCheck = 6

# FakePlayers_AntiReconnect (0 / 1)
# Позволяет обнаруживать fakeplayers, что подключится быстро (каждые <10 секунд)
# Перед поддельные проверки игроки выполнили.
# Эта проверка будет работать только тогда, когда FakePlayers_ClientValidationCheck и
# FakePlayers_ConnectInitiationCheck включены.
# По умолчанию равно 1 (включено)
FakePlayers_ClientValidationCheck = 8

# FakePlayers_AntiReconnect (0/1)
# Включает обнаружен поддельных игроков которые быстро переподключаются (каждые 10 секунд и меньше)
# до завершения всех проверок на поддельных игроков.
# По умолчанию 1 (Вкл).
FakePlayers_AntiReconnect = 1

# FakePlayers_CommandsOrderCheck (0/1)
# Активировать команды порядка проверки в начале соединения.
# По умолчанию 1 (Вкл).
FakePlayers_CommandsOrderCheck = 1

# FakePlayers_BanTime (минуты)
# Dproto будет банить IP адрес, с которого подключаются фейковые игроки на время, указанное в этой переменной.
# Используйте 0 для бана навсегда.
# Используйте отрицательное значение для отключения бана (Фейковых игроков будет только кикать).
FakePlayers_BanTime = 120

# Exploits_CheckDownloads (0/1)
# Включить проверку запроса загрузки файлов подлежаших прекешу.
# По умолчанию 1 (Вкл).
Exploits_CheckDownloads = 1

# Exploits_DisableUploads (0/1)
# Отключить загрузку файлов (не кастомизаций) на сервер.
# По умолчанию 1 (Вкл).
Exploits_DisableUploads = 1


# ========================================================
# Другое
# ========================================================

# LoggingMode - Режим ведения логов:
# 1 = Console - Консольный
# 2 = Log Files - Файловый
# 3 = Both - Оба режима
LoggingMode = 2

# ThreatsLoggingMode (0/1)
# Включить логирование деталей обнаруженных угроз.
# По умолчанию 0 (Выкл).
ThreatsLoggingMode = 0

# DisableNativeAuth (0 / 1)
# Отключение valve/steam системы авторизации.
# Для серверов основанных на 47-ом протоколе: Сервер не будет соединяться с серверами авторизации.
# Для всех: Сервер не сможет использовать функции авторизации.
# Это исправление для запуска старых серверов, основанных на 47-ом протоколе.
DisableNativeAuth = 0

# ServerInfoAnswerType (0 / 1 / 2)
# Тип ответа сервера на запросы:
# 0 = Новый способ (Движок Source)
# 1 = Старый способ (Исправляет список избранного для клиентов 47-го протокола)
# 2 = Гибридный режим - лучшее решение на данный момент, сервер видно везде.
ServerInfoAnswerType = 2

# Game_Name (строка)
# Название отображаемое у клиентов.
# Если переменная Game_Name пустая, то будет использоваться стандартное название игры.
Game_Name =

# HLStatsPlayerIdFix (0 / 1)
# Включение/Выключение фикса отображения ID игрока в мониторинге HLStats.
# Включайте это только если используете HLStats.
HLStatsPlayerIdFix = 0

# ExportVersion (0 / 1)
# Включение/Выключение экспортирования переменной dp_version.
# 1 = Переменная dp_version будет экспортироваться в правила сервера. Это будет видно в средствах мониторинга (например в HLSW).
# 0 = Переменная dp_version не будет экспортироваться в правила сервера.
ExportVersion = 1

# HLTVExcept_IP (IP адрес)
# HLTV с этого IP адреса сможет присоединиться к серверу, даже если значение cid_HLTV равно 5 (Запрещен)
HLTVExcept_IP = 127.0.0.1
(((_CYBORG_)))
20.1.2015, 8:39 Flash Control и оповещение гранат в чате
Привет всем, у меня на сервере стоит плагин, который показывает кто какую гранату кинул: [HE] \ [FB] \ [SG]
Скрытый текст


Нашел плагин, который показывает, кто ослепил вас, называется Team Flash Control
Сам плагин не хотелось бы ставить, да и это не совсем красиво, когда в чате появляется сплошником много информации.
Возникла идея соединить два плагина, можно как-нибудь дописать первый плагин, который показывает кто какую кинул гранату, после [FB] еще строчка, типо: "Вас ослепило!"
Чтобы просто не было лишней строки от еще одного плагина.
Первый плагин
Код:
#include <amxmodx>

#define PLUGIN_NAME "Descriptive 'Fire in the hole!' RU"
#define PLUGIN_VERSION "0.1"
#define PLUGIN_AUTHOR "VEN"

enum grenade {
GRENADE_HE,
GRENADE_FLASH,
GRENADE_SMOKE
}

// EDITABLE: grenade description
new const g_grenade_description[_:grenade][] = {
" [HE]",
" [FB]",
" [SG]"
}

enum color {
COLOR_NORMAL,
COLOR_RED,
COLOR_BLUE,
COLOR_GRAY,
COLOR_GREEN
}

// EDITABLE: grenade description text color
new const g_grenade_desccolor[_:grenade] = {
COLOR_RED,
COLOR_BLUE,
COLOR_GRAY
}

new const g_grenade_weaponid[_:grenade] = {
CSW_HEGRENADE,
CSW_FLASHBANG,
CSW_SMOKEGRENADE
}

#define COLORCODE_NORMAL 0x01
#define COLORCODE_TEAM 0x03
#define COLORCODE_LOCATION 0x04

new const g_color_code[_:color] = {
COLORCODE_NORMAL,
COLORCODE_TEAM,
COLORCODE_TEAM,
COLORCODE_TEAM,
COLORCODE_LOCATION
}

new const g_color_teamname[_:color][] = {
"",
"TERRORIST",
"CT",
"SPECTATOR",
""
}

#define RADIOTEXT_MSGARG_NUMBER 5

enum radiotext_msgarg {
RADIOTEXT_MSGARG_PRINTDEST = 1,
RADIOTEXT_MSGARG_CALLERID,
RADIOTEXT_MSGARG_TEXTTYPE,
RADIOTEXT_MSGARG_CALLERNAME,
RADIOTEXT_MSGARG_RADIOTYPE,
}

new const g_required_radiotype[] = "#Fire_in_the_hole"
new const g_radiotext_template[] = "%s (РАДИО): Осторожна, граната!"

new g_msgid_saytext
new g_msgid_teaminfo

public plugin_init() {
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)

register_message(get_user_msgid("TextMsg"), "message_text")

g_msgid_saytext = get_user_msgid("SayText")
g_msgid_teaminfo = get_user_msgid("TeamInfo")
}

public message_text(msgid, dest, id) {
if (get_msg_args() != RADIOTEXT_MSGARG_NUMBER || get_msg_argtype(RADIOTEXT_MSGARG_RADIOTYPE) != ARG_STRING)
return PLUGIN_CONTINUE

static arg[32]
get_msg_arg_string(RADIOTEXT_MSGARG_RADIOTYPE, arg, sizeof arg - 1)
if (!equal(arg, g_required_radiotype))
return PLUGIN_CONTINUE

get_msg_arg_string(RADIOTEXT_MSGARG_CALLERID, arg, sizeof arg - 1)
new caller = str_to_num(arg)
if (!is_user_alive(caller))
return PLUGIN_CONTINUE

new clip, ammo, weapon
weapon = get_user_weapon(caller, clip, ammo)
for (new i; i < sizeof g_grenade_weaponid; ++i) {
if (g_grenade_weaponid[i] == weapon) {
static text[192]
new pos = 0
text[pos++] = g_color_code[COLOR_NORMAL]

get_msg_arg_string(RADIOTEXT_MSGARG_CALLERNAME, arg, sizeof arg - 1)
pos += formatex(text[pos], sizeof text - pos - 1, g_radiotext_template, arg)
copy(text[++pos], sizeof text - pos - 1, g_grenade_description[i])

new desccolor = g_grenade_desccolor[i]
if ((text[--pos] = g_color_code[desccolor]) == COLORCODE_TEAM) {
static teamname[12]
get_user_team(id, teamname, sizeof teamname - 1)

if (!equal(teamname, g_color_teamname[desccolor])) {
msg_teaminfo(id, g_color_teamname[desccolor])
msg_saytext(id, text)
msg_teaminfo(id, teamname)

return PLUGIN_HANDLED
}
}

msg_saytext(id, text)

return PLUGIN_HANDLED
}
}

return PLUGIN_CONTINUE
}

msg_teaminfo(id, teamname[]) {
message_begin(MSG_ONE, g_msgid_teaminfo, _, id)
write_byte(id)
write_string(teamname)
message_end()
}

msg_saytext(id, text[]) {
message_begin(MSG_ONE, g_msgid_saytext, _, id)
write_byte(id)
write_string(text)
message_end()
}


Второй плагин
Код:
/*
* Team Flash Snitch
*
* Author: Tender
* email: tender@paike.org
* web: www.paike.org
* irc: #paike @ quakenet
*
* Description:
* When teamflashed, this plugin announces who flashed you. The teamflasher
* hears a "I'm blind" an gets a message of who he flashed.
* It is also displayed for admins if someone is fully teamflashed.
* Tested on Counter-Strike and Condition Zero servers.
* This does NOT work for 100%... but almost :-)
*
* Cvars:
* tfs_adminchat, default 1
* 0 - admins will not be aware
* 1 - admins gets an adminchat of who flashed who
*
* tfs_sound: Teamflasher hears "I'm blind!", default 1
* 0 - Sound Off
* 1 - Sound On
*
*
* Changelog:
* 1.1 - fixed bug: more than one player can get a message from the same teamflash event
* new cvar: tfs_adminchat (2007-11-04)
* 1.0 - sound on/off cvar: tfs_sound 1/0 (2006-04-14)
* 0.3 - fixed bug: dead spectators will nog get message about teamflash (2006-03-16)
* 0.2 - changed flash owner code, a timer is added, "[Team Flash Snitch]" in green text (2006-03-12)
* 0.1 - initial release (2006-01-25)
*
* Credits:
* Johnny got hes gun, his plugin "Blind" helped me writing this.
* www.paike.org for testing this plugin on paike servers.
*
* STR@TEG for translation into Russian
*/

#include <amxmodx>
#include <fakemeta>

#define TEMPENTITY "23"
#define BLINDED_FULLY 255
#define BLINDED_PARTLY 200

new const TFSVERSION[] = "1.1"
new Float:FLASH_TIMER = 1.52 // Time from throwing a FB to the bang (1.52 seconds?)
new g_flasher = 0 // id of the flasher

public plugin_init()
{
register_plugin("Team Flash Snitch",TFSVERSION,"Tender")

register_cvar("tfs_sound", "1")
register_cvar("tfs_adminchat", "1")

register_event("ScreenFade", "event_blinded", "be", "4=255", "5=255", "6=255", "7>199")
register_event(TEMPENTITY, "event_flashsmokepuff", "a", "1=5", "6=25", "7=6")
register_forward(FM_SetModel, "forward_setmodel")
}

public plugin_precache()
{
precache_sound ("radio/bot/im_blind.wav")
return PLUGIN_CONTINUE
}

public event_blinded(const ID)
{
new alpha = read_data(7)
if(alpha != BLINDED_FULLY && alpha != BLINDED_PARTLY || !is_user_alive(ID))
return PLUGIN_CONTINUE
if(get_user_team(ID) == get_user_team(g_flasher) && ID != g_flasher)
{
new message1[128], message2[128]
new flasher[32], name[32]
get_user_name(g_flasher, flasher, 31)
get_user_name(ID, name, 31)
format(message1, 127, "^x04[Team Flash Control]^x01 Вас ослепил %s", flasher)
format(message2, 127, "^x04[Team Flash Control]^x01 Вы %sослепили игрока по команде (%s)", alpha == BLINDED_FULLY ? "полностью " : "", name)
colored_msg(ID, message1)
colored_msg(g_flasher, message2)
if(get_cvar_num("tfs_sound")>0) client_cmd(g_flasher, "spk sound/radio/bot/im_blind.wav")
if(alpha == BLINDED_FULLY && get_cvar_num("tfs_adminchat")) server_cmd("amx_chat %s ослепил игрока по команде (%s)", flasher, name)
}
return PLUGIN_CONTINUE
}

public colored_msg(id, msg[])
{
message_begin(MSG_ONE, get_user_msgid("SayText"), {0,0,0}, id)
write_byte(id)
write_string(msg)
message_end()
}

public event_flashsmokepuff()
{
set_task(0.05,"reset_flasher")
return PLUGIN_CONTINUE
}

public reset_flasher()
{
g_flasher = 0
}

public get_flasher(id)
{
g_flasher = (id - 524627)
}

public forward_setmodel(const ENTITY, model[])
{
if(!equal(model, "models/w_flashbang.mdl"))
return FMRES_IGNORED

new owner = pev(ENTITY, pev_owner)
if (owner == 0)
return FMRES_IGNORED

set_task(FLASH_TIMER, "get_flasher", 524627+owner)

return FMRES_IGNORED
}


Кто что скажет, есть какие-нибудь идеи? derisive.gif )
Adrenal1n4ik