hlmod.hu
https://hlmod.hu/

Jailbreak, nem lehet beállni egyik csapatba sem
https://hlmod.hu/viewtopic.php?f=9&t=11599
Oldal: 1 / 1

Szerző:  laki5000 [ 2013.11.04. 17:29 ]
Hozzászólás témája:  Jailbreak, nem lehet beállni egyik csapatba sem

Hello. valaki segítene? Ez egy jail break mod (nem eredeti, az eredeti cuccosok át vannak írva) van bele rakva pár dolog, aztán mióta meg csináltuk a new hp = get_user_healt(id) és new ap = get_user_armor(id)-t, nem lehet beállni se T be se CT be. mi a baj? Már ki lett belőle véve azóta sok minden de nem sikerült megcsinálni.

SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <amxmodx>
  3. #include <amxmisc>
  4. #include <engine>
  5. #include <fakemeta>
  6. #include <hamsandwich>
  7. #include <fun>
  8. #include <cstrike>
  9.  
  10. #define PLUGIN_NAME "JailBreak Extreme"
  11. #define PLUGIN_AUTHOR "JoRoPiTo"
  12. #define PLUGIN_VERSION "1.9"
  13. #define PLUGIN_CVAR "jbextreme"
  14.  
  15. #define TASK_STATUS 2487000
  16. #define TASK_FREEDAY 2487100
  17. #define TASK_ROUND 2487200
  18. #define TASK_HELP 2487300
  19. #define TASK_SAFETIME 2487400
  20. #define TASK_FREEEND 2487500
  21. #define TEAM_MENU "#Team_Select_Spect"
  22. #define TEAM_MENU2 "#Team_Select_Spect"
  23. #define HUD_DELAY Float:4.0
  24. #define CELL_RADIUS Float:200.0
  25.  
  26. #define get_bit(%1,%2) ( %1 & 1 << ( %2 & 31 ) )
  27. #define set_bit(%1,%2) %1 |= ( 1 << ( %2 & 31 ) )
  28. #define clear_bit(%1,%2) %1 &= ~( 1 << ( %2 & 31 ) )
  29.  
  30. #define vec_len(%1) floatsqroot(%1[0] * %1[0] + %1[1] * %1[1] + %1[2] * %1[2])
  31. #define vec_mul(%1,%2) ( %1[0] *= %2, %1[1] *= %2, %1[2] *= %2)
  32. #define vec_copy(%1,%2) ( %2[0] = %1[0], %2[1] = %1[1],%2[2] = %1[2])
  33.  
  34. // Offsets
  35. #define m_iPrimaryWeapon 116
  36. #define m_iVGUI 510
  37. #define m_fGameHUDInitialized 349
  38. #define m_fNextHudTextArgsGameTime 198
  39.  
  40. enum _hud { _hudsync, Float:_x, Float:_y, Float:_time }
  41. enum _lastrequest { _knife, _deagle, _freeday, _weapon }
  42. enum _duel { _name[16], _csw, _entname[32], _opt[32], _sel[32] }
  43.  
  44. new gp_PrecacheSpawn
  45. new gp_PrecacheKeyValue
  46.  
  47. new gp_CrowbarMax
  48. new gp_CrowbarMul
  49. new gp_TeamRatio
  50. new gp_CtMax
  51. new gp_BoxMax
  52. new gp_TalkMode
  53. new gp_VoiceBlock
  54. new gp_RetryTime
  55. new gp_RoundMax
  56. new gp_ButtonShoot
  57. new gp_SimonSteps
  58. new gp_SimonRandom
  59. new gp_GlowModels
  60. new gp_AutoLastresquest
  61. new gp_LastRequest
  62. new gp_Motd
  63. new gp_SpectRounds
  64. new gp_NosimonRounds
  65. new gp_AutoOpen
  66. new gp_TeamChange
  67.  
  68. new g_MaxClients
  69. new g_MsgStatusText
  70. new g_MsgStatusIcon
  71. new g_MsgVGUIMenu
  72. new g_MsgShowMenu
  73. new g_MsgClCorpse
  74. new g_MsgMOTD
  75.  
  76. new gc_TalkMode
  77. new gc_VoiceBlock
  78. new gc_SimonSteps
  79. new gc_ButtonShoot
  80. new Float:gc_CrowbarMul
  81.  
  82. // Precache
  83. new const _FistModels[][] = { "models/p_bknuckles.mdl", "models/v_bknuckles.mdl" }
  84. new const _CrowbarModels[][] = { "models/p_crowbar.mdl", "models/v_crowbar.mdl" }
  85. new const _FistSounds[][] = { "weapons/cbar_hitbod2.wav", "weapons/cbar_hitbod1.wav", "weapons/bullet_hit1.wav", "weapons/bullet_hit2.wav" }
  86. new const _RemoveEntities[][] = {
  87. "func_hostage_rescue", "info_hostage_rescue", "func_bomb_target", "info_bomb_target",
  88. "hostage_entity", "info_vip_start", "func_vip_safetyzone", "func_escapezone"
  89. }
  90.  
  91. new const _WeaponsFree[][] = { "weapon_scout", "weapon_deagle", "weapon_mac10", "weapon_elite", "weapon_ak47", "weapon_m4a1", "weapon_mp5navy", "weapon_awp", "weapon_p90" }
  92. new const _WeaponsFreeCSW[] = { CSW_SCOUT, CSW_DEAGLE, CSW_MAC10, CSW_ELITE, CSW_AK47, CSW_M4A1, CSW_MP5NAVY, CSW_AWP, CSW_P90 }
  93. new const _WeaponsFreeAmmo[] = { 90, 35, 100, 120, 90, 90, 120, 90, 90 }
  94.  
  95. new const _Duel[][_duel] =
  96. {
  97. { "Deagle", CSW_DEAGLE, "weapon_deagle", "JBE_MENU_LASTREQ_OPT3", "JBE_MENU_LASTREQ_SEL3" },
  98. { "Scout", CSW_SCOUT, "weapon_scout", "JBE_MENU_LASTREQ_OPT4", "JBE_MENU_LASTREQ_SEL4" },
  99. { "Grenades", CSW_HEGRENADE, "weapon_hegrenade", "JBE_MENU_LASTREQ_OPT5", "JBE_MENU_LASTREQ_SEL5" },
  100. { "Awp", CSW_AWP, "weapon_awp", "JBE_MENU_LASTREQ_OPT6", "JBE_MENU_LASTREQ_SEL6" },
  101. { "AK47", CSW_AK47, "weapon_ak47", "JBE_MENU_LASTREQ_OPT7", "JBE_MENU_LASTREQ_SEL7" },
  102. { "M4A1", CSW_M4A1, "weapon_m4a1", "JBE_MENU_LASTREQ_OPT8", "JBE_MENU_LASTREQ_SEL8" }
  103. }
  104.  
  105. // Reasons
  106. new const g_Reasons[][] = {
  107. "",
  108. "JBE_PRISONER_REASON_1",
  109. "JBE_PRISONER_REASON_2",
  110. "JBE_PRISONER_REASON_3",
  111. "JBE_PRISONER_REASON_4",
  112. "JBE_PRISONER_REASON_5",
  113. "JBE_PRISONER_REASON_6"
  114. }
  115.  
  116. // HudSync: 0=ttinfo / 1=info / 2=simon / 3=ctinfo / 4=player / 5=day / 6=center / 7=help / 8=timer
  117. new const g_HudSync[][_hud] =
  118. {
  119. {0, 0.6, 0.2, 2.0},
  120. {0, -1.0, 0.7, 5.0},
  121. {0, 0.1, 0.2, 2.0},
  122. {0, 0.1, 0.3, 2.0},
  123. {0, -1.0, 0.9, 3.0},
  124. {0, 0.6, 0.1, 3.0},
  125. {0, -1.0, 0.6, 3.0},
  126. {0, 0.8, 0.3, 20.0},
  127. {0, -1.0, 0.4, 3.0}
  128. }
  129.  
  130. // Colors: 0:Simon / 1:Freeday / 2:CT Duel / 3:TT Duel
  131. new const g_Colors[][3] = { {0, 200, 0}, {200, 100, 0}, {0, 0, 200}, {200, 0, 0} }
  132.  
  133.  
  134. new CsTeams:g_PlayerTeam[33]
  135. new Float:g_SimonRandom
  136. new Trie:g_CellManagers
  137. new g_HelpText[512]
  138. new g_JailDay
  139. new g_PlayerJoin
  140. new g_PlayerReason[33]
  141. new g_PlayerSpect[33]
  142. new g_PlayerSimon[33]
  143. new g_PlayerNomic
  144. new g_PlayerWanted
  145. new g_PlayerCrowbar
  146. new g_PlayerRevolt
  147. new g_PlayerHelp
  148. new g_PlayerFreeday
  149. new g_PlayerLast
  150. new g_FreedayAuto
  151. new g_FreedayNext
  152. new g_TeamCount[CsTeams]
  153. new g_TeamAlive[CsTeams]
  154. new g_BoxStarted
  155. new g_CrowbarCount
  156. new g_Simon
  157. new g_SimonAllowed
  158. new g_SimonTalking
  159. new g_SimonVoice
  160. new g_RoundStarted
  161. new g_LastDenied
  162. new g_Freeday
  163. new g_BlockWeapons
  164. new g_RoundEnd
  165. new g_Duel
  166. new g_DuelA
  167. new g_DuelB
  168. new g_SafeTime
  169. new g_Buttons[10]
  170.  
  171. public plugin_init()
  172. {
  173. unregister_forward(FM_Spawn, gp_PrecacheSpawn)
  174. unregister_forward(FM_KeyValue, gp_PrecacheKeyValue)
  175.  
  176. register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
  177. register_cvar(PLUGIN_CVAR, PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY)
  178.  
  179. register_dictionary("jbextreme.txt")
  180.  
  181. g_MsgStatusText = get_user_msgid("StatusText")
  182. g_MsgStatusIcon = get_user_msgid("StatusIcon")
  183. g_MsgVGUIMenu = get_user_msgid("VGUIMenu")
  184. g_MsgShowMenu = get_user_msgid("ShowMenu")
  185. g_MsgMOTD = get_user_msgid("MOTD")
  186. g_MsgClCorpse = get_user_msgid("ClCorpse")
  187.  
  188. register_message(g_MsgStatusText, "msg_statustext")
  189. register_message(g_MsgStatusIcon, "msg_statusicon")
  190. register_message(g_MsgVGUIMenu, "msg_vguimenu")
  191. register_message(g_MsgShowMenu, "msg_showmenu")
  192. register_message(g_MsgMOTD, "msg_motd")
  193. register_message(g_MsgClCorpse, "msg_clcorpse")
  194.  
  195. register_event("CurWeapon", "current_weapon", "be", "1=1", "2=29")
  196. register_event("StatusValue", "player_status", "be", "1=2", "2!0")
  197. register_event("StatusValue", "player_status", "be", "1=1", "2=0")
  198.  
  199. register_impulse(100, "impulse_100")
  200.  
  201. RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
  202. RegisterHam(Ham_TakeDamage, "player", "player_damage")
  203. RegisterHam(Ham_TraceAttack, "player", "player_attack")
  204. RegisterHam(Ham_TraceAttack, "func_button", "button_attack")
  205. RegisterHam(Ham_Killed, "player", "player_killed", 1)
  206. RegisterHam(Ham_Touch, "weapon_hegrenade", "player_touchweapon")
  207. RegisterHam(Ham_Touch, "weaponbox", "player_touchweapon")
  208. RegisterHam(Ham_Touch, "armoury_entity", "player_touchweapon")
  209.  
  210. register_forward(FM_SetClientKeyValue, "set_client_kv")
  211. register_forward(FM_EmitSound, "sound_emit")
  212. register_forward(FM_Voice_SetClientListening, "voice_listening")
  213. register_forward(FM_CmdStart, "player_cmdstart", 1)
  214.  
  215. register_logevent("round_end", 2, "1=Round_End")
  216. register_logevent("round_first", 2, "0=World triggered", "1&Restart_Round_")
  217. register_logevent("round_first", 2, "0=World triggered", "1=Game_Commencing")
  218. register_logevent("round_start", 2, "0=World triggered", "1=Round_Start")
  219.  
  220. register_menucmd(register_menuid(TEAM_MENU), 51, "team_select")
  221. register_menucmd(register_menuid(TEAM_MENU2), 51, "team_select")
  222.  
  223. register_clcmd("+simonvoice", "cmd_voiceon")
  224. register_clcmd("-simonvoice", "cmd_voiceoff")
  225.  
  226. register_clcmd("say /fd", "cmd_freeday")
  227. register_clcmd("say /duel", "cmd_lastrequest")
  228. register_clcmd("say /simon", "cmd_simon")
  229. register_clcmd("say /open", "cmd_open")
  230. register_clcmd("say /nomic", "cmd_nomic")
  231. register_clcmd("say /box", "cmd_box")
  232. register_clcmd("say /help", "cmd_help")
  233.  
  234. register_clcmd("jbe_freeday", "adm_freeday", ADMIN_KICK)
  235. register_concmd("jbe_nomic", "adm_nomic", ADMIN_KICK)
  236. register_concmd("jbe_open", "adm_open", ADMIN_KICK)
  237. register_concmd("jbe_box", "adm_box", ADMIN_KICK)
  238.  
  239. gp_GlowModels = register_cvar("jbe_glowmodels", "0")
  240. gp_SimonSteps = register_cvar("jbe_simonsteps", "1")
  241. gp_CrowbarMul = register_cvar("jbe_crowbarmultiplier", "25.0")
  242. gp_CrowbarMax = register_cvar("jbe_maxcrowbar", "1")
  243. gp_TeamRatio = register_cvar("jbe_teamratio", "3")
  244. gp_TeamChange = register_cvar("jbe_teamchange", "0") // 0-disable team change for tt / 1-enable team change
  245. gp_CtMax = register_cvar("jbe_maxct", "6")
  246. gp_BoxMax = register_cvar("jbe_boxmax", "6")
  247. gp_RetryTime = register_cvar("jbe_retrytime", "10.0")
  248. gp_RoundMax = register_cvar("jbe_freedayround", "240.0")
  249. gp_AutoLastresquest = register_cvar("jbe_autolastrequest", "1")
  250. gp_LastRequest = register_cvar("jbe_lastrequest", "1")
  251. gp_Motd = register_cvar("jbe_motd", "0")
  252. gp_SpectRounds = register_cvar("jbe_spectrounds", "3")
  253. gp_NosimonRounds = register_cvar("jbe_nosimonrounds", "7")
  254. gp_SimonRandom = register_cvar("jbe_randomsimon", "0")
  255. gp_AutoOpen = register_cvar("jbe_autoopen", "1")
  256. gp_TalkMode = register_cvar("jbe_talkmode", "2") // 0-alltak / 1-tt talk / 2-tt no talk
  257. gp_VoiceBlock = register_cvar("jbe_blockvoice", "2") // 0-dont block / 1-block voicerecord / 2-block voicerecord except simon
  258. gp_ButtonShoot = register_cvar("jbe_buttonshoot", "1") // 0-standard / 1-func_button shoots!
  259.  
  260. g_MaxClients = get_global_int(GL_maxClients)
  261.  
  262. for(new i = 0; i < sizeof(g_HudSync); i++)
  263. g_HudSync[i][_hudsync] = CreateHudSyncObj()
  264.  
  265. formatex(g_HelpText, charsmax(g_HelpText), "%L^n^n%L^n^n%L^n^n%L",
  266. LANG_SERVER, "JBE_HELP_TITLE",
  267. LANG_SERVER, "JBE_HELP_BINDS",
  268. LANG_SERVER, "JBE_HELP_GUARD_CMDS")
  269.  
  270. setup_buttons()
  271. }
  272.  
  273. public plugin_precache()
  274. {
  275. static i
  276. precache_model("models/player/hyperkocka_c/hyperkocka_c.mdl")
  277. precache_model("models/player/hyperkocka_c/hyperkocka_cT.mdl")
  278. precache_model("models/player/hyperkockaterror/hyperkockaterror.mdl")
  279.  
  280. for(i = 0; i < sizeof(_FistModels); i++)
  281. precache_model(_FistModels[i])
  282.  
  283. for(i = 0; i < sizeof(_CrowbarModels); i++)
  284. precache_model(_CrowbarModels[i])
  285.  
  286. for(i = 0; i < sizeof(_FistSounds); i++)
  287. precache_sound(_FistSounds[i])
  288.  
  289. precache_sound("jbextreme/nm_goodbadugly.wav")
  290. precache_sound("jbextreme/brass_bell_C.wav")
  291.  
  292. g_CellManagers = TrieCreate()
  293. gp_PrecacheSpawn = register_forward(FM_Spawn, "precache_spawn", 1)
  294. gp_PrecacheKeyValue = register_forward(FM_KeyValue, "precache_keyvalue", 1)
  295. }
  296.  
  297. public precache_spawn(ent)
  298. {
  299. if(is_valid_ent(ent))
  300. {
  301. static szClass[33]
  302. entity_get_string(ent, EV_SZ_classname, szClass, sizeof(szClass))
  303. for(new i = 0; i < sizeof(_RemoveEntities); i++)
  304. if(equal(szClass, _RemoveEntities[i]))
  305. remove_entity(ent)
  306. }
  307. }
  308.  
  309. public precache_keyvalue(ent, kvd_handle)
  310. {
  311. static info[32]
  312. if(!is_valid_ent(ent))
  313. return FMRES_IGNORED
  314.  
  315. get_kvd(kvd_handle, KV_ClassName, info, charsmax(info))
  316. if(!equal(info, "multi_manager"))
  317. return FMRES_IGNORED
  318.  
  319. get_kvd(kvd_handle, KV_KeyName, info, charsmax(info))
  320. TrieSetCell(g_CellManagers, info, ent)
  321. return FMRES_IGNORED
  322. }
  323.  
  324. public client_putinserver(id)
  325. {
  326. clear_bit(g_PlayerJoin, id)
  327. clear_bit(g_PlayerHelp, id)
  328. clear_bit(g_PlayerCrowbar, id)
  329. clear_bit(g_PlayerNomic, id)
  330. clear_bit(g_PlayerWanted, id)
  331. clear_bit(g_SimonTalking, id)
  332. clear_bit(g_SimonVoice, id)
  333. g_PlayerSpect[id] = 0
  334. g_PlayerSimon[id] = 0
  335. }
  336.  
  337. public client_disconnect(id)
  338. {
  339. if(g_Simon == id)
  340. {
  341. g_Simon = 0
  342. ClearSyncHud(0, g_HudSync[2][_hudsync])
  343. player_hudmessage(0, 2, 5.0, _, "%L", LANG_SERVER, "JBE_SIMON_HASGONE")
  344. }
  345. else if(g_PlayerLast == id || (g_Duel && (id == g_DuelA || id == g_DuelB)))
  346. {
  347. g_Duel = 0
  348. g_DuelA = 0
  349. g_DuelB = 0
  350. g_LastDenied = 0
  351. g_BlockWeapons = 0
  352. g_PlayerLast = 0
  353. }
  354. team_count()
  355. }
  356.  
  357. public client_PostThink(id)
  358. {
  359. if(id != g_Simon || !gc_SimonSteps || !is_user_alive(id) ||
  360. !(entity_get_int(id, EV_INT_flags) & FL_ONGROUND) || entity_get_int(id, EV_ENT_groundentity))
  361. return PLUGIN_CONTINUE
  362.  
  363. static Float:origin[3]
  364. static Float:last[3]
  365.  
  366. entity_get_vector(id, EV_VEC_origin, origin)
  367. if(get_distance_f(origin, last) < 32.0)
  368. {
  369. return PLUGIN_CONTINUE
  370. }
  371.  
  372. vec_copy(origin, last)
  373. if(entity_get_int(id, EV_INT_bInDuck))
  374. origin[2] -= 18.0
  375. else
  376. origin[2] -= 36.0
  377.  
  378.  
  379. message_begin(MSG_BROADCAST, SVC_TEMPENTITY, {0,0,0}, 0)
  380. write_byte(TE_WORLDDECAL)
  381. write_coord(floatround(origin[0]))
  382. write_coord(floatround(origin[1]))
  383. write_coord(floatround(origin[2]))
  384. write_byte(105)
  385. message_end()
  386.  
  387. return PLUGIN_CONTINUE
  388. }
  389.  
  390.  
  391. public msg_statustext(msgid, dest, id)
  392. {
  393. return PLUGIN_HANDLED
  394. }
  395.  
  396. public msg_statusicon(msgid, dest, id)
  397. {
  398. static icon[5]
  399. get_msg_arg_string(2, icon, charsmax(icon))
  400. if(icon[0] == 'b' && icon[2] == 'y' && icon[3] == 'z')
  401. {
  402. set_pdata_int(id, 235, get_pdata_int(id, 235) & ~(1<<0))
  403. return PLUGIN_HANDLED
  404. }
  405.  
  406. return PLUGIN_CONTINUE
  407. }
  408.  
  409. public msg_vguimenu(msgid, dest, id)
  410. {
  411. static msgarg1
  412. static CsTeams:team
  413.  
  414. msgarg1 = get_msg_arg_int(1)
  415. if(msgarg1 == 2)
  416. {
  417. team = cs_get_user_team(id)
  418. if((team == CS_TEAM_T) && !is_user_admin(id) && (is_user_alive(id) || !get_pcvar_num(gp_TeamChange)))
  419. {
  420. client_print(id, print_center, "%L", LANG_SERVER, "JBE_TEAM_CANTCHANGE")
  421. return PLUGIN_HANDLED
  422. }
  423. show_menu(id, 51, TEAM_MENU, -1)
  424. return PLUGIN_HANDLED
  425. }
  426.  
  427. return PLUGIN_CONTINUE
  428. }
  429.  
  430. public msg_showmenu(msgid, dest, id)
  431. {
  432. static msgarg1, roundloop
  433. static CsTeams:team
  434. msgarg1 = get_msg_arg_int(1)
  435.  
  436. if(msgarg1 != 531 && msgarg1 != 563)
  437. return PLUGIN_CONTINUE
  438.  
  439. roundloop = floatround(get_pcvar_float(gp_RetryTime) / 2)
  440. team = cs_get_user_team(id)
  441.  
  442. if(team == CS_TEAM_T)
  443. {
  444. if(!is_user_admin(id) && (is_user_alive(id) || (g_RoundStarted >= roundloop) || !get_pcvar_num(gp_TeamChange)))
  445. {
  446. client_print(id, print_center, "%L", LANG_SERVER, "JBE_TEAM_CANTCHANGE")
  447. return PLUGIN_HANDLED
  448. }
  449. else
  450. {
  451. show_menu(id, 51, TEAM_MENU, -1)
  452. return PLUGIN_HANDLED
  453. }
  454. }
  455. else
  456. {
  457. show_menu(id, 51, TEAM_MENU, -1)
  458. return PLUGIN_HANDLED
  459. }
  460.  
  461. return PLUGIN_CONTINUE
  462. }
  463.  
  464. public msg_motd(msgid, dest, id)
  465. {
  466. if(get_pcvar_num(gp_Motd))
  467. return PLUGIN_HANDLED
  468.  
  469. return PLUGIN_CONTINUE
  470. }
  471.  
  472. public msg_clcorpse(msgid, dest, id)
  473. {
  474. return PLUGIN_HANDLED
  475. }
  476.  
  477. public current_weapon(id)
  478. {
  479. if(!is_user_alive(id))
  480. return PLUGIN_CONTINUE
  481.  
  482. if(get_bit(g_PlayerCrowbar, id))
  483. {
  484. set_pev(id, pev_viewmodel2, _CrowbarModels[1])
  485. set_pev(id, pev_weaponmodel2, _CrowbarModels[0])
  486. }
  487. else
  488. {
  489. set_pev(id, pev_viewmodel2, _FistModels[1])
  490. set_pev(id, pev_weaponmodel2, _FistModels[0])
  491. }
  492. return PLUGIN_CONTINUE
  493. }
  494.  
  495. //public player_status(id)
  496. //{
  497. // static type, player, CsTeams:team, name[32], health
  498. // type = read_data(1)
  499. // player = read_data(2)
  500. // switch(type)
  501. // {
  502. // case(1):
  503. // {
  504. // ClearSyncHud(id, g_HudSync[1][_hudsync])
  505. // }
  506. // case(2):
  507. // {
  508. // team = cs_get_user_team(player)
  509. // if((team != CS_TEAM_T) && (team != CS_TEAM_CT))
  510. // return PLUGIN_HANDLED
  511. //
  512. // health = get_user_health(player)
  513. // get_user_name(player, name, charsmax(name))
  514. // //player_hudmessage(id, 4, 2.0, {0, 255, 0}, "%L", LANG_SERVER,
  515. // //(team == CS_TEAM_T) ? "JBE_PRISONER_STATUS" : "JBE_GUARD_STATUS", name, health)
  516. // }
  517. // }
  518. //
  519. // return PLUGIN_HANDLED
  520. //}
  521.  
  522. public impulse_100(id)
  523. {
  524. if(cs_get_user_team(id) == CS_TEAM_T)
  525. return PLUGIN_HANDLED
  526.  
  527. return PLUGIN_CONTINUE
  528. }
  529.  
  530. public player_spawn(id)
  531. {
  532. static CsTeams:team
  533.  
  534. if(!is_user_connected(id))
  535. return HAM_IGNORED
  536.  
  537. set_pdata_float(id, m_fNextHudTextArgsGameTime, get_gametime() + 999999.0)
  538. give_item(id, "weapon_knife")
  539. if(g_RoundEnd)
  540. {
  541. g_RoundEnd = 0
  542. g_JailDay++
  543. }
  544.  
  545. set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
  546.  
  547. clear_bit(g_PlayerCrowbar, id)
  548. clear_bit(g_PlayerWanted, id)
  549. team = cs_get_user_team(id)
  550.  
  551. switch(team)
  552. {
  553. case(CS_TEAM_T):
  554. {
  555. g_PlayerLast = 0
  556. if(!g_PlayerReason[id])
  557. g_PlayerReason[id] = random_num(1, 6)
  558.  
  559. player_hudmessage(id, 0, 5.0, {255, 0, 255}, "%L %L", LANG_SERVER, "JBE_PRISONER_REASON",
  560. LANG_SERVER, g_Reasons[g_PlayerReason[id]])
  561.  
  562. set_user_info(id, "model", "hyperkockaterror")
  563. entity_set_int(id, EV_INT_body, 2)
  564. if(is_freeday() || get_bit(g_FreedayAuto, id))
  565. {
  566. freeday_set(0, id)
  567. clear_bit(g_FreedayAuto, id)
  568. }
  569. else
  570. {
  571. entity_set_int(id, EV_INT_skin, random_num(0, 2))
  572. }
  573.  
  574. if(g_CrowbarCount < get_pcvar_num(gp_CrowbarMax))
  575. {
  576. if(random_num(0, g_MaxClients) > (g_MaxClients / 2))
  577. {
  578. g_CrowbarCount++
  579. set_bit(g_PlayerCrowbar, id)
  580. }
  581. }
  582. cs_set_user_armor(id, 0, CS_ARMOR_NONE)
  583. }
  584. case(CS_TEAM_CT):
  585. {
  586. g_PlayerSimon[id]++
  587. set_user_info(id, "model", "hyperkocka_c")
  588. entity_set_int(id, EV_INT_body, 3)
  589. cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM)
  590. }
  591. }
  592. first_join(id)
  593. return HAM_IGNORED
  594. }
  595.  
  596. public player_damage(victim, ent, attacker, Float:damage, bits)
  597. {
  598. if(!is_user_connected(victim) || !is_user_connected(attacker) || victim == attacker)
  599. return HAM_IGNORED
  600.  
  601. switch(g_Duel)
  602. {
  603. case(0):
  604. {
  605. if(attacker == ent && get_user_weapon(attacker) == CSW_KNIFE && get_bit(g_PlayerCrowbar, attacker) && cs_get_user_team(victim) != CS_TEAM_T)
  606. {
  607. SetHamParamFloat(4, damage * gc_CrowbarMul)
  608. return HAM_OVERRIDE
  609. }
  610. }
  611. case(2):
  612. {
  613. if(attacker != g_PlayerLast)
  614. return HAM_SUPERCEDE
  615. }
  616. default:
  617. {
  618. if((victim == g_DuelA && attacker == g_DuelB) || (victim == g_DuelB && attacker == g_DuelA))
  619. return HAM_IGNORED
  620.  
  621. return HAM_SUPERCEDE
  622. }
  623. }
  624.  
  625. return HAM_IGNORED
  626. }
  627.  
  628. public player_attack(victim, attacker, Float:damage, Float:direction[3], tracehandle, damagebits)
  629. {
  630. static CsTeams:vteam, CsTeams:ateam
  631. if(!is_user_connected(victim) || !is_user_connected(attacker) || victim == attacker)
  632. return HAM_IGNORED
  633.  
  634. vteam = cs_get_user_team(victim)
  635. ateam = cs_get_user_team(attacker)
  636.  
  637. if(ateam == CS_TEAM_CT && vteam == CS_TEAM_CT)
  638. return HAM_SUPERCEDE
  639.  
  640. switch(g_Duel)
  641. {
  642. case(0):
  643. {
  644. if(ateam == CS_TEAM_CT && vteam == CS_TEAM_T)
  645. {
  646. if(get_bit(g_PlayerRevolt, victim))
  647. {
  648. clear_bit(g_PlayerRevolt, victim)
  649. hud_status(0)
  650. }
  651. return HAM_IGNORED
  652. }
  653. }
  654. case(2):
  655. {
  656. if(attacker != g_PlayerLast)
  657. return HAM_SUPERCEDE
  658. }
  659. default:
  660. {
  661. if((victim == g_DuelA && attacker == g_DuelB) || (victim == g_DuelB && attacker == g_DuelA))
  662. return HAM_IGNORED
  663.  
  664. return HAM_SUPERCEDE
  665. }
  666. }
  667.  
  668. if(ateam == CS_TEAM_T && vteam == CS_TEAM_T && !g_BoxStarted)
  669. return HAM_SUPERCEDE
  670.  
  671. if(ateam == CS_TEAM_T && vteam == CS_TEAM_CT)
  672. {
  673. if(!g_PlayerRevolt)
  674. revolt_start()
  675.  
  676. set_bit(g_PlayerRevolt, attacker)
  677. }
  678.  
  679. return HAM_IGNORED
  680. }
  681.  
  682. public button_attack(button, id, Float:damage, Float:direction[3], tracehandle, damagebits)
  683. {
  684. if(is_valid_ent(button) && gc_ButtonShoot)
  685. {
  686. ExecuteHamB(Ham_Use, button, id, 0, 2, 1.0)
  687. entity_set_float(button, EV_FL_frame, 0.0)
  688. }
  689.  
  690. return HAM_IGNORED
  691. }
  692.  
  693. public player_killed(victim, attacker, shouldgib)
  694. {
  695. static CsTeams:vteam, CsTeams:kteam
  696. if(!(0 < attacker <= g_MaxClients) || !is_user_connected(attacker))
  697. kteam = CS_TEAM_UNASSIGNED
  698. else
  699. kteam = cs_get_user_team(attacker)
  700.  
  701. vteam = cs_get_user_team(victim)
  702. if(g_Simon == victim)
  703. {
  704. g_Simon = 0
  705. ClearSyncHud(0, g_HudSync[2][_hudsync])
  706. player_hudmessage(0, 2, 5.0, _, "%L", LANG_SERVER, "JBE_SIMON_KILLED")
  707. }
  708.  
  709. switch(g_Duel)
  710. {
  711. case(0):
  712. {
  713. switch(vteam)
  714. {
  715. case(CS_TEAM_CT):
  716. {
  717. if(kteam == CS_TEAM_T && !get_bit(g_PlayerWanted, attacker))
  718. {
  719. set_bit(g_PlayerWanted, attacker)
  720. entity_set_int(attacker, EV_INT_skin, 4)
  721. }
  722. }
  723. case(CS_TEAM_T):
  724. {
  725. clear_bit(g_PlayerRevolt, victim)
  726. clear_bit(g_PlayerWanted, victim)
  727. }
  728. }
  729. }
  730. default:
  731. {
  732. if(g_Duel != 2 && (attacker == g_DuelA || attacker == g_DuelB))
  733. {
  734. set_user_rendering(victim, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
  735. set_user_rendering(attacker, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
  736. g_Duel = 0
  737. g_LastDenied = 0
  738. g_BlockWeapons = 0
  739. g_PlayerLast = 0
  740. team_count()
  741. }
  742. }
  743. }
  744. hud_status(0)
  745. return HAM_IGNORED
  746. }
  747.  
  748. public player_touchweapon(id, ent)
  749. {
  750. static model[32], class[32]
  751. if(g_BlockWeapons)
  752. return HAM_SUPERCEDE
  753.  
  754. if(is_valid_ent(id) && g_Duel != 6 && is_user_alive(ent) && cs_get_user_team(ent) == CS_TEAM_CT)
  755. {
  756. entity_get_string(id, EV_SZ_model, model, charsmax(model))
  757. if(model[7] == 'w' && model[9] == 'h' && model[10] == 'e' && model[11] == 'g')
  758. {
  759. entity_get_string(id, EV_SZ_classname, class, charsmax(class))
  760. if(equal(class, "weapon_hegrenade"))
  761. remove_entity(id)
  762.  
  763. return HAM_SUPERCEDE
  764. }
  765.  
  766. }
  767.  
  768. return HAM_IGNORED
  769. }
  770.  
  771. public set_client_kv(id, const info[], const key[])
  772. {
  773. if(equal(key, "model"))
  774. return FMRES_SUPERCEDE
  775.  
  776. return FMRES_IGNORED
  777. }
  778.  
  779. public sound_emit(id, channel, sample[])
  780. {
  781. if(is_user_alive(id) && equal(sample, "weapons/knife_", 14))
  782. {
  783. switch(sample[17])
  784. {
  785. case('b'):
  786. {
  787. emit_sound(id, CHAN_WEAPON, "weapons/cbar_hitbod2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  788. }
  789. case('w'):
  790. {
  791. emit_sound(id, CHAN_WEAPON, "weapons/cbar_hitbod1.wav", 1.0, ATTN_NORM, 0, PITCH_LOW)
  792. }
  793. case('1', '2'):
  794. {
  795. emit_sound(id, CHAN_WEAPON, "weapons/bullet_hit2.wav", random_float(0.5, 1.0), ATTN_NORM, 0, PITCH_NORM)
  796. }
  797. }
  798. return FMRES_SUPERCEDE
  799. }
  800. return FMRES_IGNORED
  801. }
  802.  
  803. public voice_listening(receiver, sender, bool:listen)
  804. {
  805. if((receiver == sender))
  806. return FMRES_IGNORED
  807.  
  808. if(is_user_admin(sender))
  809. {
  810. engfunc(EngFunc_SetClientListening, receiver, sender, true)
  811. return FMRES_SUPERCEDE
  812. }
  813.  
  814. switch(gc_VoiceBlock)
  815. {
  816. case(2):
  817. {
  818. if((sender != g_Simon) && (!get_bit(g_SimonVoice, sender) && gc_VoiceBlock))
  819. {
  820. engfunc(EngFunc_SetClientListening, receiver, sender, false)
  821. return FMRES_SUPERCEDE
  822. }
  823. }
  824. case(1):
  825. {
  826. if(!get_bit(g_SimonVoice, sender) && gc_VoiceBlock)
  827. {
  828. engfunc(EngFunc_SetClientListening, receiver, sender, false)
  829. return FMRES_SUPERCEDE
  830. }
  831. }
  832. }
  833. if(!is_user_alive(sender))
  834. {
  835. engfunc(EngFunc_SetClientListening, receiver, sender, false)
  836. return FMRES_SUPERCEDE
  837. }
  838.  
  839. if(sender == g_Simon)
  840. {
  841. engfunc(EngFunc_SetClientListening, receiver, sender, true)
  842. return FMRES_SUPERCEDE
  843. }
  844.  
  845. listen = true
  846.  
  847. if(g_SimonTalking && (sender != g_Simon))
  848. {
  849. listen = false
  850. }
  851. else
  852. {
  853. static CsTeams:steam
  854. steam = cs_get_user_team(sender)
  855. switch(gc_TalkMode)
  856. {
  857. case(2):
  858. {
  859. listen = (steam == CS_TEAM_CT)
  860. }
  861. case(1):
  862. {
  863. listen = (steam == CS_TEAM_CT || steam == CS_TEAM_T)
  864. }
  865. }
  866. }
  867.  
  868. engfunc(EngFunc_SetClientListening, receiver, sender, listen)
  869. return FMRES_SUPERCEDE
  870. }
  871.  
  872. public player_cmdstart(id, uc, random)
  873. {
  874. if(g_Duel > 3)
  875. {
  876. cs_set_user_bpammo(id, _Duel[g_Duel - 4][_csw], 1)
  877. }
  878. }
  879.  
  880. public round_first()
  881. {
  882. g_JailDay = 0
  883. for(new i = 1; i <= g_MaxClients; i++)
  884. g_PlayerSimon[i] = 0
  885.  
  886. set_cvar_num("sv_alltalk", 1)
  887. set_cvar_num("mp_roundtime", 2)
  888. set_cvar_num("mp_limitteams", 0)
  889. set_cvar_num("mp_autoteambalance", 0)
  890. set_cvar_num("mp_tkpunish", 0)
  891. set_cvar_num("mp_friendlyfire", 1)
  892. round_end()
  893. }
  894.  
  895. public round_end()
  896. {
  897. static CsTeams:team
  898. static maxnosimon, spectrounds
  899. g_SafeTime = 0
  900. g_PlayerRevolt = 0
  901. g_PlayerFreeday = 0
  902. g_PlayerLast = 0
  903. g_BoxStarted = 0
  904. g_CrowbarCount = 0
  905. g_Simon = 0
  906. g_SimonAllowed = 0
  907. g_RoundStarted = 0
  908. g_LastDenied = 0
  909. g_BlockWeapons = 0
  910. g_TeamCount[CS_TEAM_T] = 0
  911. g_TeamCount[CS_TEAM_CT] = 0
  912. g_Freeday = 0
  913. g_FreedayNext = (random_num(0,99) >= 95)
  914. g_RoundEnd = 1
  915. g_Duel = 0
  916.  
  917. remove_task(TASK_STATUS)
  918. remove_task(TASK_FREEDAY)
  919. remove_task(TASK_FREEEND)
  920. remove_task(TASK_ROUND)
  921. maxnosimon = get_pcvar_num(gp_NosimonRounds)
  922. spectrounds = get_pcvar_num(gp_SpectRounds)
  923. for(new i = 1; i <= g_MaxClients; i++)
  924. {
  925. if(!is_user_connected(i))
  926. continue
  927.  
  928. menu_cancel(i)
  929. team = cs_get_user_team(i)
  930. give_item(i, "weapon_knife")
  931. switch(team)
  932. {
  933. case(CS_TEAM_CT):
  934. {
  935. if(g_PlayerSimon[i] > maxnosimon)
  936. {
  937. cmd_nomic(i)
  938. }
  939. }
  940. case(CS_TEAM_SPECTATOR,CS_TEAM_UNASSIGNED):
  941. {
  942. g_PlayerSpect[i]++
  943. if(g_PlayerSpect[i] > spectrounds)
  944. {
  945. client_cmd(i, "disconnect")
  946. server_print("JBE Disconnected spectator client #%i", i)
  947. }
  948. else
  949. {
  950. show_menu(i, 51, TEAM_MENU, -1)
  951. }
  952. }
  953. }
  954. }
  955. for(new i = 0; i < sizeof(g_HudSync); i++)
  956. ClearSyncHud(0, g_HudSync[i][_hudsync])
  957.  
  958. }
  959.  
  960. public round_start(id)
  961. {
  962. if(g_RoundEnd)
  963. return
  964.  
  965. team_count()
  966. if(!g_Simon && is_freeday())
  967. {
  968. g_Freeday = 1
  969. emit_sound(0, CHAN_AUTO, "jbextreme/brass_bell_C.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  970. check_freeday(TASK_FREEDAY)
  971. }
  972. else
  973. {
  974. set_task(60.0, "check_freeday", TASK_FREEDAY)
  975. }
  976. set_task(HUD_DELAY, "hud_status", id, _, _, "b")
  977. set_task(get_pcvar_float(gp_RetryTime) + 1.0, "safe_time", TASK_SAFETIME)
  978. set_task(120.0, "freeday_end", TASK_FREEDAY)
  979. g_SimonRandom = get_pcvar_num(gp_SimonRandom) ? random_float(15.0, 45.0) : 0.0
  980. g_SimonAllowed = 1
  981. g_FreedayNext = 0
  982. player_strip_weapons_all()
  983. }
  984.  
  985. public cmd_voiceon(id)
  986. {
  987. client_cmd(id, "+voicerecord")
  988. set_bit(g_SimonVoice, id)
  989. if(g_Simon == id || is_user_admin(id))
  990. set_bit(g_SimonTalking, id)
  991.  
  992. return PLUGIN_HANDLED
  993. }
  994.  
  995. public cmd_voiceoff(id)
  996. {
  997. client_cmd(id, "-voicerecord")
  998. clear_bit(g_SimonVoice, id)
  999. if(g_Simon == id || is_user_admin(id))
  1000. clear_bit(g_SimonTalking, id)
  1001.  
  1002. return PLUGIN_HANDLED
  1003. }
  1004.  
  1005. public cmd_simon(id)
  1006. {
  1007. static CsTeams:team, name[32]
  1008. if(!is_user_connected(id))
  1009. return PLUGIN_HANDLED
  1010.  
  1011. team = cs_get_user_team(id)
  1012. if(g_SimonAllowed && !g_Freeday && is_user_alive(id) && team == CS_TEAM_CT && !g_Simon)
  1013. {
  1014. g_Simon = id
  1015. get_user_name(id, name, charsmax(name))
  1016. entity_set_int(id, EV_INT_body, 1)
  1017. g_PlayerSimon[id]--
  1018. if(get_pcvar_num(gp_GlowModels))
  1019. player_glow(id, g_Colors[0])
  1020.  
  1021. hud_status(0)
  1022. }
  1023. return PLUGIN_HANDLED
  1024. }
  1025.  
  1026. public cmd_open(id)
  1027. {
  1028. if(id == g_Simon)
  1029. jail_open()
  1030.  
  1031. return PLUGIN_HANDLED
  1032. }
  1033.  
  1034. public cmd_nomic(id)
  1035. {
  1036. static CsTeams:team
  1037. team = cs_get_user_team(id)
  1038. if(team == CS_TEAM_CT)
  1039. {
  1040. server_print("JBE Transfered guard to prisoners team client #%i", id)
  1041. if(g_Simon == id)
  1042. {
  1043. g_Simon = 0
  1044. player_hudmessage(0, 2, 5.0, _, "%L", LANG_SERVER, "JBE_SIMON_TRANSFERED")
  1045. }
  1046. if(!is_user_admin(id))
  1047. set_bit(g_PlayerNomic, id)
  1048.  
  1049. user_silentkill(id)
  1050. cs_set_user_team(id, CS_TEAM_T)
  1051. }
  1052. return PLUGIN_HANDLED
  1053. }
  1054.  
  1055. public cmd_box(id)
  1056. {
  1057. static i
  1058. if((id < 0) || (is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT))
  1059. {
  1060. if(g_TeamAlive[CS_TEAM_T] <= get_pcvar_num(gp_BoxMax) && g_TeamAlive[CS_TEAM_T] > 1)
  1061. {
  1062. for(i = 1; i <= g_MaxClients; i++)
  1063. if(is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_T)
  1064. set_user_health(i, 100)
  1065.  
  1066. set_cvar_num("mp_tkpunish", 0)
  1067. set_cvar_num("mp_friendlyfire", 1)
  1068. g_BoxStarted = 1
  1069. player_hudmessage(0, 1, 3.0, _, "%L", LANG_SERVER, "JBE_GUARD_BOX")
  1070. }
  1071. else
  1072. {
  1073. player_hudmessage(id, 1, 3.0, _, "%L", LANG_SERVER, "JBE_GUARD_CANTBOX")
  1074. }
  1075. }
  1076. return PLUGIN_HANDLED
  1077. }
  1078.  
  1079. public cmd_help(id)
  1080. {
  1081. if(id > g_MaxClients)
  1082. id -= TASK_HELP
  1083.  
  1084. remove_task(TASK_HELP + id)
  1085. switch(get_bit(g_PlayerHelp, id))
  1086. {
  1087. case(0):
  1088. {
  1089. set_bit(g_PlayerHelp, id)
  1090. player_hudmessage(id, 7, 15.0, {200, 100, 0}, "%s", g_HelpText)
  1091. set_task(15.0, "cmd_help", TASK_HELP + id)
  1092. }
  1093. default:
  1094. {
  1095. clear_bit(g_PlayerHelp, id)
  1096. ClearSyncHud(id, g_HudSync[7][_hudsync])
  1097. }
  1098. }
  1099. }
  1100.  
  1101. public cmd_freeday(id)
  1102. {
  1103. static menu, menuname[32], option[64]
  1104. if(!is_freeday() && ((is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT) || is_user_admin(id)))
  1105. {
  1106. formatex(menuname, charsmax(menuname), "%L", LANG_SERVER, "JBE_MENU_FREEDAY")
  1107. menu = menu_create(menuname, "freeday_choice")
  1108.  
  1109. formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_FREEDAY_PLAYER")
  1110. menu_additem(menu, option, "1", 0)
  1111.  
  1112. formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_FREEDAY_ALL")
  1113. menu_additem(menu, option, "2", 0)
  1114. menu_setprop(menu, MPROP_EXITNAME, "Kilépés \r[\yX\r]");
  1115. menu_setprop(menu, MPROP_BACKNAME, "Vissza \r[\y<=\r]");
  1116. menu_setprop(menu, MPROP_NEXTNAME, "Tovább \r[\y=>\r]");
  1117.  
  1118. menu_display(id, menu)
  1119. }
  1120. return PLUGIN_HANDLED
  1121. }
  1122.  
  1123. public cmd_freeday_player(id)
  1124. {
  1125. if((is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT) || is_user_admin(id))
  1126. menu_players(id, CS_TEAM_T, id, 1, "freeday_select", "%L", LANG_SERVER, "JBE_MENU_FREEDAY")
  1127.  
  1128. return PLUGIN_CONTINUE
  1129. }
  1130.  
  1131. public cmd_lastrequest(id)
  1132. {
  1133. static i, num[5], menu, menuname[32], option[64]
  1134. if(!get_pcvar_num(gp_LastRequest) || g_Freeday || g_LastDenied || id != g_PlayerLast || g_RoundEnd || get_bit(g_PlayerWanted, id) || get_bit(g_PlayerFreeday, id) || !is_user_alive(id))
  1135. return PLUGIN_CONTINUE
  1136.  
  1137. formatex(menuname, charsmax(menuname), "%L", LANG_SERVER, "JBE_MENU_LASTREQ")
  1138. menu = menu_create(menuname, "lastrequest_select")
  1139.  
  1140. formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_LASTREQ_OPT1")
  1141. menu_additem(menu, option, "1", 0)
  1142.  
  1143. formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_LASTREQ_OPT2")
  1144. menu_additem(menu, option, "2", 0)
  1145.  
  1146. for(i = 0; i < sizeof(_Duel); i++)
  1147. {
  1148. num_to_str(i + 4, num, charsmax(num))
  1149. formatex(option, charsmax(option), "%L", LANG_SERVER, _Duel[i][_opt])
  1150. menu_additem(menu, option, num, 0)
  1151. }
  1152.  
  1153.  
  1154. menu_setprop(menu, MPROP_EXITNAME, "Kilépés \r[\yX\r]");
  1155. menu_setprop(menu, MPROP_BACKNAME, "Vissza \r[\y<=\r]");
  1156. menu_setprop(menu, MPROP_NEXTNAME, "Tovább \r[\y=>\r]");
  1157.  
  1158. menu_display(id, menu)
  1159. return PLUGIN_CONTINUE
  1160. }
  1161.  
  1162. public adm_freeday(id)
  1163. {
  1164. static player, user[32]
  1165. if(!is_user_admin(id))
  1166. return PLUGIN_CONTINUE
  1167.  
  1168. read_argv(1, user, charsmax(user))
  1169. player = cmd_target(id, user, 2)
  1170. if(is_user_connected(player) && cs_get_user_team(player) == CS_TEAM_T)
  1171. {
  1172. freeday_set(id, player)
  1173. }
  1174. return PLUGIN_HANDLED
  1175. }
  1176.  
  1177. public adm_nomic(id)
  1178. {
  1179. static player, user[32]
  1180. if(id == 0 || is_user_admin(id))
  1181. {
  1182. read_argv(1, user, charsmax(user))
  1183. player = cmd_target(id, user, 3)
  1184. if(is_user_connected(player))
  1185. {
  1186. cmd_nomic(player)
  1187. }
  1188. }
  1189. return PLUGIN_HANDLED
  1190. }
  1191.  
  1192. public adm_open(id)
  1193. {
  1194. if(!is_user_admin(id))
  1195. return PLUGIN_CONTINUE
  1196.  
  1197. jail_open()
  1198. return PLUGIN_HANDLED
  1199. }
  1200.  
  1201. public adm_box(id)
  1202. {
  1203. if(!is_user_admin(id))
  1204. return PLUGIN_CONTINUE
  1205.  
  1206. cmd_box(-1)
  1207. return PLUGIN_HANDLED
  1208. }
  1209.  
  1210. public team_select(id, key)
  1211. {
  1212. static CsTeams:team, roundloop, admin
  1213.  
  1214. roundloop = get_pcvar_num(gp_RetryTime) / 2
  1215. team = cs_get_user_team(id)
  1216. admin = is_user_admin(id)
  1217. team_count()
  1218.  
  1219. if(!admin && (team == CS_TEAM_UNASSIGNED) && (g_RoundStarted >= roundloop) && g_TeamCount[CS_TEAM_CT] && g_TeamCount[CS_TEAM_T] && !is_user_alive(id))
  1220. {
  1221. team_join(id, CS_TEAM_SPECTATOR)
  1222. client_print(id, print_center, "%L", LANG_SERVER, "JBE_TEAM_CANTJOIN")
  1223. return PLUGIN_HANDLED
  1224. }
  1225.  
  1226.  
  1227. switch(key)
  1228. {
  1229. case(0):
  1230. {
  1231. if(team == CS_TEAM_T)
  1232. return PLUGIN_HANDLED
  1233.  
  1234. g_PlayerReason[id] = random_num(1, 6)
  1235.  
  1236. team_join(id, CS_TEAM_T)
  1237. }
  1238. case(1):
  1239. {
  1240. if(team == CS_TEAM_CT || (!admin && get_bit(g_PlayerNomic, id)))
  1241. return PLUGIN_HANDLED
  1242.  
  1243. if(g_TeamCount[CS_TEAM_CT] < ctcount_allowed() || admin)
  1244. team_join(id, CS_TEAM_CT)
  1245. else
  1246. client_print(id, print_center, "%L", LANG_SERVER, "JBE_TEAM_CTFULL")
  1247. }
  1248. case(5):
  1249. {
  1250. user_silentkill(id)
  1251. team_join(id, CS_TEAM_SPECTATOR)
  1252. }
  1253. }
  1254. return PLUGIN_HANDLED
  1255. }
  1256.  
  1257. public team_join(id, CsTeams:team)
  1258. {
  1259. static restore, vgui, msgblock
  1260.  
  1261. restore = get_pdata_int(id, m_iVGUI)
  1262. vgui = restore & (1<<0)
  1263. if(vgui)
  1264. set_pdata_int(id, m_iVGUI, restore & ~(1<<0))
  1265.  
  1266. switch(team)
  1267. {
  1268. case CS_TEAM_SPECTATOR:
  1269. {
  1270. msgblock = get_msg_block(g_MsgShowMenu)
  1271. set_msg_block(g_MsgShowMenu, BLOCK_ONCE)
  1272. dllfunc(DLLFunc_ClientPutInServer, id)
  1273. set_msg_block(g_MsgShowMenu, msgblock)
  1274. set_pdata_int(id, m_fGameHUDInitialized, 1)
  1275. engclient_cmd(id, "jointeam", "6")
  1276. }
  1277. case CS_TEAM_T, CS_TEAM_CT:
  1278. {
  1279. msgblock = get_msg_block(g_MsgShowMenu)
  1280. set_msg_block(g_MsgShowMenu, BLOCK_ONCE)
  1281. engclient_cmd(id, "jointeam", (team == CS_TEAM_CT) ? "2" : "1")
  1282. engclient_cmd(id, "joinclass", "1")
  1283. set_msg_block(g_MsgShowMenu, msgblock)
  1284. g_PlayerSpect[id] = 0
  1285. }
  1286. }
  1287.  
  1288. if(vgui)
  1289. set_pdata_int(id, m_iVGUI, restore)
  1290. }
  1291.  
  1292. public team_count()
  1293. {
  1294. static CsTeams:team, last
  1295. g_TeamCount[CS_TEAM_UNASSIGNED] = 0
  1296. g_TeamCount[CS_TEAM_T] = 0
  1297. g_TeamCount[CS_TEAM_CT] = 0
  1298. g_TeamCount[CS_TEAM_SPECTATOR] = 0
  1299. g_TeamAlive[CS_TEAM_UNASSIGNED] = 0
  1300. g_TeamAlive[CS_TEAM_T] = 0
  1301. g_TeamAlive[CS_TEAM_CT] = 0
  1302. g_TeamAlive[CS_TEAM_SPECTATOR] = 0
  1303. for(new i = 1; i <= g_MaxClients; i++)
  1304. {
  1305. if(is_user_connected(i))
  1306. {
  1307. team = cs_get_user_team(i)
  1308. g_TeamCount[team]++
  1309. g_PlayerTeam[i] = team
  1310. if(is_user_alive(i))
  1311. {
  1312. g_TeamAlive[team]++
  1313. if(team == CS_TEAM_T)
  1314. last = i
  1315. }
  1316. }
  1317. else
  1318. {
  1319. g_PlayerTeam[i] = CS_TEAM_UNASSIGNED
  1320. }
  1321. }
  1322. if(g_TeamAlive[CS_TEAM_T] == 1)
  1323. {
  1324. if(last != g_PlayerLast && g_SafeTime)
  1325. {
  1326. prisoner_last(last)
  1327. }
  1328. }
  1329. else
  1330. {
  1331. if(g_Duel || g_DuelA || g_DuelB)
  1332. {
  1333. if(is_user_alive(g_DuelA))
  1334. {
  1335. set_user_rendering(g_DuelA, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
  1336. player_strip_weapons(g_DuelA)
  1337. }
  1338.  
  1339. if(is_user_alive(g_DuelB))
  1340. {
  1341. set_user_rendering(g_DuelB, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
  1342. player_strip_weapons(g_DuelB)
  1343. }
  1344.  
  1345. }
  1346. g_PlayerLast = 0
  1347. g_DuelA = 0
  1348. g_DuelB = 0
  1349. g_Duel = 0
  1350. }
  1351. }
  1352.  
  1353. public revolt_start()
  1354. {
  1355. client_cmd(0,"speak ambience/siren")
  1356. set_task(8.0, "stop_sound")
  1357. hud_status(0)
  1358. }
  1359.  
  1360. public stop_sound(task)
  1361. {
  1362. client_cmd(0, "stopsound")
  1363. }
  1364.  
  1365. public hud_status(id)
  1366. {
  1367. static i, n
  1368. new name[32], szStatus[64], wanted[1024]
  1369.  
  1370. new hp = get_user_health(id)
  1371. new ap = get_user_armor(id)
  1372.  
  1373. if(g_RoundStarted < (get_pcvar_num(gp_RetryTime) / 2))
  1374. g_RoundStarted++
  1375.  
  1376. if(!g_Freeday && !g_Simon && g_SimonAllowed && (0.0 < g_SimonRandom < get_gametime()))
  1377. {
  1378. cmd_simon(random_num(1, g_MaxClients))
  1379. }
  1380.  
  1381. n = 0
  1382. formatex(wanted, charsmax(wanted), "%L", LANG_SERVER, "JBE_PRISONER_WANTED")
  1383. n = strlen(wanted)
  1384. for(i = 0; i < g_MaxClients; i++)
  1385. {
  1386. if(get_bit(g_PlayerWanted, i) && is_user_alive(i) && n < charsmax(wanted))
  1387. {
  1388. get_user_name(i, name, charsmax(name))
  1389. n += copy(wanted[n], charsmax(wanted) - n, "^n^t")
  1390. n += copy(wanted[n], charsmax(wanted) - n, name)
  1391. }
  1392. }
  1393.  
  1394. team_count()
  1395. formatex(szStatus, charsmax(szStatus), "%L", LANG_SERVER, "JBE_STATUS", g_TeamAlive[CS_TEAM_T], g_TeamCount[CS_TEAM_T])
  1396. message_begin(MSG_BROADCAST, get_user_msgid("StatusText"), {0,0,0}, 0)
  1397. write_byte(0)
  1398. write_string(szStatus)
  1399. message_end()
  1400.  
  1401. if(g_Simon)
  1402. {
  1403. get_user_name(g_Simon, name, charsmax(name))
  1404. player_hudmessage(0, 2, HUD_DELAY + 1.0, {200, 100, 0}, "%L", LANG_SERVER, "JBE_SIMON_FOLLOW", name)
  1405. }
  1406. else if(g_Freeday)
  1407. {
  1408. player_hudmessage(0, 2, HUD_DELAY + 1.0, {100, 0, 0}, "%L", LANG_SERVER, "JBE_STATUS_FREEDAY")
  1409. }
  1410.  
  1411. if(g_PlayerWanted)
  1412. player_hudmessage(0, 3, HUD_DELAY + 1.0, {200, 0, 0}, "%s", wanted)
  1413. else if(g_PlayerRevolt)
  1414. player_hudmessage(0, 3, HUD_DELAY + 1.0, {200, 0, 0}, "%L", LANG_SERVER, "JBE_PRISONER_REVOLT")
  1415.  
  1416. player_hudmessage(0, 5, HUD_DELAY + 1.0, {0, 190, 255}, "%L", LANG_SERVER, "JBE_STATUS_DAY", g_JailDay,hp,ap)
  1417.  
  1418. gc_TalkMode = get_pcvar_num(gp_TalkMode)
  1419. gc_VoiceBlock = get_pcvar_num(gp_VoiceBlock)
  1420. gc_SimonSteps = get_pcvar_num(gp_SimonSteps)
  1421. gc_ButtonShoot = get_pcvar_num(gp_ButtonShoot)
  1422. gc_CrowbarMul = get_pcvar_float(gp_CrowbarMul)
  1423.  
  1424. }
  1425.  
  1426. public safe_time(task)
  1427. {
  1428. g_SafeTime = 1
  1429. }
  1430.  
  1431. public check_freeday(task)
  1432. {
  1433. static Float:roundmax, i
  1434. if(!g_Simon && !g_PlayerLast)
  1435. {
  1436. g_Freeday = 1
  1437. hud_status(0)
  1438. roundmax = get_pcvar_float(gp_RoundMax)
  1439. if(roundmax > 0.0)
  1440. {
  1441. for(i = 1; i <= g_MaxClients; i++)
  1442. {
  1443. if(is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_T)
  1444. freeday_set(0, i)
  1445. }
  1446. emit_sound(0, CHAN_AUTO, "jbextreme/brass_bell_C.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  1447. player_hudmessage(0, 8, 3.0, {100, 200, 0}, "%L", LANG_SERVER, "JBE_STATUS_ENDTIMER", floatround(roundmax - 60.0))
  1448. remove_task(TASK_ROUND)
  1449. set_task(roundmax - 60.0, "check_end", TASK_ROUND)
  1450. }
  1451. }
  1452.  
  1453. if(get_pcvar_num(gp_AutoOpen))
  1454. jail_open()
  1455. }
  1456.  
  1457. public freeday_end(task)
  1458. {
  1459. if(g_Freeday || g_PlayerFreeday)
  1460. {
  1461. emit_sound(0, CHAN_AUTO, "jbextreme/brass_bell_C.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  1462. }
  1463. }
  1464.  
  1465. public check_end(task)
  1466. {
  1467. team_count()
  1468. for(new i = 1; i <= g_MaxClients; i++)
  1469. {
  1470. if(g_PlayerTeam[i] == CS_TEAM_T && is_user_alive(i))
  1471. {
  1472. user_silentkill(i)
  1473. cs_set_user_deaths(i, get_user_deaths(i) - 1)
  1474. }
  1475. }
  1476. for(new i = 1; i <= g_MaxClients; i++)
  1477. {
  1478. if(g_PlayerTeam[i] == CS_TEAM_CT && is_user_alive(i))
  1479. {
  1480. user_silentkill(i)
  1481. cs_set_user_deaths(i, get_user_deaths(i) - 1)
  1482. }
  1483. }
  1484. player_hudmessage(0, 6, 3.0, {200, 100, 0}, "%L", LANG_SERVER, "JBE_STATUS_ROUNDEND")
  1485. }
  1486.  
  1487. public prisoner_last(id)
  1488. {
  1489. static name[32], Float:roundmax
  1490. if(is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_T)
  1491. {
  1492. roundmax = get_pcvar_float(gp_RoundMax)
  1493. get_user_name(id, name, charsmax(name))
  1494. g_PlayerLast = id
  1495. player_hudmessage(0, 6, 5.0, {100, 200, 0}, "%L", LANG_SERVER, "JBE_PRISONER_LAST", name)
  1496. remove_task(TASK_ROUND)
  1497. if(roundmax > 0.0)
  1498. {
  1499. player_hudmessage(0, 8, 3.0, {100, 200, 0}, "%L", LANG_SERVER, "JBE_STATUS_ENDTIMER", floatround(roundmax - 60.0))
  1500. set_task(roundmax - 60.0, "check_end", TASK_ROUND)
  1501. }
  1502. if((g_TeamAlive[CS_TEAM_CT] > 0) && get_pcvar_num(gp_AutoLastresquest))
  1503. cmd_lastrequest(id)
  1504. }
  1505. }
  1506.  
  1507. public freeday_select(id, menu, item)
  1508. {
  1509. if(item == MENU_EXIT)
  1510. {
  1511. menu_destroy(menu)
  1512. return PLUGIN_HANDLED
  1513. }
  1514.  
  1515. static dst[32], data[5], player, access, callback
  1516.  
  1517. menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
  1518. player = str_to_num(data)
  1519. freeday_set(id, player)
  1520. return PLUGIN_HANDLED
  1521. }
  1522.  
  1523. public duel_knives(id, menu, item)
  1524. {
  1525. if(item == MENU_EXIT)
  1526. {
  1527. menu_destroy(menu)
  1528. g_LastDenied = 0
  1529. return PLUGIN_HANDLED
  1530. }
  1531.  
  1532. static dst[32], data[5], access, callback, option[128], player, src[32]
  1533.  
  1534. menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
  1535. get_user_name(id, src, charsmax(src))
  1536. player = str_to_num(data)
  1537. formatex(option, charsmax(option), "%L^n%L", LANG_SERVER, "JBE_MENU_LASTREQ_SEL2", src, LANG_SERVER, "JBE_MENU_DUEL_SEL", src, dst)
  1538. player_hudmessage(0, 6, 3.0, {200, 0, 0}, option)
  1539.  
  1540. g_DuelA = id
  1541. clear_bit(g_PlayerCrowbar, id)
  1542. player_strip_weapons_all()
  1543. player_glow(id, g_Colors[3])
  1544. set_user_health(id, 100)
  1545.  
  1546. g_DuelB = player
  1547. player_strip_weapons_all()
  1548. player_glow(player, g_Colors[2])
  1549. set_user_health(player, 100)
  1550. g_BlockWeapons = 1
  1551. return PLUGIN_HANDLED
  1552. }
  1553.  
  1554. public duel_guns(id, menu, item)
  1555. {
  1556. if(item == MENU_EXIT)
  1557. {
  1558. menu_destroy(menu)
  1559. g_LastDenied = 0
  1560. g_Duel = 0
  1561. return PLUGIN_HANDLED
  1562. }
  1563.  
  1564. static gun, dst[32], data[5], access, callback, option[128], player, src[32]
  1565.  
  1566. menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
  1567. get_user_name(id, src, charsmax(src))
  1568. player = str_to_num(data)
  1569. formatex(option, charsmax(option), "%L^n%L", LANG_SERVER, _Duel[g_Duel - 4][_sel], src, LANG_SERVER, "JBE_MENU_DUEL_SEL", src, dst)
  1570. emit_sound(0, CHAN_AUTO, "jbextreme/nm_goodbadugly.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  1571. player_hudmessage(0, 6, 3.0, {200, 0, 0}, option)
  1572.  
  1573. g_DuelA = id
  1574. clear_bit(g_PlayerCrowbar, id)
  1575. player_strip_weapons(id)
  1576. gun = give_item(id, _Duel[g_Duel - 4][_entname])
  1577. cs_set_weapon_ammo(gun, 1)
  1578. set_user_health(id, 100)
  1579. player_glow(id, g_Colors[3])
  1580.  
  1581. g_DuelB = player
  1582. player_strip_weapons(player)
  1583. gun = give_item(player, _Duel[g_Duel - 4][_entname])
  1584. cs_set_weapon_ammo(gun, 1)
  1585. set_user_health(player, 100)
  1586. player_glow(player, g_Colors[2])
  1587.  
  1588. g_BlockWeapons = 1
  1589. return PLUGIN_HANDLED
  1590. }
  1591.  
  1592. public freeday_choice(id, menu, item)
  1593. {
  1594. if(item == MENU_EXIT)
  1595. {
  1596. menu_destroy(menu)
  1597. return PLUGIN_HANDLED
  1598. }
  1599.  
  1600. static dst[32], data[5], access, callback
  1601.  
  1602. menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
  1603. menu_destroy(menu)
  1604. get_user_name(id, dst, charsmax(dst))
  1605. switch(data[0])
  1606. {
  1607. case('1'):
  1608. {
  1609. cmd_freeday_player(id)
  1610. }
  1611. case('2'):
  1612. {
  1613. if((id == g_Simon) || is_user_admin(id))
  1614. {
  1615. g_Simon = 0
  1616. get_user_name(id, dst, charsmax(dst))
  1617. client_print(0, print_console, "%s mindenkinek szabadnapot adott", dst)
  1618. server_print("JBE Client %i mindenkinek szabadnapot adott", id)
  1619. check_freeday(TASK_FREEDAY)
  1620. }
  1621. }
  1622. }
  1623. return PLUGIN_HANDLED
  1624. }
  1625.  
  1626. public lastrequest_select(id, menu, item)
  1627. {
  1628. if(item == MENU_EXIT)
  1629. {
  1630. menu_destroy(menu)
  1631. return PLUGIN_HANDLED
  1632. }
  1633.  
  1634. static i, dst[32], data[5], access, callback, option[64]
  1635.  
  1636. menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
  1637. get_user_name(id, dst, charsmax(dst))
  1638. switch(data[0])
  1639. {
  1640. case('1'):
  1641. {
  1642. formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_LASTREQ_SEL1", dst)
  1643. player_hudmessage(0, 6, 3.0, {100, 0, 0}, option)
  1644. g_Duel = 2
  1645. player_strip_weapons_all()
  1646. i = random_num(0, sizeof(_WeaponsFree) - 1)
  1647. give_item(id, _WeaponsFree[i])
  1648. g_BlockWeapons = 1
  1649. cs_set_user_bpammo(id, _WeaponsFreeCSW[i], _WeaponsFreeAmmo[i])
  1650. }
  1651. case('2'):
  1652. {
  1653. g_Duel = 3
  1654. menu_players(id, CS_TEAM_CT, 0, 1, "duel_knives", "%L", LANG_SERVER, "JBE_MENU_DUEL")
  1655. }
  1656. default:
  1657. {
  1658. g_Duel = str_to_num(data)
  1659. menu_players(id, CS_TEAM_CT, 0, 1, "duel_guns", "%L", LANG_SERVER, "JBE_MENU_DUEL")
  1660. }
  1661. }
  1662. g_LastDenied = 1
  1663. menu_destroy(menu)
  1664. return PLUGIN_HANDLED
  1665. }
  1666.  
  1667. public setup_buttons()
  1668. {
  1669. new ent[3]
  1670. new Float:origin[3]
  1671. new info[32]
  1672. new pos
  1673.  
  1674. while((pos <= sizeof(g_Buttons)) && (ent[0] = engfunc(EngFunc_FindEntityByString, ent[0], "classname", "info_player_deathmatch")))
  1675. {
  1676. pev(ent[0], pev_origin, origin)
  1677. while((ent[1] = engfunc(EngFunc_FindEntityInSphere, ent[1], origin, CELL_RADIUS)))
  1678. {
  1679. if(!is_valid_ent(ent[1]))
  1680. continue
  1681.  
  1682. entity_get_string(ent[1], EV_SZ_classname, info, charsmax(info))
  1683. if(!equal(info, "func_door"))
  1684. continue
  1685.  
  1686. entity_get_string(ent[1], EV_SZ_targetname, info, charsmax(info))
  1687. if(!info[0])
  1688. continue
  1689.  
  1690. if(TrieKeyExists(g_CellManagers, info))
  1691. {
  1692. TrieGetCell(g_CellManagers, info, ent[2])
  1693. }
  1694. else
  1695. {
  1696. ent[2] = engfunc(EngFunc_FindEntityByString, 0, "target", info)
  1697. }
  1698.  
  1699. if(is_valid_ent(ent[2]) && (in_array(ent[2], g_Buttons, sizeof(g_Buttons)) < 0))
  1700. {
  1701. g_Buttons[pos] = ent[2]
  1702. pos++
  1703. break
  1704. }
  1705. }
  1706. }
  1707. TrieDestroy(g_CellManagers)
  1708. }
  1709.  
  1710. stock in_array(needle, data[], size)
  1711. {
  1712. for(new i = 0; i < size; i++)
  1713. {
  1714. if(data[i] == needle)
  1715. return i
  1716. }
  1717. return -1
  1718. }
  1719.  
  1720. stock freeday_set(id, player)
  1721. {
  1722. static src[32], dst[32]
  1723. get_user_name(player, dst, charsmax(dst))
  1724.  
  1725. if(is_user_alive(player) && !get_bit(g_PlayerWanted, player))
  1726. {
  1727. set_bit(g_PlayerFreeday, player)
  1728. entity_set_int(player, EV_INT_skin, 3)
  1729. if(get_pcvar_num(gp_GlowModels))
  1730. player_glow(player, g_Colors[1])
  1731.  
  1732. if(0 < id <= g_MaxClients)
  1733. {
  1734. get_user_name(id, src, charsmax(src))
  1735. player_hudmessage(0, 6, 3.0, {200, 100, 50}, "%L", LANG_SERVER, "JBE_GUARD_FREEDAYGIVE", src, dst)
  1736. }
  1737. else if(!is_freeday())
  1738. {
  1739. player_hudmessage(0, 6, 3.0, {100, 0, 0}, "%L", LANG_SERVER, "JBE_PRISONER_HASFREEDAY", dst)
  1740. }
  1741. }
  1742. }
  1743.  
  1744. stock first_join(id)
  1745. {
  1746. if(!get_bit(g_PlayerJoin, id))
  1747. {
  1748. set_bit(g_PlayerJoin, id)
  1749. clear_bit(g_PlayerHelp, id)
  1750. set_task(5.0, "cmd_help", TASK_HELP + id)
  1751. }
  1752. }
  1753.  
  1754. stock ctcount_allowed()
  1755. {
  1756. static count
  1757. count = ((g_TeamCount[CS_TEAM_T] + g_TeamCount[CS_TEAM_CT]) / get_pcvar_num(gp_TeamRatio))
  1758. if(count < 2)
  1759. count = 2
  1760. else if(count > get_pcvar_num(gp_CtMax))
  1761. count = get_pcvar_num(gp_CtMax)
  1762.  
  1763. return count
  1764. }
  1765.  
  1766. stock player_hudmessage(id, hudid, Float:time = 0.0, color[3] = {100, 0, 0}, msg[], any:...)
  1767. {
  1768. static text[512], Float:x, Float:y
  1769. x = g_HudSync[hudid][_x]
  1770. y = g_HudSync[hudid][_y]
  1771.  
  1772. if(time > 0)
  1773. set_hudmessage(color[0], color[1], color[2], x, y, 0, 0.00, time, 0.00, 0.00)
  1774. else
  1775. set_hudmessage(color[0], color[1], color[2], x, y, 0, 0.00, g_HudSync[hudid][_time], 0.00, 0.00)
  1776.  
  1777. vformat(text, charsmax(text), msg, 6)
  1778. ShowSyncHudMsg(id, g_HudSync[hudid][_hudsync], text)
  1779. }
  1780.  
  1781. stock menu_players(id, CsTeams:team, skip, alive, callback[], title[], any:...)
  1782. {
  1783. static i, name[32], num[5], menu, menuname[32]
  1784. vformat(menuname, charsmax(menuname), title, 7)
  1785. menu = menu_create(menuname, callback)
  1786. for(i = 1; i <= g_MaxClients; i++)
  1787. {
  1788. if(!is_user_connected(i) || (alive && !is_user_alive(i)) || (skip == i))
  1789. continue
  1790.  
  1791. if(!(team == CS_TEAM_T || team == CS_TEAM_CT) || ((team == CS_TEAM_T || team == CS_TEAM_CT) && (cs_get_user_team(i) == team)))
  1792. {
  1793. get_user_name(i, name, charsmax(name))
  1794. num_to_str(i, num, charsmax(num))
  1795. menu_additem(menu, name, num, 0)
  1796. }
  1797. }
  1798.  
  1799.  
  1800. menu_setprop(menu, MPROP_EXITNAME, "Kilépés \r[\yX\r]");
  1801. menu_setprop(menu, MPROP_BACKNAME, "Vissza \r[\y<=\r]");
  1802. menu_setprop(menu, MPROP_NEXTNAME, "Tovább \r[\y=>\r]");
  1803.  
  1804. menu_display(id, menu)
  1805. }
  1806.  
  1807. stock player_glow(id, color[3], amount=10)
  1808. {
  1809. set_user_rendering(id, kRenderFxGlowShell, color[0], color[1], color[2], kRenderNormal, amount)
  1810. }
  1811.  
  1812. stock player_strip_weapons(id)
  1813. {
  1814. strip_user_weapons(id)
  1815. set_pdata_int(id, m_iPrimaryWeapon, 0)
  1816. }
  1817.  
  1818. stock player_strip_weapons_all()
  1819. {
  1820. for(new i = 1; i <= g_MaxClients; i++)
  1821. {
  1822. if(is_user_alive(i))
  1823. {
  1824. player_strip_weapons(i)
  1825. give_item(i, "weapon_knife")
  1826. }
  1827. }
  1828. }
  1829.  
  1830. stock is_freeday()
  1831. {
  1832. return (g_FreedayNext || g_Freeday || (g_JailDay == 1))
  1833. }
  1834.  
  1835. public jail_open()
  1836. {
  1837. static i
  1838. for(i = 0; i < sizeof(g_Buttons); i++)
  1839. {
  1840. if(g_Buttons[i])
  1841. {
  1842. ExecuteHamB(Ham_Use, g_Buttons[i], 0, 0, 1, 1.0)
  1843. entity_set_float(g_Buttons[i], EV_FL_frame, 0.0)
  1844. }
  1845. }
  1846. }
  1847. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  1848. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
  1849. */
  1850.  

Szerző:  BlackStyler [ 2013.11.04. 17:52 ]
Hozzászólás témája:  Re: Nem lehet beállni.

Nos talán azért nem lehet beállni mert buggol a beálló rendszer !

Szerző:  laki5000 [ 2013.11.04. 19:02 ]
Hozzászólás témája:  Re: Nem lehet beállni.

Te jó isten. tudod mit beszélsz? valami a pluginban valószínüleg tíltja.

Szerző:  davke1 [ 2013.11.04. 19:07 ]
Hozzászólás témája:  Re: Nem lehet beállni.

Mit ír ki mikor nem enged beállni. A showmenu s a vgui is hookolva van.

Ha menüből nem enged beállni próbáld konzolból.
jointeam1
jointeam2

Oldal: 1 / 1 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/