Advertisement
Guest User

Untitled

a guest
Feb 12th, 2023
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 25.41 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <monety_bzp>
  4. #include <csx>
  5. #include <fakemeta>
  6. #include <nvault>
  7. #include <colorchat>
  8.  
  9. #define PLUGIN "System Skiny"
  10. #define VERSION "2.0.0"
  11. #define AUTHOR "Boski Z Polski"
  12. #define MAXIK 100
  13.  
  14. /* SERWER */
  15.  
  16. new ilosc_kategorii;
  17. new nazwa_kategoria_skina[32][32];
  18. new ilosc_w_danej_kategorii[32];
  19.  
  20. new ilosc_skinow_w_kategorii[32];
  21. new nazwa_skina[MAXIK][MAXIK][MAXIK];
  22.  
  23. new id_broni[32];
  24.  
  25. new sciezka_skina[MAXIK][MAXIK][MAXIK];
  26.  
  27. new cena_skina[32][32];
  28.  
  29. new ustawienia_skina[32][32];
  30.  
  31. new kille_skina[32][32];
  32.  
  33. new flaga_skina[32][32][32];
  34.  
  35. new motd_skina[150][150][150];
  36.  
  37. new vault;
  38.  
  39. /* SERWER */
  40.  
  41. /* GRACZ */
  42.  
  43. new wybrana_kategoria[33];
  44. new wybrana_skina[33];
  45.  
  46. new czy_ma_skina[33][33][33];
  47. new czy_ma_zalozonego[33][33];
  48.  
  49. new licz_zabojstw_na_skinie[33][33][33];
  50.  
  51. /* GRACZ */
  52.  
  53.  
  54. public plugin_init()
  55. {
  56. #define FORUM_S "PsychaSiada.pl"
  57. #define SERWER_IP "51.83.214.206:27015"
  58. new g_miesiac[3];
  59. get_time("%m",g_miesiac, charsmax(g_miesiac));
  60. new MIESIAC = str_to_num(g_miesiac);
  61.  
  62. register_plugin(PLUGIN, VERSION, AUTHOR);
  63.  
  64. register_clcmd("say /skiny", "skiny_menu");
  65. register_event("CurWeapon","CurWeapon","be", "1=1");
  66. register_event("DeathMsg", "DeathMsg", "a");
  67.  
  68. vault = nvault_open("system_skinow");
  69. }
  70.  
  71. public plugin_end()
  72. {
  73. nvault_close(vault);
  74. }
  75.  
  76. public plugin_precache()
  77. {
  78. new sciezka[526];
  79. get_configsdir(sciezka, charsmax(sciezka));
  80. formatex(sciezka, charsmax(sciezka), "%s/skiny_za_monety.ini", sciezka);
  81.  
  82. if(file_exists(sciezka))
  83. {
  84. new linia[1024];
  85. new Len;
  86.  
  87. new g_nazwa_kategoria_skina[32];
  88. new g_nazwa_skina[32];
  89. new g_id_broni[32];
  90. new g_sciezka_skina[128];
  91. new g_cena_skina[32];
  92. new g_ustawienia_skina[32];
  93. new g_kille_skina[32];
  94. new g_flaga_skina[32];
  95. new g_motd_skina[248];
  96.  
  97. new h_nazwa_kategoria_skina[32];
  98.  
  99. for(new i = 0; read_file(sciezka, i, linia, charsmax(linia), Len); i++)
  100. {
  101. if(Len == 0 || !linia[0] || linia[0] == ';')
  102. {
  103. continue;
  104. }
  105.  
  106. parse(linia,
  107. g_nazwa_kategoria_skina, charsmax(g_nazwa_kategoria_skina),
  108. g_nazwa_skina, charsmax(g_nazwa_skina),
  109. g_id_broni, charsmax(g_id_broni),
  110. g_sciezka_skina, charsmax(g_sciezka_skina),
  111. g_cena_skina, charsmax(g_cena_skina),
  112. g_ustawienia_skina, charsmax(g_ustawienia_skina),
  113. g_kille_skina, charsmax(g_kille_skina),
  114. g_flaga_skina, charsmax(g_flaga_skina),
  115. g_motd_skina, charsmax(g_motd_skina)
  116. );
  117.  
  118. /* SCIEZKA SKINA */
  119.  
  120. if(file_exists(g_sciezka_skina))
  121. {
  122. precache_model(g_sciezka_skina);
  123. }
  124. else
  125. {
  126. continue;
  127. }
  128.  
  129. /* SCIEZKA SKINA */
  130.  
  131. /* KATEGORIA BRONII */
  132.  
  133. if(!equal(h_nazwa_kategoria_skina, g_nazwa_kategoria_skina))
  134. {
  135. ilosc_skinow_w_kategorii[ilosc_kategorii] = 0;
  136.  
  137. ++ilosc_kategorii;
  138. copy(nazwa_kategoria_skina[ilosc_kategorii], charsmax(nazwa_kategoria_skina), g_nazwa_kategoria_skina);
  139. }
  140.  
  141. ++ilosc_w_danej_kategorii[ilosc_kategorii];
  142.  
  143. copy(h_nazwa_kategoria_skina, charsmax(h_nazwa_kategoria_skina), nazwa_kategoria_skina[ilosc_kategorii]);
  144.  
  145. /* KATEGORIA BRONII */
  146.  
  147. /* NAZWA SKINA */
  148.  
  149. ++ilosc_skinow_w_kategorii[ilosc_kategorii];
  150. copy(nazwa_skina[ilosc_kategorii][ilosc_skinow_w_kategorii[ilosc_kategorii]], charsmax(nazwa_skina), g_nazwa_skina);
  151.  
  152. /* NAZWA SKINA */
  153.  
  154. /* ID BRONI */
  155.  
  156. id_broni[ilosc_kategorii] = str_to_num(g_id_broni);
  157.  
  158. /* ID BRONI */
  159.  
  160. /* CENA SKINA */
  161.  
  162. cena_skina[ilosc_kategorii][ilosc_skinow_w_kategorii[ilosc_kategorii]] = str_to_num(g_cena_skina);
  163.  
  164. /* CENA SKINA */
  165.  
  166. /* USTAWIENIA SKINA */
  167.  
  168. ustawienia_skina[ilosc_kategorii][ilosc_skinow_w_kategorii[ilosc_kategorii]] = str_to_num(g_ustawienia_skina);
  169.  
  170. /* USTAWIENIA SKINA */
  171.  
  172. /* KILLE SKINA */
  173.  
  174. kille_skina[ilosc_kategorii][ilosc_skinow_w_kategorii[ilosc_kategorii]] = str_to_num(g_kille_skina);
  175.  
  176. /* KILLE SKINA */
  177.  
  178. /* FLAGA SKINA */
  179.  
  180. copy(flaga_skina[ilosc_kategorii][ilosc_skinow_w_kategorii[ilosc_kategorii]], charsmax(flaga_skina), g_flaga_skina);
  181.  
  182. /* FLAGA SKINA */
  183.  
  184. /* MOTD SKINA */
  185.  
  186. copy(motd_skina[ilosc_kategorii][ilosc_skinow_w_kategorii[ilosc_kategorii]], charsmax(motd_skina), g_motd_skina);
  187.  
  188. /* MOTD SKINA */
  189.  
  190. /* SCIEZKA SKINA */
  191.  
  192. copy(sciezka_skina[ilosc_kategorii][ilosc_skinow_w_kategorii[ilosc_kategorii]], charsmax(nazwa_skina), g_sciezka_skina);
  193.  
  194. /* SCIEZKA SKINA */
  195. }
  196. }
  197. else
  198. {
  199. log_amx("Brak pliku ^"%s^"", sciezka);
  200. }
  201.  
  202. return PLUGIN_CONTINUE;
  203. }
  204.  
  205. public funkcja_aktywna(id, menu, item)
  206. {
  207. return ITEM_ENABLED;
  208. }
  209.  
  210. public funkcja_nieaktywna(id, menu, item)
  211. {
  212. return ITEM_DISABLED;
  213. }
  214.  
  215. public client_authorized(id)
  216. {
  217. new sid[33];
  218. get_user_authid(id, sid, charsmax(sid));
  219. new vaultdata[128];
  220.  
  221. for(new i = 1; i <= ilosc_kategorii; i++)
  222. {
  223. for(new k = 1; k <= ilosc_w_danej_kategorii[i]; k++)
  224. {
  225. new vaultkey[128];
  226. formatex(vaultkey, charsmax(vaultkey), "%s-%s%s", sid, nazwa_kategoria_skina[i],nazwa_skina[i][k]);
  227.  
  228. if(nvault_get(vault, vaultkey, vaultdata, charsmax(vaultdata)))
  229. {
  230. new dane[3][33];
  231. parse(vaultdata, dane[0], charsmax(dane), dane[1], charsmax(dane), dane[2], charsmax(dane));
  232.  
  233. if(str_to_num(dane[0]) == 1)
  234. {
  235. czy_ma_skina[id][i][k] = true;
  236.  
  237. if(!(str_to_num(dane[1]) == 0))
  238. {
  239. czy_ma_zalozonego[id][i] = k;
  240. }
  241.  
  242. licz_zabojstw_na_skinie[id][i][k] = str_to_num(dane[2]);
  243. }
  244. }
  245. }
  246. }
  247. }
  248.  
  249. public client_disconnected(id)
  250. {
  251. wybrana_kategoria[id] = false;
  252. wybrana_skina[id] = false;
  253.  
  254. for(new i = 1; i <= ilosc_kategorii; i++)
  255. {
  256. for(new k = 1; k <= ilosc_w_danej_kategorii[i]; k++)
  257. {
  258. czy_ma_skina[id][i][k] = false;
  259. licz_zabojstw_na_skinie[id][i][k] = 0;
  260. }
  261.  
  262. czy_ma_zalozonego[id][i] = false;
  263. }
  264. }
  265.  
  266. public CurWeapon(id)
  267. {
  268. if(!is_user_alive(id))
  269. {
  270. return PLUGIN_CONTINUE;
  271. }
  272.  
  273. new wid = read_data(2);
  274.  
  275. if(!czy_ma_zalozonego[id][obecna_bron(wid)])
  276. {
  277. return PLUGIN_CONTINUE;
  278. }
  279.  
  280. if(wid == id_broni[obecna_bron(wid)])
  281. {
  282. set_pev(id,pev_viewmodel2, sciezka_skina[obecna_bron(wid)][czy_ma_zalozonego[id][obecna_bron(wid)]]);
  283. }
  284.  
  285. return PLUGIN_CONTINUE;
  286. }
  287.  
  288. stock obecna_bron(wid)
  289. {
  290. new zwrot;
  291.  
  292. for(new i = 1; i <= ilosc_kategorii; i++)
  293. {
  294. if(wid == id_broni[i])
  295. {
  296. zwrot = i;
  297. }
  298. }
  299.  
  300. return zwrot;
  301. }
  302.  
  303. public skiny_menu(id)
  304. {
  305. new menu = menu_create("Wybierz kategorie, ktora Cie interesuje!", "skiny_menu_hadler");
  306.  
  307. for(new i = 1; i <= ilosc_kategorii; i++)
  308. {
  309. new w_menu[128];
  310. formatex(w_menu, charsmax(w_menu), "\w%s \y(\r%i\y)", nazwa_kategoria_skina[i], ilosc_w_danej_kategorii[i]);
  311.  
  312. menu_additem(menu, w_menu);
  313. }
  314.  
  315. menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
  316. menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
  317. menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
  318.  
  319. if(is_user_connected(id))
  320. {
  321. menu_display(id, menu);
  322. }
  323.  
  324. return PLUGIN_CONTINUE;
  325. }
  326.  
  327. public skiny_menu_hadler(id, menu, item)
  328. {
  329. if(item == MENU_EXIT)
  330. {
  331. menu_destroy(menu);
  332. return PLUGIN_CONTINUE;
  333. }
  334.  
  335. wybrana_kategoria[id] = item + 1;
  336. menu_wyboru_skina(id);
  337.  
  338. menu_destroy(menu);
  339. return PLUGIN_CONTINUE;
  340. }
  341.  
  342. public menu_wyboru_skina(id)
  343. {
  344. new menu = menu_create("Wybierz skin, ktory Cie interesuje!", "menu_wyboru_skina_hadler");
  345. new aktywna = menu_makecallback("funkcja_aktywna");
  346. //new nieaktywna = menu_makecallback("funkcja_nieaktywna");
  347.  
  348. for(new i = 1; i <= ilosc_w_danej_kategorii[wybrana_kategoria[id]]; i++)
  349. {
  350. new w_menu[128];
  351.  
  352. if(ustawienia_skina[wybrana_kategoria[id]][i] == 1)
  353. {
  354. formatex(w_menu, charsmax(w_menu), "\w%s \y(\r%i monet\y)", nazwa_skina[wybrana_kategoria[id]][i], cena_skina[wybrana_kategoria[id]][i]);
  355.  
  356. if(czy_ma_skina[id][wybrana_kategoria[id]][i])
  357. {
  358. if(czy_ma_zalozonego[id][wybrana_kategoria[id]] == i)
  359. {
  360. add(w_menu, charsmax(w_menu), " [ZALOZONE]");
  361. }
  362. else
  363. {
  364. add(w_menu, charsmax(w_menu), " [POSIADANE]");
  365. }
  366. }
  367.  
  368. menu_additem(menu, w_menu,_,_, aktywna);
  369. }
  370. else if(ustawienia_skina[wybrana_kategoria[id]][i] == 2)
  371. {
  372. formatex(w_menu, charsmax(w_menu), "\w%s \y(\r%i fragow\y)", nazwa_skina[wybrana_kategoria[id]][i], kille_skina[wybrana_kategoria[id]][i]);
  373.  
  374. if(czy_ma_skina[id][wybrana_kategoria[id]][i])
  375. {
  376. if(czy_ma_zalozonego[id][wybrana_kategoria[id]] == i)
  377. {
  378. add(w_menu, charsmax(w_menu), " [ZALOZONE]");
  379. }
  380. else
  381. {
  382. add(w_menu, charsmax(w_menu), " [POSIADANE]");
  383. }
  384. }
  385.  
  386. menu_additem(menu, w_menu,_,_, aktywna);
  387. }
  388. else if(ustawienia_skina[wybrana_kategoria[id]][i] == 3)
  389. {
  390. if(equal(flaga_skina[wybrana_kategoria[id]][i], "t"))
  391. {
  392. formatex(w_menu, charsmax(w_menu), "\w%s \y(\rVIP\y)", nazwa_skina[wybrana_kategoria[id]][i]);
  393.  
  394. if(czy_ma_skina[id][wybrana_kategoria[id]][i])
  395. {
  396. if(czy_ma_zalozonego[id][wybrana_kategoria[id]] == i)
  397. {
  398. add(w_menu, charsmax(w_menu), " [ZALOZONE]");
  399. }
  400. else
  401. {
  402. add(w_menu, charsmax(w_menu), " [POSIADANE]");
  403. }
  404. }
  405. }
  406. else if(equal(flaga_skina[wybrana_kategoria[id]][i], "s"))
  407. {
  408. formatex(w_menu, charsmax(w_menu), "\w%s \y(\rSVIP\y)", nazwa_skina[wybrana_kategoria[id]][i]);
  409.  
  410. if(czy_ma_skina[id][wybrana_kategoria[id]][i])
  411. {
  412. if(czy_ma_zalozonego[id][wybrana_kategoria[id]] == i)
  413. {
  414. add(w_menu, charsmax(w_menu), " [ZALOZONE]");
  415. }
  416. else
  417. {
  418. add(w_menu, charsmax(w_menu), " [POSIADANE]");
  419. }
  420. }
  421. }
  422. else
  423. {
  424. formatex(w_menu, charsmax(w_menu), "\w%s \y(\rUSLUGA\y)", nazwa_skina[wybrana_kategoria[id]][i]);
  425.  
  426. if(czy_ma_skina[id][wybrana_kategoria[id]][i])
  427. {
  428. if(czy_ma_zalozonego[id][wybrana_kategoria[id]] == i)
  429. {
  430. add(w_menu, charsmax(w_menu), " [ZALOZONE]");
  431. }
  432. else
  433. {
  434. add(w_menu, charsmax(w_menu), " [POSIADANE]");
  435. }
  436. }
  437. }
  438.  
  439.  
  440. menu_additem(menu, w_menu,_,_, aktywna);
  441. }
  442. }
  443.  
  444. menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
  445. menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
  446. menu_setprop(menu, MPROP_EXITNAME, "Powrot");
  447.  
  448. if(is_user_connected(id))
  449. {
  450. menu_display(id, menu);
  451. }
  452. return PLUGIN_CONTINUE;
  453. }
  454.  
  455. public menu_wyboru_skina_hadler(id, menu, item)
  456. {
  457. if(item == MENU_EXIT)
  458. {
  459. skiny_menu(id)
  460. return PLUGIN_CONTINUE;
  461. }
  462.  
  463. wybrana_skina[id] = item + 1;
  464. co_zrobic_ze_skinem(id);
  465.  
  466. menu_destroy(menu);
  467. return PLUGIN_CONTINUE;
  468. }
  469.  
  470. public co_zrobic_ze_skinem(id)
  471. {
  472. new menu = menu_create("Wybierz co chcesz zrobic ze skinem!", "co_zrobic_ze_skinem_hadler");
  473. new aktywna = menu_makecallback("funkcja_aktywna");
  474. new nieaktywna = menu_makecallback("funkcja_nieaktywna");
  475.  
  476. if(czy_ma_skina[id][wybrana_kategoria[id]][wybrana_skina[id]])
  477. {
  478. menu_additem(menu, "ZARZADZANIE SKINEM",_,_, aktywna);
  479. menu_additem(menu, "KUPNO SKINA",_,_, nieaktywna);
  480. }
  481. else
  482. {
  483. menu_additem(menu, "ZARZADZANIE SKINEM",_,_, nieaktywna);
  484.  
  485. new flagi = read_flags(flaga_skina[wybrana_kategoria[id]][wybrana_skina[id]]);
  486.  
  487. if(get_user_flags(id) & flagi)
  488. {
  489. menu_additem(menu, "KUPNO SKINA",_,_, aktywna);
  490. }
  491. else
  492. {
  493. menu_additem(menu, "KUPNO SKINA",_,_, nieaktywna);
  494. }
  495. }
  496.  
  497. menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
  498. menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
  499. menu_setprop(menu, MPROP_EXITNAME, "Powrot");
  500.  
  501. if(is_user_connected(id))
  502. {
  503. menu_display(id, menu);
  504. }
  505. return PLUGIN_CONTINUE;
  506. }
  507.  
  508. public co_zrobic_ze_skinem_hadler(id, menu, item)
  509. {
  510. if(item == MENU_EXIT)
  511. {
  512. menu_wyboru_skina(id)
  513. return PLUGIN_CONTINUE;
  514. }
  515.  
  516. switch(item)
  517. {
  518. case 0:
  519. {
  520. zarzadzanie_skinem(id);
  521. }
  522. case 1:
  523. {
  524. zainteresowany_skin_menu(id);
  525. }
  526. }
  527.  
  528. menu_destroy(menu);
  529. return PLUGIN_CONTINUE;
  530. }
  531.  
  532. public zarzadzanie_skinem(id)
  533. {
  534. new tytul[128];
  535.  
  536. if(ustawienia_skina[wybrana_kategoria[id]][wybrana_skina[id]] == 1)
  537. {
  538. formatex(tytul, charsmax(tytul), "Bron: %s^nNazwa Skina: %s^nCena Skina: %i", nazwa_kategoria_skina[wybrana_kategoria[id]], nazwa_skina[wybrana_kategoria[id]][wybrana_skina[id]], cena_skina[wybrana_kategoria[id]][wybrana_skina[id]]);
  539. }
  540. else if(ustawienia_skina[wybrana_kategoria[id]][wybrana_skina[id]] == 2)
  541. {
  542. formatex(tytul, charsmax(tytul), "Bron: %s^nNazwa Skina: %s^nFragi Skina: %i", nazwa_kategoria_skina[wybrana_kategoria[id]], nazwa_skina[wybrana_kategoria[id]][wybrana_skina[id]], kille_skina[wybrana_kategoria[id]][wybrana_skina[id]]);
  543. }
  544. else if(ustawienia_skina[wybrana_kategoria[id]][wybrana_skina[id]] == 3)
  545. {
  546. formatex(tytul, charsmax(tytul), "Bron: %s^nNazwa Skina: %s", nazwa_kategoria_skina[wybrana_kategoria[id]], nazwa_skina[wybrana_kategoria[id]][wybrana_skina[id]]);
  547. }
  548.  
  549. new menu = menu_create(tytul, "zarzadzanie_skinem_hadler");
  550.  
  551. if(czy_ma_skina[id][wybrana_kategoria[id]][wybrana_skina[id]])
  552. {
  553. if(czy_ma_zalozonego[id][wybrana_kategoria[id]] == wybrana_skina[id])
  554. {
  555. menu_additem(menu, "ZDEJMIJ SKINA");
  556. }
  557. else
  558. {
  559. menu_additem(menu, "ZALOZ SKINA");
  560. }
  561. }
  562.  
  563. menu_additem(menu, "PODGLAD SKINA");
  564.  
  565. if(ustawienia_skina[wybrana_kategoria[id]][wybrana_skina[id]] == 1)
  566. {
  567. menu_additem(menu, "SPRZEDAJ SKINA");
  568. }
  569.  
  570. menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
  571. menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
  572. menu_setprop(menu, MPROP_EXITNAME, "Powrot");
  573.  
  574. if(is_user_connected(id))
  575. {
  576. menu_display(id, menu);
  577. }
  578. return PLUGIN_CONTINUE;
  579. }
  580.  
  581. public zarzadzanie_skinem_hadler(id, menu, item)
  582. {
  583. if(item == MENU_EXIT)
  584. {
  585. co_zrobic_ze_skinem(id);
  586. return PLUGIN_CONTINUE;
  587. }
  588.  
  589. switch(item)
  590. {
  591. case 0:
  592. {
  593. if(czy_ma_zalozonego[id][wybrana_kategoria[id]] == wybrana_skina[id])
  594. {
  595. czy_ma_zalozonego[id][wybrana_kategoria[id]] = 0;
  596. ColorChat(id, TEAM_COLOR, "^x04[System Skinow]^x03 Zdjales^x04 %s!", nazwa_skina[wybrana_kategoria[id]][wybrana_skina[id]]);
  597.  
  598. new sid[33];
  599. get_user_authid(id, sid, charsmax(sid));
  600. new vaultkey[128];
  601. formatex(vaultkey, charsmax(vaultkey), "%s-%s%s", sid, nazwa_kategoria_skina[wybrana_kategoria[id]], nazwa_skina[wybrana_kategoria[id]][wybrana_skina[id]]);
  602. new vaultdata[128];
  603. formatex(vaultdata, charsmax(vaultdata), "%i %i %i", czy_ma_skina[id][wybrana_kategoria[id]][wybrana_skina[id]], 0, licz_zabojstw_na_skinie[id][wybrana_kategoria[id]][wybrana_skina[id]]);
  604. nvault_set(vault, vaultkey, vaultdata);
  605. }
  606. else
  607. {
  608. if(!(czy_ma_zalozonego[id][wybrana_kategoria[id]] == wybrana_skina[id]))
  609. {
  610. new sid[33];
  611. get_user_authid(id, sid, charsmax(sid));
  612. new vaultkey[128];
  613. formatex(vaultkey, charsmax(vaultkey), "%s-%s%s", sid, nazwa_kategoria_skina[wybrana_kategoria[id]], nazwa_skina[wybrana_kategoria[id]][czy_ma_zalozonego[id][wybrana_kategoria[id]]]);
  614. new vaultdata[128];
  615. formatex(vaultdata, charsmax(vaultdata), "%i %i %i", czy_ma_skina[id][wybrana_kategoria[id]][czy_ma_zalozonego[id][wybrana_kategoria[id]]], 0, licz_zabojstw_na_skinie[id][wybrana_kategoria[id]][wybrana_skina[id]]);
  616. nvault_set(vault, vaultkey, vaultdata);
  617.  
  618. czy_ma_zalozonego[id][wybrana_kategoria[id]] = 0;
  619. }
  620.  
  621. czy_ma_zalozonego[id][wybrana_kategoria[id]] = wybrana_skina[id];
  622. ColorChat(id, TEAM_COLOR, "^x04[System Skinow]^x03 Zalozyles^x04 %s!", nazwa_skina[wybrana_kategoria[id]][wybrana_skina[id]]);
  623.  
  624. new sid[33];
  625. get_user_authid(id, sid, charsmax(sid));
  626. new vaultkey[128];
  627. formatex(vaultkey, charsmax(vaultkey), "%s-%s%s", sid, nazwa_kategoria_skina[wybrana_kategoria[id]], nazwa_skina[wybrana_kategoria[id]][wybrana_skina[id]]);
  628. new vaultdata[128];
  629. formatex(vaultdata, charsmax(vaultdata), "%i %i %i", czy_ma_skina[id][wybrana_kategoria[id]][wybrana_skina[id]], 1, licz_zabojstw_na_skinie[id][wybrana_kategoria[id]][wybrana_skina[id]]);
  630. nvault_set(vault, vaultkey, vaultdata);
  631. }
  632.  
  633. zarzadzanie_skinem(id);
  634.  
  635. }
  636. case 1:
  637. {
  638. pokaz_motd(id, wybrana_kategoria[id], wybrana_skina[id]);
  639. zarzadzanie_skinem(id);
  640. }
  641. case 2:
  642. {
  643. if(czy_ma_zalozonego[id][wybrana_kategoria[id]] == wybrana_skina[id])
  644. {
  645. czy_ma_zalozonego[id][wybrana_kategoria[id]] = 0;
  646. }
  647.  
  648. czy_ma_skina[id][wybrana_kategoria[id]][wybrana_skina[id]] = false;
  649. ffa_ustaw_walute(id, ffa_zwrot_waluty(id) + cena_skina[wybrana_kategoria[id]][wybrana_skina[id]]);
  650.  
  651. new sid[33];
  652. get_user_authid(id, sid, charsmax(sid));
  653. new vaultkey[128];
  654. formatex(vaultkey, charsmax(vaultkey), "%s-%s%s", sid, nazwa_kategoria_skina[wybrana_kategoria[id]], nazwa_skina[wybrana_kategoria[id]][wybrana_skina[id]]);
  655. new vaultdata[128];
  656. formatex(vaultdata, charsmax(vaultdata), "%i %i %i", czy_ma_skina[id][wybrana_kategoria[id]][wybrana_skina[id]], 0, licz_zabojstw_na_skinie[id][wybrana_kategoria[id]][wybrana_skina[id]]);
  657. nvault_set(vault, vaultkey, vaultdata);
  658.  
  659. ColorChat(id, TEAM_COLOR, "^x04[System Skinow]^x03 Sprzedales^x04 %s^x03 za^x04 %i monet!", nazwa_skina[wybrana_kategoria[id]][wybrana_skina[id]], cena_skina[wybrana_kategoria[id]][wybrana_skina[id]]);
  660. menu_wyboru_skina(id);
  661. }
  662. }
  663.  
  664. menu_destroy(menu);
  665. return PLUGIN_CONTINUE;
  666. }
  667.  
  668. public zainteresowany_skin_menu(id)
  669. {
  670. new tytul[128];
  671.  
  672. if(ustawienia_skina[wybrana_kategoria[id]][wybrana_skina[id]] == 1)
  673. {
  674. formatex(tytul, charsmax(tytul), "Bron: %s^nNazwa Skina: %s^nCena Skina: %i", nazwa_kategoria_skina[wybrana_kategoria[id]], nazwa_skina[wybrana_kategoria[id]][wybrana_skina[id]], cena_skina[wybrana_kategoria[id]][wybrana_skina[id]]);
  675. }
  676. else if(ustawienia_skina[wybrana_kategoria[id]][wybrana_skina[id]] == 2)
  677. {
  678. formatex(tytul, charsmax(tytul), "Bron: %s^nNazwa Skina: %s^nFragi Skina: %i", nazwa_kategoria_skina[wybrana_kategoria[id]], nazwa_skina[wybrana_kategoria[id]][wybrana_skina[id]], kille_skina[wybrana_kategoria[id]][wybrana_skina[id]]);
  679. }
  680. else if(ustawienia_skina[wybrana_kategoria[id]][wybrana_skina[id]] == 3)
  681. {
  682. formatex(tytul, charsmax(tytul), "Bron: %s^nNazwa Skina: %s", nazwa_kategoria_skina[wybrana_kategoria[id]], nazwa_skina[wybrana_kategoria[id]][wybrana_skina[id]]);
  683. }
  684.  
  685. new menu = menu_create(tytul, "zainteresowany_skin_menu_hadler");
  686.  
  687. if(ustawienia_skina[wybrana_kategoria[id]][wybrana_skina[id]] == 1)
  688. {
  689. menu_additem(menu, "KUP SKINA");
  690. }
  691. else if(ustawienia_skina[wybrana_kategoria[id]][wybrana_skina[id]] == 2)
  692. {
  693. menu_additem(menu, "ODBLOKUJ SKINA");
  694. }
  695. else if(ustawienia_skina[wybrana_kategoria[id]][wybrana_skina[id]] == 3)
  696. {
  697. menu_additem(menu, "ODBLOKUJ SKINA");
  698. }
  699.  
  700. menu_additem(menu, "PODGLAD SKINA");
  701.  
  702. menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
  703. menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
  704. menu_setprop(menu, MPROP_EXITNAME, "Powrot");
  705.  
  706. if(is_user_connected(id))
  707. {
  708. menu_display(id, menu);
  709. }
  710. return PLUGIN_CONTINUE;
  711. }
  712.  
  713. public zainteresowany_skin_menu_hadler(id, menu, item)
  714. {
  715. if(item == MENU_EXIT)
  716. {
  717. co_zrobic_ze_skinem(id)
  718. return PLUGIN_CONTINUE;
  719. }
  720.  
  721. switch(item)
  722. {
  723. case 0:
  724. {
  725. kupno_skina(id, wybrana_kategoria[id], wybrana_skina[id]);
  726. }
  727. case 1:
  728. {
  729. pokaz_motd(id, wybrana_kategoria[id], wybrana_skina[id]);
  730. zainteresowany_skin_menu(id);
  731. }
  732. }
  733.  
  734. menu_destroy(menu);
  735. return PLUGIN_CONTINUE;
  736. }
  737.  
  738. public kupno_skina(id, kategoria, skin)
  739. {
  740. if(ustawienia_skina[kategoria][skin] == 1)
  741. {
  742. if(ffa_zwrot_waluty(id) >= cena_skina[wybrana_kategoria[id]][wybrana_skina[id]])
  743. {
  744. czy_ma_skina[id][wybrana_kategoria[id]][wybrana_skina[id]] = true;
  745. ffa_ustaw_walute(id, ffa_zwrot_waluty(id) - cena_skina[wybrana_kategoria[id]][wybrana_skina[id]]);
  746.  
  747. ColorChat(id, TEAM_COLOR, "^x04[System Skinow]^x03 Kupiles^x04 %s!", nazwa_skina[kategoria][skin]);
  748.  
  749. new sid[33];
  750. get_user_authid(id, sid, charsmax(sid));
  751. new vaultkey[128];
  752. formatex(vaultkey, charsmax(vaultkey), "%s-%s%s", sid, nazwa_kategoria_skina[wybrana_kategoria[id]], nazwa_skina[kategoria][skin]);
  753. new vaultdata[128];
  754. formatex(vaultdata, charsmax(vaultdata), "%i %i %i", czy_ma_skina[id][kategoria][skin], 0, licz_zabojstw_na_skinie[id][kategoria][skin]);
  755. nvault_set(vault, vaultkey, vaultdata);
  756.  
  757. zaloz_skina(id, kategoria, skin);
  758. }
  759. else
  760. {
  761. ColorChat(id, TEAM_COLOR, "^x04[System Skinow]^x03 Masz za malo monet!");
  762. }
  763. }
  764. else if(ustawienia_skina[kategoria][skin] == 2)
  765. {
  766. new stats[8],bodyhits[8];
  767. get_user_stats(id, stats, bodyhits);
  768.  
  769. if(stats[0] >= kille_skina[wybrana_kategoria[id]][wybrana_skina[id]])
  770. {
  771. czy_ma_skina[id][wybrana_kategoria[id]][wybrana_skina[id]] = true;
  772.  
  773. ColorChat(id, TEAM_COLOR, "^x04[System Skinow]^x03 Odblokowales^x04 %s!", nazwa_skina[kategoria][skin]);
  774.  
  775. new sid[33];
  776. get_user_authid(id, sid, charsmax(sid));
  777. new vaultkey[128];
  778. formatex(vaultkey, charsmax(vaultkey), "%s-%s%s", sid, nazwa_kategoria_skina[wybrana_kategoria[id]], nazwa_skina[kategoria][skin]);
  779. new vaultdata[128];
  780. formatex(vaultdata, charsmax(vaultdata), "%i %i %i", czy_ma_skina[id][kategoria][skin], 0, licz_zabojstw_na_skinie[id][kategoria][skin]);
  781. nvault_set(vault, vaultkey, vaultdata);
  782.  
  783. zaloz_skina(id, kategoria, skin);
  784. }
  785. else
  786. {
  787. ColorChat(id, TEAM_COLOR, "^x04[System Skinow]^x03 Masz za malo fragow!");
  788. }
  789. }
  790. else if(ustawienia_skina[kategoria][skin] == 3)
  791. {
  792. new flagi = read_flags(flaga_skina[kategoria][skin]);
  793.  
  794. if(get_user_flags(id) & flagi)
  795. {
  796. czy_ma_skina[id][wybrana_kategoria[id]][wybrana_skina[id]] = true;
  797.  
  798. ColorChat(id, TEAM_COLOR, "^x04[System Skinow]^x03 Odblokowales^x04 %s!", nazwa_skina[kategoria][skin]);
  799.  
  800. new sid[33];
  801. get_user_authid(id, sid, charsmax(sid));
  802. new vaultkey[128];
  803. formatex(vaultkey, charsmax(vaultkey), "%s-%s%s", sid, nazwa_kategoria_skina[wybrana_kategoria[id]], nazwa_skina[kategoria][skin]);
  804. new vaultdata[128];
  805. formatex(vaultdata, charsmax(vaultdata), "%i %i %i", czy_ma_skina[id][kategoria][skin], 0, licz_zabojstw_na_skinie[id][kategoria][skin]);
  806. nvault_set(vault, vaultkey, vaultdata);
  807.  
  808. zaloz_skina(id, kategoria, skin);
  809. }
  810. else
  811. {
  812. ColorChat(id, TEAM_COLOR, "^x04[System Skinow]^x03 Nie masz odpowiedniej flagi!");
  813. }
  814. }
  815.  
  816. menu_wyboru_skina(id);
  817. }
  818.  
  819. public zaloz_skina(id, kategoria, skin)
  820. {
  821. if(czy_ma_zalozonego[id][wybrana_kategoria[id]])
  822. {
  823. new sid[33];
  824. get_user_authid(id, sid, charsmax(sid));
  825. new vaultkey[128];
  826. formatex(vaultkey, charsmax(vaultkey), "%s-%s%s", sid, nazwa_kategoria_skina[wybrana_kategoria[id]], nazwa_skina[wybrana_kategoria[id]][czy_ma_zalozonego[id][wybrana_kategoria[id]]]);
  827. new vaultdata[128];
  828. formatex(vaultdata, charsmax(vaultdata), "%i %i %i", czy_ma_skina[id][wybrana_kategoria[id]][czy_ma_zalozonego[id][wybrana_kategoria[id]]], 0, licz_zabojstw_na_skinie[id][czy_ma_zalozonego[id][wybrana_kategoria[id]]]);
  829. nvault_set(vault, vaultkey, vaultdata);
  830.  
  831. czy_ma_zalozonego[id][kategoria] = 0;
  832. }
  833.  
  834. czy_ma_zalozonego[id][kategoria] = skin;
  835. ColorChat(id, TEAM_COLOR, "^x04[System Skinow]^x03 Zalozyles^x04 %s!", nazwa_skina[kategoria][skin]);
  836.  
  837. new sid[33];
  838. get_user_authid(id, sid, charsmax(sid));
  839. new vaultkey[128];
  840. formatex(vaultkey, charsmax(vaultkey), "%s-%s%s", sid, nazwa_kategoria_skina[wybrana_kategoria[id]], nazwa_skina[kategoria][skin]);
  841. new vaultdata[128];
  842. formatex(vaultdata, charsmax(vaultdata), "%i %i %i", czy_ma_skina[id][kategoria][skin], 1, licz_zabojstw_na_skinie[id][kategoria][skin]);
  843. nvault_set(vault, vaultkey, vaultdata);
  844. }
  845.  
  846. #define g_Buffer 2536
  847.  
  848. public pokaz_motd(id, kategoria, skin)
  849. {
  850. new Len;
  851. new Data[g_Buffer];
  852.  
  853. Len = formatex(Data[Len], g_Buffer - Len, "<html><body style=^"padding: 0; margin: 0;^"><img style=^"width: 100%%; height: 100%%;^" src=^"%s^">", motd_skina[kategoria][skin]);
  854. Len += formatex(Data[Len],g_Buffer - Len,"</center></body></html>");
  855.  
  856. show_motd(id, Data, nazwa_skina[kategoria][skin]);
  857. }
  858.  
  859. public plugin_natives()
  860. {
  861. register_native("boski_skiny_startrack", "pobierz_startrack", 1);
  862. register_native("boski_skiny_startrack_czy_ma", "pobierz_czy_ma_startrack", 1);
  863. }
  864.  
  865. public pobierz_startrack(id)
  866. {
  867. new wid = get_user_weapon(id);
  868. new zwrot;
  869.  
  870. if(pobierz_czy_ma_startrack(id))
  871. {
  872. zwrot = licz_zabojstw_na_skinie[id][obecna_bron(wid)][czy_ma_zalozonego[id][obecna_bron(wid)]];
  873. }
  874.  
  875. return zwrot;
  876. }
  877.  
  878. public pobierz_czy_ma_startrack(id)
  879. {
  880. new zwrot;
  881. new wid = get_user_weapon(id);
  882.  
  883. if(czy_ma_zalozonego[id][obecna_bron(wid)])
  884. {
  885. zwrot = true;
  886. }
  887. else
  888. {
  889. zwrot = false;
  890. }
  891.  
  892. return zwrot;
  893. }
  894.  
  895. public DeathMsg()
  896. {
  897. new kid = read_data(1);
  898. new wid = get_user_weapon(kid);
  899.  
  900. if(czy_ma_zalozonego[kid][obecna_bron(wid)])
  901. {
  902. ++ licz_zabojstw_na_skinie[kid][obecna_bron(wid)][czy_ma_zalozonego[kid][obecna_bron(wid)]];
  903. zapisz_kile(kid, obecna_bron(wid), czy_ma_zalozonego[kid][obecna_bron(wid)])
  904. }
  905. }
  906.  
  907. public zapisz_kile(id, kategoria, skin)
  908. {
  909. new sid[33];
  910. get_user_authid(id, sid, charsmax(sid));
  911. new vaultkey[128];
  912. formatex(vaultkey, charsmax(vaultkey), "%s-%s%s", sid, nazwa_kategoria_skina[kategoria], nazwa_skina[kategoria][skin]);
  913. new vaultdata[128];
  914. formatex(vaultdata, charsmax(vaultdata), "%i %i %i", czy_ma_skina[id][kategoria][skin], 1, licz_zabojstw_na_skinie[id][kategoria][skin]);
  915. nvault_set(vault, vaultkey, vaultdata);
  916. }
  917. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  918. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
  919. */
  920.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement