Advertisement
Guest User

Untitled

a guest
Sep 19th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.43 KB | None | 0 0
  1.  
  2. /* Plugin generated by AMXX-Studio */
  3.  
  4. #include <amxmodx>
  5. #include <amxmisc>
  6. #include <hamsandwich>
  7. #include <cstrike>
  8. #include <fakemeta_util>
  9.  
  10. #define PLUGIN "JailBreak Manager"
  11. #define VERSION "1.8"
  12. #define AUTHOR "Sn!ff3r"
  13.  
  14. #define USERTASK 921
  15. #define USERTASK2 721
  16. #define UPDATEDELAY 1.0
  17. #define OFFSET_TEAM 114
  18. #define fm_cs_set_user_nobuy(%1) set_pdata_int(%1, 235, get_pdata_int(%1, 235) & ~(1<<0))
  19.  
  20. #define TERRMODEL "wiezien"
  21. #define CTMODEL "straznik"
  22.  
  23. new static reasons[][] = {
  24. "uz grazias akis",
  25. "uz masturbacija parduotuveje",
  26. "uz seneliu tvirkinima",
  27. "prostitucija",
  28. "vagyste"
  29. }
  30.  
  31.  
  32. new wanted[512]
  33. new cvar_countdays, cvar_terroinfo, cvar_winmessages, cvar_models, cvar_fists, cvar_wanted, cvar_revolt, cvar_stripweapons, cvar_maxcts, cvar_nobuy, cvar_crowbar, cvar_playerinfo
  34. new days, hudmessage, hudmessage2, hudmessage3, hudmessage4, nowanted, crowbaruser
  35. new userreason[33], bool:changedModel[33 char]
  36. new bool:revolt_started, StatusText, terronum, terroalive, bool:disabled_weapons
  37.  
  38. new static fist_models[][] = { "models/p_bknuckles.mdl", "models/v_bknuckles.mdl" }
  39. new static crowbar_models[][] = { "models/p_crowbar.mdl", "models/v_crowbar.mdl" }
  40. new static fist_sounds[][] = { "weapons/cbar_hitbod2.wav", "weapons/cbar_hitbod1.wav", "weapons/bullet_hit1.wav", "weapons/bullet_hit2.wav" }
  41.  
  42. new weapons[][] = {
  43. "weaponbox",
  44. "armoury_entity",
  45. "weapon_shield"
  46. }
  47.  
  48. public plugin_init()
  49. {
  50. register_plugin(PLUGIN, VERSION, AUTHOR)
  51.  
  52. register_clcmd("chooseteam", "client_chooseteam")
  53.  
  54. register_logevent("round_end", 2, "1=Round_End")
  55.  
  56. register_event("TextMsg","restart_roundsnum","a","2&#Game_C"/*,"2&#Game_w"*/)
  57. register_event("CurWeapon", "CurWeapon", "be", "1=1", "2=29")
  58. register_event("HLTV", "new_round", "a", "1=0", "2=0")
  59. register_event("DeathMsg","client_death","a")
  60. register_event("StatusValue", "showStatus", "be", "1=2", "2!0")
  61. register_event("StatusValue", "hideStatus", "be", "1=1", "2=0")
  62.  
  63. register_message(get_user_msgid("TextMsg") ,"TextMsg")
  64. register_message(get_user_msgid("ShowMenu"), "ShowMenu")
  65. register_message(get_user_msgid("VGUIMenu"), "VGUIMenu")
  66. register_message(get_user_msgid("StatusIcon") , "StatusIcon")
  67.  
  68. register_forward(FM_SetClientKeyValue,"SetClientKeyValue")
  69. register_forward(FM_EmitSound, "EmitSound")
  70.  
  71. RegisterHam(Ham_Spawn, "player", "client_spawn", 1)
  72. RegisterHam(Ham_TakeDamage, "player", "client_damage")
  73.  
  74. for(new slot = 0; slot < sizeof weapons; slot++) {
  75. RegisterHam(Ham_Touch, weapons[slot], "WeapEntTouch")
  76. disabled_weapons = true
  77. }
  78.  
  79. hudmessage = CreateHudSyncObj()
  80. hudmessage2 = CreateHudSyncObj()
  81. hudmessage3 = CreateHudSyncObj()
  82. hudmessage4 = CreateHudSyncObj()
  83.  
  84. StatusText = get_user_msgid("StatusText")
  85.  
  86. cvar_countdays = register_cvar("jailbreak_countdays", "1")
  87. cvar_terroinfo = register_cvar("jailbreak_terroinfo", "1")
  88. cvar_winmessages = register_cvar("jailbreak_winmessages", "1")
  89. cvar_models = register_cvar("jailbreak_newmodels", "1")
  90. cvar_fists = register_cvar("jailbreak_fists", "1")
  91. cvar_wanted = register_cvar("jailbreak_wanted", "1")
  92. cvar_revolt = register_cvar("jailbreak_revolt", "1")
  93. cvar_stripweapons = register_cvar("jailbreak_stripweapons", "1")
  94. cvar_maxcts = register_cvar("jailbreak_maxcts", "4")
  95. cvar_nobuy = register_cvar("jailbreak_blockbuy", "1")
  96. cvar_crowbar = register_cvar("jailbreak_terrocrowbar", "1")
  97. cvar_playerinfo = register_cvar("jailbreak_playerinfo", "1")
  98. }
  99.  
  100. public plugin_cfg()
  101. {
  102. static cfgdir[32]
  103. get_configsdir(cfgdir, charsmax(cfgdir))
  104. server_cmd("exec %s/jailbreak.cfg", cfgdir)
  105. }
  106.  
  107. public plugin_precache()
  108. {
  109. static modelname[128], i
  110.  
  111. formatex(modelname, 127, "models/player/%s/%s.mdl",TERRMODEL, TERRMODEL)
  112. engfunc(EngFunc_PrecacheModel, modelname)
  113.  
  114. formatex(modelname, 127, "models/player/%s/%s.mdl", CTMODEL, CTMODEL)
  115. engfunc(EngFunc_PrecacheModel, modelname)
  116.  
  117. for(i = 0; i < sizeof fist_models; i++)
  118. engfunc(EngFunc_PrecacheModel,fist_models[i])
  119.  
  120. for(i = 0; i < sizeof fist_sounds; i++)
  121. engfunc(EngFunc_PrecacheSound,fist_sounds[i])
  122.  
  123. for(i = 0; i < sizeof crowbar_models; i++)
  124. engfunc(EngFunc_PrecacheModel,crowbar_models[i])
  125. }
  126.  
  127. public round_end()
  128. {
  129. days ++
  130.  
  131. if(get_pcvar_num(cvar_stripweapons)) {
  132. static players[32], inum, i
  133. get_players(players, inum, "ah")
  134. for (i = 0; i < inum; ++i)
  135. if(cs_get_user_team(players[i]) == CS_TEAM_T) fm_strip_user_weapons(players[i])
  136.  
  137. disabled_weapons = true
  138. }
  139. }
  140.  
  141. public restart_roundsnum()
  142. {
  143. days = 0
  144. }
  145.  
  146. public new_round()
  147. {
  148. formatex(wanted, 511, "Nei vienas nera ieskomas")
  149.  
  150. update_terro()
  151.  
  152. nowanted = true
  153. revolt_started = false
  154. crowbaruser = 0
  155.  
  156. if(get_pcvar_num(cvar_crowbar)) set_task(5.0, "random_crowbar")
  157. }
  158.  
  159. public random_crowbar()
  160. {
  161. static players[32], inum, id
  162. get_players(players, inum, "ahe", "TERRORIST")
  163.  
  164. if(inum) {
  165. id = players[random(inum)]
  166.  
  167. set_hudmessage(random_num(0,255), random_num(0,255), random_num(0,255), -1.0, 0.3, 2, 0.5, 5.0)
  168. ShowSyncHudMsg(id, hudmessage3, "= Tu gavai lauztuva = ")
  169.  
  170. crowbaruser = id
  171.  
  172. CurWeapon(id)
  173. }
  174. }
  175.  
  176. public TextMsg(iMsgid, iDest, id)
  177. {
  178. if(get_pcvar_num(cvar_winmessages)) {
  179. static message[32]
  180. get_msg_arg_string(2, message, charsmax(message))
  181.  
  182. if(equal(message, "#Terrorists_Win")) set_msg_arg_string(2, "Kaliniai laimejo!")
  183. else if(equal(message, "#CTs_Win")) set_msg_arg_string(2, "Priziuretojai laimejo!")
  184. }
  185. }
  186.  
  187. public StatusIcon(iMsgid, iDest, id)
  188. {
  189. if(get_pcvar_num(cvar_nobuy)) {
  190. static szIcon[5]
  191. get_msg_arg_string(2, szIcon, 4)
  192. if(szIcon[0] == 'b' && szIcon[2] == 'y' && szIcon[3] == 'z') {
  193. if(get_msg_arg_int(1)) {
  194. fm_cs_set_user_nobuy(id)
  195. return PLUGIN_HANDLED
  196. }
  197. }
  198. }
  199. return PLUGIN_CONTINUE
  200. }
  201.  
  202. public SetClientKeyValue(id, const infobuffer[], const key[])
  203. {
  204. return equal(key,"model") && changedModel{id} ? FMRES_SUPERCEDE : FMRES_IGNORED
  205. }
  206.  
  207. public CurWeapon(id)
  208. {
  209. if(is_user_alive(id)) {
  210. if(get_pcvar_num(cvar_fists) && id != crowbaruser) {
  211. set_pev(id, pev_viewmodel2, fist_models[1])
  212. set_pev(id, pev_weaponmodel2, fist_models[0])
  213. }
  214. else if(get_pcvar_num(cvar_crowbar) && id == crowbaruser) {
  215. set_pev(id, pev_viewmodel2, crowbar_models[1])
  216. set_pev(id, pev_weaponmodel2, crowbar_models[0])
  217. }
  218. }
  219. }
  220.  
  221. public EmitSound(id, channel, sample[])
  222. {
  223. if(get_pcvar_num(cvar_fists)) {
  224. if(is_user_alive(id)) {
  225. if(equal(sample, "weapons/knife_", 14)) {
  226. if(equal(sample, "weapons/knife_hit", 17)) {
  227. emit_sound(id, CHAN_WEAPON, "weapons/bullet_hit2.wav", random_float(0.5, 1.0), ATTN_NORM, 0, PITCH_NORM)
  228. return FMRES_SUPERCEDE
  229. }
  230. else if(equal(sample,"weapons/knife_stab.wav")) {
  231. emit_sound(id, CHAN_WEAPON, "weapons/cbar_hitbod2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  232. return FMRES_SUPERCEDE
  233. }
  234. else if(equal(sample,"weapons/knife_hitwall1.wav")) {
  235. emit_sound(id, CHAN_WEAPON, "weapons/cbar_hitbod1.wav", 1.0, ATTN_NORM, 0, PITCH_LOW)
  236. return FMRES_SUPERCEDE
  237. }
  238. }
  239. }
  240. }
  241. return FMRES_IGNORED
  242. }
  243.  
  244. public showStatus(id)
  245. {
  246. if(get_pcvar_num(cvar_playerinfo)) {
  247. if(is_user_alive(id)) {
  248. static name[33], pid
  249. pid = read_data(2)
  250.  
  251. get_user_name(pid, name, 32)
  252.  
  253. switch(cs_get_user_team(pid)) {
  254. case CS_TEAM_T: {
  255. set_hudmessage(100, 255, 0, -1.0, 0.80, 0, 0.01, 3.0, 0.01, 0.01, -1)
  256. ShowSyncHudMsg(id, hudmessage4, "Kalinys: %s [%d HP]", name, get_user_health(pid))
  257.  
  258. }
  259. case CS_TEAM_CT: {
  260. set_hudmessage(0, 255, 100, -1.0, 0.80, 0, 0.01, 3.0, 0.01, 0.01, -1)
  261. ShowSyncHudMsg(id, hudmessage4, "Priziuretojas: %s [%d HP]", name, get_user_health(pid))
  262. }
  263. }
  264. }
  265. }
  266. }
  267.  
  268. public hideStatus(id)
  269. {
  270. if(get_pcvar_num(cvar_playerinfo)) ClearSyncHud(id, hudmessage4)
  271. }
  272.  
  273. public start_revolt()
  274. {
  275. set_hudmessage(random_num(0,255), random_num(0,255), random_num(0,255), -1.0, 0.3, 2, 0.5, 5.0)
  276. ShowSyncHudMsg(0, hudmessage3, "= Kaliniai pradejo maistauti ! =")
  277. client_cmd(0,"speak ambience/siren")
  278.  
  279. set_task(8.0, "stop_sound", 0)
  280.  
  281. revolt_started = true
  282. }
  283.  
  284. public ShowMenu(iMsgid, iDest, id)
  285. {
  286. static code[32]
  287. get_msg_arg_string(4, code, charsmax(code))
  288. if(equal(code, "#Team_Select") || equal(code, "#IG_Team_Select") && cs_get_user_team(id) != CS_TEAM_CT) {
  289. static ctcount
  290. ctcount = active_players(CS_TEAM_CT)
  291.  
  292. if(ctcount >= get_pcvar_num(cvar_maxcts)) {
  293. static param[2]
  294. param[0] = iMsgid
  295. set_task(0.1, "join_terrorist", id, param, sizeof(param))
  296. return PLUGIN_HANDLED
  297. }
  298. }
  299. return PLUGIN_CONTINUE
  300. }
  301.  
  302. public VGUIMenu(iMsgid, iDest, id)
  303. {
  304. if(get_msg_arg_int(1) != 2) return PLUGIN_CONTINUE
  305.  
  306. static ctcount
  307. ctcount = active_players(CS_TEAM_CT)
  308.  
  309. if(ctcount >= get_pcvar_num(cvar_maxcts) && cs_get_user_team(id) != CS_TEAM_CT) {
  310. static param[2]
  311. param[0] = iMsgid
  312. set_task(0.1, "join_terrorist", id, param, sizeof(param))
  313.  
  314. return PLUGIN_HANDLED
  315. }
  316. return PLUGIN_CONTINUE
  317. }
  318.  
  319. public join_terrorist(param[], id)
  320. {
  321. handle_join(id, param[0], /*CS_TEAM_T*/ 1)
  322. set_task(5.0, "check_valid_team", id)
  323. }
  324.  
  325. public check_valid_team(id)
  326. {
  327. if(cs_get_user_team(id) != CS_TEAM_T) cs_set_user_team(id, CS_TEAM_T)
  328. }
  329.  
  330. public client_connect(id)
  331. {
  332. client_cmd(id, "hud_centerid 0")
  333. }
  334.  
  335. public client_chooseteam(id)
  336. {
  337. static ctcount
  338. ctcount = active_players(CS_TEAM_CT)
  339.  
  340. if(ctcount >= get_pcvar_num(cvar_maxcts) && cs_get_user_team(id) == CS_TEAM_T) {
  341. client_print(id, print_chat, "= Tu esi kalinys ir negalima pakeisti komandos")
  342. return PLUGIN_HANDLED
  343. }
  344. return PLUGIN_CONTINUE
  345. }
  346.  
  347. public client_damage(victim, entid, attacker, Float:damage, damagebits)
  348. {
  349. if(!is_user_connected(victim) || !is_user_connected(attacker))
  350. return HAM_IGNORED
  351.  
  352. if(get_pcvar_num(cvar_revolt)) {
  353. if(cs_get_user_team(attacker) == CS_TEAM_T && cs_get_user_team(victim) == CS_TEAM_CT) {
  354. if(!revolt_started) start_revolt()
  355. }
  356. }
  357. if(get_pcvar_num(cvar_crowbar)) {
  358. if(cs_get_user_team(attacker) == CS_TEAM_T && attacker == crowbaruser) {
  359. damage *= 50.0
  360. SetHamParamFloat(4, damage)
  361. return HAM_OVERRIDE
  362. }
  363. }
  364. return HAM_IGNORED
  365. }
  366.  
  367. public client_spawn(id)
  368. {
  369. if(get_pcvar_num(cvar_countdays)) {
  370. set_hudmessage(random_num(0,255), random_num(0,255), random_num(0,255), -1.0, 0.3, 2, 0.5, 5.0)
  371.  
  372. ShowSyncHudMsg(id, hudmessage3, "= Diena %d = ", days)
  373. }
  374. if(get_pcvar_num(cvar_terroinfo)) {
  375. if(task_exists(id + USERTASK)) remove_task(id + USERTASK)
  376.  
  377. if(cs_get_user_team(id) == CS_TEAM_T) {
  378. userreason[id] = random_num(0, sizeof reasons - 1)
  379.  
  380. set_task(UPDATEDELAY, "client_jailinfo", id + USERTASK, _, _, "b")
  381. }
  382. }
  383. if(get_pcvar_num(cvar_wanted)) {
  384. if(task_exists(id + USERTASK2)) remove_task(id + USERTASK2)
  385. if(cs_get_user_team(id) == CS_TEAM_CT) set_task(UPDATEDELAY, "client_wantedinfo", id + USERTASK2, _, _, "b")
  386.  
  387. update_terro()
  388. }
  389.  
  390. if(get_pcvar_num(cvar_models)) {
  391. static CsTeams:team
  392. team = cs_get_user_team(id)
  393.  
  394. if(team == CS_TEAM_T) {
  395. set_user_model(id, TERRMODEL)
  396. changedModel{id} = true
  397. }
  398. else if (team == CS_TEAM_CT) {
  399. set_user_model(id, CTMODEL)
  400. changedModel{id} = true
  401. }
  402. }
  403. if(get_pcvar_num(cvar_stripweapons)) set_task(0.1, "give_weapons", id)
  404. }
  405.  
  406. public give_weapons(id)
  407. {
  408. if(is_user_alive(id)) {
  409. fm_strip_user_weapons(id)
  410. fm_give_item(id, "weapon_knife")
  411.  
  412. if(cs_get_user_team(id) == CS_TEAM_CT) {
  413. switch(random_num(0,3)) {
  414. case 0: {
  415. fm_give_item(id, "weapon_m3")
  416. cs_set_user_bpammo(id, CSW_M3, 120)
  417. }
  418. case 1: {
  419. fm_give_item(id, "weapon_mp5navy")
  420. cs_set_user_bpammo(id, CSW_MP5NAVY, 120)
  421. }
  422. case 2: {
  423. fm_give_item(id, "weapon_xm1014")
  424. cs_set_user_bpammo(id, CSW_XM1014, 120)
  425. }
  426. case 3: {
  427. fm_give_item(id, "weapon_mac10")
  428. cs_set_user_bpammo(id, CSW_MAC10, 120)
  429. }
  430. }
  431.  
  432. fm_give_item(id, "weapon_usp")
  433. cs_set_user_bpammo(id, CSW_USP, 100)
  434. }
  435. }
  436. disabled_weapons = false
  437. }
  438.  
  439. public WeapEntTouch(this, idother)
  440. {
  441. if(disabled_weapons)
  442. return HAM_SUPERCEDE
  443.  
  444. static model[33]
  445. pev(this, pev_model, model, 32)
  446.  
  447. if(equal(model, "models/w_glock18.mdl")) {
  448. if(pev_valid(this)) {
  449. fm_remove_weaponbox(this)
  450. return HAM_SUPERCEDE
  451. }
  452. }
  453.  
  454. return HAM_IGNORED
  455. }
  456.  
  457. public client_disconnect(id)
  458. {
  459. userreason[id] = -1
  460.  
  461. if(task_exists(id + USERTASK)) remove_task(id + USERTASK)
  462.  
  463. changedModel{id} = false
  464. }
  465.  
  466. public client_death()
  467. {
  468. if(get_pcvar_num(cvar_wanted)) {
  469. static victim, killer
  470. victim = read_data(2)
  471. killer = read_data(1)
  472.  
  473. if(is_user_connected(victim) && is_user_connected(killer)) {
  474.  
  475. if(cs_get_user_team(victim) == CS_TEAM_CT && cs_get_user_team(killer) == CS_TEAM_T) {
  476. static name[33]
  477. get_user_name(killer, name, charsmax(name))
  478.  
  479. if(contain(wanted, name) == -1) {
  480. if(nowanted) replace_all(wanted, 511, "Nei vienas nera ieskomas", "")
  481. replace_all(wanted, charsmax(wanted), "Ieskomi kaliniai: ^n", "")
  482.  
  483. format(wanted, charsmax(wanted), "Ieskomi kaliniai: ^n%s^n%s", wanted, name)
  484.  
  485. nowanted = false
  486. }
  487. }
  488.  
  489. if(cs_get_user_team(victim) == CS_TEAM_T) {
  490. static name[33]
  491. get_user_name(victim, name, charsmax(name))
  492.  
  493. if(contain(wanted, name) != -1) {
  494. static buffer[64]
  495. formatex(buffer, charsmax(buffer), "^n%s", name)
  496. replace_all(wanted, charsmax(wanted), buffer, "")
  497.  
  498. if(strlen(wanted) < 20) {
  499. formatex(wanted, 511, "Nei vienas nera ieskomas")
  500. nowanted = true
  501. }
  502. }
  503. update_terro()
  504. }
  505. }
  506. }
  507. }
  508.  
  509. public client_jailinfo(TASKID)
  510. {
  511. static id
  512. id = TASKID - USERTASK
  513.  
  514. set_hudmessage(0, 255, 0, 0.8, 0.1, 0, 6.0, 12.0)
  515.  
  516. ShowSyncHudMsg(id, hudmessage, "Diena %d | Tu esi kaleime uz : %s.", days, reasons[userreason[id]])
  517. }
  518.  
  519. public client_wantedinfo(TASKID)
  520. {
  521. static id
  522. id = TASKID - USERTASK2;
  523.  
  524. (nowanted) ? set_hudmessage(255, 255, 255, 0.01, 0.4, 0, 0.5, UPDATEDELAY) : set_hudmessage(255, 0, 0, 0.01, 0.4, 2, 0.5, UPDATEDELAY)
  525.  
  526. ShowSyncHudMsg(id, hudmessage2, "%s", wanted)
  527.  
  528. static text[128]
  529. formatex(text,127,"Kaliniai: %d alive, %d total", terroalive, terronum)
  530.  
  531. message_begin(MSG_ONE_UNRELIABLE, StatusText, {0,0,0}, id)
  532. write_byte(0)
  533. write_string(text)
  534. message_end()
  535. }
  536.  
  537. public stop_sound(id)
  538. {
  539. client_cmd(id, "stopsound")
  540. }
  541.  
  542. stock set_user_model(id,model[])
  543. {
  544. engfunc(EngFunc_SetClientKeyValue, id, engfunc(EngFunc_GetInfoKeyBuffer,id), "model", model)
  545. }
  546.  
  547. stock active_players(CsTeams:team, bool:aliveonly = false)
  548. {
  549. static players[32], inum, i, active, CsTeams:playerteam
  550.  
  551. (aliveonly) ? get_players(players, inum, "ah") : get_players(players, inum, "h")
  552.  
  553. active = 0
  554.  
  555. for (i = 0; i < inum; ++i)
  556. {
  557. playerteam = cs_get_user_team(players[i])
  558. if(playerteam == team) active++
  559. }
  560. return active
  561. }
  562.  
  563. stock handle_join(id, iMsgid, iTeam)
  564. {
  565. static iMsgBlock
  566. iMsgBlock = get_msg_block(iMsgid)
  567. set_msg_block(iMsgid, BLOCK_SET)
  568.  
  569. static team[2]
  570. num_to_str(iTeam, team, charsmax(team))
  571.  
  572. engclient_cmd(id, "jointeam", team)
  573. engclient_cmd(id, "joinclass", "1")
  574.  
  575. set_msg_block(iMsgid, iMsgBlock)
  576.  
  577. client_print(id, print_chat, "=prison: Tu negali pakeisti komandos.")
  578. }
  579.  
  580. stock update_terro()
  581. {
  582. terronum = active_players(CS_TEAM_T, false)
  583. terroalive = active_players(CS_TEAM_T, true)
  584. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement