HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1.  
  2. /* AMX Mod X
  3. * Admin Mark
  4. *
  5. * (c) Copyright 2007 by KaLoSZyFeR
  6. *
  7. * This file is provided as is (no warranties)
  8. *
  9. * DESCRIPTION
  10. * Plugin marks admin by adding on his head special helmet or beret. Size of model
  11. * is less than 60kb, so player don't have to extra download whole admin model (size: 2Mb)
  12. * like in other plugins such as KaOs' "Admin Models".
  13. *
  14. * FEATURES
  15. * - if admin is CT, he wears special helmet
  16. * - if admin is T, he wears special beret
  17. *
  18. *
  19. * CVARS
  20. * amx_admin_mark (0: OFF, 1: ON, default: 1) - disables/enables plugin
  21. *
  22. * VERSIONS
  23. * 1.0 first release
  24. * 1.1 added forcing standard models, optimized some code
  25. * 1.2 changed really smart part of code (1 word...)
  26. *
  27. */
  28.  
  29. #include <amxmodx>
  30. #include <cstrike>
  31. #include <engine>
  32.  
  33. new g_adminmarkEnt[33]
  34. new cvar_enable
  35. new MODEL_MARK[] = "models/admin_head.mdl"
  36.  
  37. static const PLUGIN_NAME[] = "Admin Mark"
  38. static const PLUGIN_AUTHOR[] = "KaLoSZyFeR"
  39. static const PLUGIN_VERSION[] = "1.2"
  40.  
  41. public plugin_init()
  42. {
  43. register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
  44. register_cvar(PLUGIN_NAME, PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER)
  45. cvar_enable = register_cvar("amx_admin_mark", "1")
  46. }
  47.  
  48. public plugin_precache()
  49. {
  50. precache_model(MODEL_MARK)
  51.  
  52. force_unmodified(force_model_samebounds,{0,0,0},{0,0,0},"models/player/gign/gign.mdl")
  53. force_unmodified(force_model_samebounds,{0,0,0},{0,0,0},"models/player/gsg9/gsg9.mdl")
  54. force_unmodified(force_model_samebounds,{0,0,0},{0,0,0},"models/player/sas/sas.mdl")
  55. force_unmodified(force_model_samebounds,{0,0,0},{0,0,0},"models/player/urban/urban.mdl")
  56. force_unmodified(force_model_samebounds,{0,0,0},{0,0,0},"models/player/vip/vip.mdl")
  57.  
  58. force_unmodified(force_model_samebounds,{0,0,0},{0,0,0},"models/player/arctic/arctic.mdl")
  59. force_unmodified(force_model_samebounds,{0,0,0},{0,0,0},"models/player/guerilla/guerilla.mdl")
  60. force_unmodified(force_model_samebounds,{0,0,0},{0,0,0},"models/player/leet/leet.mdl")
  61. force_unmodified(force_model_samebounds,{0,0,0},{0,0,0},"models/player/terror/terror.mdl")
  62. }
  63.  
  64. public client_connect(id)
  65. {
  66. if(g_adminmarkEnt[id] > 0)
  67. remove_entity(g_adminmarkEnt[id])
  68. g_adminmarkEnt[id] = 0
  69. }
  70.  
  71. public client_disconnect(id)
  72. {
  73. if(g_adminmarkEnt[id] > 0)
  74. remove_entity(g_adminmarkEnt[id])
  75. g_adminmarkEnt[id] = 0
  76. }
  77.  
  78. public client_PreThink(id)
  79. {
  80. if(!is_user_connected(id))
  81. return PLUGIN_CONTINUE
  82.  
  83. if(!is_user_alive(id) && g_adminmarkEnt[id] > 0)
  84. {
  85. remove_entity(g_adminmarkEnt[id])
  86. g_adminmarkEnt[id] = 0
  87.  
  88. return PLUGIN_CONTINUE
  89. }
  90.  
  91. if (!(get_user_flags(id) & ADMIN_KICK))
  92. {
  93. remove_entity(g_adminmarkEnt[id])
  94. g_adminmarkEnt[id] = 0
  95.  
  96. return PLUGIN_CONTINUE
  97. }
  98.  
  99. if(!get_pcvar_num(cvar_enable))
  100. return PLUGIN_CONTINUE
  101.  
  102. if(!is_user_alive(id))
  103. return PLUGIN_CONTINUE
  104.  
  105. if(g_adminmarkEnt[id] < 1)
  106. {
  107. g_adminmarkEnt[id] = create_entity("info_target")
  108. if(g_adminmarkEnt[id] > 0)
  109. {
  110. entity_set_int(g_adminmarkEnt[id], EV_INT_movetype, MOVETYPE_FOLLOW)
  111. entity_set_edict(g_adminmarkEnt[id], EV_ENT_aiment, id)
  112. entity_set_model(g_adminmarkEnt[id], MODEL_MARK)
  113. }
  114. }
  115.  
  116. if (g_adminmarkEnt[id] > 0)
  117. {
  118. new modelID = get_model_id(id)
  119. entity_set_int(g_adminmarkEnt[id], EV_INT_body, modelID)
  120. }
  121.  
  122. if(g_adminmarkEnt[id] < 1)
  123. return PLUGIN_CONTINUE
  124.  
  125. return PLUGIN_CONTINUE
  126. }
  127.  
  128. new modelname[9][] ={
  129. "gign",
  130. "gsg9",
  131. "sas",
  132. "urban",
  133. "vip",
  134. "arctic",
  135. "guerilla",
  136. "leet",
  137. "terror"
  138. }
  139.  
  140. public get_model_id(id)
  141. {
  142. new modelStr[32], iNum=32, modelID
  143. get_user_info(id,"model",modelStr,iNum)
  144.  
  145. for(new i = 0; i < 9; i++)
  146. {
  147. if (equali (modelStr, modelname[i]) )
  148. {
  149. modelID = i
  150. }
  151. }
  152. return modelID
  153. }
  154.