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

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

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

14-дек
24-апр
10-апр
11-апр

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер
4 страниц V   1 2 3 »

100 хп вместо 35

Статус пользователя looks5q
сообщение 30.10.2012, 18:07
Сообщение #1
Стаж: 13 лет

Сообщений: 92
Благодарностей: 4
Полезность: < 0

Здравствуйте!У меня возникла проблема, на всех картах вместо 35 хп 100.И понля в чем дело.Дело в дуэле,плагин,который я скачал недавно.Он успешно работает,но хп вместо 35 100.Когда отключаю его,хп становиться 35.Как сделать чтобы плагин работал и было нормально хп.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя matveev164rus
сообщение 30.10.2012, 18:19
Сообщение #2


Стаж: 13 лет

Сообщений: 246
Благодарностей: 55
Полезность: 188

Исходник в студию!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Саша
сообщение 30.10.2012, 18:43
Сообщение #3


Стаж: 16 лет

Сообщений: 1082
Благодарностей: 441
Полезность: 828

Выставить нормальное значение кваров у плагина.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя looks5q
сообщение 30.10.2012, 18:48
Сообщение #4
Стаж: 13 лет

Сообщений: 92
Благодарностей: 4
Полезность: < 0

Скрытый текст
/*===============================================================================
=
* ======== ОПИСАНИЕ ========
*
* Система дуэлей для Deathrun
* мода
*
* ========= ВАЖНО ==========
*
* Для корректной работы лагина
* используйте FREE и INVIS
* из архива
*
* ======== ФУНКЦИИ =========
*
* 1. Стандартно 11 уникальных дуэлей
* 2. Гибкие настройки
* 3. Только последний кт сможет открыть меню
* 4. Корректная работа с ботами
* 5. Сервер не падает
* 6. Таймер и ограничения дуэли по времени
* 7. Анти-спавн килл
* 8. Встроеные информер
* 9. Худы не перебиваются
* 10. Открывает меню последнему КТ
* 11. Музыка во время дуэли без закачки на клиент
* 12. Ожидание дуэли
* 13. Озвучивание отсчета
* 14. Различные эффекты
* 15. Очередь
* 16. Ставки
* 17. И многое другое
*
* == КОМАНДЫ ДЛЯ АДМИНА ==
*
* dd_origin_menu
* - Открыть меню точек телепортации
*
* == КОМАНДЫ ДЛЯ ИГРОКА ==
*
* say /lr | !lr
* - Открыть меню дуэлей
*
* say /dd | !dd
* - Открыть меню дуэлей
*
* deathrun_duels
* - Открыть меню дуэлей
*
* ===== ПЕРЕМЕННЫЕ ======
*
* dd_duels <флаги> [По умолчанию: abcdefghijkl]
* - Включение дуэлей
* - a На ножах
* - b Диглы
* - c Гранаты
* - d Скауты
* - e Дробовики
* - f Авп
* - g Фамас
* - h Русская Рулетка
* - i Математическая
* - j Словесная
* - k Спреи
* - l Дальность Дропа
*
* dd_music <0/1> [По умолчанию: 1]
* - Музыка во время луэли
* - 0 Выключена
* - 1 Включена
*
* dd_timer <0/1> [По умолчанию: 1]
* - Таймер и ограничение дуэли во времени
* - 0 Выключен
* - 1 Включен
*
* dd_timelimit <секунды> [По умолчанию: 120]
* - Ограничение дуэли во времени
* - Только если dd_timer 1
*
* dd_spawngod <0/1> [По умолчанию: 1]
* - Анти-спавн килл
* - 0 Выключен
* - 1 Включен
*
* dd_effects <1/2/3> [По умолчанию: 3]
* - Эффекты
* - 1 Ауры
* - 2 Волны
* - 3 Ауры и волны
*
* dd_wait <секунды> [По умолчанию: 5]
* - Ожидание перед дуэлями
*
* dd_informer <0/1> [По умолчанию: 1]
* - HUD-Информер слева
* - 0 Выключен
* - 1 Включен
*
* dd_lastmenu <0/1> [По умолчанию: 1]
* - Открытие меню c вопросом последнему CT
* - 0 Выключен
* - 1 Включен
* - Только если dd_informer 1
*
* dd_telepot <0/1> [По умолчанию: 1]
* - Телепортирование игроков в начале дуэли
* - 0 Выключено
* - 1 Включено
*
* === ИСТОРИЯ ИЗМЕНЕНИЙ ===
*
* 2.5:
* - Добавлено телепортирование игроков
*
* 2.4:
* - Fix Fix Fix
*
* 2.3:
* - Фиксы ошибок
* - Добавлена дуэль на фамасах
*
* 2.2:
* - Фиксы ошибок
*
* 2.1:
* - Фиксы ошибок
*
* 2.0:
* - Первый частный релиз
*
* 1.0..1.9:
* - Ранние "рабочие" версии под названием Last Request by NoName
*
* ================================================================================
=*/
/*===============================================================================
=
Инклюды
================================================================================
=*/
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
#include <fakemeta_util>
#include <engine>
#include <fun>
#include <hamsandwich>
#include <dhudmessage>
//#include <dr_gonka>
//#include <deathrun_manager>
/*===============================================================================
=
Данные о плагине
================================================================================
=*/
#define PLUGIN "DeathRun Duel"
#define VERSION "2.5.1"
#define AUTHOR "Sho0ter"
#define PREFIX "^1[^4Дуель^1]"

#define is_valid_player(%1) (1 <= %1 <= 32)
/*===============================================================================
=
Различные данные
================================================================================
=*/
#define GODTID 100500
#define TIMERTID 100501
#define TIMER2TID 100502
#define INFORMERTID 100503
#define WAITTIMERTID 100504
#define MCOUNT 6
#define DCOUNT 12
#define SCOUNT 20
#define DAMMO 1
#define DAMMO1 0
#define KWPN "world"
#define KHS 1
#define MENUBODY 1024
#define MAXORIGINS 2
#define MAXWORDS 100
/*===============================================================================
=
Константы
================================================================================
=*/
new MyStavkaCt[33] = false
new MyStavkaTt[33] = false
new OpenMenuStavki[33] = false
new Ctdengi = 0
new Tdengi = 0
new Mydengi[33] = 0
new SecondTimerStavki[33]
new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MEN
U_KEY_8|MENU_KEY_9|MENU_KEY_0

new AttackCt = 0
new AttackTt = 0
new TimerAutoBoom

new MaxPlayers
new ChoosedDuel
new DuelNum
new SayText
new BeaconSprite
new CounterID
new TerroristID
new MathAnswer
new RussianRouletteID
new RussianRouletteBullet
new Index
new Timer
new OriginsNum
new WordsNum

new g_MsgHud1
new g_MsgHud2
new g_MsgHud3

new PcvarDuels
new PcvarMusic
new PcvarTimer
new PcvarTimeLimit
new PcvarSpawnGod
new PcvarEffects
new PcvarInformer
new PcvarLastMenu
new PcvarWait
new PcvarMode
new PcvarTele

new MenuPosition[33]
new MenuTs[33]
new RussianRouletteName[64]
new MathTask[64]
new ConfigsDir[64]
new WordsFile[64]
new OriginsFile[128]
new WordAnswer[128]

new MenuBody[MENUBODY + 1]

new bool:Last
new bool:Duel
new bool:FPage
new bool:TouchWeapons[33]
new bool:Once[33]
new bool:InDuel[33]
new bool:Knife[33]
new bool:Deagle[33]
new bool:Grenade[33]
new bool:Scout[33]
new bool:Drob[33]
new bool:Awp[33]
new bool:Math[33]
new bool:Word[33]
new bool:RussianRoulette[33]
new bool:Used[33]
new bool:Boom[33]
new bool:NotYou[33]
new bool:DoIt[33]
new bool:Start[33]
new bool:Spray[33]
new bool:Guntoss[33]
new bool:Famas[33]
new bool:give_scout[33]
new timer[33]

new Origins[MAXORIGINS][128]
new Words[MAXWORDS][192]


new Duels[DCOUNT][] =
{
"DUEL_1",
"DUEL_2",
"DUEL_3",
"DUEL_4",
"DUEL_5",
"DUEL_6",
"DUEL_7",
"DUEL_8",
"DUEL_9",
"DUEL_10",
"DUEL_11",
"DUEL_12"
}

new Sound[SCOUNT][] =
{
"fvox/one",
"fvox/two",
"fvox/three",
"fvox/four",
"fvox/five",
"fvox/six",
"fvox/seven",
"fvox/eight",
"fvox/nine",
"fvox/ten",
"fvox/eleven",
"fvox/twelve",
"fvox/thirteen",
"fvox/fourteen",
"fvox/fifteen",
"fvox/sixteen",
"fvox/seventeen",
"fvox/eighteen",
"fvox/nineteen",
"fvox/twenty"
}
/*===============================================================================
=
Загрузка плагина
================================================================================
=*/
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("HLTV", "RoundStart", "a", "1=0", "2=0")
register_event("Damage","DamageEvent","b","2!0","3=0","4!0")
register_logevent("RoundEnd", 2, "1=Round_End")
RegisterHam(Ham_Touch, "weaponbox", "TouchWeapon")
RegisterHam(Ham_Touch, "armoury_entity", "TouchWeapon")
RegisterHam(Ham_TakeDamage, "player", "UserTakeDamage")
RegisterHam(Ham_Touch, "weapon_shield", "TouchWeapon")
RegisterHam(Ham_Spawn, "player", "PlayerSpawn", 1)
RegisterHam(Ham_Killed, "player", "PlayerKilled")
RegisterHam(Ham_Weapon_PrimaryAttack ,"weapon_m3","HamAttack")
RegisterHam(Ham_Weapon_PrimaryAttack ,"weapon_famas","HamAttack")
RegisterHam(Ham_Weapon_PrimaryAttack ,"weapon_deagle","HamAttack")
RegisterHam(Ham_Weapon_PrimaryAttack ,"weapon_ak47","HamAttack")
RegisterHam(Ham_Weapon_PrimaryAttack ,"weapon_awp","HamAttack")
RegisterHam(Ham_Weapon_PrimaryAttack ,"weapon_scout","HamAttack")
register_forward(FM_CmdStart,"CmdStart",1)
register_forward(FM_UpdateClientData, "UpdateClientData", 1)
register_clcmd("say /duel", "CmdDuelsMenu")
register_clcmd("say /dd", "CmdDuelsMenu")
register_clcmd("say_team /duel", "CmdDuelsMenu")
register_clcmd("say_team /dd", "CmdDuelsMenu")
register_clcmd("deathrun_duels", "CmdDuelsMenu")
register_clcmd("say", "hooksay")
register_clcmd("say_team", "hooksay_team")
register_clcmd("say /scout", "GiveScout")
register_clcmd("drop", "HookDrop")
register_concmd("dd_origin_menu", "CmdOriginsMenu", ADMIN_RCON)
PcvarDuels = register_cvar("dd_duels", "abdefhmg")
PcvarMusic = register_cvar("dd_music", "0")
PcvarTimer = register_cvar("dd_timer", "0")
PcvarTimeLimit = register_cvar("dd_timelimit", "120")
PcvarSpawnGod = register_cvar("dd_spawngod", "1")
PcvarEffects = register_cvar("dd_effects", "3")
PcvarWait = register_cvar("dd_wait", "15")
PcvarInformer = register_cvar("dd_informer", "0")
PcvarLastMenu = register_cvar("dd_lastmenu", "1")
PcvarTele = register_cvar("dd_teleport", "1")
PcvarMode = register_cvar("deathrun_mode", "NONE", FCVAR_SERVER)
register_cvar("DeathRun Duel", "2.5.1", FCVAR_SERVER|FCVAR_SPONLY)
register_menucmd(register_menuid("Duels Menu"), MENUBODY - 1, "ActionDuelsMenu")
register_menucmd(register_menuid("Enemy Menu"), MENUBODY - 1, "ActionEnemyMenu")
register_menucmd(register_menuid("Roulette Menu"), MENUBODY - 1, "ActionRussianRouletteMenu")
register_menucmd(register_menuid("Last Menu"), MENUBODY - 1, "ActionLastMenu")
register_menucmd(register_menuid("Origins Menu"), MENUBODY - 1, "ActionOriginsMenu")
register_menu("Menu 1", keys, "menus1")
SayText = get_user_msgid("SayText")
MaxPlayers = get_maxplayers()
g_MsgHud1 = CreateHudSyncObj()
g_MsgHud2 = CreateHudSyncObj()
g_MsgHud3 = CreateHudSyncObj()
register_dictionary("deathrun_duels.txt")
set_task(1.0, "Informer", INFORMERTID, "", 0, "b")
server_cmd("dd_wait 20")
server_cmd("dd_timer 1")
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Закачки плагина
================================================================================
=*/
public plugin_precache()
{
BeaconSprite = precache_model("sprites/shockwave.spr")
get_configsdir(ConfigsDir, charsmax(ConfigsDir))
format(WordsFile, charsmax(WordsFile), "%s/deathrun_duels.ini", ConfigsDir)
new cmap[32], Len, dddir[128]
format(dddir, 127, "%s/deathrun_duels", ConfigsDir)
if(!dir_exists(dddir))
{
mkdir(dddir)
}
get_mapname(cmap, 31)
format(OriginsFile, charsmax(OriginsFile), "%s/deathrun_duels/%s.ini", ConfigsDir, cmap)
new i = 0
if(file_exists(WordsFile))
{
while(i < MAXWORDS && read_file(WordsFile, i , Words[WordsNum], 191, Len))
{
i++
if(Words[WordsNum][0] == ';' || Len == 0)
{
continue
}
WordsNum++
}
}
i = 0
if(file_exists(OriginsFile))
{
while(i < MAXORIGINS && read_file(OriginsFile, i ,Origins[OriginsNum], 127, Len))
{
i++
if(Origins[OriginsNum][0] == ';' || Len == 0)
{
continue
}
OriginsNum++
}
}
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Начало раунда
================================================================================
=*/
public RoundStart()
{
for (new id = 1; id <= MaxPlayers; id++)
{
if(is_user_alive(id) && is_user_connected(id))
{
give_scout[id] = false
}
}

Duel = false
Last = false
server_cmd("bh_enabled 1")
server_cmd("vampir_regenhp 1")
server_cmd("dr_rembo 1")
server_cmd("drshop_enable 1")
server_cmd("trigger_hurt 0")
if(get_pcvar_num(PcvarTimer))
{
remove_task(TIMERTID)
}
remove_task(TIMER2TID)
remove_task(WAITTIMERTID)
return PLUGIN_CONTINUE
}

/*===============================================================================
=
Выбрасывание оружия
================================================================================
=*/
public HookDrop(id)
{
if(Duel)
{
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}

/*===============================================================================
=
Конец раунда
================================================================================
=*/
public RoundEnd()
{
if(get_pcvar_num(PcvarMusic))
{
client_cmd(0, "cd fadeout")
}
if(get_pcvar_num(PcvarTimer))
{
remove_task(TIMERTID)
}
remove_task(TIMER2TID)
remove_task(WAITTIMERTID)
server_cmd("sm_enabled 1")
server_cmd("trigger_hurt 0")
remove_task(42314)
return PLUGIN_CONTINUE
}

/*===============================================================================
=
Получение урона
================================================================================
=*/

public UserTakeDamage ( victim, weapon, attacker, Float:damage, damagebits )
{
if(get_user_team(attacker) == get_user_team(victim) || !is_user_connected(attacker) || !is_user_connected(victim) || victim == attacker)
return HAM_IGNORED

if(Duel)
{
if((attacker == CounterID || attacker == TerroristID) && (victim == TerroristID || victim == CounterID))
{
return HAM_IGNORED
}
else if((attacker != CounterID || attacker != TerroristID) && (victim == TerroristID || victim == CounterID))
{
return HAM_SUPERCEDE
}
}
return HAM_IGNORED
}
/*===============================================================================
=
Возрождение игрока
================================================================================
=*/
public PlayerSpawn(id)
{
if(!is_user_alive(id) || !cs_get_user_team(id) || is_user_bot(id))
{
return PLUGIN_CONTINUE
}
if(get_pcvar_num(PcvarSpawnGod))
{
set_pev(id, pev_takedamage, 0)
set_task(3.0, "GodOff", id + GODTID)
}
set_user_rendering(id)
remove_task(id)
TouchWeapons[id] = false
Once[id] = false
Knife[id] = false
Deagle[id] = false
Grenade[id] = false
Scout[id] = false
Drob[id] = false
Awp[id] = false
Math[id] = false
Word[id] = false
RussianRoulette[id] = false
Used[id] = false
NotYou[id] = false
DoIt[id] = false
Start[id] = false
Spray[id] = false
Guntoss[id] = false
InDuel[id] = false
Famas[id] = false
if(cs_get_user_team(id) == CS_TEAM_T && !is_user_bot(id))
{
return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Касание к оружию
================================================================================
=*/
public TouchWeapon(weapon, id)
{
if(!is_user_connected(id))
{
return HAM_IGNORED
}
if(TouchWeapons[id] || cs_get_user_team(id) == CS_TEAM_T)
{
return HAM_SUPERCEDE
}
return HAM_IGNORED
}
/*===============================================================================
=
Использование комманд (отлов выстрела)
================================================================================
=*/
public CmdStart(player, uc_handle, random_seed)
{
if(!is_user_alive(player) || player < 1 || player > 32)
{
return FMRES_IGNORED
}
new Buttons = get_uc(uc_handle, UC_Buttons)
if(Buttons & IN_ATTACK && Used[player])
{
if(Famas[player] && get_user_weapon(player, _, _) == CSW_FAMAS)
{
new wEnt = fm_find_ent_by_owner(-1, "weapon_famas", player);
cs_set_weapon_burst(wEnt, 1)
}
if(!NotYou[player])
{
if(player == RussianRouletteID && DoIt[player])
{
new id = player
get_user_name(id, RussianRouletteName, 63)
set_hudmessage(255, 255, 0, -1.0, 0.3, 0, 1.0, 2.0, 0.5, 0.5, 2)
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "RRDOING", RussianRouletteName)
set_task(3.0, "RussianRouletteStop", id)
DoIt[id] = false
Start[id] = true
}
else if(player == RussianRouletteID && Start[player])
{
client_print(player, print_center, "%L", LANG_PLAYER, "RRWAIT")
}
else
{
client_print(player, print_center, "%L", LANG_PLAYER, "RRNOTYOU")
}
}
else if(Boom[player])
{
get_user_name(player, RussianRouletteName, 63)
set_hudmessage(255, 0, 0, -1.0, 0.2, 1, 1.0, 5.0, 1.0, 1.0, 4)
ShowSyncHudMsg(0, g_MsgHud3, "%L", LANG_PLAYER, "RRBOOM", RussianRouletteName)
client_cmd(0, "spk weapons/deagle-1")
set_msg_block(get_user_msgid("DeathMsg"), BLOCK_ONCE)
DeathMsg(player, player, KHS, KWPN)
Kill(player)
Used[CounterID] = false
Used[TerroristID] = false
}
else if(!Boom[player])
{
if(player == CounterID)
{
get_user_name(TerroristID, RussianRouletteName, 63)
RussianRouletteMenu(TerroristID)
NotYou[player] = false
DoIt[TerroristID] = true
RussianRouletteID = TerroristID
}
else if(player == TerroristID)
{
get_user_name(CounterID, RussianRouletteName, 63)
RussianRouletteMenu(CounterID)
NotYou[player] = false
DoIt[CounterID] = true
RussianRouletteID = CounterID
}
set_hudmessage(0, 255, 0, -1.0, 0.2, 0, 1.0, 3.0, 0.5, 0.5, 4)
ShowSyncHudMsg(0, g_MsgHud3, "%L", LANG_PLAYER, "RRNOTBOOM", RussianRouletteName)
client_cmd(0, "spk weapons/dryfire_pistol")
}
Buttons &= ~IN_ATTACK
set_uc(uc_handle, UC_Buttons, Buttons)
}
return FMRES_HANDLED
}
public UpdateClientData(id, sendweapons, cd_handle)
{
if(!is_user_alive(id))
{
return FMRES_IGNORED
}
if(Used[id] && InDuel[id])
{
set_cd(cd_handle, CD_ID, 0)
}

return FMRES_HANDLED
}
/*===============================================================================
=
Смерть игрока
================================================================================
=*/
public PlayerKilled(victim, attacker)
{
if(victim <= 0 || attacker <= 0 || victim >= 33 || attacker >= 33)
{
return PLUGIN_HANDLED
}
if(Duel)
{
remove_task(42314)
if(cs_get_user_team(victim) == CS_TEAM_CT && InDuel[victim])
{
if(RussianRoulette[victim] || Math[victim] || Word[victim])
{
if(victim == CounterID)
{
attacker = TerroristID
}
else if(victim == TerroristID)
{
attacker = CounterID
}
TouchWeapons[attacker] = false
Once[attacker] = false
Knife[attacker] = false
Deagle[attacker] = false
Grenade[attacker] = false
Scout[attacker] = false
Drob[attacker] = false
Awp[attacker] = false
Math[attacker] = false
Word[attacker] = false
RussianRoulette[attacker] = false
Used[attacker] = false
NotYou[attacker] = false
DoIt[attacker] = false
Start[attacker] = false
Spray[attacker] = false
Guntoss[attacker] = false
InDuel[attacker] = false
Famas[attacker] = false
Duel = false
}
}
if(attacker == TerroristID && victim == CounterID)
{
for(new ii = 1; ii <= get_maxplayers(); ii++)
{
if(is_user_connected(ii) && !is_user_alive(ii))
{
go_present_tt_stavki(ii)
}
}
}
if(attacker == CounterID && victim == TerroristID)
{
for(new ii = 1; ii <= get_maxplayers(); ii++)
{
if(is_user_connected(ii) && !is_user_alive(ii))
{
go_present_ct_stavki(ii)
}
}
}
}
remove_task(attacker)
remove_task(victim)
return PLUGIN_CONTINUE
}

public GiveScout(id)
{
if(is_user_alive(id) && !give_scout[id] && !Duel)
{
strip_user_weapons(id)
give_item(id,"weapon_knife")

new weapon = give_item(id, "weapon_scout")
if(weapon > 0)
cs_set_weapon_ammo(weapon, 0)

give_scout[id] = true
}
return PLUGIN_HANDLED
}

/*===============================================================================
=
Команда открытия меню дуэлей
================================================================================
=*/
public CmdDuelsMenu(id)
{
if(!is_user_alive(id))
{
return PLUGIN_HANDLED
}
if (!Once[id])
{
if(cs_get_user_team(id) == CS_TEAM_CT)
{
new CTsNum = GetCTsNum(1)
new TsNum = GetTsNum(1)
if(CTsNum == 1 && TsNum >= 1)
{
DuelsMenu(id, MenuPosition[id] = 0)
}
else if(TsNum < 1)
{
ChatColor(id, "%s %L", PREFIX, LANG_PLAYER,"NOT_TS")
}
else if(CTsNum > 1)
{
ChatColor(id, "%s %L", PREFIX, LANG_PLAYER,"ONLY_LAST")
}
}
else
{
ChatColor(id, "%s %L", PREFIX, LANG_PLAYER, "ONLY_CTS")
}
}
return PLUGIN_HANDLED
}

/*===============================================================================
=
Меню дуэлей
================================================================================
=*/
public DuelsMenu(id, position)
{
if(position < 0)
{
return
}
FPage = false
new DuelsNum = GetFlagsNum(PcvarDuels)
new Flags = GetFlags(PcvarDuels)
new MenuStart = position * 8
if(MenuStart >= DuelsNum)
{
MenuStart = position = MenuPosition[id]
}
new MenuEnd = position * 8 + 8
if(MenuEnd >= DuelsNum && position != 0)
{
MenuEnd = DuelsNum
}
else if(MenuEnd >= DuelsNum && position == 0)
{
MenuEnd = DCOUNT
FPage = true
}
new Keys = MENU_KEY_0
new Len
new b
Len = format(MenuBody, MENUBODY - 1, "\y%L^n^n", LANG_PLAYER, "CHOOSE_DUEL")
for(new a = MenuStart; a < MenuEnd; a++)
{
if(Flags & (1 << a))
{
Keys |= (1 << b)
Len += format(MenuBody[Len], MENUBODY - Len, "\r%d. \w%L^n", ++b, LANG_PLAYER, Duels[a])
}
else
{
continue
}
}
if(MenuEnd != DuelsNum && !FPage)
{
Keys |= MENU_KEY_9
Len += format(MenuBody[Len], MENUBODY - Len, "^n\r9. \w%L^n\r0. \w%L^n^n", LANG_PLAYER, "DD_MENU_MORE", LANG_PLAYER, position ? "DD_MENU_BACK" : "DD_MENU_EXIT")
}
else
{
Len += format(MenuBody[Len], MENUBODY - Len, "^n\r0. \w%L^n^n", LANG_PLAYER, position ? "DD_MENU_BACK" : "DD_MENU_EXIT")
}
show_menu(id, Keys, MenuBody, -1, "Duels Menu")
}
/*===============================================================================
=
Действие меню дуэлей
================================================================================
=*/
public ActionDuelsMenu(id, key)
{
switch(key)
{
case 8:
{
DuelsMenu(id, ++MenuPosition[id])
}
case 9:
{
DuelsMenu(id, --MenuPosition[id])
}
default:
{
if(GetTsNum(1) || GetCTsNum(1) == 1|| is_user_alive(id))
{
ChoosedDuel = MenuPosition[id] * 8 + key
EnemyMenu(id, MenuPosition[id] = 0)
}
}
}
}
/*===============================================================================
=
Меню выбора противника
================================================================================
=*/
public EnemyMenu(id, position)
{
if(position < 0)
{
return
}
new TsNum = 0
for(new aid = 1; aid <= MaxPlayers; aid++)
{
if(is_user_connected(aid) && is_user_alive(aid) && cs_get_user_team(aid) == CS_TEAM_T && !is_user_bot(aid))
{
MenuTs[TsNum++] = aid
}
}
new MenuStart = position * 8
if(MenuStart >= TsNum)
{
MenuStart = position = MenuPosition[id]
}
new MenuEnd = position + 8
if(MenuEnd > TsNum)
{
MenuEnd = TsNum
}
new Keys = MENU_KEY_0
new Len
new b = 0
new Names[32]
Len = format(MenuBody, MENUBODY - 1, "\y%L^n^n", LANG_PLAYER, "CHOOSE_ENEMY")
for(new a = MenuStart; a < MenuEnd; a++)
{
get_user_name(MenuTs[a], Names, 31)
Keys |= (1 << b)
Len += format(MenuBody[Len], MENUBODY - Len, "\r%d. \w%s^n", ++b, Names)
}
if(MenuEnd != TsNum)
{
Keys |= MENU_KEY_9
Len += format(MenuBody[Len], MENUBODY - Len, "^n\r9. \w%L^n\r0. \w%L^n^n\y%s v%s", LANG_PLAYER, "DD_MENU_MORE", LANG_PLAYER, position ? "DD_MENU_BACK" : "DD_MENU_EXIT", PLUGIN, VERSION, AUTHOR)
}
else
{
Len += format(MenuBody[Len], MENUBODY - Len, "^n\r0. \w%L^n^n", LANG_PLAYER, position ? "DD_MENU_BACK" : "DD_MENU_EXIT")
}
show_menu(id, Keys, MenuBody, -1, "Enemy Menu")
}
/*===============================================================================
=
Действие выбора противника
================================================================================
=*/
public ActionEnemyMenu(id, key)
{
switch(key)
{
case 8:
{
EnemyMenu(id, ++MenuPosition[id])
}
case 9:
{
EnemyMenu(id, --MenuPosition[id])
}
default:
{
if(GetTsNum(1) || GetCTsNum(1) == 1 || is_user_alive(id))
{
new Choosed = MenuPosition[id] * 8 + key
new Enemy = MenuTs[Choosed]
StartDuel(id, Enemy)
server_cmd("bh_enabled 0")
server_cmd("vampir_regenhp 0")
server_cmd("dr_free 0")
server_cmd("dr_invis 0")
server_cmd("dr_kHonku 0")
server_cmd("dr_rembo 0")
server_cmd("drshop_enable 0")
}
}
}
}
#define authorstavok BlackSmoke
public CmdOriginsMenu(id, level, cid)
{
if(!cmd_access(id, level, cid, 1))
{
return PLUGIN_HANDLED
}
else
{
ShowOriginsMenu(id)
}
return PLUGIN_CONTINUE
}

public ShowOriginsMenu(id)
{
new Keys = MENU_KEY_0
new Len
Len = format(MenuBody, MENUBODY, "\y%L^n^n", id, "ORIGINS_TITLE")
Keys |= (1 << 0)
Len += format(MenuBody[Len], MENUBODY - Len, "\r1. \w%L^n", id, "SAVE_POSITION")
Keys |= (1 << 1)
Len += format(MenuBody[Len], MENUBODY - Len, "\r2. \w%L^n", id, "DELETE_POSITIONS")
Len += format(MenuBody[Len], MENUBODY - Len, "^n\r0. \w%L^n^n", id, "DD_MENU_EXIT")
show_menu(id, Keys, MenuBody, -1, "Origins Menu")
return PLUGIN_CONTINUE
}

public ActionOriginsMenu(id, key)
{
switch(key)
{
case 0:
{
new vec[3]
get_user_origin(id, vec)
add_spawn(vec)
client_print(id, print_center, "*** Сохраненно ***")
ShowOriginsMenu(id)
}
case 1:
{
if(file_exists(OriginsFile))
{
delete_file(OriginsFile)
client_print(id, print_center, "*** Удаленно ***")
ShowOriginsMenu(id)
}
}
}
return PLUGIN_CONTINUE
}

public add_spawn(vecs[3])
{
new Line[128]
format(Line, 127, "%d %d %d",vecs[0], vecs[1], vecs[2])
write_file(OriginsFile, Line)
return PLUGIN_CONTINUE
}

public SetOrigins(ctid, terid)
{
if(!file_exists(OriginsFile) || !get_pcvar_num(PcvarTele))
{
return PLUGIN_CONTINUE
}
new pos[4][8]
parse(Origins[0], pos[1], 7, pos[2], 7, pos[3], 7)
new Vec[3]
Vec[0] = str_to_num(pos[1])
Vec[1] = str_to_num(pos[2])
Vec[2] = str_to_num(pos[3])
set_user_origin(ctid, Vec)
parse(Origins[1], pos[1], 7, pos[2], 7, pos[3], 7)
Vec[0] = str_to_num(pos[1])
Vec[1] = str_to_num(pos[2])
Vec[2] = str_to_num(pos[3])
set_user_origin(terid, Vec)
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Начало дуэли
================================================================================
=*/
public StartDuel(id, tempid)
{
if(!GetTsNum(1) || GetCTsNum(1) > 1|| !is_user_alive(tempid) || !is_user_alive(id) || cs_get_user_team(tempid) != CS_TEAM_T || cs_get_user_team(id) != CS_TEAM_CT || !is_user_connected(tempid) || !is_user_connected(id) || is_user_bot(id) || is_user_bot(tempid))
{
return PLUGIN_HANDLED
}
server_cmd("deathrun_shop 0")
new challenger[32], challenged[32]
get_user_name(id, challenger, 31)
get_user_name(tempid, challenged, 31)
strip_user_weapons(id)
strip_user_weapons(tempid)
set_user_health(id, 100)
set_user_health(tempid, 100)
set_user_gravity(id, 1.0)
set_user_gravity(tempid, 1.0)
set_user_maxspeed(id, 0.0)
set_user_maxspeed(tempid, 0.0)
cs_reset_user_model(id)
cs_reset_user_model(tempid)
switch(get_pcvar_num(PcvarEffects))
{
case 1:
{
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 150, kRenderNormal, 20)
set_user_rendering(tempid, kRenderFxGlowShell, 150, 0, 0, kRenderNormal, 20)
}
case 2:
{
set_task(1.0, "Beacon", id)
set_task(1.0, "Beacon", tempid)
}
case 3:
{
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 150, kRenderNormal, 20)
set_task(1.0, "Beacon", id)
set_user_rendering(tempid, kRenderFxGlowShell, 150, 0, 0, kRenderNormal, 20)
set_task(1.0, "Beacon", tempid)
}
}
SettingStavki()
InDuel[tempid] = true
InDuel[id] = true
Once[id] = true
set_lights("#OFF")
TouchWeapons[id] = true
TouchWeapons[tempid] = true
CounterID = id
TerroristID = tempid
Timer = get_pcvar_num(PcvarWait)
Index = get_pcvar_num(PcvarTimeLimit) + 1
set_pcvar_string(PcvarMode, "DUEL")
new Flags = GetFlags(PcvarDuels)
DuelNum = 0
new DuelIndex
while(DuelIndex <= ChoosedDuel)
{
if(Flags & (1 << DuelNum))
{
DuelIndex++
}
DuelNum ++
}
SetOrigins(id, tempid)
switch(DuelNum)
{
case 1:
{
Knife[id] = true
Knife[tempid] = true
Duel = true
set_dhudmessage(255, 0, 0, -1.0, 0.40, 0, 6.0, 3.0, 1.0, 1.5);
show_dhudmessage(0, "Резать можно без очереди");
set_task(0.1, "StartWait", WAITTIMERTID)
return PLUGIN_HANDLED
}
case 2:
{
Deagle[id] = true
Deagle[tempid] = true
Duel = true
set_dhudmessage(255, 0, 0, -1.0, 0.40, 0, 6.0, 3.0, 1.0, 1.5);
show_dhudmessage(0, "Стрелять строго по очереди!^nКТ стреляет ПЕРВЫМ!!!");
set_task(0.1, "StartWait", WAITTIMERTID)
return PLUGIN_HANDLED
}
case 3:
{
Grenade[id] = true
Grenade[tempid] = true
Duel = true
set_dhudmessage(255, 0, 0, -1.0, 0.40, 0, 6.0, 3.0, 1.0, 1.5);
show_dhudmessage(0, "Кидать можно без очереди");
set_task(0.1, "StartWait", WAITTIMERTID)
return PLUGIN_HANDLED
}
case 4:
{
Scout[id] = true
Scout[tempid] = true
Duel = true
set_dhudmessage(255, 0, 0, -1.0, 0.40, 0, 6.0, 3.0, 1.0, 1.5);
show_dhudmessage(0, "Стрелять строго по очереди!^nКТ стреляет ПЕРВЫМ!!!");
set_task(0.1, "StartWait", WAITTIMERTID)
return PLUGIN_HANDLED
}
case 5:
{
Drob[id] = true
Drob[tempid] = true
Duel = true
set_dhudmessage(255, 0, 0, -1.0, 0.40, 0, 6.0, 3.0, 1.0, 1.5);
show_dhudmessage(0, "Стрелять строго по очереди!^nКТ стреляет ПЕРВЫМ!!!");
set_task(0.1, "StartWait", WAITTIMERTID)
return PLUGIN_HANDLED
}
case 6:
{
Awp[id] = true
Awp[tempid] = true
Duel = true
set_dhudmessage(255, 0, 0, -1.0, 0.40, 0, 6.0, 3.0, 1.0, 1.5);
show_dhudmessage(0, "Стрелять строго по очереди!^nКТ стреляет ПЕРВЫМ!!!");
set_task(0.1, "StartWait", WAITTIMERTID)
return PLUGIN_HANDLED
}
case 7:
{
Famas[id] = true
Famas[tempid] = true
Duel = true
set_dhudmessage(255, 0, 0, -1.0, 0.40, 0, 6.0, 3.0, 1.0, 1.5);
show_dhudmessage(0, "Стрелять строго по очереди!^nКТ стреляет ПЕРВЫМ!!!");
set_task(0.1, "StartWait", WAITTIMERTID)
return PLUGIN_HANDLED
}
case 8:
{
RussianRoulette[id] = true
RussianRoulette[tempid] = true
Duel = true
RussianRouletteBullet = random_num(1, 3)
StartRussianRoulette(id, tempid)
if(get_pcvar_num(PcvarMusic))
{
client_cmd(0, "mp3volume 0.5")
}
return PLUGIN_HANDLED
}
case 9:
{
Math[id] = true
Math[tempid] = true
Duel = true
StartMathDuel(id, tempid)
return PLUGIN_HANDLED
}
case 10:
{
Word[id] = true
Word[tempid] = true
Duel = true
StartWordDuel(id, tempid)
return PLUGIN_HANDLED
}
case 11:
{
Spray[id] = true
Spray[tempid] = true
Duel = true
give_item(id, "weapon_knife")
give_item(tempid, "weapon_knife")
ChatColor(0, "%s %L", PREFIX, LANG_PLAYER,"SPRAY1", challenger, challenged)
ChatColor(0, "%s %L", PREFIX, LANG_PLAYER,"SPRAY2")
ChatColor(0, "%s %L", PREFIX, LANG_PLAYER,"SPRAY3", challenger)
}
case 12:
{
Guntoss[id] = true
Guntoss[tempid] = true
Duel = true
give_item(id, "weapon_knife")
give_item(tempid, "weapon_knife")
ChatColor(0, "%s %L", PREFIX, LANG_PLAYER,"GUNTOSS1", challenger, challenged)
ChatColor(0, "%s %L", PREFIX, LANG_PLAYER,"GUNTOSS2")
ChatColor(0, "%s %L", PREFIX, LANG_PLAYER,"GUNTOSS3", challenger)
}
}
if(get_pcvar_num(PcvarMusic))
{
client_cmd(0, "mp3volume 0.5")
}
if(get_pcvar_num(PcvarTimer))
{
set_task(0.2, "DuelTimer", TIMERTID)
}
Duel = true
return PLUGIN_HANDLED
}
/*===============================================================================
=
Таймер
================================================================================
=*/
public DuelTimer()
{
new t_name[33], ct_name[33]
get_user_name(CounterID, ct_name, 31)
get_user_name(TerroristID, t_name, 31)
Index--
if(Index > 60)
{
set_hudmessage(100, 100, 100, -1.0, 0.2, 0, 1.0, 1.0, _, _, 1)
if(Math[CounterID])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, MathTask)
}
else if(Word[CounterID])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, WordAnswer)
}
else
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER", Index, t_name, Tdengi, ct_name, Ctdengi, t_name, get_user_health(TerroristID), ct_name, get_user_health(CounterID))
}
set_task(1.0, "DuelTimer", TIMERTID)
}
else if(60 >= Index >= 46)
{
set_hudmessage(100, 100, 100, -1.0, 0.2, 0, 1.0, 1.0, _, _, 1)
if(Math[CounterID])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, MathTask)
}
else if(Word[CounterID])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, WordAnswer)
}
else
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER", Index, t_name, Tdengi, ct_name, Ctdengi, t_name, get_user_health(TerroristID), ct_name, get_user_health(CounterID))
}
set_task(1.0, "DuelTimer", TIMERTID)
}
else if(45 >= Index >= 31)
{
set_hudmessage(100, 100, 100, -1.0, 0.2, 0, 1.0, 1.0, _, _, 1)
if(Math[CounterID])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, MathTask)
}
else if(Word[CounterID])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, WordAnswer)
}
else
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER", Index, t_name, Tdengi, ct_name, Ctdengi, t_name, get_user_health(TerroristID), ct_name, get_user_health(CounterID))
}
set_task(1.0, "DuelTimer", TIMERTID)
}
else if(30 >= Index >= 16)
{
set_hudmessage(100, 100, 100, -1.0, 0.2, 0, 1.0, 1.0, _, _, 1)
if(Math[CounterID])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, MathTask)
}
else if(Word[CounterID])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, WordAnswer)
}
else
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER", Index, t_name, Tdengi, ct_name, Ctdengi, t_name, get_user_health(TerroristID), ct_name, get_user_health(CounterID))
}
set_task(1.0, "DuelTimer", TIMERTID)
}
else if(Index <= 15)
{
set_hudmessage(100, 100, 100, -1.0, 0.2, 0, 1.0, 1.0, _, _, 1)
if(Index > 0)
{
if(Math[CounterID])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, MathTask)
}
else if(Word[CounterID])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, WordAnswer)
}
else
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER", Index, t_name, Tdengi, ct_name, Ctdengi, t_name, get_user_health(TerroristID), ct_name, get_user_health(CounterID))
}
}
else if(Index < 0)
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "NO_WINNER")
Kill(CounterID)
Kill(TerroristID)
remove_task(TIMERTID)
if(get_pcvar_num(PcvarMusic))
{
client_cmd(0, "cd fadeout")
}
}
set_task(1.0, "DuelTimer", TIMERTID)
}
if(!is_user_alive(CounterID) || !is_user_alive(TerroristID))
{
remove_task(TIMERTID)
if(get_pcvar_num(PcvarMusic))
{
client_cmd(0, "cd fadeout")
}
}
return PLUGIN_CONTINUE
}

public DuelTimer2()
{
set_hudmessage(100, 100, 100, -1.0, 0.2, 0, 1.0, 1.0, _, _, 2)
if(Math[CounterID])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUELTASK", MathTask)
}
if(Word[TerroristID])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUELTASK", WordAnswer)
}
set_task(1.0, "DuelTimer2", TIMER2TID)
if(!is_user_alive(CounterID) || !is_user_alive(TerroristID))
{
remove_task(TIMER2TID)
if(get_pcvar_num(PcvarMusic))
{
client_cmd(0, "cd fadeout")
}
}
}
/*===============================================================================
=
Математическая дуэль
================================================================================
=*/
public StartMathDuel(ct, ter)
{
new num1,num2,num3,num4,mode, ctname[64], tername[64]
mode = random_num(0, 6)
num1 = random_num(1, 100)
num2 = random_num(1, 10)
num3 = random_num(1, 100)
num4 = random_num(1, 10)
get_user_name(ct, ctname, 63)
get_user_name(ter, tername, 63)
switch(mode)
{
case 0:
{
format(MathTask, 63, "%d + %d + %d + %d = ?", num1, num2, num3, num4)
MathAnswer = num1 + num2 + num3 + num4
}
case 1:
{
format(MathTask, 63, "%d + %d + %d - %d = ?", num1,num2,num3,num4)
MathAnswer = num1 + num2 + num3 - num4
}
case 2:
{
format(MathTask, 63, "%d + %d - %d + %d = ?", num1, num2, num3, num4)
MathAnswer = num1 + num2 - num3 + num4
}
case 3:
{
format(MathTask, 63, "%d - %d + %d + %d = ?", num1, num2, num3, num4)
MathAnswer = num1 - num2 + num3 + num4
}
case 4:
{
format(MathTask, 63, "%d + %d - %d - %d = ?", num1, num2, num3, num4)
MathAnswer = num1 + num2 - num3 - num4
}
case 5:
{
format(MathTask, 63, "%d - %d + %d - %d = ?", num1, num2, num3, num4)
MathAnswer = num1 - num2 + num3 - num4
}
case 6:
{
format(MathTask, 63, "%d - %d - %d + %d = ?", num1, num2, num3, num4)
MathAnswer = num1 - num2 - num3 + num4
}
}
ChatColor(0, "%s %L", PREFIX, LANG_PLAYER, "MATH1", ctname, tername)
ChatColor(0, "%s %L", PREFIX, LANG_PLAYER, "MATH2")
set_task(0.0, "StartWait", WAITTIMERTID)
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Словесная дуэль
================================================================================
=*/
public StartWordDuel(ct, ter)
{
new ctname[64], tername[64]
format(WordAnswer, charsmax(WordAnswer), "%s", Words[random_num(0, WordsNum)])
get_user_name(ct, ctname, 63)
get_user_name(ter, tername, 63)
ChatColor(0, "%s %L", PREFIX, LANG_PLAYER, "WORD1", ctname, tername)
ChatColor(0, "%s %L", PREFIX, LANG_PLAYER, "WORD2")
set_task(0.0, "StartWait", WAITTIMERTID)
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Ожидание дуэли
================================================================================
=*/
public StartWait()
{
set_hudmessage(255, 255, 255, -1.0, 0.25, 0, 1.0, 1.0, _, _, 2)
switch(DuelNum)
{
case 1:
{
ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "KNIFE_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
}
case 2:
{
ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "DEAGLE_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
}
case 3:
{
ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "GRENADE_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
}
case 4:
{
ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "SCOUT_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
}
case 5:
{
ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "DROB_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
}
case 6:
{
ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "AWP_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
}
case 7:
{
ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "FAMAS_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
}
case 9:
{
ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "MATH_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
}
case 10:
{
ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "WORD_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
}
}
Timer--
client_cmd(0, "spk %s", Sound[Timer])
if(Timer <= 0)
{
set_task(1.0, "StartGo")
}
else
{
set_task(1.0, "StartWait", WAITTIMERTID)
}
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Дуэль началась
================================================================================
=*/
public StartGo()
{
if(!is_user_alive(TerroristID) || !is_user_alive(CounterID) || !is_user_connected(TerroristID) || !is_user_connected(CounterID) || !is_valid_player(CounterID) || !is_valid_player(TerroristID))
{
return PLUGIN_HANDLED
}
switch(DuelNum)
{
case 1:
{
give_item(CounterID, "weapon_knife")
give_item(TerroristID, "weapon_knife")
}
case 2:
{
cs_set_weapon_ammo(give_item(CounterID, "weapon_deagle"), DAMMO)
cs_set_weapon_ammo(give_item(TerroristID, "weapon_deagle"), DAMMO1)
}
case 3:
{
give_item(CounterID, "weapon_hegrenade")
give_item(TerroristID, "weapon_hegrenade")
cs_set_user_bpammo(CounterID, CSW_HEGRENADE, 100)
cs_set_user_bpammo(TerroristID, CSW_HEGRENADE, 100)
}
case 4:
{
cs_set_weapon_ammo(give_item(CounterID, "weapon_scout"), DAMMO)
cs_set_weapon_ammo(give_item(TerroristID, "weapon_scout"), DAMMO1)
}
case 5:
{
cs_set_weapon_ammo(give_item(CounterID, "weapon_m3"), DAMMO)
cs_set_weapon_ammo(give_item(TerroristID, "weapon_m3"), DAMMO1)
}
case 6:
{
cs_set_weapon_ammo(give_item(CounterID, "weapon_awp"), DAMMO)
cs_set_weapon_ammo(give_item(TerroristID, "weapon_awp"), DAMMO1)
}
case 7:
{
cs_set_weapon_ammo(give_item(CounterID, "weapon_famas"), DAMMO)
cs_set_weapon_ammo(give_item(TerroristID, "weapon_famas"), DAMMO1)
}
}
if(get_pcvar_num(PcvarMusic))
{
client_cmd(0, "mp3volume 0.5")
}
if(get_pcvar_num(PcvarTimer))
{
set_task(0.2, "DuelTimer", TIMERTID)
}
else if(Math[CounterID] || Word[CounterID])
{
set_task(0.0, "DuelTimer2", TIMER2TID)
}
SettingTurn()

return PLUGIN_CONTINUE
}
/*===============================================================================
=
Старт русской рулетки
================================================================================
=*/
public StartRussianRoulette(ct, ter)
{
new ctname[64], tername[64]
get_user_name(ct, ctname, 63)
get_user_name(ter, tername, 63)
ChatColor(0, "%s %L", PREFIX, LANG_PLAYER, "RR1", ctname, tername)
ChatColor(0, "%s %L", PREFIX, LANG_PLAYER, "RR2")
ChatColor(0, "%s %L", PREFIX, LANG_PLAYER, "RR3", ctname)
set_hudmessage(0, 255, 0, -1.0, 0.2, 0, 1.0, 2.0, 0.5, 0.5, 4)
ShowSyncHudMsg(0, g_MsgHud3, "%L", LANG_PLAYER, "RRSTART", ctname, RussianRouletteBullet)
RussianRouletteMenu(ct)
Used[ct] = true
Used[ter] = true
NotYou[ct] = false
NotYou[ter] = false
RussianRouletteID = ct
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Меню русской рулетки
================================================================================
=*/
public RussianRouletteMenu(id)
{
new Len
new Keys = MENU_KEY_0
Len = format(MenuBody, MENUBODY - 1, "\y%L\w^n^n", LANG_PLAYER, "RRTITLE")
Keys |= (1 << 0)
Len += format(MenuBody[Len], MENUBODY - Len, "\r1. \w%L^n^n\y%s v%s", LANG_PLAYER, "RRDO", PLUGIN, VERSION, AUTHOR)
DoIt[id] = true
show_menu(id, Keys, MenuBody, -1, "Roulette Menu")
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Запуск барабана
================================================================================
=*/
public ActionRussianRouletteMenu(id, Key)
{
if(!DoIt[id])
{
return PLUGIN_HANDLED
}
get_user_name(id, RussianRouletteName, 63)
set_hudmessage(255, 255, 0, -1.0, 0.3, 0, 1.0, 2.0, 0.5, 0.5, 2)
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "RRDOING", RussianRouletteName)
set_task(3.0, "RussianRouletteStop", id)
DoIt[id] = false
Start[id] = true
return PLUGIN_HANDLED
}
/*===============================================================================
=
Остановка барабана
================================================================================
=*/
public RussianRouletteStop(id)
{
new RuletteRandom
RuletteRandom = random_num(1, 7)
get_user_name(id, RussianRouletteName, 63)
if(RussianRouletteBullet == 1 && RuletteRandom == 1)
{
Boom[id] = true
}
else if(RussianRouletteBullet == 2 && RuletteRandom == 2)
{
Boom[id] = true
}
else if(RussianRouletteBullet == 3 && RuletteRandom == 3)
{
Boom[id] = true
}
else
{
Boom[id] = false
}
NotYou[id] = true
Start[id] = false
set_hudmessage(255, 255, 0, -1.0, 0.3, 0, 1.0, 2.0, 0.5, 0.5, 2)
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "RRPRESS", RussianRouletteName)
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Проверка ответа в общем чате
================================================================================
=*/
public hooksay(id)
{
if(!Math[id] && !Word[id])
{
return PLUGIN_CONTINUE
}
new Msg[256], smanswer[32], wname[32]
read_args(Msg, 255)
remove_quotes(Msg)
num_to_str(MathAnswer, smanswer, 31)
if((Math[id] && equal(Msg, smanswer)) || (Word[id] && equal(Msg, WordAnswer)))
{
if(get_pcvar_num(PcvarTimer))
{
remove_task(TIMERTID)
}
if(get_pcvar_num(PcvarMusic))
{
client_cmd(0, "cd fadeout")
}
get_user_name(id, wname, 31)
//set_user_lifes(id, 1)
set_hudmessage(0, 255, 0, -1.0, 0.2, 0, 1.0, 10.0, 1.0, 1.0, 2)
if(Math[id])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "MATH_WINNER", wname, smanswer)
}
else if(Word[id])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "WORD_WINNER", wname)
}
if(id == CounterID)
{
set_msg_block(get_user_msgid("DeathMsg"), BLOCK_ONCE)
DeathMsg(CounterID, TerroristID, 1, KWPN)
Kill(TerroristID)
}
else if(id == TerroristID)
{
set_msg_block(get_user_msgid("DeathMsg"), BLOCK_ONCE)
DeathMsg(CounterID, TerroristID, 1, KWPN)
Kill(CounterID)
}
Math[CounterID] = false
Math[TerroristID] = false
Word[CounterID] = false
Word[TerroristID] = false
}
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Проверка ответа в командном чате
================================================================================
=*/
public hooksay_team(id)
{
if(!Math[id] && !Word[id])
{
return PLUGIN_CONTINUE
}
new Msg[256], smanswer[32], wname[32]
read_args(Msg, 255)
remove_quotes(Msg)
num_to_str(MathAnswer, smanswer, 31)
if((Math[id] && equal(Msg, smanswer)) || (Word[id] && equal(Msg, WordAnswer)))
{
if(get_pcvar_num(PcvarTimer))
{
remove_task(TIMERTID)
}
if(get_pcvar_num(PcvarMusic))
{
client_cmd(0, "cd fadeout")
}
get_user_name(id, wname, 31)
//set_user_lifes(id, 1)
set_hudmessage(0, 255, 0, -1.0, 0.2, 0, 1.0, 10.0, 1.0, 1.0, 2)
if(Math[id])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "MATH_WINNER", wname, smanswer)
}
else if(Word[id])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "WORD_WINNER", wname)
}
if(id == CounterID)
{
set_msg_block(get_user_msgid("DeathMsg"), BLOCK_ONCE)
DeathMsg(CounterID, TerroristID, 1, KWPN)
Kill(TerroristID)
}
else if(id == TerroristID)
{
set_msg_block(get_user_msgid("DeathMsg"), BLOCK_ONCE)
DeathMsg(CounterID, TerroristID, 1, KWPN)
Kill(CounterID)
}
Math[CounterID] = false
Math[TerroristID] = false
Word[CounterID] = false
Word[TerroristID] = false
}
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Игрок покинул сервер
================================================================================
=*/
public client_disconnect(id)
{
remove_task(id)
TouchWeapons[id] = false
Once[id] = false
Knife[id] = false
Deagle[id] = false
Grenade[id] = false
Scout[id] = false
Drob[id] = false
Awp[id] = false
Math[id] = false
Word[id] = false
RussianRoulette[id] = false
Used[id] = false
NotYou[id] = false
DoIt[id] = false
Start[id] = false
Spray[id] = false
Guntoss[id] = false
InDuel[id] = false
Famas[id] = false
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Выключение неуязвимости
================================================================================
=*/
public GodOff(tskid)
{
new id = tskid - GODTID
set_pev(id, pev_takedamage, 1)
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Информер
================================================================================
=*/
public Informer()
{
if(!get_pcvar_num(PcvarInformer))
{
remove_task(INFORMERTID)
return PLUGIN_HANDLED
}
new id, LastID, acts, cts, all, CurrentTime[32], NextMap[32], Terrorist[32], names[33][32], Message[512]
for(id = 1; id <= MaxPlayers; id++)
{
if(!is_user_connected(id))
{
continue
}
else if(is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT)
{
acts++
cts++
all ++
LastID = id
get_user_name(id, names[acts], 31)
}
else if(!is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT)
{
cts++
all++
}
else if(cs_get_user_team(id) == CS_TEAM_T && !is_user_bot(id))
{
get_user_name(id, Terrorist, 63)
all++
}
else
{
all++
}
}
if(acts == 1 && !Last && get_pcvar_num(PcvarLastMenu))
{
LastMenu(LastID)
Last = true
}
for(id = 1; id <= MaxPlayers; id++)
{
new Len, Mode[32]
get_pcvar_string(PcvarMode, Mode, 31)
Len = format(Message, 511, "%L: %L", LANG_PLAYER, "CURRENTMODE", LANG_PLAYER, Mode)
get_time("%H:%M:%S", CurrentTime, 31)
Len += format(Message[Len], 511 - Len, "^n%L: %s", LANG_PLAYER, "CURRENTTIME", CurrentTime)
if(get_cvar_float("mp_timelimit"))
{
new a = get_timeleft()
Len += format(Message[Len], 511 - Len, "^n%L: %d:%02d", LANG_PLAYER, "TLEFT", (a / 60), (a % 60))
}
else
{
Len += format(Message[Len], 511 - Len, "^n%L: %L", LANG_PLAYER, "TLEFT", LANG_PLAYER, "LASTR")
}
get_cvar_string("amx_nextmap", NextMap, 31)
Len += format(Message[Len], 511 - Len, "^n%L: %s", LANG_PLAYER, "NMAP", NextMap)
if(GetTsNum(0))
{
Len += format(Message[Len], 511 - Len, "^n%L: %s", LANG_PLAYER, "CTER", Terrorist)
}
else
{
Len += format(Message[Len], 511 - Len, "^n%L: %L", LANG_PLAYER, "CTER", LANG_PLAYER, "TNONE")
}
Len += format(Message[Len], 511 - Len, "^n%L: %d | %d", LANG_PLAYER, "ALIVECTS", acts,cts)
Len += format(Message[Len], 511 - Len, "^n%L: %d | %d", LANG_PLAYER, "APLAYERS", all, MaxPlayers)
if(acts > 3)
{
set_hudmessage(255, 117, 24, 0.01, 0.18, 0, 1.0, 1.0)
}
else if(acts == 3)
{
set_hudmessage(0, 255, 255, 0.01, 0.18, 0, 1.0, 1.0)
Len += format(Message[Len], 511 - Len, "^n^n1. %s^n2. %s^n3. %s", names[1], names[2], names[3])
}
else if(acts == 2)
{
set_hudmessage(137, 42, 220, 0.01, 0.18, 0, 1.0, 1.0)
Len += format(Message[Len], 511 - Len, "^n^n1. %s^n2. %s", names[1], names[2])
}
else
{
set_hudmessage(255, 0, 255, 0.01, 0.18, 0, 1.0, 1.0)
Len += format(Message[Len], 511 - Len, "^n^n1. %s", names[1])
}
ShowSyncHudMsg(id, g_MsgHud1, "%s", Message)
}
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Меню последнего КТ
================================================================================
=*/
public LastMenu(id)
{
new Len
new Keys = MENU_KEY_0
Len = format(MenuBody, MENUBODY - 1, "\yТы \rпоследний! \yЖелаешь \yсыграть \rдуэль?\w^n^n", LANG_PLAYER)
Keys |= (1 << 0)
Len += format(MenuBody[Len], MENUBODY - Len, "\r1. \w%L^n", LANG_PLAYER, "LASTYES")
Keys |= (1 << 1)
Len += format(MenuBody[Len], MENUBODY - Len, "\r2. \w%L^n", LANG_PLAYER, "LASTNO")
show_menu(id, Keys, MenuBody, -1, "Last Menu")
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Действие меню последнего КТ
================================================================================
=*/
public ActionLastMenu(id, key)
{
switch(key)
{
case 0:
{
client_cmd(id, "deathrun_duels")
}
case 1:
{
client_print(id, print_center, "%L", LANG_PLAYER, "FDUEL")
}
}
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Эффект волны
================================================================================
=*/
public Beacon(id)
{
if(cs_get_user_team(id) == CS_TEAM_CT)
{
static origin[3]
get_user_origin(id, origin)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMCYLINDER)
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2]-20)
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2]+200)
write_short(BeaconSprite)
write_byte(0)
write_byte(1)
write_byte(6)
write_byte(2)
write_byte(205)
write_byte(205)
write_byte(255)
write_byte(0)
write_byte(149)
write_byte(0)
message_end()
}
else
{
static origin[3]
get_user_origin(id, origin)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMCYLINDER)
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2]-20)
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2]+200)
write_short(BeaconSprite)
write_byte(0)
write_byte(1)
write_byte(6)
write_byte(2)
write_byte(205)
write_byte(205)
write_byte(149)
write_byte(0)
write_byte(255)
write_byte(0)
message_end()
}
set_task(1.0, "Beacon", id)
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Стоки...
Цветной чат
================================================================================
=*/
stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4")
replace_all(msg, 190, "!y", "^1")
replace_all(msg, 190, "!team", "^3")
if (id) players[0] = id
else get_players(players, count, "ch")
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, SayText, _, players[i])
write_byte(players[i])
write_string(msg)
message_end()
}
}
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Сообщение о смерти
================================================================================
=*/
stock DeathMsg(killer_id, victim_id, headshot, weaponname[])
{
message_begin(MSG_ALL, get_user_msgid("DeathMsg"))
write_byte(killer_id)
write_byte(victim_id)
write_byte(headshot)
write_string(weaponname)
message_end()
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Взять количество флагов
================================================================================
=*/
stock GetFlagsNum(pcvar)
{
new Duels = GetFlags(pcvar)
new DuelsNum = 0
for(new a = 0; a < DCOUNT; a++)
{
if(Duels & (1 << a))
{
DuelsNum++
}
}
return DuelsNum
}
/*===============================================================================
=
Взять флаги
================================================================================
=*/
stock GetFlags(pcvar)
{
new Flags[32]
get_pcvar_string(pcvar, Flags, 31)
return read_flags(Flags)
}
/*===============================================================================
=
Количество спецназа
================================================================================
=*/
stock GetCTsNum(alive)
{
new CTsNum = 0
for (new id = 1; id <= MaxPlayers; id++)
{
if(!is_user_connected(id))
{
continue
}
if(alive)
{
if(cs_get_user_team(id) == CS_TEAM_CT && is_user_alive(id))
{
CTsNum++
}
}
else
{
if(cs_get_user_team(id) == CS_TEAM_CT)
{
CTsNum++
}
}
}
return CTsNum
}
/*===============================================================================
=
Количество террористов
================================================================================
=*/
stock GetTsNum(alive)
{
new TsNum = 0
for (new id = 1; id <= MaxPlayers; id++)
{
if(!is_user_connected(id) || is_user_bot(id))
{
continue
}
if(alive)
{
if(cs_get_user_team(id) == CS_TEAM_T && is_user_alive(id))
{
TsNum++
}
}
else
{
if(cs_get_user_team(id) == CS_TEAM_T)
{
TsNum++
}
}
}
return TsNum
}
/*===============================================================================
=
Убить игрока
================================================================================
=*/
stock Kill(id)
{
user_kill(id, 1)
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Очередь в дуэли
================================================================================
=*/

public ammotct()
{
if(AttackCt == 1)
{
if(DuelNum == 2)
{
strip_user_weapons(TerroristID)
strip_user_weapons(CounterID)
cs_set_weapon_ammo(give_item(CounterID, "weapon_deagle"), 1)
}
else if(DuelNum == 4)
{
strip_user_weapons(TerroristID)
strip_user_weapons(CounterID)
cs_set_weapon_ammo(give_item(CounterID, "weapon_scout"), 1)
}
else if(DuelNum == 5)
{
strip_user_weapons(TerroristID)
strip_user_weapons(CounterID)
cs_set_weapon_ammo(give_item(CounterID, "weapon_m3"), 1)
}
else if(DuelNum == 6)
{
strip_user_weapons(TerroristID)
strip_user_weapons(CounterID)
cs_set_weapon_ammo(give_item(CounterID, "weapon_awp"), 1)
}
else if(DuelNum == 7)
{
strip_user_weapons(TerroristID)
strip_user_weapons(CounterID)
cs_set_weapon_ammo(give_item(CounterID, "weapon_famas"), 1)
}
}
else if(AttackTt == 1)
{
if(DuelNum == 2)
{
strip_user_weapons(TerroristID)
cs_set_weapon_ammo(give_item(TerroristID, "weapon_deagle"), 1)
strip_user_weapons(CounterID)
}
else if(DuelNum == 4)
{
strip_user_weapons(TerroristID)
cs_set_weapon_ammo(give_item(TerroristID, "weapon_scout"), 1)
strip_user_weapons(CounterID)
}
else if(DuelNum == 5)
{
strip_user_weapons(TerroristID)
cs_set_weapon_ammo(give_item(TerroristID, "weapon_m3"), 1)
strip_user_weapons(CounterID)
}
else if(DuelNum == 6)
{
strip_user_weapons(TerroristID)
cs_set_weapon_ammo(give_item(TerroristID, "weapon_awp"), 1)
strip_user_weapons(CounterID)
}
else if(DuelNum == 7)
{
strip_user_weapons(TerroristID)
cs_set_weapon_ammo(give_item(TerroristID, "weapon_famas"), 1)
strip_user_weapons(CounterID)
}
}
}

public SettingTurn()
{
AttackCt = 1
AttackTt = 0
SettingBoomAuto()
if(DuelNum == 2)
{
strip_user_weapons(TerroristID)
strip_user_weapons(CounterID)
cs_set_weapon_ammo(give_item(CounterID, "weapon_deagle"), 1)
}
else if(DuelNum == 4)
{
strip_user_weapons(TerroristID)
strip_user_weapons(CounterID)
cs_set_weapon_ammo(give_item(CounterID, "weapon_scout"), 1)
}
else if(DuelNum == 5)
{
strip_user_weapons(TerroristID)
strip_user_weapons(CounterID)
cs_set_weapon_ammo(give_item(CounterID, "weapon_m3"), 1)
}
else if(DuelNum == 6)
{
strip_user_weapons(TerroristID)
strip_user_weapons(CounterID)
cs_set_weapon_ammo(give_item(CounterID, "weapon_awp"), 1)
}
else if(DuelNum == 7)
{
strip_user_weapons(TerroristID)
strip_user_weapons(CounterID)
cs_set_weapon_ammo(give_item(CounterID, "weapon_famas"), 1)
}
}

public HamAttack(weapon)
{
new id = pev(weapon,pev_owner)

if(Duel)
{
if(AttackCt == 1 && id == CounterID)
{

AttackCt = 0
AttackTt = 1
remove_task(42314)
ammotct()
SettingBoomAuto()
}
else if(AttackTt == 1 && id == TerroristID)
{
AttackCt = 1
AttackTt = 0
remove_task(42314)
ammotct()
SettingBoomAuto()
}
}
}

public SettingBoomAuto()
{
TimerAutoBoom = 5
set_task(1.0, "AutoBoom", 42314, _, _, "a", TimerAutoBoom + 2)
}

public AutoBoom()
{
if(!Duel)
return PLUGIN_CONTINUE

new t_name[32], ct_name[32]
get_user_name(CounterID, ct_name, 31)
get_user_name(TerroristID, t_name, 31)
if(AttackCt == 1)
{
client_print(0, print_center, "Стреляет: %s | Осталось: %d", ct_name, TimerAutoBoom)
}
else if(AttackTt == 1)
{
client_print(0, print_center, "Стреляет: %s | Осталось: %d", t_name, TimerAutoBoom)
}
if(TimerAutoBoom == 0 && AttackCt == 1 && is_user_alive(CounterID) && is_user_alive(TerroristID))
{
client_cmd(CounterID, "+attack;wait;-attack")
if(TimerAutoBoom < 0)
{
AttackCt = 0
AttackTt = 1
remove_task(42314)
SettingBoomAuto()
ammotct()
}

}
else if(TimerAutoBoom == 0 && AttackTt == 1 && is_user_alive(CounterID) && is_user_alive(TerroristID))
{
client_cmd(TerroristID, "+attack;wait;-attack")
if(TimerAutoBoom < 0)
{
AttackCt = 1
AttackTt = 0
remove_task(42314)
SettingBoomAuto()
ammotct()
}
}
TimerAutoBoom--

return PLUGIN_CONTINUE
}


/*===============================================================================
=
Ставки
================================================================================
=*/

public MenuStavki(id)
{
static menu[650], iLen
new MaxMoney = cs_get_user_money(id)
new t_name[33], ct_name[33]
get_user_name(TerroristID, t_name, 31)
get_user_name(CounterID, ct_name, 31)
iLen = 0
iLen = formatex(menu[iLen], charsmax(menu) - iLen, "\dВаши деньги: \y(\r%d\y)^n\dВаша ставка: \y(\r%d\y)^n\dОсталось: \y%d^n^n", MaxMoney, Mydengi[id], SecondTimerStavki[id]);
if(MyStavkaTt[id] || MyStavkaCt[id])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \dПоставить на \yТ:\r%s^n", t_name);
keys &= ~MENU_KEY_1
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \wПоставить на \yТ:\r%s^n", t_name);
keys |= MENU_KEY_1
}
if(MyStavkaTt[id] || MyStavkaCt[id])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \dПоставить на \yКТ:\r%s^n", ct_name);
keys &= ~MENU_KEY_2
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \wПоставить на \yКТ:\r%s^n", ct_name);
keys |= MENU_KEY_2
}
if(MaxMoney >= 100 || !MyStavkaTt[id] || !MyStavkaCt[id])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\r3. \wПовысить ставку на \r100$^n");
keys |= MENU_KEY_3
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\r3. \dПовысить ставку на \r100$^n");
keys &= ~MENU_KEY_3
}
if(MaxMoney >= 1000 || !MyStavkaTt[id] || !MyStavkaCt[id])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r4. \wПовысить ставку на \r1000$^n");
keys |= MENU_KEY_4
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r4. \dПовысить ставку на \r1000$^n");
keys &= ~MENU_KEY_4
}
if(MaxMoney != 0 || !MyStavkaTt[id] || !MyStavkaCt[id])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \wПоставить всё \y(\r%d$\y)^n", MaxMoney);
keys |= MENU_KEY_5
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \wПоставить всё \y(\r%d$\y)^n", MaxMoney);
keys &= ~MENU_KEY_5
}
if(Mydengi[id] != 0 && Mydengi[id] > 100)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\r6. \wПонизить ставку на \y(\r100$\y)^n");
keys |= MENU_KEY_6
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\r6. \wПонизить ставку на \y(\r100$\y)^n");
keys &= ~MENU_KEY_6
}
if(Mydengi[id] != 0 && Mydengi[id] > 1000)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r7. \wПонизить ставку на \y(\r1000$\y)^n");
keys |= MENU_KEY_6
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r7. \wПонизить ставку на \y(\r1000$\y)^n");
keys &= ~MENU_KEY_6
}
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\r0. \wВыход");
keys |= MENU_KEY_0
}

show_menu(id, keys, menu, -1, "Menu 1");
return PLUGIN_HANDLED
}

public OffMenu(id) show_menu(id, 0, "^n", 1)

public menus1(id, key)
{
new name[32]
new MaxMoney = cs_get_user_money(id)
get_user_name(id, name, 31)
switch(key)
{
case 0:
{
if(Mydengi[id] <= 0)
{
ChatColor(id, "!y[!gСтавки!y] !teamДля начала поставьте хотябы !g100$")
return PLUGIN_CONTINUE
}
Tdengi += Mydengi[id]
ChatColor(0, "!y[!gСтавки!y] !teamИгрок !g%s !teamпоставил !g%d$ !teamна !gтеррориста", name, Mydengi[id])
MyStavkaCt[id] = false
MyStavkaTt[id] = true
OpenMenuStavki[id] = false
timer[id] = false
remove_task ( id + 41292 );
show_menu(id, 0, "^n", 1)
}

case 1:
{
if(Mydengi[id] <= 0)
{
ChatColor(id, "!y[!gСтавки!y] !teamДля начала поставьте хотябы !g100$")
return PLUGIN_CONTINUE
}
Ctdengi += Mydengi[id]
ChatColor(0, "!y[!gСтавки!y] !teamИгрок !g%s !teamпоставил !g%d$ !teamна !gконтер-террориста", name, Mydengi[id])
MyStavkaCt[id] = true
MyStavkaTt[id] = false
OpenMenuStavki[id] = false
timer[id] = false
remove_task ( id + 41292 );
show_menu(id, 0, "^n", 1)
}

case 2:
{
if(MaxMoney <= 0)
{
ChatColor(id, "!y[!gСтавки!y] !teamНе хватает !gденег")
return PLUGIN_CONTINUE
}
Mydengi[id] += 100
cs_set_user_money(id, MaxMoney - 100)
}

case 3:
{
if(MaxMoney <= 0)
{
ChatColor(id, "!y[!gСтавки!y] !teamНе хватает !gденег")
return PLUGIN_CONTINUE
}
Mydengi[id] += 1000
cs_set_user_money(id, MaxMoney - 1000)
}

case 4:
{
if(MaxMoney <= 0)
{
ChatColor(id, "!y[!gСтавки!y] !teamНе хватает !gденег")
return PLUGIN_CONTINUE
}
Mydengi[id] += MaxMoney
cs_set_user_money(id, 0)
}
case 5:
{
if(Mydengi[id] != 0 && Mydengi[id] < 100)
{
ChatColor(id, "!y[!gСтавки!y] !teamВаша ставка меньше !g100$")
return PLUGIN_CONTINUE
}
Mydengi[id] -= 100
cs_set_user_money(id, MaxMoney + 100)
}
case 6:
{
if(Mydengi[id] != 0 && Mydengi[id] < 1000)
{
ChatColor(id, "!y[!gСтавки!y] !teamВаша ставка меньше !g1000$")
return PLUGIN_CONTINUE
}
Mydengi[id] -= 1000
cs_set_user_money(id, MaxMoney + 1000)
}
case 9:
{
timer[id] = false
remove_task ( id + 41292 );
show_menu(id, 0, "^n", 1)
}

}
return PLUGIN_CONTINUE
}

public SettingStavki()
{
for(new id = 1; id <= get_maxplayers(); id++)
{
if(is_user_connected(id) && !is_user_alive(id))
{
SecondTimerStavki[id] = 20
Ctdengi = 0
Tdengi = 0
Mydengi[id] = 0
set_task ( 1.0, "T_Menu_Try", id + 41292, _, _, "a", SecondTimerStavki[id] );
MyStavkaCt[id] = false
MyStavkaTt[id] = false
OpenMenuStavki[id] = true
}
}
}
public T_Menu_Try( id )
{
if ( id > 41292 )
id -= 41292

SecondTimerStavki[ id ] -= 1;

if ( SecondTimerStavki[id] < 1 )
{
if ( task_exists ( id + 41292 ) )
remove_task ( id + 41292 );

cleardhud(id)
set_dhudmessage( 0, 255, 0, -1.0, -0.35, 1, 3.0, 3.0, 0.1, 1.5 )
show_dhudmessage(id, "Ставки сделаны!^n**Начнём мочилово!!**")
set_task ( 1.1, "Hide_Menu", id + 41293 );

timer[ id ] = true
}
MenuStavki( id )
}
}
public Hide_Menu(id)
{
if ( id > 41293 )
id -= 41293

client_cmd(id, "slot10")
}

public go_present_ct_stavki(id)
{
new name[32]
new MaxMoney = cs_get_user_money(id)
get_user_name(id, name, 31)

if(MyStavkaCt[id]&& id != CounterID && id != TerroristID)
{
new CoffPresentCt = Mydengi[id] * 2
cs_set_user_money(id, MaxMoney + CoffPresentCt)
ChatColor(0, "!y[!gСтавки!y] !g%s !teamВыиграл !g%d$", name, CoffPresentCt)
}
}

public go_present_tt_stavki(id)
{
new name[32]
new MaxMoney = cs_get_user_money(id)
get_user_name(id, name, 31)

if(MyStavkaTt[id] && id != TerroristID && id != CounterID)
{
new CoffPresentTt = Mydengi[id] * 2
cs_set_user_money(id, MaxMoney + CoffPresentTt)
ChatColor(0, "!y[!gСтавки!y] !g%s !teamВыиграл !g%d$", name, CoffPresentTt)
}
}

/*===============================================================================
=
Событие получение урона, (Дамагер при дуели)
================================================================================
=*/

public DamageEvent(victim)
{
new attacker = get_user_attacker(victim), damage = read_data(2), hp = get_user_health(victim), at_name[32], vi_name[32]
get_user_name(victim, vi_name, 31)
get_user_name(attacker, at_name, 31)

if(!Duel || attacker == victim || !is_user_connected(attacker) || !is_user_connected(victim) || get_user_team(attacker) == get_user_team(victim) || !is_user_alive(attacker) || !is_user_alive(victim))
return PLUGIN_CONTINUE

if(CounterID == victim || CounterID == attacker || TerroristID == victim || TerroristID == attacker)
{
cleardhud(attacker)
cleardhud(victim)

set_dhudmessage( 0, 255, 0, -1.0, -0.35, 1, 3.0, 3.0, 0.1, 1.5 )
show_dhudmessage(attacker, "Вы нанесли: %d", damage)
ChatColor(0, "!g%s !teamНанёс !g%d !teamУрона игроку !g%s", at_name, damage, vi_name)
ChatColor(0, "!team у игрока !g%s !teamосталось !g%d !teamЗдоровья", vi_name, hp)
set_dhudmessage( 255, 0, 0, -1.0, -0.35, 1, 3.0, 3.0, 0.1, 1.5 )
show_dhudmessage(victim, "Вам нанесли: %d", damage)
}

return PLUGIN_CONTINUE
}


/*===============================================================================
=
Убрать с экрана все дхуд сообщения
================================================================================
=*/

public cleardhud(pId)
{
ClearDHUDMessages(pId);
}

stock ClearDHUDMessages(pId, iClear = 8)
{
for (new iDHUD = 0; iDHUD < iClear; iDHUD++)
show_dhudmessage(pId, "");
}

А нормальные значения,это какие ?



!
Предупреждение:
Старайтесь максимально понятно оформить тему, длинные сообщения под спойлер, исходники прикрепляйте либо в code/codebox


Отредактировал: AndrewZ, - 30.10.2012, 21:00
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Саша
сообщение 30.10.2012, 18:52
Сообщение #5


Стаж: 16 лет

Сообщений: 1082
Благодарностей: 441
Полезность: 828

Нормальные это те которые нужны тебе!

и это.. НАУЧИТЕСЬ НАКОНЕЦ ПОЛЬЗОВАТЬСЯ СПОИЛЕРОМ!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя looks5q
сообщение 30.10.2012, 18:55
Сообщение #6
Стаж: 13 лет

Сообщений: 92
Благодарностей: 4
Полезность: < 0

Те которые сейчас стоят они вроде нормальные.Помоги пожалуйсто, я плохо понимаю в этом.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 30.10.2012, 19:23
Сообщение #7
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

looks5q, для начала разберись с понятиями: спойлер, код, как приложить код, как приложить код под спойлер, как прикрепить файл sma. Не понимаешь - одупляйся, план есть)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя looks5q
сообщение 30.10.2012, 19:26
Сообщение #8
Стаж: 13 лет

Сообщений: 92
Благодарностей: 4
Полезность: < 0

Я знаю это, а тебе трудно помочь ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 30.10.2012, 19:50
Сообщение #9


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Код
set_user_health(id, 100)
set_user_health(tempid, 100)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 30.10.2012, 20:22
Сообщение #10
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(looks5q @ 30.10.2012, 21:26) *
Я знаю это, а тебе трудно помочь ?

Твои поступки говорят иное, см. пост #4.
Я против помощи тем, кто, в первую очередь, не уважает остальных участников форума.

Отредактировал: Safety1st, - 30.10.2012, 20:25
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя looks5q
сообщение 30.10.2012, 21:13
Сообщение #11
Стаж: 13 лет

Сообщений: 92
Благодарностей: 4
Полезность: < 0

Прошу прощения , больше такого не повторится..

Legenda , Извини , а что с этим делать?Удалить?Если заменить на 35 , то например на картах 1 хп будет же 35 хп..А если удалить , то нужно же скомплировать , когда комплирую выдает ошибку
Код
Ошибка компиляции плагина! (использовался компилятор "AMX Mod X 1.8.1")

Проверьте ошибки ниже:


Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

d.sma(2504) : error 054: unmatched closing brace

1 Error.
Could not locate output file d.amx (compile failed).


ОШИБКА: плагин не был скомпилирован, см. выше


И это же вроде хп при начале дуэли , что мне не нужно...

Что делать и как это исправить sad.gif

Отредактировал: looks5q, - 30.10.2012, 21:26
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 30.10.2012, 21:36
Сообщение #12
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(looks5q @ 30.10.2012, 23:13) *
Прошу прощения , больше такого не повторится..

