1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316. | #include <amxmodx>
#include <codmod>
#include <ColorChat>
new bool:dostal_przedmiot[33][2];
new oddaj_id[33];
new bool:blokada[33];
new bool:block=true;
register_clcmd("say /wymien", "MenuZamien");
register_clcmd("say /zamien", "MenuZamien");
public MenuZamien(id)
{
new menu = menu_create("Menu Wymiany", "MenuZamien_handle");
menu_additem(menu, "Wymien Perk^n", "1", 0);
menu_additem(menu, "Wymien Perk2^n", "2", 0);
if(block) {
menu_additem(menu,"\yMozliwosc Wymiany \d[\rOdblokowana\d]","3",0)
}
else {
menu_additem(menu,"\yMozliwosc Wymiany \d[\rZablokowana\d]","4",0)
}
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
}
public MenuZamien_handle(id, menu, item)
{
new data[6], iName[64];
new zaccess, callback;
menu_item_getinfo(menu, item, zaccess, data,5, iName, 64, callback);
new key = str_to_num(data)
switch(key)
{
case 1:
{
ZamienPerk(id)
menu_destroy(menu);
return PLUGIN_HANDLED;
}
case 2:
{
ZamienPerk2(id)
menu_destroy(menu);
return PLUGIN_HANDLED;
}
case 3:
{
zablokuj(id)
block=!block;
return PLUGIN_HANDLED;
}
case 4:
{
odblokuj(id)
block=!block;
return PLUGIN_HANDLED;
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public zablokuj(id)
{
blokada[id] = true;
ColorChat(id, GREEN, "[COD:MW3]^x03 Zablokowales mozliwosc wymiany z toba perkami!");
}
public odblokuj(id)
{
blokada[id] = false;
ColorChat(id, GREEN, "[COD:MW3]^x03 Odblokowales mozliwosc wymiany z toba perkami");
}
public ZamienPerk(id)
{
new szText[128], szPerk[33];
new menu = menu_create("Zamien sie perkiem 1", "ZamienPerk_Handle");
new cb = menu_makecallback("OddajPerk_Callback");
for(new i=0, n=0; i<=32; i++)
{
if(!is_user_connected(i))
continue;
oddaj_id[n++] = i;
new nazwa_gracza[64];
get_user_name(i, nazwa_gracza, 63);
cod_get_perk_name(cod_get_user_perk(i, 0, 0), szPerk, 32);
format(szText, 127, "%s \r[Perk: %s]", nazwa_gracza, szPerk);
menu_additem(menu, szText, "0", 0, cb);
}
menu_display(id, menu);
}
public cod_perk_changed(id)
{
dostal_przedmiot[id][1] = false;
dostal_przedmiot[id][0] = false;
}
public ZamienPerk_Handle(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
if(!is_user_connected(oddaj_id[item])){
ColorChat(id, GREEN, "[COD:MW3]^x03 Nie odnaleziono zadanego gracza.");
return PLUGIN_CONTINUE;
}
if(dostal_przedmiot[oddaj_id[item]][0]){
ColorChat(id, GREEN, "[COD:MW3]^x03 Wybrany gracz musi poczekac 1 runde.");
return PLUGIN_CONTINUE;
}
if(dostal_przedmiot[id][0]){
ColorChat(id, GREEN, "[COD:MW3]^x03 Musisz poczekac 1 runde.");
return PLUGIN_CONTINUE;
}
if(!cod_get_user_perk(oddaj_id[item], 0, 0)){
ColorChat(id, GREEN, "[COD:MW3]^x03 Wybrany gracz nie mam zadnego perka.");
return PLUGIN_CONTINUE;
}
if(!cod_get_user_perk(id, 0, 0)){
ColorChat(id, GREEN, "[COD:MW3]^x03 Nie masz zadnego perka.");
return PLUGIN_CONTINUE;
}
new nazwa_menu[128], nick[64];
get_user_name(id, nick, charsmax(nick))
formatex(nazwa_menu, charsmax(nazwa_menu), "Wymien sie perkiem z %s:", nick)
new menu2 = menu_create(nazwa_menu, "menu_wymien");
menu_additem(menu2, "Tak", nick);
menu_addblank(menu2, 0)
menu_additem(menu2, "Nie", nick);
menu_setprop(menu2, MPROP_EXITNAME, "Wyjdz");
menu_display(oddaj_id[item], menu2);
return PLUGIN_CONTINUE;
}
public menu_wymien(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
new access, callback, data[64];
menu_item_getinfo(menu, item, access, data, charsmax(data), _, _, callback);
new id2 = get_user_index(data)
switch(item)
{
case 0:
{
new wartosc1, wartosc2;
new perk_oddajacego = cod_get_user_perk(id2, wartosc1, 0)
new perk_dajacego = cod_get_user_perk(id, wartosc2, 0)
cod_set_user_perk(id2, perk_dajacego, wartosc2, 0);
cod_set_user_perk(id, perk_oddajacego, wartosc1, 0);
dostal_przedmiot[id2][0] = true;
dostal_przedmiot[id][0] = true;
new nazwa_dajacego[64];
get_user_name(id, nazwa_dajacego, charsmax(nazwa_dajacego))
ColorChat(id, GREEN, "[COD:MW3]^x03 Wymieniles sie perkiem z %s.", data);
ColorChat(id2, GREEN, "[COD:MW3]^x03 Wymieniles sie perkiem z %s.", nazwa_dajacego)
}
case 1: ColorChat(id2, GREEN, "[COD:MW3]^x03 Wybrany gracz nie zgodzil sie na wymiane perka.")
}
return PLUGIN_CONTINUE;
}
public OddajPerk_Callback(id, menu, item)
{
if(oddaj_id[item] == id || !cod_get_user_class(oddaj_id[item]) || !cod_get_user_perk(oddaj_id[item], 0, 0) || blokada[oddaj_id[item]])
return ITEM_DISABLED;
return ITEM_ENABLED;
}
public ZamienPerk2(id)
{
new szText[128], szPerk[33];
new menu = menu_create("Zamien sie perkiem", "ZamienPerk_Handle2");
new cb = menu_makecallback("OddajPerk_Callback2");
for(new i=0, n=0; i<=32; i++)
{
if(!is_user_connected(i))
continue;
oddaj_id[n++] = i;
new nazwa_gracza[64];
get_user_name(i, nazwa_gracza, 63);
cod_get_perk_name(cod_get_user_perk(i, 0, 1), szPerk, 32);
format(szText, 127, "%s \r[Perk: %s]", nazwa_gracza, szPerk);
menu_additem(menu, szText, "0", 0, cb);
}
menu_display(id, menu);
}
public ZamienPerk_Handle2(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
if(!is_user_connected(oddaj_id[item])){
ColorChat(id, GREEN, "[COD:MW3]^x03 Nie odnaleziono zadanego gracza.");
return PLUGIN_CONTINUE;
}
if(dostal_przedmiot[oddaj_id[item]][1]){
ColorChat(id, GREEN, "[COD:MW3]^x03 Wybrany gracz musi poczekac 1 runde.");
return PLUGIN_CONTINUE;
}
if(dostal_przedmiot[id][1]){
ColorChat(id, GREEN, "[COD:MW3]^x03 Musisz poczekac 1 runde.");
return PLUGIN_CONTINUE;
}
if(!cod_get_user_perk(oddaj_id[item], 0, 1)){
ColorChat(id, GREEN, "[COD:MW3]^x03 Wybrany gracz nie mam zadnego perka.");
return PLUGIN_CONTINUE;
}
if(!cod_get_user_perk(id, 0, 1)){
ColorChat(id, GREEN, "[COD:MW3]^x03 Nie masz zadnego perka.");
return PLUGIN_CONTINUE;
}
new nazwa_menu[128], nick[64];
get_user_name(id, nick, charsmax(nick))
formatex(nazwa_menu, charsmax(nazwa_menu), "Wymien sie perkiem z %s:", nick)
new menu2 = menu_create(nazwa_menu, "menu_wymien2");
menu_additem(menu2, "Tak", nick);
menu_addblank(menu2, 0)
menu_additem(menu2, "Nie", nick);
menu_setprop(menu2, MPROP_EXITNAME, "Wyjdz");
menu_display(oddaj_id[item], menu2);
return PLUGIN_CONTINUE;
}
public menu_wymien2(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
new access, callback, data[64];
menu_item_getinfo(menu, item, access, data, charsmax(data), _, _, callback);
new id2 = get_user_index(data)
switch(item)
{
case 0:
{
new wartosc1, wartosc2;
new perk_oddajacego = cod_get_user_perk(id2, wartosc1, 1)
new perk_dajacego = cod_get_user_perk(id, wartosc2, 1)
cod_set_user_perk(id2, perk_dajacego, wartosc2, 1);
cod_set_user_perk(id, perk_oddajacego, wartosc1, 1);
dostal_przedmiot[id2][1] = true;
dostal_przedmiot[id][1] = true;
new nazwa_dajacego[64];
get_user_name(id, nazwa_dajacego, charsmax(nazwa_dajacego))
ColorChat(id, GREEN, "[COD:MW3]^x03 Wymieniles sie perkiem z %s.", data);
ColorChat(id2, GREEN, "[COD:MW3]^x03 Wymieniles sie perkiem z %s.", nazwa_dajacego)
}
case 1: ColorChat(id2, GREEN, "[COD:MW3]^x03 Wybrany gracz nie zgodzil sie na wymiane perka.")
}
return PLUGIN_CONTINUE;
}
public OddajPerk_Callback2(id, menu, item)
{
if(oddaj_id[item] == id || !cod_get_user_class(oddaj_id[item]) || !cod_get_user_perk(oddaj_id[item], 0, 1))
return ITEM_DISABLED;
return ITEM_ENABLED;
}
|