hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.05.25. 12:59



Jelenlévő felhasználók

Jelenleg 171 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 171 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: nincs regisztrált felhasználó az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 4 hozzászólás ] 
Szerző Üzenet
HozzászólásElküldve: 2013.11.04. 17:29 
Offline
Jómunkásember

Csatlakozott: 2013.02.11. 16:06
Hozzászólások: 491
Megköszönt másnak: 96 alkalommal
Megköszönték neki: 50 alkalommal
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.  

_________________
Rengeteg új beszólás eléréséhez kattints IDE (Ezek alapból sank soundshoz készültek)

Steam profil:
[steam]http://steamcommunity.com/profiles/76561198089487307[/steam]


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Nem lehet beállni.
HozzászólásElküldve: 2013.11.04. 17:52 
Offline
Lelkes

Csatlakozott: 2013.09.10. 17:40
Hozzászólások: 18
Megköszönt másnak: 2 alkalommal
Nos talán azért nem lehet beállni mert buggol a beálló rendszer !


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Nem lehet beállni.
HozzászólásElküldve: 2013.11.04. 19:02 
Offline
Jómunkásember

Csatlakozott: 2013.02.11. 16:06
Hozzászólások: 491
Megköszönt másnak: 96 alkalommal
Megköszönték neki: 50 alkalommal
Te jó isten. tudod mit beszélsz? valami a pluginban valószínüleg tíltja.

_________________
Rengeteg új beszólás eléréséhez kattints IDE (Ezek alapból sank soundshoz készültek)

Steam profil:
[steam]http://steamcommunity.com/profiles/76561198089487307[/steam]


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Nem lehet beállni.
HozzászólásElküldve: 2013.11.04. 19:07 
Offline
Fanatikus
Avatar

Csatlakozott: 2013.07.27. 12:36
Hozzászólások: 183
Megköszönt másnak: 23 alkalommal
Megköszönték neki: 25 alkalommal
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


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 4 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 46 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole