Advertisement
ejdrienxd

Untitled

Oct 21st, 2016
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.35 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <shop_sms>
  3.  
  4. native bf2_get_maxbadges();
  5. native bf2_get_badge_name(badge_id, badge_level, name[], len);
  6. native bf2_get_user_badge(index, badge_id);
  7. native bf2_set_user_badge(index, badge_id, level);
  8.  
  9. new const service_id[MAX_ID] = "bf2_badge";
  10. #define PLUGIN "Sklep-SMS: Usluga BF2 Odznaki"
  11. #define AUTHOR "SeeK"
  12.  
  13. #define TASK_MENU1 1000
  14.  
  15. new stronaP[33], bool:wybranoP[33]
  16. new dane[33]
  17.  
  18. public plugin_natives() {
  19. set_native_filter("native_filter");
  20. }
  21.  
  22. public plugin_init() {
  23. register_plugin(PLUGIN, VERSION, AUTHOR)
  24. }
  25.  
  26. public plugin_cfg() {
  27. ss_register_service(service_id);
  28. }
  29.  
  30. public ss_service_chosen(id,amount) {
  31. new menu = menu_create("Wybierz odznake:","menuHandler")
  32. new menu_callback = menu_makecallback("menuCallback");
  33. new nazwa[64]
  34. for(new i = 0; i < bf2_get_maxbadges(); ++i) {
  35. bf2_get_badge_name(i,amount,nazwa,charsmax(nazwa))
  36. new data[2]
  37. data[0] = i+1
  38. data[1] = bf2_get_user_badge(id,i) >= amount ? 0 : 1
  39.  
  40. menu_additem(menu,nazwa,data,0,menu_callback)
  41. }
  42.  
  43. menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
  44. menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
  45. menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
  46.  
  47. //Zerujemy
  48. wybranoP[id] = false
  49. stronaP[id] = 0
  50.  
  51. // Dane dla taska
  52. new data[2]
  53. data[0] = id
  54. data[1] = menu
  55.  
  56. // Wyswietlamy
  57. wyswietlMenu(data)
  58.  
  59. return SS_STOP
  60. }
  61.  
  62. public menuCallback(id, menu, item) {
  63. new data[3], iName[2];
  64. new zaccess, callback;
  65. menu_item_getinfo(menu, item, zaccess, data,charsmax(data), iName, charsmax(iName), callback);
  66.  
  67. return data[1] ? ITEM_ENABLED : ITEM_DISABLED
  68. //return ITEM_ENABLED
  69. }
  70.  
  71. public wyswietlMenu(data[]) {
  72. new id = data[0]
  73. if(!is_user_connected(id)) {
  74. menu_destroy(data[1])
  75. return
  76. }
  77. if(!wybranoP[id]) {
  78. new menu, newmenu, page
  79. player_menu_info(id, menu, newmenu, page)
  80. if(newmenu != data[1])
  81. menu_display(id,data[1],stronaP[id])
  82. else
  83. stronaP[id] = page
  84.  
  85. set_task(0.1,"wyswietlMenu",TASK_MENU1+id, data, 2)
  86. }
  87. }
  88.  
  89. public menuHandler(id, menu, item) {
  90. if(item == MENU_EXIT) {
  91. // Niszczymy menu
  92. wybranoP[id] = true
  93. menu_destroy(menu)
  94. return
  95. }
  96.  
  97. if(item >= 0) {
  98. // Wybrano odznake
  99. wybranoP[id] = true
  100.  
  101. new data[2], iName[2];
  102. new zaccess, callback;
  103. menu_item_getinfo(menu, item, zaccess, data,charsmax(data), iName, charsmax(iName), callback);
  104.  
  105. dane[id] = data[0]-1
  106.  
  107. // Niszczymy menu
  108. menu_destroy(menu)
  109.  
  110. ss_show_sms_info(id)
  111. }
  112. }
  113.  
  114. public ss_service_bought(id,amount) {
  115. new badge_id = dane[id];
  116. new badge_level = amount;
  117.  
  118. if( bf2_set_user_badge(id,badge_id,badge_level) == -1 )
  119. return SS_ERROR;
  120.  
  121. new szText[512];
  122. bf2_get_badge_name(badge_id,badge_level,szText,sizeof szText);
  123. format(szText,sizeof szText,"<html><body style=^"background-color: #0f0f0f; color: #ccc; font-size: 14px;^"><center><br /><br />\
  124. <h1>Kupiles/as odznake: <span style=^"color: red^">%s</span><br /><br />\
  125. W razie problemow skontaktuj sie z nami.\
  126. </center></body></html>",szText);
  127. show_motd(id,szText,"Informacje dotyczace uslugi");
  128.  
  129. return SS_OK;
  130. }
  131.  
  132. public native_filter(const native_name[], index, trap){
  133. if(trap == 0) {
  134. register_plugin(PLUGIN, VERSION, AUTHOR); // Rejestrujemy plugin, aby nie bylo na liscie unknown
  135. pause_plugin();
  136. return PLUGIN_HANDLED;
  137. }
  138. return PLUGIN_CONTINUE;
  139. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement