HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <zombieplague>
  3. #include <fakemeta>
  4. #include <fun>
  5.  
  6. new g_ent_playermodel[33];
  7. new g_ent_weaponmodel[33];
  8. new g_currentweapon[33];
  9. new g_pcvar_active;
  10.  
  11. new MenuKeys = (1 << 0) + (1 << 1) + (1 << 2) + (1 << 3) + (1 << 4) + (1 << 5) + (1 << 6) + (1 << 7) + (1 << 8)+ (1 << 9)
  12. new BuyMenuBodyText[256]
  13.  
  14. public plugin_init()
  15. {
  16. register_plugin("[ZP] Select Models", "1.2", "Anggara_nothing")
  17. g_pcvar_active = register_cvar("zp_sem_enable", "1")
  18. register_message(get_user_msgid("CurWeapon"), "message_cur_weapon")
  19. SetupSelectMenu()
  20. register_clcmd("say /models", "ClCmdSelectModel")
  21. register_menucmd(register_menuid("\rSelect your model:"), MenuKeys, "SelectIt")
  22. }
  23.  
  24. public plugin_precache()
  25. {
  26. // Change your models here.
  27. engfunc(EngFunc_PrecacheModel, "models/player/arctic/arctic.mdl")
  28. engfunc(EngFunc_PrecacheModel, "models/player/gign/gign.mdl")
  29. engfunc(EngFunc_PrecacheModel, "models/player/gsg9/gsg9.mdl")
  30. engfunc(EngFunc_PrecacheModel, "models/player/guerilla/guerilla.mdl")
  31. engfunc(EngFunc_PrecacheModel, "models/player/leet/leet.mdl")
  32. engfunc(EngFunc_PrecacheModel, "models/player/sas/sas.mdl")
  33. engfunc(EngFunc_PrecacheModel, "models/player/terror/terror.mdl")
  34. engfunc(EngFunc_PrecacheModel, "models/player/urban/urban.mdl")
  35. }
  36.  
  37. // Current Weapon info
  38. public message_cur_weapon(msg_id, msg_dest, msg_entity)
  39. {
  40. // Player not alive or not an active weapon
  41. if (!is_user_alive(msg_entity) || get_msg_arg_int(1) != 1)
  42. return;
  43.  
  44. // Get weapon id
  45. static weapon
  46. weapon = get_msg_arg_int(2)
  47.  
  48. // Store weapon id for reference
  49. g_currentweapon[msg_entity] = weapon
  50.  
  51. // Replace weapon models with custom ones
  52. fm_set_weaponmodel_ent(msg_entity)
  53. }
  54.  
  55. // User Infected forward
  56. public zp_user_infected_post(id, infector)
  57. {
  58. // remove the glow.
  59. set_user_rendering(id, kRenderFxNone, 0,0,0,kRenderNormal, 255)
  60.  
  61. // Remove Custom Model Entities
  62. fm_remove_model_ents(id)
  63. }
  64.  
  65. public ClCmdSelectModel(id)
  66. {
  67. if(zp_get_user_zombie(id) || zp_get_user_nemesis(id) || zp_get_user_survivor(id))
  68. {
  69. client_print(id, print_chat, "Ez embernek van.")
  70.  
  71. set_hudmessage(200, 155, 0, -1.0, 0.50, 0, 6.0, 8.0, 0.3, 0.5, 3)
  72. show_hudmessage(id, "Ez embernek van.")
  73. return PLUGIN_HANDLED;
  74. }
  75. else if(!get_pcvar_num(g_pcvar_active))
  76. {
  77. set_hudmessage(200, 155, 0, -1.0, 0.50, 0, 6.0, 8.0, 0.3, 0.5, 3)
  78. show_hudmessage(id, "Ez a kepesseg ki van kapcsolva.")
  79. return PLUGIN_HANDLED;
  80. }
  81. else if(!is_user_alive(id))
  82. {
  83. client_print(id, print_chat, "Te kovetelmeny miatt hasznalod ezt.")
  84.  
  85. set_hudmessage(200, 155, 0, -1.0, 0.50, 0, 6.0, 8.0, 0.3, 0.5, 3)
  86. show_hudmessage(id, "Te kovetelmeny miatt hasznalod ezt.")
  87. return PLUGIN_HANDLED;
  88. }
  89. else
  90. {
  91. SetupSelectMenu()
  92. show_menu(id, MenuKeys, BuyMenuBodyText)
  93. }
  94. return PLUGIN_CONTINUE;
  95. }
  96.  
  97. public SelectIt(id, key)
  98. {
  99. switch (key)
  100. {
  101. case 0:
  102. {
  103. fm_remove_model_ents(id)
  104. if (!pev_valid(g_ent_playermodel[id]))
  105. {
  106. g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
  107. if (!pev_valid(g_ent_playermodel[id])) return ;
  108.  
  109. set_user_rendering(id, kRenderFxNone, 255, 255, 255, kRenderTransTexture, 1)
  110. set_pev(g_ent_playermodel[id], pev_classname, "player_model")
  111. set_pev(g_ent_playermodel[id], pev_movetype, MOVETYPE_FOLLOW)
  112. set_pev(g_ent_playermodel[id], pev_aiment, id)
  113. set_pev(g_ent_playermodel[id], pev_owner, id)
  114. // and change this.
  115. engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/arctic/arctic.mdl")
  116. fm_set_weaponmodel_ent(id)
  117. }
  118. }
  119. case 1:
  120. {
  121. fm_remove_model_ents(id)
  122. if (!pev_valid(g_ent_playermodel[id]))
  123. {
  124. g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
  125. if (!pev_valid(g_ent_playermodel[id])) return ;
  126.  
  127. set_user_rendering(id, kRenderFxNone, 255, 255, 255, kRenderTransTexture, 1)
  128. set_pev(g_ent_playermodel[id], pev_classname, "player_model")
  129. set_pev(g_ent_playermodel[id], pev_movetype, MOVETYPE_FOLLOW)
  130. set_pev(g_ent_playermodel[id], pev_aiment, id)
  131. set_pev(g_ent_playermodel[id], pev_owner, id)
  132. // and change this.
  133. engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/gign/gign.mdl")
  134. fm_set_weaponmodel_ent(id)
  135. }
  136. }
  137. case 2:
  138. {
  139. fm_remove_model_ents(id)
  140. if (!pev_valid(g_ent_playermodel[id]))
  141. {
  142. g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
  143. if (!pev_valid(g_ent_playermodel[id])) return ;
  144.  
  145. set_user_rendering(id, kRenderFxNone, 255, 255, 255, kRenderTransTexture, 1)
  146. set_pev(g_ent_playermodel[id], pev_classname, "player_model")
  147. set_pev(g_ent_playermodel[id], pev_movetype, MOVETYPE_FOLLOW)
  148. set_pev(g_ent_playermodel[id], pev_aiment, id)
  149. set_pev(g_ent_playermodel[id], pev_owner, id)
  150. // and change this.
  151. engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/gsg9/gsg9.mdl")
  152. fm_set_weaponmodel_ent(id)
  153. }
  154. }
  155. case 3:
  156. {
  157. fm_remove_model_ents(id)
  158. if (!pev_valid(g_ent_playermodel[id]))
  159. {
  160. g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
  161. if (!pev_valid(g_ent_playermodel[id])) return ;
  162.  
  163. set_user_rendering(id, kRenderFxNone, 255, 255, 255, kRenderTransTexture, 1)
  164. set_pev(g_ent_playermodel[id], pev_classname, "player_model")
  165. set_pev(g_ent_playermodel[id], pev_movetype, MOVETYPE_FOLLOW)
  166. set_pev(g_ent_playermodel[id], pev_aiment, id)
  167. set_pev(g_ent_playermodel[id], pev_owner, id)
  168. // and change this.
  169. engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/guerilla/guerilla.mdl")
  170. fm_set_weaponmodel_ent(id)
  171. }
  172. }
  173. case 4:
  174. {
  175. fm_remove_model_ents(id)
  176. if (!pev_valid(g_ent_playermodel[id]))
  177. {
  178. g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
  179. if (!pev_valid(g_ent_playermodel[id])) return ;
  180.  
  181. set_user_rendering(id, kRenderFxNone, 255, 255, 255, kRenderTransTexture, 1)
  182. set_pev(g_ent_playermodel[id], pev_classname, "player_model")
  183. set_pev(g_ent_playermodel[id], pev_movetype, MOVETYPE_FOLLOW)
  184. set_pev(g_ent_playermodel[id], pev_aiment, id)
  185. set_pev(g_ent_playermodel[id], pev_owner, id)
  186. // and change this.
  187. engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/leet/leet.mdl")
  188. fm_set_weaponmodel_ent(id)
  189. }
  190. }
  191. case 5:
  192. {
  193. fm_remove_model_ents(id)
  194. if (!pev_valid(g_ent_playermodel[id]))
  195. {
  196. g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
  197. if (!pev_valid(g_ent_playermodel[id])) return ;
  198.  
  199. set_user_rendering(id, kRenderFxNone, 255, 255, 255, kRenderTransTexture, 1)
  200. set_pev(g_ent_playermodel[id], pev_classname, "player_model")
  201. set_pev(g_ent_playermodel[id], pev_movetype, MOVETYPE_FOLLOW)
  202. set_pev(g_ent_playermodel[id], pev_aiment, id)
  203. set_pev(g_ent_playermodel[id], pev_owner, id)
  204. // and change this.
  205. engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/sas/sas.mdl")
  206. fm_set_weaponmodel_ent(id)
  207. }
  208. }
  209. case 6:
  210. {
  211. fm_remove_model_ents(id)
  212. if (!pev_valid(g_ent_playermodel[id]))
  213. {
  214. g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
  215. if (!pev_valid(g_ent_playermodel[id])) return ;
  216.  
  217. set_user_rendering(id, kRenderFxNone, 255, 255, 255, kRenderTransTexture, 1)
  218. set_pev(g_ent_playermodel[id], pev_classname, "player_model")
  219. set_pev(g_ent_playermodel[id], pev_movetype, MOVETYPE_FOLLOW)
  220. set_pev(g_ent_playermodel[id], pev_aiment, id)
  221. set_pev(g_ent_playermodel[id], pev_owner, id)
  222. // and change this.
  223. engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/terror/terror.mdl")
  224. fm_set_weaponmodel_ent(id)
  225. }
  226. }
  227. case 7:
  228. {
  229. fm_remove_model_ents(id)
  230. if (!pev_valid(g_ent_playermodel[id]))
  231. {
  232. g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
  233. if (!pev_valid(g_ent_playermodel[id])) return ;
  234.  
  235. set_user_rendering(id, kRenderFxNone, 255, 255, 255, kRenderTransTexture, 1)
  236. set_pev(g_ent_playermodel[id], pev_classname, "player_model")
  237. set_pev(g_ent_playermodel[id], pev_movetype, MOVETYPE_FOLLOW)
  238. set_pev(g_ent_playermodel[id], pev_aiment, id)
  239. set_pev(g_ent_playermodel[id], pev_owner, id)
  240. // and change this.
  241. engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/urban/urban.mdl")
  242. fm_set_weaponmodel_ent(id)
  243. }
  244. }
  245. case 9: return ;
  246. }
  247.  
  248. ClCmdSelectModel(id)
  249. return;
  250. }
  251.  
  252. public SetupSelectMenu()
  253. {
  254. new menuLen = format(BuyMenuBodyText, 255, "\rValasz Modelt:^n^n")
  255. menuLen += format(BuyMenuBodyText[menuLen], 255 - menuLen, "\w1. artic^n")
  256. menuLen += format(BuyMenuBodyText[menuLen], 255 - menuLen, "\w2. gign^n")
  257. menuLen += format(BuyMenuBodyText[menuLen], 255 - menuLen, "\w3. gsg9^n")
  258. menuLen += format(BuyMenuBodyText[menuLen], 255 - menuLen, "\w4. guerilla^n")
  259. menuLen += format(BuyMenuBodyText[menuLen], 255 - menuLen, "\w5. leet^n")
  260. menuLen += format(BuyMenuBodyText[menuLen], 255 - menuLen, "\w6. sas^n")
  261. menuLen += format(BuyMenuBodyText[menuLen], 255 - menuLen, "\w7. terror^n")
  262. menuLen += format(BuyMenuBodyText[menuLen], 255 - menuLen, "\w8. urban^n^n")
  263.  
  264. menuLen += format(BuyMenuBodyText[menuLen], 255 - menuLen, "\w0. Exit")
  265.  
  266. return 1
  267. }
  268.  
  269. // Remove Custom Model Entities
  270. stock fm_remove_model_ents(id)
  271. {
  272. // Remove "playermodel" ent if present
  273. if (pev_valid(g_ent_playermodel[id]))
  274. {
  275. engfunc(EngFunc_RemoveEntity, g_ent_playermodel[id])
  276. g_ent_playermodel[id] = 0
  277. }
  278. // Remove "weaponmodel" ent if present
  279. if (pev_valid(g_ent_weaponmodel[id]))
  280. {
  281. engfunc(EngFunc_RemoveEntity, g_ent_weaponmodel[id])
  282. g_ent_weaponmodel[id] = 0
  283. }
  284. }
  285.  
  286. // Set Weapon Model on Entity
  287. stock fm_set_weaponmodel_ent(id)
  288. {
  289. // Get player's p_ weapon model
  290. static model[100]
  291. pev(id, pev_weaponmodel2, model, sizeof model - 1)
  292.  
  293. // Set model on entity or make a new one if unexistant
  294. if (!pev_valid(g_ent_weaponmodel[id]))
  295. {
  296. g_ent_weaponmodel[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
  297. if (!pev_valid(g_ent_weaponmodel[id])) return;
  298.  
  299. set_pev(g_ent_weaponmodel[id], pev_classname, "weapon_model")
  300. set_pev(g_ent_weaponmodel[id], pev_movetype, MOVETYPE_FOLLOW)
  301. set_pev(g_ent_weaponmodel[id], pev_aiment, id)
  302. set_pev(g_ent_weaponmodel[id], pev_owner, id)
  303. }
  304.  
  305. engfunc(EngFunc_SetModel, g_ent_weaponmodel[id], model)
  306. }
  307.  
  308. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  309. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
  310. */
  311.