Advertisement
Guest User

Untitled

a guest
Feb 16th, 2023
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.03 KB | None | 0 0
  1. /* Plugin generated by AMXX-Studio */
  2.  
  3. #include <amxmodx>
  4. #include <hamsandwich>
  5. #include <fakemeta>
  6. #include <cstrike>
  7. #include <nvault>
  8.  
  9. #define MAX_ILOSC_SKINOW 8
  10. enum { NOZ = 0, DEAGLE, M4A1, AK47, AWP};
  11. enum { SZLUGI = 0, FLAGI };
  12. #define NAZWA_RODZAJU(%1) (%1==0)?"noza":(%1==1)?"deagle":(%1==2)?"m4a1":((%1==3)?"ak47":"awp")
  13.  
  14. new g_szNazwaSkina[6][MAX_ILOSC_SKINOW+1][32];
  15. new g_szSciezkaSkina[6][MAX_ILOSC_SKINOW+1][256];
  16. new g_szSciezkaSkina2[6][MAX_ILOSC_SKINOW+1][256];
  17. new g_iRodzajWymogowSkina[6][MAX_ILOSC_SKINOW+1];
  18. new g_iWymogiSkina[6][MAX_ILOSC_SKINOW+1];
  19. new g_iRodzajNoza[MAX_ILOSC_SKINOW+1];
  20. new g_iIloscSkinow[6];
  21.  
  22. new g_iVault;
  23.  
  24. new g_iSkinGracza[33][6];
  25. new g_iWyborRodzajuGracza[33];
  26.  
  27. native cod_get_user_coins(id);
  28. native cod_set_user_coins(id, wartosc);
  29. new const gAwpSounds[][] =
  30. {
  31. "sound/weapons/awp_boltdown.wav",
  32. "sound/weapons/awp_boltup.wav",
  33. "sound/weapons/awp_clipin.wav",
  34. "sound/weapons/awp_clipout.wav",
  35. "sound/weapons/awp_cliptap.wav",
  36. "sound/weapons/awp_draw.wav",
  37. "sound/weapons/awp1.wav",
  38. "sound/weapons/awp2.wav"
  39. };
  40. new const gKnifeSounds[][] =
  41. {
  42. "sound/weapons/knife_deploy1.wav",
  43. "sound/weapons/knife_hit1.wav",
  44. "sound/weapons/knife_hit2.wav",
  45. "sound/weapons/knife_hit3.wav",
  46. "sound/weapons/knife_hit4.wav",
  47. "sound/weapons/knife_hitwall1.wav",
  48. "sound/weapons/knife_slash1.wav",
  49. "sound/weapons/knife_slash2.wav",
  50. "sound/weapons/knife_stab.wav",
  51. "sound/weapons/olaf/afterstab.wav",
  52. "sound/weapons/olaf/inspect1.wav",
  53. "sound/weapons/olaf/inspect2.wav"
  54. };
  55. new const gGlockSounds[][] =
  56. {
  57. "sound/weapons/glock18-1.wav",
  58. "sound/weapons/glock18-2.wav"
  59. };
  60. new const gDeagleSounds[][] =
  61. {
  62. "sound/weapons/clipin.wav",
  63. "sound/weapons/clipout.wav",
  64. "sound/weapons/deagle-1.wav",
  65. "sound/weapons/deagle-2.wav",
  66. "sound/weapons/draw.wav",
  67. "sound/weapons/slide.wav"
  68. };
  69. new const gAkSounds[][] =
  70. {
  71. "sound/weapons/ak47_boltpull.wav",
  72. "sound/weapons/ak47_clipin.wav",
  73. "sound/weapons/ak47_clipout.wav",
  74. "sound/weapons/ak47_deploy.wav",
  75. "sound/weapons/ak47-1.wav",
  76. "sound/weapons/ak47-2.wav"
  77. };
  78. public plugin_init() {
  79. register_plugin("DD2 Skiny", "1.0", "edit: N1K1Cz");
  80.  
  81. register_clcmd("say /skiny", "cmd_Skiny");
  82. register_clcmd("say /modele", "cmd_Skiny");
  83.  
  84. RegisterHam(Ham_Item_Deploy, "weapon_knife", "fw_WybralNoz_Post", 1);
  85. RegisterHam(Ham_Item_AddToPlayer, "weapon_knife", "fw_DostalNoz_Post", 1);
  86.  
  87. RegisterHam(Ham_Item_Deploy, "weapon_m4a1", "fw_Wybralm4a1_Post", 1);
  88. RegisterHam(Ham_Item_AddToPlayer, "weapon_m4a1", "fw_Dostalm4a1_Post", 1);
  89.  
  90. RegisterHam(Ham_Item_Deploy, "weapon_ak47", "fw_Wybralak47_Post", 1);
  91. RegisterHam(Ham_Item_AddToPlayer, "weapon_ak47", "fw_Dostalak47_Post", 1);
  92.  
  93. RegisterHam(Ham_Item_Deploy, "weapon_deagle", "fw_Wybraldeagle_Post", 1);
  94. RegisterHam(Ham_Item_AddToPlayer, "weapon_deagle", "fw_Dostaldeagle_Post", 1);
  95.  
  96. RegisterHam(Ham_Item_Deploy, "weapon_awp", "fw_Wybralawp_Post", 1);
  97. RegisterHam(Ham_Item_AddToPlayer, "weapon_awp", "fw_Dostalawp_Post", 1);
  98.  
  99. g_iVault = nvault_open("SkinyDD2");
  100. }
  101.  
  102. public plugin_natives() {
  103. register_native("skinsMenu", "cmd_Skiny", 1);
  104. }
  105.  
  106. public plugin_precache() {
  107. WczytajSkiny();
  108.  
  109. for(new i = 0; i < sizeof(gAwpSounds); i++)
  110. precache_generic(gAwpSounds[i]);
  111.  
  112. for(new i = 0; i < sizeof(gKnifeSounds); i++)
  113. precache_generic(gKnifeSounds[i]);
  114.  
  115. for(new i = 0; i < sizeof(gGlockSounds); i++)
  116. precache_generic(gGlockSounds[i]);
  117.  
  118. for(new i = 0; i < sizeof(gDeagleSounds); i++)
  119. precache_generic(gDeagleSounds[i]);
  120.  
  121. for(new i = 0; i < sizeof(gAkSounds); i++)
  122. precache_generic(gAkSounds[i]);
  123. }
  124.  
  125. public plugin_end() {
  126. nvault_close(g_iVault);
  127. }
  128.  
  129. public client_authorized(id) {
  130. set_task(2.0, "task_WczytajSkinyGracza", id);
  131. }
  132.  
  133. public client_disconnect(id) {
  134. remove_task(id);
  135. }
  136.  
  137. public cmd_Skiny(id) {
  138. new menuBody[512]
  139. formatex(menuBody, charsmax(menuBody), "\w[\r>\w] Skiny ktore mozesz uzywac to: %s^n\w[\r>\w] Menu \ySkinow:", get_user_flags(id) & ADMIN_LEVEL_G ? "\yWszystkie" : (get_user_flags(id) & ADMIN_LEVEL_H) ? "\yVIP" : "\yDarmowe, zakup VIP/SVIP aby moc korzystac w wiekszosci skinow!")
  140. new iMenu = menu_create(menuBody, "Skiny_Handler")
  141.  
  142. menu_additem(iMenu, "\w[\r>\w] Skiny Noza");
  143. menu_additem(iMenu, "\w[\r>\w] Skiny Deagle");
  144. menu_additem(iMenu, "\w[\r>\w] Skiny M4A1");
  145. menu_additem(iMenu, "\w[\r>\w] Skiny AK47");
  146. menu_additem(iMenu, "\w[\r>\w] Skiny AWP");
  147.  
  148. menu_setprop(iMenu, MPROP_EXITNAME, "\r[\wX\r]");
  149.  
  150. menu_display(id, iMenu);
  151.  
  152. return PLUGIN_HANDLED;
  153. }
  154.  
  155. public Skiny_Handler(id, iMenu, iItem) {
  156. if(iItem == MENU_EXIT) {
  157. menu_destroy(iMenu);
  158. return PLUGIN_CONTINUE;
  159. }
  160.  
  161. g_iWyborRodzajuGracza[id] = iItem;
  162. ListaSkinow(id);
  163.  
  164. menu_destroy(iMenu);
  165. return PLUGIN_CONTINUE;
  166. }
  167.  
  168. public ListaSkinow(id) {
  169. new iRodzaj = g_iWyborRodzajuGracza[id];
  170.  
  171. if(!g_iIloscSkinow[iRodzaj]) {
  172. client_print_color(id, id,"^x04Nie znaleziono skinĂłw dla %s.", NAZWA_RODZAJU(iRodzaj));
  173. return;
  174. }
  175.  
  176. new szItem[128], szKluczVault[128], szNick[32], iMenu;
  177.  
  178. formatex(szItem, 127, "Lista skinów \w%s^nKliknij, aby poznać szczegóły.", NAZWA_RODZAJU(iRodzaj));
  179. iMenu = menu_create(szItem, "ListaSkinow_Handler");
  180.  
  181. get_user_name(id, szNick, 31);
  182. for(new i = 1; i <= g_iIloscSkinow[iRodzaj]; i++) {
  183. formatex(szKluczVault, 127, "%s-skin-%d-%d", szNick, iRodzaj, i);
  184.  
  185. if(nvault_get(g_iVault, szKluczVault) || (g_iRodzajWymogowSkina[iRodzaj][i] == FLAGI && get_user_flags(id) & g_iWymogiSkina[iRodzaj][i])) {
  186. formatex(szItem, 127, "\y%s", g_szNazwaSkina[iRodzaj][i]);
  187. menu_additem(iMenu, szItem, "1");
  188. } else {
  189. formatex(szItem, 127, "%s", g_szNazwaSkina[iRodzaj][i]);
  190. menu_additem(iMenu, szItem, "0");
  191. }
  192. }
  193.  
  194. menu_setprop(iMenu, MPROP_EXITNAME, "\yDomyślny");
  195. menu_setprop(iMenu, MPROP_BACKNAME, "Poprzednia strona");
  196. menu_setprop(iMenu, MPROP_NEXTNAME, "Następna strona");
  197.  
  198. menu_display(id, iMenu); //dodaj pod exit skiny 'domyslny' (czy na pewno?)
  199. }
  200.  
  201. public ListaSkinow_Handler(id, iMenu, iItem) {
  202. new iRodzaj = g_iWyborRodzajuGracza[id];
  203.  
  204. if(iItem < 0) {
  205. if(iItem == MENU_EXIT) {
  206. UstawSkina(id, iRodzaj, 0); //dodaj pod 0 domyslne skiny
  207. cmd_Skiny(id);
  208.  
  209. menu_destroy(iMenu);
  210. }
  211.  
  212. return PLUGIN_CONTINUE;
  213. }
  214.  
  215. new iAccess, iCb, szMaDostep[4], iIdSkina = iItem + 1;
  216. menu_item_getinfo(iMenu, iItem, iAccess, szMaDostep, 3, _, _, iCb);
  217.  
  218. menu_destroy(iMenu);
  219.  
  220. if(str_to_num(szMaDostep) == 1) {
  221. UstawSkina(id, iRodzaj, iIdSkina);
  222. cmd_Skiny(id);
  223. } else {
  224. new szItem[128], szIdSkina[4];
  225.  
  226. formatex(szItem, 127, "Info o skinie %s: \w%s", NAZWA_RODZAJU(iRodzaj), g_szNazwaSkina[iRodzaj][iIdSkina]);
  227. new iNoweMenu = menu_create(szItem, "Skin_Handler");
  228.  
  229. num_to_str(iIdSkina, szIdSkina, 3);
  230.  
  231. menu_additem(iNoweMenu, "PodglÄ…d skina", szIdSkina);
  232.  
  233. if(g_iRodzajWymogowSkina[iRodzaj][iIdSkina] == SZLUGI) {
  234. formatex(szItem, 127, "Kup za \y%d monet", g_iWymogiSkina[iRodzaj][iIdSkina]);
  235. } else {
  236. copy(szItem, 127, "Kup skina");
  237. }
  238.  
  239. menu_additem(iNoweMenu, szItem, szIdSkina);
  240.  
  241. menu_setprop(iNoweMenu, MPROP_EXITNAME, "Powrot");
  242. menu_display(id, iNoweMenu);
  243. }
  244.  
  245. return PLUGIN_CONTINUE;
  246. }
  247.  
  248. public Skin_Handler(id, iMenu, iItem) {
  249. if(iItem < 0) {
  250. if(iItem == MENU_EXIT) {
  251. ListaSkinow(id);
  252. menu_destroy(iMenu);
  253. }
  254.  
  255. return PLUGIN_CONTINUE;
  256. }
  257.  
  258. new iAccess, iCb, szIdSkina[4],iRodzaj = g_iWyborRodzajuGracza[id], iIdSkina;
  259. menu_item_getinfo(iMenu, iItem, iAccess, szIdSkina, 3, _, _, iCb);
  260. iIdSkina = str_to_num(szIdSkina);
  261.  
  262. if(!iItem) {
  263. PodgladSkinaMotd(id, iRodzaj, iIdSkina);
  264. menu_display(id, iMenu);
  265. } else {
  266. if(g_iRodzajWymogowSkina[iRodzaj][iIdSkina] == SZLUGI) {
  267. new iCena = g_iWymogiSkina[iRodzaj][iIdSkina], iIloscSzlugow = cod_get_user_coins(id);
  268.  
  269. if(iIloscSzlugow >= iCena) {
  270. new szNick[32], szKluczVault[128];
  271.  
  272. get_user_name(id, szNick, 31);
  273. formatex(szKluczVault, 127, "%s-skin-%d-%d", szNick, iRodzaj, iIdSkina);
  274.  
  275. nvault_set(g_iVault, szKluczVault, "1");
  276. cod_set_user_coins(id, iIloscSzlugow - iCena);
  277.  
  278. client_print_color(id, id, "^x04Kupiłes skina %s^x03 '%s'", NAZWA_RODZAJU(iRodzaj), g_szNazwaSkina[iRodzaj][iIdSkina]);
  279. menu_destroy(iMenu);
  280.  
  281. ListaSkinow(id);
  282. } else {
  283. client_print_color(id, id, "^x04 BrakujÄ™ Ci monet na tego skina!");
  284. menu_display(id, iMenu);
  285. }
  286. } else {
  287. client_print_color(id, id, "^x04 Nie masz dostępu do tego skina!");
  288. client_print_color(id, id, "^x04 Aby go zdobyć, wejdź do naszego sklepu^x03 /sklepsms");
  289.  
  290. menu_display(id, iMenu);
  291. }
  292. }
  293.  
  294. return PLUGIN_CONTINUE;
  295. }
  296.  
  297. public fw_DostalNoz_Post(iEnt, id) {
  298. if(!pev_valid(iEnt) || !is_user_alive(id)) {
  299. return HAM_IGNORED;
  300. }
  301.  
  302. if(cs_get_weapon_id(iEnt) == CSW_KNIFE) {
  303. set_task(0.1, "task_DostalNoz", id);
  304. }
  305.  
  306. return HAM_IGNORED;
  307. }
  308.  
  309. public task_DostalNoz(id) {
  310. if(!is_user_alive(id)) {
  311. return PLUGIN_CONTINUE;
  312. }
  313.  
  314. if(get_user_weapon(id) == CSW_KNIFE) {
  315. new iIdSkina = g_iSkinGracza[id][NOZ];
  316.  
  317. if(iIdSkina) {
  318. set_pev(id, pev_viewmodel2, g_szSciezkaSkina[NOZ][iIdSkina]);
  319.  
  320. if(g_szSciezkaSkina2[NOZ][iIdSkina][0]) {
  321. set_pev(id, pev_weaponmodel2, g_szSciezkaSkina2[NOZ][iIdSkina]);
  322. }
  323. }
  324. }
  325.  
  326. return PLUGIN_CONTINUE;
  327. }
  328.  
  329. public fw_WybralNoz_Post(iEnt) {
  330. if(!pev_valid(iEnt)) {
  331. return HAM_IGNORED;
  332. }
  333.  
  334. new id = pev(iEnt, pev_owner);
  335.  
  336. if(!is_user_alive(id)) {
  337. return HAM_IGNORED;
  338. }
  339.  
  340. new iIdSkina = g_iSkinGracza[id][NOZ];
  341.  
  342. if(iIdSkina) {
  343. set_pev(id, pev_viewmodel2, g_szSciezkaSkina[NOZ][iIdSkina]);
  344. if(g_szSciezkaSkina2[NOZ][iIdSkina][0]) {
  345. set_pev(id, pev_weaponmodel2, g_szSciezkaSkina2[NOZ][iIdSkina]);
  346. }
  347. }
  348.  
  349. return HAM_IGNORED;
  350. }
  351.  
  352.  
  353.  
  354.  
  355. public fw_Dostalm4a1_Post(iEnt, id) {
  356. if(!pev_valid(iEnt) || !is_user_alive(id)) {
  357. return HAM_IGNORED;
  358. }
  359.  
  360. if(cs_get_weapon_id(iEnt) == CSW_M4A1) {
  361. set_task(0.1, "task_Dostalm4a1", id);
  362. }
  363.  
  364. return HAM_IGNORED;
  365. }
  366.  
  367. public task_Dostalm4a1(id) {
  368. if(!is_user_alive(id)) {
  369. return PLUGIN_CONTINUE;
  370. }
  371.  
  372. if(get_user_weapon(id) == CSW_M4A1) {
  373. new iIdSkina = g_iSkinGracza[id][M4A1];
  374.  
  375. if(iIdSkina) {
  376. set_pev(id, pev_viewmodel2, g_szSciezkaSkina[M4A1][iIdSkina]);
  377.  
  378. if(g_szSciezkaSkina2[M4A1][iIdSkina][0]) {
  379. set_pev(id, pev_weaponmodel2, g_szSciezkaSkina2[M4A1][iIdSkina]);
  380. }
  381. }
  382. }
  383.  
  384. return PLUGIN_CONTINUE;
  385. }
  386.  
  387. public fw_Wybralm4a1_Post(iEnt) {
  388. if(!pev_valid(iEnt)) {
  389. return HAM_IGNORED;
  390. }
  391.  
  392. new id = pev(iEnt, pev_owner);
  393.  
  394. if(!is_user_alive(id)) {
  395. return HAM_IGNORED;
  396. }
  397.  
  398. new iIdSkina = g_iSkinGracza[id][M4A1];
  399.  
  400. if(iIdSkina) {
  401. set_pev(id, pev_viewmodel2, g_szSciezkaSkina[M4A1][iIdSkina]);
  402. if(g_szSciezkaSkina2[M4A1][iIdSkina][0]) {
  403. set_pev(id, pev_weaponmodel2, g_szSciezkaSkina2[M4A1][iIdSkina]);
  404. }
  405. }
  406.  
  407. return HAM_IGNORED;
  408. }
  409.  
  410.  
  411.  
  412. public fw_Dostalak47_Post(iEnt, id) {
  413. if(!pev_valid(iEnt) || !is_user_alive(id)) {
  414. return HAM_IGNORED;
  415. }
  416.  
  417. if(cs_get_weapon_id(iEnt) == CSW_AK47) {
  418. set_task(0.1, "task_Dostalak47", id);
  419. }
  420.  
  421. return HAM_IGNORED;
  422. }
  423.  
  424. public task_Dostalak47(id) {
  425. if(!is_user_alive(id)) {
  426. return PLUGIN_CONTINUE;
  427. }
  428.  
  429. if(get_user_weapon(id) == CSW_AK47) {
  430. new iIdSkina = g_iSkinGracza[id][AK47];
  431.  
  432. if(iIdSkina) {
  433. set_pev(id, pev_viewmodel2, g_szSciezkaSkina[AK47][iIdSkina]);
  434.  
  435. if(g_szSciezkaSkina2[AK47][iIdSkina][0]) {
  436. set_pev(id, pev_weaponmodel2, g_szSciezkaSkina2[AK47][iIdSkina]);
  437. }
  438. }
  439. }
  440.  
  441. return PLUGIN_CONTINUE;
  442. }
  443.  
  444. public fw_Wybralak47_Post(iEnt) {
  445. if(!pev_valid(iEnt)) {
  446. return HAM_IGNORED;
  447. }
  448.  
  449. new id = pev(iEnt, pev_owner);
  450.  
  451. if(!is_user_alive(id)) {
  452. return HAM_IGNORED;
  453. }
  454.  
  455. new iIdSkina = g_iSkinGracza[id][AK47];
  456.  
  457. if(iIdSkina) {
  458. set_pev(id, pev_viewmodel2, g_szSciezkaSkina[AK47][iIdSkina]);
  459. if(g_szSciezkaSkina2[AK47][iIdSkina][0]) {
  460. set_pev(id, pev_weaponmodel2, g_szSciezkaSkina2[AK47][iIdSkina]);
  461. }
  462. }
  463.  
  464. return HAM_IGNORED;
  465. }
  466.  
  467. public fw_Dostaldeagle_Post(iEnt, id) {
  468. if(!pev_valid(iEnt) || !is_user_alive(id)) {
  469. return HAM_IGNORED;
  470. }
  471.  
  472. if(cs_get_weapon_id(iEnt) == CSW_KNIFE) {
  473. set_task(0.1, "task_Dostaldeagle", id);
  474. }
  475.  
  476. return HAM_IGNORED;
  477. }
  478.  
  479. public task_Dostaldeagle(id) {
  480. if(!is_user_alive(id)) {
  481. return PLUGIN_CONTINUE;
  482. }
  483.  
  484. if(get_user_weapon(id) == CSW_KNIFE) {
  485. new iIdSkina = g_iSkinGracza[id][DEAGLE];
  486.  
  487. if(iIdSkina) {
  488. set_pev(id, pev_viewmodel2, g_szSciezkaSkina[DEAGLE][iIdSkina]);
  489.  
  490. if(g_szSciezkaSkina2[DEAGLE][iIdSkina][0]) {
  491. set_pev(id, pev_weaponmodel2, g_szSciezkaSkina2[DEAGLE][iIdSkina]);
  492. }
  493. }
  494. }
  495.  
  496. return PLUGIN_CONTINUE;
  497. }
  498.  
  499. public fw_Wybraldeagle_Post(iEnt) {
  500. if(!pev_valid(iEnt)) {
  501. return HAM_IGNORED;
  502. }
  503.  
  504. new id = pev(iEnt, pev_owner);
  505.  
  506. if(!is_user_alive(id)) {
  507. return HAM_IGNORED;
  508. }
  509.  
  510. new iIdSkina = g_iSkinGracza[id][DEAGLE];
  511.  
  512. if(iIdSkina) {
  513. set_pev(id, pev_viewmodel2, g_szSciezkaSkina[DEAGLE][iIdSkina]);
  514. if(g_szSciezkaSkina2[DEAGLE][iIdSkina][0]) {
  515. set_pev(id, pev_weaponmodel2, g_szSciezkaSkina2[DEAGLE][iIdSkina]);
  516. }
  517. }
  518.  
  519. return HAM_IGNORED;
  520. }
  521.  
  522. public fw_Dostalawp_Post(iEnt, id) {
  523. if(!pev_valid(iEnt) || !is_user_alive(id)) {
  524. return HAM_IGNORED;
  525. }
  526.  
  527. if(cs_get_weapon_id(iEnt) == CSW_KNIFE) {
  528. set_task(0.1, "task_Dostalawp", id);
  529. }
  530.  
  531. return HAM_IGNORED;
  532. }
  533.  
  534. public task_Dostalawp(id) {
  535. if(!is_user_alive(id)) {
  536. return PLUGIN_CONTINUE;
  537. }
  538.  
  539. if(get_user_weapon(id) == CSW_KNIFE) {
  540. new iIdSkina = g_iSkinGracza[id][AWP];
  541.  
  542. if(iIdSkina) {
  543. set_pev(id, pev_viewmodel2, g_szSciezkaSkina[AWP][iIdSkina]);
  544.  
  545. if(g_szSciezkaSkina2[AWP][iIdSkina][0]) {
  546. set_pev(id, pev_weaponmodel2, g_szSciezkaSkina2[AWP][iIdSkina]);
  547. }
  548. }
  549. }
  550.  
  551. return PLUGIN_CONTINUE;
  552. }
  553.  
  554. public fw_Wybralawp_Post(iEnt) {
  555. if(!pev_valid(iEnt)) {
  556. return HAM_IGNORED;
  557. }
  558.  
  559. new id = pev(iEnt, pev_owner);
  560.  
  561. if(!is_user_alive(id)) {
  562. return HAM_IGNORED;
  563. }
  564.  
  565. new iIdSkina = g_iSkinGracza[id][AWP];
  566.  
  567. if(iIdSkina) {
  568. set_pev(id, pev_viewmodel2, g_szSciezkaSkina[AWP][iIdSkina]);
  569. if(g_szSciezkaSkina2[AWP][iIdSkina][0]) {
  570. set_pev(id, pev_weaponmodel2, g_szSciezkaSkina2[AWP][iIdSkina]);
  571. }
  572. }
  573.  
  574. return HAM_IGNORED;
  575. }
  576.  
  577. UstawSkina(id, iRodzaj, iIdSkina) {
  578. new szNick[32], szKluczVault[128], szIdSkina[4];
  579.  
  580. g_iSkinGracza[id][iRodzaj] = iIdSkina;
  581.  
  582. get_user_name(id, szNick, 31);
  583. formatex(szKluczVault, 127, "%s-domyslny-%d", szNick, iRodzaj);
  584. num_to_str(iIdSkina, szIdSkina, 3);
  585. nvault_set(g_iVault, szKluczVault, szIdSkina);
  586.  
  587. if(iRodzaj == DEAGLE && get_user_weapon(id) == CSW_DEAGLE){
  588. set_pev(id, pev_viewmodel2, g_szSciezkaSkina[iRodzaj][iIdSkina]);
  589. }
  590. if(iRodzaj == M4A1 && get_user_weapon(id) == CSW_M4A1){
  591. set_pev(id, pev_viewmodel2, g_szSciezkaSkina[iRodzaj][iIdSkina]);
  592. }
  593. if(iRodzaj == AK47 && get_user_weapon(id) == CSW_AK47){
  594. set_pev(id, pev_viewmodel2, g_szSciezkaSkina[iRodzaj][iIdSkina]);
  595. }
  596. if(iRodzaj == AWP && get_user_weapon(id) == CSW_AWP){
  597. set_pev(id, pev_viewmodel2, g_szSciezkaSkina[iRodzaj][iIdSkina]);
  598. }
  599. if(iRodzaj == NOZ && get_user_weapon(id) == CSW_KNIFE) {
  600. set_pev(id, pev_viewmodel2, g_szSciezkaSkina[iRodzaj][iIdSkina]);
  601.  
  602. if(g_szSciezkaSkina2[iRodzaj][iIdSkina][0]) {
  603. set_pev(id, pev_weaponmodel2, g_szSciezkaSkina2[iRodzaj][iIdSkina]);
  604. }
  605. }
  606.  
  607. client_print_color(id, id, "^x04Jako skin %s ustawiono^x03 '%s'", NAZWA_RODZAJU(iRodzaj), g_szNazwaSkina[iRodzaj][iIdSkina]);
  608. }
  609.  
  610. PodgladSkinaMotd(id, iRodzaj, iIdSkina) {
  611. new szSciezka[256], szMOTD[512];
  612. static szFD[128];
  613.  
  614. if(!szFD[0]) {
  615. get_cvar_string("sv_downloadurl", szFD, 127);
  616. }
  617.  
  618. if(iRodzaj == NOZ) {
  619. copy(szSciezka, 255, g_szSciezkaSkina[NOZ][iIdSkina]);
  620. replace(szSciezka, 255, ".mdl", ".png");
  621. }
  622. if(iRodzaj == M4A1) {
  623. copy(szSciezka, 255, g_szSciezkaSkina[M4A1][iIdSkina]);
  624. replace(szSciezka, 255, ".mdl", ".png");
  625. }
  626. if(iRodzaj == AK47) {
  627. copy(szSciezka, 255, g_szSciezkaSkina[AK47][iIdSkina]);
  628. replace(szSciezka, 255, ".mdl", ".png");
  629. }
  630. if(iRodzaj == DEAGLE) {
  631. copy(szSciezka, 255, g_szSciezkaSkina[DEAGLE][iIdSkina]);
  632. replace(szSciezka, 255, ".mdl", ".png");
  633. }
  634. if(iRodzaj == AWP) {
  635. copy(szSciezka, 255, g_szSciezkaSkina[AWP][iIdSkina]);
  636. replace(szSciezka, 255, ".mdl", ".png");
  637. }
  638.  
  639. formatex(szMOTD, 511, "<html><body style=^"padding: 0; margin: 0;^"><img style=^"width: 100%%; height: 100%%;^" src=^"%s/%s^">", szFD, szSciezka);
  640. show_motd(id, szMOTD, "PodglÄ…d skina");
  641. }
  642.  
  643. public task_WczytajSkinyGracza(id) {
  644. new szNick[32], szKluczVault[128], iIdSkina;
  645.  
  646. get_user_name(id, szNick, 31);
  647.  
  648. for(new i = 0; i < 5; i++) {
  649. formatex(szKluczVault, 127, "%s-domyslny-%d", szNick, i);
  650.  
  651. iIdSkina = g_iSkinGracza[id][i] = nvault_get(g_iVault, szKluczVault);
  652.  
  653. if(g_iRodzajWymogowSkina[i][iIdSkina] == FLAGI && !(get_user_flags(id) & g_iWymogiSkina[i][iIdSkina])) {
  654. g_iSkinGracza[id][i] = 0;
  655. nvault_remove(g_iVault, szKluczVault);
  656. }
  657. }
  658. }
  659.  
  660. WczytajSkiny() { //sprawdz caly public
  661. new iPlik = fopen("addons/amxmodx/configs/skiny.ini", "r");
  662.  
  663. if(!iPlik) {
  664. return 0;
  665. }
  666.  
  667. //DODAJ TO W CVARACH MOZE EJJ
  668. copy(g_szNazwaSkina[NOZ][0], 31, "Domyslny");
  669. copy(g_szNazwaSkina[M4A1][0], 31, "Domyslny");
  670. copy(g_szNazwaSkina[AK47][0], 31, "Domyslny");
  671. copy(g_szNazwaSkina[AWP][0], 31, "Domyslny");
  672. copy(g_szNazwaSkina[DEAGLE][0], 31, "Domyslny");
  673.  
  674. copy(g_szSciezkaSkina[M4A1][0], 255, "models/v_m4a1.mdl");
  675. copy(g_szSciezkaSkina2[M4A1][0], 255, "models/p_m4a1.mdl");
  676. copy(g_szSciezkaSkina[AK47][0], 255, "models/v_ak47.mdl");
  677. copy(g_szSciezkaSkina2[AK47][0], 255, "models/p_ak47.mdl");
  678. copy(g_szSciezkaSkina[DEAGLE][0], 255, "models/v_deagle.mdl");
  679. copy(g_szSciezkaSkina2[DEAGLE][0], 255, "models/p_deagle.mdl");
  680. copy(g_szSciezkaSkina[AWP][0], 255, "models/v_awp.mdl");
  681. copy(g_szSciezkaSkina2[AWP][0], 255, "models/p_awp.mdl");
  682. copy(g_szSciezkaSkina[NOZ][0], 255, "models/v_knife.mdl");
  683. copy(g_szSciezkaSkina2[NOZ][0], 255, "models/p_knife.mdl");
  684.  
  685. g_iRodzajNoza[0] = 1;
  686.  
  687. precache_model("models/v_deagle.mdl");
  688. precache_model("models/v_m4a1.mdl");
  689. precache_model("models/v_ak47.mdl");
  690. precache_model("models/v_awp.mdl");
  691. precache_model("models/v_knife.mdl");
  692. precache_model("models/p_knife.mdl");
  693.  
  694. while(!feof(iPlik)) {
  695. // "nazwa" "rodzaj" "cena" "sciezka1" "sciezka2"
  696. new szLinia[512], szNazwa[32], szRodzaj[4], szRodzajNoza[4], szWymogi[8], szSciezka[2][256], iRodzaj, iIdSkina;
  697.  
  698. fgets(iPlik, szLinia, 511);
  699. trim(szLinia);
  700.  
  701. if(szLinia[0] == ';' || !szLinia[0])
  702. continue;
  703.  
  704. parse(szLinia, szNazwa, 31, szRodzaj, 3, szWymogi, 7, szSciezka[0], 255, szSciezka[1], 255, szRodzajNoza, 3);
  705. iRodzaj = str_to_num(szRodzaj);
  706.  
  707. if(g_iIloscSkinow[iRodzaj] >= MAX_ILOSC_SKINOW) {
  708. server_print("[Skiny] Za duzo skinow rodzaju %d. Pominieto wczytanie skina %s", iRodzaj, szNazwa);
  709. continue;
  710. }
  711.  
  712. iIdSkina = ++g_iIloscSkinow[iRodzaj];
  713.  
  714. precache_model(szSciezka[0]);
  715. if(szSciezka[1][0]) {
  716. precache_model(szSciezka[1]);
  717. }
  718.  
  719. if(iRodzaj != NOZ && iRodzaj != DEAGLE && iRodzaj != M4A1 && iRodzaj != AK47 && iRodzaj != AWP) {
  720. copy(szSciezka[0], 255, szSciezka[0][14]);
  721. copy(szSciezka[0], 255, szSciezka[0][contain(szSciezka[0], "/")+1]);
  722. copy(szSciezka[0][strlen(szSciezka[0])-4], 251, "");
  723. } else {
  724. if(szSciezka[1][0]) {
  725. copy(g_szSciezkaSkina2[iRodzaj][iIdSkina], 255, szSciezka[1]);
  726. }
  727.  
  728. g_iRodzajNoza[iIdSkina] = str_to_num(szRodzajNoza);
  729. }
  730.  
  731. copy(g_szNazwaSkina[iRodzaj][iIdSkina], 31, szNazwa);
  732. copy(g_szSciezkaSkina[iRodzaj][iIdSkina], 255, szSciezka[0]);
  733.  
  734. if(isdigit(szWymogi[0])) {
  735. g_iWymogiSkina[iRodzaj][iIdSkina] = str_to_num(szWymogi);
  736. g_iRodzajWymogowSkina[iRodzaj][iIdSkina] = SZLUGI;
  737. } else {
  738. g_iWymogiSkina[iRodzaj][iIdSkina] = read_flags(szWymogi);
  739. g_iRodzajWymogowSkina[iRodzaj][iIdSkina] = FLAGI;
  740. }
  741. }
  742.  
  743. for(new i = 0; i < 5; i++) {
  744. server_print("[SKINY] Wczytano %d skinow %s", g_iIloscSkinow[i], NAZWA_RODZAJU(i));
  745. }
  746.  
  747. return 1;
  748. }
  749.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement