hlmod.hu
https://hlmod.hu/

Deathrun semiclip átírás...
https://hlmod.hu/viewtopic.php?f=10&t=5372
Oldal: 1 / 1

Szerző:  tson_ [2012.07.23. 00:08 ]
Hozzászólás témája:  Deathrun semiclip átírás...

Át kéne írni, hogy ne blokkolják egymást a játékosok de ne is változzanak átlátszóvá ha közel mennek egymáshoz...rendesen látszódjon a textura ha 2 player közel is van egymáshoz de ne blokkolják egymást.
Kód:
  1. /***

  2.  * Link to the plugin

  3.  *


  4.  */

  5.  

  6. #include < amxmodx >

  7. #include < engine >

  8. #include < cstrike >

  9. #include < fun >

  10. #include < fakemeta >

  11. #include < hamsandwich >

  12.  

  13. #pragma semicolon 1

  14.  

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

  16. #define FAKE_PLAYER

  17.  

  18. // Bot name

  19. #if defined FAKE_PLAYER

  20.         new const g_szBotName[ ] = "DRM Fake Player";

  21. #endif

  22.  

  23. // Messages prefix

  24. new const g_szPrefix[ ] = "[ Deathrun ]";

  25.  

  26. // Global Variables

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

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

  29.  

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

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

  32.  

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

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

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

  36.  

  37. #if defined FAKE_PLAYER

  38.         new g_iFakeplayer;

  39. #endif

  40.  

  41. // Macros

  42. #if cellbits == 32

  43.         #define OFFSET_BZ 235

  44. #else

  45.         #define OFFSET_BZ 268

  46. #endif

  47.  

  48. // Colorchat

  49. enum Color {

  50.         NORMAL = 1,

  51.         GREEN,

  52.         RED,

  53.         BLUE

  54. };

  55.  

  56. new TeamName[ ][ ] = {

  57.         "",

  58.         "TERRORIST",

  59.         "CT",

  60.         "SPECTATOR"

  61. };

  62.  

  63. // =======================================================================================

  64.  

  65. public plugin_init( ) {

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

  67.        

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

  69.        

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

  71.         g_pBlockSpray    = register_cvar( "deathrun_spray",      "1" );

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

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

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

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

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

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

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

  79.         g_pGameName      = register_cvar( "deathrun_gamename",   "1" );

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

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

  82.        

  83.         // Lets get map name...

  84.         new szMapName[ 64 ];

  85.         get_mapname( szMapName, 63 );

  86.        

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

  88.                 set_pcvar_num( g_pToggle, 1 );

  89.                

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

  91.                         g_bHauntedHouse = true;

  92.                 else {

  93.                         g_bHauntedHouse = false;

  94.                        

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

  96.                                 g_bGamerFun = true;

  97.                         else

  98.                                 g_bGamerFun = false;

  99.                 }

  100.         } else

  101.                 set_pcvar_num( g_pToggle, 0 );

  102.        

  103.         g_pSvRestart   = get_cvar_pointer( "sv_restart" );

  104.         g_pAutoBalance = get_cvar_pointer( "mp_autoteambalance" );

  105.         g_pLimitTeams  = get_cvar_pointer( "mp_limitteams" );

  106.        

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

  108.         set_cvar_string( "deathrun_version", VERSION );

  109.        

  110.         // Registering Language file

  111.         register_dictionary( "deathrun.txt" );

  112.        

  113.         // Logging Events

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

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

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

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

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

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

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

  121.        

  122.         g_bFirstRound    = true;

  123.         g_iMaxplayers    = get_maxplayers( );

  124.         g_iMsgHideWeapon = get_user_msgid( "HideWeapon" );

  125.         g_iMsgCrosshair  = get_user_msgid( "Crosshair" );

  126.         g_iMsgMoney      = get_user_msgid( "Money" );

  127.         g_iMsgSayText    = get_user_msgid( "SayText" );

  128.         g_iMsgTeamInfo   = get_user_msgid( "TeamInfo" );

  129.        

  130.         g_iHudSync       = CreateHudSyncObj( );

  131.         g_iHudSync2      = CreateHudSyncObj( );

  132.        

  133.         if( get_pcvar_num( g_pToggle ) ) {

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

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

  136.                 register_forward( FM_ClientKill,       "FwdClientKill" );

  137.                 register_impulse( 201, "FwdImpulse_201" );

  138.                

  139.                 if( get_pcvar_num( g_pGameName ) )

  140.                         register_forward( FM_GetGameDescription, "FwdGameDesc" );

  141.                

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

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

  144.                

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

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

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

  148.                

  149.                 // Terrorist Check

  150.                 g_iThinker= create_entity( "info_target" );

  151.                

  152.                 if( is_valid_ent( g_iThinker ) ) {

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

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

  155.                        

  156.                         g_bRestart = true;

  157.                        

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

  159.                        

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

  161.                 } else {

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

  163.                        

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

  165.                         set_task( 20.0, "RestartRound" );

  166.                 }

  167.                

  168.                 if( get_pcvar_num( g_pRemoveBuyZone ) ) {

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

  170.                        

  171.                         // Remove buyzone on map

  172.                         remove_entity_name( "info_map_parameters" );

  173.                         remove_entity_name( "func_buyzone" );

  174.                        

  175.                         // Create own entity to block buying

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

  177.                        

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

  179.                         DispatchSpawn( iEntity );

  180.                 }

  181.                

  182.                 if( get_pcvar_num( g_pSemiclip ) ) {

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

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

  185.                 }

  186.                

  187.                 g_bEnabled = true;

  188.                

  189.         #if defined FAKE_PLAYER

  190.                 new iEntity, iCount;

  191.                

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

  193.                         if( iCount++ > 1 )

  194.                                 break;

  195.                

  196.                 if( iCount <= 1 )

  197.                         g_iFakeplayer = -1;

  198.                

  199.                 set_task( 5.0, "UpdateBot" );

  200.                

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

  202.         #endif

  203.         } else

  204.                 g_bEnabled = false;

  205. }

  206.  

  207. // FAKEPLAYER

  208. ///////////////////////////////////////////

  209. #if defined FAKE_PLAYER

  210.         public UpdateBot( ) {

  211.                 if( g_iFakeplayer == -1 )

  212.                         return;

  213.                

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

  215.                

  216.                 if( !id ) {

  217.                         id = engfunc( EngFunc_CreateFakeClient, g_szBotName );

  218.                         if( pev_valid( id ) ) {

  219.                                 engfunc( EngFunc_FreeEntPrivateData, id );

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  234.                                 set_pev( id, pev_colormap, id );

  235.                                

  236.                                 new szMsg[ 128 ];

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

  238.                                 dllfunc( DLLFunc_ClientPutInServer, id );

  239.                                

  240.                                 cs_set_user_team( id, CS_TEAM_T );

  241.                                 ExecuteHamB( Ham_CS_RoundRespawn, id );

  242.                                

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

  244.                                 set_pev( id, pev_solid, SOLID_NOT );

  245.                                 dllfunc( DLLFunc_Think, id );

  246.                                

  247.                                 g_iFakeplayer = id;

  248.                         }

  249.                 }

  250.         }

  251.        

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

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

  254.                         return PLUGIN_HANDLED;

  255.                

  256.                 return PLUGIN_CONTINUE;

  257.         }

  258. #endif

  259.  

  260. // NEW TERRORIST

  261. ///////////////////////////////////////////

  262. public EventRandromize( ) {

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

  264.                 return PLUGIN_CONTINUE;

  265.        

  266.         g_bRandromized = true;

  267.        

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

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

  270.        

  271.         if( iNum <= 1 )

  272.                 return PLUGIN_CONTINUE;

  273.        

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

  275.                 iPlayer = iPlayers[ i ];

  276.                

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

  278.                         cs_set_user_team( iPlayer, CS_TEAM_CT );

  279.         }

  280.        

  281.         new iRandomPlayer, CsTeams:iTeam;

  282.        

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

  284.        

  285.         g_iLastTerr = iRandomPlayer;

  286.        

  287.         iTeam = cs_get_user_team( iRandomPlayer );

  288.        

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

  290.                 cs_set_user_team(iRandomPlayer, CS_TEAM_T);

  291.                

  292.                 new szName[ 32 ];

  293.                 get_user_name( iRandomPlayer, szName, 31 );

  294.                

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

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

  297.                

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

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

  300.         } else {

  301.                 g_bRandromized = false;

  302.                 EventRandromize( );

  303.         }

  304.        

  305.         return PLUGIN_CONTINUE;

  306. }

  307.  

  308. // NEW ROUND

  309. ///////////////////////////////////////////

  310. public EventRoundStart( ) {

  311.         if( !g_bEnabled )

  312.                 return PLUGIN_CONTINUE;

  313.        

  314.         g_bRandromized  = false;

  315.         g_bStarting     = false;

  316.        

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

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

  319.        

  320.         if( iNum <= 1 )

  321.                 return PLUGIN_CONTINUE;

  322.        

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

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

  325.                

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

  327.                         iRealPlayers++;

  328.         }

  329.        

  330.         if( iRealPlayers <= 1 ) {

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

  332.                

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

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

  335.                

  336.                 return PLUGIN_CONTINUE;

  337.         }

  338.        

  339.         set_pcvar_num( g_pAutoBalance, 0 );

  340.         set_pcvar_num( g_pLimitTeams, 0 );

  341.        

  342.         if( g_bFirstRound ) {

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

  344.                

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

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

  347.                        

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

  349.                 }

  350.                

  351.                 if( is_valid_ent( g_iThinker ) ) {

  352.                         g_bRestart = true;

  353.                        

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

  355.                 } else

  356.                         set_task( 9.0, "RestartRound" );

  357.                

  358.                 g_bStarting = true;

  359.                 g_bFirstRound = false;

  360.         }

  361.        

  362.         return PLUGIN_CONTINUE;

  363. }

  364.  

  365. // CHECK TERRORIST

  366. ///////////////////////////////////////////

  367. public FwdThinker( iEntity ) {

  368.         if( g_bRestart ) {

  369.                 g_bRestart = false;

  370.                

  371.                 RestartRound( );

  372.         } else

  373.                 CheckTerrorists( );

  374.        

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

  376. }

  377.  

  378. public CheckTerrorists( ) {

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

  380.                 return PLUGIN_CONTINUE;

  381.        

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

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

  384.        

  385.         if( iNum <= 1 )

  386.                 return PLUGIN_CONTINUE;

  387.        

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

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

  390.                

  391.                 if( iTeam == CS_TEAM_T )

  392.                         iTerrors++;

  393.                

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

  395.                         iRealPlayers++;

  396.         }

  397.        

  398.         if( iRealPlayers <= 1 ) {

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

  400.                

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

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

  403.                

  404.                 return PLUGIN_CONTINUE;

  405.         }

  406.        

  407.         if( iTerrors == 0 ) {

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

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

  410.                        

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

  412.                                 user_silentkill( iPlayers[ i ] );

  413.                 }

  414.                

  415.                 set_task( 0.5, "EventRandromize" );

  416.         }

  417.        

  418.         return PLUGIN_CONTINUE;

  419. }

  420.  

  421. // LIFE SYSTEM

  422. ///////////////////////////////////////////

  423. public EventTerrsWin( ) {

  424.         if( !g_bEnabled || g_bFirstRound )

  425.                 return PLUGIN_CONTINUE;

  426.        

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

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

  429.        

  430.         if( iNum <= 1 )

  431.                 return PLUGIN_CONTINUE;

  432.        

  433.         new iLifeCvar = get_pcvar_num( g_pLifeSystem );

  434.        

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

  436.                 iPlayer = iPlayers[ i ];

  437.                

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

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

  440.                        

  441.                         if( iLifeCvar == 2 )

  442.                                 g_Lifes[ iPlayer ]++;

  443.                 }

  444.         }

  445.        

  446.         return PLUGIN_CONTINUE;

  447. }

  448.  

  449. public EventDeath( ) {

  450.         if( !g_bEnabled )

  451.                 return PLUGIN_CONTINUE;

  452.        

  453. #if defined FAKE_PLAYER

  454.         new iVictim = read_data( 2 );

  455.         new iTeam = get_user_team( iVictim );

  456.        

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

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

  459.        

  460.         if( !get_pcvar_num( g_pLifeSystem ) )

  461.                 return PLUGIN_CONTINUE;

  462. #else

  463.         if( !get_pcvar_num( g_pLifeSystem ) )

  464.                 return PLUGIN_CONTINUE;

  465.        

  466.         new iVictim = read_data( 2 );

  467.         new iTeam = get_user_team( iVictim );

  468. #endif

  469.        

  470.         new iKiller = read_data( 1 );

  471.        

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

  473.                 g_Lifes[iKiller]++;

  474.        

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

  476.                 new iCTcount;

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

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

  479.                                 iCTcount++;

  480.                 }

  481.                

  482.                 if( iCTcount > 1 ) {

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

  484.                        

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

  486.                 }

  487.                 /*else

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

  489.         }

  490.        

  491.         return PLUGIN_CONTINUE;

  492. }

  493.  

  494. public fnRevivePlayer( id ) {

  495.         if( g_bConnected[ id ] ) {

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

  497.                         new iCTcount;

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

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

  500.                                         iCTcount++;

  501.                        

  502.                         if( iCTcount > 1 ) {

  503.                                 ExecuteHamB( Ham_CS_RoundRespawn, id );

  504.                                

  505.                                 g_Lifes[ id ]--;

  506.                         }

  507.                 }

  508.         }

  509. }

  510.  

  511. public CmdShowlifes( id ) {

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

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

  514.                 return PLUGIN_HANDLED;

  515.         }

  516.        

  517.         if( g_Lifes[ id ] > 0 )

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

  519.         else

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

  521.        

  522.         return PLUGIN_HANDLED;

  523. }

  524.  

  525. public Showlifes( id ) {

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

  527.        

  528.         if( g_Lifes[ id ] > 0 )

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

  530.         else

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

  532. }

  533.  

  534. // EVENTS

  535. ///////////////////////////////////////////

  536. public EventResetHud( id ) {

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

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

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

  540.                 message_end( );

  541.                

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

  543.                 write_byte( 0 );

  544.                 message_end( );

  545.         }

  546. }

  547.  

  548. public EventMoney( id ) {

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

  550.                 set_pdata_int( id, 115, 0 );

  551.                

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

  553.                 write_long ( 0 );

  554.                 write_byte ( 1 );

  555.                 message_end( );

  556.         }

  557. }

  558.  

  559. public client_putinserver( id )

  560.         g_bConnected[ id ] = true;

  561.  

  562. public client_disconnect( id ) {

  563.         g_bConnected[ id ] = false;

  564.         CheckTerrorists( );

  565.        

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

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

  568.        

  569. #if defined FAKE_PLAYER

  570.         if( g_iFakeplayer == id ) {

  571.                 set_task( 1.5, "UpdateBot" );

  572.                

  573.                 g_iFakeplayer = 0;

  574.         }

  575. #endif

  576. }

  577.  

  578. // SEMICLIP

  579. ///////////////////////////////////////////

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

  581.         if( !g_bEnabled )

  582.                 return FMRES_IGNORED;

  583.        

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

  585.                 set_es( es, ES_Solid, SOLID_NOT );

  586.                 set_es( es, ES_RenderMode, kRenderTransAlpha );

  587.                 set_es( es, ES_RenderAmt, 85 );

  588.         }

  589.        

  590.         return FMRES_IGNORED;

  591. }

  592.  

  593. public FwdStartFrame( ) {

  594.         if( !g_bEnabled )

  595.                 return FMRES_IGNORED;

  596.        

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

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

  599.        

  600.         arrayset( g_iSemiClip, 0, 32 );

  601.        

  602.         if( iNum <= 1 )

  603.                 return FMRES_IGNORED;

  604.        

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

  606.                 iPlayer = iPlayers[ i ];

  607.                

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

  609.                         iPlayer2 = iPlayers[ j ];

  610.                        

  611.                         if( iPlayer == iPlayer2 )

  612.                                 continue;

  613.                        

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

  615.                                 continue;

  616.                        

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

  618.                                 g_iSemiClip[ iPlayer ]  = true;

  619.                                 g_iSemiClip[ iPlayer2 ] = true;

  620.                         }

  621.                 }

  622.         }

  623.        

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

  625.                 iPlayer = iPlayers[ i ];

  626.                

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

  628.         }

  629.        

  630.         return FMRES_IGNORED;

  631. }

  632.  

  633. // FORWARDS

  634. ///////////////////////////////////////////

  635. public FwdHamPlayerSpawn( id ) {

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

  637.                 return HAM_IGNORED;

  638.        

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

  640.                 set_pdata_int( id, 192, 0 );

  641.        

  642. #if defined FAKE_PLAYER

  643.         if( g_iFakeplayer == id ) {

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

  645.                 cs_set_user_deaths( id, -1000 );

  646.                

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

  648.                 set_pev( id, pev_solid, SOLID_NOT );

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

  650.                 dllfunc( DLLFunc_Think, id );

  651.         } else {

  652. #endif

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

  654.                

  655.                 // An small delay for message

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

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

  658.                

  659.                 strip_user_weapons( id );

  660.                 give_item( id, "weapon_knife" );

  661.                

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

  663.                

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

  665.                         give_item( id, "weapon_smokegrenade" );

  666.                

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

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

  669.  

  670. #if defined FAKE_PLAYER

  671.         }

  672. #endif

  673.        

  674.         return HAM_IGNORED;

  675. }

  676.  

  677. public GiveUsp( const id ) {

  678.         if( is_user_alive( id ) ) {

  679.                 give_item( id, "weapon_usp" );

  680.                 cs_set_user_bpammo( id, CSW_USP, 100 );

  681.         }

  682. }

  683.  

  684. public FwdGameDesc( ) {

  685.         static const GameName[ ] = "Deathrun v3.0";

  686.        

  687.         forward_return( FMV_STRING, GameName );

  688.        

  689.         return FMRES_SUPERCEDE;

  690. }

  691.  

  692. public FwdClientKill( const id ) {

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

  694.                 return FMRES_IGNORED;

  695.        

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

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

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

  699.                

  700.                 return FMRES_SUPERCEDE;

  701.         }

  702.        

  703.         return FMRES_IGNORED;

  704. }

  705.  

  706. public FwdImpulse_201( const id ) {

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

  708.                 if( is_user_alive( id ) )

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

  710.                

  711.                 return PLUGIN_HANDLED_MAIN;

  712.         }

  713.        

  714.         return PLUGIN_CONTINUE;

  715. }

  716.  

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

  718.         if( get_pcvar_num( g_pNoFallDmg ) )

  719.                 if( iDamageBits & DMG_FALL )

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

  721.                                 return HAM_SUPERCEDE;

  722.        

  723.         return HAM_IGNORED;

  724. }

  725.  

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

  727.         new szIcon[ 8 ];

  728.         get_msg_arg_string( 2, szIcon, 7 );

  729.        

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

  731.        

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

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

  734.                

  735.                 return PLUGIN_HANDLED;

  736.         }

  737.        

  738.         return PLUGIN_CONTINUE;

  739. }

  740.  

  741. public CmdRadio( id ) {

  742.         if( get_pcvar_num( g_pBlockRadio ) )

  743.                 return PLUGIN_HANDLED_MAIN;

  744.        

  745.         return PLUGIN_CONTINUE;

  746. }

  747.  

  748. public RestartRound( )

  749.         set_pcvar_num( g_pSvRestart, 1 );

  750.  

  751. // COLORCHAT

  752. /////////////////////////////////////////////

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

  754.         if( !get_playersnum( ) ) return;

  755.        

  756.         new message[ 256 ];

  757.        

  758.         switch( type ) {

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

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

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

  762.         }

  763.        

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

  765.        

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

  767.        

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

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

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

  771.        

  772.         new iTeam, ColorChange, index, MSG_Type;

  773.        

  774.         if( id ) {

  775.                 MSG_Type = MSG_ONE_UNRELIABLE;

  776.                 index = id;

  777.         } else {

  778.                 index = CC_FindPlayer();

  779.                 MSG_Type = MSG_BROADCAST;

  780.         }

  781.        

  782.         iTeam = get_user_team( index );

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

  784.  

  785.         CC_ShowColorMessage(index, MSG_Type, message);

  786.        

  787.         if( ColorChange )

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

  789. }

  790.  

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

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

  793.         write_byte( id );      

  794.         write_string( message );

  795.         message_end( );

  796. }

  797.  

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

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

  800.         write_byte( id );

  801.         write_string( team );

  802.         message_end( );

  803.        

  804.         return 1;

  805. }

  806.  

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

  808.         switch( Type ) {

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

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

  811.         }

  812.        

  813.         return 0;

  814. }

  815.  

  816. CC_FindPlayer( ) {

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

  818.                 if( g_bConnected[ i ] )

  819.                         return i;

  820.        

  821.         return -1;

  822. }


Virtual aztmondta írjam át ezt:
Kód:
  1.                 set_es( es, ES_RenderAmt, 85 );

erre:
Kód:
  1.                 set_es( es, ES_RenderAmt, 0 );

DE sajnos így sem akar működni...

Szerző:  kiki [2012.07.24. 20:36 ]
Hozzászólás témája:  Re: Deathrun semiclip átírás...

set_es( es, ES_RenderMode, kRenderTransAlpha );
set_es( es, ES_RenderAmt, 85 );

->

//set_es( es, ES_RenderMode, kRenderTransAlpha );
// set_es( es, ES_RenderAmt, 85 );

Szerző:  eroscsavo [2012.07.27. 14:43 ]
Hozzászólás témája:  Re: Deathrun semiclip átírás...

De van erre kulon plugin csak nem tudom mi a neve pontosan.A plugin azt tartalmazza hogya játékosok át mehetnek 1máson zm szervereken gyakran látom.

Szerző:  kiki [2012.07.27. 14:47 ]
Hozzászólás témája:  Re: Deathrun semiclip átírás...

eroscsavo írta:
De van erre kulon plugin csak nem tudom mi a neve pontosan.A plugin azt tartalmazza hogya játékosok át mehetnek 1máson zm szervereken gyakran látom.


Már megválaszoltam és működik, nem kell az off!

Szerző:  eroscsavo [2012.07.27. 14:49 ]
Hozzászólás témája:  Re: Deathrun semiclip átírás...

NEM off segiteni akartam bocs

Szerző:  kiki [2012.07.27. 14:52 ]
Hozzászólás témája:  Re: Deathrun semiclip átírás...

Mint látod ebbe is benne van, ő a rendering értéket akarta leszedni...

Szerző:  eroscsavo [2012.07.27. 15:48 ]
Hozzászólás témája:  Re: Deathrun semiclip átírás...

:)) ez nekem magas haggyuk is mondtam h bocs és az a lényeg hogy sikerült megoldani

Oldal: 1 / 1 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/