hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.03.28. 14:53



Jelenlévő felhasználók

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

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

Regisztrált felhasználók: Google [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  [ 3 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Miért restartolja a modeleket
HozzászólásElküldve: 2013.12.23. 21:18 
Offline
Senior Tag
Avatar

Csatlakozott: 2013.11.12. 16:39
Hozzászólások: 258
Megköszönt másnak: 87 alkalommal
Megköszönték neki: 2 alkalommal
Sziasztok ! Nekem van egy jailbrek-hez egy jó nap plugin (speciális napok) .Az lenne a kérdésem , hogy miért restartolja a modelleket (NINCS ADMIN MODEL ) csak ezért kérdezem :) Köszönöm előre a válaszokat :)
SMA Forráskód: [ Mindet kijelol ]
  1. /**
  2. *
  3. * Jailbreak Day Menu
  4. * nikhilgupta345
  5. *
  6. *
  7. * Features
  8. *
  9. * - Voting on Round Start
  10. * + Guards vote
  11. * + Prisoners vote only every X round
  12. *
  13. * - Many Day Optsions
  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. * CVARS
  40. * - jb_votetime 15 <seconds> // How long players have to vote
  41. * - jb_terroristvote <rounds> // How often Prisoners should vote // Every X times a vote occurs
  42. * - jb_voteoften <rounds> // How often a vote happens // Every X Rounds
  43. * - jb_opencells <0/1> // Whether cells should be opened when day is chosen or not. (0=OFF, 1=ON)
  44. *
  45. * Credits
  46. * Python1320 - Used his code from WallClimb from nightcrawler's climb
  47. * Joropito - Used his code for open cells.
  48. * Mercylezz - Used some code for zombie nightvision.
  49. *
  50. * Changelog
  51. * September 24, 2011 -v1.0- Initial release
  52. * September 24, 2011 -v1.1- Added CVAR jb_opencells
  53. * September 25, 2011 -v1.2- Added ability for only simons to use daymenu. Also added nightvision for the zombies.
  54. *
  55. *
  56. *
  57. **/
  58.  
  59. // Includes
  60. ////////////
  61.  
  62. #include < amxmodx >
  63. #include < amxmisc >
  64. #include < cstrike >
  65. #include < colorchat >
  66. #include < fun >
  67. #include < hamsandwich >
  68. #include < fakemeta >
  69. #include < engine >
  70. #include < fakemeta_util >
  71.  
  72. #if !defined _colorchat_included
  73. #assert colorchat.inc library required !
  74. #endif
  75.  
  76. // Defines
  77. ///////////
  78.  
  79. #define CELL_RADIUS Float:200.0
  80.  
  81. // Enumerations
  82. ////////////////
  83.  
  84. enum
  85. {
  86. DAY_FREE,
  87. DAY_CAGE,
  88. DAY_RIOT,
  89. DAY_ZOMBIE,
  90. DAY_DODGEBALL,
  91. DAY_USP_NINJA,
  92. DAY_LAVA,
  93. DAY_NIGHTCRAWLER,
  94. DAY_SPACE,
  95. DAY_SHARK,
  96. DAY_KNIFE,
  97. DAY_HNS,
  98.  
  99. MAX_DAYS
  100. }
  101.  
  102. enum
  103. {
  104. UNRESTRICTED,
  105. RESTRICTED
  106. }
  107.  
  108. enum
  109. {
  110. CT,
  111. T
  112. }
  113. enum
  114. {
  115. MAVERICK,
  116. AK,
  117. AUG,
  118. SCOUT,
  119. AWP,
  120. MP5
  121. }
  122.  
  123. enum ( += 100 )
  124. {
  125. TASK_HEGRENADE = 100,
  126. TASK_DODGEBALL,
  127. TASK_MAINDAYMENU,
  128. TASK_ZOMBIEMENU,
  129. TASK_HIDENSEEK,
  130. TASK_SHARKMENU,
  131. TASK_NCMENU,
  132. TASK_FREEMENU
  133. }
  134.  
  135.  
  136. // Integers
  137. ////////////
  138.  
  139. new g_iTimeLeft;
  140. new g_iRoundStartTime;
  141.  
  142. new g_iCurrentDay;
  143. new g_iDayCount;
  144.  
  145. new g_iFreedayType;
  146. new g_iNightcrawlerType;
  147. new g_iZombieType;
  148. new g_iSharkType;
  149.  
  150. new g_iTimesVoted;
  151.  
  152. // PCVars
  153. //////////
  154.  
  155. new g_pVoteTime;
  156. new g_pTerroristDays;
  157. new g_pVoteOften;
  158.  
  159. new g_pOpenCells;
  160.  
  161. // Arrays
  162. //////////
  163.  
  164. new g_iMainDayVotes[MAX_DAYS];
  165. new g_iFreedayVotes[2];
  166. new g_iNightcrawlerVotes[2];
  167. new g_iZombieVotes[2];
  168. new g_iSharkVotes[2];
  169.  
  170. new g_iCurrentPage[33];
  171.  
  172. new g_iButtons[10];
  173.  
  174. new bool:g_bHasVoted[33] = { false, ... };
  175.  
  176. new Float:g_fWallOrigin[33][3];
  177.  
  178. // Messages
  179. ////////////
  180.  
  181. new g_msgNVGToggle;
  182.  
  183. // Booleans
  184. ////////////
  185.  
  186. new bool:g_bTerroristVote;
  187.  
  188. // Constants
  189. /////////////
  190.  
  191. new const g_szDaymenuOptions[MAX_DAYS][] =
  192. {
  193. "Szabad Nap",
  194. "Ketrec Nap",
  195. "Lazadas Nap",
  196. "Zombi Nap",
  197. "Kidobos Nap",
  198. "Ninja Nap (usp-vel)",
  199. "Lava Nap",
  200. "Arnyek Nap",
  201. "Ur Nap",
  202. "Capa Nap",
  203. "Kes Nap",
  204. "Bujocska Nap"
  205. }
  206.  
  207. new const g_szDaymenuObjectives[MAX_DAYS][] =
  208. {
  209. "A rabok barhova mehetnek. Kiveve GR-t!",
  210. "A raboknak be kell menni a nagyketrecbe es kovetni az orok utasitasait.",
  211. "Egy rab kap fegyvert. Az orok feladata megtalalni kinel van.",
  212. "Old meg a masik csapatot. A zombik 2000 hp val indulnak.",
  213. "Old meg a masik csapatot granatokkal!",
  214. "Mindket csapat kap usp-t. A gravitacio lecsokkent.",
  215. "",
  216. "Old meg a masik csapatot. Lathatatlanok vagytok es nem trappoltok",
  217. "Kis gravitacio.A raboknak scout az oroknek awp jar.",
  218. "A rabok at tudnak menni mindenen. Az orok awp vel lovik oket",
  219. "Az oroknek 150 hp, a raboknak 35 oljetek meg egymast!",
  220. "A raboknak 60 masodpercuk van elbujni. Utana az orok megkeresik es lelovik oket!"
  221. }
  222.  
  223. new const g_szPrefix[] = "[JailBreak] [Napmenu]";
  224.  
  225. new const g_szZombieModel[ ] = "models/player/zombie/zombie.mdl";
  226. new const g_szZombieHands[ ] = "models/jailbreak/zombie_hands.mdl";
  227.  
  228. new const g_szVersion[ ] = "1.2";
  229.  
  230. public plugin_precache()
  231. {
  232. precache_model( g_szZombieModel );
  233. precache_model( g_szZombieHands );
  234. }
  235.  
  236. ////////////////////////////////////
  237. //--------- Plugin Init ----------//
  238. ////////////////////////////////////
  239. public plugin_init()
  240. {
  241. register_plugin( "Jailbreak Napmenu", g_szVersion, "H3avY Ra1n" );
  242.  
  243. register_logevent( "LogEvent_RoundStart", 2, "1=Round_Start" );
  244. register_logevent( "LogEvent_RoundEnd", 2, "1=Round_End" );
  245.  
  246. register_event( "DeathMsg", "Event_DeathMsg", "a" );
  247.  
  248. RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawn_Post", 1 );
  249.  
  250. RegisterHam( Ham_TakeDamage, "player", "Ham_TakeDamage_Pre", 0 );
  251.  
  252. RegisterHam( Ham_Weapon_SecondaryAttack, "weapon_usp", "Ham_USP_SecondaryAttack_Post", 1 );
  253.  
  254. RegisterHam( Ham_Touch, "armoury_entity", "Ham_Touch_Weapon_Pre" );
  255. RegisterHam( Ham_Touch, "weaponbox", "Ham_Touch_Weapon_Pre" );
  256. RegisterHam( Ham_Touch, "worldspawn", "Ham_Touch_Wall_Pre" );
  257. RegisterHam( Ham_Touch, "func_wall", "Ham_Touch_Wall_Pre" );
  258. RegisterHam( Ham_Touch, "func_breakable", "Ham_Touch_Wall_Pre" );
  259.  
  260. register_forward( FM_AddToFullPack, "Forward_AddToFullPack_Post", 1 );
  261. register_forward( FM_PlayerPreThink, "Forward_PreThink", 0 );
  262.  
  263. register_menu( "Main Menu", 1023, "MainMenu_Handler" );
  264. register_menu( "Shark Menu", MENU_KEY_1 | MENU_KEY_2, "SharkMenu_Handler" );
  265. register_menu( "Zombie Menu", MENU_KEY_1 | MENU_KEY_2, "ZombieMenu_Handler" );
  266. register_menu( "Freeday Menu", MENU_KEY_1 | MENU_KEY_2, "FreedayMenu_Handler" );
  267. register_menu( "Nightcrawler Menu", MENU_KEY_1 | MENU_KEY_2, "NightcrawlerMenu_Handler" );
  268.  
  269. server_cmd( "mp_roundtime 9" );
  270. server_cmd( "mp_freezetime 0" );
  271.  
  272. g_pVoteOften = register_cvar( "jb_vote_often", "8" );
  273. g_pVoteTime = register_cvar( "jb_votetime", "15" );
  274. g_pTerroristDays = register_cvar( "jb_terroristvote", "1" ); // Prisoners vote every X days
  275. g_pOpenCells = register_cvar( "jb_opencells", "1" );
  276.  
  277. register_cvar( "daymenu_version_novote", g_szVersion, FCVAR_SPONLY|FCVAR_SERVER );
  278.  
  279. g_msgNVGToggle = get_user_msgid( "NVGToggle" );
  280.  
  281. setup_buttons();
  282. }
  283.  
  284. ////////////////////////////////////
  285. // Player Dies //
  286. ////////////////////////////////////
  287.  
  288. public Event_DeathMsg()
  289. {
  290. new players[32], num;
  291. get_players( players, num, "ae", "TERRORIST" );
  292.  
  293. if( num == 1 )
  294. {
  295. if( g_iCurrentDay == DAY_ZOMBIE )
  296. {
  297. engfunc( EngFunc_LightStyle, 0, "m" );
  298.  
  299. cs_reset_user_model( players[ 1 ] );
  300.  
  301. if( get_user_weapon( players[ 0 ] ) == CSW_KNIFE )
  302. set_pev( players[ 0 ], pev_viewmodel2, "models/v_knife.mdl" );
  303. }
  304.  
  305. g_iCurrentDay = -1;
  306. set_user_footsteps( players[0], 0 );
  307. set_user_rendering( players[0] );
  308. }
  309. }
  310.  
  311. ////////////////////////////////////
  312. // Player Takes Damage PRE //
  313. ////////////////////////////////////
  314.  
  315. public Ham_TakeDamage_Pre( victim, inflictor, attacker, Float:damage, dmgbits )
  316. {
  317. switch( g_iCurrentDay )
  318. {
  319. case DAY_HNS:
  320. {
  321. if( task_exists( TASK_HIDENSEEK ) )
  322. return HAM_SUPERCEDE;
  323. }
  324.  
  325. case DAY_DODGEBALL:
  326. {
  327. if( task_exists( TASK_DODGEBALL ) )
  328. return HAM_SUPERCEDE;
  329. }
  330. }
  331.  
  332. return HAM_IGNORED;
  333. }
  334.  
  335.  
  336. ////////////////////////////////////
  337. // Player Spawned POST //
  338. ////////////////////////////////////
  339.  
  340. public Ham_PlayerSpawn_Post( id )
  341. {
  342. if( !is_user_alive( id ) )
  343. {
  344. return HAM_IGNORED;
  345. }
  346.  
  347. if( get_user_noclip( id ) )
  348. set_user_noclip( id, 0 );
  349.  
  350. set_user_footsteps( id, 0 );
  351.  
  352. set_user_rendering( id );
  353.  
  354. set_user_gravity( id );
  355.  
  356. cs_reset_user_model( id );
  357.  
  358. if( get_user_weapon( id ) == CSW_KNIFE )
  359. set_pev( id, pev_viewmodel2, "models/v_knife.mdl" );
  360.  
  361. set_user_gnvision( id, 0 );
  362.  
  363. StripPlayerWeapons( id );
  364. give_item( id, "weapon_knife" );
  365.  
  366.  
  367. return HAM_IGNORED;
  368. }
  369.  
  370. ////////////////////////////////////
  371. // Round Started //
  372. ////////////////////////////////////
  373. public LogEvent_RoundStart()
  374. {
  375. engfunc( EngFunc_LightStyle, 0, "m" );
  376.  
  377. g_iDayCount++;
  378.  
  379. Reset();
  380.  
  381. RemoveAllTasks();
  382.  
  383. g_iRoundStartTime = get_systime();
  384.  
  385. new iOften = get_pcvar_num( g_pVoteOften );
  386.  
  387. if( iOften == 0 )
  388. {
  389. if( random_num( 1, 10 ) == 10 )
  390. {
  391. g_iTimesVoted++;
  392. StartDayVote();
  393. }
  394.  
  395. }
  396.  
  397. else
  398. {
  399. if( g_iDayCount % iOften == 0 )
  400. {
  401. g_iTimesVoted++;
  402.  
  403. if( g_iTimesVoted % get_pcvar_num( g_pTerroristDays ) == 0 )
  404. {
  405. g_bTerroristVote = true;
  406. }
  407.  
  408. else g_bTerroristVote = false;
  409.  
  410. StartDayVote();
  411. }
  412. }
  413. }
  414.  
  415.  
  416. ////////////////////////////////////
  417. // Round Ended //
  418. ////////////////////////////////////
  419. public LogEvent_RoundEnd()
  420. {
  421. Reset();
  422. RemoveAllTasks();
  423.  
  424. new players[32], num;
  425. get_players( players, num, "a" );
  426.  
  427. for( new i = 0; i < num; i++ )
  428. {
  429. StripPlayerWeapons( players[i] );
  430. }
  431.  
  432. show_menu( 0, 0, "^n", 1 );
  433.  
  434. }
  435.  
  436. ////////////////////////////////////
  437. // Client Connected //
  438. ////////////////////////////////////
  439. public client_putinserver( id )
  440. {
  441. g_bHasVoted[id] = false;
  442. g_iCurrentPage[id] = 0;
  443.  
  444. if( g_iCurrentDay == DAY_ZOMBIE )
  445. {
  446. engfunc( EngFunc_LightStyle, 0, "b" );
  447. }
  448.  
  449. else engfunc( EngFunc_LightStyle, 0, "m" );
  450. }
  451.  
  452. ////////////////////////////////////
  453. // Main Day Vote //
  454. ////////////////////////////////////
  455. public StartDayVote() // This function starts the whole process.
  456. {
  457. g_iTimeLeft = get_pcvar_num( g_pVoteTime );
  458.  
  459. clamp( g_iTimeLeft, 5, 30 );
  460.  
  461. ShowDayMenu();
  462. set_task( 1.0, "MainDayCountdown", TASK_MAINDAYMENU, _, _, "a", g_iTimeLeft );
  463. }
  464.  
  465. public MainDayCountdown()
  466. {
  467. g_iTimeLeft--;
  468.  
  469. if( g_iTimeLeft > 0 )
  470. {
  471. ShowDayMenu();
  472. }
  473.  
  474. else
  475. {
  476. DayVoteEnded();
  477. }
  478. }
  479.  
  480. public ShowDayMenu()
  481. {
  482. if( !( g_iTimeLeft > 0) )
  483. return;
  484.  
  485. static szMenu[ 2048 ];
  486. static szFormat[ 2048 ];
  487.  
  488. new iPlayers[ 32 ], iNum;
  489. get_players( iPlayers, iNum, "a" );
  490.  
  491. new iPlayer;
  492.  
  493. for( new i = 0; i < iNum; i++ )
  494. {
  495. iPlayer = iPlayers[ i ];
  496.  
  497. formatex( szMenu, charsmax( szMenu ), "Jailbreak [Napmenu]^n\yValassz egy napot: [%i]", g_iTimeLeft );
  498.  
  499. if( g_iCurrentPage[ iPlayer ] == 0 )
  500. {
  501. for( new i = 0; i < 7; i++ )
  502. {
  503. formatex( szFormat, charsmax( szFormat ), "^n\r%d. \w%s [Szavazatok: %d]", i + 1, g_szDaymenuOptions[ i ], g_iMainDayVotes[ i ] );
  504.  
  505. add( szMenu, charsmax( szMenu ), szFormat );
  506.  
  507. }
  508.  
  509. add( szMenu, charsmax( szMenu ), "^n^n\r8. \dVissza" );
  510. add( szMenu, charsmax( szMenu ), "^n\r9. \wKovetkezo" );
  511.  
  512. }
  513.  
  514. else
  515. {
  516. for( new i = 7; i < MAX_DAYS; i++ )
  517. {
  518. formatex( szFormat, charsmax( szFormat ), "^n\r%d. \w%s [Szavazatok: %d]", i - 6, g_szDaymenuOptions[ i ], g_iMainDayVotes[ i ] );
  519.  
  520. add( szMenu, charsmax( szMenu ), szFormat );
  521.  
  522. }
  523.  
  524. add( szMenu, charsmax( szMenu ), "^n^n\r8. \wVissza" );
  525. add( szMenu, charsmax( szMenu ), "^n\r9. \dKovetkezo" );
  526. }
  527.  
  528. show_menu( iPlayer, 1023, szMenu, -1, "Main Menu" );
  529. }
  530. }
  531.  
  532. public MainMenu_Handler( id, iKey )
  533. {
  534. if( !is_user_connected( id ) )
  535. return PLUGIN_HANDLED;
  536.  
  537. new CsTeams:team = cs_get_user_team( id );
  538. switch( g_iCurrentPage[ id ] )
  539. {
  540. case 0:
  541. {
  542. if( iKey == 8 )
  543. {
  544. g_iCurrentPage[ id ]++;
  545. ShowDayMenu();
  546. return PLUGIN_HANDLED;
  547. }
  548.  
  549. else
  550. {
  551. if( g_bHasVoted[id] )
  552. {
  553. ColorChat( id, NORMAL, "%s Te mar szavaztal.", g_szPrefix );
  554. ShowDayMenu();
  555. return PLUGIN_HANDLED;
  556. }
  557.  
  558. else if( ( team == CS_TEAM_T && !g_bTerroristVote ) || ( team == CS_TEAM_CT && g_bTerroristVote ) )
  559. {
  560. ColorChat( id, NORMAL, "%s Te nem szavazhatsz ma!", g_szPrefix );
  561. ShowDayMenu();
  562. return PLUGIN_HANDLED;
  563. }
  564.  
  565. else
  566. {
  567. g_iMainDayVotes[ iKey ]++;
  568. g_bHasVoted[ id ] = true;
  569. ShowDayMenu();
  570.  
  571. return PLUGIN_HANDLED;
  572. }
  573. }
  574. }
  575.  
  576. case 1:
  577. {
  578. if( iKey == 7 )
  579. {
  580. g_iCurrentPage[ id ]--;
  581. ShowDayMenu();
  582. return PLUGIN_HANDLED;
  583. }
  584.  
  585. else if( iKey == 8 )
  586. {
  587. ShowDayMenu();
  588. return PLUGIN_HANDLED;
  589. }
  590.  
  591. else if( iKey > MAX_DAYS - 8 )
  592. {
  593. ShowDayMenu();
  594. return PLUGIN_HANDLED;
  595. }
  596.  
  597. else
  598. {
  599. if( g_bHasVoted[id] )
  600. {
  601. ColorChat( id, NORMAL, "%s Te mar szavaztal.", g_szPrefix );
  602. ShowDayMenu();
  603. return PLUGIN_HANDLED;
  604. }
  605.  
  606. else if( ( team == CS_TEAM_T && !g_bTerroristVote ) || ( team == CS_TEAM_CT && g_bTerroristVote ) )
  607. {
  608. ColorChat( id, NORMAL, "%s Te nem szavazhatsz ma!", g_szPrefix );
  609. ShowDayMenu();
  610. return PLUGIN_HANDLED;
  611. }
  612.  
  613. else
  614. {
  615. g_iMainDayVotes[ iKey + 7 ]++;
  616. g_bHasVoted[ id ] = true;
  617. ShowDayMenu();
  618.  
  619. return PLUGIN_HANDLED;
  620. }
  621. }
  622. }
  623. }
  624.  
  625. return PLUGIN_HANDLED;
  626. }
  627.  
  628. public DayVoteEnded()
  629. {
  630. show_menu( 0, 0, "^n", 1 );
  631.  
  632. TallyDayVotes();
  633. }
  634.  
  635. public TallyDayVotes()
  636. {
  637. g_iCurrentDay = getHighestVote( g_iMainDayVotes, MAX_DAYS );
  638.  
  639. if( g_iCurrentDay < 0 )
  640. {
  641. ColorChat( 0, NORMAL, "%s A szavazas sikertelen. Alapertelmezett: Ketrec Nap!", g_szPrefix );
  642. g_iCurrentDay = DAY_CAGE;
  643. }
  644.  
  645. else
  646. ColorChat( 0, NORMAL, "%s A/Az %s megszavaztak a ^03%s^01-ot.", g_szPrefix, g_bTerroristVote ? "Rabok" : "Orok", g_szDaymenuOptions[g_iCurrentDay] );
  647.  
  648. startDay();
  649.  
  650.  
  651. return PLUGIN_HANDLED;
  652. }
  653.  
  654. ////////////////////////////////////
  655. // Starting Chosen Day //
  656. ////////////////////////////////////
  657. public startDay()
  658. {
  659. for( new i = 0; i < sizeof g_bHasVoted; i++ )
  660. {
  661. g_bHasVoted[i] = false;
  662. g_iCurrentPage[i] = 0;
  663. }
  664.  
  665. switch( g_iCurrentDay )
  666. {
  667. case DAY_CAGE:
  668. {
  669. ShowWeaponMenu();
  670. }
  671.  
  672. case DAY_FREE:
  673. {
  674. Start_FreedayVote();
  675. return PLUGIN_HANDLED;
  676. }
  677.  
  678. case DAY_NIGHTCRAWLER:
  679. {
  680. Start_NightcrawlerVote();
  681. return PLUGIN_HANDLED;
  682. }
  683.  
  684. case DAY_SHARK:
  685. {
  686. Start_SharkVote();
  687. return PLUGIN_HANDLED;
  688. }
  689.  
  690. case DAY_ZOMBIE:
  691. {
  692. Start_ZombieVote();
  693. return PLUGIN_HANDLED;
  694. }
  695.  
  696. case DAY_RIOT:
  697. {
  698. new players[32], num;
  699. get_players( players, num, "ae", "TERRORIST" );
  700.  
  701. if( num == 0 )
  702. {
  703. ColorChat( 0, NORMAL, "%s Jelenleg nincsenek ^03Rabok ^01elve.", g_szPrefix );
  704. return PLUGIN_HANDLED;
  705. }
  706.  
  707. else if( num == 1 )
  708. {
  709. ColorChat( 0, NORMAL, "%s Nincs eleg ^03Rab ^01eletben ehhez a naphoz.", g_szPrefix );
  710. return PLUGIN_HANDLED;
  711. }
  712.  
  713.  
  714. new random = random_num( 1, num );
  715.  
  716. while( !is_user_alive( players[random] ) )
  717. random = random_num( 1, num );
  718.  
  719. cs_set_weapon_ammo( give_item( players[random], "weapon_m4a1" ), 90 );
  720. cs_set_weapon_ammo( give_item( players[random], "weapon_deagle" ), 35 );
  721.  
  722. ShowWeaponMenu();
  723. }
  724.  
  725. case DAY_DODGEBALL:
  726. {
  727.  
  728. new Float:roundtime = get_cvar_float( "mp_roundtime" );
  729.  
  730. roundtime *= 60;
  731.  
  732. roundtime -= ( get_systime() - g_iRoundStartTime );
  733.  
  734. set_task( roundtime - 480, "startDodgeballDay", TASK_DODGEBALL );
  735.  
  736. new iPlayers[ 32 ], iNum;
  737. get_players( iPlayers, iNum, "a" );
  738.  
  739. for( new i = 0; i < iNum; i++ )
  740. {
  741. strip_user_weapons( iPlayers[ i ] );
  742. give_item( iPlayers[ i ], "weapon_knife" );
  743. }
  744. }
  745.  
  746. case DAY_USP_NINJA:
  747. {
  748. new players[32], num, player;
  749. get_players( players, num, "a" );
  750.  
  751. for( new i = 0; i < num; i++ )
  752. {
  753. player = players[i];
  754. set_user_health( player, 100 );
  755. StripPlayerWeapons( player );
  756. give_item( player, "weapon_knife" );
  757.  
  758. give_item( player, "weapon_usp" );
  759.  
  760. if( cs_get_user_team( player ) == CS_TEAM_CT )
  761. {
  762. cs_set_user_bpammo( player, CSW_USP, 112 );
  763. }
  764.  
  765. else
  766. {
  767. cs_set_user_bpammo( player, CSW_USP, 32 );
  768. }
  769.  
  770. new ent = find_ent_by_owner( 0, "weapon_usp", player );
  771. cs_set_weapon_silen( ent, 1 );
  772. }
  773.  
  774. server_cmd( "sv_gravity 300" );
  775. }
  776.  
  777. case DAY_SPACE:
  778. {
  779. new players[32], num, player;
  780. get_players( players, num, "a" );
  781.  
  782. for( new i = 0; i < num; i++ )
  783. {
  784. player = players[i];
  785. StripPlayerWeapons( player );
  786.  
  787. set_user_health( player, 100 );
  788. give_item( player, "weapon_knife" );
  789.  
  790. switch( cs_get_user_team( player ) )
  791. {
  792. case CS_TEAM_CT:
  793. {
  794. give_item( player, "weapon_awp" );
  795. cs_set_user_bpammo( player, CSW_AWP, 30 );
  796.  
  797. }
  798.  
  799. case CS_TEAM_T:
  800. {
  801. give_item( player, "weapon_scout" );
  802. cs_set_user_bpammo( player, CSW_SCOUT, 90 );
  803. }
  804. }
  805. }
  806.  
  807. server_cmd( "sv_gravity 300" );
  808. }
  809.  
  810. case DAY_KNIFE:
  811. {
  812. new players[32], num, player;
  813. get_players( players, num, "a" );
  814.  
  815. for( new i = 0; i < num; i++ )
  816. {
  817. player = players[i];
  818.  
  819. if( !is_user_alive( player ) )
  820. continue;
  821.  
  822. switch( cs_get_user_team( player ) )
  823. {
  824. case CS_TEAM_CT:
  825. {
  826. set_user_health( player, 150 );
  827. }
  828.  
  829. case CS_TEAM_T:
  830. {
  831. set_user_health( player, 35 );
  832. }
  833. }
  834.  
  835. StripPlayerWeapons( player );
  836.  
  837. give_item( player, "weapon_knife" );
  838. }
  839. }
  840.  
  841. case DAY_HNS:
  842. {
  843. new players[32], num, player;
  844. get_players( players, num, "ae", "TERRORIST" );
  845.  
  846. for( new i = 0; i < num; i++ )
  847. {
  848. player = players[i];
  849.  
  850. if( !is_user_alive( player ) )
  851. continue;
  852.  
  853. set_user_rendering( player, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 16 );
  854.  
  855. set_user_footsteps( player, 1 );
  856. }
  857.  
  858. g_iTimeLeft = 60;
  859. set_task( 1.0, "Hidenseek_Countdown", TASK_HIDENSEEK, _, _, "a", g_iTimeLeft + 1 );
  860. }
  861.  
  862. case DAY_LAVA: server_cmd( "decalfrequency 10" );
  863. }
  864.  
  865. ColorChat( 0, NORMAL, "%s ^03Celkituzes: ^01%s", g_szPrefix, g_szDaymenuObjectives[g_iCurrentDay] );
  866.  
  867. if( get_pcvar_num( g_pOpenCells ) )
  868. Push_Button();
  869.  
  870. return PLUGIN_HANDLED;
  871. }
  872.  
  873. ////////////////////////////////////
  874. // Hidenseek Day //
  875. ////////////////////////////////////
  876. public Hidenseek_Countdown()
  877. {
  878. g_iTimeLeft--;
  879.  
  880. if( g_iTimeLeft >= 0 )
  881. {
  882. set_hudmessage( 0, 255, 0, -1.0, 0.2, 0, 0.0, 1.0, 0.1, 0.1, 4 );
  883. show_hudmessage( 0, "%i masodperc a lathatatlansagbol!", g_iTimeLeft );
  884. }
  885.  
  886. else
  887. {
  888. set_hudmessage( 0, 255, 0, -1.0, 0.2, 0, 0.0, 5.0, 0.1, 0.1, 4 );
  889. show_hudmessage( 0, "Aki bujt, aki nem jovunk!" );
  890.  
  891. new players[32], num, player;
  892. get_players( players, num, "ae", "TERRORIST" );
  893.  
  894. for( new i = 0; i < num; i++ )
  895. {
  896. player = players[i];
  897.  
  898. if( !is_user_alive( player ) )
  899. continue;
  900.  
  901. set_user_rendering( player );
  902. set_user_footsteps( player, 0 );
  903. }
  904.  
  905. if( task_exists( TASK_HIDENSEEK ) )
  906. remove_task( TASK_HIDENSEEK );
  907.  
  908. ColorChat( 0, NORMAL, "%s A ^03Rabok^01 lathatoak. Talaljatok meg oket!", g_szPrefix );
  909. }
  910. }
  911.  
  912. ////////////////////////////////////
  913. // Dodgeball Day //
  914. ////////////////////////////////////
  915. public startDodgeballDay()
  916. {
  917. set_task( 0.1, "giveNades", TASK_HEGRENADE, _, _, "b" );
  918. }
  919.  
  920. public giveNades()
  921. {
  922. static players[32], num, player;
  923. get_players( players, num, "a" );
  924.  
  925. for( new i = 0; i < num; i++ )
  926. {
  927. player = players[i];
  928.  
  929. if( !is_user_alive( player ) ) continue;
  930.  
  931. if( !user_has_weapon( player, CSW_HEGRENADE ) )
  932. {
  933. give_item( player, "weapon_hegrenade" );
  934. }
  935. }
  936. }
  937.  
  938. ////////////////////////////////////
  939. // Freeday Vote //
  940. ////////////////////////////////////
  941. public Start_FreedayVote()
  942. {
  943. g_iTimeLeft = get_pcvar_num( g_pVoteTime );
  944.  
  945. if( g_iTimeLeft > 30 )
  946. g_iTimeLeft = 30;
  947.  
  948. showFreedayMenu();
  949.  
  950. set_task( 1.0, "FreedayCountdown", .flags="a", .repeat=g_iTimeLeft );
  951. }
  952.  
  953. public FreedayCountdown()
  954. {
  955. g_iTimeLeft--;
  956.  
  957. if( g_iTimeLeft > 0 )
  958. showFreedayMenu();
  959.  
  960. else FreedayVoteEnded();
  961. }
  962.  
  963. public showFreedayMenu()
  964. {
  965. if( !( g_iTimeLeft > 0 ) )
  966. return;
  967.  
  968. static szMenu[ 2048 ], szFormat[ 2048 ];
  969.  
  970. formatex( szMenu, charsmax( szMenu ), "\yValaszd ki a Szabad Nap tipusat: [%i]", g_iTimeLeft );
  971.  
  972. formatex( szFormat, charsmax( szFormat ), "^n\r1. \wKorlatlan Szabadnap [Szavazatok: %i]", g_iFreedayVotes[ UNRESTRICTED ] );
  973. add( szMenu, charsmax( szMenu ), szFormat );
  974.  
  975. formatex( szFormat, charsmax( szFormat ), "^n\r2. \wKorlatozott Szabadnap [Szavazatok: %i]", g_iFreedayVotes[ RESTRICTED ] );
  976. add( szMenu, charsmax( szMenu ), szFormat );
  977.  
  978.  
  979. new iPlayers[ 32 ], iNum;
  980. get_players( iPlayers, iNum, "a" );
  981.  
  982. for( new i = 0; i < iNum; i++ )
  983. {
  984. show_menu( iPlayers[ i ], 0, "^n", 1 );
  985.  
  986. show_menu( iPlayers[ i ], MENU_KEY_1 | MENU_KEY_2, szMenu, -1, "Freeday Menu" );
  987. }
  988.  
  989. }
  990.  
  991. public FreedayMenu_Handler( id, iKey )
  992. {
  993. new CsTeams:team = cs_get_user_team( id );
  994.  
  995. if( ( team == CS_TEAM_T && !g_bTerroristVote ) || ( team == CS_TEAM_CT && g_bTerroristVote ) )
  996. {
  997. ColorChat( id, NORMAL, "%s Te nem szavazhatsz ma!", g_szPrefix );
  998.  
  999. showFreedayMenu();
  1000.  
  1001. return PLUGIN_HANDLED;
  1002. }
  1003.  
  1004. else if( g_bHasVoted[id] )
  1005. {
  1006. ColorChat( id, NORMAL, "%s Te mar szavaztal.", g_szPrefix );
  1007.  
  1008. showFreedayMenu();
  1009.  
  1010. return PLUGIN_HANDLED;
  1011. }
  1012.  
  1013.  
  1014. g_iFreedayVotes[ iKey ]++;
  1015.  
  1016. g_bHasVoted[ id ] = true;
  1017.  
  1018. showFreedayMenu();
  1019.  
  1020. return PLUGIN_HANDLED;
  1021. }
  1022.  
  1023. public FreedayVoteEnded()
  1024. {
  1025. show_menu( 0, 0, "^n", 1 );
  1026.  
  1027. g_iFreedayType = getHighestVote( g_iFreedayVotes, 2 );
  1028.  
  1029. if( g_iFreedayType == -1 )
  1030. g_iFreedayType = UNRESTRICTED;
  1031.  
  1032. startAlternativeDay();
  1033. }
  1034.  
  1035. ////////////////////////////////////
  1036. // Nightcrawler Vote //
  1037. ////////////////////////////////////
  1038. public Start_NightcrawlerVote()
  1039. {
  1040. g_iTimeLeft = get_pcvar_num( g_pVoteTime );
  1041.  
  1042. if( g_iTimeLeft > 30 )
  1043. g_iTimeLeft = 30;
  1044.  
  1045. showNightcrawlerMenu();
  1046.  
  1047. set_task( 1.0, "NightcrawlerCountdown", .flags="a", .repeat=g_iTimeLeft );
  1048. }
  1049.  
  1050. public NightcrawlerCountdown()
  1051. {
  1052. g_iTimeLeft--;
  1053.  
  1054. if( g_iTimeLeft > 0 )
  1055. showNightcrawlerMenu();
  1056.  
  1057. else NightcrawlerVoteEnded();
  1058. }
  1059.  
  1060. public showNightcrawlerMenu()
  1061. {
  1062. if( !( g_iTimeLeft > 0 ) )
  1063. return;
  1064.  
  1065. static szMenu[ 2048 ], szFormat[ 2048 ];
  1066.  
  1067. formatex( szMenu, charsmax( szMenu ), "\yValaszd ki, hogy ki legyen alcazva: [%i]", g_iTimeLeft );
  1068.  
  1069. formatex( szFormat, charsmax( szFormat ), "^n\r1. \wOrok [Szavazatok: %i]", g_iNightcrawlerVotes[ CT ] );
  1070. add( szMenu, charsmax( szMenu ), szFormat );
  1071.  
  1072. formatex( szFormat, charsmax( szFormat ), "^n\r2. \wRabok [Szavazatok: %i]", g_iNightcrawlerVotes[ T ] );
  1073. add( szMenu, charsmax( szMenu ), szFormat );
  1074.  
  1075.  
  1076. new iPlayers[ 32 ], iNum;
  1077. get_players( iPlayers, iNum, "a" );
  1078.  
  1079. for( new i = 0; i < iNum; i++ )
  1080. {
  1081. show_menu( iPlayers[ i ], MENU_KEY_1 | MENU_KEY_2, szMenu, -1, "Nightcrawler Menu" );
  1082. }
  1083. }
  1084.  
  1085. public NightcrawlerMenu_Handler( id, iKey )
  1086. {
  1087. new CsTeams:team = cs_get_user_team( id );
  1088.  
  1089.  
  1090. if( ( team == CS_TEAM_T && !g_bTerroristVote ) || ( team == CS_TEAM_CT && g_bTerroristVote ) )
  1091. {
  1092. ColorChat( id, NORMAL, "%s Te nem szavazhatsz ma!", g_szPrefix );
  1093.  
  1094. showNightcrawlerMenu();
  1095. return PLUGIN_HANDLED;
  1096. }
  1097.  
  1098. else if( g_bHasVoted[id] )
  1099. {
  1100. ColorChat( id, TEAM_COLOR, "%s Te mar szavaztal.", g_szPrefix );
  1101.  
  1102. showNightcrawlerMenu();
  1103.  
  1104. return PLUGIN_HANDLED;
  1105. }
  1106.  
  1107. g_iNightcrawlerVotes[ iKey ]++;
  1108.  
  1109. g_bHasVoted[ id ] = true;
  1110.  
  1111. return PLUGIN_HANDLED;
  1112. }
  1113.  
  1114. public NightcrawlerVoteEnded()
  1115. {
  1116. show_menu( 0, 0, "^n", 1 );
  1117.  
  1118. g_iNightcrawlerType = getHighestVote( g_iNightcrawlerVotes, 2 );
  1119.  
  1120. if( g_iNightcrawlerType == -1 )
  1121. g_iNightcrawlerType = CT;
  1122.  
  1123. startAlternativeDay();
  1124. }
  1125.  
  1126. ////////////////////////////////////
  1127. // Zombie Vote //
  1128. ////////////////////////////////////
  1129. public Start_ZombieVote()
  1130. {
  1131. g_iTimeLeft = get_pcvar_num( g_pVoteTime );
  1132.  
  1133. if( g_iTimeLeft > 30 )
  1134. g_iTimeLeft = 30;
  1135.  
  1136. showZombieMenu();
  1137.  
  1138. set_task( 1.0, "ZombieCountdown", .flags="a", .repeat=g_iTimeLeft );
  1139. }
  1140.  
  1141. public ZombieCountdown()
  1142. {
  1143. g_iTimeLeft--;
  1144.  
  1145. if( g_iTimeLeft > 0 )
  1146. showZombieMenu();
  1147.  
  1148. else ZombieVoteEnded();
  1149. }
  1150.  
  1151. public showZombieMenu()
  1152. {
  1153. if( !( g_iTimeLeft > 0 ) )
  1154. return;
  1155.  
  1156. static szMenu[ 2048 ], szFormat[ 2048 ];
  1157.  
  1158. formatex( szMenu, charsmax( szMenu ), "\yValaszd ki kik legyenek a zombik: [%i]", g_iTimeLeft );
  1159.  
  1160. formatex( szFormat, charsmax( szFormat ), "^n\r1. \wOrok [Szavazatok: %i]", g_iZombieVotes[ CT ] );
  1161. add( szMenu, charsmax( szMenu ), szFormat );
  1162.  
  1163. formatex( szFormat, charsmax( szFormat ), "^n\r2. \wRabok [Szavazatok: %i]", g_iZombieVotes[ T ] );
  1164. add( szMenu, charsmax( szMenu ), szFormat );
  1165.  
  1166.  
  1167. new iPlayers[ 32 ], iNum;
  1168. get_players( iPlayers, iNum, "a" );
  1169.  
  1170. for( new i = 0; i < iNum; i++ )
  1171. {
  1172. show_menu( iPlayers[ i ], MENU_KEY_1 | MENU_KEY_2, szMenu, -1, "Zombie Menu" );
  1173. }
  1174. }
  1175.  
  1176. public ZombieMenu_Handler( id, iKey )
  1177. {
  1178. new CsTeams:team = cs_get_user_team( id );
  1179.  
  1180. if( ( team == CS_TEAM_T && !g_bTerroristVote ) || ( team == CS_TEAM_CT && g_bTerroristVote ) )
  1181. {
  1182. ColorChat( id, NORMAL, "%s Te nem szavazhatsz ma!", g_szPrefix );
  1183.  
  1184. showZombieMenu();
  1185.  
  1186. return PLUGIN_HANDLED;
  1187. }
  1188.  
  1189. if( g_bHasVoted[id] )
  1190. {
  1191. ColorChat( id, TEAM_COLOR, "%s Te mar szavaztal.", g_szPrefix );
  1192.  
  1193. showZombieMenu();
  1194.  
  1195. return PLUGIN_HANDLED;
  1196. }
  1197.  
  1198. g_iZombieVotes[ iKey ]++;
  1199.  
  1200. g_bHasVoted[ id ] = true;
  1201.  
  1202. return PLUGIN_HANDLED;
  1203. }
  1204.  
  1205. public ZombieVoteEnded()
  1206. {
  1207. show_menu( 0, 0, "^n", 1 );
  1208.  
  1209. g_iZombieType = getHighestVote( g_iZombieVotes, 2 );
  1210.  
  1211. if( g_iZombieType == -1 )
  1212. g_iZombieType = T;
  1213.  
  1214. startAlternativeDay();
  1215. }
  1216.  
  1217. ////////////////////////////////////
  1218. // Shark Vote //
  1219. ////////////////////////////////////
  1220. public Start_SharkVote()
  1221. {
  1222. g_iTimeLeft = get_pcvar_num( g_pVoteTime );
  1223.  
  1224. if( g_iTimeLeft > 30 )
  1225. g_iTimeLeft = 30;
  1226.  
  1227. showSharkMenu();
  1228.  
  1229. set_task( 1.0, "SharkCountdown", .flags="a", .repeat=g_iTimeLeft );
  1230. }
  1231.  
  1232. public SharkCountdown()
  1233. {
  1234. g_iTimeLeft--;
  1235.  
  1236. if( g_iTimeLeft > 0 )
  1237. showSharkMenu();
  1238.  
  1239. else sharkVoteEnded();
  1240. }
  1241.  
  1242. public showSharkMenu()
  1243. {
  1244. if( !( g_iTimeLeft > 0 ) )
  1245. return;
  1246.  
  1247. static szMenu[ 2048 ], szFormat[ 2048 ];
  1248.  
  1249. formatex( szMenu, charsmax( szMenu ), "\yValaszd ki a capakat: [%i]", g_iTimeLeft );
  1250.  
  1251. formatex( szFormat, charsmax( szFormat ), "^n\r1. \wOrok [Szavazatok: %i]", g_iSharkVotes[ CT ] );
  1252. add( szMenu, charsmax( szMenu ), szFormat );
  1253.  
  1254. formatex( szFormat, charsmax( szFormat ), "^n\r2. \wRabok [Szavazatok: %i]", g_iSharkVotes[ T ] );
  1255. add( szMenu, charsmax( szMenu ), szFormat );
  1256.  
  1257.  
  1258. new iPlayers[ 32 ], iNum;
  1259. get_players( iPlayers, iNum, "a" );
  1260.  
  1261. for( new i = 0; i < iNum; i++ )
  1262. {
  1263. show_menu( iPlayers[ i ], MENU_KEY_1 | MENU_KEY_2, szMenu, -1, "Shark Menu" );
  1264. }
  1265.  
  1266. }
  1267.  
  1268. public SharkMenu_Handler( id, iKey )
  1269. {
  1270. new CsTeams:team = cs_get_user_team( id );
  1271.  
  1272. if( ( team == CS_TEAM_T && !g_bTerroristVote ) || ( team == CS_TEAM_CT && g_bTerroristVote ) )
  1273. {
  1274. ColorChat( id, NORMAL, "%s Te nem szavazhatsz ma!", g_szPrefix );
  1275.  
  1276. return PLUGIN_HANDLED;
  1277. }
  1278.  
  1279. else if( g_bHasVoted[id] )
  1280. {
  1281. ColorChat( id, TEAM_COLOR, "%s Te mar szavaztal.", g_szPrefix );
  1282. return PLUGIN_HANDLED;
  1283. }
  1284.  
  1285. g_iSharkVotes[ iKey ]++;
  1286.  
  1287. g_bHasVoted[ id ] = true;
  1288.  
  1289. return PLUGIN_HANDLED;
  1290. }
  1291.  
  1292. public sharkVoteEnded()
  1293. {
  1294.  
  1295. show_menu( 0, 0, "^n", 1 );
  1296.  
  1297. g_iSharkType = getHighestVote( g_iSharkVotes, 2 );
  1298.  
  1299. if( g_iSharkType == -1 )
  1300. {
  1301. g_iSharkType = CT;
  1302. }
  1303.  
  1304. startAlternativeDay();
  1305. }
  1306.  
  1307. ////////////////////////////////////
  1308. // Start OTHER Day //
  1309. ////////////////////////////////////
  1310. public startAlternativeDay()
  1311. {
  1312. switch( g_iCurrentDay )
  1313. {
  1314. case DAY_FREE:
  1315. {
  1316. switch( g_iFreedayType )
  1317. {
  1318. case UNRESTRICTED:
  1319. {
  1320. ColorChat( 0, NORMAL, "%s A/Az ^03%s ^01megszavaztak a ^03Korlatlan Szabadnap^01-ot.", g_szPrefix, g_bTerroristVote ? "Rabok" : "Orok" );
  1321. }
  1322.  
  1323. case RESTRICTED:
  1324. {
  1325. ColorChat( 0, NORMAL, "%s A/Az ^03%s ^01megszavaztak a ^03Korlatozott Szabadnap^01-ot.", g_szPrefix, g_bTerroristVote ? "Rabok" : "Orok" );
  1326. }
  1327. }
  1328.  
  1329. ShowWeaponMenu();
  1330. }
  1331.  
  1332. case DAY_NIGHTCRAWLER:
  1333. {
  1334. ColorChat( 0, NORMAL, "%s A/Az ^03%s ^01megszavaztak az ^03Arnyek Nap^01-ot.", g_szPrefix, g_bTerroristVote ? "Rabok" : "Orok" );
  1335.  
  1336. switch( g_iNightcrawlerType )
  1337. {
  1338. case CT:
  1339. {
  1340. ColorChat( 0, NORMAL, "%s Az ^03Orok ^01az ^03Arnyekok^01!", g_szPrefix )
  1341.  
  1342. new players[32], num, player;
  1343. get_players( players, num, "a" );
  1344.  
  1345. for( new i = 0; i < num; i++ )
  1346. {
  1347. player = players[i];
  1348.  
  1349. set_user_health( player, 100 );
  1350.  
  1351. StripPlayerWeapons( player );
  1352. give_item( player, "weapon_knife" );
  1353.  
  1354. switch( cs_get_user_team( player ) )
  1355. {
  1356. case CS_TEAM_T:
  1357. {
  1358. give_item( player, "weapon_m4a1" );
  1359. give_item( player, "weapon_deagle" );
  1360.  
  1361. cs_set_user_bpammo( player, CSW_M4A1, 90 );
  1362. cs_set_user_bpammo( player, CSW_DEAGLE, 35 );
  1363. }
  1364.  
  1365. case CS_TEAM_CT:
  1366. {
  1367. set_user_rendering( player, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0 );
  1368.  
  1369. set_user_footsteps( player, 1 );
  1370.  
  1371.  
  1372. }
  1373. }
  1374. }
  1375. }
  1376.  
  1377. case T:
  1378. {
  1379. ColorChat( 0, NORMAL, "%s A ^03Rabok ^01az ^03Arnyekok^01!", g_szPrefix );
  1380.  
  1381. new players[32], num, player;
  1382. get_players( players, num, "a" );
  1383.  
  1384. for( new i = 0; i < num; i++ )
  1385. {
  1386. player = players[i];
  1387.  
  1388. set_user_health( player, 100 );
  1389.  
  1390. StripPlayerWeapons( player );
  1391. give_item( player, "weapon_knife" );
  1392.  
  1393. switch( cs_get_user_team( player ) )
  1394. {
  1395. case CS_TEAM_CT:
  1396. {
  1397. give_item( player, "weapon_m4a1" );
  1398. give_item( player, "weapon_deagle" );
  1399.  
  1400. cs_set_user_bpammo( player, CSW_M4A1, 90 );
  1401. cs_set_user_bpammo( player, CSW_DEAGLE, 35 );
  1402. }
  1403.  
  1404. case CS_TEAM_T:
  1405. {
  1406. set_user_rendering( player, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0 );
  1407.  
  1408. set_user_footsteps( player, 1 );
  1409.  
  1410.  
  1411. }
  1412. }
  1413. }
  1414. }
  1415. }
  1416. }
  1417.  
  1418. case DAY_SHARK:
  1419. {
  1420. ColorChat( 0, NORMAL, "%s A/Az ^03%s ^01megszavaztak a ^03Capa Nap^01-ot.", g_szPrefix, g_bTerroristVote ? "Rabok" : "Orok" );
  1421.  
  1422. switch( g_iSharkType )
  1423. {
  1424. case CT:
  1425. {
  1426. ColorChat( 0, NORMAL, "%s Az ^03Orok ^01a ^03Capak^01!", g_szPrefix );
  1427.  
  1428. new players[32], num, player;
  1429. get_players( players, num, "a" );
  1430.  
  1431. for( new i = 0; i < num; i++ )
  1432. {
  1433. player = players[i];
  1434. set_user_health( player, 100 );
  1435. StripPlayerWeapons( player );
  1436. give_item( player, "weapon_knife" );
  1437.  
  1438. switch( cs_get_user_team( player ) )
  1439. {
  1440. case CS_TEAM_T:
  1441. {
  1442. give_item( player, "weapon_awp" );
  1443. cs_set_user_bpammo( player, CSW_AWP, 30 );
  1444. }
  1445.  
  1446. case CS_TEAM_CT:
  1447. {
  1448. set_user_noclip( player, 1 );
  1449. }
  1450. }
  1451. }
  1452. }
  1453.  
  1454. case T:
  1455. {
  1456. ColorChat( 0, NORMAL, "%s A ^03Rabok ^01a ^03Capak^01!", g_szPrefix );
  1457.  
  1458. new players[32], num, player;
  1459. get_players( players, num, "a" );
  1460.  
  1461. for( new i = 0; i < num; i++ )
  1462. {
  1463. player = players[i];
  1464. set_user_health( player, 100 );
  1465. StripPlayerWeapons( player );
  1466. give_item( player, "weapon_knife" );
  1467.  
  1468. switch( cs_get_user_team( player ) )
  1469. {
  1470. case CS_TEAM_CT:
  1471. {
  1472. give_item( player, "weapon_awp" );
  1473. cs_set_user_bpammo( player, CSW_AWP, 30 );
  1474. }
  1475.  
  1476. case CS_TEAM_T:
  1477. {
  1478. set_user_noclip( player, 1 );
  1479. }
  1480. }
  1481. }
  1482. }
  1483. }
  1484. }
  1485.  
  1486. case DAY_ZOMBIE:
  1487. {
  1488. ColorChat( 0, NORMAL, "%s A/Az ^03%s ^01megszavaztak a ^03Zombi Nap^01-ot.", g_szPrefix, g_bTerroristVote ? "Rabok" : "Orok" );
  1489.  
  1490. engfunc( EngFunc_LightStyle, 0, "b" );
  1491.  
  1492. switch( g_iZombieType )
  1493. {
  1494. case CT:
  1495. {
  1496. ColorChat( 0, NORMAL, "%s Az ^03Orok ^01a ^03Zombik^01!", g_szPrefix );
  1497.  
  1498. new players[32], num, player;
  1499. get_players( players, num, "a" );
  1500.  
  1501. for( new i = 0; i < num; i++ )
  1502. {
  1503. player = players[i];
  1504. set_user_health( player, 100 );
  1505. StripPlayerWeapons( player );
  1506. give_item( player, "weapon_knife" );
  1507.  
  1508. switch( cs_get_user_team( player ) )
  1509. {
  1510. case CS_TEAM_CT:
  1511. {
  1512. set_user_health( player, 4000 );
  1513.  
  1514. cs_set_user_model( player, "zombie" );
  1515. set_user_gnvision( player, 1 );
  1516.  
  1517. set_pev( player, pev_viewmodel2, g_szZombieHands );
  1518. }
  1519.  
  1520. case CS_TEAM_T:
  1521. {
  1522. if( random_num( 0, 1 ) == 1 )
  1523. {
  1524. give_item( player, "weapon_ak47" );
  1525. cs_set_user_bpammo( player, CSW_AK47, 90 );
  1526. }
  1527.  
  1528. else
  1529. {
  1530. give_item( player, "weapon_m4a1" );
  1531. cs_set_user_bpammo( player, CSW_M4A1, 90 );
  1532. }
  1533.  
  1534. give_item( player, "weapon_deagle" );
  1535. cs_set_user_bpammo( player, CSW_DEAGLE, 35 );
  1536. }
  1537. }
  1538. }
  1539. }
  1540.  
  1541. case T:
  1542. {
  1543. ColorChat( 0, NORMAL, "%s A ^03Rabok ^01a ^03Zombik^01!", g_szPrefix );
  1544. new players[32], num, player;
  1545. get_players( players, num, "a" );
  1546.  
  1547. for( new i = 0; i < num; i++ )
  1548. {
  1549. player = players[i];
  1550. set_user_health( player, 100 );
  1551. StripPlayerWeapons( player );
  1552. give_item( player, "weapon_knife" );
  1553.  
  1554. switch( cs_get_user_team( player ) )
  1555. {
  1556. case CS_TEAM_T:
  1557. {
  1558. set_user_health( player, 2000 );
  1559.  
  1560. cs_set_user_model( player, "zombie" );
  1561. set_user_gnvision( player, 1 );
  1562.  
  1563. set_pev( player, pev_viewmodel2, g_szZombieHands );
  1564. }
  1565.  
  1566. case CS_TEAM_CT:
  1567. {
  1568. if( random_num( 0, 1 ) == 1 )
  1569. {
  1570. give_item( player, "weapon_ak47" );
  1571. cs_set_user_bpammo( player, CSW_AK47, 90 );
  1572. }
  1573.  
  1574. else
  1575. {
  1576. give_item( player, "weapon_m4a1" );
  1577. cs_set_user_bpammo( player, CSW_M4A1, 90 );
  1578. }
  1579.  
  1580. give_item( player, "weapon_deagle" );
  1581. cs_set_user_bpammo( player, CSW_DEAGLE, 35 );
  1582. }
  1583. }
  1584. }
  1585. }
  1586. }
  1587. }
  1588. }
  1589.  
  1590. ColorChat( 0, NORMAL, "%s ^03Celkituzes: ^01%s", g_szPrefix, g_szDaymenuObjectives[g_iCurrentDay] );
  1591.  
  1592. if( get_pcvar_num( g_pOpenCells ) )
  1593. Push_Button();
  1594. }
  1595.  
  1596. public ShowWeaponMenu()
  1597. {
  1598. new menu = menu_create( "Valassz fegyvert:", "Weapon_MenuHandler" );
  1599. menu_additem( menu, "M4a1", "0" );
  1600. menu_additem( menu, "AK-47", "1" );
  1601. menu_additem( menu, "AUG", "2" );
  1602. menu_additem( menu, "Scout", "3" )
  1603. menu_additem( menu, "AWP", "4" );
  1604. menu_additem( menu, "MP5", "5" );
  1605.  
  1606. new players[32], num;
  1607. get_players( players, num, "ae", "CT" );
  1608.  
  1609. for( new i = 0; i < num ;i++ )
  1610. {
  1611. menu_display( players[i], menu, 0 );
  1612. }
  1613. }
  1614.  
  1615. public Weapon_MenuHandler( id, menu, item )
  1616. {
  1617. if( !is_user_alive( id ) )
  1618. return PLUGIN_HANDLED;
  1619.  
  1620. if( item == MENU_EXIT )
  1621. {
  1622. give_item( id, "weapon_m4a1" );
  1623. give_item( id, "weapon_deagle" )
  1624.  
  1625. cs_set_user_bpammo( id, CSW_M4A1, 300 );
  1626. cs_set_user_bpammo( id, CSW_DEAGLE, 100 );
  1627.  
  1628. return PLUGIN_HANDLED;
  1629. }
  1630.  
  1631. if( !is_user_alive( id ) )
  1632. return PLUGIN_HANDLED;
  1633.  
  1634. new data[6], szName[64];
  1635. new access, callback;
  1636.  
  1637. menu_item_getinfo( menu, item, access, data, 5, szName, 63, callback );
  1638.  
  1639. new key = str_to_num( data );
  1640.  
  1641. StripPlayerWeapons( id );
  1642.  
  1643. give_item( id, "weapon_knife" );
  1644.  
  1645. switch( key )
  1646. {
  1647. case MAVERICK:
  1648. {
  1649. give_item( id, "weapon_m4a1" );
  1650. cs_set_user_bpammo( id, CSW_M4A1, 300 );
  1651. }
  1652.  
  1653. case AK:
  1654. {
  1655. give_item( id, "weapon_ak47" );
  1656. cs_set_user_bpammo( id, CSW_AK47, 300 );
  1657. }
  1658.  
  1659. case AUG:
  1660. {
  1661. give_item( id, "weapon_aug" );
  1662. cs_set_user_bpammo( id, CSW_AUG, 300 );
  1663. }
  1664.  
  1665. case AWP:
  1666. {
  1667. give_item( id, "weapon_awp" );
  1668. cs_set_user_bpammo( id, CSW_AWP, 100 );
  1669. }
  1670.  
  1671. case MP5:
  1672. {
  1673. give_item( id, "weapon_mp5navy" );
  1674. cs_set_user_bpammo( id, CSW_MP5NAVY, 300 );
  1675. }
  1676.  
  1677. case SCOUT:
  1678. {
  1679. give_item( id, "weapon_scout" );
  1680. cs_set_user_bpammo( id, CSW_SCOUT, 90 );
  1681. }
  1682. }
  1683.  
  1684. give_item( id, "weapon_deagle" );
  1685. cs_set_user_bpammo( id, CSW_DEAGLE, 100 );
  1686.  
  1687. give_item( id, "weapon_hegrenade" );
  1688.  
  1689. return PLUGIN_HANDLED;
  1690. }
  1691.  
  1692. public Ham_USP_SecondaryAttack_Post( ent )
  1693. {
  1694. if( g_iCurrentDay != DAY_USP_NINJA )
  1695. return HAM_IGNORED;
  1696.  
  1697. if( !pev_valid( ent ) )
  1698. return HAM_IGNORED;
  1699.  
  1700. if( cs_get_weapon_silen( ent ) )
  1701. return HAM_IGNORED;
  1702.  
  1703. else cs_set_weapon_silen( ent, 1 );
  1704.  
  1705. return HAM_IGNORED;
  1706. }
  1707.  
  1708. public Forward_AddToFullPack_Post( es_handle, e, ent, host, hostflags, id, pSet )
  1709. {
  1710. if( id && g_iCurrentDay == DAY_NIGHTCRAWLER )
  1711. {
  1712. if( get_user_team( host ) == get_user_team( ent ) )
  1713. {
  1714. set_es( es_handle, ES_RenderMode, kRenderTransTexture );
  1715. set_es( es_handle, ES_RenderAmt, 255 );
  1716.  
  1717. }
  1718. }
  1719. }
  1720.  
  1721. public Ham_Touch_Weapon_Pre( iEntity, id )
  1722. {
  1723. if( !is_user_alive( id ) )
  1724. return HAM_IGNORED;
  1725.  
  1726.  
  1727. new CsTeams:team = cs_get_user_team( id );
  1728.  
  1729. switch( g_iCurrentDay )
  1730. {
  1731. case DAY_ZOMBIE:
  1732. {
  1733. if( ( team == CS_TEAM_CT && g_iZombieType == CT )
  1734. || ( team == CS_TEAM_T && g_iZombieType == T ) )
  1735. return HAM_SUPERCEDE;
  1736. }
  1737.  
  1738. case DAY_NIGHTCRAWLER:
  1739. {
  1740. if( ( team == CS_TEAM_CT && g_iNightcrawlerType == CT )
  1741. || ( team == CS_TEAM_T && g_iNightcrawlerType == T ) )
  1742. return HAM_SUPERCEDE;
  1743. }
  1744.  
  1745. case DAY_SHARK:
  1746. {
  1747. if( ( team == CS_TEAM_CT && g_iSharkType == CT )
  1748. || ( team == CS_TEAM_T && g_iSharkType == T ) )
  1749. return FMRES_SUPERCEDE;
  1750. }
  1751.  
  1752. case DAY_SPACE, DAY_KNIFE, DAY_USP_NINJA, DAY_DODGEBALL:
  1753. {
  1754. return HAM_SUPERCEDE;
  1755. }
  1756.  
  1757. case DAY_HNS:
  1758. {
  1759. if( team == CS_TEAM_T )
  1760. return HAM_SUPERCEDE;
  1761. }
  1762. }
  1763.  
  1764. return HAM_IGNORED;
  1765. }
  1766.  
  1767. public Ham_Touch_Wall_Pre( iEntity, id )
  1768. {
  1769. if( !is_user_alive( id ) || g_iCurrentDay != DAY_NIGHTCRAWLER )
  1770. return FMRES_IGNORED;
  1771.  
  1772. pev( id, pev_origin, g_fWallOrigin[id] );
  1773.  
  1774. return FMRES_IGNORED;
  1775. }
  1776.  
  1777.  
  1778. public Forward_PreThink( id )
  1779. {
  1780. if( g_iCurrentDay != DAY_NIGHTCRAWLER )
  1781. return FMRES_IGNORED;
  1782.  
  1783. new CsTeams:team = cs_get_user_team( id );
  1784.  
  1785. if( team == CS_TEAM_CT && g_iNightcrawlerType == T )
  1786. return FMRES_IGNORED;
  1787.  
  1788. else if( team == CS_TEAM_T && g_iNightcrawlerType == CT )
  1789. return FMRES_IGNORED;
  1790.  
  1791. new button = fm_get_user_button( id );
  1792.  
  1793. if( button & IN_USE )
  1794. {
  1795. static Float:origin[3];
  1796. pev( id, pev_origin, origin );
  1797.  
  1798. if( get_distance_f( origin, g_fWallOrigin[id] ) > 10.0 )
  1799. return FMRES_IGNORED;
  1800.  
  1801. if( fm_get_entity_flags( id ) & FL_ONGROUND )
  1802. return FMRES_IGNORED;
  1803.  
  1804. if( button & IN_FORWARD )
  1805. {
  1806. static Float:velocity[3];
  1807. velocity_by_aim( id, 240, velocity );
  1808.  
  1809. fm_set_user_velocity( id, velocity );
  1810. }
  1811.  
  1812. else if( button & IN_BACK )
  1813. {
  1814. static Float:velocity[3];
  1815. velocity_by_aim( id, -240, velocity );
  1816.  
  1817. fm_set_user_velocity( id, velocity );
  1818. }
  1819. }
  1820.  
  1821. return FMRES_IGNORED;
  1822. }
  1823.  
  1824. ////////////////////////////////////
  1825. // Returns the highest index //
  1826. ////////////////////////////////////
  1827. public getHighestVote( const votes[], len )
  1828. {
  1829. new maximum = 0;
  1830.  
  1831. for( new i = 0; i < len; i++ )
  1832. {
  1833. if( votes[i] > votes[maximum] )
  1834. maximum = i;
  1835. }
  1836.  
  1837. if( maximum == 0 && votes[0] == 0 )
  1838. {
  1839. return -1;
  1840. }
  1841.  
  1842. return maximum;
  1843. }
  1844.  
  1845. public RemoveAllTasks()
  1846. {
  1847. if( task_exists( TASK_HEGRENADE ) )
  1848. {
  1849. remove_task( TASK_HEGRENADE );
  1850. }
  1851.  
  1852. if( task_exists( TASK_DODGEBALL ) )
  1853. {
  1854. remove_task( TASK_DODGEBALL );
  1855. }
  1856.  
  1857. if( task_exists( TASK_MAINDAYMENU ) )
  1858. {
  1859. remove_task( TASK_MAINDAYMENU );
  1860.  
  1861. show_menu( 0, 0, "^n", 1 );
  1862. }
  1863.  
  1864. if( task_exists( TASK_FREEMENU ) )
  1865. {
  1866. remove_task( TASK_FREEMENU );
  1867.  
  1868. show_menu( 0, 0, "^n", 1 );
  1869. }
  1870.  
  1871. if( task_exists( TASK_SHARKMENU ) )
  1872. {
  1873. remove_task( TASK_SHARKMENU );
  1874.  
  1875. show_menu( 0, 0, "^n", 1 );
  1876. }
  1877.  
  1878. if( task_exists( TASK_NCMENU ) )
  1879. {
  1880. remove_task( TASK_NCMENU );
  1881.  
  1882. show_menu( 0, 0, "^n", 1 );
  1883. }
  1884.  
  1885. if( task_exists( TASK_ZOMBIEMENU ) )
  1886. {
  1887. remove_task( TASK_ZOMBIEMENU );
  1888.  
  1889. show_menu( 0, 0, "^n", 1 );
  1890. }
  1891.  
  1892.  
  1893. if( task_exists( TASK_HIDENSEEK ) )
  1894. remove_task( TASK_HIDENSEEK );
  1895.  
  1896. }
  1897.  
  1898. public Reset()
  1899. {
  1900. if( get_cvar_num( "sv_gravity" ) != 800 )
  1901. server_cmd( "sv_gravity 800" );
  1902.  
  1903. if( get_cvar_num( "mp_friendlyfire" ) )
  1904. server_cmd( "mp_friendlyfire 0" );
  1905.  
  1906. if( get_cvar_num( "decalfrequency" ) == 15 )
  1907. server_cmd( "decalfrequency 60" );
  1908.  
  1909. /* Reset ALL variables */
  1910. g_iCurrentDay = -1;
  1911. g_iFreedayType = -1;
  1912. g_iSharkType = -1;
  1913. g_iNightcrawlerType = -1;
  1914. g_iZombieType = -1;
  1915.  
  1916. for( new i = 0; i < MAX_DAYS; i++ )
  1917. {
  1918. g_iMainDayVotes[i] = 0;
  1919. }
  1920.  
  1921. for( new i = 0; i < 2; i++ )
  1922. {
  1923. g_iFreedayVotes[i] = 0;
  1924. g_iSharkVotes[i] = 0;
  1925. g_iNightcrawlerVotes[i] = 0;
  1926. g_iZombieVotes[i] = 0;
  1927. }
  1928.  
  1929. for( new i = 0; i < sizeof( g_bHasVoted ); i++ )
  1930. {
  1931. g_bHasVoted[i] = false;
  1932. g_iCurrentPage[i] = 0;
  1933. }
  1934. }
  1935.  
  1936. public setup_buttons()
  1937. {
  1938. new ent = 1
  1939. new ent3
  1940. new Float:origin[3]
  1941. new Float:radius = 200.0
  1942. new class[32]
  1943. new name[32]
  1944. new pos
  1945. while((pos <= sizeof(g_iButtons)) && (ent = engfunc(EngFunc_FindEntityByString, ent, "classname", "info_player_deathmatch"))) // info_player_deathmatch = tspawn
  1946. {
  1947. new ent2 = 1
  1948. pev(ent, pev_origin, origin)
  1949. while((ent2 = engfunc(EngFunc_FindEntityInSphere, ent2, origin, radius))) // find doors near T spawn
  1950. {
  1951. if(!pev_valid(ent2))
  1952. continue
  1953.  
  1954. pev(ent2, pev_classname, class, charsmax(class))
  1955. if(!equal(class, "func_door")) // if it's not a door, move on to the next iteration
  1956. continue
  1957.  
  1958. pev(ent2, pev_targetname, name, charsmax(name))
  1959. ent3 = engfunc(EngFunc_FindEntityByString, 0, "target", name) // find button that opens this door
  1960. if(pev_valid(ent3) && (in_array(ent3, g_iButtons, sizeof(g_iButtons)) < 0))
  1961. {
  1962. ExecuteHamB(Ham_Use, ent3, 0, 0, 1, 1.0) // zomg poosh it
  1963. g_iButtons[pos] = ent3
  1964. pos++ // next
  1965. break // break from current while loop
  1966. }
  1967. }
  1968. }
  1969. return pos
  1970. }
  1971.  
  1972. public Push_Button()
  1973. {
  1974. static i
  1975. for(i = 0; i < sizeof(g_iButtons); i++)
  1976. {
  1977. if(g_iButtons[i])
  1978. {
  1979. ExecuteHamB(Ham_Use, g_iButtons[i], 0, 0, 1, 1.0)
  1980. entity_set_float(g_iButtons[i], EV_FL_frame, 0.0)
  1981. }
  1982. }
  1983. }
  1984.  
  1985. // By ConnorMcLeod - Prevent Weapon Pickup Glitch
  1986.  
  1987. #define OFFSET_PRIMARYWEAPON 116
  1988.  
  1989. public StripPlayerWeapons(id)
  1990. {
  1991. strip_user_weapons(id)
  1992. set_pdata_int(id, OFFSET_PRIMARYWEAPON, 0)
  1993. }
  1994.  
  1995. stock in_array(needle, data[], size)
  1996. {
  1997. for(new i = 0; i < size; i++)
  1998. {
  1999. if(data[i] == needle)
  2000. return i
  2001. }
  2002. return -1
  2003. }
  2004.  
  2005. set_user_gnvision(id, toggle)
  2006. {
  2007. // Toggle NVG message
  2008. message_begin(MSG_ONE, g_msgNVGToggle, _, id)
  2009. write_byte(toggle) // toggle
  2010. message_end
  2011. }
  2012.  

_________________
Nem szégyen megköszönni :)

'The dictator is coming' :D


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Miért restartolja a modeleket
HozzászólásElküldve: 2013.12.23. 21:30 
Offline
Senior Tag
Avatar

Csatlakozott: 2013.12.18. 13:57
Hozzászólások: 240
Megköszönt másnak: 16 alkalommal
Megköszönték neki: 24 alkalommal
Nekem már az elején ez a #include < amxmodx > rész nem tetszik. a < [VALAMI] > között nincs space tehát így kéne legyen <[VALAMI]>
De lehet más.

_________________
Discord: KillStr3aK#4724 | GitHub
https://eternar.dev

Ők köszönték meg Nexd nek ezt a hozzászólást: Charlie224 (2013.12.23. 21:51)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Miért restartolja a modeleket
HozzászólásElküldve: 2013.12.24. 14:27 
Offline
Veterán
Avatar

Csatlakozott: 2013.03.26. 20:20
Hozzászólások: 1846
Megköszönt másnak: 27 alkalommal
Megköszönték neki: 120 alkalommal
AZ teljesen rendben van

_________________
Projektem:

[CSO2] Ghost Mod
CSO2 GamePlay video: https://www.youtube.com/watch?feature=p ... iOS4Ik1Yrk


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


Ki van itt

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