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

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

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

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

Сохранение классов

Статус пользователя Etasch
сообщение 12.12.2011, 19:08
Сообщение #1


Стаж: 15 лет

Сообщений: 422
Благодарностей: 73
Полезность: 34

Сделайте пожалуйста, что бы классы сохранялись, а то каждый раз приходится выбирать класс.

Спойлер

/*
Классы для человека зомби чумы, вызовите меню классов клавишей J или набрав в чате /hc
Вы можете редактировать этот плагин однако она соответствует вашим потребностям.

Список:

Квары
external comfiguration
Далее классы
Сделать выбор пользователя можно за все время игры на карте, как это было сделано для зомби ботов поддержка.

========
Классы:
========
Броненосец - +20 Брони.
Живучий - +300 HP.
Прыгун - Высоко прыгает (низкая гравитация).
Морозист - Имеет 5 замараживающих грен.
Поджигатель - Имеет 5 огненных грен.
Светила - Аура как у Сурвивора + 5 световых грен.
Бегун - +50 к своей скорости.

Стрелок - Стрельба без отдачи.
Щитовод - Щит + Дигл.
Лазерщик - Имеет лазерный прицел на все пушки.
Акробат - Нет повреждений от падений.
Прыгун - Прыгает в даль через каждые - 4 сек.
Зомби Искатель - получает радар, который показывает зомби.
Вампuр - получает + 500 при инфицировании. HP добавляются в текущую сумму HP его зомби класс.

Дробовщик - имет дополнительно 2-а дроба к своему оружию.
Рембо - получает SMG наряду с начальным оружием (UMP45, mp5navy и P90).
Cлeneц - Получает одну ослепляющую гранату когда заражен.
Бешеный - Получает неуязвимость на 5 секунд сразу после заражения (если зомби).
Bop - Получает рандомное кол-во аммо-паков с зомби, который его заразил (мин. 2, макс 8).
Бронuрoвщuк - Если он будет заражен, он получит 100 брони для зомби.
Неведика - Получает полуневидимость.

Дамагер - +10% Урона от его пушек.
Слепун - Ослепляет зомби, которые на него смотрят.
Гипнотезер - Трясет экран зомби, которые на него смотрят.
Пистолетчик - имеет все пистолеты.
Взрыватель - получает C4, что составляет 500 урона, когда зомби наступает на нее.
Медик - получает один дополнительный антидот, через 10 сек. после инфекции (не можете выбрать другой класс, когда гуманизированные).
Самурай - получает более быстрый нож атаки + двойной урон для ножа (добавят модель поддержки изменения, для катана).

Мутант - Мутант - становится возмездием за 10 сек., если он заразится. После 10 сек., он будет преобразован в нормальный зомби.
Шпион - видит у зомби здоровья, боеприпасы паков и т.д.
Пулеметчик - имеет M249 (Пулемет).
Кошак - видит в темноте.
Последний человек - станет Выживший, если он является единственным оставшимся из людей.
СлепаетZM - Слэпает зомби, которые смотрят на него.
Игрок - Получает любой класс рандомно.

Отбиватель - Может использовать свое оружие в качестве палки.
Дух - может проходить сквозь стены в течение 15 секунд после инфекции.
Снайпер - получает Слон и Муху с увеличенным ущербом.
Oпepaтop - вид от 3-е лица.
Уворотлuв - Может быть заражен только в хедшот.
Пушкa-oтбpoc - Его оружие имеет больший отброс.
Хакер - Извлечение CD лотка зомби, кто смотрит на него.

Потрошитель - Потрошитель жертв.
Цeлuтeль - Лечит 5% HP от урона, нанесеного ему.
Оруженосец - Может носить с собой несколько оружий.
Святоша - Имеет ауру, которая замедляет зомби.
Скрытый - Имеет ауру полу-невидимости, но немного медленнее.
Нейтрализер - нейтрализирует любую инфекционную гранату.
Дымщик - Получает дымовую гранату когда заражен.

==================================================
Перевод на русский IGLA_VIP
==================================================
*/

#include <amxmodx>
#include <cstrike>
#include <engine>
#include <fun>
#include <xs>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>

#define TASK_AURA 547
#define IsPlayer(%1) (1<=%1<=g_iMaxPlayers)
#define IsPogo(%1) (g_bIsPogo & (1<<(%1 & 31)))
#define SetPogo(%1) (g_bIsPogo |= (1<<(%1 & 31)))
#define RemovePogo(%1) (g_bIsPogo &= ~(1<<(%1 & 31)))

new const g_GunEvents[][] =
{
"events/awp.sc",
"events/g3sg1.sc",
"events/ak47.sc",
"events/scout.sc",
"events/m249.sc",
"events/m4a1.sc",
"events/sg552.sc",
"events/aug.sc",
"events/sg550.sc",
"events/m3.sc",
"events/xm1014.sc",
"events/usp.sc",
"events/mac10.sc",
"events/ump45.sc",
"events/fiveseven.sc",
"events/p90.sc",
"events/deagle.sc",
"events/p228.sc",
"events/glock18.sc",
"events/mp5n.sc",
"events/tmp.sc",
"events/elite_left.sc",
"events/elite_right.sc",
"events/galil.sc",
"events/famas.sc"
};


const WEAPONS_BITSUM = (1<<CSW_KNIFE|1<<CSW_HEGRENADE|1<<CSW_FLASHBANG|1<<CSW_SMOKEGRENADE|1<<CSW_C4)
const PRIMARY_WEAPONS_BITSUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)
const SECONDARY_WEAPONS_BITSUM = (1<<CSW_GLOCK18)|(1<<CSW_DEAGLE)|(1<<CSW_P228)|(1<<CSW_USP)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)

const m_pPlayer = 41
const m_flNextPrimaryAttack = 46
const m_flNextSecondaryAttack = 47
const m_flTimeWeaponIdle = 48

new g_GunEventBits
new g_FMPrecacheEvent
new g_iMaxPlayers

new g_TouchGroundEnt
new g_bIsPogo

new sprite, boomsprite, g_msgHostageAdd, g_msgHostageDel, g_SayText, g_class, gmsgFade, gmsgShake, g_status_sync

new Float: cl_pushangle[33][3]
new Float:g_lastLeaptime[33]


new g_iCurrentWeapon[33]
new bool:got_class[33]

new bool:g_flare[33]
new bool:g_fire[33]
new bool:g_frost[33]
new bool:g_jumper[33]
new bool:g_phalanx[33]
new bool:g_armor[33]
new bool:g_pound[33]
new bool:g_stealth[33]
new bool:g_norecoil[33]
new bool:g_nofalldamage[33]
new bool:g_speed[33]
new bool:g_laser[33]
new bool:g_leap[33]
new bool:g_radar[33]
new bool:g_doc[33]
new bool:g_shg[33]
new bool:g_smg[33]
new bool:g_blinder[33]
new bool:g_mad[33]
new bool:g_aps[33]
new bool:g_az[33]
new bool:g_dmgx[33]
new bool:g_blaster[33]
new bool:g_medic[33]
new bool:g_gunner[33]
new bool:g_samurai[33]
new bool:g_tremor[33]
new bool:g_flasher[33]
new bool:g_mutant[33]
new bool:g_spy[33]
new bool:g_heavy[33]
new bool:g_nvg[33]
new bool:g_srv[33]
new bool:g_dis[33]

new bool:g_pogo[33]
new bool:g_cam[33]
new bool:g_ghost[33]
new bool:g_snip[33]
new bool:g_gore[33]
new bool:g_leech[33]
new bool:g_cd[33]
new bool:g_head[33]
new bool:g_knock[33]
new bool:g_collector[33]
new bool:g_aurel[33]
new bool:g_sthg[33]
new bool:g_neut[33]
new bool:g_smoker[33]


public plugin_init()
{
register_plugin("[ZP] Addon: Human Classes", "1.6", "fiendshard")
g_class = zp_register_extra_item("Buy One More Class", 10, ZP_TEAM_HUMAN)
register_event("StatusValue", "showStatus", "be", "1=2", "2!0")
register_event("Damage", "Event_Damage", "b", "2!0", "3=0", "4!0")
register_event("HLTV", "NewRound", "a", "1=0", "2=0")
register_event("DeathMsg", "DeathMsg", "a")
register_clcmd("cheer", "ClCmdSelectclass")
register_clcmd("say /hc", "ClCmdSelectclass")
register_think("touchground_entity", "fw_Think")
RegisterHam(Ham_Killed, "player", "fw_PlayerKilled_Pre", 0)
RegisterHam( Ham_Killed, "player", "fw_PlayerKilled_Post", 1)
register_forward(FM_Touch,"FM_Touch_hook")

register_forward(FM_PlayerPreThink, "FW_playerprethink")
register_forward(FM_CmdStart, "fw_FMCmdStart", 1)
register_forward(FM_PlaybackEvent, "fw_FMPlaybackEvent")
unregister_forward(FM_PrecacheEvent, g_FMPrecacheEvent, 1)
entity_set_string(g_TouchGroundEnt , EV_SZ_classname , "touchground_entity")
RegisterHam(Ham_TakeDamage, "player", "Ham_PlayerTakeDamage", 0)
RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_knife", "fw_Knife_PrimaryAttack_Post", 1)
RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_knife", "fw_Knife_SecondaryAttack_Post", 1)

g_iMaxPlayers = get_maxplayers()
g_TouchGroundEnt = create_entity("info_target")
g_status_sync = CreateHudSyncObj()
gmsgFade = get_user_msgid("ScreenFade")
gmsgShake = get_user_msgid ("ScreenShake")
g_SayText = get_user_msgid("SayText")
g_msgHostageAdd = get_user_msgid("HostagePos")
g_msgHostageDel = get_user_msgid("HostageK")
set_task (2.0,"radar_scan",_,_,_,"b")
new weapon_name[24]
for (new i = 1; i <= 30; i++)
{
if (!(WEAPONS_BITSUM & 1 << i) && get_weaponname(i, weapon_name, 23))
{
RegisterHam(Ham_Weapon_PrimaryAttack, weapon_name, "fw_Weapon_PrimaryAttack_Pre")
RegisterHam(Ham_Weapon_PrimaryAttack, weapon_name, "fw_Weapon_PrimaryAttack_Post", 1)
}
}
}

public plugin_precache()
{
sprite = precache_model("sprites/white.spr")
boomsprite = precache_model("sprites/zerogxplode.spr")
precache_model("models/rpgrocket.mdl")
g_FMPrecacheEvent = register_forward(FM_PrecacheEvent, "fw_FMPrecacheEvent", 1)
}

public ClCmdSelectclass(id)
{
if(zp_get_user_zombie(id) || zp_get_user_nemesis(id) || zp_get_user_survivor(id) || (got_class[id] == true))
{
return PLUGIN_HANDLED;
}
else if(!is_user_alive(id))
{
return PLUGIN_HANDLED;
}
else
{
human_menu(id)
}
return PLUGIN_CONTINUE;
}

