hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.05.23. 05:01



Jelenlévő felhasználók

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

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

Regisztrált felhasználók: Bing [Bot], Majestic-12 [Bot] 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: JailBreak Nap Menü
HozzászólásElküldve: 2012.04.28. 08:02 
Offline
Fanatikus

Csatlakozott: 2011.12.30. 16:46
Hozzászólások: 150
Megköszönt másnak: 4 alkalommal
Megköszönték neki: 2 alkalommal
Hello! Nekem egy plugin javítására és szerkesztésére lenne szükségem...
A lényege hogy xy naponta jailbreak módba különleges napokat hoz be egy menübe.
A jelenlegi napok közül ki szeretném venni a zombi napot.
Mellékeltem az SMA-t


Csatolmányok:
jb_daymenu.sma [43.28 KiB]
Letöltve 28 alkalommal.
Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: JailBreak Nap Menü
HozzászólásElküldve: 2012.04.28. 16:45 
Offline
Nagyúr
Avatar

Csatlakozott: 2011.09.07. 18:41
Hozzászólások: 642
Megköszönt másnak: 15 alkalommal
Megköszönték neki: 6 alkalommal
1 Errort tartalmaz ha valakit megkérhetnék akkor javítsa!


Csatolmányok:
jbmenuu.sma [37.67 KiB]
Letöltve 32 alkalommal.

_________________
Kép
Kép
Kép
Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: JailBreak Nap Menü
HozzászólásElküldve: 2012.05.02. 16:59 
Offline
Tud valamit

Csatlakozott: 2012.04.16. 22:32
Hozzászólások: 104
Megköszönt másnak: 14 alkalommal
Megköszönték neki: 10 alkalommal
Ha publikus hadd kérdezzem már meg hol találtad ezt a plugint? mert én nem találtam sehol. :S
Ha tudnál adni egy linke nagyon hálás lennék!

_________________
Ha segítettem: Kép

Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: JailBreak Nap Menü
HozzászólásElküldve: 2012.05.02. 17:01 
Offline
Őskövület
Avatar

Csatlakozott: 2011.09.17. 17:54
Hozzászólások: 2350
Megköszönt másnak: 40 alkalommal
Megköszönték neki: 57 alkalommal
http://forums.alliedmods.net/showthread.php?t=168122


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: JailBreak Nap Menü
HozzászólásElküldve: 2012.05.02. 17:06 
Offline
Tud valamit

Csatlakozott: 2012.04.16. 22:32
Hozzászólások: 104
Megköszönt másnak: 14 alkalommal
Megköszönték neki: 10 alkalommal
Köszönöm!

_________________
Ha segítettem: Kép

Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: JailBreak Nap Menü
HozzászólásElküldve: 2013.12.31. 15:10 
Offline
Tud valamit

Csatlakozott: 2012.04.16. 22:32
Hozzászólások: 104
Megköszönt másnak: 14 alkalommal
Megköszönték neki: 10 alkalommal
Remélem kell mégxd Unalmamba kiszedtem. Nem teszteltem, de nem írt hibát. Majd nézd meg, ha még kellxd
SMA Forráskód: [ Mindet kijelol ]
  1. /**
  2. *
  3. * Jailbreak Day Menu
  4. * nikhilgupta345
  5. *
  6. *
  7. * Features
  8. *
  9. * - Day Menu
  10. * + Guards choose
  11. * + One day at a time
  12. *
  13. * - Many Day Options
  14. * + Free Day (Restricted/Unrestricted)
  15. * + Riot Day
  16. * + Cage Day
  17. * + Zombie Day
  18. * + Dodgeball Day
  19. * - Grenades Given at 8:00
  20. * - Auto Reload Nades After Throwing
  21. * + USP Ninja Day
  22. * + Lava Day
  23. * + Nightcrawler Day
  24. * + Space Day
  25. * + Shark Day
  26. * + Knife Day
  27. * + Hide and Seek Day
  28. *
  29. * - Reverse Days For:
  30. * + Zombie Day
  31. * + Nightcrawler Day
  32. * + Shark Day
  33. *
  34. * - Objectives Displayed
  35. *
  36. * - Prevent Weapon Pickup On Certain Days
  37. *
  38. *
  39. * Credits
  40. * Python1320 - Used his code from WallClimb from nightcrawler's climb
  41. * Joropito - Open Cells Code
  42. * Mercylezz - Used some code for zombie nightvision
  43. *
  44. * CVARS
  45. * - jb_opencells <0/1> // Whether cells should be opened when day is chosen or not. (0=OFF, 1=ON)
  46. *
  47. * Changelog
  48. * September 24, 2011 -v1.0- Initial release
  49. * September 24, 2011 -v1.1- Added CVAR jb_opencells
  50. * September 25, 2011 -v1.2- Added ability for only simons to use daymenu. Also added nightvision for the zombies.
  51. * September 26, 2011 -v1.2.1- Fixed bug where daymenu didn't work even if player was simon.
  52. *
  53. *
  54. *
  55. **/
  56.  
  57. // Includes
  58. ////////////
  59.  
  60. #include < amxmodx >
  61. #include < amxmisc >
  62. #include < cstrike >
  63. #include " colorchat "
  64. #include < fun >
  65. #include < hamsandwich >
  66. #include < fakemeta >
  67. #include < engine >
  68. #include < fakemeta_util >
  69.  
  70. #if !defined _colorchat_included
  71. #assert colorchat.inc library required !
  72. #endif
  73.  
  74. // Defines
  75. ///////////
  76.  
  77. #define CELL_RADIUS Float:200.0
  78.  
  79. // Uncomment this line if you want simon
  80. //#define USE_SIMON 1
  81.  
  82. // Enumerations
  83. ////////////////
  84.  
  85. enum
  86. {
  87. DAY_NONE = -1,
  88. DAY_FREE,
  89. DAY_CAGE,
  90. DAY_RIOT,
  91. DAY_DODGEBALL,
  92. DAY_USP_NINJA,
  93. DAY_LAVA,
  94. DAY_NIGHTCRAWLER,
  95. DAY_SPACE,
  96. DAY_SHARK,
  97. DAY_KNIFE,
  98. DAY_HNS,
  99.  
  100. MAX_DAYS
  101. }
  102.  
  103. enum
  104. {
  105. UNRESTRICTED,
  106. RESTRICTED
  107. }
  108.  
  109. enum
  110. {
  111. CT,
  112. T
  113. }
  114. enum
  115. {
  116. MAVERICK,
  117. AK,
  118. AUG,
  119. SCOUT,
  120. AWP,
  121. MP5
  122. }
  123.  
  124. enum ( += 100 )
  125. {
  126. TASK_HEGRENADE = 100,
  127. TASK_DODGEBALL,
  128. TASK_HIDENSEEK
  129. }
  130.  
  131.  
  132. // Integers
  133. ////////////
  134.  
  135. new g_iTimeLeft;
  136.  
  137. new g_iCurrentDay;
  138.  
  139. new g_iFreedayType;
  140. new g_iNightcrawlerType;
  141. new g_iZombieType;
  142. new g_iSharkType;
  143.  
  144. // PCVars
  145. new g_pOpenCells;
  146.  
  147. // Handles
  148. ///////////
  149.  
  150. new g_hDaysMenu;
  151. new g_hSharkMenu;
  152. new g_hNightcrawlerMenu;
  153. new g_hFreedayMenu;
  154. new g_hZombieMenu;
  155.  
  156. // Arrays
  157. //////////
  158.  
  159. new Float:g_fWallOrigin[33][3];
  160.  
  161. new g_iButtons[10];
  162.  
  163. #if defined USE_SIMON
  164. new g_iSimon;
  165. #endif
  166.  
  167. // Messages
  168. ////////////
  169.  
  170. new g_msgNVGToggle;
  171.  
  172. // Constants
  173. /////////////
  174.  
  175. new const g_szDaymenuOptions[MAX_DAYS][] =
  176. {
  177. "Free Day",
  178. "Cage Day",
  179. "Riot Day",
  180. "Dodgeball Day",
  181. "USP Ninja Day",
  182. "Lava Day",
  183. "NightCrawler Day",
  184. "Space Day",
  185. "Shark Day",
  186. "Knife Day",
  187. "Hide and Seek Day"
  188. }
  189.  
  190. new const g_szDaymenuObjectives[MAX_DAYS][] =
  191. {
  192. "Prisoners do what they want. If restricted, Guards restrict one room.",
  193. "Prisoners get into the cage and follow the instructions by the Guards.",
  194. "One of the Prisoners has a weapon. The Guards job is to find out who it is.",
  195. "Kill the opposite team with HE-Grenades. You will start receiving nades at 8:00.",
  196. "Both teams have USP. Gravity reduced. Kill the other team.",
  197. "Prisoners must stay on a spray at all times. If they are caught off of a spray, Guards can kill them.",
  198. "Kill the opposite team. Nightcrawlers are completely invisible, and have no footsteps.",
  199. "Lower gravity. Prisoners start with scouts, and Guards have awps.",
  200. "The sharks have no-clip, everybody else has Awps. Kill the opposite team.",
  201. "Guards have 150 HP, Prisoners have 35. Kill each other!",
  202. "Prisoners have 60 seconds to hide anywhere in the map until they become visible. Once found they can be killed."
  203. }
  204.  
  205. new const g_szPrefix[] = "^04[Jailbreak]^01";
  206.  
  207. new const g_szVersion[ ] = "1.2.1";
  208.  
  209. ////////////////////////////////////
  210. //--------- Plugin Init ----------//
  211. ////////////////////////////////////
  212. public plugin_init()
  213. {
  214. register_plugin( "Jailbreak Daymenu", g_szVersion, "H3avY Ra1n" );
  215.  
  216. register_clcmd( "say /daysmenu", "Cmd_DaysMenu" );
  217.  
  218. register_logevent( "LogEvent_RoundStart", 2, "1=Round_Start" );
  219. register_logevent( "LogEvent_RoundEnd", 2, "1=Round_End" );
  220.  
  221. register_event( "DeathMsg", "Event_DeathMsg", "a" );
  222.  
  223. RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawn_Post", 1 );
  224. RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamage_Pre", 0 );
  225.  
  226. RegisterHam( Ham_Weapon_SecondaryAttack, "weapon_usp", "Ham_USP_SecondaryAttack_Pre", 1 );
  227.  
  228. RegisterHam( Ham_Touch, "armoury_entity", "Ham_WeaponTouch_Pre", 0 );
  229. RegisterHam( Ham_Touch, "weaponbox", "Ham_WeaponTouch_Pre", 0 );
  230.  
  231. RegisterHam( Ham_Touch, "worldspawn", "Ham_WallTouch_Pre", 0 );
  232. RegisterHam( Ham_Touch, "func_wall", "Ham_WallTouch_Pre", 0 );
  233. RegisterHam( Ham_Touch, "func_breakable", "Ham_WallTouch_Pre", 0 );
  234.  
  235. register_forward( FM_AddToFullPack, "Forward_AddToFullPack_Post", 1 );
  236. register_forward( FM_PlayerPreThink, "Forward_PreThink", 0 );
  237.  
  238. server_cmd( "mp_roundtime 9" );
  239. server_cmd( "mp_freezetime 0" );
  240.  
  241. #if defined USE_SIMON
  242. g_iSimon = get_xvar_id( "g_iSimon" );
  243.  
  244. if( g_iSimon == -1 )
  245. {
  246. set_fail_state( "[Days Menu] Simon plugin not running!" );
  247. }
  248. #endif
  249.  
  250. g_msgNVGToggle = get_user_msgid( "NVGToggle" );
  251.  
  252. g_pOpenCells = register_cvar( "jb_opencells", "1" );
  253.  
  254. register_cvar( "daymenu_version_novote", g_szVersion, FCVAR_SPONLY|FCVAR_SERVER );
  255.  
  256. CreateMenus();
  257.  
  258. setup_buttons();
  259. }
  260.  
  261. public Cmd_DaysMenu( id )
  262. {
  263. #if defined USE_SIMON
  264. if( id != get_xvar_num( g_iSimon ) )
  265. {
  266. ColorChat( id, NORMAL, "%s You must be ^03simon ^01to use this command.", g_szPrefix );
  267. return PLUGIN_HANDLED;
  268. }
  269. #else
  270. if( cs_get_user_team( id ) != CS_TEAM_CT )
  271. {
  272. ColorChat( id, NORMAL, "%s You must be a ^03guard ^01to use this command.", g_szPrefix );
  273. return PLUGIN_HANDLED;
  274. }
  275. #endif
  276.  
  277. else if( !is_user_alive( id ) )
  278. {
  279. ColorChat( id, NORMAL, "%s You must be alive to use this command.", g_szPrefix );
  280. return PLUGIN_HANDLED;
  281. }
  282.  
  283. menu_display( id, g_hDaysMenu, 0 );
  284.  
  285. return PLUGIN_HANDLED;
  286. }
  287.  
  288. public CreateMenus()
  289. {
  290. g_hDaysMenu = menu_create( "Choose a Day:", "DaysMenu_Handler" );
  291.  
  292. new szInfo[ 6 ];
  293.  
  294. for( new i = 0; i < MAX_DAYS; i++ )
  295. {
  296. num_to_str( i, szInfo, charsmax( szInfo ) );
  297. menu_additem( g_hDaysMenu, g_szDaymenuOptions[ i ], szInfo );
  298. }
  299.  
  300. g_hNightcrawlerMenu = menu_create( "Choose the Nightcrawlers:", "NightcrawlerMenu_Handler" );
  301. menu_additem( g_hNightcrawlerMenu, "Guards", "0" );
  302. menu_additem( g_hNightcrawlerMenu, "Prisoners", "1" );
  303.  
  304. g_hSharkMenu = menu_create( "Choose the Sharks:", "SharkMenu_Handler" );
  305. menu_additem( g_hSharkMenu, "Guards", "0" );
  306. menu_additem( g_hSharkMenu, "Prisoners", "1" );
  307.  
  308. g_hFreedayMenu = menu_create( "Choose the Freeday:", "FreedayMenu_Handler" );
  309. menu_additem( g_hFreedayMenu, "Unrestricted", "0" );
  310. menu_additem( g_hFreedayMenu, "Resticted", "1" );
  311. }
  312.  
  313. public DaysMenu_Handler( id, hMenu, iItem )
  314. {
  315. if( g_iCurrentDay != DAY_NONE )
  316. return PLUGIN_HANDLED;
  317.  
  318. if( cs_get_user_team( id ) != CS_TEAM_CT || !is_user_alive( id ) || iItem == MENU_EXIT )
  319. return PLUGIN_HANDLED;
  320.  
  321. new szData[ 6 ], iAccess, hCallback;
  322. menu_item_getinfo( hMenu, iItem, iAccess, szData, charsmax( szData ), _, _, hCallback );
  323.  
  324. switch( str_to_num( szData ) )
  325. {
  326. case DAY_FREE:
  327. {
  328. showFreedayMenu( id );
  329. return PLUGIN_HANDLED;
  330. }
  331.  
  332. case DAY_NIGHTCRAWLER:
  333. {
  334. showNightcrawlerMenu( id );
  335. return PLUGIN_HANDLED;
  336. }
  337.  
  338. case DAY_SHARK:
  339. {
  340. showSharkMenu( id );
  341. return PLUGIN_HANDLED;
  342. }
  343.  
  344. default:
  345. {
  346. g_iCurrentDay = str_to_num( szData );
  347. startDay();
  348. }
  349. }
  350.  
  351. return PLUGIN_HANDLED;
  352. }
  353.  
  354. public showFreedayMenu( id )
  355. {
  356. menu_display( id, g_hFreedayMenu, 0 );
  357. }
  358.  
  359. public FreedayMenu_Handler( id, hMenu, iItem )
  360. {
  361. if( g_iCurrentDay != DAY_NONE )
  362. return PLUGIN_HANDLED;
  363.  
  364. if( cs_get_user_team( id ) != CS_TEAM_CT || !is_user_alive( id ) || iItem == MENU_EXIT )
  365. return PLUGIN_HANDLED;
  366.  
  367. new szData[ 6 ], iAccess, hCallback;
  368.  
  369. menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
  370.  
  371. g_iFreedayType = str_to_num( szData );
  372.  
  373. g_iCurrentDay = DAY_FREE;
  374.  
  375. startAlternativeDay();
  376. return PLUGIN_HANDLED;
  377. }
  378.  
  379. public showNightcrawlerMenu( id )
  380. {
  381. menu_display( id, g_hNightcrawlerMenu, 0 );
  382. }
  383.  
  384. public NightcrawlerMenu_Handler( id, hMenu, iItem )
  385. {
  386. if( g_iCurrentDay != DAY_NONE )
  387. return PLUGIN_HANDLED;
  388.  
  389. if( cs_get_user_team( id ) != CS_TEAM_CT || !is_user_alive( id ) || iItem == MENU_EXIT )
  390. return PLUGIN_HANDLED;
  391.  
  392.  
  393. new szData[ 6 ], iAccess, hCallback;
  394.  
  395. menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
  396.  
  397. g_iNightcrawlerType = str_to_num( szData );
  398.  
  399. g_iCurrentDay = DAY_NIGHTCRAWLER;
  400.  
  401. startAlternativeDay();
  402. return PLUGIN_HANDLED;
  403. }
  404. public showSharkMenu( id )
  405. {
  406. menu_display( id, g_hSharkMenu, 0 );
  407. }
  408.  
  409. public SharkMenu_Handler( id, hMenu, iItem )
  410. {
  411. if( g_iCurrentDay != DAY_NONE )
  412. return PLUGIN_HANDLED;
  413.  
  414. if( cs_get_user_team( id ) != CS_TEAM_CT || !is_user_alive( id ) || iItem == MENU_EXIT )
  415. return PLUGIN_HANDLED;
  416.  
  417. new szData[ 6 ], iAccess, hCallback;
  418.  
  419. menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
  420.  
  421. g_iSharkType = str_to_num( szData );
  422.  
  423. g_iCurrentDay = DAY_SHARK;
  424.  
  425. startAlternativeDay();
  426. return PLUGIN_HANDLED;
  427. }
  428.  
  429. public startDay()
  430. {
  431. switch( g_iCurrentDay )
  432. {
  433. case DAY_CAGE:
  434. {
  435. ShowWeaponMenu();
  436. }
  437.  
  438. case DAY_RIOT:
  439. {
  440. new players[32], num;
  441. get_players( players, num, "ae", "TERRORIST" );
  442.  
  443. if( num <= 1 )
  444. {
  445. ColorChat( 0, NORMAL, "%s There are not enough ^03Prisoners ^01alive to do this day.", g_szPrefix );
  446. g_iCurrentDay = -1;
  447. return PLUGIN_HANDLED;
  448. }
  449.  
  450.  
  451. new random = random_num( 1, num );
  452.  
  453. while( !is_user_alive( players[random] ) )
  454. random = random_num( 1, num );
  455.  
  456. cs_set_weapon_ammo( give_item( players[random], "weapon_m4a1" ), 90 );
  457. cs_set_weapon_ammo( give_item( players[random], "weapon_deagle" ), 35 );
  458.  
  459. ShowWeaponMenu();
  460. }
  461.  
  462. case DAY_DODGEBALL:
  463. {
  464. set_task( 30.0, "startDodgeballDay", TASK_DODGEBALL );
  465.  
  466. new iPlayers[ 32 ], iNum;
  467. get_players( iPlayers, iNum, "a" );
  468.  
  469. for( new i = 0; i < iNum; i++ )
  470. {
  471. strip_user_weapons( iPlayers[ i ] );
  472. give_item( iPlayers[ i ], "weapon_knife" );
  473. }
  474. }
  475.  
  476. case DAY_USP_NINJA:
  477. {
  478. new players[32], num, player;
  479. get_players( players, num, "a" );
  480.  
  481. for( new i = 0; i < num; i++ )
  482. {
  483. player = players[i];
  484. set_user_health( player, 100 );
  485. StripPlayerWeapons( player );
  486. give_item( player, "weapon_knife" );
  487.  
  488. give_item( player, "weapon_usp" );
  489.  
  490. if( cs_get_user_team( player ) == CS_TEAM_CT )
  491. {
  492. cs_set_user_bpammo( player, CSW_USP, 112 );
  493. }
  494.  
  495. else
  496. {
  497. cs_set_user_bpammo( player, CSW_USP, 32 );
  498. }
  499.  
  500. new ent = find_ent_by_owner( 0, "weapon_usp", player );
  501. cs_set_weapon_silen( ent, 1 );
  502. }
  503.  
  504. server_cmd( "sv_gravity 300" );
  505. }
  506.  
  507. case DAY_SPACE:
  508. {
  509. new players[32], num, player;
  510. get_players( players, num, "a" );
  511.  
  512. for( new i = 0; i < num; i++ )
  513. {
  514. player = players[i];
  515. StripPlayerWeapons( player );
  516.  
  517. set_user_health( player, 100 );
  518. give_item( player, "weapon_knife" );
  519.  
  520. switch( cs_get_user_team( player ) )
  521. {
  522. case CS_TEAM_CT:
  523. {
  524. give_item( player, "weapon_awp" );
  525. cs_set_user_bpammo( player, CSW_AWP, 30 );
  526.  
  527. }
  528.  
  529. case CS_TEAM_T:
  530. {
  531. give_item( player, "weapon_scout" );
  532. cs_set_user_bpammo( player, CSW_SCOUT, 90 );
  533. }
  534. }
  535. }
  536.  
  537. server_cmd( "sv_gravity 300" );
  538. }
  539.  
  540. case DAY_KNIFE:
  541. {
  542. new players[32], num, player;
  543. get_players( players, num, "a" );
  544.  
  545. for( new i = 0; i < num; i++ )
  546. {
  547. player = players[i];
  548.  
  549. if( !is_user_alive( player ) )
  550. continue;
  551.  
  552. switch( cs_get_user_team( player ) )
  553. {
  554. case CS_TEAM_CT:
  555. {
  556. set_user_health( player, 150 );
  557. }
  558.  
  559. case CS_TEAM_T:
  560. {
  561. set_user_health( player, 35 );
  562. }
  563. }
  564.  
  565. StripPlayerWeapons( player );
  566.  
  567. give_item( player, "weapon_knife" );
  568. }
  569. }
  570.  
  571. case DAY_HNS:
  572. {
  573. new players[32], num, player;
  574. get_players( players, num, "ae", "TERRORIST" );
  575.  
  576. for( new i = 0; i < num; i++ )
  577. {
  578. player = players[i];
  579.  
  580. if( !is_user_alive( player ) )
  581. continue;
  582.  
  583. set_user_rendering( player, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 16 );
  584.  
  585. set_user_footsteps( player, 1 );
  586. }
  587.  
  588. g_iTimeLeft = 60;
  589. set_task( 1.0, "Hidenseek_Countdown", TASK_HIDENSEEK, _, _, "a", g_iTimeLeft + 1 );
  590. }
  591.  
  592. case DAY_LAVA: server_cmd( "decalfrequency 10" );
  593. }
  594.  
  595. ColorChat( 0, NORMAL, "%s ^03Objective: ^01%s", g_szPrefix, g_szDaymenuObjectives[g_iCurrentDay] );
  596.  
  597. if( get_pcvar_num( g_pOpenCells ) )
  598. Push_Button();
  599.  
  600. return PLUGIN_HANDLED;
  601. }
  602.  
  603. public Hidenseek_Countdown()
  604. {
  605. g_iTimeLeft--;
  606.  
  607. if( g_iTimeLeft >= 0 )
  608. {
  609. set_hudmessage( 0, 255, 0, -1.0, 0.2, 0, 0.0, 1.0, 0.1, 0.1, 4 );
  610. show_hudmessage( 0, "%i More Seconds To Hide!", g_iTimeLeft );
  611. }
  612.  
  613. else
  614. {
  615. set_hudmessage( 0, 255, 0, -1.0, 0.2, 0, 0.0, 5.0, 0.1, 0.1, 4 );
  616. show_hudmessage( 0, "READY OR NOT, HERE WE COME!" );
  617.  
  618. new players[32], num, player;
  619. get_players( players, num, "ae", "TERRORIST" );
  620.  
  621. for( new i = 0; i < num; i++ )
  622. {
  623. player = players[i];
  624.  
  625. if( !is_user_alive( player ) )
  626. continue;
  627.  
  628. set_user_rendering( player );
  629. set_user_footsteps( player, 0 );
  630. }
  631.  
  632. if( task_exists( TASK_HIDENSEEK ) )
  633. remove_task( TASK_HIDENSEEK );
  634.  
  635. ColorChat( 0, NORMAL, "%s The ^03Prisoners^01 are now visible. FIND THEM!", g_szPrefix );
  636. }
  637. }
  638.  
  639.  
  640. public startAlternativeDay()
  641. {
  642. switch( g_iCurrentDay )
  643. {
  644. case DAY_FREE:
  645. {
  646. switch( g_iFreedayType )
  647. {
  648. case UNRESTRICTED:
  649. {
  650. ColorChat( 0, NORMAL, "%s The guards have voted for an ^03Unrestricted Freeday^01.", g_szPrefix );
  651. }
  652.  
  653. case RESTRICTED:
  654. {
  655. ColorChat( 0, NORMAL, "%s The guards have voted for a ^03Restricted Freeday^01.", g_szPrefix );
  656. }
  657. }
  658.  
  659. ShowWeaponMenu();
  660. }
  661.  
  662. case DAY_NIGHTCRAWLER:
  663. {
  664. ColorChat( 0, NORMAL, "%s The guards have voted for a ^03Nightcrawler Day^01.", g_szPrefix );
  665.  
  666. switch( g_iNightcrawlerType )
  667. {
  668. case CT:
  669. {
  670. ColorChat( 0, NORMAL, "%s The ^03Guards ^01are the ^03Night-Crawlers^01!", g_szPrefix )
  671.  
  672. new players[32], num, player;
  673. get_players( players, num, "a" );
  674.  
  675. for( new i = 0; i < num; i++ )
  676. {
  677. player = players[i];
  678.  
  679. set_user_health( player, 100 );
  680.  
  681. StripPlayerWeapons( player );
  682. give_item( player, "weapon_knife" );
  683.  
  684. switch( cs_get_user_team( player ) )
  685. {
  686. case CS_TEAM_T:
  687. {
  688. give_item( player, "weapon_m4a1" );
  689. give_item( player, "weapon_deagle" );
  690.  
  691. cs_set_user_bpammo( player, CSW_M4A1, 90 );
  692. cs_set_user_bpammo( player, CSW_DEAGLE, 35 );
  693. }
  694.  
  695. case CS_TEAM_CT:
  696. {
  697. set_user_rendering( player, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0 );
  698.  
  699. set_user_footsteps( player, 1 );
  700.  
  701.  
  702. }
  703. }
  704. }
  705. }
  706.  
  707. case T:
  708. {
  709. ColorChat( 0, NORMAL, "%s The ^03Prisoners ^01are the ^03Night-Crawlers^01!", g_szPrefix );
  710.  
  711. new players[32], num, player;
  712. get_players( players, num, "a" );
  713.  
  714. for( new i = 0; i < num; i++ )
  715. {
  716. player = players[i];
  717.  
  718. set_user_health( player, 100 );
  719.  
  720. StripPlayerWeapons( player );
  721. give_item( player, "weapon_knife" );
  722.  
  723. switch( cs_get_user_team( player ) )
  724. {
  725. case CS_TEAM_CT:
  726. {
  727. give_item( player, "weapon_m4a1" );
  728. give_item( player, "weapon_deagle" );
  729.  
  730. cs_set_user_bpammo( player, CSW_M4A1, 90 );
  731. cs_set_user_bpammo( player, CSW_DEAGLE, 35 );
  732. }
  733.  
  734. case CS_TEAM_T:
  735. {
  736. set_user_rendering( player, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0 );
  737.  
  738. set_user_footsteps( player, 1 );
  739.  
  740.  
  741. }
  742. }
  743. }
  744. }
  745. }
  746. }
  747.  
  748. case DAY_SHARK:
  749. {
  750. ColorChat( 0, NORMAL, "%s The guards have voted for a ^03Shark Day^01.", g_szPrefix );
  751.  
  752. switch( g_iSharkType )
  753. {
  754. case CT:
  755. {
  756. ColorChat( 0, NORMAL, "%s The ^03Guards ^01are the ^03sharks^01!", g_szPrefix );
  757.  
  758. new players[32], num, player;
  759. get_players( players, num, "a" );
  760.  
  761. for( new i = 0; i < num; i++ )
  762. {
  763. player = players[i];
  764. set_user_health( player, 100 );
  765. StripPlayerWeapons( player );
  766. give_item( player, "weapon_knife" );
  767.  
  768. switch( cs_get_user_team( player ) )
  769. {
  770. case CS_TEAM_T:
  771. {
  772. give_item( player, "weapon_awp" );
  773. cs_set_user_bpammo( player, CSW_AWP, 30 );
  774. }
  775.  
  776. case CS_TEAM_CT:
  777. {
  778. set_user_noclip( player, 1 );
  779. }
  780. }
  781. }
  782. }
  783.  
  784. case T:
  785. {
  786. ColorChat( 0, NORMAL, "%s The ^03Prisoners ^01are the ^03sharks^01!", g_szPrefix );
  787.  
  788. new players[32], num, player;
  789. get_players( players, num, "a" );
  790.  
  791. for( new i = 0; i < num; i++ )
  792. {
  793. player = players[i];
  794. set_user_health( player, 100 );
  795. StripPlayerWeapons( player );
  796. give_item( player, "weapon_knife" );
  797.  
  798. switch( cs_get_user_team( player ) )
  799. {
  800. case CS_TEAM_CT:
  801. {
  802. give_item( player, "weapon_awp" );
  803. cs_set_user_bpammo( player, CSW_AWP, 30 );
  804. }
  805.  
  806. case CS_TEAM_T:
  807. {
  808. set_user_noclip( player, 1 );
  809. }
  810. }
  811. }
  812. }
  813. }
  814. }
  815.  
  816. }
  817.  
  818. ColorChat( 0, NORMAL, "%s ^03Objective: ^01%s", g_szPrefix, g_szDaymenuObjectives[g_iCurrentDay] );
  819.  
  820. if( get_pcvar_num( g_pOpenCells ) )
  821. Push_Button();
  822. }
  823.  
  824. public startDodgeballDay()
  825. {
  826. set_task( 0.1, "giveNades", TASK_HEGRENADE, _, _, "b" );
  827. }
  828.  
  829. public giveNades()
  830. {
  831. static players[32], num, player;
  832. get_players( players, num, "a" );
  833.  
  834. for( new i = 0; i < num; i++ )
  835. {
  836. player = players[i];
  837.  
  838. if( !is_user_alive( player ) ) continue;
  839.  
  840. if( !user_has_weapon( player, CSW_HEGRENADE ) )
  841. {
  842. give_item( player, "weapon_hegrenade" );
  843. }
  844. }
  845. }
  846.  
  847. public LogEvent_RoundStart()
  848. {
  849. engfunc( EngFunc_LightStyle, 0, "m" );
  850.  
  851. Reset();
  852.  
  853. RemoveAllTasks();
  854. }
  855.  
  856. public LogEvent_RoundEnd()
  857. {
  858. Reset();
  859. RemoveAllTasks();
  860.  
  861. new players[32], num;
  862. get_players( players, num, "a" );
  863.  
  864. for( new i = 0; i < num; i++ )
  865. {
  866. StripPlayerWeapons( players[i] );
  867. }
  868.  
  869. show_menu( 0, 0, "^n", 1 );
  870.  
  871. }
  872.  
  873. public Ham_PlayerSpawn_Post( id )
  874. {
  875. if( !is_user_alive( id ) )
  876. {
  877. return HAM_IGNORED;
  878. }
  879.  
  880. if( get_user_noclip( id ) )
  881. set_user_noclip( id, 0 );
  882.  
  883. set_user_footsteps( id, 0 );
  884.  
  885. set_user_rendering( id );
  886.  
  887. set_user_gravity( id );
  888.  
  889. cs_reset_user_model( id );
  890.  
  891. if( get_user_weapon( id ) == CSW_KNIFE )
  892. set_pev( id, pev_viewmodel2, "models/v_knife.mdl" );
  893.  
  894. set_user_gnvision( id, 0 );
  895.  
  896. StripPlayerWeapons( id );
  897. give_item( id, "weapon_knife" );
  898.  
  899.  
  900. return HAM_IGNORED;
  901. }
  902.  
  903. public Ham_TakeDamage_Pre( victim, inflictor, attacker, Float:damage, dmgbits )
  904. {
  905. switch( g_iCurrentDay )
  906. {
  907. case DAY_HNS:
  908. {
  909. if( task_exists( TASK_HIDENSEEK ) )
  910. return HAM_SUPERCEDE;
  911. }
  912.  
  913. case DAY_DODGEBALL:
  914. {
  915. if( task_exists( TASK_DODGEBALL ) )
  916. return HAM_SUPERCEDE;
  917. }
  918. }
  919.  
  920. return HAM_IGNORED;
  921. }
  922.  
  923. public Ham_USP_SecondaryAttack_Pre( ent )
  924. {
  925. if( g_iCurrentDay != DAY_USP_NINJA )
  926. return HAM_IGNORED;
  927.  
  928. if( !pev_valid( ent ) )
  929. return HAM_IGNORED;
  930.  
  931. if( cs_get_weapon_silen( ent ) )
  932. return HAM_IGNORED;
  933.  
  934. else cs_set_weapon_silen( ent, 1 );
  935.  
  936. return HAM_IGNORED;
  937. }
  938.  
  939. public Ham_WeaponTouch_Pre( iEntity, id )
  940. {
  941. if( !is_user_alive( id ) )
  942. return HAM_IGNORED;
  943.  
  944. new CsTeams:team = cs_get_user_team( id );
  945.  
  946. switch( g_iCurrentDay )
  947. {
  948. case DAY_NIGHTCRAWLER:
  949. {
  950. if( ( team == CS_TEAM_CT && g_iNightcrawlerType == CT )
  951. || ( team == CS_TEAM_T && g_iNightcrawlerType == T ) )
  952. return HAM_SUPERCEDE;
  953. }
  954.  
  955. case DAY_SHARK:
  956. {
  957. if( ( team == CS_TEAM_CT && g_iSharkType == CT )
  958. || ( team == CS_TEAM_T && g_iSharkType == T ) )
  959. return FMRES_SUPERCEDE;
  960. }
  961.  
  962. case DAY_SPACE, DAY_KNIFE, DAY_USP_NINJA, DAY_DODGEBALL:
  963. {
  964. return HAM_SUPERCEDE;
  965. }
  966.  
  967. case DAY_HNS:
  968. {
  969. if( team == CS_TEAM_T )
  970. return HAM_SUPERCEDE;
  971. }
  972. }
  973.  
  974. return HAM_IGNORED;
  975. }
  976.  
  977. public Ham_WallTouch_Pre( iEntity, id )
  978. {
  979. if( !is_user_alive( id ) || g_iCurrentDay != DAY_NIGHTCRAWLER )
  980. return FMRES_IGNORED;
  981.  
  982. pev( id, pev_origin, g_fWallOrigin[id] );
  983.  
  984. return FMRES_IGNORED;
  985. }
  986.  
  987. public Forward_AddToFullPack_Post( es_handle, e, ent, host, hostflags, id, pSet )
  988. {
  989. if( id && g_iCurrentDay == DAY_NIGHTCRAWLER )
  990. {
  991. if( get_user_team( host ) == get_user_team( ent ) )
  992. {
  993. set_es( es_handle, ES_RenderMode, kRenderTransTexture );
  994. set_es( es_handle, ES_RenderAmt, 255 );
  995.  
  996. }
  997. }
  998. }
  999.  
  1000. public Forward_PreThink( id )
  1001. {
  1002. if( g_iCurrentDay != DAY_NIGHTCRAWLER )
  1003. return FMRES_IGNORED;
  1004.  
  1005. new CsTeams:team = cs_get_user_team( id );
  1006.  
  1007. if( team == CS_TEAM_CT && g_iNightcrawlerType == T )
  1008. return FMRES_IGNORED;
  1009.  
  1010. else if( team == CS_TEAM_T && g_iNightcrawlerType == CT )
  1011. return FMRES_IGNORED;
  1012.  
  1013. new button = fm_get_user_button( id );
  1014.  
  1015. if( button & IN_USE )
  1016. {
  1017. static Float:origin[3];
  1018. pev( id, pev_origin, origin );
  1019.  
  1020. if( get_distance_f( origin, g_fWallOrigin[id] ) > 10.0 )
  1021. return FMRES_IGNORED;
  1022.  
  1023. if( fm_get_entity_flags( id ) & FL_ONGROUND )
  1024. return FMRES_IGNORED;
  1025.  
  1026. if( button & IN_FORWARD )
  1027. {
  1028. static Float:velocity[3];
  1029. velocity_by_aim( id, 240, velocity );
  1030.  
  1031. fm_set_user_velocity( id, velocity );
  1032. }
  1033.  
  1034. else if( button & IN_BACK )
  1035. {
  1036. static Float:velocity[3];
  1037. velocity_by_aim( id, -240, velocity );
  1038.  
  1039. fm_set_user_velocity( id, velocity );
  1040. }
  1041. }
  1042.  
  1043. return FMRES_IGNORED;
  1044. }
  1045.  
  1046. public ShowWeaponMenu()
  1047. {
  1048. new menu = menu_create( "Choose Your Weapon:", "Weapon_MenuHandler" );
  1049. menu_additem( menu, "M4a1", "0" );
  1050. menu_additem( menu, "AK-47", "1" );
  1051. menu_additem( menu, "AUG", "2" );
  1052. menu_additem( menu, "Scout", "3" )
  1053. menu_additem( menu, "AWP", "4" );
  1054. menu_additem( menu, "MP5", "5" );
  1055.  
  1056. new players[32], num;
  1057. get_players( players, num, "ae", "CT" );
  1058.  
  1059. for( new i = 0; i < num ;i++ )
  1060. {
  1061. menu_display( players[i], menu, 0 );
  1062. }
  1063. }
  1064.  
  1065. public Weapon_MenuHandler( id, menu, item )
  1066. {
  1067. if( !is_user_alive( id ) )
  1068. return PLUGIN_HANDLED;
  1069.  
  1070. if( item == MENU_EXIT )
  1071. {
  1072. give_item( id, "weapon_m4a1" );
  1073. give_item( id, "weapon_deagle" )
  1074.  
  1075. cs_set_user_bpammo( id, CSW_M4A1, 300 );
  1076. cs_set_user_bpammo( id, CSW_DEAGLE, 100 );
  1077.  
  1078. return PLUGIN_HANDLED;
  1079. }
  1080.  
  1081. if( !is_user_alive( id ) )
  1082. return PLUGIN_HANDLED;
  1083.  
  1084. new data[6], szName[64];
  1085. new access, callback;
  1086.  
  1087. menu_item_getinfo( menu, item, access, data, 5, szName, 63, callback );
  1088.  
  1089. new key = str_to_num( data );
  1090.  
  1091. StripPlayerWeapons( id );
  1092.  
  1093. give_item( id, "weapon_knife" );
  1094.  
  1095. switch( key )
  1096. {
  1097. case MAVERICK:
  1098. {
  1099. give_item( id, "weapon_m4a1" );
  1100. cs_set_user_bpammo( id, CSW_M4A1, 300 );
  1101. }
  1102.  
  1103. case AK:
  1104. {
  1105. give_item( id, "weapon_ak47" );
  1106. cs_set_user_bpammo( id, CSW_AK47, 300 );
  1107. }
  1108.  
  1109. case AUG:
  1110. {
  1111. give_item( id, "weapon_aug" );
  1112. cs_set_user_bpammo( id, CSW_AUG, 300 );
  1113. }
  1114.  
  1115. case AWP:
  1116. {
  1117. give_item( id, "weapon_awp" );
  1118. cs_set_user_bpammo( id, CSW_AWP, 100 );
  1119. }
  1120.  
  1121. case MP5:
  1122. {
  1123. give_item( id, "weapon_mp5navy" );
  1124. cs_set_user_bpammo( id, CSW_MP5NAVY, 300 );
  1125. }
  1126.  
  1127. case SCOUT:
  1128. {
  1129. give_item( id, "weapon_scout" );
  1130. cs_set_user_bpammo( id, CSW_SCOUT, 90 );
  1131. }
  1132. }
  1133.  
  1134. give_item( id, "weapon_deagle" );
  1135. cs_set_user_bpammo( id, CSW_DEAGLE, 100 );
  1136.  
  1137. give_item( id, "weapon_hegrenade" );
  1138.  
  1139. return PLUGIN_HANDLED;
  1140. }
  1141.  
  1142. public RemoveAllTasks()
  1143. {
  1144. if( task_exists( TASK_HEGRENADE ) )
  1145. {
  1146. remove_task( TASK_HEGRENADE );
  1147. }
  1148.  
  1149. if( task_exists( TASK_DODGEBALL ) )
  1150. {
  1151. remove_task( TASK_DODGEBALL );
  1152. }
  1153.  
  1154. if( task_exists( TASK_HIDENSEEK ) )
  1155. remove_task( TASK_HIDENSEEK );
  1156.  
  1157. }
  1158.  
  1159. public Reset()
  1160. {
  1161. if( get_cvar_num( "sv_gravity" ) != 800 )
  1162. server_cmd( "sv_gravity 800" );
  1163.  
  1164. if( get_cvar_num( "mp_friendlyfire" ) )
  1165. server_cmd( "mp_friendlyfire 0" );
  1166.  
  1167. if( get_cvar_num( "decalfrequency" ) == 15 )
  1168. server_cmd( "decalfrequency 60" );
  1169.  
  1170. /* Reset ALL variables */
  1171. g_iCurrentDay = -1;
  1172. g_iFreedayType = -1;
  1173. g_iSharkType = -1;
  1174. g_iNightcrawlerType = -1;
  1175. }
  1176.  
  1177. public setup_buttons()
  1178. {
  1179. new ent = 1
  1180. new ent3
  1181. new Float:origin[3]
  1182. new Float:radius = 200.0
  1183. new class[32]
  1184. new name[32]
  1185. new pos
  1186. while((pos <= sizeof(g_iButtons)) && (ent = engfunc(EngFunc_FindEntityByString, ent, "classname", "info_player_deathmatch"))) // info_player_deathmatch = tspawn
  1187. {
  1188. new ent2 = 1
  1189. pev(ent, pev_origin, origin)
  1190. while((ent2 = engfunc(EngFunc_FindEntityInSphere, ent2, origin, radius))) // find doors near T spawn
  1191. {
  1192. if(!pev_valid(ent2))
  1193. continue
  1194.  
  1195. pev(ent2, pev_classname, class, charsmax(class))
  1196. if(!equal(class, "func_door")) // if it's not a door, move on to the next iteration
  1197. continue
  1198.  
  1199. pev(ent2, pev_targetname, name, charsmax(name))
  1200. ent3 = engfunc(EngFunc_FindEntityByString, 0, "target", name) // find button that opens this door
  1201. if(pev_valid(ent3) && (in_array(ent3, g_iButtons, sizeof(g_iButtons)) < 0))
  1202. {
  1203. ExecuteHamB(Ham_Use, ent3, 0, 0, 1, 1.0) // zomg poosh it
  1204. g_iButtons[pos] = ent3
  1205. pos++ // next
  1206. break // break from current while loop
  1207. }
  1208. }
  1209. }
  1210. return pos
  1211. }
  1212.  
  1213. public Push_Button()
  1214. {
  1215. static i
  1216. for(i = 0; i < sizeof(g_iButtons); i++)
  1217. {
  1218. if(g_iButtons[i])
  1219. {
  1220. ExecuteHamB(Ham_Use, g_iButtons[i], 0, 0, 1, 1.0)
  1221. entity_set_float(g_iButtons[i], EV_FL_frame, 0.0)
  1222. }
  1223. }
  1224. }
  1225.  
  1226. // By ConnorMcLeod - Prevent Weapon Pickup Glitch
  1227.  
  1228. #define OFFSET_PRIMARYWEAPON 116
  1229.  
  1230. public StripPlayerWeapons(id)
  1231. {
  1232. strip_user_weapons(id)
  1233. set_pdata_int(id, OFFSET_PRIMARYWEAPON, 0)
  1234. }
  1235.  
  1236. stock in_array(needle, data[], size)
  1237. {
  1238. for(new i = 0; i < size; i++)
  1239. {
  1240. if(data[i] == needle)
  1241. return i
  1242. }
  1243. return -1
  1244. }
  1245.  
  1246. set_user_gnvision(id, toggle)
  1247. {
  1248. // Toggle NVG message
  1249. message_begin(MSG_ONE, g_msgNVGToggle, _, id)
  1250. write_byte(toggle) // toggle
  1251. message_end()
  1252. }

_________________
Ha segítettem: Kép

Kép


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 54 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