hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.04.26. 21:32



Jelenlévő felhasználók

Jelenleg 335 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 335 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  [ 6 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Ajándék a szervertől (JailBreak)
HozzászólásElküldve: 2013.06.15. 10:41 
Offline
Fanatikus

Csatlakozott: 2013.02.10. 16:48
Hozzászólások: 198
Megköszönt másnak: 113 alkalommal
Helló valaki tud olyan plugint hogy ha valaki fent van 3 percet a JailBreak szerveren akkor kal 3 JB csomagot ha 5 percet akkor 5 JB csomagot és így 30 Percig utána nem kap semmit és ezt írja say-ba
Te 3 Percet Töltötél a Szerveren Ezért Kaptál 3 JB csomagot

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

_________________
-----------------------------------------------------------------------------------------------------------
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Ajándék a szervertől (JailBreak)
HozzászólásElküldve: 2013.06.15. 19:00 
Offline
Veterán
Avatar

Csatlakozott: 2012.09.01. 22:19
Hozzászólások: 1697
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 302 alkalommal
a bolt SMA-ját add, ne a módét.

_________________
Valami új kezdete...
Kép
Egyedi pluginok készítése pénzért (Banki átutalás, PayPal) -> Privát üzenet


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Ajándék a szervertől (JailBreak)
HozzászólásElküldve: 2013.06.15. 19:03 
Offline
Developer
Avatar

Csatlakozott: 2011.06.01. 21:11
Hozzászólások: 7962
Megköszönt másnak: 295 alkalommal
Megköszönték neki: 535 alkalommal
crazy` írta:
a bolt SMA-ját add, ne a módét.


Azért adta ezt mert ő már cisnált hozzá külső funkciókat (native), s itt már csak meg kell hívni, gondolom én.

_________________
http://www.easyrankup.eu


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Ajándék a szervertől (JailBreak)
HozzászólásElküldve: 2013.06.15. 19:30 
Offline
Veterán
Avatar

Csatlakozott: 2012.09.01. 22:19
Hozzászólások: 1697
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 302 alkalommal
kiki írta:
crazy` írta:
a bolt SMA-ját add, ne a módét.


Azért adta ezt mert ő már cisnált hozzá külső funkciókat (native), s itt már csak meg kell hívni, gondolom én.


nem írt hozzá semmit. a boltban van egy a "JB pack"-os cucc, tudom, ezért írtam neki, hogy azt adja.

_________________
Valami új kezdete...
Kép
Egyedi pluginok készítése pénzért (Banki átutalás, PayPal) -> Privát üzenet


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Ajándék a szervertől (JailBreak)
HozzászólásElküldve: 2013.06.15. 22:03 
Offline
Fanatikus

Csatlakozott: 2013.02.10. 16:48
Hozzászólások: 198
Megköszönt másnak: 113 alkalommal
Bocs. itt a Bolt sma
SMA Forráskód: [ Mindet kijelol ]
  1. /*
  2. *
  3. * Plugin: JailBreak Shop
  4. * Autor: MaNuCs
  5. *
  6. * Credits: rubee
  7. * Gladius
  8. * capostrike93
  9. * apu
  10. */
  11.  
  12. #include <amxmodx>
  13. #include <amxmisc>
  14. #include <hamsandwich>
  15. #include <cstrike>
  16. #include <fakemeta>
  17. #include <fun>
  18.  
  19. #define is_valid_player(%1) (1 <= %1 <= 32)
  20.  
  21. /*============================================================
  22. Variables
  23. ============================================================*/
  24.  
  25. new
  26. OnOff,
  27. OnOff2,
  28. precio1,
  29. precio2,
  30. precio3,
  31. precio4,
  32. precio5,
  33. precio6,
  34. precio7,
  35. precioC1,
  36. precioC2,
  37. precioC3,
  38. precioC4,
  39. CTDefaultDano,
  40. TDefaultDano,
  41. PaloDano,
  42. HachaDano,
  43. MacheteDano,
  44. MotocierraDano,
  45. hTDefaultDano,
  46. hCTDefaultDano,
  47. hPaloDano,
  48. hHachaDano,
  49. hMacheteDano,
  50. Vida,
  51. Armor,
  52. glock1,
  53. glock2,
  54. help,
  55. g_killjp,
  56. g_killhsjp,
  57. g_startjp,
  58. g_maxjp,
  59. g_iMsgSayText,
  60. syncObj,
  61. Ronda[33],
  62. Speed[33],
  63. Speed2[33],
  64. TCuchillo[33],
  65. CTCuchillo[33],
  66. Destapador[33],
  67. Hacha[33],
  68. Machete[33],
  69. Motocierra[33],
  70. g_jbpacks[33],
  71. quitar[33],
  72. regalar[33],
  73. gidPlayer[33]
  74.  
  75.  
  76. /*============================================================
  77. Weapon Model's
  78. ============================================================*/
  79.  
  80.  
  81. new VIEW_MODELT[] = "models/jailbreak_shop/v_rabkez.mdl"
  82. new PLAYER_MODELT[] = "models/jailbreak_shop/p_rabkez.mdl"
  83.  
  84. new VIEW_MODELCT[] = "models/jailbreak_shop/v_sokkolo.mdl"
  85. new PLAYER_MODELCT[] = "models/jailbreak_shop/p_sokkolo.mdl"
  86.  
  87. new VIEW_Hacha[] = "models/jailbreak_shop/v_tortalapat.mdl"
  88. new PLAYER_Hacha[] = "models/jailbreak_shop/p_tortalapat.mdl"
  89.  
  90. new VIEW_Machete[] = "models/jailbreak_shop/v_fejsze.mdl"
  91. new PLAYER_Machete[] = "models/jailbreak_shop/p_fejsze.mdl"
  92.  
  93. new VIEW_Palo[] = "models/jailbreak_shop/v_wcpumpa.mdl"
  94. new PLAYER_Palo[] = "models/jailbreak_shop/p_wcpumpa.mdl"
  95.  
  96. new VIEW_Moto[] = "models/jailbreak_shop/v_lancfuresz.mdl"
  97. new PLAYER_Moto[] = "models/jailbreak_shop/p_lancfuresz.mdl"
  98.  
  99. new WORLD_MODEL[] = "models/w_knife.mdl"
  100. new OLDWORLD_MODEL[] = "models/w_knife.mdl"
  101.  
  102. /*============================================================
  103.   Shop Sounds!
  104. ============================================================*/
  105. new const Si[] = { "jailbreak_shop/Yes.wav" }
  106. new const No[] = { "jailbreak_shop/No.wav" }
  107.  
  108. /*============================================================
  109.   Weapon Sound's
  110. ============================================================*/
  111.  
  112. new const palo_deploy[] = { "weapons/knife_deploy1.wav" }
  113. new const palo_slash1[] = { "weapons/knife_slash1.wav" }
  114. new const palo_slash2[] = { "weapons/knife_slash2.wav" }
  115. new const palo_wall[] = { "jailbreak_shop/Palo/PHitWall.wav" }
  116. new const palo_hit1[] = { "jailbreak_shop/Palo/PHit1.wav" }
  117. new const palo_hit2[] = { "jailbreak_shop/Palo/PHit2.wav" }
  118. new const palo_hit3[] = { "jailbreak_shop/Palo/PHit3.wav" }
  119. new const palo_hit4[] = { "jailbreak_shop/Palo/PHit4.wav" }
  120. new const palo_stab[] = { "jailbreak_shop/Palo/PStab.wav" }
  121.  
  122. new const hacha_deploy[] = { "weapons/knife_deploy1.wav" }
  123. new const hacha_slash1[] = { "jailbreak_shop/Hacha/HSlash1.wav" }
  124. new const hacha_slash2[] = { "jailbreak_shop/Hacha/HSlash2.wav" }
  125. new const hacha_wall[] = { "jailbreak_shop/Hacha/HHitWall.wav" }
  126. new const hacha_hit1[] = { "jailbreak_shop/Hacha/HHit1.wav" }
  127. new const hacha_hit2[] = { "jailbreak_shop/Hacha/HHit2.wav" }
  128. new const hacha_hit3[] = { "jailbreak_shop/Hacha/HHit3.wav" }
  129. new const hacha_stab[] = { "jailbreak_shop/Hacha/HHit4.wav" }
  130.  
  131. new const machete_deploy[] = { "jailbreak_shop/Machete/MConvoca.wav" }
  132. new const machete_slash1[] = { "jailbreak_shop/Machete/MSlash1.wav" }
  133. new const machete_slash2[] = { "jailbreak_shop/Machete/MSlash2.wav" }
  134. new const machete_wall[] = { "jailbreak_shop/Machete/MHitWall.wav" }
  135. new const machete_hit1[] = { "jailbreak_shop/Machete/MHit1.wav" }
  136. new const machete_hit2[] = { "jailbreak_shop/Machete/MHit2.wav" }
  137. new const machete_hit3[] = { "jailbreak_shop/Machete/MHit3.wav" }
  138. new const machete_hit4[] = { "jailbreak_shop/Machete/MHit4.wav" }
  139. new const machete_stab[] = { "jailbreak_shop/Machete/MStab.wav" }
  140.  
  141. new const motocierra_deploy[] = { "jailbreak_shop/Moto/MTConvoca.wav", }
  142. new const motocierra_slash[] = { "jailbreak_shop/Moto/MTSlash.wav", }
  143. new const motocierra_wall[] = { "jailbreak_shop/Moto/MTHitWall.wav" }
  144. new const motocierra_hit1[] = { "jailbreak_shop/Moto/MTHit1.wav", }
  145. new const motocierra_hit2[] = { "jailbreak_shop/Moto/MTHit2.wav", }
  146. new const motocierra_stab[] = { "jailbreak_shop/Moto/MTStab.wav" }
  147.  
  148. new const t_deploy[] = { "jailbreak_shop/T/TConvoca.wav", }
  149. new const t_slash1[] = { "jailbreak_shop/T/Slash1.wav", }
  150. new const t_slash2[] = { "jailbreak_shop/T/Slash2.wav", }
  151. new const t_wall[] = { "jailbreak_shop/T/THitWall.wav" }
  152. new const t_hit1[] = { "jailbreak_shop/T/THit1.wav", }
  153. new const t_hit2[] = { "jailbreak_shop/T/THit2.wav", }
  154. new const t_hit3[] = { "jailbreak_shop/T/THit3.wav", }
  155. new const t_hit4[] = { "jailbreak_shop/T/THit4.wav", }
  156. new const t_stab[] = { "jailbreak_shop/T/TStab.wav" }
  157.  
  158. new const ct_deploy[] = { "jailbreak_shop/CT/CTConvoca.wav", }
  159. new const ct_slash1[] = { "jailbreak_shop/CT/Slash1.wav", }
  160. new const ct_slash2[] = { "jailbreak_shop/CT/Slash2.wav", }
  161. new const ct_wall[] = { "jailbreak_shop/CT/CTHitWall.wav" }
  162. new const ct_hit1[] = { "jailbreak_shop/CT/CTHit1.wav", }
  163. new const ct_hit2[] = { "jailbreak_shop/CT/CTHit2.wav", }
  164. new const ct_hit3[] = { "jailbreak_shop/CT/CTHit3.wav", }
  165. new const ct_hit4[] = { "jailbreak_shop/CT/CTHit4.wav", }
  166. new const ct_stab[] = { "jailbreak_shop/CT/CTStab.wav" }
  167.  
  168.  
  169. /*============================================================
  170. Config
  171. ============================================================*/
  172.  
  173. public plugin_init()
  174. {
  175.  
  176. register_plugin("[JB] Shop", "2.9", "[M]aNuC[s]_")
  177.  
  178. register_clcmd("say /bolt", "Tienda")
  179. register_clcmd("say !bolt", "Tienda")
  180. register_clcmd("say_team /bolt", "Tienda")
  181. register_clcmd("say_team !bolt", "Tienda")
  182.  
  183. register_clcmd("say /mg", "duel_menu", ADMIN_ALL)
  184. register_clcmd("say !mg", "duel_menu", ADMIN_ALL)
  185. register_clcmd("say_team /mg", "duel_menu", ADMIN_ALL)
  186. register_clcmd("say_team !mg", "duel_menu", ADMIN_ALL)
  187. register_clcmd("JailBreak Pontok", "player")
  188.  
  189. RegisterHam(Ham_Spawn, "player", "Fwd_PlayerSpawn_Post", 1)
  190. RegisterHam(Ham_TakeDamage, "player", "FwdTakeDamage", 0)
  191. RegisterHam(Ham_Killed, "player", "fw_player_killed")
  192.  
  193. register_event("CurWeapon", "Event_Change_Weapon", "be", "1=1")
  194.  
  195. register_forward(FM_SetModel, "fw_SetModel")
  196. register_forward(FM_EmitSound, "Fwd_EmitSound")
  197.  
  198. /*============================================================
  199. Cvar's
  200. ============================================================*/
  201. g_killjp = register_cvar("jb_killJP", "5");
  202. g_killhsjp = register_cvar("jb_bonushsJP", "2");
  203. g_startjp = register_cvar("jb_startJP", "10");
  204. g_maxjp = register_cvar("jb_maxgiveJP", "10000");
  205.  
  206. OnOff = register_cvar("jb_Shop", "1")//1(ON) 0(OFF)
  207. OnOff2 = register_cvar("jb_ShopKnifes", "1")//1(ON) 0(OFF)
  208. help = register_cvar("jb_help", "1")//1(ON) 0(OFF)
  209.  
  210. precio1 = register_cvar("jb_pFlash", "8")
  211. precio2 = register_cvar("jb_pHe", "11")
  212. precio3 = register_cvar("jb_pHEFL", "22")
  213. precio4 = register_cvar("jb_pWalk", "25")
  214. precio5 = register_cvar("jb_pFast", "28")
  215. precio6 = register_cvar("jb_pDrugs", "30")
  216. precio7 = register_cvar("jb_pGlock", "36")
  217.  
  218. precioC1 = register_cvar("jb_pKnife1", "5")
  219. precioC2 = register_cvar("jb_pKnife2", "20")
  220. precioC3 = register_cvar("jb_pKnife3", "25")
  221. precioC4 = register_cvar("jb_pKnife4", "36")
  222.  
  223. TDefaultDano = register_cvar("jb_dKnifeT", "20")
  224. CTDefaultDano = register_cvar("jb_dKnifeCT", "50")
  225. PaloDano = register_cvar("jb_dKnife1", "30")
  226. HachaDano = register_cvar("jb_dKnife2", "60")
  227. MacheteDano = register_cvar("jb_dKnife3", "80")
  228. MotocierraDano = register_cvar("jb_dKnife4", "200")
  229.  
  230. hTDefaultDano = register_cvar("jb_dHsKnifeT", "30")
  231. hCTDefaultDano = register_cvar("jb_dHsKnifeCT", "80")
  232. hPaloDano = register_cvar("jb_dhsKnife1", "45")
  233. hHachaDano = register_cvar("jb_dhsKnife2", "75")
  234. hMacheteDano = register_cvar("jb_dhsKnife3", "95")
  235.  
  236. Vida = register_cvar("jb_drLife", "200")
  237. Armor = register_cvar("jb_drArmor", "200")
  238.  
  239. glock1 = register_cvar("jb_gClip", "20")
  240. glock2 = register_cvar("jb_gAmmo", "0")
  241.  
  242. g_iMsgSayText = get_user_msgid("SayText")
  243. syncObj = CreateHudSyncObj()
  244.  
  245.  
  246. /*============================================================
  247. Multi Lengual!
  248. ============================================================*/
  249. register_dictionary("jbshop.txt")
  250. }
  251.  
  252. /*============================================================
  253. Precaches
  254. ============================================================*/
  255. public plugin_precache()
  256. {
  257. precache_sound(Si)
  258. precache_sound(No)
  259.  
  260. precache_sound(t_deploy)
  261. precache_sound(t_slash1)
  262. precache_sound(t_slash2)
  263. precache_sound(t_stab)
  264. precache_sound(t_wall)
  265. precache_sound(t_hit1)
  266. precache_sound(t_hit2)
  267. precache_sound(t_hit3)
  268. precache_sound(t_hit4)
  269.  
  270. precache_sound(ct_deploy)
  271. precache_sound(ct_slash1)
  272. precache_sound(ct_slash2)
  273. precache_sound(ct_stab)
  274. precache_sound(ct_wall)
  275. precache_sound(ct_hit1)
  276. precache_sound(ct_hit2)
  277. precache_sound(ct_hit3)
  278. precache_sound(ct_hit4)
  279.  
  280. precache_sound(palo_deploy)
  281. precache_sound(palo_slash1)
  282. precache_sound(palo_slash2)
  283. precache_sound(palo_stab)
  284. precache_sound(palo_wall)
  285. precache_sound(palo_hit1)
  286. precache_sound(palo_hit2)
  287. precache_sound(palo_hit3)
  288. precache_sound(palo_hit4)
  289.  
  290. precache_sound(machete_deploy)
  291. precache_sound(machete_slash1)
  292. precache_sound(machete_slash2)
  293. precache_sound(machete_stab)
  294. precache_sound(machete_wall)
  295. precache_sound(machete_hit1)
  296. precache_sound(machete_hit2)
  297. precache_sound(machete_hit3)
  298. precache_sound(machete_hit4)
  299.  
  300. precache_sound(hacha_deploy)
  301. precache_sound(hacha_slash1)
  302. precache_sound(hacha_slash2)
  303. precache_sound(hacha_stab)
  304. precache_sound(hacha_wall)
  305. precache_sound(hacha_hit1)
  306. precache_sound(hacha_hit2)
  307. precache_sound(hacha_hit3)
  308.  
  309. precache_sound(motocierra_deploy)
  310. precache_sound(motocierra_slash)
  311. precache_sound(motocierra_stab)
  312. precache_sound(motocierra_wall)
  313. precache_sound(motocierra_hit1)
  314. precache_sound(motocierra_hit2)
  315.  
  316.  
  317. precache_model(VIEW_MODELT)
  318. precache_model(PLAYER_MODELT)
  319. precache_model(VIEW_MODELCT)
  320. precache_model(PLAYER_MODELCT)
  321. precache_model(VIEW_Palo)
  322. precache_model(PLAYER_Palo)
  323. precache_model(VIEW_Hacha)
  324. precache_model(PLAYER_Hacha)
  325. precache_model(VIEW_Machete)
  326. precache_model(PLAYER_Machete)
  327. precache_model(VIEW_Moto)
  328. precache_model(PLAYER_Moto)
  329. precache_model(WORLD_MODEL)
  330.  
  331. return PLUGIN_CONTINUE
  332. }
  333.  
  334. /*============================================================
  335.   KNIFE SHOP
  336. ============================================================*/
  337. public Tienda1(id)
  338. {
  339. if(get_pcvar_num(OnOff2))
  340. {
  341. if (get_user_team(id) == 1 )
  342. {
  343. static Item[64]
  344.  
  345. formatex(Item, charsmax(Item),"\y%L", LANG_PLAYER, "SHOP")
  346. new Menu = menu_create(Item, "CuchilleroHandler")
  347.  
  348. formatex(Item, charsmax(Item),"\w%L \r%d$",LANG_PLAYER, "KNIFE1", get_pcvar_num(precioC1))
  349. menu_additem(Menu, Item, "1")
  350.  
  351. formatex(Item, charsmax(Item),"\w%L \r%d$",LANG_PLAYER, "KNIFE2", get_pcvar_num(precioC2))
  352. menu_additem(Menu, Item, "2")
  353.  
  354. formatex(Item, charsmax(Item),"\w%L \r%d$",LANG_PLAYER, "KNIFE3", get_pcvar_num(precioC3))
  355. menu_additem(Menu, Item, "3")
  356.  
  357. formatex(Item, charsmax(Item),"\w%L \r%d$",LANG_PLAYER, "KNIFE4", get_pcvar_num(precioC4))
  358. menu_additem(Menu, Item, "4")
  359.  
  360. menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL)
  361. menu_display(id, Menu)
  362. }
  363. }
  364. return PLUGIN_HANDLED
  365. }
  366.  
  367. public CuchilleroHandler(id, menu, item)
  368. {
  369. if( item == MENU_EXIT )
  370. {
  371. menu_destroy(menu);
  372. return PLUGIN_HANDLED;
  373. }
  374. new data[6], iName[64];
  375. new access, callback;
  376. menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  377.  
  378. new vivo = is_user_alive(id)
  379. new Obtener1 = get_pcvar_num(precioC1)
  380. new Obtener2 = get_pcvar_num(precioC2)
  381. new Obtener3 = get_pcvar_num(precioC3)
  382. new Obtener4 = get_pcvar_num(precioC4)
  383.  
  384. new key = str_to_num(data);
  385.  
  386. switch(key)
  387. {
  388. case 1:
  389. {
  390. if (g_jbpacks[id]>= Obtener1 && vivo)
  391. {
  392. g_jbpacks[id] -= Obtener1
  393. CTCuchillo[id] = 0
  394. TCuchillo[id] = 0
  395. Destapador[id] = 1
  396. Hacha[id] = 0
  397. Machete[id] = 0
  398. Motocierra[id] = 0
  399.  
  400.  
  401. ham_strip_weapon(id, "weapon_knife")
  402. give_item(id, "weapon_knife")
  403.  
  404. ChatColor(id, "%L", LANG_PLAYER, "BUY_KNIFE1")
  405. emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  406. }
  407. else
  408. {
  409. ChatColor(id, "%L", LANG_PLAYER, "MONEY")
  410. emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  411. }
  412. }
  413.  
  414. case 2:
  415. {
  416. if (g_jbpacks[id] >= Obtener2 && vivo)
  417. {
  418.  
  419. g_jbpacks[id] -= Obtener2
  420. CTCuchillo[id] = 0
  421. TCuchillo[id] = 0
  422. Destapador[id] = 0
  423. Hacha[id] = 1
  424. Machete[id] = 0
  425. Motocierra[id] = 0
  426.  
  427. ham_strip_weapon(id, "weapon_knife")
  428. give_item(id, "weapon_knife")
  429.  
  430. ChatColor(id, "%L", LANG_PLAYER, "BUY_KNIFE2")
  431. emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  432. }
  433. else
  434. {
  435. ChatColor(id, "%L", LANG_PLAYER, "MONEY")
  436. emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  437. }
  438. }
  439.  
  440. case 3:
  441. {
  442. if (g_jbpacks[id] >= Obtener3 && vivo)
  443. {
  444.  
  445. g_jbpacks[id] -= Obtener3
  446. CTCuchillo[id] = 0
  447. TCuchillo[id] = 0
  448. Destapador[id] = 0
  449. Hacha[id] = 0
  450. Machete[id] = 1
  451. Motocierra[id] = 0
  452.  
  453. ham_strip_weapon(id, "weapon_knife")
  454. give_item(id, "weapon_knife")
  455.  
  456. ChatColor(id, "%L", LANG_PLAYER, "BUY_KNIFE3")
  457. emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  458. }
  459. else
  460. {
  461. ChatColor(id, "%L", LANG_PLAYER, "MONEY")
  462. emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  463. }
  464. }
  465.  
  466. case 4:
  467. {
  468. if (g_jbpacks[id] >= Obtener4 && vivo)
  469. {
  470.  
  471. g_jbpacks[id] -= Obtener4
  472. CTCuchillo[id] = 0
  473. TCuchillo[id] = 0
  474. Destapador[id] = 0
  475. Hacha[id] = 0
  476. Machete[id] = 0
  477. Motocierra[id] = 1
  478.  
  479.  
  480. ham_strip_weapon(id, "weapon_knife")
  481. give_item(id, "weapon_knife")
  482.  
  483. ChatColor(id, "%L", LANG_PLAYER, "BUY_KNIFE4")
  484. emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  485. }
  486. else
  487. {
  488. ChatColor(id, "%L", LANG_PLAYER, "MONEY")
  489. emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  490. }
  491. }
  492. }
  493. menu_destroy(menu);
  494. return PLUGIN_HANDLED;
  495. }
  496.  
  497. /*============================================================
  498.   ITEM'S MENU
  499. ============================================================*/
  500. public Tienda(id)
  501. {
  502. if(get_pcvar_num(OnOff))
  503. {
  504. if(get_pcvar_num(OnOff) && Ronda[id])
  505. {
  506. if(is_user_alive(id))
  507. {
  508. if (cs_get_user_team(id) == CS_TEAM_T )
  509. {
  510. new contador=0;
  511. new players[32], num, tempid;
  512.  
  513. get_players(players, num)
  514.  
  515. for (new i=0; i<num; i++)
  516. {
  517. tempid = players[i]
  518.  
  519. if (get_user_team(tempid)==1 && is_user_alive(tempid))
  520. {
  521. contador++;
  522. }
  523. }
  524. if ( contador == 1 )
  525. {
  526. ChatColor(id, "%L", LANG_PLAYER, "LAST")
  527. }
  528. else if ( contador >= 2 )
  529. {
  530. static Item[64]
  531.  
  532. formatex(Item, charsmax(Item),"\y%L", LANG_PLAYER, "SHOP")
  533. new Menu = menu_create(Item, "TiendaHandler")
  534.  
  535. formatex(Item, charsmax(Item),"\w%L \r%d$",LANG_PLAYER, "FLASH", get_pcvar_num(precio1))
  536. menu_additem(Menu, Item, "1")
  537.  
  538. formatex(Item, charsmax(Item),"\w%L \r%d$",LANG_PLAYER, "HE", get_pcvar_num(precio2))
  539. menu_additem(Menu, Item, "2")
  540.  
  541. formatex(Item, charsmax(Item),"\w%L \r%d$",LANG_PLAYER, "HEFLASH", get_pcvar_num(precio3))
  542. menu_additem(Menu, Item, "3")
  543.  
  544. formatex(Item, charsmax(Item),"\w%L \r%d$",LANG_PLAYER, "FOOTSTEPS", get_pcvar_num(precio4))
  545. menu_additem(Menu, Item, "4")
  546.  
  547. formatex(Item, charsmax(Item),"\w%L \r%d$",LANG_PLAYER, "SPEED", get_pcvar_num(precio5))
  548. menu_additem(Menu, Item, "5")
  549.  
  550. formatex(Item, charsmax(Item),"\w%L \r%d$",LANG_PLAYER, "DRUGS", get_pcvar_num(precio6))
  551. menu_additem(Menu, Item, "6")
  552.  
  553. formatex(Item, charsmax(Item),"\w%L \r%d$",LANG_PLAYER, "GLOCK", get_pcvar_num(precio7))
  554. menu_additem(Menu, Item, "7")
  555.  
  556. menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL)
  557. menu_display(id, Menu)
  558. }
  559. }
  560. else
  561. {
  562. ChatColor(id, "%L", LANG_PLAYER, "ONLY")
  563. }
  564. }
  565. else
  566. {
  567. ChatColor(id, "%L", LANG_PLAYER, "DEAD")
  568. }
  569. }
  570. else
  571. {
  572. ChatColor(id, "%L", LANG_PLAYER, "ONE_TIME")
  573. }
  574. }
  575. else
  576. {
  577. ChatColor(id, "%L", LANG_PLAYER, "SHOP_OFF")
  578. }
  579. return PLUGIN_HANDLED
  580. }
  581.  
  582.  
  583. public TiendaHandler(id, menu, item)
  584. {
  585. if( item == MENU_EXIT )
  586. {
  587. menu_destroy(menu);
  588. return PLUGIN_HANDLED;
  589. }
  590. new data[6], iName[64];
  591. new access, callback;
  592. menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  593. new vivo = is_user_alive(id)
  594. new gmsg_SetFOV = get_user_msgid("SetFOV")
  595. new Obtener1 = get_pcvar_num(precio1)
  596. new Obtener2 = get_pcvar_num(precio2)
  597. new Obtener3 = get_pcvar_num(precio3)
  598. new Obtener4 = get_pcvar_num(precio4)
  599. new Obtener5 = get_pcvar_num(precio5)
  600. new Obtener6 = get_pcvar_num(precio6)
  601. new Obtener7 = get_pcvar_num(precio7)
  602. new vida1 = get_user_health(id)
  603. new vida2 = get_pcvar_num(Vida)
  604. new armor1 = get_user_armor(id)
  605. new armor2 = get_pcvar_num(Armor)
  606.  
  607. new key = str_to_num(data);
  608. switch(key)
  609. {
  610. case 1:
  611. {
  612. if (g_jbpacks[id] >= Obtener1 && vivo)
  613. {
  614. g_jbpacks[id] -= Obtener1
  615. ChatColor(id, "%L", LANG_PLAYER, "BUY_FLASH")
  616. give_item(id, "weapon_flashbang")
  617. give_item(id, "weapon_flashbang")
  618. emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  619. Ronda[id] = 0
  620. }
  621. else
  622. {
  623. ChatColor(id, "%L", LANG_PLAYER, "MONEY")
  624. emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  625. }
  626. }
  627. case 2:
  628. {
  629.  
  630. if (g_jbpacks[id] >= Obtener2 && vivo)
  631. {
  632. g_jbpacks[id] -= Obtener2
  633. ChatColor(id, "%L", LANG_PLAYER, "BUY_HE")
  634. give_item(id, "weapon_hegrenade")
  635. emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  636. Ronda[id] = 0
  637. }
  638. else
  639. {
  640. ChatColor(id, "%L", LANG_PLAYER, "MONEY")
  641. emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  642. }
  643. }
  644. case 3:
  645. {
  646.  
  647. if (g_jbpacks[id] >= Obtener3 && vivo)
  648. {
  649. g_jbpacks[id] -= Obtener3
  650. ChatColor(id, "%L", LANG_PLAYER, "BUY_HEFLASH")
  651. give_item(id, "weapon_hegrenade")
  652. give_item(id, "weapon_flashbang")
  653. give_item(id, "weapon_flashbang")
  654. emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  655. Ronda[id] = 0
  656. }
  657. else
  658. {
  659. ChatColor(id, "%L", LANG_PLAYER, "MONEY")
  660. emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  661. }
  662. }
  663. case 4:
  664. {
  665.  
  666. if (g_jbpacks[id] >= Obtener4 && vivo)
  667. {
  668. g_jbpacks[id] -= Obtener4
  669. ChatColor(id, "%L", LANG_PLAYER, "BUY_FOOTSTEPS")
  670. set_user_footsteps(id, 1)
  671. emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  672. Ronda[id] = 0
  673. }
  674. else
  675. {
  676. ChatColor(id, "%L", LANG_PLAYER, "MONEY")
  677. emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  678. }
  679. }
  680. case 5:
  681. {
  682. if (g_jbpacks[id] >= Obtener5 && vivo)
  683. {
  684. g_jbpacks[id] -= Obtener5
  685. ChatColor(id, "%L", LANG_PLAYER, "BUY_SPEED")
  686. set_user_maxspeed(id, 500.0)
  687. Speed[id] = 1
  688. emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  689. Ronda[id] = 0
  690. }
  691. else
  692. {
  693. ChatColor(id, "%L", LANG_PLAYER, "MONEY")
  694. emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  695. }
  696. }
  697. case 6:
  698. {
  699. if (g_jbpacks[id] >= Obtener6 && vivo)
  700. {
  701. g_jbpacks[id] -= Obtener6
  702. ChatColor(id, "%L", LANG_PLAYER, "BUY_DRUGS")
  703. set_user_armor(id, armor1 + armor2)
  704. set_user_health(id, vida1 + vida2)
  705. set_user_maxspeed(id, 380.0)
  706. Speed2[id] = 1
  707. message_begin( MSG_ONE, gmsg_SetFOV, { 0, 0, 0 }, id )
  708. write_byte( 180 )
  709. message_end( )
  710. emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  711. Ronda[id] = 0
  712. }
  713. else
  714. {
  715. ChatColor(id, "%L", LANG_PLAYER, "MONEY")
  716. emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  717. }
  718. }
  719. case 7:
  720. {
  721. if (g_jbpacks[id] >= Obtener7 && vivo)
  722. {
  723. g_jbpacks[id] -= Obtener7
  724. ChatColor(id, "%L", LANG_PLAYER, "BUY_GLOCK")
  725. cs_set_weapon_ammo( give_item( id, "weapon_glock18" ), get_pcvar_num(glock1))
  726. cs_set_user_bpammo(id, CSW_GLOCK18, get_pcvar_num(glock2))
  727. emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  728. Ronda[id] = 0
  729. }
  730. else
  731. {
  732. ChatColor(id, "%L", LANG_PLAYER, "MONEY")
  733. emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  734. }
  735. }
  736. }
  737. menu_destroy(menu);
  738. return PLUGIN_HANDLED;
  739. }
  740.  
  741. public client_putinserver(id)
  742. {
  743. g_jbpacks[id] = get_pcvar_num(g_startjp)
  744. set_task(1.0, "JailbreakPacks", id, _, _, "b")
  745. }
  746.  
  747. public JailbreakPacks(id)
  748. {
  749. set_hudmessage(142, 239, 39, 0.50, 0.90, 0, 6.0, 2.5)
  750. ShowSyncHudMsg(id, syncObj,"JBPacks: %i", g_jbpacks[id])
  751. }
  752.  
  753. public duel_menu(id)
  754. {
  755. if (!is_user_admin(id))
  756. {
  757. ChatColor(id, "%L", LANG_PLAYER, "CANT")
  758. return PLUGIN_HANDLED
  759. }
  760.  
  761. static opcion[64]
  762.  
  763. formatex(opcion, charsmax(opcion),"\y%L", LANG_PLAYER, "JBPACKS")
  764. new iMenu = menu_create(opcion, "menu")
  765.  
  766. formatex(opcion, charsmax(opcion),"\w%L", LANG_PLAYER, "GIVE_JBPACKS")
  767. menu_additem(iMenu, opcion, "1")
  768.  
  769. formatex(opcion, charsmax(opcion),"\w%L", LANG_PLAYER, "TAKE_JBPACKS")
  770. menu_additem(iMenu, opcion, "2")
  771.  
  772. menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)
  773. menu_display(id, iMenu, 0)
  774.  
  775. return PLUGIN_HANDLED
  776. }
  777.  
  778. public menu(id, menu, item)
  779. {
  780.  
  781. if (item == MENU_EXIT)
  782. {
  783. menu_destroy(menu)
  784. return PLUGIN_HANDLED
  785. }
  786.  
  787. new Data[6], Name[64]
  788. new Access, Callback
  789.  
  790. menu_item_getinfo(menu, item, Access, Data,5, Name, 63, Callback)
  791.  
  792. new Key = str_to_num(Data)
  793.  
  794. switch (Key)
  795. {
  796. case 1:
  797. {
  798. regalar[id] = 1
  799. quitar[id] = 0
  800. escojer(id)
  801. }
  802. case 2:
  803. {
  804. quitar[id] = 1
  805. regalar[id] = 0
  806. escojer(id)
  807. }
  808. }
  809.  
  810. menu_destroy(menu)
  811. return PLUGIN_HANDLED
  812. }
  813.  
  814.  
  815. public escojer(id)
  816. {
  817. static opcion[64]
  818.  
  819. formatex(opcion, charsmax(opcion),"\y%L", LANG_PLAYER, "CHOOSE")
  820. new iMenu = menu_create(opcion, "choose")
  821.  
  822. new players[32], pnum, tempid
  823. new szName[32], szTempid[10]
  824.  
  825. get_players(players, pnum, "a")
  826.  
  827. for( new i; i<pnum; i++ )
  828. {
  829. tempid = players[i]
  830.  
  831. get_user_name(tempid, szName, 31)
  832. num_to_str(tempid, szTempid, 9)
  833.  
  834. formatex(opcion, charsmax(opcion), "\w%s \rJbPacks[%d]", szName, g_jbpacks[tempid])
  835. menu_additem(iMenu, opcion, szTempid, 0)
  836. }
  837.  
  838. menu_display(id, iMenu)
  839. return PLUGIN_HANDLED
  840. }
  841.  
  842. public choose(id, menu, item)
  843. {
  844. if( item == MENU_EXIT )
  845. {
  846. menu_destroy(menu)
  847. return PLUGIN_HANDLED
  848. }
  849.  
  850. new Data[6], Name[64]
  851. new Access, Callback
  852. menu_item_getinfo(menu, item, Access, Data,5, Name, 63, Callback)
  853.  
  854. new tempid = str_to_num(Data)
  855.  
  856. gidPlayer[id] = tempid
  857. client_cmd(id, "messagemode JbPacks")
  858.  
  859. menu_destroy(menu)
  860. return PLUGIN_HANDLED
  861. }
  862.  
  863. public player(id)
  864. {
  865. new say[300]
  866. read_args(say, charsmax(say))
  867.  
  868. remove_quotes(say)
  869.  
  870. if(!is_str_num(say) || equal(say, ""))
  871. return PLUGIN_HANDLED
  872.  
  873. jbpacks(id, say)
  874.  
  875. return PLUGIN_CONTINUE
  876. }
  877.  
  878. jbpacks(id, say[]) {
  879. new amount = str_to_num(say)
  880. new victim = gidPlayer[id]
  881.  
  882. new vname[32]
  883.  
  884. if(victim > 0)
  885. {
  886. get_user_name(victim, vname, 31)
  887.  
  888. if(regalar[id])
  889. {
  890. if(amount > get_pcvar_num(g_maxjp))
  891. {
  892. g_jbpacks[victim] = get_pcvar_num(g_maxjp)
  893. }
  894. else
  895. {
  896. g_jbpacks[victim] = g_jbpacks[victim] + amount
  897. }
  898. ChatColor(0, "%L", LANG_PLAYER, "GIVE_MSG", amount, vname)
  899. }
  900. if(quitar[id])
  901. {
  902. if(amount > g_jbpacks[victim])
  903. {
  904. g_jbpacks[victim] = 0
  905. ChatColor(0, "%L", LANG_PLAYER, "TAKE_ALL", vname)
  906. }
  907. else
  908. {
  909. g_jbpacks[victim] = g_jbpacks[victim] - amount
  910. ChatColor(0, "%L", LANG_PLAYER, "TAKE_MSG", amount, vname)
  911. }
  912.  
  913. }
  914. }
  915.  
  916. return PLUGIN_HANDLED
  917. }
  918.  
  919. public Fwd_PlayerSpawn_Post(id)
  920. {
  921. if (is_user_alive(id))
  922. {
  923. if(get_user_team(id) == 1) strip_user_weapons(id); give_item(id, "weapon_knife")
  924.  
  925. set_user_footsteps(id, 0)
  926. Speed[id] = 0
  927. Speed2[id] = 0
  928. Ronda[id] = 1
  929. CTCuchillo[id] = 1
  930. TCuchillo[id] = 1
  931. Destapador[id] = 0
  932. Hacha[id] = 0
  933. Machete[id] = 0
  934. Motocierra[id] = 0
  935. Tienda1(id)
  936. if(get_pcvar_num(help)) ChatColor(id, "%L", LANG_PLAYER, "HELP")
  937. }
  938. }
  939.  
  940. public FwdTakeDamage(victim, inflictor, attacker, Float:damage, damage_bits)
  941. {
  942.  
  943. if (is_valid_player(attacker) && get_user_weapon(attacker) == CSW_KNIFE)
  944. {
  945. switch(get_user_team(attacker))
  946. {
  947. case 1:
  948. {
  949. if(TCuchillo[attacker])
  950. {
  951.  
  952. SetHamParamFloat(4, get_pcvar_float(TDefaultDano))
  953.  
  954. if(get_pdata_int(victim, 75) == HIT_HEAD)
  955. {
  956. SetHamParamFloat(4, get_pcvar_float(hTDefaultDano))
  957. }
  958. }
  959.  
  960. if(Destapador[attacker])
  961. {
  962. SetHamParamFloat(4, get_pcvar_float(PaloDano))
  963.  
  964. if(get_pdata_int(victim, 75) == HIT_HEAD)
  965. {
  966. SetHamParamFloat(4, get_pcvar_float(hPaloDano))
  967. }
  968. }
  969.  
  970. if(Hacha[attacker])
  971. {
  972. SetHamParamFloat(4, get_pcvar_float(HachaDano))
  973.  
  974. if(get_pdata_int(victim, 75) == HIT_HEAD)
  975. {
  976. SetHamParamFloat(4, get_pcvar_float(hHachaDano))
  977. }
  978. }
  979.  
  980. if(Machete[attacker])
  981. {
  982. SetHamParamFloat(4, get_pcvar_float(MacheteDano))
  983.  
  984. if(get_pdata_int(victim, 75) == HIT_HEAD)
  985. {
  986. SetHamParamFloat(4, get_pcvar_float(hMacheteDano))
  987. }
  988. }
  989.  
  990. if(Motocierra[attacker])
  991. {
  992. SetHamParamFloat(4, get_pcvar_float(MotocierraDano))
  993. }
  994. }
  995. case 2:
  996. {
  997. if(CTCuchillo[attacker])
  998. {
  999. SetHamParamFloat(4, get_pcvar_float(CTDefaultDano))
  1000.  
  1001. if(get_pdata_int(victim, 75) == HIT_HEAD)
  1002. {
  1003. SetHamParamFloat(4, get_pcvar_float(hCTDefaultDano))
  1004. }
  1005. }
  1006. }
  1007. }
  1008. }
  1009. return HAM_HANDLED
  1010. }
  1011.  
  1012. public fw_player_killed(victim, attacker, shouldgib)
  1013. {
  1014. if(get_user_team(attacker) == 1)
  1015. {
  1016. g_jbpacks[attacker] += get_pcvar_num(g_killjp)
  1017.  
  1018. if(get_pdata_int(victim, 75) == HIT_HEAD)
  1019. {
  1020. g_jbpacks[attacker] += get_pcvar_num(g_killhsjp)
  1021. }
  1022. }
  1023. }
  1024.  
  1025.  
  1026. public Event_Change_Weapon(id)
  1027. {
  1028. new weaponID = read_data(2)
  1029.  
  1030. switch (get_user_team(id))
  1031. {
  1032. case 1:
  1033. {
  1034. if(Speed[id])
  1035. {
  1036. set_user_maxspeed(id, 500.0)
  1037. }
  1038.  
  1039. if(Speed2[id])
  1040. {
  1041. set_user_maxspeed(id, 380.0)
  1042. }
  1043.  
  1044. if(weaponID == CSW_KNIFE && get_pcvar_num(OnOff2))
  1045. {
  1046. if(TCuchillo[id])
  1047. {
  1048. set_pev(id, pev_viewmodel2, VIEW_MODELT)
  1049. set_pev(id, pev_weaponmodel2, PLAYER_MODELT)
  1050. }
  1051.  
  1052. if(Destapador[id])
  1053. {
  1054. set_pev(id, pev_viewmodel2, VIEW_Palo)
  1055. set_pev(id, pev_weaponmodel2, PLAYER_Palo)
  1056. }
  1057.  
  1058. if(Hacha[id])
  1059. {
  1060. set_pev(id, pev_viewmodel2, VIEW_Hacha)
  1061. set_pev(id, pev_weaponmodel2, PLAYER_Hacha)
  1062. }
  1063.  
  1064. if(Machete[id])
  1065. {
  1066. set_pev(id, pev_viewmodel2, VIEW_Machete)
  1067. set_pev(id, pev_weaponmodel2, PLAYER_Machete)
  1068. }
  1069.  
  1070. if(Motocierra[id])
  1071. {
  1072. set_pev(id, pev_viewmodel2, VIEW_Moto)
  1073. set_pev(id, pev_weaponmodel2, PLAYER_Moto)
  1074. }
  1075.  
  1076.  
  1077. }
  1078. }
  1079. case 2:
  1080. {
  1081. if(CTCuchillo[id] && weaponID == CSW_KNIFE)
  1082. {
  1083. set_pev(id, pev_viewmodel2, VIEW_MODELCT)
  1084. set_pev(id, pev_weaponmodel2, PLAYER_MODELCT)
  1085. }
  1086. }
  1087. }
  1088. return PLUGIN_CONTINUE
  1089. }
  1090.  
  1091. public fw_SetModel(entity, model[])
  1092. {
  1093. if(!pev_valid(entity))
  1094. return FMRES_IGNORED
  1095.  
  1096. if(!equali(model, OLDWORLD_MODEL))
  1097. return FMRES_IGNORED
  1098.  
  1099. new className[33]
  1100. pev(entity, pev_classname, className, 32)
  1101.  
  1102. if(equal(className, "weaponbox") || equal(className, "armoury_entity") || equal(className, "grenade"))
  1103. {
  1104. engfunc(EngFunc_SetModel, entity, WORLD_MODEL)
  1105. return FMRES_SUPERCEDE
  1106. }
  1107. return FMRES_IGNORED
  1108. }
  1109.  
  1110. public Fwd_EmitSound(id, channel, const sample[], Float:volume, Float:attn, flags, pitch)
  1111. {
  1112.  
  1113. if (!is_user_connected(id))
  1114. return FMRES_IGNORED;
  1115.  
  1116. if(CTCuchillo[id])
  1117. {
  1118. if(get_user_team(id) == 2)
  1119. {
  1120. if (equal(sample[8], "kni", 3))
  1121. {
  1122. if (equal(sample[14], "sla", 3))
  1123. {
  1124. switch (random_num(1, 2))
  1125. {
  1126. case 1: engfunc(EngFunc_EmitSound, id, channel, ct_slash1, volume, attn, flags, pitch)
  1127. case 2: engfunc(EngFunc_EmitSound, id, channel, ct_slash2, volume, attn, flags, pitch)
  1128. }
  1129.  
  1130. return FMRES_SUPERCEDE;
  1131. }
  1132. if(equal(sample,"weapons/knife_deploy1.wav"))
  1133. {
  1134. engfunc(EngFunc_EmitSound, id, channel, ct_deploy, volume, attn, flags, pitch)
  1135. return FMRES_SUPERCEDE;
  1136. }
  1137. if (equal(sample[14], "hit", 3))
  1138. {
  1139. if (sample[17] == 'w')
  1140. {
  1141. engfunc(EngFunc_EmitSound, id, channel, ct_wall, volume, attn, flags, pitch)
  1142. return FMRES_SUPERCEDE;
  1143. }
  1144. else
  1145. {
  1146. switch (random_num(1, 4))
  1147. {
  1148. case 1: engfunc(EngFunc_EmitSound, id, channel, ct_hit1, volume, attn, flags, pitch)
  1149. case 2: engfunc(EngFunc_EmitSound, id, channel, ct_hit2, volume, attn, flags, pitch)
  1150. case 3: engfunc(EngFunc_EmitSound, id, channel, ct_hit3, volume, attn, flags, pitch)
  1151. case 4: engfunc(EngFunc_EmitSound, id, channel, ct_hit4, volume, attn, flags, pitch)
  1152. }
  1153.  
  1154. return FMRES_SUPERCEDE;
  1155. }
  1156. }
  1157. if (equal(sample[14], "sta", 3))
  1158. {
  1159. engfunc(EngFunc_EmitSound, id, channel, ct_stab, volume, attn, flags, pitch)
  1160. return FMRES_SUPERCEDE;
  1161. }
  1162. }
  1163. }
  1164. }
  1165.  
  1166. if(TCuchillo[id])
  1167. {
  1168. if(get_user_team(id) == 1)
  1169. {
  1170. if (equal(sample[8], "kni", 3))
  1171. {
  1172. if (equal(sample[14], "sla", 3))
  1173. {
  1174. switch (random_num(1, 2))
  1175. {
  1176. case 1: engfunc(EngFunc_EmitSound, id, channel, t_slash1, volume, attn, flags, pitch)
  1177. case 2: engfunc(EngFunc_EmitSound, id, channel, t_slash2, volume, attn, flags, pitch)
  1178. }
  1179.  
  1180. return FMRES_SUPERCEDE;
  1181. }
  1182. if(equal(sample,"weapons/knife_deploy1.wav"))
  1183. {
  1184. engfunc(EngFunc_EmitSound, id, channel, t_deploy, volume, attn, flags, pitch)
  1185. return FMRES_SUPERCEDE;
  1186. }
  1187. if (equal(sample[14], "hit", 3))
  1188. {
  1189. if (sample[17] == 'w')
  1190. {
  1191. engfunc(EngFunc_EmitSound, id, channel, t_wall, volume, attn, flags, pitch)
  1192. return FMRES_SUPERCEDE;
  1193. }
  1194. else
  1195. {
  1196. switch (random_num(1, 4))
  1197. {
  1198. case 1: engfunc(EngFunc_EmitSound, id, channel, t_hit1, volume, attn, flags, pitch)
  1199. case 2: engfunc(EngFunc_EmitSound, id, channel, t_hit2, volume, attn, flags, pitch)
  1200. case 3: engfunc(EngFunc_EmitSound, id, channel, t_hit3, volume, attn, flags, pitch)
  1201. case 4: engfunc(EngFunc_EmitSound, id, channel, t_hit4, volume, attn, flags, pitch)
  1202. }
  1203.  
  1204. return FMRES_SUPERCEDE;
  1205. }
  1206. }
  1207. if (equal(sample[14], "sta", 3))
  1208. {
  1209. engfunc(EngFunc_EmitSound, id, channel, t_stab, volume, attn, flags, pitch)
  1210. return FMRES_SUPERCEDE;
  1211. }
  1212. }
  1213. }
  1214. }
  1215.  
  1216. if(Destapador[id])
  1217. {
  1218. if (equal(sample[8], "kni", 3))
  1219. {
  1220. if (equal(sample[14], "sla", 3))
  1221. {
  1222. switch (random_num(1, 2))
  1223. {
  1224. case 1: engfunc(EngFunc_EmitSound, id, channel, palo_slash1, volume, attn, flags, pitch)
  1225. case 2: engfunc(EngFunc_EmitSound, id, channel, palo_slash2, volume, attn, flags, pitch)
  1226.  
  1227. }
  1228.  
  1229. return FMRES_SUPERCEDE;
  1230. }
  1231. if(equal(sample,"weapons/knife_deploy1.wav"))
  1232. {
  1233. engfunc(EngFunc_EmitSound, id, channel, palo_deploy, volume, attn, flags, pitch)
  1234. return FMRES_SUPERCEDE;
  1235. }
  1236. if (equal(sample[14], "hit", 3))
  1237. {
  1238. if (sample[17] == 'w')
  1239. {
  1240. engfunc(EngFunc_EmitSound, id, channel, palo_wall, volume, attn, flags, pitch)
  1241. return FMRES_SUPERCEDE;
  1242. }
  1243. else
  1244. {
  1245. switch (random_num(1, 4))
  1246. {
  1247. case 1:engfunc(EngFunc_EmitSound, id, channel, palo_hit1, volume, attn, flags, pitch)
  1248. case 2:engfunc(EngFunc_EmitSound, id, channel, palo_hit2, volume, attn, flags, pitch)
  1249. case 3:engfunc(EngFunc_EmitSound, id, channel, palo_hit3, volume, attn, flags, pitch)
  1250. case 4:engfunc(EngFunc_EmitSound, id, channel, palo_hit4, volume, attn, flags, pitch)
  1251. }
  1252.  
  1253. return FMRES_SUPERCEDE;
  1254. }
  1255. }
  1256. if (equal(sample[14], "sta", 3))
  1257. {
  1258. engfunc(EngFunc_EmitSound, id, channel, palo_stab, volume, attn, flags, pitch)
  1259. return FMRES_SUPERCEDE;
  1260. }
  1261. }
  1262. }
  1263.  
  1264. if(Hacha[id])
  1265. {
  1266.  
  1267. if (equal(sample[8], "kni", 3))
  1268. {
  1269. if (equal(sample[14], "sla", 3))
  1270. {
  1271. switch (random_num(1, 2))
  1272. {
  1273. case 1: engfunc(EngFunc_EmitSound, id, channel, hacha_slash1, volume, attn, flags, pitch)
  1274. case 2: engfunc(EngFunc_EmitSound, id, channel, hacha_slash2, volume, attn, flags, pitch)
  1275. }
  1276.  
  1277. return FMRES_SUPERCEDE;
  1278. }
  1279. if(equal(sample,"weapons/knife_deploy1.wav"))
  1280. {
  1281. engfunc(EngFunc_EmitSound, id, channel, hacha_deploy, volume, attn, flags, pitch)
  1282. return FMRES_SUPERCEDE;
  1283. }
  1284. if (equal(sample[14], "hit", 3))
  1285. {
  1286. if (sample[17] == 'w')
  1287. {
  1288. engfunc(EngFunc_EmitSound, id, channel, hacha_wall, volume, attn, flags, pitch)
  1289. return FMRES_SUPERCEDE;
  1290. }
  1291. else
  1292. {
  1293. switch (random_num(1, 3))
  1294. {
  1295. case 1: engfunc(EngFunc_EmitSound, id, channel, hacha_hit1, volume, attn, flags, pitch)
  1296. case 2: engfunc(EngFunc_EmitSound, id, channel, hacha_hit2, volume, attn, flags, pitch)
  1297. case 3: engfunc(EngFunc_EmitSound, id, channel, hacha_hit3, volume, attn, flags, pitch)
  1298. }
  1299.  
  1300. return FMRES_SUPERCEDE;
  1301. }
  1302. }
  1303. if (equal(sample[14], "sta", 3))
  1304. {
  1305. engfunc(EngFunc_EmitSound, id, channel, hacha_stab, volume, attn, flags, pitch)
  1306. return FMRES_SUPERCEDE;
  1307. }
  1308. }
  1309. }
  1310.  
  1311. if(Machete[id])
  1312. {
  1313. if (equal(sample[8], "kni", 3))
  1314. {
  1315. if (equal(sample[14], "sla", 3))
  1316. {
  1317. switch (random_num(1, 2))
  1318. {
  1319. case 1: engfunc(EngFunc_EmitSound, id, channel, machete_slash1, volume, attn, flags, pitch)
  1320. case 2: engfunc(EngFunc_EmitSound, id, channel, machete_slash2, volume, attn, flags, pitch)
  1321. }
  1322. return FMRES_SUPERCEDE;
  1323. }
  1324. if(equal(sample,"weapons/knife_deploy1.wav"))
  1325. {
  1326. engfunc(EngFunc_EmitSound, id, channel, machete_deploy, volume, attn, flags, pitch)
  1327. return FMRES_SUPERCEDE;
  1328. }
  1329. if (equal(sample[14], "hit", 3))
  1330. {
  1331. if (sample[17] == 'w')
  1332. {
  1333. engfunc(EngFunc_EmitSound, id, channel, machete_wall, volume, attn, flags, pitch)
  1334. return FMRES_SUPERCEDE;
  1335. }
  1336. else // hit
  1337. {
  1338. switch (random_num(1, 4))
  1339. {
  1340. case 1: engfunc(EngFunc_EmitSound, id, channel, machete_hit1, volume, attn, flags, pitch)
  1341. case 2: engfunc(EngFunc_EmitSound, id, channel, machete_hit2, volume, attn, flags, pitch)
  1342. case 3: engfunc(EngFunc_EmitSound, id, channel, machete_hit3, volume, attn, flags, pitch)
  1343. case 4: engfunc(EngFunc_EmitSound, id, channel, machete_hit4, volume, attn, flags, pitch)
  1344. }
  1345. return FMRES_SUPERCEDE;
  1346. }
  1347. }
  1348. if (equal(sample[14], "sta", 3))
  1349. {
  1350. engfunc(EngFunc_EmitSound, id, channel, machete_stab, volume, attn, flags, pitch)
  1351. return FMRES_SUPERCEDE;
  1352. }
  1353. }
  1354. }
  1355.  
  1356. if(Motocierra[id])
  1357. {
  1358.  
  1359. if (equal(sample[8], "kni", 3))
  1360. {
  1361. if (equal(sample[14], "sla", 3))
  1362. {
  1363. engfunc(EngFunc_EmitSound, id, channel, motocierra_slash, volume, attn, flags, pitch)
  1364. return FMRES_SUPERCEDE;
  1365. }
  1366. if(equal(sample,"weapons/knife_deploy1.wav"))
  1367. {
  1368. engfunc(EngFunc_EmitSound, id, channel, motocierra_deploy, volume, attn, flags, pitch)
  1369. return FMRES_SUPERCEDE;
  1370. }
  1371. if (equal(sample[14], "hit", 3))
  1372. {
  1373. if (sample[17] == 'w')
  1374. {
  1375. engfunc(EngFunc_EmitSound, id, channel, motocierra_wall, volume, attn, flags, pitch)
  1376. return FMRES_SUPERCEDE;
  1377. }
  1378. else
  1379. {
  1380. switch (random_num(1, 2))
  1381. {
  1382. case 1: engfunc(EngFunc_EmitSound, id, channel, motocierra_hit1, volume, attn, flags, pitch)
  1383. case 2: engfunc(EngFunc_EmitSound, id, channel, motocierra_hit2, volume, attn, flags, pitch)
  1384.  
  1385. }
  1386. return FMRES_SUPERCEDE;
  1387. }
  1388. }
  1389. if (equal(sample[14], "sta", 3))
  1390. {
  1391. engfunc(EngFunc_EmitSound, id, channel, motocierra_stab, volume, attn, flags, pitch)
  1392. return FMRES_SUPERCEDE;
  1393. }
  1394. }
  1395. }
  1396. return FMRES_IGNORED;
  1397. }
  1398.  
  1399. /*============================================================
  1400.   Stocks!
  1401. ============================================================*/
  1402. stock ChatColor(const id, const input[], any:...)
  1403. {
  1404. new count = 1, players[32]
  1405. static msg[191]
  1406. vformat(msg, 190, input, 3)
  1407.  
  1408. replace_all(msg, 190, "!g", "^4") // Green Color
  1409. replace_all(msg, 190, "!y", "^1") // Default Color
  1410. replace_all(msg, 190, "!team", "^3") // Team Color
  1411.  
  1412.  
  1413. if (id) players[0] = id; else get_players(players, count, "ch")
  1414. {
  1415. for (new i = 0; i < count; i++)
  1416. {
  1417. if (is_user_connected(players[i]))
  1418. {
  1419. message_begin(MSG_ONE_UNRELIABLE, g_iMsgSayText, _, players[i])
  1420. write_byte(players[i]);
  1421. write_string(msg);
  1422. message_end();
  1423. }
  1424. }
  1425. }
  1426. }
  1427.  
  1428. stock ham_strip_weapon(id,weapon[])
  1429. {
  1430. if(!equal(weapon,"weapon_",7)) return 0;
  1431.  
  1432. new wId = get_weaponid(weapon);
  1433. if(!wId) return 0;
  1434.  
  1435. new wEnt;
  1436. while((wEnt = engfunc(EngFunc_FindEntityByString,wEnt,"classname",weapon)) && pev(wEnt,pev_owner) != id) {}
  1437. if(!wEnt) return 0;
  1438.  
  1439. if(get_user_weapon(id) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon,wEnt);
  1440.  
  1441. if(!ExecuteHamB(Ham_RemovePlayerItem,id,wEnt)) return 0;
  1442. ExecuteHamB(Ham_Item_Kill,wEnt);
  1443.  
  1444. set_pev(id,pev_weapons,pev(id,pev_weapons) & ~(1<<wId));
  1445.  
  1446. return 1;
  1447. }
  1448. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  1449. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1034\\ f0\\ fs16 \n\\ par }
  1450. */
  1451.  

_________________
-----------------------------------------------------------------------------------------------------------
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Ajándék a szervertől (JailBreak)
HozzászólásElküldve: 2013.06.15. 22:23 
Offline
Veterán
Avatar

Csatlakozott: 2012.09.01. 22:19
Hozzászólások: 1697
Megköszönt másnak: 26 alkalommal
Megköszönték neki: 302 alkalommal
beleírtam:

SMA Forráskód: [ Mindet kijelol ]
  1. /*
  2. *
  3. * Plugin: JailBreak Shop
  4. * Autor: MaNuCs
  5. *
  6. * Credits: rubee
  7. * Gladius
  8. * capostrike93
  9. * apu
  10. */
  11.  
  12. #include <amxmodx>
  13. #include <amxmisc>
  14. #include <hamsandwich>
  15. #include <cstrike>
  16. #include <fakemeta>
  17. #include <fun>
  18.  
  19. #define is_valid_player(%1) (1 <= %1 <= 32)
  20.  
  21. /*============================================================
  22. Variables
  23. ============================================================*/
  24.  
  25. new
  26. OnOff,
  27. OnOff2,
  28. precio1,
  29. precio2,
  30. precio3,
  31. precio4,
  32. precio5,
  33. precio6,
  34. precio7,
  35. precioC1,
  36. precioC2,
  37. precioC3,
  38. precioC4,
  39. CTDefaultDano,
  40. TDefaultDano,
  41. PaloDano,
  42. HachaDano,
  43. MacheteDano,
  44. MotocierraDano,
  45. hTDefaultDano,
  46. hCTDefaultDano,
  47. hPaloDano,
  48. hHachaDano,
  49. hMacheteDano,
  50. Vida,
  51. Armor,
  52. glock1,
  53. glock2,
  54. help,
  55. g_killjp,
  56. g_killhsjp,
  57. g_startjp,
  58. g_maxjp,
  59. g_iMsgSayText,
  60. syncObj,
  61. Ronda[33],
  62. Speed[33],
  63. Speed2[33],
  64. TCuchillo[33],
  65. CTCuchillo[33],
  66. Destapador[33],
  67. Hacha[33],
  68. Machete[33],
  69. Motocierra[33],
  70. g_jbpacks[33],
  71. quitar[33],
  72. regalar[33],
  73. gidPlayer[33]
  74.  
  75.  
  76. /*============================================================
  77. Weapon Model's
  78. ============================================================*/
  79.  
  80.  
  81. new VIEW_MODELT[] = "models/jailbreak_shop/v_rabkez.mdl"
  82. new PLAYER_MODELT[] = "models/jailbreak_shop/p_rabkez.mdl"
  83.  
  84. new VIEW_MODELCT[] = "models/jailbreak_shop/v_sokkolo.mdl"
  85. new PLAYER_MODELCT[] = "models/jailbreak_shop/p_sokkolo.mdl"
  86.  
  87. new VIEW_Hacha[] = "models/jailbreak_shop/v_tortalapat.mdl"
  88. new PLAYER_Hacha[] = "models/jailbreak_shop/p_tortalapat.mdl"
  89.  
  90. new VIEW_Machete[] = "models/jailbreak_shop/v_fejsze.mdl"
  91. new PLAYER_Machete[] = "models/jailbreak_shop/p_fejsze.mdl"
  92.  
  93. new VIEW_Palo[] = "models/jailbreak_shop/v_wcpumpa.mdl"
  94. new PLAYER_Palo[] = "models/jailbreak_shop/p_wcpumpa.mdl"
  95.  
  96. new VIEW_Moto[] = "models/jailbreak_shop/v_lancfuresz.mdl"
  97. new PLAYER_Moto[] = "models/jailbreak_shop/p_lancfuresz.mdl"
  98.  
  99. new WORLD_MODEL[] = "models/w_knife.mdl"
  100. new OLDWORLD_MODEL[] = "models/w_knife.mdl"
  101.  
  102. /*============================================================
  103.   Shop Sounds!
  104. ============================================================*/
  105. new const Si[] = { "jailbreak_shop/Yes.wav" }
  106. new const No[] = { "jailbreak_shop/No.wav" }
  107.  
  108. /*============================================================
  109.   Weapon Sound's
  110. ============================================================*/
  111.  
  112. new const palo_deploy[] = { "weapons/knife_deploy1.wav" }
  113. new const palo_slash1[] = { "weapons/knife_slash1.wav" }
  114. new const palo_slash2[] = { "weapons/knife_slash2.wav" }
  115. new const palo_wall[] = { "jailbreak_shop/Palo/PHitWall.wav" }
  116. new const palo_hit1[] = { "jailbreak_shop/Palo/PHit1.wav" }
  117. new const palo_hit2[] = { "jailbreak_shop/Palo/PHit2.wav" }
  118. new const palo_hit3[] = { "jailbreak_shop/Palo/PHit3.wav" }
  119. new const palo_hit4[] = { "jailbreak_shop/Palo/PHit4.wav" }
  120. new const palo_stab[] = { "jailbreak_shop/Palo/PStab.wav" }
  121.  
  122. new const hacha_deploy[] = { "weapons/knife_deploy1.wav" }
  123. new const hacha_slash1[] = { "jailbreak_shop/Hacha/HSlash1.wav" }
  124. new const hacha_slash2[] = { "jailbreak_shop/Hacha/HSlash2.wav" }
  125. new const hacha_wall[] = { "jailbreak_shop/Hacha/HHitWall.wav" }
  126. new const hacha_hit1[] = { "jailbreak_shop/Hacha/HHit1.wav" }
  127. new const hacha_hit2[] = { "jailbreak_shop/Hacha/HHit2.wav" }
  128. new const hacha_hit3[] = { "jailbreak_shop/Hacha/HHit3.wav" }
  129. new const hacha_stab[] = { "jailbreak_shop/Hacha/HHit4.wav" }
  130.  
  131. new const machete_deploy[] = { "jailbreak_shop/Machete/MConvoca.wav" }
  132. new const machete_slash1[] = { "jailbreak_shop/Machete/MSlash1.wav" }
  133. new const machete_slash2[] = { "jailbreak_shop/Machete/MSlash2.wav" }
  134. new const machete_wall[] = { "jailbreak_shop/Machete/MHitWall.wav" }
  135. new const machete_hit1[] = { "jailbreak_shop/Machete/MHit1.wav" }
  136. new const machete_hit2[] = { "jailbreak_shop/Machete/MHit2.wav" }
  137. new const machete_hit3[] = { "jailbreak_shop/Machete/MHit3.wav" }
  138. new const machete_hit4[] = { "jailbreak_shop/Machete/MHit4.wav" }
  139. new const machete_stab[] = { "jailbreak_shop/Machete/MStab.wav" }
  140.  
  141. new const motocierra_deploy[] = { "jailbreak_shop/Moto/MTConvoca.wav", }
  142. new const motocierra_slash[] = { "jailbreak_shop/Moto/MTSlash.wav", }
  143. new const motocierra_wall[] = { "jailbreak_shop/Moto/MTHitWall.wav" }
  144. new const motocierra_hit1[] = { "jailbreak_shop/Moto/MTHit1.wav", }
  145. new const motocierra_hit2[] = { "jailbreak_shop/Moto/MTHit2.wav", }
  146. new const motocierra_stab[] = { "jailbreak_shop/Moto/MTStab.wav" }
  147.  
  148. new const t_deploy[] = { "jailbreak_shop/T/TConvoca.wav", }
  149. new const t_slash1[] = { "jailbreak_shop/T/Slash1.wav", }
  150. new const t_slash2[] = { "jailbreak_shop/T/Slash2.wav", }
  151. new const t_wall[] = { "jailbreak_shop/T/THitWall.wav" }
  152. new const t_hit1[] = { "jailbreak_shop/T/THit1.wav", }
  153. new const t_hit2[] = { "jailbreak_shop/T/THit2.wav", }
  154. new const t_hit3[] = { "jailbreak_shop/T/THit3.wav", }
  155. new const t_hit4[] = { "jailbreak_shop/T/THit4.wav", }
  156. new const t_stab[] = { "jailbreak_shop/T/TStab.wav" }
  157.  
  158. new const ct_deploy[] = { "jailbreak_shop/CT/CTConvoca.wav", }
  159. new const ct_slash1[] = { "jailbreak_shop/CT/Slash1.wav", }
  160. new const ct_slash2[] = { "jailbreak_shop/CT/Slash2.wav", }
  161. new const ct_wall[] = { "jailbreak_shop/CT/CTHitWall.wav" }
  162. new const ct_hit1[] = { "jailbreak_shop/CT/CTHit1.wav", }
  163. new const ct_hit2[] = { "jailbreak_shop/CT/CTHit2.wav", }
  164. new const ct_hit3[] = { "jailbreak_shop/CT/CTHit3.wav", }
  165. new const ct_hit4[] = { "jailbreak_shop/CT/CTHit4.wav", }
  166. new const ct_stab[] = { "jailbreak_shop/CT/CTStab.wav" }
  167.  
  168.  
  169. /*============================================================
  170. Config
  171. ============================================================*/
  172.  
  173. public plugin_init()
  174. {
  175.  
  176. register_plugin("[JB] Shop", "2.9", "[M]aNuC[s]_")
  177.  
  178. register_clcmd("say /bolt", "Tienda")
  179. register_clcmd("say !bolt", "Tienda")
  180. register_clcmd("say_team /bolt", "Tienda")
  181. register_clcmd("say_team !bolt", "Tienda")
  182.  
  183. register_clcmd("say /mg", "duel_menu", ADMIN_ALL)
  184. register_clcmd("say !mg", "duel_menu", ADMIN_ALL)
  185. register_clcmd("say_team /mg", "duel_menu", ADMIN_ALL)
  186. register_clcmd("say_team !mg", "duel_menu", ADMIN_ALL)
  187. register_clcmd("JailBreak Pontok", "player")
  188.  
  189. RegisterHam(Ham_Spawn, "player", "Fwd_PlayerSpawn_Post", 1)
  190. RegisterHam(Ham_TakeDamage, "player", "FwdTakeDamage", 0)
  191. RegisterHam(Ham_Killed, "player", "fw_player_killed")
  192.  
  193. register_event("CurWeapon", "Event_Change_Weapon", "be", "1=1")
  194.  
  195. register_forward(FM_SetModel, "fw_SetModel")
  196. register_forward(FM_EmitSound, "Fwd_EmitSound")
  197.  
  198. /*============================================================
  199. Cvar's
  200. ============================================================*/
  201. g_killjp = register_cvar("jb_killJP", "5");
  202. g_killhsjp = register_cvar("jb_bonushsJP", "2");
  203. g_startjp = register_cvar("jb_startJP", "10");
  204. g_maxjp = register_cvar("jb_maxgiveJP", "10000");
  205.  
  206. OnOff = register_cvar("jb_Shop", "1")//1(ON) 0(OFF)
  207. OnOff2 = register_cvar("jb_ShopKnifes", "1")//1(ON) 0(OFF)
  208. help = register_cvar("jb_help", "1")//1(ON) 0(OFF)
  209.  
  210. precio1 = register_cvar("jb_pFlash", "8")
  211. precio2 = register_cvar("jb_pHe", "11")
  212. precio3 = register_cvar("jb_pHEFL", "22")
  213. precio4 = register_cvar("jb_pWalk", "25")
  214. precio5 = register_cvar("jb_pFast", "28")
  215. precio6 = register_cvar("jb_pDrugs", "30")
  216. precio7 = register_cvar("jb_pGlock", "36")
  217.  
  218. precioC1 = register_cvar("jb_pKnife1", "5")
  219. precioC2 = register_cvar("jb_pKnife2", "20")
  220. precioC3 = register_cvar("jb_pKnife3", "25")
  221. precioC4 = register_cvar("jb_pKnife4", "36")
  222.  
  223. TDefaultDano = register_cvar("jb_dKnifeT", "20")
  224. CTDefaultDano = register_cvar("jb_dKnifeCT", "50")
  225. PaloDano = register_cvar("jb_dKnife1", "30")
  226. HachaDano = register_cvar("jb_dKnife2", "60")
  227. MacheteDano = register_cvar("jb_dKnife3", "80")
  228. MotocierraDano = register_cvar("jb_dKnife4", "200")
  229.  
  230. hTDefaultDano = register_cvar("jb_dHsKnifeT", "30")
  231. hCTDefaultDano = register_cvar("jb_dHsKnifeCT", "80")
  232. hPaloDano = register_cvar("jb_dhsKnife1", "45")
  233. hHachaDano = register_cvar("jb_dhsKnife2", "75")
  234. hMacheteDano = register_cvar("jb_dhsKnife3", "95")
  235.  
  236. Vida = register_cvar("jb_drLife", "200")
  237. Armor = register_cvar("jb_drArmor", "200")
  238.  
  239. glock1 = register_cvar("jb_gClip", "20")
  240. glock2 = register_cvar("jb_gAmmo", "0")
  241.  
  242. g_iMsgSayText = get_user_msgid("SayText")
  243. syncObj = CreateHudSyncObj()
  244.  
  245.  
  246. /*============================================================
  247. Multi Lengual!
  248. ============================================================*/
  249. register_dictionary("jbshop.txt")
  250. }
  251.  
  252. /*============================================================
  253. Precaches
  254. ============================================================*/
  255. public plugin_precache()
  256. {
  257. precache_sound(Si)
  258. precache_sound(No)
  259.  
  260. precache_sound(t_deploy)
  261. precache_sound(t_slash1)
  262. precache_sound(t_slash2)
  263. precache_sound(t_stab)
  264. precache_sound(t_wall)
  265. precache_sound(t_hit1)
  266. precache_sound(t_hit2)
  267. precache_sound(t_hit3)
  268. precache_sound(t_hit4)
  269.  
  270. precache_sound(ct_deploy)
  271. precache_sound(ct_slash1)
  272. precache_sound(ct_slash2)
  273. precache_sound(ct_stab)
  274. precache_sound(ct_wall)
  275. precache_sound(ct_hit1)
  276. precache_sound(ct_hit2)
  277. precache_sound(ct_hit3)
  278. precache_sound(ct_hit4)
  279.  
  280. precache_sound(palo_deploy)
  281. precache_sound(palo_slash1)
  282. precache_sound(palo_slash2)
  283. precache_sound(palo_stab)
  284. precache_sound(palo_wall)
  285. precache_sound(palo_hit1)
  286. precache_sound(palo_hit2)
  287. precache_sound(palo_hit3)
  288. precache_sound(palo_hit4)
  289.  
  290. precache_sound(machete_deploy)
  291. precache_sound(machete_slash1)
  292. precache_sound(machete_slash2)
  293. precache_sound(machete_stab)
  294. precache_sound(machete_wall)
  295. precache_sound(machete_hit1)
  296. precache_sound(machete_hit2)
  297. precache_sound(machete_hit3)
  298. precache_sound(machete_hit4)
  299.  
  300. precache_sound(hacha_deploy)
  301. precache_sound(hacha_slash1)
  302. precache_sound(hacha_slash2)
  303. precache_sound(hacha_stab)
  304. precache_sound(hacha_wall)
  305. precache_sound(hacha_hit1)
  306. precache_sound(hacha_hit2)
  307. precache_sound(hacha_hit3)
  308.  
  309. precache_sound(motocierra_deploy)
  310. precache_sound(motocierra_slash)
  311. precache_sound(motocierra_stab)
  312. precache_sound(motocierra_wall)
  313. precache_sound(motocierra_hit1)
  314. precache_sound(motocierra_hit2)
  315.  
  316.  
  317. precache_model(VIEW_MODELT)
  318. precache_model(PLAYER_MODELT)
  319. precache_model(VIEW_MODELCT)
  320. precache_model(PLAYER_MODELCT)
  321. precache_model(VIEW_Palo)
  322. precache_model(PLAYER_Palo)
  323. precache_model(VIEW_Hacha)
  324. precache_model(PLAYER_Hacha)
  325. precache_model(VIEW_Machete)
  326. precache_model(PLAYER_Machete)
  327. precache_model(VIEW_Moto)
  328. precache_model(PLAYER_Moto)
  329. precache_model(WORLD_MODEL)
  330.  
  331. return PLUGIN_CONTINUE
  332. }
  333.  
  334. /*============================================================
  335.   KNIFE SHOP
  336. ============================================================*/
  337. public Tienda1(id)
  338. {
  339. if(get_pcvar_num(OnOff2))
  340. {
  341. if (get_user_team(id) == 1 )
  342. {
  343. static Item[64]
  344.  
  345. formatex(Item, charsmax(Item),"\y%L", LANG_PLAYER, "SHOP")
  346. new Menu = menu_create(Item, "CuchilleroHandler")
  347.  
  348. formatex(Item, charsmax(Item),"\w%L \r%d$",LANG_PLAYER, "KNIFE1", get_pcvar_num(precioC1))
  349. menu_additem(Menu, Item, "1")
  350.  
  351. formatex(Item, charsmax(Item),"\w%L \r%d$",LANG_PLAYER, "KNIFE2", get_pcvar_num(precioC2))
  352. menu_additem(Menu, Item, "2")
  353.  
  354. formatex(Item, charsmax(Item),"\w%L \r%d$",LANG_PLAYER, "KNIFE3", get_pcvar_num(precioC3))
  355. menu_additem(Menu, Item, "3")
  356.  
  357. formatex(Item, charsmax(Item),"\w%L \r%d$",LANG_PLAYER, "KNIFE4", get_pcvar_num(precioC4))
  358. menu_additem(Menu, Item, "4")
  359.  
  360. menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL)
  361. menu_display(id, Menu)
  362. }
  363. }
  364. return PLUGIN_HANDLED
  365. }
  366.  
  367. public CuchilleroHandler(id, menu, item)
  368. {
  369. if( item == MENU_EXIT )
  370. {
  371. menu_destroy(menu);
  372. return PLUGIN_HANDLED;
  373. }
  374. new data[6], iName[64];
  375. new access, callback;
  376. menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  377.  
  378. new vivo = is_user_alive(id)
  379. new Obtener1 = get_pcvar_num(precioC1)
  380. new Obtener2 = get_pcvar_num(precioC2)
  381. new Obtener3 = get_pcvar_num(precioC3)
  382. new Obtener4 = get_pcvar_num(precioC4)
  383.  
  384. new key = str_to_num(data);
  385.  
  386. switch(key)
  387. {
  388. case 1:
  389. {
  390. if (g_jbpacks[id]>= Obtener1 && vivo)
  391. {
  392. g_jbpacks[id] -= Obtener1
  393. CTCuchillo[id] = 0
  394. TCuchillo[id] = 0
  395. Destapador[id] = 1
  396. Hacha[id] = 0
  397. Machete[id] = 0
  398. Motocierra[id] = 0
  399.  
  400.  
  401. ham_strip_weapon(id, "weapon_knife")
  402. give_item(id, "weapon_knife")
  403.  
  404. ChatColor(id, "%L", LANG_PLAYER, "BUY_KNIFE1")
  405. emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  406. }
  407. else
  408. {
  409. ChatColor(id, "%L", LANG_PLAYER, "MONEY")
  410. emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  411. }
  412. }
  413.  
  414. case 2:
  415. {
  416. if (g_jbpacks[id] >= Obtener2 && vivo)
  417. {
  418.  
  419. g_jbpacks[id] -= Obtener2
  420. CTCuchillo[id] = 0
  421. TCuchillo[id] = 0
  422. Destapador[id] = 0
  423. Hacha[id] = 1
  424. Machete[id] = 0
  425. Motocierra[id] = 0
  426.  
  427. ham_strip_weapon(id, "weapon_knife")
  428. give_item(id, "weapon_knife")
  429.  
  430. ChatColor(id, "%L", LANG_PLAYER, "BUY_KNIFE2")
  431. emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  432. }
  433. else
  434. {
  435. ChatColor(id, "%L", LANG_PLAYER, "MONEY")
  436. emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  437. }
  438. }
  439.  
  440. case 3:
  441. {
  442. if (g_jbpacks[id] >= Obtener3 && vivo)
  443. {
  444.  
  445. g_jbpacks[id] -= Obtener3
  446. CTCuchillo[id] = 0
  447. TCuchillo[id] = 0
  448. Destapador[id] = 0
  449. Hacha[id] = 0
  450. Machete[id] = 1
  451. Motocierra[id] = 0
  452.  
  453. ham_strip_weapon(id, "weapon_knife")
  454. give_item(id, "weapon_knife")
  455.  
  456. ChatColor(id, "%L", LANG_PLAYER, "BUY_KNIFE3")
  457. emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  458. }
  459. else
  460. {
  461. ChatColor(id, "%L", LANG_PLAYER, "MONEY")
  462. emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  463. }
  464. }
  465.  
  466. case 4:
  467. {
  468. if (g_jbpacks[id] >= Obtener4 && vivo)
  469. {
  470.  
  471. g_jbpacks[id] -= Obtener4
  472. CTCuchillo[id] = 0
  473. TCuchillo[id] = 0
  474. Destapador[id] = 0
  475. Hacha[id] = 0
  476. Machete[id] = 0
  477. Motocierra[id] = 1
  478.  
  479.  
  480. ham_strip_weapon(id, "weapon_knife")
  481. give_item(id, "weapon_knife")
  482.  
  483. ChatColor(id, "%L", LANG_PLAYER, "BUY_KNIFE4")
  484. emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  485. }
  486. else
  487. {
  488. ChatColor(id, "%L", LANG_PLAYER, "MONEY")
  489. emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  490. }
  491. }
  492. }
  493. menu_destroy(menu);
  494. return PLUGIN_HANDLED;
  495. }
  496.  
  497. /*============================================================
  498.   ITEM'S MENU
  499. ============================================================*/
  500. public Tienda(id)
  501. {
  502. if(get_pcvar_num(OnOff))
  503. {
  504. if(get_pcvar_num(OnOff) && Ronda[id])
  505. {
  506. if(is_user_alive(id))
  507. {
  508. if (cs_get_user_team(id) == CS_TEAM_T )
  509. {
  510. new contador=0;
  511. new players[32], num, tempid;
  512.  
  513. get_players(players, num)
  514.  
  515. for (new i=0; i<num; i++)
  516. {
  517. tempid = players[i]
  518.  
  519. if (get_user_team(tempid)==1 && is_user_alive(tempid))
  520. {
  521. contador++;
  522. }
  523. }
  524. if ( contador == 1 )
  525. {
  526. ChatColor(id, "%L", LANG_PLAYER, "LAST")
  527. }
  528. else if ( contador >= 2 )
  529. {
  530. static Item[64]
  531.  
  532. formatex(Item, charsmax(Item),"\y%L", LANG_PLAYER, "SHOP")
  533. new Menu = menu_create(Item, "TiendaHandler")
  534.  
  535. formatex(Item, charsmax(Item),"\w%L \r%d$",LANG_PLAYER, "FLASH", get_pcvar_num(precio1))
  536. menu_additem(Menu, Item, "1")
  537.  
  538. formatex(Item, charsmax(Item),"\w%L \r%d$",LANG_PLAYER, "HE", get_pcvar_num(precio2))
  539. menu_additem(Menu, Item, "2")
  540.  
  541. formatex(Item, charsmax(Item),"\w%L \r%d$",LANG_PLAYER, "HEFLASH", get_pcvar_num(precio3))
  542. menu_additem(Menu, Item, "3")
  543.  
  544. formatex(Item, charsmax(Item),"\w%L \r%d$",LANG_PLAYER, "FOOTSTEPS", get_pcvar_num(precio4))
  545. menu_additem(Menu, Item, "4")
  546.  
  547. formatex(Item, charsmax(Item),"\w%L \r%d$",LANG_PLAYER, "SPEED", get_pcvar_num(precio5))
  548. menu_additem(Menu, Item, "5")
  549.  
  550. formatex(Item, charsmax(Item),"\w%L \r%d$",LANG_PLAYER, "DRUGS", get_pcvar_num(precio6))
  551. menu_additem(Menu, Item, "6")
  552.  
  553. formatex(Item, charsmax(Item),"\w%L \r%d$",LANG_PLAYER, "GLOCK", get_pcvar_num(precio7))
  554. menu_additem(Menu, Item, "7")
  555.  
  556. menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL)
  557. menu_display(id, Menu)
  558. }
  559. }
  560. else
  561. {
  562. ChatColor(id, "%L", LANG_PLAYER, "ONLY")
  563. }
  564. }
  565. else
  566. {
  567. ChatColor(id, "%L", LANG_PLAYER, "DEAD")
  568. }
  569. }
  570. else
  571. {
  572. ChatColor(id, "%L", LANG_PLAYER, "ONE_TIME")
  573. }
  574. }
  575. else
  576. {
  577. ChatColor(id, "%L", LANG_PLAYER, "SHOP_OFF")
  578. }
  579. return PLUGIN_HANDLED
  580. }
  581.  
  582.  
  583. public TiendaHandler(id, menu, item)
  584. {
  585. if( item == MENU_EXIT )
  586. {
  587. menu_destroy(menu);
  588. return PLUGIN_HANDLED;
  589. }
  590. new data[6], iName[64];
  591. new access, callback;
  592. menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  593. new vivo = is_user_alive(id)
  594. new gmsg_SetFOV = get_user_msgid("SetFOV")
  595. new Obtener1 = get_pcvar_num(precio1)
  596. new Obtener2 = get_pcvar_num(precio2)
  597. new Obtener3 = get_pcvar_num(precio3)
  598. new Obtener4 = get_pcvar_num(precio4)
  599. new Obtener5 = get_pcvar_num(precio5)
  600. new Obtener6 = get_pcvar_num(precio6)
  601. new Obtener7 = get_pcvar_num(precio7)
  602. new vida1 = get_user_health(id)
  603. new vida2 = get_pcvar_num(Vida)
  604. new armor1 = get_user_armor(id)
  605. new armor2 = get_pcvar_num(Armor)
  606.  
  607. new key = str_to_num(data);
  608. switch(key)
  609. {
  610. case 1:
  611. {
  612. if (g_jbpacks[id] >= Obtener1 && vivo)
  613. {
  614. g_jbpacks[id] -= Obtener1
  615. ChatColor(id, "%L", LANG_PLAYER, "BUY_FLASH")
  616. give_item(id, "weapon_flashbang")
  617. give_item(id, "weapon_flashbang")
  618. emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  619. Ronda[id] = 0
  620. }
  621. else
  622. {
  623. ChatColor(id, "%L", LANG_PLAYER, "MONEY")
  624. emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  625. }
  626. }
  627. case 2:
  628. {
  629.  
  630. if (g_jbpacks[id] >= Obtener2 && vivo)
  631. {
  632. g_jbpacks[id] -= Obtener2
  633. ChatColor(id, "%L", LANG_PLAYER, "BUY_HE")
  634. give_item(id, "weapon_hegrenade")
  635. emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  636. Ronda[id] = 0
  637. }
  638. else
  639. {
  640. ChatColor(id, "%L", LANG_PLAYER, "MONEY")
  641. emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  642. }
  643. }
  644. case 3:
  645. {
  646.  
  647. if (g_jbpacks[id] >= Obtener3 && vivo)
  648. {
  649. g_jbpacks[id] -= Obtener3
  650. ChatColor(id, "%L", LANG_PLAYER, "BUY_HEFLASH")
  651. give_item(id, "weapon_hegrenade")
  652. give_item(id, "weapon_flashbang")
  653. give_item(id, "weapon_flashbang")
  654. emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  655. Ronda[id] = 0
  656. }
  657. else
  658. {
  659. ChatColor(id, "%L", LANG_PLAYER, "MONEY")
  660. emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  661. }
  662. }
  663. case 4:
  664. {
  665.  
  666. if (g_jbpacks[id] >= Obtener4 && vivo)
  667. {
  668. g_jbpacks[id] -= Obtener4
  669. ChatColor(id, "%L", LANG_PLAYER, "BUY_FOOTSTEPS")
  670. set_user_footsteps(id, 1)
  671. emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  672. Ronda[id] = 0
  673. }
  674. else
  675. {
  676. ChatColor(id, "%L", LANG_PLAYER, "MONEY")
  677. emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  678. }
  679. }
  680. case 5:
  681. {
  682. if (g_jbpacks[id] >= Obtener5 && vivo)
  683. {
  684. g_jbpacks[id] -= Obtener5
  685. ChatColor(id, "%L", LANG_PLAYER, "BUY_SPEED")
  686. set_user_maxspeed(id, 500.0)
  687. Speed[id] = 1
  688. emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  689. Ronda[id] = 0
  690. }
  691. else
  692. {
  693. ChatColor(id, "%L", LANG_PLAYER, "MONEY")
  694. emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  695. }
  696. }
  697. case 6:
  698. {
  699. if (g_jbpacks[id] >= Obtener6 && vivo)
  700. {
  701. g_jbpacks[id] -= Obtener6
  702. ChatColor(id, "%L", LANG_PLAYER, "BUY_DRUGS")
  703. set_user_armor(id, armor1 + armor2)
  704. set_user_health(id, vida1 + vida2)
  705. set_user_maxspeed(id, 380.0)
  706. Speed2[id] = 1
  707. message_begin( MSG_ONE, gmsg_SetFOV, { 0, 0, 0 }, id )
  708. write_byte( 180 )
  709. message_end( )
  710. emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  711. Ronda[id] = 0
  712. }
  713. else
  714. {
  715. ChatColor(id, "%L", LANG_PLAYER, "MONEY")
  716. emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  717. }
  718. }
  719. case 7:
  720. {
  721. if (g_jbpacks[id] >= Obtener7 && vivo)
  722. {
  723. g_jbpacks[id] -= Obtener7
  724. ChatColor(id, "%L", LANG_PLAYER, "BUY_GLOCK")
  725. cs_set_weapon_ammo( give_item( id, "weapon_glock18" ), get_pcvar_num(glock1))
  726. cs_set_user_bpammo(id, CSW_GLOCK18, get_pcvar_num(glock2))
  727. emit_sound(id, CHAN_AUTO, Si, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  728. Ronda[id] = 0
  729. }
  730. else
  731. {
  732. ChatColor(id, "%L", LANG_PLAYER, "MONEY")
  733. emit_sound(id, CHAN_AUTO, No, VOL_NORM, ATTN_NORM , 0, PITCH_NORM)
  734. }
  735. }
  736. }
  737. menu_destroy(menu);
  738. return PLUGIN_HANDLED;
  739. }
  740.  
  741. public client_putinserver(id)
  742. {
  743. g_jbpacks[id] = get_pcvar_num(g_startjp)
  744. set_task(1.0, "JailbreakPacks", id, _, _, "b")
  745. set_task(60.0, "egyperc", id)
  746. set_task(300.0, "otperc", id)
  747. set_task(600.0, "tizperc", id)
  748. set_task(1800.0, "harmincperc", id)
  749. }
  750. public client_disconnect(id)
  751. {
  752. if(task_exists(id))
  753. remove_task(id)
  754. }
  755. public egyperc(id)
  756. {
  757. g_jbpacks[id] += 1
  758. client_print(id, print_chat, "Kaptal +5jb packot, mert jatszottal 1 percet a szerveren")
  759. }
  760. public otperc(id)
  761. {
  762. g_jbpacks[id] += 5
  763. client_print(id, print_chat, "Kaptal +10jb packot, mert jatszottal 5 percet a szerveren")
  764. }
  765. public tizperc(id)
  766. {
  767. g_jbpacks[id] += 10
  768. client_print(id, print_chat, "Kaptal +20jb packot, mert jatszottal 10 percet a szerveren")
  769. }
  770. public harmincperc(id)
  771. {
  772. g_jbpacks[id] += 30
  773. client_print(id, print_chat, "Kaptal +30jb packot, mert jatszottal 30 percet a szerveren")
  774. }
  775.  
  776. public JailbreakPacks(id)
  777. {
  778. set_hudmessage(142, 239, 39, 0.50, 0.90, 0, 6.0, 2.5)
  779. ShowSyncHudMsg(id, syncObj,"JBPacks: %i", g_jbpacks[id])
  780. }
  781.  
  782. public duel_menu(id)
  783. {
  784. if (!is_user_admin(id))
  785. {
  786. ChatColor(id, "%L", LANG_PLAYER, "CANT")
  787. return PLUGIN_HANDLED
  788. }
  789.  
  790. static opcion[64]
  791.  
  792. formatex(opcion, charsmax(opcion),"\y%L", LANG_PLAYER, "JBPACKS")
  793. new iMenu = menu_create(opcion, "menu")
  794.  
  795. formatex(opcion, charsmax(opcion),"\w%L", LANG_PLAYER, "GIVE_JBPACKS")
  796. menu_additem(iMenu, opcion, "1")
  797.  
  798. formatex(opcion, charsmax(opcion),"\w%L", LANG_PLAYER, "TAKE_JBPACKS")
  799. menu_additem(iMenu, opcion, "2")
  800.  
  801. menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)
  802. menu_display(id, iMenu, 0)
  803.  
  804. return PLUGIN_HANDLED
  805. }
  806.  
  807. public menu(id, menu, item)
  808. {
  809.  
  810. if (item == MENU_EXIT)
  811. {
  812. menu_destroy(menu)
  813. return PLUGIN_HANDLED
  814. }
  815.  
  816. new Data[6], Name[64]
  817. new Access, Callback
  818.  
  819. menu_item_getinfo(menu, item, Access, Data,5, Name, 63, Callback)
  820.  
  821. new Key = str_to_num(Data)
  822.  
  823. switch (Key)
  824. {
  825. case 1:
  826. {
  827. regalar[id] = 1
  828. quitar[id] = 0
  829. escojer(id)
  830. }
  831. case 2:
  832. {
  833. quitar[id] = 1
  834. regalar[id] = 0
  835. escojer(id)
  836. }
  837. }
  838.  
  839. menu_destroy(menu)
  840. return PLUGIN_HANDLED
  841. }
  842.  
  843.  
  844. public escojer(id)
  845. {
  846. static opcion[64]
  847.  
  848. formatex(opcion, charsmax(opcion),"\y%L", LANG_PLAYER, "CHOOSE")
  849. new iMenu = menu_create(opcion, "choose")
  850.  
  851. new players[32], pnum, tempid
  852. new szName[32], szTempid[10]
  853.  
  854. get_players(players, pnum, "a")
  855.  
  856. for( new i; i<pnum; i++ )
  857. {
  858. tempid = players[i]
  859.  
  860. get_user_name(tempid, szName, 31)
  861. num_to_str(tempid, szTempid, 9)
  862.  
  863. formatex(opcion, charsmax(opcion), "\w%s \rJbPacks[%d]", szName, g_jbpacks[tempid])
  864. menu_additem(iMenu, opcion, szTempid, 0)
  865. }
  866.  
  867. menu_display(id, iMenu)
  868. return PLUGIN_HANDLED
  869. }
  870.  
  871. public choose(id, menu, item)
  872. {
  873. if( item == MENU_EXIT )
  874. {
  875. menu_destroy(menu)
  876. return PLUGIN_HANDLED
  877. }
  878.  
  879. new Data[6], Name[64]
  880. new Access, Callback
  881. menu_item_getinfo(menu, item, Access, Data,5, Name, 63, Callback)
  882.  
  883. new tempid = str_to_num(Data)
  884.  
  885. gidPlayer[id] = tempid
  886. client_cmd(id, "messagemode JbPacks")
  887.  
  888. menu_destroy(menu)
  889. return PLUGIN_HANDLED
  890. }
  891.  
  892. public player(id)
  893. {
  894. new say[300]
  895. read_args(say, charsmax(say))
  896.  
  897. remove_quotes(say)
  898.  
  899. if(!is_str_num(say) || equal(say, ""))
  900. return PLUGIN_HANDLED
  901.  
  902. jbpacks(id, say)
  903.  
  904. return PLUGIN_CONTINUE
  905. }
  906.  
  907. jbpacks(id, say[]) {
  908. new amount = str_to_num(say)
  909. new victim = gidPlayer[id]
  910.  
  911. new vname[32]
  912.  
  913. if(victim > 0)
  914. {
  915. get_user_name(victim, vname, 31)
  916.  
  917. if(regalar[id])
  918. {
  919. if(amount > get_pcvar_num(g_maxjp))
  920. {
  921. g_jbpacks[victim] = get_pcvar_num(g_maxjp)
  922. }
  923. else
  924. {
  925. g_jbpacks[victim] = g_jbpacks[victim] + amount
  926. }
  927. ChatColor(0, "%L", LANG_PLAYER, "GIVE_MSG", amount, vname)
  928. }
  929. if(quitar[id])
  930. {
  931. if(amount > g_jbpacks[victim])
  932. {
  933. g_jbpacks[victim] = 0
  934. ChatColor(0, "%L", LANG_PLAYER, "TAKE_ALL", vname)
  935. }
  936. else
  937. {
  938. g_jbpacks[victim] = g_jbpacks[victim] - amount
  939. ChatColor(0, "%L", LANG_PLAYER, "TAKE_MSG", amount, vname)
  940. }
  941.  
  942. }
  943. }
  944.  
  945. return PLUGIN_HANDLED
  946. }
  947.  
  948. public Fwd_PlayerSpawn_Post(id)
  949. {
  950. if (is_user_alive(id))
  951. {
  952. if(get_user_team(id) == 1) strip_user_weapons(id); give_item(id, "weapon_knife")
  953.  
  954. set_user_footsteps(id, 0)
  955. Speed[id] = 0
  956. Speed2[id] = 0
  957. Ronda[id] = 1
  958. CTCuchillo[id] = 1
  959. TCuchillo[id] = 1
  960. Destapador[id] = 0
  961. Hacha[id] = 0
  962. Machete[id] = 0
  963. Motocierra[id] = 0
  964. Tienda1(id)
  965. if(get_pcvar_num(help)) ChatColor(id, "%L", LANG_PLAYER, "HELP")
  966. }
  967. }
  968.  
  969. public FwdTakeDamage(victim, inflictor, attacker, Float:damage, damage_bits)
  970. {
  971.  
  972. if (is_valid_player(attacker) && get_user_weapon(attacker) == CSW_KNIFE)
  973. {
  974. switch(get_user_team(attacker))
  975. {
  976. case 1:
  977. {
  978. if(TCuchillo[attacker])
  979. {
  980.  
  981. SetHamParamFloat(4, get_pcvar_float(TDefaultDano))
  982.  
  983. if(get_pdata_int(victim, 75) == HIT_HEAD)
  984. {
  985. SetHamParamFloat(4, get_pcvar_float(hTDefaultDano))
  986. }
  987. }
  988.  
  989. if(Destapador[attacker])
  990. {
  991. SetHamParamFloat(4, get_pcvar_float(PaloDano))
  992.  
  993. if(get_pdata_int(victim, 75) == HIT_HEAD)
  994. {
  995. SetHamParamFloat(4, get_pcvar_float(hPaloDano))
  996. }
  997. }
  998.  
  999. if(Hacha[attacker])
  1000. {
  1001. SetHamParamFloat(4, get_pcvar_float(HachaDano))
  1002.  
  1003. if(get_pdata_int(victim, 75) == HIT_HEAD)
  1004. {
  1005. SetHamParamFloat(4, get_pcvar_float(hHachaDano))
  1006. }
  1007. }
  1008.  
  1009. if(Machete[attacker])
  1010. {
  1011. SetHamParamFloat(4, get_pcvar_float(MacheteDano))
  1012.  
  1013. if(get_pdata_int(victim, 75) == HIT_HEAD)
  1014. {
  1015. SetHamParamFloat(4, get_pcvar_float(hMacheteDano))
  1016. }
  1017. }
  1018.  
  1019. if(Motocierra[attacker])
  1020. {
  1021. SetHamParamFloat(4, get_pcvar_float(MotocierraDano))
  1022. }
  1023. }
  1024. case 2:
  1025. {
  1026. if(CTCuchillo[attacker])
  1027. {
  1028. SetHamParamFloat(4, get_pcvar_float(CTDefaultDano))
  1029.  
  1030. if(get_pdata_int(victim, 75) == HIT_HEAD)
  1031. {
  1032. SetHamParamFloat(4, get_pcvar_float(hCTDefaultDano))
  1033. }
  1034. }
  1035. }
  1036. }
  1037. }
  1038. return HAM_HANDLED
  1039. }
  1040.  
  1041. public fw_player_killed(victim, attacker, shouldgib)
  1042. {
  1043. if(get_user_team(attacker) == 1)
  1044. {
  1045. g_jbpacks[attacker] += get_pcvar_num(g_killjp)
  1046.  
  1047. if(get_pdata_int(victim, 75) == HIT_HEAD)
  1048. {
  1049. g_jbpacks[attacker] += get_pcvar_num(g_killhsjp)
  1050. }
  1051. }
  1052. }
  1053.  
  1054.  
  1055. public Event_Change_Weapon(id)
  1056. {
  1057. new weaponID = read_data(2)
  1058.  
  1059. switch (get_user_team(id))
  1060. {
  1061. case 1:
  1062. {
  1063. if(Speed[id])
  1064. {
  1065. set_user_maxspeed(id, 500.0)
  1066. }
  1067.  
  1068. if(Speed2[id])
  1069. {
  1070. set_user_maxspeed(id, 380.0)
  1071. }
  1072.  
  1073. if(weaponID == CSW_KNIFE && get_pcvar_num(OnOff2))
  1074. {
  1075. if(TCuchillo[id])
  1076. {
  1077. set_pev(id, pev_viewmodel2, VIEW_MODELT)
  1078. set_pev(id, pev_weaponmodel2, PLAYER_MODELT)
  1079. }
  1080.  
  1081. if(Destapador[id])
  1082. {
  1083. set_pev(id, pev_viewmodel2, VIEW_Palo)
  1084. set_pev(id, pev_weaponmodel2, PLAYER_Palo)
  1085. }
  1086.  
  1087. if(Hacha[id])
  1088. {
  1089. set_pev(id, pev_viewmodel2, VIEW_Hacha)
  1090. set_pev(id, pev_weaponmodel2, PLAYER_Hacha)
  1091. }
  1092.  
  1093. if(Machete[id])
  1094. {
  1095. set_pev(id, pev_viewmodel2, VIEW_Machete)
  1096. set_pev(id, pev_weaponmodel2, PLAYER_Machete)
  1097. }
  1098.  
  1099. if(Motocierra[id])
  1100. {
  1101. set_pev(id, pev_viewmodel2, VIEW_Moto)
  1102. set_pev(id, pev_weaponmodel2, PLAYER_Moto)
  1103. }
  1104.  
  1105.  
  1106. }
  1107. }
  1108. case 2:
  1109. {
  1110. if(CTCuchillo[id] && weaponID == CSW_KNIFE)
  1111. {
  1112. set_pev(id, pev_viewmodel2, VIEW_MODELCT)
  1113. set_pev(id, pev_weaponmodel2, PLAYER_MODELCT)
  1114. }
  1115. }
  1116. }
  1117. return PLUGIN_CONTINUE
  1118. }
  1119.  
  1120. public fw_SetModel(entity, model[])
  1121. {
  1122. if(!pev_valid(entity))
  1123. return FMRES_IGNORED
  1124.  
  1125. if(!equali(model, OLDWORLD_MODEL))
  1126. return FMRES_IGNORED
  1127.  
  1128. new className[33]
  1129. pev(entity, pev_classname, className, 32)
  1130.  
  1131. if(equal(className, "weaponbox") || equal(className, "armoury_entity") || equal(className, "grenade"))
  1132. {
  1133. engfunc(EngFunc_SetModel, entity, WORLD_MODEL)
  1134. return FMRES_SUPERCEDE
  1135. }
  1136. return FMRES_IGNORED
  1137. }
  1138.  
  1139. public Fwd_EmitSound(id, channel, const sample[], Float:volume, Float:attn, flags, pitch)
  1140. {
  1141.  
  1142. if (!is_user_connected(id))
  1143. return FMRES_IGNORED;
  1144.  
  1145. if(CTCuchillo[id])
  1146. {
  1147. if(get_user_team(id) == 2)
  1148. {
  1149. if (equal(sample[8], "kni", 3))
  1150. {
  1151. if (equal(sample[14], "sla", 3))
  1152. {
  1153. switch (random_num(1, 2))
  1154. {
  1155. case 1: engfunc(EngFunc_EmitSound, id, channel, ct_slash1, volume, attn, flags, pitch)
  1156. case 2: engfunc(EngFunc_EmitSound, id, channel, ct_slash2, volume, attn, flags, pitch)
  1157. }
  1158.  
  1159. return FMRES_SUPERCEDE;
  1160. }
  1161. if(equal(sample,"weapons/knife_deploy1.wav"))
  1162. {
  1163. engfunc(EngFunc_EmitSound, id, channel, ct_deploy, volume, attn, flags, pitch)
  1164. return FMRES_SUPERCEDE;
  1165. }
  1166. if (equal(sample[14], "hit", 3))
  1167. {
  1168. if (sample[17] == 'w')
  1169. {
  1170. engfunc(EngFunc_EmitSound, id, channel, ct_wall, volume, attn, flags, pitch)
  1171. return FMRES_SUPERCEDE;
  1172. }
  1173. else
  1174. {
  1175. switch (random_num(1, 4))
  1176. {
  1177. case 1: engfunc(EngFunc_EmitSound, id, channel, ct_hit1, volume, attn, flags, pitch)
  1178. case 2: engfunc(EngFunc_EmitSound, id, channel, ct_hit2, volume, attn, flags, pitch)
  1179. case 3: engfunc(EngFunc_EmitSound, id, channel, ct_hit3, volume, attn, flags, pitch)
  1180. case 4: engfunc(EngFunc_EmitSound, id, channel, ct_hit4, volume, attn, flags, pitch)
  1181. }
  1182.  
  1183. return FMRES_SUPERCEDE;
  1184. }
  1185. }
  1186. if (equal(sample[14], "sta", 3))
  1187. {
  1188. engfunc(EngFunc_EmitSound, id, channel, ct_stab, volume, attn, flags, pitch)
  1189. return FMRES_SUPERCEDE;
  1190. }
  1191. }
  1192. }
  1193. }
  1194.  
  1195. if(TCuchillo[id])
  1196. {
  1197. if(get_user_team(id) == 1)
  1198. {
  1199. if (equal(sample[8], "kni", 3))
  1200. {
  1201. if (equal(sample[14], "sla", 3))
  1202. {
  1203. switch (random_num(1, 2))
  1204. {
  1205. case 1: engfunc(EngFunc_EmitSound, id, channel, t_slash1, volume, attn, flags, pitch)
  1206. case 2: engfunc(EngFunc_EmitSound, id, channel, t_slash2, volume, attn, flags, pitch)
  1207. }
  1208.  
  1209. return FMRES_SUPERCEDE;
  1210. }
  1211. if(equal(sample,"weapons/knife_deploy1.wav"))
  1212. {
  1213. engfunc(EngFunc_EmitSound, id, channel, t_deploy, volume, attn, flags, pitch)
  1214. return FMRES_SUPERCEDE;
  1215. }
  1216. if (equal(sample[14], "hit", 3))
  1217. {
  1218. if (sample[17] == 'w')
  1219. {
  1220. engfunc(EngFunc_EmitSound, id, channel, t_wall, volume, attn, flags, pitch)
  1221. return FMRES_SUPERCEDE;
  1222. }
  1223. else
  1224. {
  1225. switch (random_num(1, 4))
  1226. {
  1227. case 1: engfunc(EngFunc_EmitSound, id, channel, t_hit1, volume, attn, flags, pitch)
  1228. case 2: engfunc(EngFunc_EmitSound, id, channel, t_hit2, volume, attn, flags, pitch)
  1229. case 3: engfunc(EngFunc_EmitSound, id, channel, t_hit3, volume, attn, flags, pitch)
  1230. case 4: engfunc(EngFunc_EmitSound, id, channel, t_hit4, volume, attn, flags, pitch)
  1231. }
  1232.  
  1233. return FMRES_SUPERCEDE;
  1234. }
  1235. }
  1236. if (equal(sample[14], "sta", 3))
  1237. {
  1238. engfunc(EngFunc_EmitSound, id, channel, t_stab, volume, attn, flags, pitch)
  1239. return FMRES_SUPERCEDE;
  1240. }
  1241. }
  1242. }
  1243. }
  1244.  
  1245. if(Destapador[id])
  1246. {
  1247. if (equal(sample[8], "kni", 3))
  1248. {
  1249. if (equal(sample[14], "sla", 3))
  1250. {
  1251. switch (random_num(1, 2))
  1252. {
  1253. case 1: engfunc(EngFunc_EmitSound, id, channel, palo_slash1, volume, attn, flags, pitch)
  1254. case 2: engfunc(EngFunc_EmitSound, id, channel, palo_slash2, volume, attn, flags, pitch)
  1255.  
  1256. }
  1257.  
  1258. return FMRES_SUPERCEDE;
  1259. }
  1260. if(equal(sample,"weapons/knife_deploy1.wav"))
  1261. {
  1262. engfunc(EngFunc_EmitSound, id, channel, palo_deploy, volume, attn, flags, pitch)
  1263. return FMRES_SUPERCEDE;
  1264. }
  1265. if (equal(sample[14], "hit", 3))
  1266. {
  1267. if (sample[17] == 'w')
  1268. {
  1269. engfunc(EngFunc_EmitSound, id, channel, palo_wall, volume, attn, flags, pitch)
  1270. return FMRES_SUPERCEDE;
  1271. }
  1272. else
  1273. {
  1274. switch (random_num(1, 4))
  1275. {
  1276. case 1:engfunc(EngFunc_EmitSound, id, channel, palo_hit1, volume, attn, flags, pitch)
  1277. case 2:engfunc(EngFunc_EmitSound, id, channel, palo_hit2, volume, attn, flags, pitch)
  1278. case 3:engfunc(EngFunc_EmitSound, id, channel, palo_hit3, volume, attn, flags, pitch)
  1279. case 4:engfunc(EngFunc_EmitSound, id, channel, palo_hit4, volume, attn, flags, pitch)
  1280. }
  1281.  
  1282. return FMRES_SUPERCEDE;
  1283. }
  1284. }
  1285. if (equal(sample[14], "sta", 3))
  1286. {
  1287. engfunc(EngFunc_EmitSound, id, channel, palo_stab, volume, attn, flags, pitch)
  1288. return FMRES_SUPERCEDE;
  1289. }
  1290. }
  1291. }
  1292.  
  1293. if(Hacha[id])
  1294. {
  1295.  
  1296. if (equal(sample[8], "kni", 3))
  1297. {
  1298. if (equal(sample[14], "sla", 3))
  1299. {
  1300. switch (random_num(1, 2))
  1301. {
  1302. case 1: engfunc(EngFunc_EmitSound, id, channel, hacha_slash1, volume, attn, flags, pitch)
  1303. case 2: engfunc(EngFunc_EmitSound, id, channel, hacha_slash2, volume, attn, flags, pitch)
  1304. }
  1305.  
  1306. return FMRES_SUPERCEDE;
  1307. }
  1308. if(equal(sample,"weapons/knife_deploy1.wav"))
  1309. {
  1310. engfunc(EngFunc_EmitSound, id, channel, hacha_deploy, volume, attn, flags, pitch)
  1311. return FMRES_SUPERCEDE;
  1312. }
  1313. if (equal(sample[14], "hit", 3))
  1314. {
  1315. if (sample[17] == 'w')
  1316. {
  1317. engfunc(EngFunc_EmitSound, id, channel, hacha_wall, volume, attn, flags, pitch)
  1318. return FMRES_SUPERCEDE;
  1319. }
  1320. else
  1321. {
  1322. switch (random_num(1, 3))
  1323. {
  1324. case 1: engfunc(EngFunc_EmitSound, id, channel, hacha_hit1, volume, attn, flags, pitch)
  1325. case 2: engfunc(EngFunc_EmitSound, id, channel, hacha_hit2, volume, attn, flags, pitch)
  1326. case 3: engfunc(EngFunc_EmitSound, id, channel, hacha_hit3, volume, attn, flags, pitch)
  1327. }
  1328.  
  1329. return FMRES_SUPERCEDE;
  1330. }
  1331. }
  1332. if (equal(sample[14], "sta", 3))
  1333. {
  1334. engfunc(EngFunc_EmitSound, id, channel, hacha_stab, volume, attn, flags, pitch)
  1335. return FMRES_SUPERCEDE;
  1336. }
  1337. }
  1338. }
  1339.  
  1340. if(Machete[id])
  1341. {
  1342. if (equal(sample[8], "kni", 3))
  1343. {
  1344. if (equal(sample[14], "sla", 3))
  1345. {
  1346. switch (random_num(1, 2))
  1347. {
  1348. case 1: engfunc(EngFunc_EmitSound, id, channel, machete_slash1, volume, attn, flags, pitch)
  1349. case 2: engfunc(EngFunc_EmitSound, id, channel, machete_slash2, volume, attn, flags, pitch)
  1350. }
  1351. return FMRES_SUPERCEDE;
  1352. }
  1353. if(equal(sample,"weapons/knife_deploy1.wav"))
  1354. {
  1355. engfunc(EngFunc_EmitSound, id, channel, machete_deploy, volume, attn, flags, pitch)
  1356. return FMRES_SUPERCEDE;
  1357. }
  1358. if (equal(sample[14], "hit", 3))
  1359. {
  1360. if (sample[17] == 'w')
  1361. {
  1362. engfunc(EngFunc_EmitSound, id, channel, machete_wall, volume, attn, flags, pitch)
  1363. return FMRES_SUPERCEDE;
  1364. }
  1365. else // hit
  1366. {
  1367. switch (random_num(1, 4))
  1368. {
  1369. case 1: engfunc(EngFunc_EmitSound, id, channel, machete_hit1, volume, attn, flags, pitch)
  1370. case 2: engfunc(EngFunc_EmitSound, id, channel, machete_hit2, volume, attn, flags, pitch)
  1371. case 3: engfunc(EngFunc_EmitSound, id, channel, machete_hit3, volume, attn, flags, pitch)
  1372. case 4: engfunc(EngFunc_EmitSound, id, channel, machete_hit4, volume, attn, flags, pitch)
  1373. }
  1374. return FMRES_SUPERCEDE;
  1375. }
  1376. }
  1377. if (equal(sample[14], "sta", 3))
  1378. {
  1379. engfunc(EngFunc_EmitSound, id, channel, machete_stab, volume, attn, flags, pitch)
  1380. return FMRES_SUPERCEDE;
  1381. }
  1382. }
  1383. }
  1384.  
  1385. if(Motocierra[id])
  1386. {
  1387.  
  1388. if (equal(sample[8], "kni", 3))
  1389. {
  1390. if (equal(sample[14], "sla", 3))
  1391. {
  1392. engfunc(EngFunc_EmitSound, id, channel, motocierra_slash, volume, attn, flags, pitch)
  1393. return FMRES_SUPERCEDE;
  1394. }
  1395. if(equal(sample,"weapons/knife_deploy1.wav"))
  1396. {
  1397. engfunc(EngFunc_EmitSound, id, channel, motocierra_deploy, volume, attn, flags, pitch)
  1398. return FMRES_SUPERCEDE;
  1399. }
  1400. if (equal(sample[14], "hit", 3))
  1401. {
  1402. if (sample[17] == 'w')
  1403. {
  1404. engfunc(EngFunc_EmitSound, id, channel, motocierra_wall, volume, attn, flags, pitch)
  1405. return FMRES_SUPERCEDE;
  1406. }
  1407. else
  1408. {
  1409. switch (random_num(1, 2))
  1410. {
  1411. case 1: engfunc(EngFunc_EmitSound, id, channel, motocierra_hit1, volume, attn, flags, pitch)
  1412. case 2: engfunc(EngFunc_EmitSound, id, channel, motocierra_hit2, volume, attn, flags, pitch)
  1413.  
  1414. }
  1415. return FMRES_SUPERCEDE;
  1416. }
  1417. }
  1418. if (equal(sample[14], "sta", 3))
  1419. {
  1420. engfunc(EngFunc_EmitSound, id, channel, motocierra_stab, volume, attn, flags, pitch)
  1421. return FMRES_SUPERCEDE;
  1422. }
  1423. }
  1424. }
  1425. return FMRES_IGNORED;
  1426. }
  1427.  
  1428. /*============================================================
  1429.   Stocks!
  1430. ============================================================*/
  1431. stock ChatColor(const id, const input[], any:...)
  1432. {
  1433. new count = 1, players[32]
  1434. static msg[191]
  1435. vformat(msg, 190, input, 3)
  1436.  
  1437. replace_all(msg, 190, "!g", "^4") // Green Color
  1438. replace_all(msg, 190, "!y", "^1") // Default Color
  1439. replace_all(msg, 190, "!team", "^3") // Team Color
  1440.  
  1441.  
  1442. if (id) players[0] = id; else get_players(players, count, "ch")
  1443. {
  1444. for (new i = 0; i < count; i++)
  1445. {
  1446. if (is_user_connected(players[i]))
  1447. {
  1448. message_begin(MSG_ONE_UNRELIABLE, g_iMsgSayText, _, players[i])
  1449. write_byte(players[i]);
  1450. write_string(msg);
  1451. message_end();
  1452. }
  1453. }
  1454. }
  1455. }
  1456.  
  1457. stock ham_strip_weapon(id,weapon[])
  1458. {
  1459. if(!equal(weapon,"weapon_",7)) return 0;
  1460.  
  1461. new wId = get_weaponid(weapon);
  1462. if(!wId) return 0;
  1463.  
  1464. new wEnt;
  1465. while((wEnt = engfunc(EngFunc_FindEntityByString,wEnt,"classname",weapon)) && pev(wEnt,pev_owner) != id) {}
  1466. if(!wEnt) return 0;
  1467.  
  1468. if(get_user_weapon(id) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon,wEnt);
  1469.  
  1470. if(!ExecuteHamB(Ham_RemovePlayerItem,id,wEnt)) return 0;
  1471. ExecuteHamB(Ham_Item_Kill,wEnt);
  1472.  
  1473. set_pev(id,pev_weapons,pev(id,pev_weapons) & ~(1<<wId));
  1474.  
  1475. return 1;
  1476. }
  1477. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  1478. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1034\\ f0\\ fs16 \n\\ par }
  1479. */
  1480.  

_________________
Valami új kezdete...
Kép
Egyedi pluginok készítése pénzért (Banki átutalás, PayPal) -> Privát üzenet

Ők köszönték meg crazy` nek ezt a hozzászólást: csmester (2013.06.16. 08:06)
  Népszerűség: 2.27%


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  [ 6 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 19 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