public human_menu(id)
{
new menu = menu_create("\yBыбepu клacc челoвeкa:", "human_menu_handler")

menu_additem(menu, "\wБроненосец \y(+20 Брони)", "1", 0)
menu_additem(menu, "\wЖивyчий \y(+300 HP)", "2", 0)
menu_additem(menu, "\wПрыгун \y(Bыcoкo nрыг.)", "3", 0)
menu_additem(menu, "\wПрыгyчuй \y(каждые 4-е сек.)", "4", 0)
menu_additem(menu, "\wБеryн \y(Быстро бегает)", "5", 0)
menu_additem(menu, "\wНевеguмка \y(50% npoзp.)", "6", 0)
menu_additem(menu, "\wМopoзucт \y(X5 лeg.rpeн)", "7", 0)


menu_additem(menu, "\wBop \y(Kor.зараж.noл.2-8 naк.)", "8", 0)
menu_additem(menu, "\wCлeneц \y(Кorga зapaж.noл.флехy)", "9", 0)
menu_additem(menu, "\wВампuр \y(+500 HP при зараж.)", "10", 0)
menu_additem(menu, "\wБeшeный \y(+Heуязв. 5-c. когgа зараж)", "11", 0)
menu_additem(menu, "\wAкpoбaт \y(He cтpaшны nageн.)", "12", 0)
menu_additem(menu, "\wБронuрoвщuк \y(+100 Бpoнu npu uнфe.)", "13", 0)
menu_additem(menu, "\wCвeтuлa \y(X5 свет.грен u Аура)", "14", 0)


menu_additem(menu, "\wДробовщuк \y(2-a gpoбa)", "15", 0)
menu_additem(menu, "\wPemбo \y(Mнoгo nyшeк)", "16", 0)
menu_additem(menu, "\wЩuтовоg \y(Щит + Дurл)", "17", 0)
menu_additem(menu, "\wCтpeлoк \y(Cтpелбa бeз отgaчu)", "18", 0)
menu_additem(menu, "\wЛазерщuк \y(Пyшкu c лазep.npuц.)", "19", 0)
menu_additem(menu, "\w3omбu Иcкaтeль \y(Pадар на Zombu)", "20", 0)
menu_additem(menu, "\wПogжugaтeль \y(X5 огн.грен)", "21", 0)


menu_additem(menu, "\wДamaгep \y(+10%% Уpoн)", "22", 0)
menu_additem(menu, "\wВзрыватель \y(C4 Мuнa)", "23", 0)
menu_additem(menu, "\wМедuк \y(1 Aнтugoт)", "24", 0)
menu_additem(menu, "\wПuсталетчuк \y(Bce nucт-ы)", "25", 0)
menu_additem(menu, "\wCaмуpaй \y(Быстр.отака + Урон)", "26", 0)
menu_additem(menu, "\wГunнотезер \y(Трясет экран ZM)", "27", 0)
menu_additem(menu, "\wСлenyн \y(Ослепл.Zm)", "28", 0)


menu_additem(menu, "\wМутант \y(Cт.Нemeз-й.8сeк.nocл.Uнф)", "29", 0)
menu_additem(menu, "\wШnuoн \y(Видит зомби HP u т.g.)", "30", 0)
menu_additem(menu, "\wПулеметчик \y(+M249)", "31", 0)
menu_additem(menu, "\wКошак \y(Глaзa кoшкu)", "32", 0)
menu_additem(menu, "\wВыжuвш. \y(Есл.вu nocлeg.тo Выжuвш)", "33", 0)
menu_additem(menu, "\wОслenuтель \y(Оcлеnл.ZM)", "34", 0)
menu_additem(menu, "\wИrpoк \y(Paнgomн.клacc)", "35", 0)


menu_additem(menu, "\wOпepaтop \y(3BUD)", "36", 0)
menu_additem(menu, "\wДyx \y(Пpu zapaж.15c.moж.npox.cкв.cт-ы)", "37", 0)
menu_additem(menu, "\wСнайnep \y(+Пушки снaйnep. & 2x Уpoн)", "38", 0)
menu_additem(menu, "\wПотрошuтель \y(3omбu)", "39", 0)
menu_additem(menu, "\wЦeлuтeль \y(Рег. 5% oт нaнec.ypoнa.)", "40", 0)
menu_additem(menu, "\wХакер \y(Извл. CD-ROM у ZM)", "41", 0)
menu_additem(menu, "\wУворотлuв \y(Зapaж.тол.в голову)", "42", 0)

menu_additem(menu, "\wПушкa-oтбpoc \y(+Отл. дал. от оруж. ZM)", "43", 0)
menu_additem(menu, "\wОружейнuк \y(Moж.тоск.неск.оруж)", "44", 0)
menu_additem(menu, "\wСвятоша \y(ZM megл.хоg.возлe тeбя)", "45", 0)
menu_additem(menu, "\wCкpuтuй \y(Cкpыт ауpой)", "46", 0)
menu_additem(menu, "\wНейтpaлuзep \y(Heйтр.зар.грен.)", "47", 0)
menu_additem(menu, "\wДыmщuк \y(Коrgа зaрaж.пол.gыmaв.)", "48", 0)





menu_additem(menu, "\wBыбpaть \y(Haбyм клacc)", "51", 0)

menu_setprop(menu,MPROP_BACKNAME,"Назад")
menu_setprop(menu,MPROP_NEXTNAME,"Далее")
menu_setprop(menu,MPROP_EXITNAME,"Закрыть");
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, menu, 0)
}

public human_menu_handler(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)
new key = str_to_num(data)
switch(key)
{
case 1:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 1
got_class[id] = true
class_1(id)
}
case 2:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 2
got_class[id] = true
class_2(id)

}
case 3:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 3
got_class[id] = true
class_3(id)
}
case 4:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 4
got_class[id] = true
class_4(id)

}
case 5:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 5
got_class[id] = true
class_5(id)
}
case 6:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 6
got_class[id] = true
class_6(id)
}
case 7:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 7
got_class[id] = true
class_7(id)
}
case 8:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 8
got_class[id] = true
class_8(id)
}
case 9:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 9
got_class[id] = true
class_9(id)
}
case 10:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 10
got_class[id] = true
class_10(id)
}
case 11:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 11
got_class[id] = true
class_11(id)
}
case 12:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 12
got_class[id] = true
class_12(id)
}
case 13:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 13
got_class[id] = true
class_13(id)
}
case 14:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 14
got_class[id] = true
class_14(id)
}
case 15:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 15
got_class[id] = true
class_15(id)
}
case 16:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 16
got_class[id] = true
class_16(id)
}
case 17:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 17
got_class[id] = true
class_17(id)
}
case 18:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 18
got_class[id] = true
class_18(id)
}
case 19:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 19
got_class[id] = true
class_19(id)
}
case 20:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 20
got_class[id] = true
class_20(id)
}
case 21:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 21
got_class[id] = true
class_21(id)
}
case 22:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 22
got_class[id] = true
class_22(id)
}
case 23:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 23
got_class[id] = true
class_23(id)
}
case 24:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 24
got_class[id] = true
class_24(id)
}
case 25:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 25
got_class[id] = true
class_25(id)
}
case 26:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 26
got_class[id] = true
class_26(id)
}
case 27:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 27
got_class[id] = true
class_27(id)
}
case 28:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 28
got_class[id] = true
class_28(id)
}
case 29:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 29
got_class[id] = true
class_29(id)
}
case 30:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 30
got_class[id] = true
class_30(id)
}
case 31:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 31
got_class[id] = true
class_31(id)
}

case 32:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 32
got_class[id] = true
class_32(id)
}
case 33:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 33
got_class[id] = true
class_33(id)
}
case 34:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 34
got_class[id] = true
class_34(id)
}
case 35:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 35
got_class[id] = true
class_35(id)
}
case 36:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 36
got_class[id] = true
class_36(id)
}
case 37:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 37
got_class[id] = true
class_37(id)
}
case 38:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 38
got_class[id] = true
class_38(id)
}
case 39:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 39
got_class[id] = true
class_39(id)
}
case 40:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 40
got_class[id] = true
class_40(id)
}
case 41:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 41
got_class[id] = true
class_41(id)
}
case 42:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 42
got_class[id] = true
class_42(id)
}
case 43:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 43
got_class[id] = true
class_43(id)
}
case 44:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 43
got_class[id] = true
class_44(id)
}
case 45:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 43
got_class[id] = true
class_45(id)
}
case 46:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 43
got_class[id] = true
class_46(id)
}
case 47:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 43
got_class[id] = true
class_47(id)
}
case 48:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 43
got_class[id] = true
class_48(id)
}
case 51:
{
if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
//g_player_class[id] = 51
got_class[id] = true
new rand = random_num(1,48)
switch(rand)
{
case 1: class_1(id)
case 2: class_2(id)
case 3: class_3(id)
case 4: class_4(id)
case 5: class_5(id)
case 6: class_6(id)
case 7: class_7(id)
case 8: class_8(id)
case 9: class_9(id)
case 10: class_10(id)
case 11: class_11(id)
case 12: class_12(id)
case 13: class_13(id)
case 14: class_14(id)
case 15: class_15(id)
case 16: class_16(id)
case 17: class_17(id)
case 18: class_18(id)
case 19: class_19(id)
case 20: class_20(id)
case 21: class_21(id)
case 22: class_22(id)
case 23: class_23(id)
case 24: class_24(id)
case 25: class_25(id)
case 26: class_26(id)
case 27: class_27(id)
case 28: class_28(id)
case 29: class_29(id)
case 30: class_30(id)
case 31: class_31(id)
case 32: class_32(id)
case 33: class_33(id)
case 34: class_34(id)
case 35: class_35(id)
case 36: class_36(id)
case 37: class_37(id)
case 38: class_38(id)
case 39: class_39(id)
case 40: class_40(id)
case 41: class_41(id)
case 42: class_42(id)
case 43: class_43(id)
case 44: class_44(id)
case 45: class_45(id)
case 46: class_46(id)
case 47: class_47(id)
case 48: class_48(id)
}
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}

