hlmod.hu
https://hlmod.hu/

Team bolck
https://hlmod.hu/viewtopic.php?f=29&t=22713
Oldal: 1 / 1

Szerző:  rolika95 [2015.11.19. 21:45 ]
Hozzászólás témája:  Team bolck

Sziasztok
valaki tudna adni egy olyan csapatárs blokolot ami közelről és mesziről is átlehet rajta látni.
http://kepfeltoltes.hu/view/151118/csap ... es.hu_.png
Ilyenre gondoltam.

Szerző:  SmaCk [2015.11.20. 12:23 ]
Hozzászólás témája:  Re: Team bolck

Áthaladó Játékos

SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <fakemeta>
  3.  
  4. #pragma semicolon 1
  5.  
  6. #define DISTANCE 120.0
  7. #define UPDATE_FREQ 0.2
  8.  
  9. new bool:g_bSemiclip[33][33];
  10. new bool:g_bHasSemiclip[33];
  11. new bool:g_bSemiclipEnabled;
  12.  
  13. new g_iTaskId;
  14. new g_iForwardId[3];
  15. new g_iMaxPlayers;
  16. new g_iCvar[3];
  17.  
  18. public plugin_init( )
  19. {
  20. register_plugin( "(Team-)Semiclip", "1.0", "SchlumPF*" );
  21.  
  22. g_iCvar[0] = register_cvar( "semiclip_enabled", "1" );
  23. g_iCvar[1] = register_cvar( "semiclip_teamclip", "1" );
  24. g_iCvar[2] = register_cvar( "semiclip_transparancy", "0" );
  25.  
  26. register_forward( FM_Think, "fwdThink" );
  27. register_forward( FM_ClientCommand, "fwdClientCommand" );
  28.  
  29. if( get_pcvar_num( g_iCvar[0] ) )
  30. {
  31. g_iForwardId[0] = register_forward( FM_PlayerPreThink, "fwdPlayerPreThink" );
  32. g_iForwardId[1] = register_forward( FM_PlayerPostThink, "fwdPlayerPostThink" );
  33. g_iForwardId[2] = register_forward( FM_AddToFullPack, "fwdAddToFullPack_Post", 1 );
  34.  
  35. g_bSemiclipEnabled = true;
  36. }
  37. else
  38. g_bSemiclipEnabled = false;
  39.  
  40. g_iMaxPlayers = get_maxplayers( );
  41.  
  42. new ent = engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, "info_target" ) );
  43. set_pev( ent, pev_classname, "task_semiclip" );
  44. set_pev( ent, pev_nextthink, get_gametime( ) + 1.01 );
  45. g_iTaskId = ent;
  46. }
  47.  
  48. public fwdPlayerPreThink( plr )
  49. {
  50. static id;
  51.  
  52. if( is_user_alive( plr ) )
  53. {
  54. for( id = 1 ; id <= g_iMaxPlayers ; id++ )
  55. {
  56. if( pev( id, pev_solid ) == SOLID_SLIDEBOX && g_bSemiclip[plr][id] && id != plr )
  57. {
  58. set_pev( id, pev_solid, SOLID_NOT );
  59. g_bHasSemiclip[id] = true;
  60. }
  61. }
  62. }
  63. }
  64.  
  65. public fwdPlayerPostThink( plr )
  66. {
  67. static id;
  68.  
  69. if( is_user_alive( plr ) )
  70. {
  71. for( id = 1 ; id <= g_iMaxPlayers ; id++ )
  72. {
  73. if( g_bHasSemiclip[id] )
  74. {
  75. set_pev( id, pev_solid, SOLID_SLIDEBOX );
  76. g_bHasSemiclip[id] = false;
  77. }
  78. }
  79. }
  80. }
  81.  
  82. public fwdThink( ent )
  83. {
  84. static i, j;
  85. static team[33];
  86. static Float:origin[33][3];
  87.  
  88. if( ent == g_iTaskId )
  89. {
  90. if( get_pcvar_num( g_iCvar[0] ) )
  91. {
  92. for( i = 1 ; i <= g_iMaxPlayers ; i++ )
  93. {
  94. if( is_user_alive( i ) )
  95. {
  96. pev( i, pev_origin, origin[i] );
  97.  
  98. if( get_pcvar_num( g_iCvar[1] ) )
  99. team[i] = get_user_team( i );
  100.  
  101. for( j = 1 ; j <= g_iMaxPlayers ; j++ )
  102. {
  103. if( is_user_alive( j ) )
  104. {
  105. if( get_pcvar_num( g_iCvar[1] ) && team[i] != team[j] )
  106. {
  107. g_bSemiclip[i][j] = false;
  108. g_bSemiclip[j][i] = false;
  109.  
  110. }
  111. else if( floatabs( origin[i][0] - origin[j][0] ) < DISTANCE && floatabs( origin[i][1] - origin[j][1] ) < DISTANCE && floatabs( origin[i][2] - origin[j][2] ) < ( DISTANCE * 2 ) )
  112. {
  113. g_bSemiclip[i][j] = true;
  114. g_bSemiclip[j][i] = true;
  115. }
  116. else
  117. {
  118. g_bSemiclip[i][j] = false;
  119. g_bSemiclip[j][i] = false;
  120. }
  121. }
  122. }
  123. }
  124. }
  125. }
  126.  
  127. set_pev( ent, pev_nextthink, get_gametime( ) + UPDATE_FREQ );
  128. }
  129. }
  130.  
  131. public fwdAddToFullPack_Post( es_handle, e, ent, host, hostflags, player, pset )
  132. {
  133. if( player )
  134. {
  135. if( g_bSemiclip[host][ent] )
  136. {
  137. set_es( es_handle, ES_Solid, SOLID_NOT ); // makes semiclip flawless
  138.  
  139. if( get_pcvar_num( g_iCvar[2] ) == 1 )
  140. {
  141. set_es( es_handle, ES_RenderMode, kRenderTransAlpha );
  142. set_es( es_handle, ES_RenderAmt, 85 );
  143. }
  144. else if( get_pcvar_num( g_iCvar[2] ) == 2 )
  145. {
  146. set_es( es_handle, ES_Effects, EF_NODRAW );
  147. set_es( es_handle, ES_Solid, SOLID_NOT );
  148. }
  149. }
  150. }
  151. }
  152.  
  153. // is there a better way to detect changings of g_iCvar[0]?
  154. public fwdClientCommand( plr )
  155. {
  156. // use the forwards just when needed, for good performance
  157. if( !get_pcvar_num( g_iCvar[0] ) && g_bSemiclipEnabled )
  158. {
  159. unregister_forward( FM_PlayerPreThink, g_iForwardId[0] );
  160. unregister_forward( FM_PlayerPostThink, g_iForwardId[1] );
  161. unregister_forward( FM_AddToFullPack, g_iForwardId[2], 1 );
  162.  
  163. g_bSemiclipEnabled = false;
  164. }
  165. else if( get_pcvar_num( g_iCvar[0] ) && !g_bSemiclipEnabled )
  166. {
  167. g_iForwardId[0] = register_forward( FM_PlayerPreThink, "fwdPlayerPreThink" );
  168. g_iForwardId[1] = register_forward( FM_PlayerPostThink, "fwdPlayerPostThink" );
  169. g_iForwardId[2] = register_forward( FM_AddToFullPack, "fwdAddToFullPack_Post", 1 );
  170.  
  171. g_bSemiclipEnabled = true;
  172. }
  173. }

Szerző:  rolika95 [2015.11.20. 15:59 ]
Hozzászólás témája:  Re: Team bolck

Köszönöm szépen :)

Ez se olyan amilyet kértem :)
Amien a képen van olyat tudtok adni?

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