HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include < amxmodx >
  2. #include < fakemeta >
  3. #include < hamsandwich >
  4.  
  5. #define PLUGIN "3D Rank"
  6. #define VERSION "0.3"
  7. #define AUTHOR "Payampap"
  8.  
  9. #define FLAG ADMIN_KICK
  10.  
  11. new const gsz_RankModel [ ] = "models/3dranks.mdl"
  12.  
  13. new gp_AdminRank
  14. new gp_BotRank
  15.  
  16. new gi_PlayerRank [ 33 ]
  17.  
  18. public plugin_init ( )
  19. {
  20. register_plugin(PLUGIN,VERSION,AUTHOR)
  21.  
  22. RegisterHam ( Ham_Killed, "player", "player_killed", 1 )
  23. RegisterHam (Ham_Spawn, "player", "player_spawned", 1)
  24.  
  25. gp_AdminRank = register_cvar ( "3drank_admin", "0" )
  26. gp_BotRank = register_cvar ( "3drank_bot", "0" )
  27. }
  28.  
  29. public plugin_precache ( )
  30. {
  31. precache_model ( gsz_RankModel )
  32. }
  33.  
  34. public client_putinserver ( index )
  35. {
  36. create_rank_entity ( index )
  37. }
  38.  
  39. public create_rank_entity ( index )
  40. {
  41. gi_PlayerRank [ index ] = engfunc ( EngFunc_CreateNamedEntity, engfunc ( EngFunc_AllocString, "info_target" ) )
  42.  
  43. set_pev ( gi_PlayerRank [ index ], pev_movetype, MOVETYPE_FOLLOW )
  44. set_pev ( gi_PlayerRank [ index ], pev_aiment, index )
  45. set_pev ( gi_PlayerRank [ index ], pev_rendermode, kRenderNormal )
  46. set_pev ( gi_PlayerRank [ index ], pev_renderfx, kRenderFxGlowShell )
  47. set_pev ( gi_PlayerRank [ index ], pev_renderamt, 5.0 )
  48.  
  49. engfunc ( EngFunc_SetModel, gi_PlayerRank [ index ], gsz_RankModel )
  50. }
  51.  
  52. public player_killed ( victim, attacker, gid )
  53. {
  54. if ( is_valid_player ( attacker ) )
  55. {
  56. check_rank ( attacker )
  57. }
  58. }
  59.  
  60. public player_spawned ( spawned )
  61. {
  62. if ( is_valid_player ( spawned ) )
  63. {
  64. check_rank ( spawned )
  65. }
  66. }
  67.  
  68. public check_rank ( index )
  69. {
  70. new PlayerRank = get_player_rank ( index )
  71.  
  72. set_pev ( gi_PlayerRank [ index ], pev_body, PlayerRank )
  73.  
  74. switch ( PlayerRank )
  75. {
  76. case 1, 2, 3:
  77. {
  78. set_pev ( gi_PlayerRank [ index ], pev_rendercolor, { 255.0, 255.0, 255.0 } )
  79. }
  80.  
  81. case 12:
  82. {
  83. set_pev ( gi_PlayerRank [ index ], pev_rendercolor, { 255.0, 0.0, 0.0 } )
  84. }
  85.  
  86. default:
  87. {
  88. set_pev ( gi_PlayerRank [ index ], pev_rendercolor, { 255.0, 255.0, 0.0 } )
  89. }
  90. }
  91. }
  92.  
  93. stock get_player_rank ( index )
  94. {
  95. if ( get_pcvar_num ( gp_AdminRank ) && get_user_flags ( index ) & FLAG )
  96. {
  97. return 11
  98. }
  99.  
  100. if ( get_pcvar_num ( gp_BotRank ) && is_user_bot ( index ) )
  101. {
  102. return 12
  103. }
  104.  
  105. new PlayerFrags = get_user_frags ( index )
  106.  
  107. switch ( PlayerFrags )
  108. {
  109. case 0..5:
  110. {
  111. return 1
  112. }
  113.  
  114. case 6..11:
  115. {
  116. return 2
  117. }
  118.  
  119. case 12..18:
  120. {
  121. return 3
  122. }
  123.  
  124. case 19..26:
  125. {
  126. return 4
  127. }
  128.  
  129. case 27..35:
  130. {
  131. return 5
  132. }
  133.  
  134. case 36..45:
  135. {
  136. return 6
  137. }
  138.  
  139. case 46..56:
  140. {
  141. return 7
  142. }
  143.  
  144. case 57..68:
  145. {
  146. return 8
  147. }
  148.  
  149. case 69..81:
  150. {
  151. return 9
  152. }
  153.  
  154. default:
  155. {
  156. return 10
  157. }
  158. }
  159.  
  160. return 0
  161. }
  162.  
  163. stock is_valid_player ( index )
  164. {
  165. if ( is_user_connected ( index ) && 1 <= index <= 32 )
  166. {
  167. return true
  168. }
  169.  
  170. return false
  171. }
  172.