HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <engine>
  3. #include <nvault>
  4. #include <cstrike>
  5. #include <fun>
  6. #include <fakemeta>
  7. #include <hamsandwich>
  8.  
  9. #define USE_CC 1
  10.  
  11. #if defined USE_CC
  12. #include <colorchat>
  13. #endif
  14.  
  15. #define FREQ 0.1
  16.  
  17. new oles[33], skin[33], vault, KISGRAV, SEBZES, ALAPGRAV, skin_oles, skin_hsoles, skin_kesoles
  18.  
  19. new skin1[121], skin2[121], skin3[121], skin4[121], skin5[121], skin6[121], skin7[121], skin8[121], skin9[121], skin10[121], skin11[121]
  20.  
  21. new const deagle[] = "models/v_deagle.mdl"
  22. new const mp5[] = "models/fegyver_skin/v_mp5.mdl"
  23. new const xm1014[] = "models/fegyver_skin/v_xm1014.mdl"
  24. new const m3[] = "models/fegyver_skin/v_m3.mdl"
  25. new const famas[] = "models/fegyver_skin/v_famas.mdl"
  26. new const galil[] = "models/fegyver_skin/v_galil.mdl"
  27. new const aug[] = "models/fegyver_skin/v_aug.mdl"
  28. new const scout[] = "models/fegyver_skin/v_scout.mdl"
  29. new const awp[] = "models/fegyver_skin/v_awp.mdl"
  30. new const m249[] = "models/fegyver_skin/v_m249.mdl"
  31. new const m4a1[] = "models/fegyver_skin/v_m4a1.mdl"
  32. new const ak47[] = "models/fegyver_skin/v_ak47.mdl"
  33.  
  34. new const g_FegyverNevek[][32] =
  35. {
  36. "Alap Deagle",
  37. "MP5Navy Skin",
  38. "AutoShotgun Skin",
  39. "Shotgun Skin",
  40. "Famas Skin",
  41. "Galil Skin",
  42. "AUG Skin",
  43. "Scout Skin",
  44. "AWP Skin",
  45. "M249 Skin",
  46. "M4A1 Skin",
  47. "AK47 Skin"
  48. };
  49.  
  50. public plugin_precache()
  51. {
  52. precache_model(deagle)
  53. precache_model(mp5)
  54. precache_model(xm1014)
  55. precache_model(m3)
  56. precache_model(famas)
  57. precache_model(galil)
  58. precache_model(aug)
  59. precache_model(scout)
  60. precache_model(awp)
  61. precache_model(m249)
  62. precache_model(m4a1)
  63. precache_model(ak47)
  64. }
  65. public plugin_init()
  66. {
  67. register_plugin("Fegyver Skinek", "1.0", "6almasok")
  68. set_task(25.0, "KorUzenet", 0, _, _, "b")
  69.  
  70. //*eventek*//
  71. register_event("CurWeapon","fegyverek","be","1=1")
  72. register_event("Damage", "event_sebzes", "be" )
  73. register_event("DeathMsg", "halal", "a" );
  74. register_event("CurWeapon", "fegyverid", "be", "1=1")
  75.  
  76. //*Parancsok*//
  77. register_clcmd("say /skinmenu","menu")
  78. register_clcmd("say /skin","menu")
  79. register_clcmd("say /skinoles","pontmegtekint")
  80. register_clcmd("say /oles","pontmegtekint")
  81. register_clcmd("say /fegyok","menu")
  82. register_clcmd("say /fegyverskin","menu")
  83. register_clcmd("say /fegyomenu","menu")
  84.  
  85. //*Cvarok*//
  86.  
  87. register_cvar("sima_oles", "2");
  88. register_cvar("hs_oles", "2");
  89. register_cvar("kes_oles", "1");
  90.  
  91. skin_oles = get_cvar_num("sima_oles");
  92. skin_hsoles = get_cvar_num("hs_oles");
  93. skin_kesoles = get_cvar_num("kes_oles");
  94. KISGRAV = register_cvar("skin_kisgravity","470")
  95. SEBZES = register_cvar("skin_sebzes", "2")
  96. ALAPGRAV = get_cvar_pointer("sv_gravity")
  97.  
  98. //*vault*//
  99. vault = nvault_open("fegyver_skin")
  100.  
  101. }
  102. public fegyverid(id)
  103. {
  104. new fegyver = get_user_weapon(id)
  105.  
  106. if(skin[id] == 0 && fegyver == CSW_DEAGLE)set_pev(id, pev_viewmodel2, deagle)
  107. if(skin[id] == 1 && fegyver == CSW_MP5NAVY)set_pev(id, pev_viewmodel2, mp5)
  108. if(skin[id] == 2 && fegyver == CSW_XM1014)set_pev(id, pev_viewmodel2, xm1014)
  109. if(skin[id] == 3 && fegyver == CSW_M3)set_pev(id, pev_viewmodel2, m3)
  110. if(skin[id] == 4 && fegyver == CSW_FAMAS)set_pev(id, pev_viewmodel2, famas)
  111. if(skin[id] == 5 && fegyver == CSW_GALIL)set_pev(id, pev_viewmodel2, galil)
  112. if(skin[id] == 6 && fegyver == CSW_AUG)set_pev(id, pev_viewmodel2, aug)
  113. if(skin[id] == 7 && fegyver == CSW_SCOUT)set_pev(id, pev_viewmodel2, scout)
  114. if(skin[id] == 8 && fegyver == CSW_AWP)set_pev(id, pev_viewmodel2, awp)
  115. if(skin[id] == 9 && fegyver == CSW_M249)set_pev(id, pev_viewmodel2, m249)
  116. if(skin[id] == 10 && fegyver == CSW_M4A1)set_pev(id, pev_viewmodel2, m4a1)
  117. if(skin[id] == 11 && fegyver == CSW_AK47)set_pev(id, pev_viewmodel2, ak47)
  118. }
  119. public halal(id)
  120. {
  121. new gyilkos = read_data( 1 );
  122. new aldozat = read_data( 2 );
  123.  
  124. if(gyilkos == aldozat || ! is_user_connected(gyilkos) || ! is_user_connected(aldozat))
  125. {
  126. return PLUGIN_HANDLED;
  127. }
  128. new olesekert = skin_oles;
  129.  
  130. if(read_data(3))
  131. {
  132. olesekert += skin_hsoles;
  133. }
  134.  
  135. static Fegyver[26];
  136.  
  137. read_data(4, Fegyver, sizeof(Fegyver) -1);
  138.  
  139. if(equal(Fegyver,"knife"))
  140. {
  141. olesekert += skin_kesoles;
  142. }
  143. oles[gyilkos] += olesekert;
  144.  
  145. ColorChat(gyilkos, GREEN, "^3[Fegyver Skin] ^1Mivel megoltel egy embert ezert kaptal ^3+%i ^1Olespontot.^4Csak igy tovabb.", olesekert);
  146. return PLUGIN_HANDLED;
  147. }
  148. public menu(id) {
  149. new cim[121]
  150. formatex(cim, charsmax(cim), "\wFegyver Skinek \yBy \r6almasok^n\yOlesek : \w%d^nOldal ",oles[id])
  151. new menu = menu_create(cim, "skin_menu");
  152.  
  153. formatex(skin1, charsmax(skin1),"%s", oles[id] >= 300 ? "\wMP5Navy \yA Segitokesz \r[Megszerezve]" : "\dMP5Navy \wA Segitokesz \r[300 Oles]\y-\r[LEZARVA]");
  154. formatex(skin2, charsmax(skin2),"%s", oles[id] >= 600 ? "\wAutoShotgun \yKemeny Alkat \r[Megszerezve]" : "\dAutoShotgun \wKemeny Alkat \r[600 Oles]\y-\r[LEZARVA]");
  155. formatex(skin3, charsmax(skin3),"%s", oles[id] >= 1000 ? "\wShutGun \yAz Elveszett \r[Megszerezve]" : "\dShutGun \wAz Elveszett \r[1000 Oles]\y-\r[LEZARVA]");
  156. formatex(skin4, charsmax(skin4),"%s", oles[id] >= 1600 ? "\wFamas \yRejtozkodes \r[Megszerezve]" : "\dFamas \wRejtozkodes \r[1600 Oles]\y-\r[LEZARVA]");
  157. formatex(skin5, charsmax(skin5),"%s", oles[id] >= 2400 ? "\wGalil \yPower FULL \r[Megszerezve]" : "\dGalil \wPower FULL \r[2400 Oles]\y-\r[LEZARVA]");
  158. formatex(skin6, charsmax(skin6),"%s", oles[id] >= 3300 ? "\wAUG \yA Specialista \r[Megszerezve]" : "\dAUG \wA Specialista \r[3300 Oles]\y-\r[LEZARVA]");
  159. formatex(skin7, charsmax(skin7),"%s", oles[id] >= 4300 ? "\wScout \yTuzbe Szuletett \r[Megszerezve]" : "\dScout \wTuzbe Szuletett \r[4300 Oles]\y-\r[LEZARVA]");
  160. formatex(skin8, charsmax(skin8),"%s", oles[id] >= 6000 ? "\wAWP \y[Kepesseg : Nem Trappolsz] \r[Megszerezve]" : "\dAWP \wA Raptor Vadasz \r[6000 Oles]\y-\r[LEZARVA]");
  161. formatex(skin9, charsmax(skin9),"%s", oles[id] >= 8000 ? "\wM249 \y[Kepesseg : Kis Gravitacio] \r[Megszerezve]" : "\dM249 \wSzerver Predator \r[8000 Oles]\y-\r[LEZARVA]");
  162. formatex(skin10, charsmax(skin10),"%s", oles[id] >= 10000 ? "\wM4A1 \y[Kepesseg : Felig Atlatszo] \r[Megszerezve]" : "\dM4A1 \wHalal Oszto \r[10000 Oles]\y-\r[LEZARVA]");
  163. formatex(skin11, charsmax(skin11),"%s", oles[id] >= 12500 ? "\wAK47 \y[Kepesseg : Dupla Sebzes] \r[Megszerezve]" : "\dAK47 \wA LEGENDAS \r[12500 Oles]\y-\r[LEZARVA]");
  164.  
  165. menu_additem(menu, "\yAlap Deagle \r[Megszerezve]", "1", 0 );
  166. menu_additem(menu, skin1, "2", oles[id] >= 300 ? 0 : 1);
  167. menu_additem(menu, skin2, "3", oles[id] >= 600 ? 0 : 1);
  168. menu_additem(menu, skin3, "4", oles[id] >= 1000 ? 0 : 1);
  169. menu_additem(menu, skin4, "5", oles[id] >= 1600 ? 0 : 1);
  170. menu_additem(menu, skin5, "6", oles[id] >= 2400 ? 0 : 1);
  171. menu_additem(menu, skin6, "7", oles[id] >= 3300 ? 0 : 1);
  172. menu_additem(menu, skin7, "8", oles[id] >= 4300 ? 0 : 1);
  173. menu_additem(menu, skin8, "9", oles[id] >= 6000 ? 0 : 1);
  174. menu_additem(menu, skin9, "10", oles[id] >= 8000 ? 0 : 1);
  175. menu_additem(menu, skin10, "11", oles[id] >= 10000 ? 0 : 1);
  176. menu_additem(menu, skin11, "12", oles[id] >= 12500 ? 0 : 1);
  177.  
  178. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  179. menu_setprop(menu, MPROP_BACKNAME, "Vissza");
  180. menu_setprop(menu, MPROP_NEXTNAME, "Elore");
  181. menu_setprop(menu, MPROP_EXITNAME, "Kilepes");
  182. menu_display(id, menu, 0);
  183. }
  184. public pontmegtekint(id)
  185. {
  186. ColorChat(id, GREEN, "^3[Fegyver Skin] ^4Neked ^3%d ^4olesed van.", oles[id])
  187. }
  188. public event_sebzes( id ) {
  189.  
  190. new aldozat_id = id;
  191. if( !is_user_connected( aldozat_id ) ) return PLUGIN_CONTINUE
  192. new dmg_adas = read_data( 2 );
  193. new dmgtype = read_data( 3 );
  194. new Float:szorzo = get_pcvar_float(SEBZES);
  195. new Float:sebzes = dmg_adas * szorzo;
  196. new elet = get_user_health( aldozat_id );
  197.  
  198. new FegyID, sebzo_id = get_user_attacker( aldozat_id, FegyID );
  199.  
  200. if( !is_user_connected( sebzo_id ) || !is_user_alive( aldozat_id ) ) {
  201. return PLUGIN_HANDLED
  202. }
  203.  
  204. if( FegyID == CSW_AK47 && skin[sebzo_id] == 11 ) {
  205.  
  206. if( floatround(sebzes) >= elet ) {
  207. if( aldozat_id == sebzo_id ) {
  208. return PLUGIN_CONTINUE
  209. }else{
  210. log_kill( sebzo_id, aldozat_id, "ak47", 0 );
  211. }
  212.  
  213. return PLUGIN_CONTINUE
  214. }else {
  215. if( aldozat_id == sebzo_id ) return PLUGIN_CONTINUE
  216.  
  217. fakedamage( aldozat_id, "weapon_ak47", sebzes, dmgtype );
  218. }
  219. }
  220. return PLUGIN_CONTINUE
  221. }
  222. stock log_kill(gyilkos, aldozat, fegyver[],fejloves) {
  223. user_silentkill( aldozat );
  224.  
  225. message_begin( MSG_ALL, get_user_msgid( "DeathMsg" ), {0,0,0}, 0 );
  226. write_byte( gyilkos );
  227. write_byte( aldozat );
  228. write_byte( fejloves );
  229. write_string( fegyver );
  230. message_end();
  231.  
  232. new oles = get_user_frags( gyilkos );
  233. set_user_frags( gyilkos, oles++ );
  234. new elvetel = get_user_frags( aldozat );
  235. set_user_frags( aldozat, elvetel++ );
  236.  
  237. return PLUGIN_CONTINUE
  238. }
  239. public fegyverek(id)
  240. {
  241. new fegyver = get_user_weapon(id)
  242.  
  243. set_user_footsteps(id , ( (skin[id] == 8 && fegyver == CSW_AWP) ? 1 : 0) )
  244.  
  245. new Float:Gravitacio = ((skin[id] == 9 && fegyver == CSW_M249)? get_pcvar_float(KISGRAV) : get_pcvar_float(ALAPGRAV)) / 800.0
  246. set_user_gravity(id, Gravitacio)
  247.  
  248. if(fegyver != CSW_M4A1 || skin[id] < 10)
  249. return PLUGIN_CONTINUE
  250. else if(skin[id] == 10)
  251. set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 80)
  252. }
  253. public KorUzenet() {
  254.  
  255. ColorChat(0, GREEN, "^3[Fegyver Skin] ^4Ird be ^3/skin ^4hogy megnyisd a ^1Fegyver Skin ^4menut.");
  256. return PLUGIN_HANDLED;
  257. }
  258. public skin_menu(id, menu, item)
  259. {
  260. if( item == MENU_EXIT )
  261. {
  262. menu_destroy(id);
  263. return PLUGIN_HANDLED;
  264. }
  265. new data[9], szName[64];
  266. new access, callback;
  267. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  268. new key = str_to_num(data);
  269.  
  270. ColorChat(id, GREEN, "^4[Fegyver Skin] ^1Kivalasztottad az ^3%s-t", g_FegyverNevek[item]);
  271.  
  272. switch(key)
  273.  
  274. {
  275. case 1:{
  276. if(oles[id] >= 0)
  277. skin[id] = 0
  278. }
  279. case 2:{
  280. if(oles[id] >= 300)
  281. skin[id] = 1
  282. }
  283. case 3:{
  284. if(oles[id] >= 600)
  285. skin[id] = 2
  286. }
  287. case 4:{
  288. if(oles[id] >= 1000)
  289. skin[id] = 3
  290. }
  291. case 5:{
  292. if(oles[id] >= 1600)
  293. skin[id] = 4
  294. }
  295. case 6:{
  296. if(oles[id] >= 2400)
  297. skin[id] = 5
  298. }
  299. case 7:{
  300. if(oles[id] >= 3300)
  301. skin[id] = 6
  302. }
  303. case 8:{
  304. if(oles[id] >= 4300)
  305. skin[id] = 7
  306. }
  307. case 9:{
  308. if(oles[id] >= 6000)
  309. skin[id] = 8
  310. }
  311. case 10:{
  312. if(oles[id] >= 8000)
  313. skin[id] = 9
  314. }
  315. case 11:{
  316. if(oles[id] >= 10000)
  317. skin[id] = 10
  318. }
  319. case 12:{
  320. if(oles[id] >= 12500)
  321. skin[id] = 11
  322. }
  323. }
  324. menu_destroy(menu)
  325. return PLUGIN_HANDLED
  326. }
  327. public mentes(id)
  328. {
  329. new vaultkey[64],vaultdata[256], authid[32]
  330. get_user_authid(id, authid, 31)
  331. format(vaultkey,63,"%s-SKIN", authid)
  332. format(vaultdata,255,"%i#%i#", oles[id],skin[id])
  333. nvault_set(vault,vaultkey,vaultdata)
  334. return PLUGIN_CONTINUE
  335. }
  336. public betoltes(id)
  337. {
  338. new vaultkey[64],vaultdata[256], authid[32]
  339. get_user_authid(id, authid, 31)
  340. format(vaultkey,63,"%s-SKIN", authid)
  341. format(vaultdata,255,"%i#%i#",oles[id],skin[id])
  342. nvault_get(vault,vaultkey,vaultdata,255)
  343. replace_all(vaultdata, 255, "#", " ")
  344. new str_num[32], skin_num[32]
  345. parse(vaultdata, str_num, 31, skin_num, 31)
  346. oles[id] = str_to_num(str_num)
  347. skin[id] = str_to_num(skin_num)
  348. return PLUGIN_CONTINUE
  349. }
  350. public client_disconnect(id)
  351. {
  352. mentes(id)
  353. }
  354. public client_connect(id)
  355. {
  356. betoltes(id)
  357. }