hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.06.18. 16:19



Jelenlévő felhasználók

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

A legtöbb felhasználó (2761 fő) 2025.01.09. 20:06-kor tartózkodott itt.

Regisztrált felhasználók: Bing [Bot], 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: Deathrun HIBA
HozzászólásElküldve:2012.05.10. 16:00 
Offline
Őstag
Avatar

Csatlakozott:2011.08.27. 23:19
Hozzászólások:1023
Megköszönt másnak: 3 alkalommal
Megköszönték neki: 11 alkalommal
Helló

Tegnap átírta nekem "fuck604" a deathrun mód-ot. Link: http://amxmodx.crys.hu/site/forum/viewtopic.php?f=9&t=4351
Az lenne vele a problémám, hogy most CT is és T is kap 3 freget minden kör után. (Eddig csak T kapott.)

SMA:
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",      "1" );

  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",   "1" );

  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( 01280-1.00.104.04.00.50.54 );

  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( 01280-1.00.104.04.00.50.54 );

  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( 01280-1.00.104.04.00.50.54 );

  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.             set_user_frags( iPlayer, get_user_frags( iPlayer ) + 3 );

  434.             

  435.             if( iLifeCvar == 2 )

  436.                 g_Lifes[ iPlayer ]++;

  437.         

  438.     }

  439.     

  440.     return PLUGIN_CONTINUE;

  441. }

  442.  

  443. public EventDeath( ) {

  444.     if( !g_bEnabled )

  445.         return PLUGIN_CONTINUE;

  446.     

  447. #if defined FAKE_PLAYER

  448.     new iVictim = read_data( 2 );

  449.     new iTeam = get_user_team( iVictim );

  450.     

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

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

  453.     

  454.     if( !get_pcvar_num( g_pLifeSystem ) )

  455.         return PLUGIN_CONTINUE;

  456. #else

  457.     if( !get_pcvar_num( g_pLifeSystem ) )

  458.         return PLUGIN_CONTINUE;

  459.     

  460.     new iVictim = read_data( 2 );

  461.     new iTeam = get_user_team( iVictim );

  462. #endif

  463.     

  464.     new iKiller = read_data( 1 );

  465.     

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

  467.         g_Lifes[iKiller]++;

  468.     

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

  470.         new iCTcount;

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

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

  473.                 iCTcount++;

  474.         }

  475.         

  476.         if( iCTcount > 1 ) {

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

  478.             

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

  480.         }

  481.         /*else

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

  483.     }

  484.     

  485.     return PLUGIN_CONTINUE;

  486. }

  487.  

  488. public fnRevivePlayer( id ) {

  489.     if( g_bConnected[ id ] ) {

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

  491.             new iCTcount;

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

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

  494.                     iCTcount++;

  495.             

  496.             if( iCTcount > 1 ) {

  497.                 ExecuteHamB( Ham_CS_RoundRespawn, id );

  498.                 

  499.                 g_Lifes[ id ]--;

  500.             }

  501.         }

  502.     }

  503. }

  504.  

  505. public CmdShowlifes( id ) {

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

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

  508.         return PLUGIN_HANDLED;

  509.     }

  510.     

  511.     if( g_Lifes[ id ] > 0 )

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

  513.     else

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

  515.     

  516.     return PLUGIN_HANDLED;

  517. }

  518.  

  519. public Showlifes( id ) {

  520.     set_hudmessage( 012800.040.7102.52.50.50.53 );

  521.     

  522.     if( g_Lifes[ id ] > 0 )

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

  524.     else

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

  526. }

  527.  

  528. // EVENTS

  529. ///////////////////////////////////////////

  530. public EventResetHud( id ) {

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

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

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

  534.         message_end( );

  535.         

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

  537.         write_byte( 0 );

  538.         message_end( );

  539.     }

  540. }

  541.  

  542. public EventMoney( id ) {

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

  544.         set_pdata_int( id, 1150 );

  545.         

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

  547.         write_long ( 0 );

  548.         write_byte ( 1 );

  549.         message_end( );

  550.     }

  551. }

  552.  

  553. public client_putinserver( id )

  554.     g_bConnected[ id ] = true;

  555.  

  556. public client_disconnect( id ) {

  557.     g_bConnected[ id ] = false;

  558.     CheckTerrorists( );

  559.     

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

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

  562.     

  563. #if defined FAKE_PLAYER

  564.     if( g_iFakeplayer == id ) {

  565.         set_task( 1.5"UpdateBot" );

  566.         

  567.         g_iFakeplayer = 0;

  568.     }

  569. #endif

  570. }

  571.  

  572. // SEMICLIP

  573. ///////////////////////////////////////////

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

  575.     if( !g_bEnabled )

  576.         return FMRES_IGNORED;

  577.     

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

  579.         set_es( es, ES_Solid, SOLID_NOT );

  580.         set_es( es, ES_RenderMode, kRenderTransAlpha );

  581.         set_es( es, ES_RenderAmt, 85 );

  582.     }

  583.     

  584.     return FMRES_IGNORED;

  585. }

  586.  

  587. public FwdStartFrame( ) {

  588.     if( !g_bEnabled )

  589.         return FMRES_IGNORED;

  590.     

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

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

  593.     

  594.     arrayset( g_iSemiClip, 032 );

  595.     

  596.     if( iNum <= 1 )

  597.         return FMRES_IGNORED;

  598.     

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

  600.         iPlayer = iPlayers[ i ];

  601.         

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

  603.             iPlayer2 = iPlayers[ j ];

  604.             

  605.             if( iPlayer == iPlayer2 )

  606.                 continue;

  607.             

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

  609.                 continue;

  610.             

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

  612.                 g_iSemiClip[ iPlayer ]    = true;

  613.                 g_iSemiClip[ iPlayer2 ]    = true;

  614.             }

  615.         }

  616.     }

  617.     

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

  619.         iPlayer = iPlayers[ i ];

  620.         

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

  622.     }

  623.     

  624.     return FMRES_IGNORED;

  625. }

  626.  

  627. // FORWARDS

  628. ///////////////////////////////////////////

  629. public FwdHamPlayerSpawn( id ) {

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

  631.         return HAM_IGNORED;

  632.     

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

  634.         set_pdata_int( id, 1920 );

  635.     

  636. #if defined FAKE_PLAYER

  637.     if( g_iFakeplayer == id ) {

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

  639.         cs_set_user_deaths( id, -1000 );

  640.         

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

  642.         set_pev( id, pev_solid, SOLID_NOT );

  643.         entity_set_origin( id, Float:{ 999999.0999999.0999999.0 } );

  644.         dllfunc( DLLFunc_Think, id );

  645.     } else {

  646. #endif

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

  648.         

  649.         // An small delay for message

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

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

  652.         

  653.         strip_user_weapons( id );

  654.         give_item( id, "weapon_knife" );

  655.         

  656.         set_pdata_int( id, 1160 ); // Pickup fix by ConnorMcLeod

  657.         

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

  659.             give_item( id, "weapon_smokegrenade" );

  660.         

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

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

  663.  

  664. #if defined FAKE_PLAYER

  665.     }

  666. #endif

  667.     

  668.     return HAM_IGNORED;

  669. }

  670.  

  671. public GiveUsp( const id ) {

  672.     if( is_user_alive( id ) ) {

  673.         give_item( id, "weapon_usp" );

  674.         cs_set_user_bpammo( id, CSW_USP, 100 );

  675.     }

  676. }

  677.  

  678. public FwdGameDesc( ) {

  679.     static const GameName[ ] = "[S][M] Deathrun";

  680.     

  681.     forward_return( FMV_STRING, GameName );

  682.     

  683.     return FMRES_SUPERCEDE;

  684. }

  685.  

  686. public FwdClientKill( const id ) {

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

  688.         return FMRES_IGNORED;

  689.     

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

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

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

  693.         

  694.         return FMRES_SUPERCEDE;

  695.     }

  696.     

  697.     return FMRES_IGNORED;

  698. }

  699.  

  700. public FwdImpulse_201( const id ) {

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

  702.         if( is_user_alive( id ) )

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

  704.         

  705.         return PLUGIN_HANDLED_MAIN;

  706.     }

  707.     

  708.     return PLUGIN_CONTINUE;

  709. }

  710.  

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

  712.     if( get_pcvar_num( g_pNoFallDmg ) )

  713.         if( iDamageBits & DMG_FALL )

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

  715.                 return HAM_SUPERCEDE;

  716.     

  717.     return HAM_IGNORED;

  718. }

  719.  

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

  721.     new szIcon[ 8 ];

  722.     get_msg_arg_string( 2, szIcon, 7 );

  723.     

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

  725.     

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

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

  728.         

  729.         return PLUGIN_HANDLED;

  730.     }

  731.     

  732.     return PLUGIN_CONTINUE;

  733. }

  734.  

  735. public CmdRadio( id ) {

  736.     if( get_pcvar_num( g_pBlockRadio ) )

  737.         return PLUGIN_HANDLED_MAIN;

  738.     

  739.     return PLUGIN_CONTINUE;

  740. }

  741.  

  742. public RestartRound( )

  743.     set_pcvar_num( g_pSvRestart, 1 );

  744.  

  745. // COLORCHAT

  746. /////////////////////////////////////////////

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

  748.     if( !get_playersnum( ) ) return;

  749.     

  750.     new message[ 256 ];

  751.     

  752.     switch( type ) {

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

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

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

  756.     }

  757.     

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

  759.     

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

  761.     

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

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

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

  765.     

  766.     new iTeam, ColorChange, index, MSG_Type;

  767.     

  768.     if( id ) {

  769.         MSG_Type = MSG_ONE_UNRELIABLE;

  770.         index = id;

  771.     } else {

  772.         index = CC_FindPlayer();

  773.         MSG_Type = MSG_BROADCAST;

  774.     }

  775.     

  776.     iTeam = get_user_team( index );

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

  778.  

  779.     CC_ShowColorMessage(index, MSG_Type, message);

  780.     

  781.     if( ColorChange )

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

  783. }

  784.  

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

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

  787.     write_byte( id );    

  788.     write_string( message );

  789.     message_end( );    

  790. }

  791.  

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

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

  794.     write_byte( id );

  795.     write_string( team );

  796.     message_end( );

  797.     

  798.     return 1;

  799. }

  800.  

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

  802.     switch( Type ) {

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

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

  805.     }

  806.     

  807.     return 0;

  808. }

  809.  

  810. CC_FindPlayer( ) {

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

  812.         if( g_bConnected[ i ] )

  813.             return i;

  814.     

  815.     return -1;

  816. } 


Egyébként az, hogy CT-is kapjon + életet az tökéletesen működik.

_________________
[kozep]t/s[/kozep]


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Deathrun HIBA
HozzászólásElküldve:2012.05.10. 16:03 
Offline
Developer
Avatar

Csatlakozott:2011.06.01. 21:11
Hozzászólások:7966
Megköszönt másnak: 295 alkalommal
Megköszönték neki: 537 alkalommal
Kód:
  1. public EventTerrsWin( ) {

  2.     if( !g_bEnabled || g_bFirstRound )

  3.         return PLUGIN_CONTINUE;

  4.    

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

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

  7.    

  8.     if( iNum <= 1 )

  9.         return PLUGIN_CONTINUE;

  10.    

  11.     new iLifeCvar = get_pcvar_num( g_pLifeSystem );

  12.    

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

  14.         iPlayer = iPlayers[ i ];

  15.        

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

  17.            

  18.             if( iLifeCvar == 2 )

  19.                 g_Lifes[ iPlayer ]++;

  20.        

  21.     }

  22.    

  23.     return PLUGIN_CONTINUE;

  24. }


-->

Kód:
  1. public EventTerrsWin( ) {

  2.     if( !g_bEnabled || g_bFirstRound )

  3.         return PLUGIN_CONTINUE;

  4.    

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

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

  7.    

  8.     if( iNum <= 1 )

  9.         return PLUGIN_CONTINUE;

  10.    

  11.     new iLifeCvar = get_pcvar_num( g_pLifeSystem );

  12.    

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

  14.         iPlayer = iPlayers[ i ];

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

  16.             {

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

  18.             }

  19.             if( iLifeCvar == 2 )

  20.                 g_Lifes[ iPlayer ]++;

  21.        

  22.     }

  23.    

  24.     return PLUGIN_CONTINUE;

  25. }

_________________
http://www.easyrankup.eu


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Deathrun HIBA
HozzászólásElküldve:2012.05.10. 16:14 
Offline
Őstag
Avatar

Csatlakozott:2011.08.27. 23:19
Hozzászólások:1023
Megköszönt másnak: 3 alkalommal
Megköszönték neki: 11 alkalommal
Köszi

_________________
[kozep]t/s[/kozep]


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