Приложи оригинальный файл в виде sma. Или в тэгах [c o d e]. Понимаешь, когда ты приложил неправильно поначалу - потерялись все отступы. Код стал нечитаемым и, скорее всего, некомпилируемым. Без этого тебе не помочь.

По отредактированному тобой плагину: также нужен код или sma. Без этого невозможно тебе помочь.

Тут
Код
set_user_health(id, 100)
set_user_health(tempid, 100)

Legenda, скорее всего, имел ввиду, что нужно как-то модернизировать этот блок. Убирать полностью, скорее всего, будет не лучшим решением.

Отредактировал: Safety1st, - 30.10.2012, 21:37
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя looks5q
сообщение 30.10.2012, 21:42
Сообщение #13
Стаж: 13 лет

Сообщений: 92
Благодарностей: 4
Полезность: < 0

Вот сма файл , я его даже не редактировал..

Прошу прощения , вместо букв иероглифы (

Скрытый текст
/*===============================================================================
=
* ======== ОПИСАНИЕ ========
*
* Система дуэлей для Deathrun
* мода
*
* ========= ВАЖНО ==========
*
* Для корректной работы лагина
* используйте FREE и INVIS
* из архива
*
* ======== ФУНКЦИИ =========
*
* 1. Стандартно 11 уникальных дуэлей
* 2. Гибкие настройки
* 3. Только последний кт сможет открыть меню
* 4. Корректная работа с ботами
* 5. Сервер не падает
* 6. Таймер и ограничения дуэли по времени
* 7. Анти-спавн килл
* 8. Встроеные информер
* 9. Худы не перебиваются
* 10. Открывает меню последнему КТ
* 11. Музыка во время дуэли без закачки на клиент
* 12. Ожидание дуэли
* 13. Озвучивание отсчета
* 14. Различные эффекты
* 15. Очередь
* 16. Ставки
* 17. И многое другое
*
* == КОМАНДЫ ДЛЯ АДМИНА ==
*
* dd_origin_menu
* - Открыть меню точек телепортации
*
* == КОМАНДЫ ДЛЯ ИГРОКА ==
*
* say /lr | !lr
* - Открыть меню дуэлей
*
* say /dd | !dd
* - Открыть меню дуэлей
*
* deathrun_duels
* - Открыть меню дуэлей
*
* ===== ПЕРЕМЕННЫЕ ======
*
* dd_duels <флаги> [По умолчанию: abcdefghijkl]
* - Включение дуэлей
* - a На ножах
* - b Диглы
* - c Гранаты
* - d Скауты
* - e Дробовики
* - f Авп
* - g Фамас
* - h Русская Рулетка
* - i Математическая
* - j Словесная
* - k Спреи
* - l Дальность Дропа
*
* dd_music <0/1> [По умолчанию: 1]
* - Музыка во время луэли
* - 0 Выключена
* - 1 Включена
*
* dd_timer <0/1> [По умолчанию: 1]
* - Таймер и ограничение дуэли во времени
* - 0 Выключен
* - 1 Включен
*
* dd_timelimit <секунды> [По умолчанию: 120]
* - Ограничение дуэли во времени
* - Только если dd_timer 1
*
* dd_spawngod <0/1> [По умолчанию: 1]
* - Анти-спавн килл
* - 0 Выключен
* - 1 Включен
*
* dd_effects <1/2/3> [По умолчанию: 3]
* - Эффекты
* - 1 Ауры
* - 2 Волны
* - 3 Ауры и волны
*
* dd_wait <секунды> [По умолчанию: 5]
* - Ожидание перед дуэлями
*
* dd_informer <0/1> [По умолчанию: 1]
* - HUD-Информер слева
* - 0 Выключен
* - 1 Включен
*
* dd_lastmenu <0/1> [По умолчанию: 1]
* - Открытие меню c вопросом последнему CT
* - 0 Выключен
* - 1 Включен
* - Только если dd_informer 1
*
* dd_telepot <0/1> [По умолчанию: 1]
* - Телепортирование игроков в начале дуэли
* - 0 Выключено
* - 1 Включено
*
* === ИСТОРИЯ ИЗМЕНЕНИЙ ===
*
* 2.5:
* - Добавлено телепортирование игроков
*
* 2.4:
* - Fix Fix Fix
*
* 2.3:
* - Фиксы ошибок
* - Добавлена дуэль на фамасах
*
* 2.2:
* - Фиксы ошибок
*
* 2.1:
* - Фиксы ошибок
*
* 2.0:
* - Первый частный релиз
*
* 1.0..1.9:
* - Ранние "рабочие" версии под названием Last Request by NoName
*
* ================================================================================
=*/
/*===============================================================================
=
Инклюды
================================================================================
=*/
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
#include <fakemeta_util>
#include <engine>
#include <fun>
#include <hamsandwich>
#include <dhudmessage>
//#include <dr_gonka>
//#include <deathrun_manager>
/*===============================================================================
=
Данные о плагине
================================================================================
=*/
#define PLUGIN "DeathRun Duel"
#define VERSION "2.5.1"
#define AUTHOR "Sho0ter"
#define PREFIX "^1[^4Дуель^1]"

#define is_valid_player(%1) (1 <= %1 <= 32)
/*===============================================================================
=
Различные данные
================================================================================
=*/
#define GODTID 100500
#define TIMERTID 100501
#define TIMER2TID 100502
#define INFORMERTID 100503
#define WAITTIMERTID 100504
#define MCOUNT 6
#define DCOUNT 12
#define SCOUNT 20
#define DAMMO 1
#define DAMMO1 0
#define KWPN "world"
#define KHS 1
#define MENUBODY 1024
#define MAXORIGINS 2
#define MAXWORDS 100
/*===============================================================================
=
Константы
================================================================================
=*/
new MyStavkaCt[33] = false
new MyStavkaTt[33] = false
new OpenMenuStavki[33] = false
new Ctdengi = 0
new Tdengi = 0
new Mydengi[33] = 0
new SecondTimerStavki[33]
new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MEN
U_KEY_8|MENU_KEY_9|MENU_KEY_0

new AttackCt = 0
new AttackTt = 0
new TimerAutoBoom

new MaxPlayers
new ChoosedDuel
new DuelNum
new SayText
new BeaconSprite
new CounterID
new TerroristID
new MathAnswer
new RussianRouletteID
new RussianRouletteBullet
new Index
new Timer
new OriginsNum
new WordsNum

new g_MsgHud1
new g_MsgHud2
new g_MsgHud3

new PcvarDuels
new PcvarMusic
new PcvarTimer
new PcvarTimeLimit
new PcvarSpawnGod
new PcvarEffects
new PcvarInformer
new PcvarLastMenu
new PcvarWait
new PcvarMode
new PcvarTele

new MenuPosition[33]
new MenuTs[33]
new RussianRouletteName[64]
new MathTask[64]
new ConfigsDir[64]
new WordsFile[64]
new OriginsFile[128]
new WordAnswer[128]

new MenuBody[MENUBODY + 1]

new bool:Last
new bool:Duel
new bool:FPage
new bool:TouchWeapons[33]
new bool:Once[33]
new bool:InDuel[33]
new bool:Knife[33]
new bool:Deagle[33]
new bool:Grenade[33]
new bool:Scout[33]
new bool:Drob[33]
new bool:Awp[33]
new bool:Math[33]
new bool:Word[33]
new bool:RussianRoulette[33]
new bool:Used[33]
new bool:Boom[33]
new bool:NotYou[33]
new bool:DoIt[33]
new bool:Start[33]
new bool:Spray[33]
new bool:Guntoss[33]
new bool:Famas[33]
new bool:give_scout[33]
new timer[33]

new Origins[MAXORIGINS][128]
new Words[MAXWORDS][192]


new Duels[DCOUNT][] =
{
"DUEL_1",
"DUEL_2",
"DUEL_3",
"DUEL_4",
"DUEL_5",
"DUEL_6",
"DUEL_7",
"DUEL_8",
"DUEL_9",
"DUEL_10",
"DUEL_11",
"DUEL_12"
}

new Sound[SCOUNT][] =
{
"fvox/one",
"fvox/two",
"fvox/three",
"fvox/four",
"fvox/five",
"fvox/six",
"fvox/seven",
"fvox/eight",
"fvox/nine",
"fvox/ten",
"fvox/eleven",
"fvox/twelve",
"fvox/thirteen",
"fvox/fourteen",
"fvox/fifteen",
"fvox/sixteen",
"fvox/seventeen",
"fvox/eighteen",
"fvox/nineteen",
"fvox/twenty"
}
/*===============================================================================
=
Загрузка плагина
================================================================================
=*/
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("HLTV", "RoundStart", "a", "1=0", "2=0")
register_event("Damage","DamageEvent","b","2!0","3=0","4!0")
register_logevent("RoundEnd", 2, "1=Round_End")
RegisterHam(Ham_Touch, "weaponbox", "TouchWeapon")
RegisterHam(Ham_Touch, "armoury_entity", "TouchWeapon")
RegisterHam(Ham_TakeDamage, "player", "UserTakeDamage")
RegisterHam(Ham_Touch, "weapon_shield", "TouchWeapon")
RegisterHam(Ham_Spawn, "player", "PlayerSpawn", 1)
RegisterHam(Ham_Killed, "player", "PlayerKilled")
RegisterHam(Ham_Weapon_PrimaryAttack ,"weapon_m3","HamAttack")
RegisterHam(Ham_Weapon_PrimaryAttack ,"weapon_famas","HamAttack")
RegisterHam(Ham_Weapon_PrimaryAttack ,"weapon_deagle","HamAttack")
RegisterHam(Ham_Weapon_PrimaryAttack ,"weapon_ak47","HamAttack")
RegisterHam(Ham_Weapon_PrimaryAttack ,"weapon_awp","HamAttack")
RegisterHam(Ham_Weapon_PrimaryAttack ,"weapon_scout","HamAttack")
register_forward(FM_CmdStart,"CmdStart",1)
register_forward(FM_UpdateClientData, "UpdateClientData", 1)
register_clcmd("say /duel", "CmdDuelsMenu")
register_clcmd("say /dd", "CmdDuelsMenu")
register_clcmd("say_team /duel", "CmdDuelsMenu")
register_clcmd("say_team /dd", "CmdDuelsMenu")
register_clcmd("deathrun_duels", "CmdDuelsMenu")
register_clcmd("say", "hooksay")
register_clcmd("say_team", "hooksay_team")
register_clcmd("say /scout", "GiveScout")
register_clcmd("drop", "HookDrop")
register_concmd("dd_origin_menu", "CmdOriginsMenu", ADMIN_RCON)
PcvarDuels = register_cvar("dd_duels", "abdefhmg")
PcvarMusic = register_cvar("dd_music", "0")
PcvarTimer = register_cvar("dd_timer", "0")
PcvarTimeLimit = register_cvar("dd_timelimit", "120")
PcvarSpawnGod = register_cvar("dd_spawngod", "1")
PcvarEffects = register_cvar("dd_effects", "3")
PcvarWait = register_cvar("dd_wait", "15")
PcvarInformer = register_cvar("dd_informer", "0")
PcvarLastMenu = register_cvar("dd_lastmenu", "1")
PcvarTele = register_cvar("dd_teleport", "1")
PcvarMode = register_cvar("deathrun_mode", "NONE", FCVAR_SERVER)
register_cvar("DeathRun Duel", "2.5.1", FCVAR_SERVER|FCVAR_SPONLY)
register_menucmd(register_menuid("Duels Menu"), MENUBODY - 1, "ActionDuelsMenu")
register_menucmd(register_menuid("Enemy Menu"), MENUBODY - 1, "ActionEnemyMenu")
register_menucmd(register_menuid("Roulette Menu"), MENUBODY - 1, "ActionRussianRouletteMenu")
register_menucmd(register_menuid("Last Menu"), MENUBODY - 1, "ActionLastMenu")
register_menucmd(register_menuid("Origins Menu"), MENUBODY - 1, "ActionOriginsMenu")
register_menu("Menu 1", keys, "menus1")
SayText = get_user_msgid("SayText")
MaxPlayers = get_maxplayers()
g_MsgHud1 = CreateHudSyncObj()
g_MsgHud2 = CreateHudSyncObj()
g_MsgHud3 = CreateHudSyncObj()
register_dictionary("deathrun_duels.txt")
set_task(1.0, "Informer", INFORMERTID, "", 0, "b")
server_cmd("dd_wait 20")
server_cmd("dd_timer 1")
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Закачки плагина
================================================================================
=*/
public plugin_precache()
{
BeaconSprite = precache_model("sprites/shockwave.spr")
get_configsdir(ConfigsDir, charsmax(ConfigsDir))
format(WordsFile, charsmax(WordsFile), "%s/deathrun_duels.ini", ConfigsDir)
new cmap[32], Len, dddir[128]
format(dddir, 127, "%s/deathrun_duels", ConfigsDir)
if(!dir_exists(dddir))
{
mkdir(dddir)
}
get_mapname(cmap, 31)
format(OriginsFile, charsmax(OriginsFile), "%s/deathrun_duels/%s.ini", ConfigsDir, cmap)
new i = 0
if(file_exists(WordsFile))
{
while(i < MAXWORDS && read_file(WordsFile, i , Words[WordsNum], 191, Len))
{
i++
if(Words[WordsNum][0] == ';' || Len == 0)
{
continue
}
WordsNum++
}
}
i = 0
if(file_exists(OriginsFile))
{
while(i < MAXORIGINS && read_file(OriginsFile, i ,Origins[OriginsNum], 127, Len))
{
i++
if(Origins[OriginsNum][0] == ';' || Len == 0)
{
continue
}
OriginsNum++
}
}
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Начало раунда
================================================================================
=*/
public RoundStart()
{
for (new id = 1; id <= MaxPlayers; id++)
{
if(is_user_alive(id) && is_user_connected(id))
{
give_scout[id] = false
}
}

Duel = false
Last = false
server_cmd("bh_enabled 1")
server_cmd("vampir_regenhp 1")
server_cmd("dr_rembo 1")
server_cmd("drshop_enable 1")
server_cmd("trigger_hurt 0")
if(get_pcvar_num(PcvarTimer))
{
remove_task(TIMERTID)
}
remove_task(TIMER2TID)
remove_task(WAITTIMERTID)
return PLUGIN_CONTINUE
}

/*===============================================================================
=
Выбрасывание оружия
================================================================================
=*/
public HookDrop(id)
{
if(Duel)
{
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}

/*===============================================================================
=
Конец раунда
================================================================================
=*/
public RoundEnd()
{
if(get_pcvar_num(PcvarMusic))
{
client_cmd(0, "cd fadeout")
}
if(get_pcvar_num(PcvarTimer))
{
remove_task(TIMERTID)
}
remove_task(TIMER2TID)
remove_task(WAITTIMERTID)
server_cmd("sm_enabled 1")
server_cmd("trigger_hurt 0")
remove_task(42314)
return PLUGIN_CONTINUE
}

/*===============================================================================
=
Получение урона
================================================================================
=*/

public UserTakeDamage ( victim, weapon, attacker, Float:damage, damagebits )
{
if(get_user_team(attacker) == get_user_team(victim) || !is_user_connected(attacker) || !is_user_connected(victim) || victim == attacker)
return HAM_IGNORED

if(Duel)
{
if((attacker == CounterID || attacker == TerroristID) && (victim == TerroristID || victim == CounterID))
{
return HAM_IGNORED
}
else if((attacker != CounterID || attacker != TerroristID) && (victim == TerroristID || victim == CounterID))
{
return HAM_SUPERCEDE
}
}
return HAM_IGNORED
}
/*===============================================================================
=
Возрождение игрока
================================================================================
=*/
public PlayerSpawn(id)
{
if(!is_user_alive(id) || !cs_get_user_team(id) || is_user_bot(id))
{
return PLUGIN_CONTINUE
}
if(get_pcvar_num(PcvarSpawnGod))
{
set_pev(id, pev_takedamage, 0)
set_task(3.0, "GodOff", id + GODTID)
}
set_user_rendering(id)
remove_task(id)
TouchWeapons[id] = false
Once[id] = false
Knife[id] = false
Deagle[id] = false
Grenade[id] = false
Scout[id] = false
Drob[id] = false
Awp[id] = false
Math[id] = false
Word[id] = false
RussianRoulette[id] = false
Used[id] = false
NotYou[id] = false
DoIt[id] = false
Start[id] = false
Spray[id] = false
Guntoss[id] = false
InDuel[id] = false
Famas[id] = false
if(cs_get_user_team(id) == CS_TEAM_T && !is_user_bot(id))
{
return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Касание к оружию
================================================================================
=*/
public TouchWeapon(weapon, id)
{
if(!is_user_connected(id))
{
return HAM_IGNORED
}
if(TouchWeapons[id] || cs_get_user_team(id) == CS_TEAM_T)
{
return HAM_SUPERCEDE
}
return HAM_IGNORED
}
/*===============================================================================
=
Использование комманд (отлов выстрела)
================================================================================
=*/
public CmdStart(player, uc_handle, random_seed)
{
if(!is_user_alive(player) || player < 1 || player > 32)
{
return FMRES_IGNORED
}
new Buttons = get_uc(uc_handle, UC_Buttons)
if(Buttons & IN_ATTACK && Used[player])
{
if(Famas[player] && get_user_weapon(player, _, _) == CSW_FAMAS)
{
new wEnt = fm_find_ent_by_owner(-1, "weapon_famas", player);
cs_set_weapon_burst(wEnt, 1)
}
if(!NotYou[player])
{
if(player == RussianRouletteID && DoIt[player])
{
new id = player
get_user_name(id, RussianRouletteName, 63)
set_hudmessage(255, 255, 0, -1.0, 0.3, 0, 1.0, 2.0, 0.5, 0.5, 2)
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "RRDOING", RussianRouletteName)
set_task(3.0, "RussianRouletteStop", id)
DoIt[id] = false
Start[id] = true
}
else if(player == RussianRouletteID && Start[player])
{
client_print(player, print_center, "%L", LANG_PLAYER, "RRWAIT")
}
else
{
client_print(player, print_center, "%L", LANG_PLAYER, "RRNOTYOU")
}
}
else if(Boom[player])
{
get_user_name(player, RussianRouletteName, 63)
set_hudmessage(255, 0, 0, -1.0, 0.2, 1, 1.0, 5.0, 1.0, 1.0, 4)
ShowSyncHudMsg(0, g_MsgHud3, "%L", LANG_PLAYER, "RRBOOM", RussianRouletteName)
client_cmd(0, "spk weapons/deagle-1")
set_msg_block(get_user_msgid("DeathMsg"), BLOCK_ONCE)
DeathMsg(player, player, KHS, KWPN)
Kill(player)
Used[CounterID] = false
Used[TerroristID] = false
}
else if(!Boom[player])
{
if(player == CounterID)
{
get_user_name(TerroristID, RussianRouletteName, 63)
RussianRouletteMenu(TerroristID)
NotYou[player] = false
DoIt[TerroristID] = true
RussianRouletteID = TerroristID
}
else if(player == TerroristID)
{
get_user_name(CounterID, RussianRouletteName, 63)
RussianRouletteMenu(CounterID)
NotYou[player] = false
DoIt[CounterID] = true
RussianRouletteID = CounterID
}
set_hudmessage(0, 255, 0, -1.0, 0.2, 0, 1.0, 3.0, 0.5, 0.5, 4)
ShowSyncHudMsg(0, g_MsgHud3, "%L", LANG_PLAYER, "RRNOTBOOM", RussianRouletteName)
client_cmd(0, "spk weapons/dryfire_pistol")
}
Buttons &= ~IN_ATTACK
set_uc(uc_handle, UC_Buttons, Buttons)
}
return FMRES_HANDLED
}
public UpdateClientData(id, sendweapons, cd_handle)
{
if(!is_user_alive(id))
{
return FMRES_IGNORED
}
if(Used[id] && InDuel[id])
{
set_cd(cd_handle, CD_ID, 0)
}

return FMRES_HANDLED
}
/*===============================================================================
=
Смерть игрока
================================================================================
=*/
public PlayerKilled(victim, attacker)
{
if(victim <= 0 || attacker <= 0 || victim >= 33 || attacker >= 33)
{
return PLUGIN_HANDLED
}
if(Duel)
{
remove_task(42314)
if(cs_get_user_team(victim) == CS_TEAM_CT && InDuel[victim])
{
if(RussianRoulette[victim] || Math[victim] || Word[victim])
{
if(victim == CounterID)
{
attacker = TerroristID
}
else if(victim == TerroristID)
{
attacker = CounterID
}
TouchWeapons[attacker] = false
Once[attacker] = false
Knife[attacker] = false
Deagle[attacker] = false
Grenade[attacker] = false
Scout[attacker] = false
Drob[attacker] = false
Awp[attacker] = false
Math[attacker] = false
Word[attacker] = false
RussianRoulette[attacker] = false
Used[attacker] = false
NotYou[attacker] = false
DoIt[attacker] = false
Start[attacker] = false
Spray[attacker] = false
Guntoss[attacker] = false
InDuel[attacker] = false
Famas[attacker] = false
Duel = false
}
}
if(attacker == TerroristID && victim == CounterID)
{
for(new ii = 1; ii <= get_maxplayers(); ii++)
{
if(is_user_connected(ii) && !is_user_alive(ii))
{
go_present_tt_stavki(ii)
}
}
}
if(attacker == CounterID && victim == TerroristID)
{
for(new ii = 1; ii <= get_maxplayers(); ii++)
{
if(is_user_connected(ii) && !is_user_alive(ii))
{
go_present_ct_stavki(ii)
}
}
}
}
remove_task(attacker)
remove_task(victim)
return PLUGIN_CONTINUE
}

public GiveScout(id)
{
if(is_user_alive(id) && !give_scout[id] && !Duel)
{
strip_user_weapons(id)
give_item(id,"weapon_knife")

new weapon = give_item(id, "weapon_scout")
if(weapon > 0)
cs_set_weapon_ammo(weapon, 0)

give_scout[id] = true
}
return PLUGIN_HANDLED
}

/*===============================================================================
=
Команда открытия меню дуэлей
================================================================================
=*/
public CmdDuelsMenu(id)
{
if(!is_user_alive(id))
{
return PLUGIN_HANDLED
}
if (!Once[id])
{
if(cs_get_user_team(id) == CS_TEAM_CT)
{
new CTsNum = GetCTsNum(1)
new TsNum = GetTsNum(1)
if(CTsNum == 1 && TsNum >= 1)
{
DuelsMenu(id, MenuPosition[id] = 0)
}
else if(TsNum < 1)
{
ChatColor(id, "%s %L", PREFIX, LANG_PLAYER,"NOT_TS")
}
else if(CTsNum > 1)
{
ChatColor(id, "%s %L", PREFIX, LANG_PLAYER,"ONLY_LAST")
}
}
else
{
ChatColor(id, "%s %L", PREFIX, LANG_PLAYER, "ONLY_CTS")
}
}
return PLUGIN_HANDLED
}

/*===============================================================================
=
Меню дуэлей
================================================================================
=*/
public DuelsMenu(id, position)
{
if(position < 0)
{
return
}
FPage = false
new DuelsNum = GetFlagsNum(PcvarDuels)
new Flags = GetFlags(PcvarDuels)
new MenuStart = position * 8
if(MenuStart >= DuelsNum)
{
MenuStart = position = MenuPosition[id]
}
new MenuEnd = position * 8 + 8
if(MenuEnd >= DuelsNum && position != 0)
{
MenuEnd = DuelsNum
}
else if(MenuEnd >= DuelsNum && position == 0)
{
MenuEnd = DCOUNT
FPage = true
}
new Keys = MENU_KEY_0
new Len
new b
Len = format(MenuBody, MENUBODY - 1, "\y%L^n^n", LANG_PLAYER, "CHOOSE_DUEL")
for(new a = MenuStart; a < MenuEnd; a++)
{
if(Flags & (1 << a))
{
Keys |= (1 << b)
Len += format(MenuBody[Len], MENUBODY - Len, "\r%d. \w%L^n", ++b, LANG_PLAYER, Duels[a])
}
else
{
continue
}
}
if(MenuEnd != DuelsNum && !FPage)
{
Keys |= MENU_KEY_9
Len += format(MenuBody[Len], MENUBODY - Len, "^n\r9. \w%L^n\r0. \w%L^n^n", LANG_PLAYER, "DD_MENU_MORE", LANG_PLAYER, position ? "DD_MENU_BACK" : "DD_MENU_EXIT")
}
else
{
Len += format(MenuBody[Len], MENUBODY - Len, "^n\r0. \w%L^n^n", LANG_PLAYER, position ? "DD_MENU_BACK" : "DD_MENU_EXIT")
}
show_menu(id, Keys, MenuBody, -1, "Duels Menu")
}
/*===============================================================================
=
Действие меню дуэлей
================================================================================
=*/
public ActionDuelsMenu(id, key)
{
switch(key)
{
case 8:
{
DuelsMenu(id, ++MenuPosition[id])
}
case 9:
{
DuelsMenu(id, --MenuPosition[id])
}
default:
{
if(GetTsNum(1) || GetCTsNum(1) == 1|| is_user_alive(id))
{
ChoosedDuel = MenuPosition[id] * 8 + key
EnemyMenu(id, MenuPosition[id] = 0)
}
}
}
}
/*===============================================================================
=
Меню выбора противника
================================================================================
=*/
public EnemyMenu(id, position)
{
if(position < 0)
{
return
}
new TsNum = 0
for(new aid = 1; aid <= MaxPlayers; aid++)
{
if(is_user_connected(aid) && is_user_alive(aid) && cs_get_user_team(aid) == CS_TEAM_T && !is_user_bot(aid))
{
MenuTs[TsNum++] = aid
}
}
new MenuStart = position * 8
if(MenuStart >= TsNum)
{
MenuStart = position = MenuPosition[id]
}
new MenuEnd = position + 8
if(MenuEnd > TsNum)
{
MenuEnd = TsNum
}
new Keys = MENU_KEY_0
new Len
new b = 0
new Names[32]
Len = format(MenuBody, MENUBODY - 1, "\y%L^n^n", LANG_PLAYER, "CHOOSE_ENEMY")
for(new a = MenuStart; a < MenuEnd; a++)
{
get_user_name(MenuTs[a], Names, 31)
Keys |= (1 << b)
Len += format(MenuBody[Len], MENUBODY - Len, "\r%d. \w%s^n", ++b, Names)
}
if(MenuEnd != TsNum)
{
Keys |= MENU_KEY_9
Len += format(MenuBody[Len], MENUBODY - Len, "^n\r9. \w%L^n\r0. \w%L^n^n\y%s v%s", LANG_PLAYER, "DD_MENU_MORE", LANG_PLAYER, position ? "DD_MENU_BACK" : "DD_MENU_EXIT", PLUGIN, VERSION, AUTHOR)
}
else
{
Len += format(MenuBody[Len], MENUBODY - Len, "^n\r0. \w%L^n^n", LANG_PLAYER, position ? "DD_MENU_BACK" : "DD_MENU_EXIT")
}
show_menu(id, Keys, MenuBody, -1, "Enemy Menu")
}
/*===============================================================================
=
Действие выбора противника
================================================================================
=*/
public ActionEnemyMenu(id, key)
{
switch(key)
{
case 8:
{
EnemyMenu(id, ++MenuPosition[id])
}
case 9:
{
EnemyMenu(id, --MenuPosition[id])
}
default:
{
if(GetTsNum(1) || GetCTsNum(1) == 1 || is_user_alive(id))
{
new Choosed = MenuPosition[id] * 8 + key
new Enemy = MenuTs[Choosed]
StartDuel(id, Enemy)
server_cmd("bh_enabled 0")
server_cmd("vampir_regenhp 0")
server_cmd("dr_free 0")
server_cmd("dr_invis 0")
server_cmd("dr_kHonku 0")
server_cmd("dr_rembo 0")
server_cmd("drshop_enable 0")
}
}
}
}
#define authorstavok BlackSmoke
public CmdOriginsMenu(id, level, cid)
{
if(!cmd_access(id, level, cid, 1))
{
return PLUGIN_HANDLED
}
else
{
ShowOriginsMenu(id)
}
return PLUGIN_CONTINUE
}

public ShowOriginsMenu(id)
{
new Keys = MENU_KEY_0
new Len
Len = format(MenuBody, MENUBODY, "\y%L^n^n", id, "ORIGINS_TITLE")
Keys |= (1 << 0)
Len += format(MenuBody[Len], MENUBODY - Len, "\r1. \w%L^n", id, "SAVE_POSITION")
Keys |= (1 << 1)
Len += format(MenuBody[Len], MENUBODY - Len, "\r2. \w%L^n", id, "DELETE_POSITIONS")
Len += format(MenuBody[Len], MENUBODY - Len, "^n\r0. \w%L^n^n", id, "DD_MENU_EXIT")
show_menu(id, Keys, MenuBody, -1, "Origins Menu")
return PLUGIN_CONTINUE
}

public ActionOriginsMenu(id, key)
{
switch(key)
{
case 0:
{
new vec[3]
get_user_origin(id, vec)
add_spawn(vec)
client_print(id, print_center, "*** Сохраненно ***")
ShowOriginsMenu(id)
}
case 1:
{
if(file_exists(OriginsFile))
{
delete_file(OriginsFile)
client_print(id, print_center, "*** Удаленно ***")
ShowOriginsMenu(id)
}
}
}
return PLUGIN_CONTINUE
}

public add_spawn(vecs[3])
{
new Line[128]
format(Line, 127, "%d %d %d",vecs[0], vecs[1], vecs[2])
write_file(OriginsFile, Line)
return PLUGIN_CONTINUE
}

public SetOrigins(ctid, terid)
{
if(!file_exists(OriginsFile) || !get_pcvar_num(PcvarTele))
{
return PLUGIN_CONTINUE
}
new pos[4][8]
parse(Origins[0], pos[1], 7, pos[2], 7, pos[3], 7)
new Vec[3]
Vec[0] = str_to_num(pos[1])
Vec[1] = str_to_num(pos[2])
Vec[2] = str_to_num(pos[3])
set_user_origin(ctid, Vec)
parse(Origins[1], pos[1], 7, pos[2], 7, pos[3], 7)
Vec[0] = str_to_num(pos[1])
Vec[1] = str_to_num(pos[2])
Vec[2] = str_to_num(pos[3])
set_user_origin(terid, Vec)
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Начало дуэли
================================================================================
=*/
public StartDuel(id, tempid)
{
if(!GetTsNum(1) || GetCTsNum(1) > 1|| !is_user_alive(tempid) || !is_user_alive(id) || cs_get_user_team(tempid) != CS_TEAM_T || cs_get_user_team(id) != CS_TEAM_CT || !is_user_connected(tempid) || !is_user_connected(id) || is_user_bot(id) || is_user_bot(tempid))
{
return PLUGIN_HANDLED
}
server_cmd("deathrun_shop 0")
new challenger[32], challenged[32]
get_user_name(id, challenger, 31)
get_user_name(tempid, challenged, 31)
strip_user_weapons(id)
strip_user_weapons(tempid)
set_user_health(id, 100)
set_user_health(tempid, 100)
set_user_gravity(id, 1.0)
set_user_gravity(tempid, 1.0)
set_user_maxspeed(id, 0.0)
set_user_maxspeed(tempid, 0.0)
cs_reset_user_model(id)
cs_reset_user_model(tempid)
switch(get_pcvar_num(PcvarEffects))
{
case 1:
{
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 150, kRenderNormal, 20)
set_user_rendering(tempid, kRenderFxGlowShell, 150, 0, 0, kRenderNormal, 20)
}
case 2:
{
set_task(1.0, "Beacon", id)
set_task(1.0, "Beacon", tempid)
}
case 3:
{
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 150, kRenderNormal, 20)
set_task(1.0, "Beacon", id)
set_user_rendering(tempid, kRenderFxGlowShell, 150, 0, 0, kRenderNormal, 20)
set_task(1.0, "Beacon", tempid)
}
}
SettingStavki()
InDuel[tempid] = true
InDuel[id] = true
Once[id] = true
set_lights("#OFF")
TouchWeapons[id] = true
TouchWeapons[tempid] = true
CounterID = id
TerroristID = tempid
Timer = get_pcvar_num(PcvarWait)
Index = get_pcvar_num(PcvarTimeLimit) + 1
set_pcvar_string(PcvarMode, "DUEL")
new Flags = GetFlags(PcvarDuels)
DuelNum = 0
new DuelIndex
while(DuelIndex <= ChoosedDuel)
{
if(Flags & (1 << DuelNum))
{
DuelIndex++
}
DuelNum ++
}
SetOrigins(id, tempid)
switch(DuelNum)
{
case 1:
{
Knife[id] = true
Knife[tempid] = true
Duel = true
set_dhudmessage(255, 0, 0, -1.0, 0.40, 0, 6.0, 3.0, 1.0, 1.5);
show_dhudmessage(0, "Резать можно без очереди");
set_task(0.1, "StartWait", WAITTIMERTID)
return PLUGIN_HANDLED
}
case 2:
{
Deagle[id] = true
Deagle[tempid] = true
Duel = true
set_dhudmessage(255, 0, 0, -1.0, 0.40, 0, 6.0, 3.0, 1.0, 1.5);
show_dhudmessage(0, "Стрелять строго по очереди!^nКТ стреляет ПЕРВЫМ!!!");
set_task(0.1, "StartWait", WAITTIMERTID)
return PLUGIN_HANDLED
}
case 3:
{
Grenade[id] = true
Grenade[tempid] = true
Duel = true
set_dhudmessage(255, 0, 0, -1.0, 0.40, 0, 6.0, 3.0, 1.0, 1.5);
show_dhudmessage(0, "Кидать можно без очереди");
set_task(0.1, "StartWait", WAITTIMERTID)
return PLUGIN_HANDLED
}
case 4:
{
Scout[id] = true
Scout[tempid] = true
Duel = true
set_dhudmessage(255, 0, 0, -1.0, 0.40, 0, 6.0, 3.0, 1.0, 1.5);
show_dhudmessage(0, "Стрелять строго по очереди!^nКТ стреляет ПЕРВЫМ!!!");
set_task(0.1, "StartWait", WAITTIMERTID)
return PLUGIN_HANDLED
}
case 5:
{
Drob[id] = true
Drob[tempid] = true
Duel = true
set_dhudmessage(255, 0, 0, -1.0, 0.40, 0, 6.0, 3.0, 1.0, 1.5);
show_dhudmessage(0, "Стрелять строго по очереди!^nКТ стреляет ПЕРВЫМ!!!");
set_task(0.1, "StartWait", WAITTIMERTID)
return PLUGIN_HANDLED
}
case 6:
{
Awp[id] = true
Awp[tempid] = true
Duel = true
set_dhudmessage(255, 0, 0, -1.0, 0.40, 0, 6.0, 3.0, 1.0, 1.5);
show_dhudmessage(0, "Стрелять строго по очереди!^nКТ стреляет ПЕРВЫМ!!!");
set_task(0.1, "StartWait", WAITTIMERTID)
return PLUGIN_HANDLED
}
case 7:
{
Famas[id] = true
Famas[tempid] = true
Duel = true
set_dhudmessage(255, 0, 0, -1.0, 0.40, 0, 6.0, 3.0, 1.0, 1.5);
show_dhudmessage(0, "Стрелять строго по очереди!^nКТ стреляет ПЕРВЫМ!!!");
set_task(0.1, "StartWait", WAITTIMERTID)
return PLUGIN_HANDLED
}
case 8:
{
RussianRoulette[id] = true
RussianRoulette[tempid] = true
Duel = true
RussianRouletteBullet = random_num(1, 3)
StartRussianRoulette(id, tempid)
if(get_pcvar_num(PcvarMusic))
{
client_cmd(0, "mp3volume 0.5")
}
return PLUGIN_HANDLED
}
case 9:
{
Math[id] = true
Math[tempid] = true
Duel = true
StartMathDuel(id, tempid)
return PLUGIN_HANDLED
}
case 10:
{
Word[id] = true
Word[tempid] = true
Duel = true
StartWordDuel(id, tempid)
return PLUGIN_HANDLED
}
case 11:
{
Spray[id] = true
Spray[tempid] = true
Duel = true
give_item(id, "weapon_knife")
give_item(tempid, "weapon_knife")
ChatColor(0, "%s %L", PREFIX, LANG_PLAYER,"SPRAY1", challenger, challenged)
ChatColor(0, "%s %L", PREFIX, LANG_PLAYER,"SPRAY2")
ChatColor(0, "%s %L", PREFIX, LANG_PLAYER,"SPRAY3", challenger)
}
case 12:
{
Guntoss[id] = true
Guntoss[tempid] = true
Duel = true
give_item(id, "weapon_knife")
give_item(tempid, "weapon_knife")
ChatColor(0, "%s %L", PREFIX, LANG_PLAYER,"GUNTOSS1", challenger, challenged)
ChatColor(0, "%s %L", PREFIX, LANG_PLAYER,"GUNTOSS2")
ChatColor(0, "%s %L", PREFIX, LANG_PLAYER,"GUNTOSS3", challenger)
}
}
if(get_pcvar_num(PcvarMusic))
{
client_cmd(0, "mp3volume 0.5")
}
if(get_pcvar_num(PcvarTimer))
{
set_task(0.2, "DuelTimer", TIMERTID)
}
Duel = true
return PLUGIN_HANDLED
}
/*===============================================================================
=
Таймер
================================================================================
=*/
public DuelTimer()
{
new t_name[33], ct_name[33]
get_user_name(CounterID, ct_name, 31)
get_user_name(TerroristID, t_name, 31)
Index--
if(Index > 60)
{
set_hudmessage(100, 100, 100, -1.0, 0.2, 0, 1.0, 1.0, _, _, 1)
if(Math[CounterID])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, MathTask)
}
else if(Word[CounterID])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, WordAnswer)
}
else
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER", Index, t_name, Tdengi, ct_name, Ctdengi, t_name, get_user_health(TerroristID), ct_name, get_user_health(CounterID))
}
set_task(1.0, "DuelTimer", TIMERTID)
}
else if(60 >= Index >= 46)
{
set_hudmessage(100, 100, 100, -1.0, 0.2, 0, 1.0, 1.0, _, _, 1)
if(Math[CounterID])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, MathTask)
}
else if(Word[CounterID])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, WordAnswer)
}
else
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER", Index, t_name, Tdengi, ct_name, Ctdengi, t_name, get_user_health(TerroristID), ct_name, get_user_health(CounterID))
}
set_task(1.0, "DuelTimer", TIMERTID)
}
else if(45 >= Index >= 31)
{
set_hudmessage(100, 100, 100, -1.0, 0.2, 0, 1.0, 1.0, _, _, 1)
if(Math[CounterID])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, MathTask)
}
else if(Word[CounterID])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, WordAnswer)
}
else
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER", Index, t_name, Tdengi, ct_name, Ctdengi, t_name, get_user_health(TerroristID), ct_name, get_user_health(CounterID))
}
set_task(1.0, "DuelTimer", TIMERTID)
}
else if(30 >= Index >= 16)
{
set_hudmessage(100, 100, 100, -1.0, 0.2, 0, 1.0, 1.0, _, _, 1)
if(Math[CounterID])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, MathTask)
}
else if(Word[CounterID])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, WordAnswer)
}
else
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER", Index, t_name, Tdengi, ct_name, Ctdengi, t_name, get_user_health(TerroristID), ct_name, get_user_health(CounterID))
}
set_task(1.0, "DuelTimer", TIMERTID)
}
else if(Index <= 15)
{
set_hudmessage(100, 100, 100, -1.0, 0.2, 0, 1.0, 1.0, _, _, 1)
if(Index > 0)
{
if(Math[CounterID])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, MathTask)
}
else if(Word[CounterID])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER2", Index, WordAnswer)
}
else
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUEL_TIMER", Index, t_name, Tdengi, ct_name, Ctdengi, t_name, get_user_health(TerroristID), ct_name, get_user_health(CounterID))
}
}
else if(Index < 0)
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "NO_WINNER")
Kill(CounterID)
Kill(TerroristID)
remove_task(TIMERTID)
if(get_pcvar_num(PcvarMusic))
{
client_cmd(0, "cd fadeout")
}
}
set_task(1.0, "DuelTimer", TIMERTID)
}
if(!is_user_alive(CounterID) || !is_user_alive(TerroristID))
{
remove_task(TIMERTID)
if(get_pcvar_num(PcvarMusic))
{
client_cmd(0, "cd fadeout")
}
}
return PLUGIN_CONTINUE
}

public DuelTimer2()
{
set_hudmessage(100, 100, 100, -1.0, 0.2, 0, 1.0, 1.0, _, _, 2)
if(Math[CounterID])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUELTASK", MathTask)
}
if(Word[TerroristID])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "DUELTASK", WordAnswer)
}
set_task(1.0, "DuelTimer2", TIMER2TID)
if(!is_user_alive(CounterID) || !is_user_alive(TerroristID))
{
remove_task(TIMER2TID)
if(get_pcvar_num(PcvarMusic))
{
client_cmd(0, "cd fadeout")
}
}
}
/*===============================================================================
=
Математическая дуэль
================================================================================
=*/
public StartMathDuel(ct, ter)
{
new num1,num2,num3,num4,mode, ctname[64], tername[64]
mode = random_num(0, 6)
num1 = random_num(1, 100)
num2 = random_num(1, 10)
num3 = random_num(1, 100)
num4 = random_num(1, 10)
get_user_name(ct, ctname, 63)
get_user_name(ter, tername, 63)
switch(mode)
{
case 0:
{
format(MathTask, 63, "%d + %d + %d + %d = ?", num1, num2, num3, num4)
MathAnswer = num1 + num2 + num3 + num4
}
case 1:
{
format(MathTask, 63, "%d + %d + %d - %d = ?", num1,num2,num3,num4)
MathAnswer = num1 + num2 + num3 - num4
}
case 2:
{
format(MathTask, 63, "%d + %d - %d + %d = ?", num1, num2, num3, num4)
MathAnswer = num1 + num2 - num3 + num4
}
case 3:
{
format(MathTask, 63, "%d - %d + %d + %d = ?", num1, num2, num3, num4)
MathAnswer = num1 - num2 + num3 + num4
}
case 4:
{
format(MathTask, 63, "%d + %d - %d - %d = ?", num1, num2, num3, num4)
MathAnswer = num1 + num2 - num3 - num4
}
case 5:
{
format(MathTask, 63, "%d - %d + %d - %d = ?", num1, num2, num3, num4)
MathAnswer = num1 - num2 + num3 - num4
}
case 6:
{
format(MathTask, 63, "%d - %d - %d + %d = ?", num1, num2, num3, num4)
MathAnswer = num1 - num2 - num3 + num4
}
}
ChatColor(0, "%s %L", PREFIX, LANG_PLAYER, "MATH1", ctname, tername)
ChatColor(0, "%s %L", PREFIX, LANG_PLAYER, "MATH2")
set_task(0.0, "StartWait", WAITTIMERTID)
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Словесная дуэль
================================================================================
=*/
public StartWordDuel(ct, ter)
{
new ctname[64], tername[64]
format(WordAnswer, charsmax(WordAnswer), "%s", Words[random_num(0, WordsNum)])
get_user_name(ct, ctname, 63)
get_user_name(ter, tername, 63)
ChatColor(0, "%s %L", PREFIX, LANG_PLAYER, "WORD1", ctname, tername)
ChatColor(0, "%s %L", PREFIX, LANG_PLAYER, "WORD2")
set_task(0.0, "StartWait", WAITTIMERTID)
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Ожидание дуэли
================================================================================
=*/
public StartWait()
{
set_hudmessage(255, 255, 255, -1.0, 0.25, 0, 1.0, 1.0, _, _, 2)
switch(DuelNum)
{
case 1:
{
ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "KNIFE_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
}
case 2:
{
ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "DEAGLE_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
}
case 3:
{
ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "GRENADE_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
}
case 4:
{
ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "SCOUT_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
}
case 5:
{
ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "DROB_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
}
case 6:
{
ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "AWP_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
}
case 7:
{
ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "FAMAS_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
}
case 9:
{
ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "MATH_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
}
case 10:
{
ShowSyncHudMsg(0, g_MsgHud2, "%L^n%L", LANG_PLAYER, "WORD_WAIT", LANG_PLAYER, "STARTAFTER", Timer)
}
}
Timer--
client_cmd(0, "spk %s", Sound[Timer])
if(Timer <= 0)
{
set_task(1.0, "StartGo")
}
else
{
set_task(1.0, "StartWait", WAITTIMERTID)
}
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Дуэль началась
================================================================================
=*/
public StartGo()
{
if(!is_user_alive(TerroristID) || !is_user_alive(CounterID) || !is_user_connected(TerroristID) || !is_user_connected(CounterID) || !is_valid_player(CounterID) || !is_valid_player(TerroristID))
{
return PLUGIN_HANDLED
}
switch(DuelNum)
{
case 1:
{
give_item(CounterID, "weapon_knife")
give_item(TerroristID, "weapon_knife")
}
case 2:
{
cs_set_weapon_ammo(give_item(CounterID, "weapon_deagle"), DAMMO)
cs_set_weapon_ammo(give_item(TerroristID, "weapon_deagle"), DAMMO1)
}
case 3:
{
give_item(CounterID, "weapon_hegrenade")
give_item(TerroristID, "weapon_hegrenade")
cs_set_user_bpammo(CounterID, CSW_HEGRENADE, 100)
cs_set_user_bpammo(TerroristID, CSW_HEGRENADE, 100)
}
case 4:
{
cs_set_weapon_ammo(give_item(CounterID, "weapon_scout"), DAMMO)
cs_set_weapon_ammo(give_item(TerroristID, "weapon_scout"), DAMMO1)
}
case 5:
{
cs_set_weapon_ammo(give_item(CounterID, "weapon_m3"), DAMMO)
cs_set_weapon_ammo(give_item(TerroristID, "weapon_m3"), DAMMO1)
}
case 6:
{
cs_set_weapon_ammo(give_item(CounterID, "weapon_awp"), DAMMO)
cs_set_weapon_ammo(give_item(TerroristID, "weapon_awp"), DAMMO1)
}
case 7:
{
cs_set_weapon_ammo(give_item(CounterID, "weapon_famas"), DAMMO)
cs_set_weapon_ammo(give_item(TerroristID, "weapon_famas"), DAMMO1)
}
}
if(get_pcvar_num(PcvarMusic))
{
client_cmd(0, "mp3volume 0.5")
}
if(get_pcvar_num(PcvarTimer))
{
set_task(0.2, "DuelTimer", TIMERTID)
}
else if(Math[CounterID] || Word[CounterID])
{
set_task(0.0, "DuelTimer2", TIMER2TID)
}
SettingTurn()

return PLUGIN_CONTINUE
}
/*===============================================================================
=
Старт русской рулетки
================================================================================
=*/
public StartRussianRoulette(ct, ter)
{
new ctname[64], tername[64]
get_user_name(ct, ctname, 63)
get_user_name(ter, tername, 63)
ChatColor(0, "%s %L", PREFIX, LANG_PLAYER, "RR1", ctname, tername)
ChatColor(0, "%s %L", PREFIX, LANG_PLAYER, "RR2")
ChatColor(0, "%s %L", PREFIX, LANG_PLAYER, "RR3", ctname)
set_hudmessage(0, 255, 0, -1.0, 0.2, 0, 1.0, 2.0, 0.5, 0.5, 4)
ShowSyncHudMsg(0, g_MsgHud3, "%L", LANG_PLAYER, "RRSTART", ctname, RussianRouletteBullet)
RussianRouletteMenu(ct)
Used[ct] = true
Used[ter] = true
NotYou[ct] = false
NotYou[ter] = false
RussianRouletteID = ct
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Меню русской рулетки
================================================================================
=*/
public RussianRouletteMenu(id)
{
new Len
new Keys = MENU_KEY_0
Len = format(MenuBody, MENUBODY - 1, "\y%L\w^n^n", LANG_PLAYER, "RRTITLE")
Keys |= (1 << 0)
Len += format(MenuBody[Len], MENUBODY - Len, "\r1. \w%L^n^n\y%s v%s", LANG_PLAYER, "RRDO", PLUGIN, VERSION, AUTHOR)
DoIt[id] = true
show_menu(id, Keys, MenuBody, -1, "Roulette Menu")
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Запуск барабана
================================================================================
=*/
public ActionRussianRouletteMenu(id, Key)
{
if(!DoIt[id])
{
return PLUGIN_HANDLED
}
get_user_name(id, RussianRouletteName, 63)
set_hudmessage(255, 255, 0, -1.0, 0.3, 0, 1.0, 2.0, 0.5, 0.5, 2)
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "RRDOING", RussianRouletteName)
set_task(3.0, "RussianRouletteStop", id)
DoIt[id] = false
Start[id] = true
return PLUGIN_HANDLED
}
/*===============================================================================
=
Остановка барабана
================================================================================
=*/
public RussianRouletteStop(id)
{
new RuletteRandom
RuletteRandom = random_num(1, 7)
get_user_name(id, RussianRouletteName, 63)
if(RussianRouletteBullet == 1 && RuletteRandom == 1)
{
Boom[id] = true
}
else if(RussianRouletteBullet == 2 && RuletteRandom == 2)
{
Boom[id] = true
}
else if(RussianRouletteBullet == 3 && RuletteRandom == 3)
{
Boom[id] = true
}
else
{
Boom[id] = false
}
NotYou[id] = true
Start[id] = false
set_hudmessage(255, 255, 0, -1.0, 0.3, 0, 1.0, 2.0, 0.5, 0.5, 2)
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "RRPRESS", RussianRouletteName)
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Проверка ответа в общем чате
================================================================================
=*/
public hooksay(id)
{
if(!Math[id] && !Word[id])
{
return PLUGIN_CONTINUE
}
new Msg[256], smanswer[32], wname[32]
read_args(Msg, 255)
remove_quotes(Msg)
num_to_str(MathAnswer, smanswer, 31)
if((Math[id] && equal(Msg, smanswer)) || (Word[id] && equal(Msg, WordAnswer)))
{
if(get_pcvar_num(PcvarTimer))
{
remove_task(TIMERTID)
}
if(get_pcvar_num(PcvarMusic))
{
client_cmd(0, "cd fadeout")
}
get_user_name(id, wname, 31)
//set_user_lifes(id, 1)
set_hudmessage(0, 255, 0, -1.0, 0.2, 0, 1.0, 10.0, 1.0, 1.0, 2)
if(Math[id])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "MATH_WINNER", wname, smanswer)
}
else if(Word[id])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "WORD_WINNER", wname)
}
if(id == CounterID)
{
set_msg_block(get_user_msgid("DeathMsg"), BLOCK_ONCE)
DeathMsg(CounterID, TerroristID, 1, KWPN)
Kill(TerroristID)
}
else if(id == TerroristID)
{
set_msg_block(get_user_msgid("DeathMsg"), BLOCK_ONCE)
DeathMsg(CounterID, TerroristID, 1, KWPN)
Kill(CounterID)
}
Math[CounterID] = false
Math[TerroristID] = false
Word[CounterID] = false
Word[TerroristID] = false
}
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Проверка ответа в командном чате
================================================================================
=*/
public hooksay_team(id)
{
if(!Math[id] && !Word[id])
{
return PLUGIN_CONTINUE
}
new Msg[256], smanswer[32], wname[32]
read_args(Msg, 255)
remove_quotes(Msg)
num_to_str(MathAnswer, smanswer, 31)
if((Math[id] && equal(Msg, smanswer)) || (Word[id] && equal(Msg, WordAnswer)))
{
if(get_pcvar_num(PcvarTimer))
{
remove_task(TIMERTID)
}
if(get_pcvar_num(PcvarMusic))
{
client_cmd(0, "cd fadeout")
}
get_user_name(id, wname, 31)
//set_user_lifes(id, 1)
set_hudmessage(0, 255, 0, -1.0, 0.2, 0, 1.0, 10.0, 1.0, 1.0, 2)
if(Math[id])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "MATH_WINNER", wname, smanswer)
}
else if(Word[id])
{
ShowSyncHudMsg(0, g_MsgHud2, "%L", LANG_PLAYER, "WORD_WINNER", wname)
}
if(id == CounterID)
{
set_msg_block(get_user_msgid("DeathMsg"), BLOCK_ONCE)
DeathMsg(CounterID, TerroristID, 1, KWPN)
Kill(TerroristID)
}
else if(id == TerroristID)
{
set_msg_block(get_user_msgid("DeathMsg"), BLOCK_ONCE)
DeathMsg(CounterID, TerroristID, 1, KWPN)
Kill(CounterID)
}
Math[CounterID] = false
Math[TerroristID] = false
Word[CounterID] = false
Word[TerroristID] = false
}
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Игрок покинул сервер
================================================================================
=*/
public client_disconnect(id)
{
remove_task(id)
TouchWeapons[id] = false
Once[id] = false
Knife[id] = false
Deagle[id] = false
Grenade[id] = false
Scout[id] = false
Drob[id] = false
Awp[id] = false
Math[id] = false
Word[id] = false
RussianRoulette[id] = false
Used[id] = false
NotYou[id] = false
DoIt[id] = false
Start[id] = false
Spray[id] = false
Guntoss[id] = false
InDuel[id] = false
Famas[id] = false
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Выключение неуязвимости
================================================================================
=*/
public GodOff(tskid)
{
new id = tskid - GODTID
set_pev(id, pev_takedamage, 1)
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Информер
================================================================================
=*/
public Informer()
{
if(!get_pcvar_num(PcvarInformer))
{
remove_task(INFORMERTID)
return PLUGIN_HANDLED
}
new id, LastID, acts, cts, all, CurrentTime[32], NextMap[32], Terrorist[32], names[33][32], Message[512]
for(id = 1; id <= MaxPlayers; id++)
{
if(!is_user_connected(id))
{
continue
}
else if(is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT)
{
acts++
cts++
all ++
LastID = id
get_user_name(id, names[acts], 31)
}
else if(!is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT)
{
cts++
all++
}
else if(cs_get_user_team(id) == CS_TEAM_T && !is_user_bot(id))
{
get_user_name(id, Terrorist, 63)
all++
}
else
{
all++
}
}
if(acts == 1 && !Last && get_pcvar_num(PcvarLastMenu))
{
LastMenu(LastID)
Last = true
}
for(id = 1; id <= MaxPlayers; id++)
{
new Len, Mode[32]
get_pcvar_string(PcvarMode, Mode, 31)
Len = format(Message, 511, "%L: %L", LANG_PLAYER, "CURRENTMODE", LANG_PLAYER, Mode)
get_time("%H:%M:%S", CurrentTime, 31)
Len += format(Message[Len], 511 - Len, "^n%L: %s", LANG_PLAYER, "CURRENTTIME", CurrentTime)
if(get_cvar_float("mp_timelimit"))
{
new a = get_timeleft()
Len += format(Message[Len], 511 - Len, "^n%L: %d:%02d", LANG_PLAYER, "TLEFT", (a / 60), (a % 60))
}
else
{
Len += format(Message[Len], 511 - Len, "^n%L: %L", LANG_PLAYER, "TLEFT", LANG_PLAYER, "LASTR")
}
get_cvar_string("amx_nextmap", NextMap, 31)
Len += format(Message[Len], 511 - Len, "^n%L: %s", LANG_PLAYER, "NMAP", NextMap)
if(GetTsNum(0))
{
Len += format(Message[Len], 511 - Len, "^n%L: %s", LANG_PLAYER, "CTER", Terrorist)
}
else
{
Len += format(Message[Len], 511 - Len, "^n%L: %L", LANG_PLAYER, "CTER", LANG_PLAYER, "TNONE")
}
Len += format(Message[Len], 511 - Len, "^n%L: %d | %d", LANG_PLAYER, "ALIVECTS", acts,cts)
Len += format(Message[Len], 511 - Len, "^n%L: %d | %d", LANG_PLAYER, "APLAYERS", all, MaxPlayers)
if(acts > 3)
{
set_hudmessage(255, 117, 24, 0.01, 0.18, 0, 1.0, 1.0)
}
else if(acts == 3)
{
set_hudmessage(0, 255, 255, 0.01, 0.18, 0, 1.0, 1.0)
Len += format(Message[Len], 511 - Len, "^n^n1. %s^n2. %s^n3. %s", names[1], names[2], names[3])
}
else if(acts == 2)
{
set_hudmessage(137, 42, 220, 0.01, 0.18, 0, 1.0, 1.0)
Len += format(Message[Len], 511 - Len, "^n^n1. %s^n2. %s", names[1], names[2])
}
else
{
set_hudmessage(255, 0, 255, 0.01, 0.18, 0, 1.0, 1.0)
Len += format(Message[Len], 511 - Len, "^n^n1. %s", names[1])
}
ShowSyncHudMsg(id, g_MsgHud1, "%s", Message)
}
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Меню последнего КТ
================================================================================
=*/
public LastMenu(id)
{
new Len
new Keys = MENU_KEY_0
Len = format(MenuBody, MENUBODY - 1, "\yТы \rпоследний! \yЖелаешь \yсыграть \rдуэль?\w^n^n", LANG_PLAYER)
Keys |= (1 << 0)
Len += format(MenuBody[Len], MENUBODY - Len, "\r1. \w%L^n", LANG_PLAYER, "LASTYES")
Keys |= (1 << 1)
Len += format(MenuBody[Len], MENUBODY - Len, "\r2. \w%L^n", LANG_PLAYER, "LASTNO")
show_menu(id, Keys, MenuBody, -1, "Last Menu")
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Действие меню последнего КТ
================================================================================
=*/
public ActionLastMenu(id, key)
{
switch(key)
{
case 0:
{
client_cmd(id, "deathrun_duels")
}
case 1:
{
client_print(id, print_center, "%L", LANG_PLAYER, "FDUEL")
}
}
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Эффект волны
================================================================================
=*/
public Beacon(id)
{
if(cs_get_user_team(id) == CS_TEAM_CT)
{
static origin[3]
get_user_origin(id, origin)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMCYLINDER)
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2]-20)
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2]+200)
write_short(BeaconSprite)
write_byte(0)
write_byte(1)
write_byte(6)
write_byte(2)
write_byte(205)
write_byte(205)
write_byte(255)
write_byte(0)
write_byte(149)
write_byte(0)
message_end()
}
else
{
static origin[3]
get_user_origin(id, origin)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMCYLINDER)
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2]-20)
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2]+200)
write_short(BeaconSprite)
write_byte(0)
write_byte(1)
write_byte(6)
write_byte(2)
write_byte(205)
write_byte(205)
write_byte(149)
write_byte(0)
write_byte(255)
write_byte(0)
message_end()
}
set_task(1.0, "Beacon", id)
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Стоки...
Цветной чат
================================================================================
=*/
stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4")
replace_all(msg, 190, "!y", "^1")
replace_all(msg, 190, "!team", "^3")
if (id) players[0] = id
else get_players(players, count, "ch")
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, SayText, _, players[i])
write_byte(players[i])
write_string(msg)
message_end()
}
}
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Сообщение о смерти
================================================================================
=*/
stock DeathMsg(killer_id, victim_id, headshot, weaponname[])
{
message_begin(MSG_ALL, get_user_msgid("DeathMsg"))
write_byte(killer_id)
write_byte(victim_id)
write_byte(headshot)
write_string(weaponname)
message_end()
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Взять количество флагов
================================================================================
=*/
stock GetFlagsNum(pcvar)
{
new Duels = GetFlags(pcvar)
new DuelsNum = 0
for(new a = 0; a < DCOUNT; a++)
{
if(Duels & (1 << a))
{
DuelsNum++
}
}
return DuelsNum
}
/*===============================================================================
=
Взять флаги
================================================================================
=*/
stock GetFlags(pcvar)
{
new Flags[32]
get_pcvar_string(pcvar, Flags, 31)
return read_flags(Flags)
}
/*===============================================================================
=
Количество спецназа
================================================================================
=*/
stock GetCTsNum(alive)
{
new CTsNum = 0
for (new id = 1; id <= MaxPlayers; id++)
{
if(!is_user_connected(id))
{
continue
}
if(alive)
{
if(cs_get_user_team(id) == CS_TEAM_CT && is_user_alive(id))
{
CTsNum++
}
}
else
{
if(cs_get_user_team(id) == CS_TEAM_CT)
{
CTsNum++
}
}
}
return CTsNum
}
/*===============================================================================
=
Количество террористов
================================================================================
=*/
stock GetTsNum(alive)
{
new TsNum = 0
for (new id = 1; id <= MaxPlayers; id++)
{
if(!is_user_connected(id) || is_user_bot(id))
{
continue
}
if(alive)
{
if(cs_get_user_team(id) == CS_TEAM_T && is_user_alive(id))
{
TsNum++
}
}
else
{
if(cs_get_user_team(id) == CS_TEAM_T)
{
TsNum++
}
}
}
return TsNum
}
/*===============================================================================
=
Убить игрока
================================================================================
=*/
stock Kill(id)
{
user_kill(id, 1)
return PLUGIN_CONTINUE
}
/*===============================================================================
=
Очередь в дуэли
================================================================================
=*/

public ammotct()
{
if(AttackCt == 1)
{
if(DuelNum == 2)
{
strip_user_weapons(TerroristID)
strip_user_weapons(CounterID)
cs_set_weapon_ammo(give_item(CounterID, "weapon_deagle"), 1)
}
else if(DuelNum == 4)
{
strip_user_weapons(TerroristID)
strip_user_weapons(CounterID)
cs_set_weapon_ammo(give_item(CounterID, "weapon_scout"), 1)
}
else if(DuelNum == 5)
{
strip_user_weapons(TerroristID)
strip_user_weapons(CounterID)
cs_set_weapon_ammo(give_item(CounterID, "weapon_m3"), 1)
}
else if(DuelNum == 6)
{
strip_user_weapons(TerroristID)
strip_user_weapons(CounterID)
cs_set_weapon_ammo(give_item(CounterID, "weapon_awp"), 1)
}
else if(DuelNum == 7)
{
strip_user_weapons(TerroristID)
strip_user_weapons(CounterID)
cs_set_weapon_ammo(give_item(CounterID, "weapon_famas"), 1)
}
}
else if(AttackTt == 1)
{
if(DuelNum == 2)
{
strip_user_weapons(TerroristID)
cs_set_weapon_ammo(give_item(TerroristID, "weapon_deagle"), 1)
strip_user_weapons(CounterID)
}
else if(DuelNum == 4)
{
strip_user_weapons(TerroristID)
cs_set_weapon_ammo(give_item(TerroristID, "weapon_scout"), 1)
strip_user_weapons(CounterID)
}
else if(DuelNum == 5)
{
strip_user_weapons(TerroristID)
cs_set_weapon_ammo(give_item(TerroristID, "weapon_m3"), 1)
strip_user_weapons(CounterID)
}
else if(DuelNum == 6)
{
strip_user_weapons(TerroristID)
cs_set_weapon_ammo(give_item(TerroristID, "weapon_awp"), 1)
strip_user_weapons(CounterID)
}
else if(DuelNum == 7)
{
strip_user_weapons(TerroristID)
cs_set_weapon_ammo(give_item(TerroristID, "weapon_famas"), 1)
strip_user_weapons(CounterID)
}
}
}

public SettingTurn()
{
AttackCt = 1
AttackTt = 0
SettingBoomAuto()
if(DuelNum == 2)
{
strip_user_weapons(TerroristID)
strip_user_weapons(CounterID)
cs_set_weapon_ammo(give_item(CounterID, "weapon_deagle"), 1)
}
else if(DuelNum == 4)
{
strip_user_weapons(TerroristID)
strip_user_weapons(CounterID)
cs_set_weapon_ammo(give_item(CounterID, "weapon_scout"), 1)
}
else if(DuelNum == 5)
{
strip_user_weapons(TerroristID)
strip_user_weapons(CounterID)
cs_set_weapon_ammo(give_item(CounterID, "weapon_m3"), 1)
}
else if(DuelNum == 6)
{
strip_user_weapons(TerroristID)
strip_user_weapons(CounterID)
cs_set_weapon_ammo(give_item(CounterID, "weapon_awp"), 1)
}
else if(DuelNum == 7)
{
strip_user_weapons(TerroristID)
strip_user_weapons(CounterID)
cs_set_weapon_ammo(give_item(CounterID, "weapon_famas"), 1)
}
}

public HamAttack(weapon)
{
new id = pev(weapon,pev_owner)

if(Duel)
{
if(AttackCt == 1 && id == CounterID)
{

AttackCt = 0
AttackTt = 1
remove_task(42314)
ammotct()
SettingBoomAuto()
}
else if(AttackTt == 1 && id == TerroristID)
{
AttackCt = 1
AttackTt = 0
remove_task(42314)
ammotct()
SettingBoomAuto()
}
}
}

public SettingBoomAuto()
{
TimerAutoBoom = 5
set_task(1.0, "AutoBoom", 42314, _, _, "a", TimerAutoBoom + 2)
}

public AutoBoom()
{
if(!Duel)
return PLUGIN_CONTINUE

new t_name[32], ct_name[32]
get_user_name(CounterID, ct_name, 31)
get_user_name(TerroristID, t_name, 31)
if(AttackCt == 1)
{
client_print(0, print_center, "Стреляет: %s | Осталось: %d", ct_name, TimerAutoBoom)
}
else if(AttackTt == 1)
{
client_print(0, print_center, "Стреляет: %s | Осталось: %d", t_name, TimerAutoBoom)
}
if(TimerAutoBoom == 0 && AttackCt == 1 && is_user_alive(CounterID) && is_user_alive(TerroristID))
{
client_cmd(CounterID, "+attack;wait;-attack")
if(TimerAutoBoom < 0)
{
AttackCt = 0
AttackTt = 1
remove_task(42314)
SettingBoomAuto()
ammotct()
}

}
else if(TimerAutoBoom == 0 && AttackTt == 1 && is_user_alive(CounterID) && is_user_alive(TerroristID))
{
client_cmd(TerroristID, "+attack;wait;-attack")
if(TimerAutoBoom < 0)
{
AttackCt = 1
AttackTt = 0
remove_task(42314)
SettingBoomAuto()
ammotct()
}
}
TimerAutoBoom--

return PLUGIN_CONTINUE
}


/*===============================================================================
=
Ставки
================================================================================
=*/

public MenuStavki(id)
{
static menu[650], iLen
new MaxMoney = cs_get_user_money(id)
new t_name[33], ct_name[33]
get_user_name(TerroristID, t_name, 31)
get_user_name(CounterID, ct_name, 31)
iLen = 0
iLen = formatex(menu[iLen], charsmax(menu) - iLen, "\dВаши деньги: \y(\r%d\y)^n\dВаша ставка: \y(\r%d\y)^n\dОсталось: \y%d^n^n", MaxMoney, Mydengi[id], SecondTimerStavki[id]);
if(MyStavkaTt[id] || MyStavkaCt[id])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \dПоставить на \yТ:\r%s^n", t_name);
keys &= ~MENU_KEY_1
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \wПоставить на \yТ:\r%s^n", t_name);
keys |= MENU_KEY_1
}
if(MyStavkaTt[id] || MyStavkaCt[id])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \dПоставить на \yКТ:\r%s^n", ct_name);
keys &= ~MENU_KEY_2
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \wПоставить на \yКТ:\r%s^n", ct_name);
keys |= MENU_KEY_2
}
if(MaxMoney >= 100 || !MyStavkaTt[id] || !MyStavkaCt[id])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\r3. \wПовысить ставку на \r100$^n");
keys |= MENU_KEY_3
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\r3. \dПовысить ставку на \r100$^n");
keys &= ~MENU_KEY_3
}
if(MaxMoney >= 1000 || !MyStavkaTt[id] || !MyStavkaCt[id])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r4. \wПовысить ставку на \r1000$^n");
keys |= MENU_KEY_4
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r4. \dПовысить ставку на \r1000$^n");
keys &= ~MENU_KEY_4
}
if(MaxMoney != 0 || !MyStavkaTt[id] || !MyStavkaCt[id])
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \wПоставить всё \y(\r%d$\y)^n", MaxMoney);
keys |= MENU_KEY_5
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \wПоставить всё \y(\r%d$\y)^n", MaxMoney);
keys &= ~MENU_KEY_5
}
if(Mydengi[id] != 0 && Mydengi[id] > 100)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\r6. \wПонизить ставку на \y(\r100$\y)^n");
keys |= MENU_KEY_6
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\r6. \wПонизить ставку на \y(\r100$\y)^n");
keys &= ~MENU_KEY_6
}
if(Mydengi[id] != 0 && Mydengi[id] > 1000)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r7. \wПонизить ставку на \y(\r1000$\y)^n");
keys |= MENU_KEY_6
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r7. \wПонизить ставку на \y(\r1000$\y)^n");
keys &= ~MENU_KEY_6
}
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\r0. \wВыход");
keys |= MENU_KEY_0
}

show_menu(id, keys, menu, -1, "Menu 1");
return PLUGIN_HANDLED
}

public OffMenu(id) show_menu(id, 0, "^n", 1)

public menus1(id, key)
{
new name[32]
new MaxMoney = cs_get_user_money(id)
get_user_name(id, name, 31)
switch(key)
{
case 0:
{
if(Mydengi[id] <= 0)
{
ChatColor(id, "!y[!gСтавки!y] !teamДля начала поставьте хотябы !g100$")
return PLUGIN_CONTINUE
}
Tdengi += Mydengi[id]
ChatColor(0, "!y[!gСтавки!y] !teamИгрок !g%s !teamпоставил !g%d$ !teamна !gтеррориста", name, Mydengi[id])
MyStavkaCt[id] = false
MyStavkaTt[id] = true
OpenMenuStavki[id] = false
timer[id] = false
remove_task ( id + 41292 );
show_menu(id, 0, "^n", 1)
}

case 1:
{
if(Mydengi[id] <= 0)
{
ChatColor(id, "!y[!gСтавки!y] !teamДля начала поставьте хотябы !g100$")
return PLUGIN_CONTINUE
}
Ctdengi += Mydengi[id]
ChatColor(0, "!y[!gСтавки!y] !teamИгрок !g%s !teamпоставил !g%d$ !teamна !gконтер-террориста", name, Mydengi[id])
MyStavkaCt[id] = true
MyStavkaTt[id] = false
OpenMenuStavki[id] = false
timer[id] = false
remove_task ( id + 41292 );
show_menu(id, 0, "^n", 1)
}

case 2:
{
if(MaxMoney <= 0)
{
ChatColor(id, "!y[!gСтавки!y] !teamНе хватает !gденег")
return PLUGIN_CONTINUE
}
Mydengi[id] += 100
cs_set_user_money(id, MaxMoney - 100)
}

case 3:
{
if(MaxMoney <= 0)
{
ChatColor(id, "!y[!gСтавки!y] !teamНе хватает !gденег")
return PLUGIN_CONTINUE
}
Mydengi[id] += 1000
cs_set_user_money(id, MaxMoney - 1000)
}

case 4:
{
if(MaxMoney <= 0)
{
ChatColor(id, "!y[!gСтавки!y] !teamНе хватает !gденег")
return PLUGIN_CONTINUE
}
Mydengi[id] += MaxMoney
cs_set_user_money(id, 0)
}
case 5:
{
if(Mydengi[id] != 0 && Mydengi[id] < 100)
{
ChatColor(id, "!y[!gСтавки!y] !teamВаша ставка меньше !g100$")
return PLUGIN_CONTINUE
}
Mydengi[id] -= 100
cs_set_user_money(id, MaxMoney + 100)
}
case 6:
{
if(Mydengi[id] != 0 && Mydengi[id] < 1000)
{
ChatColor(id, "!y[!gСтавки!y] !teamВаша ставка меньше !g1000$")
return PLUGIN_CONTINUE
}
Mydengi[id] -= 1000
cs_set_user_money(id, MaxMoney + 1000)
}
case 9:
{
timer[id] = false
remove_task ( id + 41292 );
show_menu(id, 0, "^n", 1)
}

}
return PLUGIN_CONTINUE
}

public SettingStavki()
{
for(new id = 1; id <= get_maxplayers(); id++)
{
if(is_user_connected(id) && !is_user_alive(id))
{
SecondTimerStavki[id] = 20
Ctdengi = 0
Tdengi = 0
Mydengi[id] = 0
set_task ( 1.0, "T_Menu_Try", id + 41292, _, _, "a", SecondTimerStavki[id] );
MyStavkaCt[id] = false
MyStavkaTt[id] = false
OpenMenuStavki[id] = true
}
}
}
public T_Menu_Try( id )
{
if ( id > 41292 )
id -= 41292

SecondTimerStavki[ id ] -= 1;

if ( SecondTimerStavki[id] < 1 )
{
if ( task_exists ( id + 41292 ) )
remove_task ( id + 41292 );

cleardhud(id)
set_dhudmessage( 0, 255, 0, -1.0, -0.35, 1, 3.0, 3.0, 0.1, 1.5 )
show_dhudmessage(id, "Ставки сделаны!^n**Начнём мочилово!!**")
set_task ( 1.1, "Hide_Menu", id + 41293 );

timer[ id ] = true
}
MenuStavki( id )
}
}
public Hide_Menu(id)
{
if ( id > 41293 )
id -= 41293

client_cmd(id, "slot10")
}

public go_present_ct_stavki(id)
{
new name[32]
new MaxMoney = cs_get_user_money(id)
get_user_name(id, name, 31)

if(MyStavkaCt[id]&& id != CounterID && id != TerroristID)
{
new CoffPresentCt = Mydengi[id] * 2
cs_set_user_money(id, MaxMoney + CoffPresentCt)
ChatColor(0, "!y[!gСтавки!y] !g%s !teamВыиграл !g%d$", name, CoffPresentCt)
}
}

public go_present_tt_stavki(id)
{
new name[32]
new MaxMoney = cs_get_user_money(id)
get_user_name(id, name, 31)

if(MyStavkaTt[id] && id != TerroristID && id != CounterID)
{
new CoffPresentTt = Mydengi[id] * 2
cs_set_user_money(id, MaxMoney + CoffPresentTt)
ChatColor(0, "!y[!gСтавки!y] !g%s !teamВыиграл !g%d$", name, CoffPresentTt)
}
}

/*===============================================================================
=
Событие получение урона, (Дамагер при дуели)
================================================================================
=*/

public DamageEvent(victim)
{
new attacker = get_user_attacker(victim), damage = read_data(2), hp = get_user_health(victim), at_name[32], vi_name[32]
get_user_name(victim, vi_name, 31)
get_user_name(attacker, at_name, 31)

if(!Duel || attacker == victim || !is_user_connected(attacker) || !is_user_connected(victim) || get_user_team(attacker) == get_user_team(victim) || !is_user_alive(attacker) || !is_user_alive(victim))
return PLUGIN_CONTINUE

if(CounterID == victim || CounterID == attacker || TerroristID == victim || TerroristID == attacker)
{
cleardhud(attacker)
cleardhud(victim)

set_dhudmessage( 0, 255, 0, -1.0, -0.35, 1, 3.0, 3.0, 0.1, 1.5 )
show_dhudmessage(attacker, "Вы нанесли: %d", damage)
ChatColor(0, "!g%s !teamНанёс !g%d !teamУрона игроку !g%s", at_name, damage, vi_name)
ChatColor(0, "!team у игрока !g%s !teamосталось !g%d !teamЗдоровья", vi_name, hp)
set_dhudmessage( 255, 0, 0, -1.0, -0.35, 1, 3.0, 3.0, 0.1, 1.5 )
show_dhudmessage(victim, "Вам нанесли: %d", damage)
}

return PLUGIN_CONTINUE
}


/*===============================================================================
=
Убрать с экрана все дхуд сообщения
================================================================================
=*/

public cleardhud(pId)
{
ClearDHUDMessages(pId);
}

stock ClearDHUDMessages(pId, iClear = 8)
{
for (new iDHUD = 0; iDHUD < iClear; iDHUD++)
show_dhudmessage(pId, "");
}


Отредактировал: looks5q, - 30.10.2012, 21:44
Прикрепленные файлы:
Прикрепленный файл  deathrun_duels_5.sma ( 71,45 килобайт ) Кол-во скачиваний: 9
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя looks5q
сообщение 31.10.2012, 14:09
Сообщение #14
Стаж: 13 лет

Сообщений: 92
Благодарностей: 4
Полезность: < 0

Помогите пожалуйста..
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 31.10.2012, 21:59
Сообщение #15
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Поможем. Попросил отцов помочь. Ждём.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 1.11.2012, 0:54
Сообщение #16
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Готово. Тестируй.


Совет на будущее
Даже если ты ничего не понимаешь в скриптинге и нужно выбрать из 2-х с виду одинаковых плагинов, предпочти тот, где вместо такого кода
Код
server_cmd("bh_enabled 1")
server_cmd("vampir_regenhp 1")
server_cmd("dr_rembo 1")
server_cmd("drshop_enable 1")
server_cmd("trigger_hurt 0")


стоит
Код
set_cvar_num("bh_enabled", 1)
set_cvar_num("vampir_regenhp", 1)
set_cvar_num("dr_rembo", 1)
set_cvar_num("drshop_enable", 1)
set_cvar_num("trigger_hurt", 0)


;)


Отредактировал: Safety1st, - 1.11.2012, 14:23
Прикрепленные файлы:
Прикрепленный файл  deathrun_duels_5.sma ( 71,99 килобайт ) Кол-во скачиваний: 13
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя looks5q
сообщение 1.11.2012, 15:06
Сообщение #17
Стаж: 13 лет

Сообщений: 92
Благодарностей: 4
Полезность: < 0

Спасибо большое , но все равно 100хп...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 1.11.2012, 15:20
Сообщение #18
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

А когда 100 hp: после спавна или перед дуэлью?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя looks5q
сообщение 1.11.2012, 15:34
Сообщение #19
Стаж: 13 лет

Сообщений: 92
Благодарностей: 4
Полезность: < 0

После спавна , сразу же , даже не начиная дуэль все равно 100хп.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
underwoker
сообщение 1.11.2012, 16:07
Сообщение #20
Стаж: 56 лет


Благодарностей:

Проверяй. Исходник выложу сразу после того как проверишь и напишешь как работает или нет на карте 35hp_2, сделал пока только для нее.(Это из-за некоторых про скриптеров, которые начнут вы***** передо мной нубом)
http://rghost.ru/41279632
Проверь пока только на 35hp_2!

Отредактировал: underwoker, - 1.11.2012, 16:10
Перейти в начало страницы     
Поблагодарили 1 раз
   +
4 страниц V   1 2 3 »
 
Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: