hlmod.hu

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



Jelenlévő felhasználók

Jelenleg 383 felhasználó van jelen :: 2 regisztrált, 0 rejtett és 381 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], Majestic-12 [Bot]az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása Hozzászólás a témához  [5 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Deathrun hiba
HozzászólásElküldve:2012.06.26. 13:03 
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ó

Az lenne a problémám, hogyha CT öli meg a T-t akkor nem kap +1 életet. De ha T öli meg a CT-t akkor kap +1 életet.
Úgy kéne, hogyha CT öli meg a T-t akkor is kapjon +1 életet, és ha T öli meg a CT-t akkor is kapjon +1 életet.
Persze az kapjon aki ölt... ne az aki meghalt.

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( 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.             if(cs_get_user_team(iPlayer) == CS_TEAM_T)

  433.             {

  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[ ] = "[S][M] Deathrun";

  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. }

_________________
[kozep]t/s[/kozep]


A hozzászólást 1 alkalommal szerkesztették, utoljára GhostRyder 2012.06.26. 13:08-kor.

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.06.26. 13:06 
Offline
Veterán
Avatar

Csatlakozott:2011.06.07. 15:29
Hozzászólások:1728
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 63 alkalommal
Ez scriptings : Áthelyezve.
Amúgy nincs kérdés/kérés a mondandódban, csak bejelented, hogy ilyen, meg olyan problémád van. :)


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.06.26. 13:09 
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
Tessék, javítva

_________________
[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.06.26. 13:11 
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
Ez direkt így van!

_________________
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.06.26. 13:13 
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
Lehet... De akkor is meg kéne csinálni, hogy ne így legyen...xd Megtudod esetleg? :D

Ui.: Azt tudom, hogy itt kell valamit csinálni...

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. }

  26.  

  27. public EventDeath( ) {

  28.     if( !g_bEnabled )

  29.         return PLUGIN_CONTINUE;

  30.    

  31. #if defined FAKE_PLAYER

  32.     new iVictim = read_data( 2 );

  33.     new iTeam = get_user_team( iVictim );

  34.    

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

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

  37.    

  38.     if( !get_pcvar_num( g_pLifeSystem ) )

  39.         return PLUGIN_CONTINUE;

  40. #else

  41.     if( !get_pcvar_num( g_pLifeSystem ) )

  42.         return PLUGIN_CONTINUE;

  43.    

  44.     new iVictim = read_data( 2 );

  45.     new iTeam = get_user_team( iVictim );

  46. #endif

  47.    

  48.     new iKiller = read_data( 1 );

  49.    

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

  51.         g_Lifes[iKiller]++;

  52.    

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

  54.         new iCTcount;

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

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

  57.                 iCTcount++;

  58.         }

  59.        

  60.         if( iCTcount > 1 ) {

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

  62.            

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

  64.         }

  65.         /*else

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

  67.     }

  68.    

  69.     return PLUGIN_CONTINUE;

  70. }

  71.  

  72. public fnRevivePlayer( id ) {

  73.     if( g_bConnected[ id ] ) {

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

  75.             new iCTcount;

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

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

  78.                     iCTcount++;

  79.            

  80.             if( iCTcount > 1 ) {

  81.                 ExecuteHamB( Ham_CS_RoundRespawn, id );

  82.                

  83.                 g_Lifes[ id ]--;

  84.             }

  85.         }

  86.     }

  87. }

  88.  

  89. public CmdShowlifes( id ) {

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

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

  92.         return PLUGIN_HANDLED;

  93.     }

  94.    

  95.     if( g_Lifes[ id ] > 0 )

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

  97.     else

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

  99.    

  100.     return PLUGIN_HANDLED;

  101. }

  102.  

  103. public Showlifes( id ) {

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

  105.    

  106.     if( g_Lifes[ id ] > 0 )

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

  108.     else

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

  110. }

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


Ki van itt

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