hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.04.25. 09:25



Jelenlévő felhasználók

Jelenleg 299 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 299 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  [ 3 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Deathrun Mod & Usp sebzésnövelés :)
HozzászólásElküldve: 2015.01.24. 10:48 
Offline
Lelkes

Csatlakozott: 2015.01.23. 18:25
Hozzászólások: 28
Megköszönt másnak: 4 alkalommal
Üdv!

Abban kérném a fennlévők segítségét,hogy tudnának-e adni egy rendes Deathrunmodot.
És még abba kellene segíteni, hogy az usp rendszeren belül hogyan tudom a fegyver sebzését növelni pl: Usp 1 1.4x DmG.

Előre is köszönöm!:-)

_________________
[steam]http://steamcommunity.com/id/animal-love-bitches[/steam]


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2015.01.24. 11:08 
Offline
Senior Tag
Avatar

Csatlakozott: 2013.03.10. 11:42
Hozzászólások: 240
Megköszönt másnak: 52 alkalommal
Megköszönték neki: 9 alkalommal
Dr. mod:

SMA Forráskód: [ Mindet kijelol ]
  1. /***
  2.  * Link to the plugin
  3.  *
  4.  */
  5.  
  6. #include < amxmodx >
  7. #include < engine >
  8. #include < cstrike >
  9. #include < fun >
  10. #include < fakemeta >
  11. #include < hamsandwich >
  12.  
  13. #pragma semicolon 1
  14.  
  15. // Comment this line if you do not want to have fake player !
  16. #define FAKE_PLAYER
  17.  
  18. // Bot name
  19. #if defined FAKE_PLAYER
  20. new const g_szBotName[ ] = "Bot";
  21. #endif
  22.  
  23. // Messages prefix
  24. new const g_szPrefix[ ] = "[DEAHTRUN]:";
  25.  
  26. // Global Variables
  27. new bool:g_bHauntedHouse, bool:g_bGamerFun, bool:g_bRandromized, bool:g_bStarting, bool:g_bFirstRound;
  28. new bool:g_bEnabled, bool:g_bRestart, bool:g_bConnected[ 33 ];
  29.  
  30. new g_pRemoveBuyZone, g_pHideHuds, g_pBlockMoney, g_pLifeSystem, g_pSvRestart, g_pAutoBalance, g_pLimitTeams;
  31. new g_pNoFallDmg, g_pGameName, g_pToggle, g_pBlockSpray, g_pBlockRadio, g_pSemiclip, g_pGiveUsp, g_pBlockKill;
  32.  
  33. new g_iMsgHideWeapon, g_iMsgCrosshair, g_iMsgMoney, g_iMsgTeamInfo, g_iMsgSayText;
  34. new g_iMaxplayers, g_iHudSync, g_iHudSync2, g_iLastTerr, g_iThinker;
  35. new g_iSemiClip[ 33 ], g_Lifes[ 33 ];
  36.  
  37. #if defined FAKE_PLAYER
  38. new g_iFakeplayer;
  39. #endif
  40.  
  41. // Macros
  42. #if cellbits == 32
  43. #define OFFSET_BZ 235
  44. #else
  45. #define OFFSET_BZ 268
  46. #endif
  47.  
  48. // Colorchat
  49. enum Color {
  50. NORMAL = 1,
  51. GREEN,
  52. RED,
  53. BLUE
  54. };
  55.  
  56. new TeamName[ ][ ] = {
  57. "",
  58. "TERRORIST",
  59. "CT",
  60. "SPECTATOR"
  61. };
  62.  
  63. // =======================================================================================
  64.  
  65. public plugin_init( ) {
  66. new const VERSION[ ] = "3.0.3";
  67.  
  68. register_plugin( "Deathrun Manager", VERSION, "xPaw" );
  69.  
  70. g_pToggle = register_cvar( "deathrun_toggle", "1" );
  71. g_pBlockSpray = register_cvar( "deathrun_spray", "1" );
  72. g_pBlockRadio = register_cvar( "deathrun_radio", "1" );
  73. g_pBlockKill = register_cvar( "deathrun_blockkill", "1" );
  74. g_pBlockMoney = register_cvar( "deathrun_blockmoney", "1" );
  75. g_pSemiclip = register_cvar( "deathrun_semiclip", "1" );
  76. g_pGiveUsp = register_cvar( "deathrun_giveusp", "1" );
  77. g_pHideHuds = register_cvar( "deathrun_hidehud", "1" );
  78. g_pLifeSystem = register_cvar( "deathrun_lifesystem", "1" );
  79. g_pGameName = register_cvar( "deathrun_gamename", "1" );
  80. g_pNoFallDmg = register_cvar( "deathrun_terrnfd", "1" );
  81. g_pRemoveBuyZone = register_cvar( "deathrun_removebz", "1" );
  82.  
  83. // Lets get map name...
  84. new szMapName[ 64 ];
  85. get_mapname( szMapName, 63 );
  86.  
  87. if( contain( szMapName, "deathrun_" ) != -1 ) {
  88. set_pcvar_num( g_pToggle, 1 );
  89.  
  90. if( contain( szMapName, "hauntedhouse" ) != -1 )
  91. g_bHauntedHouse = true;
  92. else {
  93. g_bHauntedHouse = false;
  94.  
  95. if( equal( szMapName, "deathrun_gamerfun" ) )
  96. g_bGamerFun = true;
  97. else
  98. g_bGamerFun = false;
  99. }
  100. } else
  101. set_pcvar_num( g_pToggle, 0 );
  102.  
  103. g_pSvRestart = get_cvar_pointer( "sv_restart" );
  104. g_pAutoBalance = get_cvar_pointer( "mp_autoteambalance" );
  105. g_pLimitTeams = get_cvar_pointer( "mp_limitteams" );
  106.  
  107. register_cvar( "deathrun_version", VERSION, FCVAR_SERVER | FCVAR_SPONLY );
  108. set_cvar_string( "deathrun_version", VERSION );
  109.  
  110. // Registering Language file
  111. register_dictionary( "deathrun.txt" );
  112.  
  113. // Logging Events
  114. register_logevent( "EventRoundStart", 2, "1=Round_Start" );
  115. register_logevent( "EventRandromize", 2, "1=Round_End" );
  116. register_event( "SendAudio", "EventTerrsWin", "a", "2&%!MRAD_terwin" );
  117. register_event( "TextMsg", "EventRandromize", "a", "2&#Game_w" );
  118. register_event( "DeathMsg", "EventDeath", "a");
  119. register_event( "Money", "EventMoney", "b" );
  120. register_event( "ResetHUD", "EventResetHud", "be" );
  121.  
  122. g_bFirstRound = true;
  123. g_iMaxplayers = get_maxplayers( );
  124. g_iMsgHideWeapon = get_user_msgid( "HideWeapon" );
  125. g_iMsgCrosshair = get_user_msgid( "Crosshair" );
  126. g_iMsgMoney = get_user_msgid( "Money" );
  127. g_iMsgSayText = get_user_msgid( "SayText" );
  128. g_iMsgTeamInfo = get_user_msgid( "TeamInfo" );
  129.  
  130. g_iHudSync = CreateHudSyncObj( );
  131. g_iHudSync2 = CreateHudSyncObj( );
  132.  
  133. if( get_pcvar_num( g_pToggle ) ) {
  134. RegisterHam( Ham_TakeDamage, "player", "FwdHamPlayerDamage" );
  135. RegisterHam( Ham_Spawn, "player", "FwdHamPlayerSpawn", 1 );
  136. register_forward( FM_ClientKill, "FwdClientKill" );
  137. register_impulse( 201, "FwdImpulse_201" );
  138.  
  139. if( get_pcvar_num( g_pGameName ) )
  140. register_forward( FM_GetGameDescription, "FwdGameDesc" );
  141.  
  142. register_clcmd( "say /lifes", "CmdShowlifes" );
  143. register_clcmd( "say /lives", "CmdShowlifes" );
  144.  
  145. register_clcmd( "radio1", "CmdRadio" );
  146. register_clcmd( "radio2", "CmdRadio" );
  147. register_clcmd( "radio3", "CmdRadio" );
  148.  
  149. // Terrorist Check
  150. g_iThinker= create_entity( "info_target" );
  151.  
  152. if( is_valid_ent( g_iThinker ) ) {
  153. entity_set_string( g_iThinker, EV_SZ_classname, "DeathrunThinker" );
  154. entity_set_float( g_iThinker, EV_FL_nextthink, get_gametime( ) + 20.0 );
  155.  
  156. g_bRestart = true;
  157.  
  158. // First think will happen in 20.0, Restart will be done there.
  159.  
  160. register_think( "DeathrunThinker", "FwdThinker" );
  161. } else {
  162. set_task( 15.0, "CheckTerrorists", _, _, _, "b" );
  163.  
  164. // Lets make restart after 20 seconds from map start.
  165. set_task( 20.0, "RestartRound" );
  166. }
  167.  
  168. if( get_pcvar_num( g_pRemoveBuyZone ) ) {
  169. register_message( get_user_msgid( "StatusIcon" ), "MsgStatusIcon" ); // BuyZone Icon
  170.  
  171. // Remove buyzone on map
  172. remove_entity_name( "info_map_parameters" );
  173. remove_entity_name( "func_buyzone" );
  174.  
  175. // Create own entity to block buying
  176. new iEntity = create_entity( "info_map_parameters" );
  177.  
  178. DispatchKeyValue( iEntity, "buying", "3" );
  179. DispatchSpawn( iEntity );
  180. }
  181.  
  182. if( get_pcvar_num( g_pSemiclip ) ) {
  183. register_forward( FM_StartFrame, "FwdStartFrame", 0 );
  184. register_forward( FM_AddToFullPack, "FwdFullPack", 1 );
  185. }
  186.  
  187. g_bEnabled = true;
  188.  
  189. #if defined FAKE_PLAYER
  190. new iEntity, iCount;
  191.  
  192. while( ( iEntity = find_ent_by_class( iEntity, "info_player_deathmatch" ) ) > 0 )
  193. if( iCount++ > 1 )
  194. break;
  195.  
  196. if( iCount <= 1 )
  197. g_iFakeplayer = -1;
  198.  
  199. set_task( 5.0, "UpdateBot" );
  200.  
  201. register_message( get_user_msgid( "DeathMsg" ), "MsgDeathMsg" );
  202. #endif
  203. } else
  204. g_bEnabled = false;
  205. }
  206.  
  207. // FAKEPLAYER
  208. ///////////////////////////////////////////
  209. #if defined FAKE_PLAYER
  210. public UpdateBot( ) {
  211. if( g_iFakeplayer == -1 )
  212. return;
  213.  
  214. new id = find_player( "i" );
  215.  
  216. if( !id ) {
  217. id = engfunc( EngFunc_CreateFakeClient, g_szBotName );
  218. if( pev_valid( id ) ) {
  219. engfunc( EngFunc_FreeEntPrivateData, id );
  220. dllfunc( MetaFunc_CallGameEntity, "player", id );
  221. set_user_info( id, "rate", "3500" );
  222. set_user_info( id, "cl_updaterate", "25" );
  223. set_user_info( id, "cl_lw", "1" );
  224. set_user_info( id, "cl_lc", "1" );
  225. set_user_info( id, "cl_dlmax", "128" );
  226. set_user_info( id, "cl_righthand", "1" );
  227. set_user_info( id, "_vgui_menus", "0" );
  228. set_user_info( id, "_ah", "0" );
  229. set_user_info( id, "dm", "0" );
  230. set_user_info( id, "tracker", "0" );
  231. set_user_info( id, "friends", "0" );
  232. set_user_info( id, "*bot", "1" );
  233. set_pev( id, pev_flags, pev( id, pev_flags ) | FL_FAKECLIENT );
  234. set_pev( id, pev_colormap, id );
  235.  
  236. new szMsg[ 128 ];
  237. dllfunc( DLLFunc_ClientConnect, id, g_szBotName, "127.0.0.1", szMsg );
  238. dllfunc( DLLFunc_ClientPutInServer, id );
  239.  
  240. cs_set_user_team( id, CS_TEAM_T );
  241. ExecuteHamB( Ham_CS_RoundRespawn, id );
  242.  
  243. set_pev( id, pev_effects, pev( id, pev_effects ) | EF_NODRAW );
  244. set_pev( id, pev_solid, SOLID_NOT );
  245. dllfunc( DLLFunc_Think, id );
  246.  
  247. g_iFakeplayer = id;
  248. }
  249. }
  250. }
  251.  
  252. public MsgDeathMsg( const iMsgId, const iMsgDest, const id ) {
  253. if( get_msg_arg_int( 2 ) == g_iFakeplayer )
  254. return PLUGIN_HANDLED;
  255.  
  256. return PLUGIN_CONTINUE;
  257. }
  258. #endif
  259.  
  260. // NEW TERRORIST
  261. ///////////////////////////////////////////
  262. public EventRandromize( ) {
  263. if( !g_bEnabled || g_bFirstRound || g_bRandromized )
  264. return PLUGIN_CONTINUE;
  265.  
  266. g_bRandromized = true;
  267.  
  268. new i, iPlayers[ 32 ], iNum, iPlayer;
  269. get_players( iPlayers, iNum, "c" );
  270.  
  271. if( iNum <= 1 )
  272. return PLUGIN_CONTINUE;
  273.  
  274. for( i = 0; i < iNum; i++ ) {
  275. iPlayer = iPlayers[ i ];
  276.  
  277. if( cs_get_user_team( iPlayer ) == CS_TEAM_T )
  278. cs_set_user_team( iPlayer, CS_TEAM_CT );
  279. }
  280.  
  281. new iRandomPlayer, CsTeams:iTeam;
  282.  
  283. while( ( iRandomPlayer = iPlayers[ random_num( 0, iNum - 1 ) ] ) == g_iLastTerr ) { }
  284.  
  285. g_iLastTerr = iRandomPlayer;
  286.  
  287. iTeam = cs_get_user_team( iRandomPlayer );
  288.  
  289. if( iTeam == CS_TEAM_T || iTeam == CS_TEAM_CT ) {
  290. cs_set_user_team(iRandomPlayer, CS_TEAM_T);
  291.  
  292. new szName[ 32 ];
  293. get_user_name( iRandomPlayer, szName, 31 );
  294.  
  295. for( i = 0; i < iNum; i++ )
  296. ColorChat(iPlayers[ i ], RED, "%s^4 %L", g_szPrefix, iPlayers[ i ], "DR_NOW_TERR", szName);
  297.  
  298. if( !g_bRestart && is_valid_ent( g_iThinker ) )
  299. entity_set_float( g_iThinker, EV_FL_nextthink, get_gametime( ) + 15.0 );
  300. } else {
  301. g_bRandromized = false;
  302. EventRandromize( );
  303. }
  304.  
  305. return PLUGIN_CONTINUE;
  306. }
  307.  
  308. // NEW ROUND
  309. ///////////////////////////////////////////
  310. public EventRoundStart( ) {
  311. if( !g_bEnabled )
  312. return PLUGIN_CONTINUE;
  313.  
  314. g_bRandromized = false;
  315. g_bStarting = false;
  316.  
  317. new i, iPlayers[ 32 ], iNum, iRealPlayers, CsTeams:iTeam;
  318. get_players( iPlayers, iNum, "c" );
  319.  
  320. if( iNum <= 1 )
  321. return PLUGIN_CONTINUE;
  322.  
  323. for( i = 0; i < iNum; i++ ) {
  324. iTeam = cs_get_user_team( iPlayers[ i ] );
  325.  
  326. if( iTeam == CS_TEAM_T || iTeam == CS_TEAM_CT )
  327. iRealPlayers++;
  328. }
  329.  
  330. if( iRealPlayers <= 1 ) {
  331. set_hudmessage( 0, 128, 0, -1.0, 0.1, 0, 4.0, 4.0, 0.5, 0.5, 4 );
  332.  
  333. for( i = 0; i < iNum; i++ )
  334. ShowSyncHudMsg( iPlayers[ i ], g_iHudSync, "%L", iPlayers[ i ], "DR_NOT_ENOUGH" );
  335.  
  336. return PLUGIN_CONTINUE;
  337. }
  338.  
  339. set_pcvar_num( g_pAutoBalance, 0 );
  340. set_pcvar_num( g_pLimitTeams, 0 );
  341.  
  342. if( g_bFirstRound ) {
  343. set_hudmessage( 0, 128, 0, -1.0, 0.1, 0, 4.0, 4.0, 0.5, 0.5, 4 );
  344.  
  345. for( i = 0; i < iNum; i++ ) {
  346. ShowSyncHudMsg( iPlayers[ i ], g_iHudSync, "%L", iPlayers[ i ], "DR_STARTING" );
  347.  
  348. ColorChat( iPlayers[ i ], RED, "%s^1 %L", g_szPrefix, iPlayers[ i ], "DR_STARTING_CC" );
  349. }
  350.  
  351. if( is_valid_ent( g_iThinker ) ) {
  352. g_bRestart = true;
  353.  
  354. entity_set_float( g_iThinker, EV_FL_nextthink, get_gametime( ) + 9.0 );
  355. } else
  356. set_task( 9.0, "RestartRound" );
  357.  
  358. g_bStarting = true;
  359. g_bFirstRound = false;
  360. }
  361.  
  362. return PLUGIN_CONTINUE;
  363. }
  364.  
  365. // CHECK TERRORIST
  366. ///////////////////////////////////////////
  367. public FwdThinker( iEntity ) {
  368. if( g_bRestart ) {
  369. g_bRestart = false;
  370.  
  371. RestartRound( );
  372. } else
  373. CheckTerrorists( );
  374.  
  375. entity_set_float( iEntity, EV_FL_nextthink, get_gametime( ) + 15.0 );
  376. }
  377.  
  378. public CheckTerrorists( ) {
  379. if( !g_bEnabled || g_bFirstRound || g_bStarting )
  380. return PLUGIN_CONTINUE;
  381.  
  382. new i, iPlayers[ 32 ], iTerrors, iNum, iRealPlayers, CsTeams:iTeam;
  383. get_players( iPlayers, iNum, "c" );
  384.  
  385. if( iNum <= 1 )
  386. return PLUGIN_CONTINUE;
  387.  
  388. for( i = 0; i < iNum; i++ ) {
  389. iTeam = cs_get_user_team( iPlayers[ i ] );
  390.  
  391. if( iTeam == CS_TEAM_T )
  392. iTerrors++;
  393.  
  394. if( iTeam == CS_TEAM_T || iTeam == CS_TEAM_CT )
  395. iRealPlayers++;
  396. }
  397.  
  398. if( iRealPlayers <= 1 ) {
  399. set_hudmessage( 0, 128, 0, -1.0, 0.1, 0, 4.0, 4.0, 0.5, 0.5, 4 );
  400.  
  401. for( i = 0; i < iNum; i++ )
  402. ShowSyncHudMsg( iPlayers[ i ], g_iHudSync, "%L", iPlayers[ i ], "DR_NOT_ENOUGH" );
  403.  
  404. return PLUGIN_CONTINUE;
  405. }
  406.  
  407. if( iTerrors == 0 ) {
  408. for( i = 0; i < iNum; i++ ) {
  409. ColorChat(iPlayers[ i ], RED, "%s^1 %L", g_szPrefix, iPlayers[ i ], "DR_NO_DETECT");
  410.  
  411. if( is_user_alive( iPlayers[ i ] ) && cs_get_user_team( iPlayers[ i ] ) == CS_TEAM_CT )
  412. user_silentkill( iPlayers[ i ] );
  413. }
  414.  
  415. set_task( 0.5, "EventRandromize" );
  416. }
  417.  
  418. return PLUGIN_CONTINUE;
  419. }
  420.  
  421. // LIFE SYSTEM
  422. ///////////////////////////////////////////
  423. public EventTerrsWin( ) {
  424. if( !g_bEnabled || g_bFirstRound )
  425. return PLUGIN_CONTINUE;
  426.  
  427. new iPlayers[ 32 ], iNum, iPlayer;
  428. get_players( iPlayers, iNum, "c" );
  429.  
  430. if( iNum <= 1 )
  431. return PLUGIN_CONTINUE;
  432.  
  433. new iLifeCvar = get_pcvar_num( g_pLifeSystem );
  434.  
  435. for( new i = 0; i < iNum; i++ ) {
  436. iPlayer = iPlayers[ i ];
  437.  
  438. if( cs_get_user_team( iPlayer ) == CS_TEAM_T ) {
  439. set_user_frags( iPlayer, get_user_frags( iPlayer ) + 3 );
  440.  
  441. if( iLifeCvar == 2 )
  442. g_Lifes[ iPlayer ]++;
  443. }
  444. }
  445.  
  446. return PLUGIN_CONTINUE;
  447. }
  448.  
  449. public EventDeath( ) {
  450. if( !g_bEnabled )
  451. return PLUGIN_CONTINUE;
  452.  
  453. #if defined FAKE_PLAYER
  454. new iVictim = read_data( 2 );
  455. new iTeam = get_user_team( iVictim );
  456.  
  457. if( iTeam == 1 && is_user_alive( g_iFakeplayer ) )
  458. fakedamage( g_iFakeplayer, "worldspawn", 100.0, DMG_GENERIC );
  459.  
  460. if( !get_pcvar_num( g_pLifeSystem ) )
  461. return PLUGIN_CONTINUE;
  462. #else
  463. if( !get_pcvar_num( g_pLifeSystem ) )
  464. return PLUGIN_CONTINUE;
  465.  
  466. new iVictim = read_data( 2 );
  467. new iTeam = get_user_team( iVictim );
  468. #endif
  469.  
  470. new iKiller = read_data( 1 );
  471.  
  472. if( iKiller != iVictim && get_user_team(iKiller) != iTeam )
  473. g_Lifes[iKiller]++;
  474.  
  475. if( cs_get_user_team( iVictim ) == CS_TEAM_CT && g_Lifes[ iVictim ] > 0 ) {
  476. new iCTcount;
  477. for( new i = 1; i <= g_iMaxplayers; i++ ) {
  478. if( is_user_alive( i ) && cs_get_user_team( i ) == CS_TEAM_CT )
  479. iCTcount++;
  480. }
  481.  
  482. if( iCTcount > 1 ) {
  483. set_task(3.2, "fnRevivePlayer", iVictim);
  484.  
  485. ColorChat( iVictim, RED, "%s^1 %L", g_szPrefix, iVictim, "DR_LIFE_RESPAWN" );
  486. }
  487. /*else
  488. ColorChat( iVictim, RED, "%s^1 %L", g_szPrefix, iVictim, "DR_LIFE_CANT" );*/
  489. }
  490.  
  491. return PLUGIN_CONTINUE;
  492. }
  493.  
  494. public fnRevivePlayer( id ) {
  495. if( g_bConnected[ id ] ) {
  496. if( cs_get_user_team( id ) == CS_TEAM_CT ) {
  497. new iCTcount;
  498. for( new i = 1; i <= g_iMaxplayers; i++ )
  499. if( is_user_alive( i ) && cs_get_user_team( i ) == CS_TEAM_CT )
  500. iCTcount++;
  501.  
  502. if( iCTcount > 1 ) {
  503. ExecuteHamB( Ham_CS_RoundRespawn, id );
  504.  
  505. g_Lifes[ id ]--;
  506. }
  507. }
  508. }
  509. }
  510.  
  511. public CmdShowlifes( id ) {
  512. if( get_pcvar_num( g_pLifeSystem ) == 0 ) {
  513. ColorChat( id, RED, "%s^1 %L", g_szPrefix, id, "DR_LIFE_DISABLE" );
  514. return PLUGIN_HANDLED;
  515. }
  516.  
  517. if( g_Lifes[ id ] > 0 )
  518. ColorChat( id, RED, "%s^1 %L", g_szPrefix, id, "DR_LIFE_CC_COUNT", g_Lifes[ id ] );
  519. else
  520. ColorChat( id, RED, "%s^1 %L", g_szPrefix, id, "DR_LIFE_CC_NO" );
  521.  
  522. return PLUGIN_HANDLED;
  523. }
  524.  
  525. public Showlifes( id ) {
  526. set_hudmessage( 0, 128, 0, 0.04, 0.71, 0, 2.5, 2.5, 0.5, 0.5, 3 );
  527.  
  528. if( g_Lifes[ id ] > 0 )
  529. ShowSyncHudMsg( id, g_iHudSync2, "%L", id, "DR_LIFE_COUNT", g_Lifes[ id ] );
  530. else
  531. ShowSyncHudMsg( id, g_iHudSync2, "%L", id, "DR_LIFE_NO" );
  532. }
  533.  
  534. // EVENTS
  535. ///////////////////////////////////////////
  536. public EventResetHud( id ) {
  537. if( g_bEnabled && get_pcvar_num( g_pHideHuds ) && !is_user_bot( id ) ) {
  538. message_begin( MSG_ONE_UNRELIABLE, g_iMsgHideWeapon, _, id );
  539. write_byte( ( 1<<4 | 1<<5 ) );
  540. message_end( );
  541.  
  542. message_begin( MSG_ONE_UNRELIABLE, g_iMsgCrosshair, _, id );
  543. write_byte( 0 );
  544. message_end( );
  545. }
  546. }
  547.  
  548. public EventMoney( id ) {
  549. if( g_bEnabled && get_pcvar_num( g_pBlockMoney ) ) {
  550. set_pdata_int( id, 115, 0 );
  551.  
  552. message_begin( MSG_ONE_UNRELIABLE, g_iMsgMoney, _, id );
  553. write_long ( 0 );
  554. write_byte ( 1 );
  555. message_end( );
  556. }
  557. }
  558.  
  559. public client_putinserver( id )
  560. g_bConnected[ id ] = true;
  561.  
  562. public client_disconnect( id ) {
  563. g_bConnected[ id ] = false;
  564. CheckTerrorists( );
  565.  
  566. if( !g_bRestart && is_valid_ent( g_iThinker ) )
  567. entity_set_float( g_iThinker, EV_FL_nextthink, get_gametime( ) + 15.0 );
  568.  
  569. #if defined FAKE_PLAYER
  570. if( g_iFakeplayer == id ) {
  571. set_task( 1.5, "UpdateBot" );
  572.  
  573. g_iFakeplayer = 0;
  574. }
  575. #endif
  576. }
  577.  
  578. // SEMICLIP
  579. ///////////////////////////////////////////
  580. public FwdFullPack( es, e, ent, host, flags, player, pSet ) {
  581. if( !g_bEnabled )
  582. return FMRES_IGNORED;
  583.  
  584. if( player && g_iSemiClip[ ent ] && g_iSemiClip[ host ] ) {
  585. set_es( es, ES_Solid, SOLID_NOT );
  586. set_es( es, ES_RenderMode, kRenderTransAlpha );
  587. set_es( es, ES_RenderAmt, 85 );
  588. }
  589.  
  590. return FMRES_IGNORED;
  591. }
  592.  
  593. public FwdStartFrame( ) {
  594. if( !g_bEnabled )
  595. return FMRES_IGNORED;
  596.  
  597. static iPlayers[ 32 ], iNum, iPlayer, iPlayer2, i, j;
  598. get_players( iPlayers, iNum, "ache", "CT" );
  599.  
  600. arrayset( g_iSemiClip, 0, 32 );
  601.  
  602. if( iNum <= 1 )
  603. return FMRES_IGNORED;
  604.  
  605. for( i = 0; i < iNum; i++ ) {
  606. iPlayer = iPlayers[ i ];
  607.  
  608. for( j = 0; j < iNum; j++ ) {
  609. iPlayer2 = iPlayers[ j ];
  610.  
  611. if( iPlayer == iPlayer2 )
  612. continue;
  613.  
  614. if( g_iSemiClip[ iPlayer ] && g_iSemiClip[ iPlayer2 ] )
  615. continue;
  616.  
  617. if( entity_range( iPlayer, iPlayer2 ) < 128 ) {
  618. g_iSemiClip[ iPlayer ] = true;
  619. g_iSemiClip[ iPlayer2 ] = true;
  620. }
  621. }
  622. }
  623.  
  624. for( i = 0; i < iNum; i++ ) {
  625. iPlayer = iPlayers[ i ];
  626.  
  627. set_pev( iPlayer, pev_solid, g_iSemiClip[ iPlayer ] ? SOLID_NOT : SOLID_SLIDEBOX );
  628. }
  629.  
  630. return FMRES_IGNORED;
  631. }
  632.  
  633. // FORWARDS
  634. ///////////////////////////////////////////
  635. public FwdHamPlayerSpawn( id ) {
  636. if( !g_bEnabled || !is_user_alive( id ) )
  637. return HAM_IGNORED;
  638.  
  639. if( get_pcvar_num( g_pBlockRadio ) ) // thanks to ConnorMcLeod for this good way <!-- s:) --><img src=\"{SMILIES_PATH}/icon_e_smile.gif\" alt=\":)\" title=\"mosoly\" /><!-- s:) -->
  640. set_pdata_int( id, 192, 0 );
  641.  
  642. #if defined FAKE_PLAYER
  643. if( g_iFakeplayer == id ) {
  644. set_pev( id, pev_frags, -1000.0 );
  645. cs_set_user_deaths( id, -1000 );
  646.  
  647. set_pev( id, pev_effects, pev( id, pev_effects ) | EF_NODRAW );
  648. set_pev( id, pev_solid, SOLID_NOT );
  649. entity_set_origin( id, Float:{ 999999.0, 999999.0, 999999.0 } );
  650. dllfunc( DLLFunc_Think, id );
  651. } else {
  652. #endif
  653. new CsTeams:iTeam = cs_get_user_team( id );
  654.  
  655. // An small delay for message
  656. if( get_pcvar_num( g_pLifeSystem ) != 0 && iTeam == CS_TEAM_CT )
  657. set_task( 0.8, "Showlifes", id );
  658.  
  659. strip_user_weapons( id );
  660. give_item( id, "weapon_knife" );
  661.  
  662. set_pdata_int( id, 116, 0 ); // Pickup fix by ConnorMcLeod
  663.  
  664. if( g_bGamerFun && iTeam == CS_TEAM_CT )
  665. give_item( id, "weapon_smokegrenade" );
  666.  
  667. if( get_pcvar_num( g_pGiveUsp ) && iTeam == CS_TEAM_CT && !g_bHauntedHouse )
  668. set_task( 1.0, "GiveUsp", id );
  669.  
  670. #if defined FAKE_PLAYER
  671. }
  672. #endif
  673.  
  674. return HAM_IGNORED;
  675. }
  676.  
  677. public GiveUsp( const id ) {
  678. if( is_user_alive( id ) ) {
  679. give_item( id, "weapon_usp" );
  680. cs_set_user_bpammo( id, CSW_USP, 100 );
  681. }
  682. }
  683.  
  684. public FwdGameDesc( ) {
  685. static const GameName[ ] = "Deathrun Mod";
  686.  
  687. forward_return( FMV_STRING, GameName );
  688.  
  689. return FMRES_SUPERCEDE;
  690. }
  691.  
  692. public FwdClientKill( const id ) {
  693. if( !g_bEnabled || !is_user_alive(id) )
  694. return FMRES_IGNORED;
  695.  
  696. if( get_pcvar_num( g_pBlockKill ) || cs_get_user_team( id ) == CS_TEAM_T ) {
  697. client_print( id, print_center, "%L", id, "DR_BLOCK_KILL" );
  698. client_print( id, print_console, "%L", id, "DR_BLOCK_KILL" );
  699.  
  700. return FMRES_SUPERCEDE;
  701. }
  702.  
  703. return FMRES_IGNORED;
  704. }
  705.  
  706. public FwdImpulse_201( const id ) {
  707. if( g_bEnabled && get_pcvar_num( g_pBlockSpray ) ) {
  708. if( is_user_alive( id ) )
  709. client_print( id, print_center, "%L", id, "DR_BLOCK_SPRAY" );
  710.  
  711. return PLUGIN_HANDLED_MAIN;
  712. }
  713.  
  714. return PLUGIN_CONTINUE;
  715. }
  716.  
  717. public FwdHamPlayerDamage( id, idInflictor, idAttacker, Float:flDamage, iDamageBits ) {
  718. if( get_pcvar_num( g_pNoFallDmg ) )
  719. if( iDamageBits & DMG_FALL )
  720. if( get_user_team( id ) == 1 )
  721. return HAM_SUPERCEDE;
  722.  
  723. return HAM_IGNORED;
  724. }
  725.  
  726. public MsgStatusIcon( msg_id, msg_dest, id ) {
  727. new szIcon[ 8 ];
  728. get_msg_arg_string( 2, szIcon, 7 );
  729.  
  730. static const BuyZone[ ] = "buyzone";
  731.  
  732. if( equal( szIcon, BuyZone ) ) {
  733. set_pdata_int( id, OFFSET_BZ, get_pdata_int( id, OFFSET_BZ, 5 ) & ~( 1 << 0 ), 5 );
  734.  
  735. return PLUGIN_HANDLED;
  736. }
  737.  
  738. return PLUGIN_CONTINUE;
  739. }
  740.  
  741. public CmdRadio( id ) {
  742. if( get_pcvar_num( g_pBlockRadio ) )
  743. return PLUGIN_HANDLED_MAIN;
  744.  
  745. return PLUGIN_CONTINUE;
  746. }
  747.  
  748. public RestartRound( )
  749. set_pcvar_num( g_pSvRestart, 1 );
  750.  
  751. // COLORCHAT
  752. /////////////////////////////////////////////
  753. ColorChat( id, Color:type, const szMessage[], {Float,Sql,Result,_}:... ) {
  754. if( !get_playersnum( ) ) return;
  755.  
  756. new message[ 256 ];
  757.  
  758. switch( type ) {
  759. case NORMAL: message[0] = 0x01;
  760. case GREEN: message[0] = 0x04;
  761. default: message[0] = 0x03;
  762. }
  763.  
  764. vformat( message[ 1 ], 251, szMessage, 4 );
  765.  
  766. message[ 192 ] = '^0';
  767.  
  768. replace_all( message, 191, "\YEL", "^1" );
  769. replace_all( message, 191, "\GRN", "^4" );
  770. replace_all( message, 191, "\TEM", "^3" );
  771.  
  772. new iTeam, ColorChange, index, MSG_Type;
  773.  
  774. if( id ) {
  775. MSG_Type = MSG_ONE_UNRELIABLE;
  776. index = id;
  777. } else {
  778. index = CC_FindPlayer();
  779. MSG_Type = MSG_BROADCAST;
  780. }
  781.  
  782. iTeam = get_user_team( index );
  783. ColorChange = CC_ColorSelection(index, MSG_Type, type);
  784.  
  785. CC_ShowColorMessage(index, MSG_Type, message);
  786.  
  787. if( ColorChange )
  788. CC_Team_Info(index, MSG_Type, TeamName[iTeam]);
  789. }
  790.  
  791. CC_ShowColorMessage( id, type, message[] ) {
  792. message_begin( type, g_iMsgSayText, _, id );
  793. write_byte( id );
  794. write_string( message );
  795. message_end( );
  796. }
  797.  
  798. CC_Team_Info( id, type, team[] ) {
  799. message_begin( type, g_iMsgTeamInfo, _, id );
  800. write_byte( id );
  801. write_string( team );
  802. message_end( );
  803.  
  804. return 1;
  805. }
  806.  
  807. CC_ColorSelection( index, type, Color:Type ) {
  808. switch( Type ) {
  809. case RED: return CC_Team_Info( index, type, TeamName[ 1 ] );
  810. case BLUE: return CC_Team_Info( index, type, TeamName[ 2 ] );
  811. }
  812.  
  813. return 0;
  814. }
  815.  
  816. CC_FindPlayer( ) {
  817. for( new i = 1; i <= g_iMaxplayers; i++ )
  818. if( g_bConnected[ i ] )
  819. return i;
  820.  
  821. return -1;
  822. }
  823.  

_________________
NEW IP:
Kép

Ők köszönték meg TraneTommy nek ezt a hozzászólást: `smiley (2015.01.24. 11:49)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2015.01.24. 11:49 
Offline
Lelkes

Csatlakozott: 2015.01.23. 18:25
Hozzászólások: 28
Megköszönt másnak: 4 alkalommal
Köszönöm! Megy a Gomb

_________________
[steam]http://steamcommunity.com/id/animal-love-bitches[/steam]


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