hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.06.17. 15:28



Jelenlévő felhasználók

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

A legtöbb felhasználó (2761 fő) 2025.01.09. 20:06-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  [1 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: T 1gomb 1x
HozzászólásElküldve:2012.07.10. 12:34 
Offline
Őskövület
Avatar

Csatlakozott:2011.12.28. 00:35
Hozzászólások:2736
Megköszönt másnak: 56 alkalommal
Megköszönték neki: 275 alkalommal
Hali.

Nekem az lenne a problémám, hogy fent nekem ez a plugin: use_button_once. És ha valaki beírja, hogy /free akkor úgyan nem engedi nyomni a gombokat. de viszont a fegyvert nem veszi el a CTK-töl.

EZ mért van?? Pedig az a deathrun mód van fent ami elveszi az USP-t
Kód:
  1. #include < amxmodx >

  2. #include < engine >

  3. #include < cstrike >

  4. #include < fun >

  5. #include < fakemeta >

  6. #include < hamsandwich >

  7.  

  8. #pragma semicolon 1

  9.  

  10. // Comment this line if you do not want to have fake player !

  11. #define FAKE_PLAYER

  12.  

  13. // Bot name

  14. #if defined FAKE_PLAYER

  15.         new const g_szBotName[ ] = "www.facebook.com/smclan";

  16. #endif

  17.  

  18. // Messages prefix

  19. new const g_szPrefix[ ] = "[S][M]";

  20.  

  21. // Global Variables

  22. new bool:g_bHauntedHouse, bool:g_bGamerFun, bool:g_bRandromized, bool:g_bStarting, bool:g_bFirstRound;

  23. new bool:g_bEnabled, bool:g_bRestart, bool:g_bConnected[ 33 ];

  24.  

  25. new g_pRemoveBuyZone, g_pHideHuds, g_pBlockMoney, g_pLifeSystem, g_pSvRestart, g_pAutoBalance, g_pLimitTeams;

  26. new g_pNoFallDmg, g_pGameName, g_pToggle, g_pBlockSpray, g_pBlockRadio, g_pSemiclip, g_pGiveUsp, g_pBlockKill;

  27.  

  28. new g_iMsgHideWeapon, g_iMsgCrosshair, g_iMsgMoney, g_iMsgTeamInfo, g_iMsgSayText;

  29. new g_iMaxplayers, g_iHudSync, g_iHudSync2, g_iLastTerr, g_iThinker;

  30. new g_iSemiClip[ 33 ], g_Lifes[ 33 ];

  31.  

  32. #if defined FAKE_PLAYER

  33.         new g_iFakeplayer;

  34. #endif

  35.  

  36. // Macros

  37. #if cellbits == 32

  38.         #define OFFSET_BZ 235

  39. #else

  40.         #define OFFSET_BZ 268

  41. #endif

  42.  

  43. // Colorchat

  44. enum Color {

  45.         NORMAL = 1,

  46.         GREEN,

  47.         RED,

  48.         BLUE

  49. };

  50.  

  51. new TeamName[ ][ ] = {

  52.         "",

  53.         "TERRORIST",

  54.         "CT",

  55.         "SPECTATOR"

  56. };

  57.  

  58. // =======================================================================================

  59.  

  60. public plugin_init( ) {

  61.         new const VERSION[ ] = "3.0.3";

  62.        

  63.         register_plugin( "Deathrun Manager", VERSION, "xPaw" );

  64.        

  65.         g_pToggle        = register_cvar( "deathrun_toggle",     "1" );

  66.         g_pBlockSpray    = register_cvar( "deathrun_spray",      "0" );

  67.         g_pBlockRadio    = register_cvar( "deathrun_radio",      "1" );

  68.         g_pBlockKill     = register_cvar( "deathrun_blockkill",  "1" );

  69.         g_pBlockMoney    = register_cvar( "deathrun_blockmoney", "1" );

  70.         g_pSemiclip      = register_cvar( "deathrun_semiclip",   "1" );

  71.         g_pGiveUsp       = register_cvar( "deathrun_giveusp",    "1" );

  72.         g_pHideHuds      = register_cvar( "deathrun_hidehud",    "1" );

  73.         g_pLifeSystem    = register_cvar( "deathrun_lifesystem", "1" );

  74.         g_pGameName      = register_cvar( "deathrun_gamename",   "0" );

  75.         g_pNoFallDmg     = register_cvar( "deathrun_terrnfd",    "1" );

  76.         g_pRemoveBuyZone = register_cvar( "deathrun_removebz",   "1" );

  77.        

  78.         // Lets get map name...

  79.         new szMapName[ 64 ];

  80.         get_mapname( szMapName, 63 );

  81.        

  82.         if( contain( szMapName, "deathrun_" ) != -1 ) {

  83.                 set_pcvar_num( g_pToggle, 1 );

  84.                

  85.                 if( contain( szMapName, "hauntedhouse" ) != -1 )

  86.                         g_bHauntedHouse = true;

  87.                 else {

  88.                         g_bHauntedHouse = false;

  89.                        

  90.                         if( equal( szMapName, "deathrun_gamerfun" ) )

  91.                                 g_bGamerFun = true;

  92.                         else

  93.                                 g_bGamerFun = false;

  94.                 }

  95.         } else

  96.                 set_pcvar_num( g_pToggle, 0 );

  97.        

  98.         g_pSvRestart   = get_cvar_pointer( "sv_restart" );

  99.         g_pAutoBalance = get_cvar_pointer( "mp_autoteambalance" );

  100.         g_pLimitTeams  = get_cvar_pointer( "mp_limitteams" );

  101.        

  102.         register_cvar( "deathrun_version", VERSION, FCVAR_SERVER | FCVAR_SPONLY );

  103.         set_cvar_string( "deathrun_version", VERSION );

  104.        

  105.         // Registering Language file

  106.         register_dictionary( "deathrun.txt" );

  107.        

  108.         // Logging Events

  109.         register_logevent( "EventRoundStart", 2, "1=Round_Start" );

  110.         register_logevent( "EventRandromize", 2, "1=Round_End" );

  111.         register_event( "SendAudio", "EventTerrsWin",   "a", "2&%!MRAD_terwin" );

  112.         register_event( "TextMsg",       "EventRandromize", "a", "2&#Game_w" );

  113.         register_event( "DeathMsg",      "EventDeath",      "a");

  114.         register_event( "Money",         "EventMoney",      "b" );

  115.         register_event( "ResetHUD",      "EventResetHud",   "be" );

  116.        

  117.         g_bFirstRound    = true;

  118.         g_iMaxplayers    = get_maxplayers( );

  119.         g_iMsgHideWeapon = get_user_msgid( "HideWeapon" );

  120.         g_iMsgCrosshair  = get_user_msgid( "Crosshair" );

  121.         g_iMsgMoney      = get_user_msgid( "Money" );

  122.         g_iMsgSayText    = get_user_msgid( "SayText" );

  123.         g_iMsgTeamInfo   = get_user_msgid( "TeamInfo" );

  124.        

  125.         g_iHudSync       = CreateHudSyncObj( );

  126.         g_iHudSync2      = CreateHudSyncObj( );

  127.        

  128.         if( get_pcvar_num( g_pToggle ) ) {

  129.                 RegisterHam( Ham_TakeDamage, "player", "FwdHamPlayerDamage" );

  130.                 RegisterHam( Ham_Spawn,      "player", "FwdHamPlayerSpawn", 1 );

  131.                 register_forward( FM_ClientKill,       "FwdClientKill" );

  132.                 register_impulse( 201, "FwdImpulse_201" );

  133.                

  134.                 if( get_pcvar_num( g_pGameName ) )

  135.                         register_forward( FM_GetGameDescription, "FwdGameDesc" );

  136.                

  137.                 register_clcmd( "say /lifes", "CmdShowlifes" );

  138.                 register_clcmd( "say /lives", "CmdShowlifes" );

  139.                

  140.                 register_clcmd( "radio1", "CmdRadio" );

  141.                 register_clcmd( "radio2", "CmdRadio" );

  142.                 register_clcmd( "radio3", "CmdRadio" );

  143.                

  144.                 // Terrorist Check

  145.                 g_iThinker= create_entity( "info_target" );

  146.                

  147.                 if( is_valid_ent( g_iThinker ) ) {

  148.                         entity_set_string( g_iThinker, EV_SZ_classname, "DeathrunThinker" );

  149.                         entity_set_float( g_iThinker, EV_FL_nextthink, get_gametime( ) + 20.0 );

  150.                        

  151.                         g_bRestart = true;

  152.                        

  153.                         // First think will happen in 20.0, Restart will be done there.

  154.                        

  155.                         register_think( "DeathrunThinker", "FwdThinker" );

  156.                 } else {

  157.                         set_task( 15.0, "CheckTerrorists", _, _, _, "b" );

  158.                        

  159.                         // Lets make restart after 20 seconds from map start.

  160.                         set_task( 20.0, "RestartRound" );

  161.                 }

  162.                

  163.                 if( get_pcvar_num( g_pRemoveBuyZone ) ) {

  164.                         register_message( get_user_msgid( "StatusIcon" ), "MsgStatusIcon" ); // BuyZone Icon

  165.                        

  166.                         // Remove buyzone on map

  167.                         remove_entity_name( "info_map_parameters" );

  168.                         remove_entity_name( "func_buyzone" );

  169.                        

  170.                         // Create own entity to block buying

  171.                         new iEntity = create_entity( "info_map_parameters" );

  172.                        

  173.                         DispatchKeyValue( iEntity, "buying", "3" );

  174.                         DispatchSpawn( iEntity );

  175.                 }

  176.                

  177.                 if( get_pcvar_num( g_pSemiclip ) ) {

  178.                         register_forward( FM_StartFrame,        "FwdStartFrame", 0 );

  179.                         register_forward( FM_AddToFullPack,     "FwdFullPack",   1 );

  180.                 }

  181.                

  182.                 g_bEnabled = true;

  183.                

  184.         #if defined FAKE_PLAYER

  185.                 new iEntity, iCount;

  186.                

  187.                 while( ( iEntity = find_ent_by_class( iEntity, "info_player_deathmatch" ) ) > 0 )

  188.                         if( iCount++ > 1 )

  189.                                 break;

  190.                

  191.                 if( iCount <= 1 )

  192.                         g_iFakeplayer = -1;

  193.                

  194.                 set_task( 5.0, "UpdateBot" );

  195.                

  196.                 register_message( get_user_msgid( "DeathMsg" ), "MsgDeathMsg" );

  197.         #endif

  198.         } else

  199.                 g_bEnabled = false;

  200. }

  201.  

  202. // FAKEPLAYER

  203. ///////////////////////////////////////////

  204. #if defined FAKE_PLAYER

  205.         public UpdateBot( ) {

  206.                 if( g_iFakeplayer == -1 )

  207.                         return;

  208.                

  209.                 new id = find_player( "i" );

  210.                

  211.                 if( !id ) {

  212.                         id = engfunc( EngFunc_CreateFakeClient, g_szBotName );

  213.                         if( pev_valid( id ) ) {

  214.                                 engfunc( EngFunc_FreeEntPrivateData, id );

  215.                                 dllfunc( MetaFunc_CallGameEntity, "player", id );

  216.                                 set_user_info( id, "rate", "3500" );

  217.                                 set_user_info( id, "cl_updaterate", "25" );

  218.                                 set_user_info( id, "cl_lw", "1" );

  219.                                 set_user_info( id, "cl_lc", "1" );

  220.                                 set_user_info( id, "cl_dlmax", "128" );

  221.                                 set_user_info( id, "cl_righthand", "1" );

  222.                                 set_user_info( id, "_vgui_menus", "0" );

  223.                                 set_user_info( id, "_ah", "0" );

  224.                                 set_user_info( id, "dm", "0" );

  225.                                 set_user_info( id, "tracker", "0" );

  226.                                 set_user_info( id, "friends", "0" );

  227.                                 set_user_info( id, "*bot", "1" );

  228.                                 set_pev( id, pev_flags, pev( id, pev_flags ) | FL_FAKECLIENT );

  229.                                 set_pev( id, pev_colormap, id );

  230.                                

  231.                                 new szMsg[ 128 ];

  232.                                 dllfunc( DLLFunc_ClientConnect, id, g_szBotName, "127.0.0.1", szMsg );

  233.                                 dllfunc( DLLFunc_ClientPutInServer, id );

  234.                                

  235.                                 cs_set_user_team( id, CS_TEAM_T );

  236.                                 ExecuteHamB( Ham_CS_RoundRespawn, id );

  237.                                

  238.                                 set_pev( id, pev_effects, pev( id, pev_effects ) | EF_NODRAW );

  239.                                 set_pev( id, pev_solid, SOLID_NOT );

  240.                                 dllfunc( DLLFunc_Think, id );

  241.                                

  242.                                 g_iFakeplayer = id;

  243.                         }

  244.                 }

  245.         }

  246.        

  247.         public MsgDeathMsg( const iMsgId, const iMsgDest, const id ) {

  248.                 if( get_msg_arg_int( 2 ) == g_iFakeplayer )

  249.                         return PLUGIN_HANDLED;

  250.                

  251.                 return PLUGIN_CONTINUE;

  252.         }

  253. #endif

  254.  

  255. // NEW TERRORIST

  256. ///////////////////////////////////////////

  257. public EventRandromize( ) {

  258.         if( !g_bEnabled || g_bFirstRound || g_bRandromized )

  259.                 return PLUGIN_CONTINUE;

  260.        

  261.         g_bRandromized = true;

  262.        

  263.         new i, iPlayers[ 32 ], iNum, iPlayer;

  264.         get_players( iPlayers, iNum, "c" );

  265.        

  266.         if( iNum <= 1 )

  267.                 return PLUGIN_CONTINUE;

  268.        

  269.         for( i = 0; i < iNum; i++ ) {

  270.                 iPlayer = iPlayers[ i ];

  271.                

  272.                 if( cs_get_user_team( iPlayer ) == CS_TEAM_T )

  273.                         cs_set_user_team( iPlayer, CS_TEAM_CT );

  274.         }

  275.        

  276.         new iRandomPlayer, CsTeams:iTeam;

  277.        

  278.         while( ( iRandomPlayer = iPlayers[ random_num( 0, iNum - 1 ) ] ) == g_iLastTerr ) { }

  279.        

  280.         g_iLastTerr = iRandomPlayer;

  281.        

  282.         iTeam = cs_get_user_team( iRandomPlayer );

  283.        

  284.         if( iTeam == CS_TEAM_T || iTeam == CS_TEAM_CT ) {

  285.                 cs_set_user_team(iRandomPlayer, CS_TEAM_T);

  286.                

  287.                 new szName[ 32 ];

  288.                 get_user_name( iRandomPlayer, szName, 31 );

  289.                

  290.                 for( i = 0; i < iNum; i++ )

  291.                         ColorChat(iPlayers[ i ], RED, "%s^4 %L", g_szPrefix, iPlayers[ i ], "DR_NOW_TERR", szName);

  292.                

  293.                 if( !g_bRestart && is_valid_ent( g_iThinker ) )

  294.                         entity_set_float( g_iThinker, EV_FL_nextthink, get_gametime( ) + 15.0 );

  295.         } else {

  296.                 g_bRandromized = false;

  297.                 EventRandromize( );

  298.         }

  299.        

  300.         return PLUGIN_CONTINUE;

  301. }

  302.  

  303. // NEW ROUND

  304. ///////////////////////////////////////////

  305. public EventRoundStart( ) {

  306.         if( !g_bEnabled )

  307.                 return PLUGIN_CONTINUE;

  308.        

  309.         g_bRandromized  = false;

  310.         g_bStarting     = false;

  311.        

  312.         new i, iPlayers[ 32 ], iNum, iRealPlayers, CsTeams:iTeam;

  313.         get_players( iPlayers, iNum, "c" );

  314.        

  315.         if( iNum <= 1 )

  316.                 return PLUGIN_CONTINUE;

  317.        

  318.         for( i = 0; i < iNum; i++ ) {

  319.                 iTeam = cs_get_user_team( iPlayers[ i ] );

  320.                

  321.                 if( iTeam == CS_TEAM_T || iTeam == CS_TEAM_CT )

  322.                         iRealPlayers++;

  323.         }

  324.        

  325.         if( iRealPlayers <= 1 ) {

  326.                 set_hudmessage( 0, 128, 0, -1.0, 0.1, 0, 4.0, 4.0, 0.5, 0.5, 4 );

  327.                

  328.                 for( i = 0; i < iNum; i++ )

  329.                         ShowSyncHudMsg( iPlayers[ i ], g_iHudSync, "%L", iPlayers[ i ], "DR_NOT_ENOUGH" );

  330.                

  331.                 return PLUGIN_CONTINUE;

  332.         }

  333.        

  334.         set_pcvar_num( g_pAutoBalance, 0 );

  335.         set_pcvar_num( g_pLimitTeams, 0 );

  336.        

  337.         if( g_bFirstRound ) {

  338.                 set_hudmessage( 0, 128, 0, -1.0, 0.1, 0, 4.0, 4.0, 0.5, 0.5, 4 );

  339.                

  340.                 for( i = 0; i < iNum; i++ ) {

  341.                         ShowSyncHudMsg( iPlayers[ i ], g_iHudSync, "%L", iPlayers[ i ], "DR_STARTING" );

  342.                        

  343.                         ColorChat( iPlayers[ i ], RED, "%s^1 %L", g_szPrefix, iPlayers[ i ], "DR_STARTING_CC" );

  344.                 }

  345.                

  346.                 if( is_valid_ent( g_iThinker ) ) {

  347.                         g_bRestart = true;

  348.                        

  349.                         entity_set_float( g_iThinker, EV_FL_nextthink, get_gametime( ) + 9.0 );

  350.                 } else

  351.                         set_task( 9.0, "RestartRound" );

  352.                

  353.                 g_bStarting = true;

  354.                 g_bFirstRound = false;

  355.         }

  356.        

  357.         return PLUGIN_CONTINUE;

  358. }

  359.  

  360. // CHECK TERRORIST

  361. ///////////////////////////////////////////

  362. public FwdThinker( iEntity ) {

  363.         if( g_bRestart ) {

  364.                 g_bRestart = false;

  365.                

  366.                 RestartRound( );

  367.         } else

  368.                 CheckTerrorists( );

  369.        

  370.         entity_set_float( iEntity, EV_FL_nextthink, get_gametime( ) + 15.0 );

  371. }

  372.  

  373. public CheckTerrorists( ) {

  374.         if( !g_bEnabled || g_bFirstRound || g_bStarting )

  375.                 return PLUGIN_CONTINUE;

  376.        

  377.         new i, iPlayers[ 32 ], iTerrors, iNum, iRealPlayers, CsTeams:iTeam;

  378.         get_players( iPlayers, iNum, "c" );

  379.        

  380.         if( iNum <= 1 )

  381.                 return PLUGIN_CONTINUE;

  382.        

  383.         for( i = 0; i < iNum; i++ ) {

  384.                 iTeam = cs_get_user_team( iPlayers[ i ] );

  385.                

  386.                 if( iTeam == CS_TEAM_T )

  387.                         iTerrors++;

  388.                

  389.                 if( iTeam == CS_TEAM_T || iTeam == CS_TEAM_CT )

  390.                         iRealPlayers++;

  391.         }

  392.        

  393.         if( iRealPlayers <= 1 ) {

  394.                 set_hudmessage( 0, 128, 0, -1.0, 0.1, 0, 4.0, 4.0, 0.5, 0.5, 4 );

  395.                

  396.                 for( i = 0; i < iNum; i++ )

  397.                         ShowSyncHudMsg( iPlayers[ i ], g_iHudSync, "%L", iPlayers[ i ], "DR_NOT_ENOUGH" );

  398.                

  399.                 return PLUGIN_CONTINUE;

  400.         }

  401.        

  402.         if( iTerrors == 0 ) {

  403.                 for( i = 0; i < iNum; i++ ) {

  404.                         ColorChat(iPlayers[ i ], RED, "%s^1 %L", g_szPrefix, iPlayers[ i ], "DR_NO_DETECT");

  405.                        

  406.                         if( is_user_alive( iPlayers[ i ] ) && cs_get_user_team( iPlayers[ i ] ) == CS_TEAM_CT )

  407.                                 user_silentkill( iPlayers[ i ] );

  408.                 }

  409.                

  410.                 set_task( 0.5, "EventRandromize" );

  411.         }

  412.        

  413.         return PLUGIN_CONTINUE;

  414. }

  415.  

  416. // LIFE SYSTEM

  417. ///////////////////////////////////////////

  418. public EventTerrsWin( ) {

  419.         if( !g_bEnabled || g_bFirstRound )

  420.                 return PLUGIN_CONTINUE;

  421.        

  422.         new iPlayers[ 32 ], iNum, iPlayer;

  423.         get_players( iPlayers, iNum, "c" );

  424.        

  425.         if( iNum <= 1 )

  426.                 return PLUGIN_CONTINUE;

  427.        

  428.         new iLifeCvar = get_pcvar_num( g_pLifeSystem );

  429.        

  430.         for( new i = 0; i < iNum; i++ ) {

  431.                 iPlayer = iPlayers[ i ];

  432.                

  433.                 if( cs_get_user_team( iPlayer ) == CS_TEAM_T ) {

  434.                         set_user_frags( iPlayer, get_user_frags( iPlayer ) + 3 );

  435.                        

  436.                         if( iLifeCvar == 2 )

  437.                                 g_Lifes[ iPlayer ]++;

  438.                 }

  439.         }

  440.        

  441.         return PLUGIN_CONTINUE;

  442. }

  443.  

  444. public EventDeath( ) {

  445.         if( !g_bEnabled )

  446.                 return PLUGIN_CONTINUE;

  447.        

  448. #if defined FAKE_PLAYER

  449.         new iVictim = read_data( 2 );

  450.         new iTeam = get_user_team( iVictim );

  451.        

  452.         if( iTeam == 1 && is_user_alive( g_iFakeplayer ) )

  453.                 fakedamage( g_iFakeplayer, "worldspawn", 100.0, DMG_GENERIC );

  454.        

  455.         if( !get_pcvar_num( g_pLifeSystem ) )

  456.                 return PLUGIN_CONTINUE;

  457. #else

  458.         if( !get_pcvar_num( g_pLifeSystem ) )

  459.                 return PLUGIN_CONTINUE;

  460.        

  461.         new iVictim = read_data( 2 );

  462.         new iTeam = get_user_team( iVictim );

  463. #endif

  464.        

  465.         new iKiller = read_data( 1 );

  466.        

  467.         if( iKiller != iVictim && get_user_team(iKiller) != iTeam )

  468.                 g_Lifes[iKiller]++;

  469.        

  470.         if( cs_get_user_team( iVictim ) == CS_TEAM_CT && g_Lifes[ iVictim ] > 0 ) {

  471.                 new iCTcount;

  472.                 for( new i = 1; i <= g_iMaxplayers; i++ ) {

  473.                         if( is_user_alive( i ) && cs_get_user_team( i ) == CS_TEAM_CT )

  474.                                 iCTcount++;

  475.                 }

  476.                

  477.                 if( iCTcount > 1 ) {

  478.                         set_task(3.2, "fnRevivePlayer", iVictim);

  479.                        

  480.                         ColorChat( iVictim, RED, "%s^1 %L", g_szPrefix, iVictim, "DR_LIFE_RESPAWN" );

  481.                 }

  482.                 /*else

  483.                         ColorChat( iVictim, RED, "%s^1 %L", g_szPrefix, iVictim, "DR_LIFE_CANT" );*/

  484.         }

  485.        

  486.         return PLUGIN_CONTINUE;

  487. }

  488.  

  489. public fnRevivePlayer( id ) {

  490.         if( g_bConnected[ id ] ) {

  491.                 if( cs_get_user_team( id ) == CS_TEAM_CT ) {

  492.                         new iCTcount;

  493.                         for( new i = 1; i <= g_iMaxplayers; i++ )

  494.                                 if( is_user_alive( i ) && cs_get_user_team( i ) == CS_TEAM_CT )

  495.                                         iCTcount++;

  496.                        

  497.                         if( iCTcount > 1 ) {

  498.                                 ExecuteHamB( Ham_CS_RoundRespawn, id );

  499.                                

  500.                                 g_Lifes[ id ]--;

  501.                         }

  502.                 }

  503.         }

  504. }

  505.  

  506. public CmdShowlifes( id ) {

  507.         if( get_pcvar_num( g_pLifeSystem ) == 0 ) {

  508.                 ColorChat( id, RED, "%s^1 %L", g_szPrefix, id, "DR_LIFE_DISABLE" );

  509.                 return PLUGIN_HANDLED;

  510.         }

  511.        

  512.         if( g_Lifes[ id ] > 0 )

  513.                 ColorChat( id, RED, "%s^1 %L", g_szPrefix, id, "DR_LIFE_CC_COUNT", g_Lifes[ id ] );

  514.         else

  515.                 ColorChat( id, RED, "%s^1 %L", g_szPrefix, id, "DR_LIFE_CC_NO" );

  516.        

  517.         return PLUGIN_HANDLED;

  518. }

  519.  

  520. public Showlifes( id ) {

  521.         set_hudmessage( 0, 128, 0, 0.04, 0.71, 0, 2.5, 2.5, 0.5, 0.5, 3 );

  522.        

  523.         if( g_Lifes[ id ] > 0 )

  524.                 ShowSyncHudMsg( id, g_iHudSync2, "%L", id, "DR_LIFE_COUNT", g_Lifes[ id ] );

  525.         else

  526.                 ShowSyncHudMsg( id, g_iHudSync2, "%L", id, "DR_LIFE_NO" );

  527. }

  528.  

  529. // EVENTS

  530. ///////////////////////////////////////////

  531. public EventResetHud( id ) {

  532.         if( g_bEnabled && get_pcvar_num( g_pHideHuds ) && !is_user_bot( id ) ) {

  533.                 message_begin( MSG_ONE_UNRELIABLE, g_iMsgHideWeapon, _, id );

  534.                 write_byte( ( 1<<4 | 1<<5 ) );

  535.                 message_end( );

  536.                

  537.                 message_begin( MSG_ONE_UNRELIABLE, g_iMsgCrosshair, _, id );

  538.                 write_byte( 0 );

  539.                 message_end( );

  540.         }

  541. }

  542.  

  543. public EventMoney( id ) {

  544.         if( g_bEnabled && get_pcvar_num( g_pBlockMoney ) ) {

  545.                 set_pdata_int( id, 115, 0 );

  546.                

  547.                 message_begin( MSG_ONE_UNRELIABLE, g_iMsgMoney, _, id );

  548.                 write_long ( 0 );

  549.                 write_byte ( 1 );

  550.                 message_end( );

  551.         }

  552. }

  553.  

  554. public client_putinserver( id )

  555.         g_bConnected[ id ] = true;

  556.  

  557. public client_disconnect( id ) {

  558.         g_bConnected[ id ] = false;

  559.         CheckTerrorists( );

  560.        

  561.         if( !g_bRestart && is_valid_ent( g_iThinker ) )

  562.                 entity_set_float( g_iThinker, EV_FL_nextthink, get_gametime( ) + 15.0 );

  563.        

  564. #if defined FAKE_PLAYER

  565.         if( g_iFakeplayer == id ) {

  566.                 set_task( 1.5, "UpdateBot" );

  567.                

  568.                 g_iFakeplayer = 0;

  569.         }

  570. #endif

  571. }

  572.  

  573. // SEMICLIP

  574. ///////////////////////////////////////////

  575. public FwdFullPack( es, e, ent, host, flags, player, pSet ) {

  576.         if( !g_bEnabled )

  577.                 return FMRES_IGNORED;

  578.        

  579.         if( player && g_iSemiClip[ ent ] && g_iSemiClip[ host ] ) {

  580.                 set_es( es, ES_Solid, SOLID_NOT );

  581.                 set_es( es, ES_RenderMode, kRenderTransAlpha );

  582.                 set_es( es, ES_RenderAmt, 85 );

  583.         }

  584.        

  585.         return FMRES_IGNORED;

  586. }

  587.  

  588. public FwdStartFrame( ) {

  589.         if( !g_bEnabled )

  590.                 return FMRES_IGNORED;

  591.        

  592.         static iPlayers[ 32 ], iNum, iPlayer, iPlayer2, i, j;

  593.         get_players( iPlayers, iNum, "ache", "CT" );

  594.        

  595.         arrayset( g_iSemiClip, 0, 32 );

  596.        

  597.         if( iNum <= 1 )

  598.                 return FMRES_IGNORED;

  599.        

  600.         for( i = 0; i < iNum; i++ ) {

  601.                 iPlayer = iPlayers[ i ];

  602.                

  603.                 for( j = 0; j < iNum; j++ ) {

  604.                         iPlayer2 = iPlayers[ j ];

  605.                        

  606.                         if( iPlayer == iPlayer2 )

  607.                                 continue;

  608.                        

  609.                         if( g_iSemiClip[ iPlayer ] && g_iSemiClip[ iPlayer2 ] )

  610.                                 continue;

  611.                        

  612.                         if( entity_range( iPlayer, iPlayer2 ) < 128 ) {

  613.                                 g_iSemiClip[ iPlayer ]  = true;

  614.                                 g_iSemiClip[ iPlayer2 ] = true;

  615.                         }

  616.                 }

  617.         }

  618.        

  619.         for( i = 0; i < iNum; i++ ) {

  620.                 iPlayer = iPlayers[ i ];

  621.                

  622.                 set_pev( iPlayer, pev_solid, g_iSemiClip[ iPlayer ] ? SOLID_NOT : SOLID_SLIDEBOX );

  623.         }

  624.        

  625.         return FMRES_IGNORED;

  626. }

  627.  

  628. // FORWARDS

  629. ///////////////////////////////////////////

  630. public FwdHamPlayerSpawn( id ) {

  631.         if( !g_bEnabled || !is_user_alive( id ) )

  632.                 return HAM_IGNORED;

  633.        

  634.         if( get_pcvar_num( g_pBlockRadio ) ) // thanks to ConnorMcLeod for this good way :)

  635.                 set_pdata_int( id, 192, 0 );

  636.        

  637. #if defined FAKE_PLAYER

  638.         if( g_iFakeplayer == id ) {

  639.                 set_pev( id, pev_frags, -1000.0 );

  640.                 cs_set_user_deaths( id, -1000 );

  641.                

  642.                 set_pev( id, pev_effects, pev( id, pev_effects ) | EF_NODRAW );

  643.                 set_pev( id, pev_solid, SOLID_NOT );

  644.                 entity_set_origin( id, Float:{ 999999.0, 999999.0, 999999.0 } );

  645.                 dllfunc( DLLFunc_Think, id );

  646.         } else {

  647. #endif

  648.                 new CsTeams:iTeam = cs_get_user_team( id );

  649.                

  650.                 // An small delay for message

  651.                 if( get_pcvar_num( g_pLifeSystem ) != 0 && iTeam == CS_TEAM_CT )

  652.                         set_task( 0.8, "Showlifes", id );

  653.                

  654.                 strip_user_weapons( id );

  655.                 give_item( id, "weapon_knife" );

  656.                

  657.                 set_pdata_int( id, 116, 0 ); // Pickup fix by ConnorMcLeod

  658.                

  659.                 if( g_bGamerFun && iTeam == CS_TEAM_CT )

  660.                         give_item( id, "weapon_smokegrenade" );

  661.                

  662.                 if( get_pcvar_num( g_pGiveUsp ) && iTeam == CS_TEAM_CT && !g_bHauntedHouse )

  663.                         set_task( 1.0, "GiveUsp", id );

  664.  

  665. #if defined FAKE_PLAYER

  666.         }

  667. #endif

  668.        

  669.         return HAM_IGNORED;

  670. }

  671.  

  672. public GiveUsp( const id ) {

  673.         if( is_user_alive( id ) ) {

  674.                 give_item( id, "weapon_usp" );

  675.                 cs_set_user_bpammo( id, CSW_USP, 100 );

  676.         }

  677. }

  678.  

  679. public FwdGameDesc( ) {

  680.         static const GameName[ ] = "Halalfutam v3.0";

  681.        

  682.         forward_return( FMV_STRING, GameName );

  683.        

  684.         return FMRES_SUPERCEDE;

  685. }

  686.  

  687. public FwdClientKill( const id ) {

  688.         if( !g_bEnabled || !is_user_alive(id) )

  689.                 return FMRES_IGNORED;

  690.        

  691.         if( get_pcvar_num( g_pBlockKill ) || cs_get_user_team( id ) == CS_TEAM_T ) {

  692.                 client_print( id, print_center, "%L", id, "DR_BLOCK_KILL" );

  693.                 client_print( id, print_console, "%L", id, "DR_BLOCK_KILL" );

  694.                

  695.                 return FMRES_SUPERCEDE;

  696.         }

  697.        

  698.         return FMRES_IGNORED;

  699. }

  700.  

  701. public FwdImpulse_201( const id ) {

  702.         if( g_bEnabled && get_pcvar_num( g_pBlockSpray ) ) {

  703.                 if( is_user_alive( id ) )

  704.                         client_print( id, print_center, "%L", id, "DR_BLOCK_SPRAY" );

  705.                

  706.                 return PLUGIN_HANDLED_MAIN;

  707.         }

  708.        

  709.         return PLUGIN_CONTINUE;

  710. }

  711.  

  712. public FwdHamPlayerDamage( id, idInflictor, idAttacker, Float:flDamage, iDamageBits ) {

  713.         if( get_pcvar_num( g_pNoFallDmg ) )

  714.                 if( iDamageBits & DMG_FALL )

  715.                         if( get_user_team( id ) == 1 )

  716.                                 return HAM_SUPERCEDE;

  717.        

  718.         return HAM_IGNORED;

  719. }

  720.  

  721. public MsgStatusIcon( msg_id, msg_dest, id ) {

  722.         new szIcon[ 8 ];

  723.         get_msg_arg_string( 2, szIcon, 7 );

  724.        

  725.         static const BuyZone[ ] = "buyzone";

  726.        

  727.         if( equal( szIcon, BuyZone ) ) {

  728.                 set_pdata_int( id, OFFSET_BZ, get_pdata_int( id, OFFSET_BZ, 5 ) & ~( 1 << 0 ), 5 );

  729.                

  730.                 return PLUGIN_HANDLED;

  731.         }

  732.        

  733.         return PLUGIN_CONTINUE;

  734. }

  735.  

  736. public CmdRadio( id ) {

  737.         if( get_pcvar_num( g_pBlockRadio ) )

  738.                 return PLUGIN_HANDLED_MAIN;

  739.        

  740.         return PLUGIN_CONTINUE;

  741. }

  742.  

  743. public RestartRound( )

  744.         set_pcvar_num( g_pSvRestart, 1 );

  745.  

  746. // COLORCHAT

  747. /////////////////////////////////////////////

  748. ColorChat( id, Color:type, const szMessage[], {Float,Sql,Result,_}:... ) {

  749.         if( !get_playersnum( ) ) return;

  750.        

  751.         new message[ 256 ];

  752.        

  753.         switch( type ) {

  754.                 case NORMAL: message[0] = 0x01;

  755.                 case GREEN: message[0] = 0x04;

  756.                 default: message[0] = 0x03;

  757.         }

  758.        

  759.         vformat( message[ 1 ], 251, szMessage, 4 );

  760.        

  761.         message[ 192 ] = '^0';

  762.        

  763.         replace_all( message, 191, "\YEL", "^1" );

  764.         replace_all( message, 191, "\GRN", "^4" );

  765.         replace_all( message, 191, "\TEM", "^3" );

  766.        

  767.         new iTeam, ColorChange, index, MSG_Type;

  768.        

  769.         if( id ) {

  770.                 MSG_Type = MSG_ONE_UNRELIABLE;

  771.                 index = id;

  772.         } else {

  773.                 index = CC_FindPlayer();

  774.                 MSG_Type = MSG_BROADCAST;

  775.         }

  776.        

  777.         iTeam = get_user_team( index );

  778.         ColorChange = CC_ColorSelection(index, MSG_Type, type);

  779.  

  780.         CC_ShowColorMessage(index, MSG_Type, message);

  781.        

  782.         if( ColorChange )

  783.                 CC_Team_Info(index, MSG_Type, TeamName[iTeam]);

  784. }

  785.  

  786. CC_ShowColorMessage( id, type, message[] ) {

  787.         message_begin( type, g_iMsgSayText, _, id );

  788.         write_byte( id );      

  789.         write_string( message );

  790.         message_end( );

  791. }

  792.  

  793. CC_Team_Info( id, type, team[] ) {

  794.         message_begin( type, g_iMsgTeamInfo, _, id );

  795.         write_byte( id );

  796.         write_string( team );

  797.         message_end( );

  798.        

  799.         return 1;

  800. }

  801.  

  802. CC_ColorSelection( index, type, Color:Type ) {

  803.         switch( Type ) {

  804.                 case RED: return CC_Team_Info( index, type, TeamName[ 1 ] );

  805.                 case BLUE: return CC_Team_Info( index, type, TeamName[ 2 ] );

  806.         }

  807.        

  808.         return 0;

  809. }

  810.  

  811. CC_FindPlayer( ) {

  812.         for( new i = 1; i <= g_iMaxplayers; i++ )

  813.                 if( g_bConnected[ i ] )

  814.                         return i;

  815.        

  816.         return -1;

  817. }


Előre is köszi. :)

_________________
****


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


Ki van itt

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