1. #include <amxmodx>
2. #define PLUGIN "Wymien Perk"
3. #define VERSION "1.0"
4. #define AUTHOR "QTM.Peyote & cypis & d0n tHe Pr0oo"
5. native cod_set_user_perk ( id , przedmiot , wartosc, lp )
6. native cod_get_user_class ( id)
7. native cod_get_user_perk ( id , wartocs , lp )
8. new bool : dostal_przedmiot [ 33][ 2];
9. new oddaj_id [ 33 ];
10. public plugin_init () {
11. register_plugin ( PLUGIN , VERSION , AUTHOR );
12.
13. register_clcmd ("say /wymien" , "ZamienPerk" );
14. register_clcmd ("say /zamien" , "ZamienPerk" );
15. register_clcmd ("say /wymien2" , "ZamienPerk2" );
16. register_clcmd ("say /zamien2" , "ZamienPerk2" );
17. register_event ("ResetHUD" , "cod_perk_changed" , "abe" );
18. }
19. public ZamienPerk ( id)
20. {
21. new menu = menu_create ( "Zamien sie perkiem" , "ZamienPerk_Handle" );
22. new cb = menu_makecallback ( "OddajPerk_Callback" );
23. for( new i = 0 , n = 0 ; i <= 32; i ++)
24. {
25. if(! is_user_connected ( i ))
26. continue ;
27. oddaj_id [ n++] = i ;
28. new nazwa_gracza [64 ];
29. get_user_name (i , nazwa_gracza , 63 )
30. menu_additem (menu , nazwa_gracza , "0" , 0, cb );
31. }
32. menu_display ( id, menu );
33. }
34. public cod_perk_changed ( id )
35. {
36. dostal_przedmiot [ id][ 1 ] = false ;
37. dostal_przedmiot [ id][ 0 ] = false ;
38. }
39. public ZamienPerk_Handle ( id, menu , item )
40. {
41. if ( item == MENU_EXIT )
42. {
43. menu_destroy (menu );
44. return PLUGIN_CONTINUE ;
45. }
46.
47. if (!is_user_connected ( oddaj_id [ item ])){
48. client_print (id , print_chat , "Nie odnaleziono zadanego gracza." );
49. return PLUGIN_CONTINUE ;
50. }
51.
52. if ( dostal_przedmiot [ oddaj_id [ item ]][0 ]){
53. client_print (id , print_chat , "Wybrany gracz musi poczekac 1 runde." );
54. return PLUGIN_CONTINUE ;
55. }
56.
57. if ( dostal_przedmiot [ id ][0 ]){
58. client_print (id , print_chat , "Musisz poczekac 1 runde." );
59. return PLUGIN_CONTINUE ;
60. }
61.
62. if (!cod_get_user_perk ( oddaj_id [ item ], 0 , 0 )){
63. client_print (id , print_chat , "Wybrany gracz nie mam zadnego perka." );
64. return PLUGIN_CONTINUE ;
65. }
66.
67. if (!cod_get_user_perk ( id, 0 , 0 )){
68. client_print (id , print_chat , "Nie masz zadnego perka." );
69. return PLUGIN_CONTINUE ;
70. }
71. new nazwa_menu [ 128], nick [ 64];
72.
73. get_user_name ( id, nick , charsmax ( nick ))
74. formatex ( nazwa_menu , charsmax ( nazwa_menu ), "Wymien sie perkiem z %s:" , nick )
75.
76. new menu2 = menu_create (nazwa_menu , "menu_wymien" );
77. menu_additem ( menu2 , "Tak" , nick );
78. menu_addblank ( menu2 , 0 )
79. menu_additem ( menu2 , "Nie" , nick );
80.
81. menu_setprop ( menu2 , MPROP_EXITNAME , "Wyjdz" );
82. menu_display ( oddaj_id [ item ], menu2 );
83. return PLUGIN_CONTINUE ;
84. }
85. public menu_wymien (id , menu , item )
86. {
87. if ( item == MENU_EXIT )
88. {
89. menu_destroy (menu );
90. return PLUGIN_CONTINUE ;
91. }
92. new access , callback , data [ 64];
93. menu_item_getinfo ( menu , item , access , data , charsmax ( data ), _ , _ , callback );
94. new id2 = get_user_index ( data )
95.
96. switch (item )
97. {
98. case 0:
99. {
100. new wartosc1 , wartosc2 ;
101. new perk_oddajacego = cod_get_user_perk ( id2 , wartosc1 , 0 )
102. new perk_dajacego = cod_get_user_perk ( id , wartosc2 , 0 )
103.
104. cod_set_user_perk ( id2 , perk_dajacego , wartosc2 , 0 );
105. cod_set_user_perk ( id , perk_oddajacego , wartosc1 , 0 );
106.
107. dostal_przedmiot [ id2 ][ 0 ] = true ;
108. dostal_przedmiot [ id ][0 ] = true ;
109.
110. new nazwa_dajacego [ 64];
111.
112. get_user_name ( id , nazwa_dajacego , charsmax ( nazwa_dajacego ))
113.
114. client_print ( id , print_chat , "Wymieniles sie perkiem z %s." , data );
115. client_print ( id2 , print_chat , "Wymieniles sie perkiem z %s." , nazwa_dajacego )
116. }
117. case 1: client_print ( id2 , print_chat , "Wybrany gracz nie zgodzil sie na wymiane perka."
)
118. }
119. return PLUGIN_CONTINUE ;
120. }
121. public OddajPerk_Callback ( id, menu , item )
122. {
123. if ( oddaj_id [item ] == id || ! cod_get_user_class ( oddaj_id [ item ]) || ! cod_get_user_perk (
oddaj_id [ item ], 0 , 0 ))
124. return ITEM_DISABLED ;
125. return ITEM_ENABLED ;
126. }
127. public ZamienPerk2 (id )
128. {
129. new menu = menu_create ( "Zamien sie perkiem 2" , "ZamienPerk_Handle2" );
130. new cb = menu_makecallback ( "OddajPerk_Callback2" );
131. for( new i = 0 , n = 0 ; i <= 32; i ++)
132. {
133. if(! is_user_connected ( i ))
134. continue ;
135. oddaj_id [ n++] = i ;
136. new nazwa_gracza [64 ];
137. get_user_name (i , nazwa_gracza , 63 )
138. menu_additem (menu , nazwa_gracza , "0" , 0, cb );
139. }
140. menu_display ( id, menu );
141. }
142. public ZamienPerk_Handle2 ( id, menu , item )
143. {
144. if ( item == MENU_EXIT )
145. {
146. menu_destroy (menu );
147. return PLUGIN_CONTINUE ;
148. }
149.
150. if (!is_user_connected ( oddaj_id [ item ])){
151. client_print (id , print_chat , "Nie odnaleziono zadanego gracza." );
152. return PLUGIN_CONTINUE ;
153. }
154.
155. if ( dostal_przedmiot [ oddaj_id [ item ]][1 ]){
156. client_print (id , print_chat , "Wybrany gracz musi poczekac 1 runde." );
157. return PLUGIN_CONTINUE ;
158. }
159.
160. if ( dostal_przedmiot [ id ][1 ]){
161. client_print (id , print_chat , "Musisz poczekac 1 runde." );
162. return PLUGIN_CONTINUE ;
163. }
164.
165. if (!cod_get_user_perk ( oddaj_id [ item ], 0 , 1 )){
166. client_print (id , print_chat , "Wybrany gracz nie mam zadnego perka." );
167. return PLUGIN_CONTINUE ;
168. }
169.
170. if (!cod_get_user_perk ( id, 0 , 1 )){
171. client_print (id , print_chat , "Nie masz zadnego perka." );
172. return PLUGIN_CONTINUE ;
173. }
174. new nazwa_menu [ 128], nick [ 64];
175.
176. get_user_name ( id, nick , charsmax ( nick ))
177. formatex ( nazwa_menu , charsmax ( nazwa_menu ), "Wymien sie perkiem z %s:" , nick )
178.
179. new menu2 = menu_create (nazwa_menu , "menu_wymien2" );
180. menu_additem ( menu2 , "Tak" , nick );
181. menu_addblank ( menu2 , 0 )
182. menu_additem ( menu2 , "Nie" , nick );
183.
184. menu_setprop ( menu2 , MPROP_EXITNAME , "Wyjdz" );
185. menu_display ( oddaj_id [ item ], menu2 );
186. return PLUGIN_CONTINUE ;
187. }
188. public menu_wymien2 ( id , menu , item )
189. {
190. if ( item == MENU_EXIT )
191. {
192. menu_destroy (menu );
193. return PLUGIN_CONTINUE ;
194. }
195. new access , callback , data [ 64];
196. menu_item_getinfo ( menu , item , access , data , charsmax ( data ), _ , _ , callback );
197. new id2 = get_user_index ( data )
198.
199. switch (item )
200. {
201. case 0:
202. {
203. new wartosc1 , wartosc2 ;
204. new perk_oddajacego = cod_get_user_perk ( id2 , wartosc1 , 1 )
205. new perk_dajacego = cod_get_user_perk ( id , wartosc2 , 1 )
206.
207. cod_set_user_perk ( id2 , perk_dajacego , wartosc2 , 1 );
208. cod_set_user_perk ( id , perk_oddajacego , wartosc1 , 1 );
209.
210. dostal_przedmiot [ id2 ][ 1 ] = true ;
211. dostal_przedmiot [ id ][1 ] = true ;
212.
213. new nazwa_dajacego [ 64];
214.
215. get_user_name ( id , nazwa_dajacego , charsmax ( nazwa_dajacego ))
216.
217. client_print ( id , print_chat , "Wymieniles sie perkiem z %s." , data );
218. client_print ( id2 , print_chat , "Wymieniles sie perkiem z %s." , nazwa_dajacego )
219. }
220. case 1: client_print ( id2 , print_chat , "Wybrany gracz nie zgodzil sie na wymiane perka."
)
221. }
222. return PLUGIN_CONTINUE ;
223. }
224. public OddajPerk_Callback2 (id , menu , item )
225. {
226. if ( oddaj_id [item ] == id || ! cod_get_user_class ( oddaj_id [ item ]) || ! cod_get_user_perk (
oddaj_id [ item ], 0 , 1 ))
227. return ITEM_DISABLED ;
228. return ITEM_ENABLED ;
229. }
230. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
234. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\
lang1045\\ f0\\ fs16 \n\\ par }
232. */