public fw_Weapon_PrimaryAttack_Post(entity)
{
new id = pev(entity, pev_owner)
if (g_norecoil[id] == true)
{
new Float: push[3]
pev(id, pev_punchangle, push)
xs_vec_sub(push, cl_pushangle[id], push)
xs_vec_mul_scalar(push, 0.0, push)
xs_vec_add(push, cl_pushangle[id], push)
set_pev(id, pev_punchangle, push)
return HAM_IGNORED;
}
return HAM_IGNORED;
}

public fw_Weapon_PrimaryAttack_Pre(entity)
{
new id = pev(entity, pev_owner)
if (g_norecoil[id] == true)
{
pev(id, pev_punchangle, cl_pushangle[id])
return HAM_IGNORED;
}
return HAM_IGNORED;
}

public FW_playerprethink(id)
{
if(g_speed[id] == true)
{
set_user_maxspeed(id, get_cvar_float("zp_human_speed") + 50)
}

if(g_laser[id] == true)
{
new e[3]
get_user_origin(id, e, 3)
message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
write_byte (TE_BEAMENTPOINT)
write_short(id | 0x1000)
write_coord (e[0])
write_coord (e[1])
write_coord (e[2])

write_short(sprite)

write_byte (1)
write_byte (10)
write_byte (1)
write_byte (5)
write_byte (0)
write_byte (255)
write_byte (0)
write_byte (0)
write_byte (150)
write_byte (25)
message_end()
}

if(can_leap(id))
{
if(g_leap[id] == true)
{
static Float:velocity[3]
velocity_by_aim(id, 570, velocity)
velocity[2] = 275.00
set_pev(id, pev_velocity, velocity)
g_lastLeaptime[id] = get_gametime()
}
}
if(g_aurel[id] == true)
{
for( new i = 1; i <= g_iMaxPlayers; i++ )
{
if(is_user_alive(i) && zp_get_user_zombie(i))
{
new Distance; Distance = get_entity_distance(i, id)
if(Distance <= 300)
{
set_user_maxspeed(i, 150.0)
}
}
}
}

if(g_sthg[id] == true)
{
for( new i = 1; i <= g_iMaxPlayers; i++ )
{
if(is_user_alive(i) && !zp_get_user_zombie(i))
{
new Distance; Distance = get_entity_distance(i, id)
if(Distance <= 300)
{
stealthize(i)
set_user_maxspeed(id, get_cvar_float("zp_human_speed") - 60)
}
}
}
}

if(g_neut[id] == true)
{
new infnade = find_ent_by_class(-1, "grenade")
{
new Distance = fm_get_entity_distance(infnade, id)
new owner = pev(infnade, pev_owner)
if(Distance <= 200 && zp_get_user_zombie(owner))
{
remove_entity(infnade)
}
}
}
}

public Ham_PlayerTakeDamage(iVictim, iInflictor, iAttacker, Float:flDamage, iDmgBits)
{
if (iDmgBits & DMG_FALL)
{
if (g_nofalldamage[iVictim] == true)
{
return HAM_SUPERCEDE
}
}
if(g_dmgx[iAttacker])
{
SetHamParamFloat(4,(flDamage*1.1))
return HAM_HANDLED
}
if(g_samurai[iAttacker] && g_iCurrentWeapon[iAttacker] == CSW_KNIFE)
{
SetHamParamFloat(4,(flDamage*2.0))
return HAM_HANDLED
}
if(g_snip[iAttacker] && g_iCurrentWeapon[iAttacker] == CSW_AWP || g_iCurrentWeapon[iAttacker] == CSW_SCOUT)
{
SetHamParamFloat(4,(flDamage*2.0))
return HAM_HANDLED
}
return HAM_IGNORED
}

public blind(id)
{
message_begin(MSG_ONE_UNRELIABLE, gmsgFade,{0,0,0},id)
write_short(1<<2)
write_short(1<<11)
write_short(1<<12)
write_byte(255)
write_byte(255)
write_byte(255)
write_byte(250)
message_end()
}

public shake(id)
{
message_begin (MSG_ONE_UNRELIABLE, gmsgShake, {0,0,0}, id)
write_short (1<<6)
write_short (1<<13)
write_short (1<<12)
message_end ()
}

stock fm_get_speed(entity)
{
static Float:velocity[3]
pev(entity, pev_velocity, velocity)
return floatround(vector_length(velocity))
}

can_leap(id)
{
static buttons
buttons = pev(id, pev_button)
if (!(pev(id, pev_flags) & FL_ONGROUND) || fm_get_speed(id) < 20 || !(buttons & IN_JUMP) || !(buttons & IN_DUCK))
return false
if (get_gametime() - g_lastLeaptime[id] < 4.0)
return false
return true
}

public radar_scan()
{
new zombie_count = 0;
new zombie_list[32];
new ZombieCoords[3];
new id, i;

for (new id=1; id<=32; id++)
if (zp_get_user_zombie(id))
{
zombie_count++;
zombie_list[zombie_count]=id;
}

for (id=1; id<=32; id++)
{
if ((!is_user_alive(id))||(!g_radar[id])) continue;

for (i=1;i<=zombie_count;i++)
{

get_user_origin(zombie_list[i], ZombieCoords)

message_begin(MSG_ONE_UNRELIABLE, g_msgHostageAdd, {0,0,0}, id)
write_byte(id)
write_byte(i)
write_coord(ZombieCoords[0])
write_coord(ZombieCoords[1])
write_coord(ZombieCoords[2])
message_end()

message_begin(MSG_ONE_UNRELIABLE, g_msgHostageDel, {0,0,0}, id)
write_byte(i)
message_end()
}
}
}

public remove_mad(id)
{
set_user_godmode(id, 0)
remove_task(id + TASK_AURA)
}

public zp_extra_item_selected(id, itemid)
{
if (itemid == g_class)
{
got_class[id] = false
ClCmdSelectclass(id)
}
}

public NewRound(i)
{
for (i = 1; i <= 32; i++)
{
if (g_speed[i])
{
g_speed[i] = false
}
if (g_norecoil[i])
{
g_norecoil[i] = false
}
if (g_laser[i])
{
g_laser[i] = false
}
if (g_leap[i])
{
g_leap[i] = false
}
if (g_nofalldamage[i])
{
g_nofalldamage[i] = false
}
if (g_radar[i])
{
g_radar[i] = false
}
if (g_doc[i])
{
g_doc[i] = false
}
if (g_blinder[i])
{
g_blinder[i] = false
}
if (g_mad[i])
{
g_mad[i] = false
}
if (g_shg[i])
{
drop_primary_weapons(i)
g_shg[i] = false
}
if (g_smg[i])
{
drop_primary_weapons(i)
g_smg[i] = false
}
if (g_dmgx[i])
{
g_dmgx[i] = false
}
if (g_blaster[i])
{
g_blaster[i] = false
}
if (g_medic[i])
{
g_medic[i] = false
}
if (g_gunner[i])
{
drop_secondary_weapons(i)
g_gunner[i] = false
}
if (g_az[i])
{
g_az[i] = false
cs_set_user_armor(i, 0, CsArmorType:1)
}
if (g_samurai[i])
{
g_samurai[i] = false
}
if (g_tremor[i])
{
g_tremor[i] = false
}
if (g_flasher[i])
{
g_flasher[i] = false
}
if (g_mutant[i])
{
g_mutant[i] = false
}
if (g_spy[i])
{
g_spy[i] = false
}
if (g_heavy[i])
{
g_heavy[i] = false
}
if (g_srv[i])
{
g_srv[i] = false
}
if (g_nvg[i])
{
g_nvg[i] = false
}
if (g_dis[i])
{
g_dis[i] = false
}
if (g_ghost[i])
{
g_ghost[i] = false
}
if (g_cam[i] == true)
{
set_view(i, CAMERA_NONE)
g_cam[i] = false
}
if (g_pogo[i])
{
g_pogo[i] = false
}
if (g_knock[i])
{
g_knock[i] = false
}
if (g_leech[i])
{
g_leech[i] = false
}
if (g_cd[i])
{
g_cd[i] = false
}
if (g_snip[i])
{
g_snip[i] = false
}
if (g_aurel[i])
{
g_aurel[i] = false
}
if (g_sthg[i])
{
g_sthg[i] = false
}
if (g_neut[i])
{
g_neut[i] = false
}
if (g_smoker[i])
{
g_smoker[i] = false
}
if (g_collector[i])
{
drop_primary_weapons(i)
drop_secondary_weapons(i)
g_collector[i] = false
}
if (g_head[i])
{
set_user_hitzones(0, i, 1)
g_head[i] = false
}
if (got_class[i])
{
got_class[i] = false
}
}
}

public fwHamPlayerSpawnPost(id)
{
chat_color(id, "!g[ZP] !yНажмите !gJ !yкнопку или же наберите !g/hc !yв чате чтобы выбрать !gКласс чела")
}

public zp_user_infected_post(id, infector)
{
g_leap[id] = false
g_speed[id] = false
g_norecoil[id] = false
g_laser[id] = false
g_nofalldamage[id] = false
g_radar[id] = false
g_smg[id] = false
g_shg[id] = false
g_dmgx[id] = false
g_gunner[id] = false
g_blaster[id] = false
g_flasher[id] = false
g_samurai[id] = false
g_tremor[id] = false
g_spy[id] = false
g_heavy[id] = false
g_nvg[id] = false
g_srv[id] = false
g_dis[id] = false
g_knock[id] = false
g_cd[id] = false
g_leech[id] = false
g_snip[id] = false
g_aurel[id] = false
g_collector[id] = false
g_sthg[id] = false
g_neut[id] = false
if(g_doc[id] == true)
{
set_user_health(id, (get_user_health(id)) + 500)
}
if(g_blinder[id] == true)
{
give_item(id, "weapon_flashbang")
}
if(g_aps[id] == true)
{
new amount
amount = random_num(2,8)
zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + amount)
zp_set_user_ammo_packs(infector, (zp_get_user_ammo_packs(infector) - amount) - (get_cvar_num("zp_zombie_infect_reward")))
}
if(g_mad[id] == true)
{
set_user_godmode(id, 1)
set_task(0.1, "aura", id + TASK_AURA, _, _, "b")
set_task(5.0, "remove_mad", id)
}
if(g_az[id] == true)
{
cs_set_user_armor(id, 100, CsArmorType:2)
}
if(got_class[id] == true)
{
got_class[id] = false
}
if(g_medic[id] == true)
{
set_task(10.0, "disinfect", id)
}
if(g_mutant[id] == true)
{
nemesize(id)
}
if(g_ghost[id] == true)
{
noclip(id)
}
if(g_cam[id] == true)
{
set_view(id, CAMERA_NONE)
}
if(g_head[id] == true)
{
g_head[id] = false
set_user_hitzones(0, id, 1)
}
if(g_smoker[id] == true)
{
give_item(id, "weapon_smokegrenade")
}
}

public DeathMsg()
{
new id = read_data(2)
got_class[id] = false

g_leap[id] = false
g_speed[id] = false
g_norecoil[id] = false
g_laser[id] = false
g_nofalldamage[id] = false
g_radar[id] = false
g_doc[id] = false
g_blinder[id] = false
g_mad[id] = false
g_aps[id] = false
g_smg[id] = false
g_shg[id] = false
g_az[id] = false
g_dmgx[id] = false
g_blaster[id] = false
g_medic[id] = false
g_samurai[id] = false
g_tremor[id] = false
g_flasher[id] = false
g_mutant[id] = false
g_spy[id] = false
g_heavy[id] = false
g_nvg[id] = false
g_srv[id] = false
g_dis[id] = false
g_cam[id] = false
g_pogo[id] = false
g_knock[id] = false
g_snip[id] = false
g_cd[id] = false
g_leech[id] = false
g_collector[id] = false
g_aurel[id] = false
g_sthg[id] = false
g_neut[id] = false
g_smoker[id] = false
if(g_head[id] == true)
{
g_head[id] = false
set_user_hitzones(0, id, 1)
}
}

public zp_user_humanized_post(id)
{
got_class[id] = false

g_leap[id] = false
g_speed[id] = false
g_norecoil[id] = false
g_laser[id] = false
g_nofalldamage[id] = false
g_radar[id] = false
g_smg[id] = false
g_shg[id] = false
g_aps[id] = false
g_doc[id] = false
g_blinder[id] = false
g_mad[id] = false
g_az[id] = false
g_dmgx[id] = false
g_blaster[id] = false
g_medic[id] = false
g_samurai[id] = false
g_tremor[id] = false
g_flasher[id] = false
g_mutant[id] = false
g_spy[id] = false
g_heavy[id] = false
g_nvg[id] = false
g_srv[id] = false
g_dis[id] = false
g_cam[id] = false
g_pogo[id] = false
g_knock[id] = false
g_cd[id] = false
g_snip[id] = false
g_leech[id] = false
g_collector[id] = false
g_aurel[id] = false
g_sthg[id] = false
g_neut[id] = false
g_smoker[id] = false
if(g_head[id] == true)
{
g_head[id] = false
set_user_hitzones(0, id, 1)
}
}

public aura(id)
{
id -= TASK_AURA
new Origin[3]
get_user_origin(id, Origin)

message_begin(MSG_ALL, SVC_TEMPENTITY)
write_byte(TE_DLIGHT)
write_coord(Origin[0])
write_coord(Origin[1])
write_coord(Origin[2])
write_byte(20)
write_byte(255)
write_byte(0)
write_byte(0)
write_byte(2)
write_byte(0)
message_end()
}

stock drop_primary_weapons(id)
{
static weapons [ 32 ], num, i, weaponid
num = 0
get_user_weapons (id, weapons, num )
for ( i = 0; i < num; i++ )
{
weaponid = weapons [ i ]
if ( ( (1<<weaponid) & PRIMARY_WEAPONS_BITSUM ) )
{
static wname[32]
get_weaponname(weaponid, wname, charsmax(wname))
engclient_cmd(id, "drop", wname)
}
}
}

stock drop_secondary_weapons(id)
{
static weapons [ 32 ], num, i, weaponid
num = 0
get_user_weapons (id, weapons, num )
for ( i = 0; i < num; i++ )
{
weaponid = weapons [ i ]
if ( ( (1<<weaponid) & SECONDARY_WEAPONS_BITSUM ) )
{
static wname[32]
get_weaponname(weaponid, wname, charsmax(wname))
engclient_cmd(id, "drop", wname)
}
}
}

public class_1(id)
{
g_armor[id] = true
cs_set_user_armor(id, 20, CsArmorType:1)
chat_color(id,"!g[ZP] !yВаш Класс для этого раунда:!g Броненосец !t(+20 AP)")
}

public class_2(id)
{
g_pound[id] = true
set_user_health(id, 300)
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Живyчий !t(+300 HP)")
}

public class_3(id)
{
g_jumper[id] = true
set_user_gravity(id, 0.50)
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда!g Прыгун !t(Выше прыгает)");
}

public class_4(id)
{
g_leap[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Прыгyчuй !t(каждые 4-е сек.)");
}

public class_5(id)
{
got_class[id] = true
g_speed[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Бeryн !t(Быcтpo бeraeт)");
}

public class_6(id)
{
g_stealth[id] = true
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,127)
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Невеguмка !t(50% npoзp.)");
}
public class_7(id)
{
g_frost[id] = true
give_item(id, "weapon_flashbang")
cs_set_user_bpammo(id, CSW_FLASHBANG, 5)
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Мopoзucт !t(X5 лeg.rpeн)");
}

public class_8(id)
{
g_aps[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Bop !t(Kor.зараж.noл.2-8 naк.)");
}

public class_9(id)
{
g_blinder[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Cлeneц !t(Кorga зapaж.noл.флехy)");
}

public class_10(id)
{
g_doc[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Вампuр !t(+500 HP npu зapaж.)");
}

public class_11(id)
{
g_mad[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Бeшeный !t(+Heуязв. 5-c. когgа зараж)");
}

public class_12(id)
{
g_nofalldamage [id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Aкpoбaт !t(He cтpaшны nageн.)");
}

public class_13(id)
{
g_az[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Бронuрoвщuк !t(+100 Бpoнu npu uнфe.)");
}

public class_14(id)
{
g_flare[id] = true
give_item(id, "weapon_smokegrenade")
cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 5)
set_pev(id, pev_effects, pev(id, pev_effects) | EF_BRIGHTLIGHT)
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Cвeтuлa !t(X5 свет.грен u Аура)");
}

public class_15(id)
{
g_shg[id] = true
give_item(id,"weapon_xm1014")
cs_set_user_bpammo(id, CSW_XM1014, 32)
give_item(id,"weapon_m3")
cs_set_user_bpammo(id, CSW_M3, 32)
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Дробовщuк !t(2-a gpoбa)");
}

public class_16(id)
{
g_smg[id] = true
give_item(id,"weapon_mp5navy")
cs_set_user_bpammo(id, CSW_MP5NAVY, 120)
give_item(id,"weapon_p90")
cs_set_user_bpammo(id, CSW_P90, 100)
give_item(id,"weapon_ump45")
cs_set_user_bpammo(id, CSW_UMP45, 120)
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Pemбo !t(Mнoгo nyшeк)");
}

public class_17(id)
{
g_phalanx[id] = true
drop_primary_weapons(id)
give_item(id,"weapon_shield")
give_item(id,"weapon_deagle")
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Щuтовоg !t(Щит + Дurл)");
}

public class_18(id)
{
g_norecoil[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Cтpeлoк !t(Cтpелбa бeз отgaчu)");
}

public class_19(id)
{
g_laser[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Лазерщuк !t(Пyшкu c лазep.npuц.)");
}

public class_20(id)
{
g_radar[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Радарщuк !t(Зомби на радаре)");
}

public class_21(id)
{
g_fire[id] = true
give_item(id, "weapon_hegrenade")
cs_set_user_bpammo(id, CSW_HEGRENADE, 5)
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Пogжugaтeль !t(X5 огн.грен)");
}

public class_22(id)
{
g_dmgx[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Дamaгep !t(+10%% Уpoн)");
}

public class_23(id)
{
g_blaster[id] = true
give_item(id, "weapon_c4")
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Взрыватель !t(C4 Мuнa 500 Dmg ZM)");
}

public class_24(id)
{
g_medic[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Медuк !t(1 Aнтugoт)");
}

public class_25(id)
{
g_gunner[id] = true
give_item(id, "weapon_glock18")
cs_set_user_bpammo(id, CSW_GLOCK18, 100)
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_DEAGLE, 100)
give_item(id, "weapon_usp")
cs_set_user_bpammo(id, CSW_USP, 100)
give_item(id, "weapon_fiveseven")
cs_set_user_bpammo(id, CSW_FIVESEVEN, 100)
give_item(id, "weapon_p228")
cs_set_user_bpammo(id, CSW_P228, 100)
give_item(id, "weapon_elite")
cs_set_user_bpammo(id, CSW_ELITE, 100)
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Пuсталетчuк !t(Bce nucт-ы)");
}

public class_26(id)
{
g_samurai[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Caмуpaй !t(Быстр.отака + Урон)");
}

public class_27(id)
{
g_tremor[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Гunнотезер !t(Трясет экран ZM)");
}

public class_28(id)
{
g_flasher[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Слenyн !t(Ослепл.Zm)");
}

public class_29(id)
{
g_mutant[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Мутант !t(Cт.Нemeзugoй.8сeк.nocл.Uнф)");
}

public class_30(id)
{
g_spy[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Шnuoн !t(Видит зомби HP u т.g.)");
}

public class_31(id)
{
g_heavy[id] = true
give_item(id, "weapon_m249")
cs_set_user_bpammo(id, CSW_M249, 250)
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Пулеметчик !t(+M294)");
}

public class_32(id)
{
g_nvg[id] = true
zp_set_user_nightvision(id, 1)
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Кошак !t(+Глaзa кoшкu)");
}

public class_33(id)
{
g_srv[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Выжuвш. !t(слu вu nocлeg. тo Выжuвш)");
}

public class_34(id)
{
g_dis[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Ослеnuтель !t(Оcлеnл. ZM)");
}

public class_35(id)
{
g_pogo[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Иrpoк !t(Paнgomн.клacc)");
}

public class_36(id)
{
g_cam[id] = true
set_view(id, CAMERA_3RDPERSON)
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Onepaтop !t(3BUD)");
}

public class_37(id)
{
g_ghost[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Дyx !t(Пpu zapaж.15ceк.moж.npox.cкв.cтены)");
}

public class_38(id)
{
g_snip[id] = true
drop_primary_weapons(id)
give_item(id, "weapon_awp")
cs_set_user_bpammo(id, CSW_AWP, 30)
give_item(id, "weapon_scout")
cs_set_user_bpammo(id, CSW_SCOUT, 30)
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Снайnер !t(+Пушки снaйnep. & 2x Уpoн)");
}

public class_39(id)
{
g_gore[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Потрошuтель !t(3omбu)");
}

public class_40(id)
{
g_leech[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Цeлuтeль !t(Рег. 5% oт нaнec.ypoнa.)");
}

public class_41(id)
{
g_cd[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Хакер !t(Извл. CD-ROM у ZM)");
}

public class_42(id)
{
g_head[id] = true
set_user_hitzones(0, id, 2)
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Уворотлuв !t(Зapaж.тол.в голову)");
}

public class_43(id)
{
g_knock[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g wПушка-отброс !t(+Отл. дал. от оруж. ZM)");
}

public class_44(id)
{
g_collector[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Оружейнuк !t(Moж.тоск.неск.оруж))");
}

public class_45(id)
{
g_aurel[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Святоша !t(ZM megл.хоg.возлe тeбя)");
}

public class_46(id)
{
g_sthg[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Cкpuтuй !t(Cкpыт ауpой)");
}

public class_47(id)
{
g_neut[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Нейтрализатор !t(Нейтрализ. инфец. грену)");
}

public class_48(id)
{
g_smoker[id] = true
chat_color(id, "!g[ZP] !yВаш Класс для этого раунда:!g Дыmщuк !t(+Коrgа зaрaж.пол.gыmaв.)");
}


stock chat_color(const id, const input[], any:...)
{
static msg[191]
vformat(msg, 190, input, 3)

replace_all(msg, 190, "!g", "^4")
replace_all(msg, 190, "!y", "^1")
replace_all(msg, 190, "!t", "^3")
replace_all(msg, 190, "!c", "^0")

message_begin(MSG_ONE_UNRELIABLE, g_SayText, _, id)
write_byte(id)
write_string(msg)
message_end()
}

public pfn_touch(ptr, ptd)
{
new bomb = find_ent_by_model(-1,"weaponbox","models/w_backpack.mdl")
entity_set_string(bomb,EV_SZ_classname,"bomb")

if(ptr > 0 && ptd > 0 && is_valid_ent(ptr) && is_user_alive(ptd) && zp_get_user_zombie(ptd) && !zp_get_user_nemesis(ptd))
{
new bomb[32]
entity_get_string(ptr, EV_SZ_classname, bomb, 31)
if (equal(bomb,"bomb"))
{
set_user_health(ptd, (get_user_health(ptd)) - 500)
new bOrigin[3]
get_user_origin(ptd, bOrigin, 0)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_EXPLOSION)
write_coord(bOrigin[0])
write_coord(bOrigin[1])
write_coord(bOrigin[2])
write_short(boomsprite)
write_byte(30)
write_byte(15)
write_byte(0)
message_end()
remove_entity(ptr)
}
}
}

public disinfect(id)
{
zp_disinfect_user(id)
got_class[id] = true
}

public nemesize(id)
{
zp_make_user_nemesis(id)
set_task(8.0, "zombify", id)
}

public zombify(id)
{
set_task(0.1, "disinfect", id)
set_task(0.2, "make_zomb", id)
g_mutant[id] = false
}

public survivorize(id)
{
zp_make_user_survivor(id)
set_user_health(id, 1000)
}

public make_zomb(id)
{
zp_infect_user(id)
}

public stealthize(id)
{
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,127)
set_task(1.0, "unstealthize", id)
}

public unstealthize(id)
{
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,255)
}

public fw_Knife_PrimaryAttack_Post(knife)
{
static id
id = get_pdata_cbase(knife, m_pPlayer, 4)
if(g_samurai[id])
{
static Float:flRate
flRate = 0.1

set_pdata_float(knife, m_flNextPrimaryAttack, flRate, 4)
set_pdata_float(knife, m_flNextSecondaryAttack, flRate, 4)
set_pdata_float(knife, m_flTimeWeaponIdle, flRate, 4)
}
return HAM_IGNORED
}

public fw_Knife_SecondaryAttack_Post(knife)
{
static id
id = get_pdata_cbase(knife, m_pPlayer, 4)

if(g_samurai[id])
{
static Float:flRate
flRate = 0.3

set_pdata_float(knife, m_flNextPrimaryAttack, flRate, 4)
set_pdata_float(knife, m_flNextSecondaryAttack, flRate, 4)
set_pdata_float(knife, m_flTimeWeaponIdle, flRate, 4)
}
return HAM_IGNORED
}

public showStatus(id)
{
if(is_user_connected(id) && zp_get_user_zombie(id))
{
new pid = read_data(2)
if(g_tremor[pid] == true)
{
shake(id)
}
if(g_flasher[pid] == true)
{
blind(id)
}
if(g_dis[pid] == true)
{
user_slap(id, 0, 1)
}
if(g_cd[pid] == true)
{
client_cmd(id, "cd eject")
}
}

if(!is_user_bot(id) && is_user_connected(id) && g_spy[id] == true)
{
new zmb = read_data(2)
if(g_spy[id] == true && zp_get_user_zombie(zmb))
{
new hp = get_user_health(zmb)
new ap = zp_get_user_ammo_packs(zmb)
new zm = zp_get_zombie_count()
new name[32]
get_user_name(zmb,name,31)
set_hudmessage(0, 255, 0, -1.0, 0.1, 0, 2.0, 1.5, 0.1, 0.2, 13)
ShowSyncHudMsg(id, g_status_sync, "HUK: %s^nЖuзнu: %i^nПAKU: %i^nBcero зomбapeu: %i", name, hp, ap, zm)
}
}
}

public zp_user_last_human(id)
{
if(g_srv[id] == true)
set_task(1.0, "survivorize", id)
}

public noclip(id)
{
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,127)
set_user_noclip(id,1)
set_task(15.0, "clipno", id)
}

public clipno(id)
{
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,255)
set_user_noclip(id,0)
}

public fw_FMPrecacheEvent( Type , const szName[] )
{
for ( new i = 0 ; i < sizeof( g_GunEvents ) ; ++i )
{
if (equal(g_GunEvents[i] , szName))
{
g_GunEventBits |= (1 << get_orig_retval());
return FMRES_HANDLED;
}
}

return FMRES_IGNORED;
}

public fw_FMPlaybackEvent(Flags , Invoker , EventID )
{
if (!( g_GunEventBits & ( 1 << EventID ) ) || !IsPlayer(Invoker))
return FMRES_IGNORED;

static Float:fVelocity[ 3 ];
static iOrigin[ 3 ] , Float:fOrigin[ 3 ];
static iAimOrigin[ 3 ] , Float:fAimOrigin[ 3 ];

get_user_origin( Invoker , iOrigin );
get_user_origin( Invoker , iAimOrigin , 3 );

IVecFVec( iOrigin , fOrigin );
IVecFVec( iAimOrigin , fAimOrigin );

if (( -80.0 >= GetAngleOrigins( fOrigin , fAimOrigin ) >= -90.0 ) && g_pogo[Invoker] == true)
{
pev( Invoker , pev_velocity , fVelocity );
fVelocity[ 2 ] = 220.0
set_pev( Invoker , pev_velocity , fVelocity );

SetPogo(Invoker);

entity_set_float( g_TouchGroundEnt , EV_FL_nextthink , get_gametime() + 0.25 );

return FMRES_IGNORED;
}

return FMRES_HANDLED;
}

public fw_Think(Entity)
{
if( Entity != g_TouchGroundEnt )
return FMRES_IGNORED;

static id;

for (id = 1 ; id <= g_iMaxPlayers ; id++)
if (IsPogo(id) && ((pev(id , pev_flags) & FL_ONGROUND) || !is_user_alive(id)))
RemovePogo(id);

if (g_bIsPogo)
entity_set_float(g_TouchGroundEnt , EV_FL_nextthink , get_gametime() + 0.25 );

return FMRES_IGNORED;
}

Float: GetAngleOrigins(const Float:fOrigin1[3] , const Float:fOrigin2[3])
{
new Float:fVector[3] , Float:fAngle[3];

xs_vec_sub(fOrigin2 , fOrigin1 , fVector);
vector_to_angle(fVector , fAngle);

return ( ( fAngle[ 0 ] > 90.0 ) ? -( 360.0 - fAngle[ 0 ] ) : fAngle[ 0 ] );
}

public fw_PlayerKilled_Pre(iVictim, iAttacker, iShouldGib)
{
if(zp_get_user_zombie(iVictim) && g_gore[iAttacker])
{
SetHamParamInteger(3, 2)
}
}

public fw_PlayerKilled_Post(iVictim, iAttacker, iShouldGib)
{
if(zp_get_user_zombie(iVictim) && g_gore[iAttacker])
{
SetHamParamInteger(3, 2)
}
}

public Event_Damage()
{
new victim = read_data(0)
new attacker = get_user_attacker(victim)

if (zp_get_user_zombie(victim) && victim != attacker && g_leech[attacker] && is_user_alive(attacker) && is_user_alive(victim))
{
new damage = read_data(2)
set_user_health(attacker, (get_user_health(attacker) + damage/20))
}

if(zp_get_user_zombie(victim) && victim != attacker && g_knock[attacker])
{
new Float:vec[3];
new Float:oldvelo[3];
get_user_velocity(victim, oldvelo);
create_velocity_vector(victim , attacker , vec);
vec[0] += oldvelo[0];
vec[1] += oldvelo[1];
set_user_velocity(victim , vec);
}
}

stock fm_get_entity_distance(ent1, ent2)
{
return floatround(fm_entity_range(ent1, ent2))
}

stock Float:fm_entity_range(ent1, ent2) {
new Float:origin1[3], Float:origin2[3];
pev(ent1, pev_origin, origin1);
pev(ent2, pev_origin, origin2);

return get_distance_f(origin1, origin2);
}

stock create_velocity_vector(victim,attacker,Float:velocity[3])
{
if(!zp_get_user_zombie(victim) || !is_user_alive(attacker))
return 0;

new Float:vicorigin[3];
new Float:attorigin[3];
entity_get_vector(victim , EV_VEC_origin , vicorigin);
entity_get_vector(attacker , EV_VEC_origin , attorigin);

new Float:origin2[3]
origin2[0] = vicorigin[0] - attorigin[0];
origin2[1] = vicorigin[1] - attorigin[1];

new Float:largestnum = 0.0;

if(floatabs(origin2[0])>largestnum) largestnum = floatabs(origin2[0]);
if(floatabs(origin2[1])>largestnum) largestnum = floatabs(origin2[1]);

origin2[0] /= largestnum;
origin2[1] /= largestnum;

velocity[0] = ( origin2[0] * 30000 ) / get_entity_distance(victim , attacker);
velocity[1] = ( origin2[1] * 30000 ) / get_entity_distance(victim , attacker);
if(velocity[0] <= 20.0 || velocity[1] <= 20.0)
velocity[2] = random_float(200.0 , 275.0);

return 1;
}

public FM_Touch_hook(weaponbox,id)
{
if(is_user_alive(id) && !is_user_bot(id) && g_collector[id] == true && pev_valid(weaponbox))
{
static classname[64], trash[4]
pev(weaponbox,pev_classname,classname,63)
if(equali(classname,"weaponbox"))
{
pev(weaponbox,pev_model,classname,63)
replace(classname,63,"w_"," ")
replace(classname,63,".mdl","")
strbreak(classname,trash,3,classname,63)
format(classname,63,"weapon_%s",classname)

new ent = engfunc(EngFunc_FindEntityByString,g_iMaxPlayers,"classname",classname)
while(ent && pev_valid(ent))
{
if(pev(ent,pev_owner)==weaponbox)
{
give_item(id,classname)
static classname2[32]
pev(ent,pev_classname,classname2,31)

if(pev_valid(weaponbox)) engfunc(EngFunc_RemoveEntity,weaponbox)
if(pev_valid(ent)) engfunc(EngFunc_RemoveEntity,ent)
}
ent = engfunc(EngFunc_FindEntityByString,ent,"classname",classname)
}
}
}
}

!
Предупреждение:
Используй спойлер. Читай правила форума. +25%


Отредактировал: MaZzai, - 12.12.2011, 19:08
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: